Rabu, 05 Februari 2014

Setting SSL

Untuk memperoleh sistem yang aman diperlukan adanya SSL. Sebelum melakukan set SSL, sebaiknya kita mengetahui terlebih dulu apa itu SSL dan apa fungsinya.

Apa itu SSL ?

SSL atau Secure Socket Layer adalah cara sebuah situs web membuat sambungan aman dengan browser web pengguna. Setiap kali seorang surfer web mengunjungi situs aman yang menggunakan teknologi SSL, tercipta sebuah link yang terenkripsi antara sesi browser mereka dan web server.

Apa itu Open SSL ?

OpenSSL adalah sebuah toolkit kriptografi mengimplementasikan Secure Socket Layer (SSL v2/v3) dan Transport Layer Security (TLS v1) dan terkait dengan protokol jaringan standar kriptografi yang dibutuhkan oleh keduanya.

Aplikasi OpenSSL ini merupakan command line tool yang menggunakan berbagai fungsi kriptografi OpenSSL's crypto library dari shell. ini dapat digunakan untuk :

  1. Penciptaan RSA, DH dan DSA parameter kunci
  2. Penciptaan sertifikat X.509, CSRs dan CRLs
  3. Perhitungan Pesan Digests
  4. Enkripsi dan Dekripsi dengan Ciphers
  5. Pengujian SSL / TLS Client dan Server
  6. Penanganan S/MIME signed or encrypted mail
Fungsi SSL ?

Fungsi SSL pada komunikasi aman sama seperti fungsi TCP pada komunikasi normal, yaitu menyediakan sebuah infrastruktur komunikasi standar di mana sebuah aplikasi dapat menggunakannya dengan mudah dan hampir tidak dapat terlihat (invisible). SSL menyediakan sebuah komponen penting pada sistem yang aman. Mekanisme otentikasi dasar seperti password Telnet dan otentikasi HTTP dasar menjadi sangat kuat ketika dieksekusi dengan SSL dibandingkan dengan TCP, di mana pada SSL password tidak lagi dikirim dalam bentuk plainteks. SSL mengenkripsi koneksi, bukan data pada kedua pihak yang berkomunikasi, dan tidak mengandung mekanisme untuk otentikasi user ataupun perlindungan password (hanya koneksi yang diotentikasi, keamanannya akan gagal jika mesin pada kedua pihak yang berkomunikasi compromised).

Cara kerja 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 chanell.

Tahapan Otentikasi Server :
  1. Client mengirimkan pesan Client Hello untuk mengajukan opsi SSL.
  2. Server 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.
Tahapan Pemisahan Otentikasi Server dan Enkripsi :
  1. Client mengirimkan pesan ClientHello untuk mengajukan opsi SSL.
  2. Server memberi respon dengan memilih opsi SSL melalui ServerHello.
  3. Server mengirimkan sertifikat kunci publik pada pesan Certifikat.
  4. Server mengirimkan kunci publik yang harus digunakan oleh client untuk mengenkripsi kunci simetrik pada ServerKeyExchange, kunci ini terdapat pada sertifikat server.
  5. Server mengakhiri bagian negoisasi dengan pesan ServerHelloDone.
  6. Client mengirimkan informasi session key pada pesan ClientKeyExchange (dienkripsi dengan kunci publik yang disediakan oleh server).
  7. Client mengirimkan pesan ChangeCipherSpec untuk mengaktifkan opsi yang dinegoisasi untuk semua pesan yang akan dikirimkan.
  8. Client mengirimkan pesan Finished sehingga memungkinkan server mengecek opsi baru yang diaktifkan.
  9. Server mengirimkan pesan ChangeCipherSpec untuk mengaktifkan opsi yang dinegosiasikan untuk semua pesan yang akan dikirimkan.
  10. Server mengirimkan pesan Finished yang memungkinkan client mengecek opsi baru yang diaktifkan.
Tahapan Otentikasi Client :
  1. Client mengirimkan pesan ClientHello untuk mengajukan opsi SSL.
  2. Server memberi respon dengan memilih opsi SSL melalui ServerHello.
  3. Server mengirimkan sertifikat kunci publik pada pesan Certificate.
  4. Server mengirimkan pesan Certificate Request untuk menunjukan bahwa server ingin mengotentikasi client.
  5. Server mengakhiri bagian negosiasi dengan pesan ServerHelloDone.
  6. Client mengirimkan sertifikat kunci publik pada pesan Certificate.
  7. Client mengirimkan informasi session key pada pesan ClientKeyExchange (dienkripsi dengan kunci publik server).
  8. Client mengirimkan pesan CertificateVerify yang menandai informasi penting tentang sesi menggunakan kunci privat client, server menggunakan kunci publik dari sertifikat client untuk memverifikasi identitas client.
  9. Client mengirimkan pesan ChangeCipherSpec untuk mengaktifkan opsi yang dinegosiasikan untuk semua pesan yang akan dikirimkan.
  10. Client mengirimkan pesan Finished sehingga memungkinkan server mengecek opsi baru yang diaktifkan.
  11. Server mengirimkan pesan ChangeCipherSpec untuk mengaktifkan opsi yang dinegosiasikan untuk semua pesan yang akan dikirimkan.
  12. Server mengirimkan pesan Finished yang memungkinkan client mengecek opsi baru yang diaktifkan.
Tahapan untuk melanjutkan sesi :
  1. Client mengirimkan pesan ClientHello yang menetapkan ID sesi sebelumnya.
  2. Server memberi respon dengan ServerHello untuk menyetujui ID sesi.
  3. Server mengirimkan pesan ChangeCipherSpec untuk mengaktifkan kembali opsi pengamanan sesi untuk pesan yang akan dikirim.
  4. Server mengirimkan pesan Finished yang memungkinkan client mengecek opsi baru yang diaktifkan kembali.
  5. Client mengirimkan pesan ChangeCipherSpec untuk mengaktifkan kembali opsi yang dinegoisasi untuk semua pesan yang akan dikirimkan.
  6. Client mengirimkan pesan Finished yang memungkinkan server mengecek opsi baru yang diaktifkan kembali.

Setting SSL ?
  1. Buka terminal, ketikkan perintah sudo su, kemudian masukkan password
  2. Ketikkan "sudo apt-get install openssl" tanpa tanda petik. Jika diperlukan dapat ditambahkan opsi -skip-broken. Perintah ini dilakukan untuk melakukan instalasi SSL.
  3. Setelah proses instalasi selesai, ketikkan perintah /etc/init.d/httpd restart (untuk LAMPP) atau /opt/lampp/lampp restart untuk mereset web server yang dilengkapi SSL. Pastikan telah menginstal web server sebelumnya.

Sumber :
  1. http://ilmukomputer.org/2013/04/30/ssl-secure-socket-layer/ 
  2. http://dimas347.wordpress.com/2011/02/14/security-socket-layer-ssl/ 
  3. http://littlebro-note.blogspot.com/2009/08/tentang-openssl.html 

Tidak ada komentar:

Posting Komentar