Another Source

Selasa, 09 Oktober 2012

Memahami TCP/IP dan UDP


* TCP/IP TCP singkatan dari 'Transmission Control Protocol' dan hampir semua sistem operasi modern kompatibel dengan protocol ini. TCP adalah dasar dari koneksi, Hal ini berarti melakukan suatu koneksi langsung antara dua komputer untuk melakukan transfer data antara kedua host. Suatu paket mengandung header dan data gram, pada bagian header dari paket akan mengandung informasi penting tentang :
  • Source Port
  • Destination Port
  • Sequence number
  • Acknowledgement number
  • Header Length (Standard 20 Bytes)
  • Flags (syn, ack, psh, fin, rst, urg)
  • Window size
  • Checksum
  • IP_v4 or IP_v6
  • Header Length
  • DSF
  • Total Length
  • Identification
  • Flags (Set Fragment bit or not)
  • Fragment Offset
  • TTL
  • Protocol (this case TCP)
  • Header checksum
  • Source IP
  • Destination IP
Jika anda ingin memahami bagaimana suatu koneksi dilakukan, bacalah dengan seksama ilustrasi berikut ini : 
Awalnya suatu paket dengan SYN-flag dikirim ke IP tujuan, tujuan akan memberikan respon dengan suatu ACK(SYN) flag atau suatu paket dengan RST-flag. Akan saya jelaskan: SYN singkatan dari SYN-(synchronisation), yang digunakan untuk ‘memberitahukan' komputer tujuan suatu permintaan melakukan koneksi, kalau diterima, maka permintaan tersebut akan dijawab dengan suatu paket ACK(SYN) flag. ACK singkatan dari ACK-(nowledgement). Setelah menerima paket dengan ACK(SYN) flag, komputer mengirim kembali suatu ACK memberitahukan host lain bahwa koneksi telah dibuat. Hal ini kita sebut sebagai "Three-Way-Handshake". Jika koneksi telah dibuat dan salah satu host ingin melakukan disconnect, akan dikirim suatu paket dengan FIN-flag diaktifkan. (FIN singkatan dari FINish). Tabel ini akan membuat hal ini lebih jelas: 
 
Computer A Computer B
========== ========== 
1) SYN --> 
2)         <-- ACK(SYN) 
3) ACK --> Ya, koneksi telah dibuat! 
4) FIN --> 
5)         <-- ACK(FIN) 
6) RST --> Sekarang koneksi telah ditutup dan transfer data diputuskan.
 
 
Computer A Computer B 
========== ==========
1) SYN -->
2)         <-- RST
3) ACK --> "Computer B" tidak ingin melakukan koneksi dengan "Computer A"!
            (mungkin komputer B menjalankan suatu firewall)
