Tuesday, November 10, 2015

Cara Kerja SSL

HTTPS sebenarnya sama dengan HTTP, hanya sebelum data data HTTP dikirim maka data data text yang dipertukarkan di encrypy terlebih dahulu menggunakan SSL.

SSL bekerja dengan dua jenis key:
1. Simetrical Key (Shared Key)
2. Asymetrical Key (Public & Private Key)

Contoh symetrical encryption adalah AES128, AES192, AES256, RC4, RC5, RC6, DES dan 3DES.

Sedangkan contoh asymetrical encryption adalah RSA, DSA, dan PKCS.

Sebuah website apabila hendak menjalankan https, maka domain dari website tsb harus di daftarkan di lembaga CA (Certificate Authority) spt: Verisign. Pertama-tama website tsb harus menggenerate Private Key dan Public Key. Setelah itu saat proses pendaftaran ke CA maka Public Key ini perlu di submit ke CA. Nanti CA akan mengelurkan Digital Certificate: yang isinya keterangan tentang domain, validity nya, serta Public Key dari domain tsb.

Disamping itu CA juga menyimpan Digital Signature terhadap Digital Certificate yang dikeluarkan.

Digital Signature (DS) adalah Digital Certificate (DC) yang di encrypt pakai private key milik CA. Nantinya client akan menghubungi server CA lalu meminta public key CA. Client kemudian mendecrypt DS ini untuk menghasilkan DC. DC yamg didapat ini nanti dibandingkan dg DC yang diberikan oleh Server yg dituju. Apabila beda, maka patut dicurigai server yang dituju adalah server hacker. Lebih jauh akan dibahas nanti.

Selanjutnya mekanisme https akan di jelaskan sbb:


1. Client akan mengirim https request ke server
2. Server akan mengirimkan Digital Certificate, dimana di dalamnya terdapat informasi tentang domain tsb, validity, dan public key.
3. Client akan bertanya ke server CA (Verisign), tentang domain tsb. Respon dari CA akan di bandingkan dengan Digital Certificate yang telah dikirimkan server. Apabila cocok maka Server tsb valid.
4. Client kemudian menggenerate Shared Key, lalu key ini di encrypt dengan Public Key punya Server (kunci warna hijau) untuk menjadi Encrypted Shared Key. Informasi yang disampaikan di encrypt pakai Shared key ini.
5. Server kemudian membongkar Encrypted Shared Key ini dengan Private Key (kunci warna merah) yang dia punya, untuk mendapatkan Shared Key. Setelah itu content yang di encrypt pakai Shared Key ini bisa di decrypt pakai Shared Key ini juga.

Digital Signature (DS)

Apabila hendak menghubungi server misal microsoft.com dengan IP 5.5.5.5, maka client akan mengontak secara SSL ke 5.5.5.5. Server ini memberikan DC yang dia punya. Dalam DC tsb tertulis CA yang digunakan misal Verisign.

Bagaimana kita tahu bahwa DC tsb benar atau asli/otentik? Kita akan bertanya ke servet Verisign.

Server Verisign akan memberikan DS dia bersama public ke dia. Lalu kita decrypt DS tsb dan menghasilkan DC. DC yang diinformasikan oleh Verisign inilah yang kita bandingkan dengan DC yg diberikan oleh server 5.5.5.5. Apabila sama maka kita bisa bilang: Wahai 5.5.5.5 sekarang saya percaya kamu adalah server Microsoft.com yang asli. Hayo sekarang kita mulai bikin tunnel SSL.

Setelah itu server 5.5.5.5 bilang: terima kasih bro sudah percaya. Sekarang gue nunggu proposal shared key nya dari ente. Oh iya, tolong ngirimnya di encrypt ya pakai public key gw. Public key gw baca aja di DC gw, ada infonya disitu.

Client browser kemudian menggenerate random number sebagai shared key, lalu encrypt shared key tsb pakai public key server 5.5.5.5, setelah itu shared key yang sudah terencrypt dikirim ke 5.5.5.5.

Server 5.5.5.5 kemudian mendecrypt pakai private key dia dan mendapatkan shared key, yang di propose oleh client.

Selanjutnya semua http traffic datanya akan di encryot oleh server dan client pakai shared key ini baik untuk menencrypt message maupun untuk mendecrypt nya.



1 comment:

cloud server said...

terimakasih atas infonya gan