Tampilkan postingan dengan label #Artikel. Tampilkan semua postingan
Tampilkan postingan dengan label #Artikel. Tampilkan semua postingan

Selasa, 07 Mei 2013

Monitoring protokol SSL dengan menggunakan wireshark


SSL atau Secure Sockets Layer adalah sebuah protokol keamanan data yang digunakan untuk menjaga pengiriman data web server dan pengguna situs web tersebut.

Jenis SSL yang paling aman dapat dilihat dari tingkat keamanan SSL, yang terletak pada kekuatan enkripsi yang didukungnya (misalnya 256 bit). Semakin besar tingkat enkripsi semakin susah untuk dibobol. Secara teknis, semua SSL dengan tingkat enkripsi yang sama, mempunyai tingkat keamanan yang sama.Untuk mengetahui apabila transaksi diamankan oleh SSL adalah sebuah icon berlambangkan gembok yang terkunci akan muncul di browser yang telah diamankan dengan SSL. Dengan meng-klik icon tersebut akan diketahui otoritas sertifikasi dari sertifikat SSL tersebut.

Untuk mengaktifkan SSL pada situs anda, anda perlu memasang sertifikat SSL yang sesuai dengan server dan situs anda. Setelah SSL terpasang, anda bisa mengakses situs anda secara aman dengan mengganti URL yang sebelumnya http:// menjadi https://. Hal ini dapat terlihat dari indikator / ikon gembok pada browser atau juga alamat situs yang diakses diindikasikan dengan warna hijau pada baris alamat browser.
Komponen Secure Socket Layer (SSL)
Komponen SSL disusun oleh dua sub-protokol :
  1. SSL handshaking, yaitu sub-protokol untuk membangun koneksi yang aman untuk berkomunikasi.
  2. SSL record, yaitu sub-protokol yang menggunakan koneksi yang sudah aman. SSL record membungkus seluruh data yang dikirim selama koneksi.
Pada artikel kali ini akan memonitoring protocol SSL pada wireshark , pada contoh kali ini menggunakan sebuah website e-banking yaitu www.klikbca.com dan melakukan login individual pada website tersebut lalu pada wireshark lakukan filter protocol yaitu ”ssl”  dan akan muncul capture beberapa bagian autentifikasi dan cara kerja protocol ssl .
Cara Kerja Secure Socket Layer (SSL)
Dalam berkomunikasi Secure Socket Layer (SSL) didefinisikan secara berbeda, pada client atau pada server. Client adalah sistem yang menginisiasi komunikasi, sedangkan server adalah sistem yang merespon request dari client. Pada aplikasinya di internet, browser web adalah client dan website adalah server. Client dan server mempunyai perbedaan utama pada aksi yang dilakukan ketika negosiasi tentang parameter keamanan. Client bertugas untuk mengajukan opsi SSL yang akan digunakan pada saat pertukaran pesan, dan server menentukan opsi mana yang akan digunakan. Pada implementasinya SSL berjalan pada transport layer dengan aplikasi SSLeay dan OpenSSL.
Secara umum cara kerja SSL dapat dijelaskan dalam beberapa tahapan yaitu sebagai berikut :
  1. Tahapan Pembangunan Chanel.
  2. Client membentuk koneksi awal ke server dan meminta koneksi SSL.
  3. Jika server yang dihubungi telah dikonfigurasi dengan benar, maka server ini mengirimkan public key miliknya kepada client.
  4. Client membandingkan sertifikat dari server ke basis data trusted authorities. Jika sertifikat terdaftar di dalamnya, artinya client mempercayai (trust) server itu dan akan maju ke tahap 4. Sehingga pemakai harus menambahkan sertifikat tersebut ke trusted database sebelum maju ke langkah 4.
