Bisakah koneksi internet anda disadap seperti halnya saluran telpon? jawabannya bisa. Jika anda menggunakan jaringan wireless untuk mencari sesuatu di internet, perangkat lain dalam ruangan tersebut yang juga terhubung ke wireless bisa menyadap dan mengetahui apa yang sedang anda cari.
Di istilah internet, mencuri-dengar sebuah komunikasi secara diam-diam juga bisa disebut sebagai eavesdropping (alias 'nguping'). Tentangga anda atau siapapun yang berada diluar rumah bisa nguping dengan menggunakan perangkat dan software yang benar. Jika anda ingin percakapan anda terlindungi secara aman, maka enkripsi lah solusinya.
HTTPS yang terpajang di web-browser mengindikasi bahwa komunikasi anda dengan server telah dienkripsi. Semua orang masih bisa nguping atas percakapan anda, namun mereka tidak akan mengerti bahasa yang mereka terima, karena telah diacak-acak bahasanya (dienkripsi).
HTTPS bekerja dengan menggunakan kunci pribadi dan kunci publik, berikut cara kerjanya:
Katakanlah anda sedang mengunci informasi rahasia dalam kotak dengan menggunakan kunci simetris dan mengirimkannya (kunci dan kotaknya) ke server. Setelah diterima, server akan membukanya dengan menggunakan kunci yang terkirim bersama kotaknya. Tetapi siapapun yang menyadap komunikasi ini akan menerima kotak beserta kuncinya juga, dan inilah masalahnya.
Untuk mengatasi masalah ini, kotak khusus telah diciptakan dan berada di pihak server yang bisa dikunci dengan menggunakan kunci publik dan hanya bisa dibuka dengan menggunakan kunci pribadi mereka.
Server akan menyediakan kotak yang diciptakannya ini dan mengirimkannya kepada anda bersama dengan kunci publiknya namun kunci pribadinya akan tetap disimpan di server dan tidak dibagikan kepada siapapun.
Anda bisa memasukkan kotak anda beserta kunci simetrisnya ke dalam kotak khusus milik server lalu menguncinya dengan menggunakan kunci publik milik server dan mengirimnya ke server. Hanya serverlah yang bisa membuka kotak khusus tersebut dengan menggunakan kunci pribadi mereka.
Oleh karena itu, anda sudah membagikan kunci simetris anda ke server yang bisa digunakan untuk mengunci dan membuka kotak anda kedepannya. Sekarang browser anda dan server sudah bisa berinteraksi hanya dengan mengirim kotak biasa tanpa harus mengirim kunci simetrisnya lagi.
Begitulah cara proses enkripsi bekerja, namun saja pada kenyataannya di dunia internet tentu saja kotak tersebut tidak ada, saya menyebut kotak hanya untuk contoh agar bisa dimengerti saja, namun cara kerjanya sama.
Kunci Publik dan Pribadi
Dalam istilah pengamanan enskripsi data website, kunci publik dan pribadi (public and private keys) adalah alat kriptografi yang digunakan. Mereka dirancang untuk membantu para pengguna internet menjaga data tetap pribadi, dan mengamankan komunikasi di internet.
Sekarang sudah bisa untuk membuat sepasang kunci yang berupa "kunci pribadi" dan "kunci publik." Ada beberapa algoritma untuk melakukannya; RSA adalah yang populer. Ketika Anda membuat sepasang kunci tersebut, maka sangat penting untuk menyimpan kunci pribadi (sesuai namanya) dan kunci publik untuk didistribusikan secara publik.
Seseorang dengan kunci publik Anda dapat menggunakannya untuk mengenkripsi data yang mereka inginkan sebelum dikirimkan kepada Anda. Setelah dienkripsi, satu-satunya cara untuk mendekripsi data tersebut yaitu dengan menggunakan kunci pribadi Anda. Dengan cara ini, seseorang dapat mengirimi Anda data melalui Internet tanpa khawatir jika ada orang lain yang mencuri komunikasi atau alias nguping, karena hanya Anda (atau lebih tepatnya, pemilik kunci pribadi Anda) yang dapat mendekripsi.
Tanda Tangan Digital (Digital Signatures)
Menggunakan kunci pribadi dari sepasang kunci Anda, bisa digunakan untuk menandatangani beberapa data secara digital. Ini berfungsi seperti halnya tanda tangan pena dan kertas di dunia nyata, tetapi jauh lebih berbeda. Tanda tangan digital sangat sulit dipalsukan seperti tanda tangan pada pena dan kertas.
Setelah Anda menandatangani beberapa data dengan kunci pribadi Anda, maka siapa pun dapat memverifikasi tanda tangan menggunakan kunci publik Anda. Jika si penerima data berhasil memverifikasi tanda tangan menggunakan kunci publik Anda, mereka memiliki dua jaminan yang berguna:
- Keaslian: Penerima yakin bahwa data berasal dari pemilik kunci pribadi terkait.
- Integritas: Penerima yakin bahwa data tidak dimodifikasi oleh pihak ketiga dalam proses pengiriman.
Sekarang, jika Anda menggunakan kunci publik Facebook untuk mengenkripsi trafik web Anda, maka Anda tahu hanya kunci pribadi Facebook yang dapat mendekripsi itu. Jika server web yang Anda sambungkan dapat mendekripsi dan merespons trafik Anda dengan benar, maka Anda dapat meyakini bahwa mereka memiliki kunci pribadi Facebook.
Selama Facebook (dan setiap situs lainnya) sangat berhati-hati untuk memastikan bahwa tidak ada orang lain yang memiliki akses ke kunci pribadi mereka, maka hal ini telah memecahkan masalah otentikasi dalam keamanan dunia internet.
Sertifikat dan Certificate Authorities (Otoritas Sertifikat).
Masalahnya adalah bahwa setiap situs web di Internet tidak dapat memverifikasi identitas kunci publik mereka untuk setiap pengunjung. Hal ini akan mengundang begitu banyak pekerjaan. Untuk mengatasi masalah ini, mereka menggunakan Certificate Authorities, atau CAs.
Agar CA berfungsi dengan baik, para pengguna internet diminta untuk mempercayai mereka untuk tidak membohongi kita. CA ini sebenarnya mengandalkan kepercayaan, sehingga ketika mereka telah melakukan sesuatu yang membuat para pengguna internet hilang kepercayaan, maka browser akan berhenti mempercayai mereka dan mereka bisa bangkrut. Bahkan kesalahan sederhana saja pada CA cukup untuk merusak reputasi mereka secara permanen.
Sekarang, bagaimana CA menangani masalah verifikasi? CA akan mengenakan biaya kepada pemilik situs web untuk proses verifikasi terhadap identitas mereka. DigiCert adalah salah satu contoh CA yang terkenal, dan mereka adalah CA untuk Facebook.
Facebook ingin membuktikan identitas kunci publik mereka, sehingga orang dapat berkomunikasi dengan aman dengan situs mereka. Facebook membayar DigiCert untuk memverifikasi bahwa mereka sebenarnya adalah Facebook. Jika disetujui, maka DigiCert akan tahu kunci publik apa yang sebenarnya milik Facebook. Sekarang ketika Anda terhubung ke Facebook, Anda tidak perlu Facebook untuk membuktikan identitas mereka kepada Anda. Facebook hanya perlu membuktikan bahwa DigiCert sudah memverifikasi identitas mereka. DigiCert melakukan ini ke jutaan situs web di internet.
Bagaimana Anda tahu Anda berurusan dengan DigiCert, dan bukan seseorang yang menyamar sebagai DigiCert?
Jika kita memiliki kunci publik DigiCert, maka kita dapat memverifikasi identitas mereka. Tetapi kita perlu memastikan bahwa kunci publik DigiCert yang kita miliki apakah benar-benar milik DigiCert, bukan orang lain.
Apa solusi mereka disini? Sistem operasi atau browser yang Anda gunakan telah diselipkan semua kunci publik dari DigiCert dan akan terus tersimpan di dalamnya. Ada cukup banyak CA yang otomatis tersimpan di dalam tanpa anda sadari, namun mereka semua cukup terkenal sehingga pada umumnya semua sistem operasi modern memilikinya. Mereka disimpan di “Trusted Root Certificate Authority Store.” pada komputer Anda.
Bagaimana Facebook membuktikan kepada Anda bahwa DigiCert memverifikasi mereka?
Setelah DigiCert memverifikasi bahwa Facebook adalah Facebook, mereka mengambil kunci publik Facebook dan menandatanganinya secara digital. Interaksi ini terjadi antara Facebook dan DigiCert, jauh sebelum Anda terhubung ke Facebook. Sekarang ketika Anda terhubung ke Facebook, Facebook mengirimkan Anda kunci publik yang telah ditandatangani oleh kunci pribadi DigiCert. Anda sendiri dapat memverifikasi bahwa kunci publik Facebook tersebut asli atau palsu dengan menggunakan kunci publik yang tersimpan di sistem operasi Anda.