SSL menawarkan tiga tingkat keamanan, yaitu:
- Authentication: Memastikan bahwa message yang diterima berasal dari seseorang yang tersurat
- Confidentiality: Melindungi pesan dari suatu usaha pembacaan oleh penerima yang tidak berhak disepanjang perjalanannya.
- Integrity: Memastikan bahwa pesan asli, tidak mengalami perubahan dalam perjalanannya.
SSL dikembangkan oleh Netscape Communications agar bisa mengirim data secara aman lewat internet. Jika anda pernah memperhatikan di browser internet dengan menggunakan HTTPS, maka koneksi internet ini adalah menggunakan SSL yang umum digunakan pada suatu transaksi online. Jadi HTTPS adalah suatu protocol untuk melakukan transfer data yang terinkripsi melalui web.
Apa bedanya HTTPS dan HTTP:
- HTTPS melakukan koneksi melalui port 443, sementara HTTP menggunakan port 80
- HTTPS mengirim / menerima data dengan inkripsi lewat protocol SSL, sementara HTTP mengirim data dengan plain text
Jadi dalam transaksi online, maka pastikan anda melihat online store anda menggunakan HTTPS dalam bertransaksi keuangan lewat internet.
Jika anda mempunyai website, apa yang diperlukan agar bisa di host disuatu host yang bisa SSL.
- Web server haruslah support inkripsi SSL
- IP address public yang unik agar penyedia certificate SSL bisa melakukan validasi website anda
- Suatu certificate SSL dari penyedia layanan SSL
Dua yang pertama bisa anda dapatkan dari ISP anda, hubungi ISP anda untuk memastikannya.
SSL beroperasi pada antara layer Application dan Transport pada model OSI. SSL tidak bekerja secara transparent automatis, karena hanya bisa kalau memang protocol-protocol applikasi secara explicit memang diimplementasikan.
SSL menggunakan inkripsi public-key untuk maksud authentication dan inkripsi symmetric key untuk inkripsi informasi yang dikirim. Untuk public key inkripsi SSL menggunakan algoritma inkripsi Rivest-Shamir-Adleman (RSA), makanya bergantung pada implementasi dari infrastructure public key (PKI) yang didukung. Integritas pesan dijamin dengan cara mekanisme checking integritas yang disebut sebagai message authentication code (MAC).
Suatu sesi SSL bermula saat suatu client dengan SSL-enabled meminta suatu koneksi dengan server dengan SSL-enabled melalui TCP port 443, yaitu port SSL. Hal ini akan menginisiasi suatu koneksi SSL antara client dan server. Semua website yang menggunakan SSL mempunyai suatu URL dengan awalan HTTPS. Server kemudian mengirimkan certificate digital dan public key kepada client tersebut.
Client server kemudian melakukan negosiasi tingkat inkripsi mana yang bisa diterima yang biasanya 40-bit, 56-bit, ataupun 128 bit keatas. Client kemudian menghasilkan suatu secret session key yang kemudian di inkripsi menggunakan public key dari server untuk kemudian mengirimkan nya kepada server. Server kemudian melakukan dekripsi secret session key tersebut menggunakan private key-nya. Dari poin ini seterusnya, secret key cryptography dikenakan dan kemudian session key digunakan untuk meng-inkripsi semua pertukaran data antara client dan server, memberikan suatu komunikasi private yang aman.
SSL ini tentunya tidak bebas dari masalah begitu saja. Semua transaksi web dengan SSL akan menambah overhead pemrosesan pada server. Terkadang menjadi dua kali lipat tingkat overhead prosessingnya dibanding tanpa menggunakan koneksi secure SSL. Dengan hardware mesin yang sama, maka tingkat beban prosessing dengan menggunakan SSL akan menjadi sangat berat dibanding tanpa SSL.
Disamping itu, SSL jadi sulit diimplementasikan dalam e-commerse yang menggunakan web server farms dan server load balancers. Hal ini mengingat SSL didesign agar client menggunakan IP address yang sama selama sessi berlangsung.
Untuk mengatasi masalah ini, biasanya digunakan hardware khusus yang disebut SSL Accelerators untuk mengambil alih beban processing dan sesi cache kepada server-server lain untuk meningkatkan performa.