Client menggunakan Public Key yang didapatnya untuk mengenkripsi dan mengirimkan session key ke server. Jika server meminta sertifikat client di tahap 2, maka client harus mengirimnya sekarang.
Jika server di setup untuk menerima sertifikat, maka server akan membandingkan sertifikat yang diterimanya dengan basis data trusted authorities dan akan menerima atau menolak koneksi yang diminta.
Jika kondisi ditolak, suatu pesan kegagalan akan dikirimkan ke client. Apabila koneksi diterima, atau bila server tidak di setup untuk menerima sertifikat, maka server akan mendekripsi session key yang didapat dari client dengan private key milik server dan mengirimkan pesan berhasil ke client yang dengan demikian membuka suatu secure data chanel.
Tahapan Otentikasi :
  1. Client mengirimkan pesan Client Hello untuk mengajukan opsi SSL. 
  2. memberi respon dengan memilih opsi SSL melalui ServerHello.
  3. Server mengirimkan sertifikat kunci publik pada pesan Certificate. 
  4. Server mengakhiri bagian negoisasi dengan pesan ServerHelloDone.
  5. Client mengirimkan informasi session key yang dienkripsi dengan kunci publik server melalui pesan ClientKeyExchange.
  6. Client mengirimkan pesan ChangeCipherSpec untuk mengaktifkan opsi yang dinegosiasikan untuk semua pesan yang akan dikirimkan. 
  7. Client mengirimkan pesan Finished sehingga memungkinkan server mengecek opsi baru yang diaktifkan.
  8. Server mengirimkan pesan ChangeCipherSpec untuk mengaktifkan opsi yang dinegosiasikan untuk semua pesan yang akan dikirimkan.
  9. Server mengirimkan pesan Finished sehingga memungkinkan client mengecek opsi baru yang diaktifkan.
Keuntungan Secure Socket Layer (SSL)
Transaksi bisnis ke bisnis atau bisnis ke pelanggan yang tidak terbatas dan menambah tingkat kepercayaan pelanggan untuk melakukan transaksi online dari situs anda.

Minggu, 31 Maret 2013

Monitoring Protokol TCP dan UDP


                    “Monitoring Protokol TCP dan UDP” 
            1.  Protokol TCP
Transmission Control Protocol (TCP) adalah suatu protokol yang berada di lapisan transpor (baik itu dalam tujuh lapis model referensi OSI atau model DARPA) yang berorientasi sambungan (connection-oriented) dan dapat diandalkan (reliable). TCP dispesifikasikan dalam RFC 793.
TCP mempunyai karakteristik sebagai protokol yang berorientasi koneksi (Connection oriented). Sebelum terjadi proses tranfer data, maka yang pertama dilakukan adalah kedua belah pihak melakukan call request dan call accept. Protokol TCP menggunakan jalur data full duplex yang berarti antara kedua host terdapat dua buah jalur, jalur masuk dan jalur keluar sehingga data dapat dikirimkan secara simultan.
Sebuah circuit virtual disiapkan sebelum packet-packet dikirimkan. Pada masing-masing packet terdapat virtual circuit identifier yang berisi alamat tujuan packet tersebut. Data yang dikirimkan dalam sebuah protokol TCP maka akan diurutkan dengan sebuah nomor urut dan akan mengharap packet positive acknowledgment. Apabila tidak ada packet positive acknowledgment, maka packet akan dikirim ulang. Oleh karena itu, protokol TCP reliable. Akan tetapi karena harus mengecek setiap packet yang dikirmkan, maka protokol TCP relatif lambat. Pada TCP, hanya bisa melakukan koneksi one-to-one dan tidak bisa melakukan koneksi one-to-many. Karena rute-rute packet sudah ditentukan sebelumnya, maka akan lebih sulit bagi jaringan untuk beradaptasi dengan kemacetan. Untuk mengatasi hal tersebut TCP memiliki layanan flow control: Untuk mencegah data terlalu banyak dikirimkan pada satu waktu, yang akhirnya membuat "macet" jaringan internetwork IP, TCP mengimplementasikan layananflow control yang dimiliki oleh pihak pengirim yang secara terus menerus memantau dan membatasi jumlah data yang dikirimkan pada satu waktu. Untuk mencegah pihak penerima untuk memperoleh data yang tidak dapat disangganya (buffer), TCP juga mengimplementasikan flow control dalam pihak penerima, yang mengindikasikan jumlah buffer yang masih tersedia dalam pihak penerima.
Melakukan monitoring Protokol TCP dengan menggunakan sebuah aplikasi wireshark , dengan menggunakan beberapa langkah sebagai berikut :
    1.      Buka aplikasi wireshark pada device anda , setelah masuk aktif pada jendela wireshark maka kita bisa memulai dengan memilih interface yang akan digunakan untuk meng-capture paket-paket yang berlalu lalang dijaringan. Pemilihan interface ditentukan dari paket-paket yang berjalan seperti gambar dibawah ini. pilih dan klik Menu Capturesà Interfaces , lalu pilih yang akan di captures saya memilih Microsoft (centang) lalu OK
    2.      Setelah mengaktifkan pengcapturan ,maka akan muncul halaman awal seperti berikut ini :

   3.      Lalu pada Filter ketikkan perintah : tcp dan akan tampil seperti gambar di bawah ini :