Ada beberapa cara untuk mengeksplotasi protocol TCP :
SYN-floods, teardrop, Smurf-attacks, sequence-number attacks & dll.
Untuk informasi yang lebih lengkap http://neworder.box.sk/ dan http://packetstorm.securify.com/ 
IP adalah singkatan dari Internet Protocol. Perhatikan lagi contoh diatas, jika "Computer A" mengirim suatu paket ke "Computer B", IP dari kedua komputer berada didalam IP-header dari paket tersebut, yaitu IP tujuan (dari komputer B) dan IP sumber (dari komputer A). Router yang berada diantara kedua host akan memeriksa IP-header tersebut dan melakukan masquerade paket tersebut ke segment berikutnya. Jika terjadi kesalahan dalam pengiriman tersebut, contohnya host tujuan tidak dapat dicapai, suatu ICMP (Internet Control Message Protocol) digunakan untuk mengirim pesan kesalahan sehingga kesalahan tersebut dapat diperbaiki (dan paket tersebut harus dikirim ulang).
Program seperti 'ping' dan ‘traceroute’ juga mengunakan pesan ICMP untuk mendeteksi status dari host yang berada di segment lain.
Sekarang yang menjadi standar adalah IP_v4,  dan standar untuk masa yang akan datang adalah adalah IP_v6, juga disebut juga sebagai IP_ng (next generation). IP_v4 mengunakan pengalamatan 32-bit, sedangkan IP_v6 menggunakan pengalamatan 128-bits, sehingga menghasilkan pengalamatan IP dalam jumlah yang sangat besar.
* Beberapa protocol penting lainnya 
* UDP, User Datagram Protocol, adalah TCP yang connectionless. Hal ini berarti bahwa suatu paket yang dikirim melalui jaringan dan mencapai komputer lain tanpa membuat suatu koneksi. Sehingga dalam perjalanan ke tujuan paket dapat hilang karena tidak ada koneksi langsung antara kedua host, jadi UDP sifatnya tidak realibel, tetapi UDP adalah lebih cepat dari pada TCP karena tidak membutuhkan koneksi langsung.
* FTP (File Transfer Protocol), digunakan untuk melakukan upload dan download file, keamanan didasarkan kepada username dan password (kadang-kadang suatu anonymous login diperbolehkan), Kelemahan dari protocol ini adalah username dan password dikirim secara Clear Text melalui jaringan komunikasi, sehingga dapat menjadi sasaran empuk bagi program pemantau jaringan seperti packet Sniffer. Suatu daemon FTP melakukan listening pada port 21/TCP dan mengirim data pada port 20/TCP.
* HTTP, HyperText Transfer Protocol. HTTP digunakan untuk transfer halaman web, sebelumnya orang menggunakan protokol gopher. Tetapi  Gopher hanya mendukung text, sehingga HTTP berkembang dan digunakan oleh orang banyak. Suatu daemon HTTP melakukan listening pada port 80/TCP.
* SMTP, Simple Mail Transfer Protocol digunakan untuk mengirim electronic mail (Email).
Baca tutorial tentang send-mail diRead the send mail-tutorial pada http://blacksun.box.sk/ dan anda akan belajar banyak tentang protocol ini, suatu daemon SMTP mendengan pada 25/TCP. Salah satu kelemahan dari protokol ini adalah tidak melakukan authentication terhadap klien, sehingga seseorang dapat dengan mudah mengunakan telnet ke port 25/TCP, dan mengirim email kepada siapa saja, dan dapat memanipulasi alamat sumber data.
* POP, Post Office Protocol. Belakangan ini POP3 adalah standard yang paling popular. POP digunakan untuk menerima dan membaca email dari suatu halaman web. Suatu daemon POP3 melakukan listening  pada 110/TCP. Salah satu kelemahan protocol ini adalah mengirim username dan password secara Clear Text, sehingga dengan mudah dapat diambil dengan program packet Sniffer.
* DHCP: Dynamic Host Configuration Protocol.
Jika anda mendapatkan suatu Cable-connection dengan menggunakan DHCP akan mendapatkan IP dari ISP anda. 
* OSPF (Open Shortest Path First) & RIP (Routing Information Protocol) digunakan untuk menentukan metode yang terbaik dalam routing. 
* BOOTP digunakan untuk boot (biasanya) suatu diskless workstation akan membaca informasi boot pada server. Server standarnya melakukan listening  pada 67/UDP.
* ARP & RARP: Address Resolution Protocol. Saya akan menjelaskannya dengan contoh: Jika anda ingin mengirim data ke suatu host dan anda memiliki MAC-address (Media Access Control, Ethernet-address) anda dapat melakukan query ke router untuk mendapatkan IP-nya, hal ini ditangani oleh ARP, jika anda memiliki IP dari sautu host dan anda ingin mendapatkan MAC-address-nya, anda dapat menggunakan RARP (Reverse Address Resolution Protocol).
* Telnet (Network terminal protocol) digunakan untuk login secara remote ke komputer (biasanya pada sistem UNIX-base). Telnet mengirim username dan password dalam bentuk Clear Text melalui jaringan, sehingga mudah diambil orang lain dengan suatu Packet Sniffer. Ada protocol yang disebut sebagai SSH (Secured SHell) yang juga digunakan untuk login yang lebih aman secara remote: dimana data yang akan dikirim di enkripsi, sehingga data yang diperoleh packet Sniffer menjadi tidak berarti. Telnet dan SSH sering digunakan pada lingkungan UNIX. Suatu daemon telnet melakukan listening  pada 23/TCP dan daemon SSH melakukan listening pada 22/TCP. 
* Suatu protocol khusus pada sistem UNIX-base adalah finger, dan sudah sekarang jarang ditemukan. UNIX yang menjalankan daemon finger, standar-nya melakukan pendengaran  pada 79/TCP & 79/UDP. Kelemahan finger adalah akan memberikan informasi yang berharga keluar (seperti nama account, nomor telepon sehingga memungkinkan untuk pemakaian serangan Social-Engineering). Terdapat banyak kelemahan pada daemon finger dan sangat tidak aman.

0 komentar:

Posting Komentar