Proses Koneksi TCP
Pada saat Setup Koneksi
1.client mengirimkan kontrol TCP SYN ke server, dengan memberikan sequence number inisial
2.server menerima TCP SYN, dan membalasnya dengan kontrol SYNACK
• ACK yang menyatakan telah menerima SYN
• mengalokasikan buffer
• menghasilkan sequence number untuk ke client

Pada saat Menutup Koneksi
1.client mengirim kontrol TCP FIN ke server
2.server menerima FIN, dan membalas dengan ACK. Menutup koneksi dan mengirimkan FIN ke client.
3.Client menerima FIN dan membalas ACK
• masuk pada masa menunggu balasan ACK terhadap dari server
4.Server menerima ACK dan koneksi tertutup.
* SYN : Mengindikasikan bahwa segmen TCP yang bersangkutan mengandung Initial Sequence Number (ISN).
* ACK : Mengindikasikan field Acknowledgment mengandung oktet selanjutnya yang diharapkan dalam koneksi. Flag ini selalu diset, kecuali pada segmen pertama pada pembuatan sesi koneksi TCP.
* FIN : Menandakan bahwa pengirim segmen TCP telah selesai dalam mengirimkan data dalam sebuah koneksi TCP. Ketika sebuah koneksi TCP akhirnya dihentikan (akibat sudah tidak ada data yang dikirimkan lagi), setiap host TCP akan mengirimkan sebuah segmen TCP dengan flag FIN diset ke nilai 1. Sebuah host TCP tidak akan mengirimkan segmen dengan flag FIN hingga semua data yang dikirimkannya telah diterima dengan baik (menerima paket acknowledgment) oleh penerima. Setiap host akan menganggap sebuah segmen TCP dengan flag FIN sebagai sekumpulan byte dari data. Ketika dua host TCP telah mengirimkan segmen TCP dengan flag FIN dan menerima acknowledgment dari segmen tersebut, maka koneksi TCP pun akan dihentikan.
TCP menggunakan proses jabat tangan yang sama untuk mengakhiri koneksi yang dibuat. Hal ini menjamin dua host yang sedang terkoneksi tersebut telah menyelesaikan proses transmisi data dan semua data yang ditransmisikan telah diterima dengan baik. Itulah sebabnya, mengapa TCP disebut dengan koneksi yang reliable..

2.      Protokol UDP
UDP ( User Datagram Protocol) adalah jenis transfer data yang lain dari TCP. UDP mempunyai karateristik connectionless (tidak berbasis koneksi). Dengan kata lain, data yang dikirimkan dalam bentuk packet tidak harus melakukan call setup seperti pada TCP. Selain itu, data dalam protokol UDP akan dikirimkan sebagai datagram tanpa adanya nomor identifier. Sehingga sangat besar sekali kemungkinan data sampai tidak berurutan dan sangat mungkin hilang/rusak dalam perjalananan dari host asal ke host tujuan. Tergantung pada host penerima/tujuan, apakah akan meminta kembali pakcet yang rusak atau hilang. Kelebihan UDP adalah pada saat digunakan pada lightweight protokol, misalnya saja DNS(Domain Name Service).
1. UDP adalah “datagram-oriented”, sedangkan TCP adalah “session-oriented”. Datagram adalah paket informasi self-contained. UDP berhubungan dengan datagram atau paket individu yang dikirim dari client ke server dan atau sebaliknya.
2. UDP adalah connection-less. Client tidak membangun koneksi ke server sebelum mengirim data, client hanya mengirim data secara langsung.
3. UDP adalah protokol yang tidak andal, dalam artian :
* Paket dapat hilang. UDP tidak dapat mendeteksinya, sehingga pada program aplikasi client – server, metode transmisi ulang dikarenakan data rusak atau hilang harus dilakukan pada level aplikasi. Biasanya aplikasi menunggu hingga timeout habis, dan kemudian mencoba lagi.
* Paket dapat mengalami kerusakan. Paket UDP berisi checksum semua data dalam paket. Checksum ini memungkinkan UDP mendeteksi kapan suatu paket mengalami kerusakan. Jika hal ini terjadi, maka paket tersebut dikeluarkan, dan sebagaimana biasa aplikasilah yang mendeteksi hal ini dan melakukan transmisi ulang seperlunya.
* Karena UDP adalah datagram-oriented dan pada level protokol setiap paket berdiri sendiri, maka UDP tidak memiliki konsep paket sesuai urutan, yang selanjutnya berarti tidak memerlukan nomor urut pada paket tersebut.
* Karena UDP tidak memerlukan mekanisme kontrol yang rumit, maka UDP dapat dianggap lebih mudah dan lebih kecil ( dalam hal baris data dan memori ) untuk diimplementasikan. Namun hal tersebut juga membuat UDP tidak cocok untuk sejumlah besar data.
Langkah untuk memonitoring protocol sama dengan TCP menggunakan wireshark perbedaan adalah saat filter mengetikkan perintah : udp , lalu akan muncul tampilan sebagai berikut

Pada monitoring paket diatas dapat dianalisa sebagai berikut :
Protokol UDP tidak perlu adanya setup koneksi terlebih dahulu (hal ini dapat
menyebabkan tambahan delay) serta sederhana, artinya antara penerima dan pengirim tidak perlu
menjaga session atau status koneksi. Protokol UDP tidak perlu kontrol kemacetan koneksi, artinya UDP dapat mengirimkan per segment tanpa dipengaruhi oleh kesibukan jaringan.
Protokol UDP :
● Didefinisikan dengan RFC 768
● Menerapkan layanan connectionless :
• tidak ada handshaking antara pengirim UDP dan penerimanya
• setiap segment UDP ditangani secara independen dengan segment
UDP lainnya
● Kelemahan :
• segment UDP mungkin akan hilang
• paket diterima mungkin dalam keadaan yang tidak urut. Jika paket yang
diterima tidak urut, paket akan dibuang.
● tidak ada kontrol kemacetan koneksi (congestion control), artinya UDP dapat mengirimkan per segment tanpa dipengaruhi oleh kesibukan jaringan. Secara prinsip lapisan transport harus memberikan congestion control ini selama transmisi terjadi. Congestion dapat terjadi karena terlalu banyak paket data pada jaringan sehingga membuat unjuk kerja jaringan menjadi menurun. Hal ini dapat disebabkan, misalnya karena adanya router terlalu penuh buffernya sehingga memperlambat.