Ketika mengakses website menggunakan HTTPS, data yang dikirimkan antara browser dan server dilindungi oleh teknologi enkripsi. Teknologi ini membantu menjaga informasi agar tidak mudah dibaca atau dimanipulasi oleh pihak yang tidak berwenang selama proses komunikasi berlangsung.
Namun, tahukah Anda bahwa SSL/TLS menggunakan dua pendekatan kriptografi yang berbeda, yaitu enkripsi simetris dan kriptografi asimetris?
Keduanya memiliki fungsi yang berbeda, tetapi saling melengkapi. Kriptografi asimetris membantu proses autentikasi dan pembentukan rahasia bersama, sedangkan enkripsi simetris digunakan untuk melindungi data yang dikirimkan setelah koneksi aman terbentuk.
Memahami perbedaan keduanya dapat membantu pemilik website mengetahui bagaimana HTTPS bekerja dan mengapa sertifikat SSL/TLS menjadi bagian penting dari keamanan website.
Apa Itu Enkripsi Simetris?
Enkripsi simetris adalah metode kriptografi yang menggunakan satu kunci rahasia yang sama untuk melakukan enkripsi dan dekripsi data.
Artinya, pihak yang mengirim dan menerima informasi harus memiliki kunci rahasia yang sesuai. Kunci tersebut harus dijaga agar tidak diketahui oleh pihak lain.
Sebagai gambaran sederhana, bayangkan dua orang menggunakan satu kunci yang sama untuk mengunci dan membuka sebuah kotak. Selama hanya kedua orang tersebut yang memiliki kunci, isi kotak dapat dijaga dari orang lain.
Dalam sistem komputer, prinsipnya serupa. Data diubah menjadi bentuk terenkripsi menggunakan kunci rahasia. Penerima yang memiliki kunci yang sama dapat mengembalikannya ke bentuk semula.
Contoh algoritma enkripsi simetris
Beberapa algoritma yang dikenal dalam kriptografi simetris antara lain:
- AES (Advanced Encryption Standard): algoritma enkripsi yang banyak digunakan untuk melindungi data digital.
- ChaCha20: algoritma enkripsi yang dirancang untuk memberikan perlindungan data dengan performa yang baik pada berbagai jenis perangkat.
Dalam TLS modern, AES-GCM dan ChaCha20-Poly1305 merupakan contoh algoritma yang digunakan untuk melindungi data sekaligus membantu memastikan integritasnya.
Kelebihan enkripsi simetris
Beberapa karakteristik enkripsi simetris adalah:
- Proses relatif cepat: cocok untuk mengenkripsi data dalam jumlah besar.
- Efisien: membutuhkan sumber daya komputasi yang relatif lebih rendah dibandingkan banyak operasi kriptografi asimetris.
- Cocok untuk komunikasi berkelanjutan: dapat digunakan untuk melindungi data yang terus dikirim dan diterima selama sesi komunikasi.
Kekurangan enkripsi simetris
Tantangan utama enkripsi simetris adalah bagaimana kedua pihak memperoleh kunci rahasia yang sama dengan aman.
Jika kunci tersebut dikirim melalui saluran komunikasi yang tidak aman dan berhasil diketahui pihak lain, perlindungan data dapat terganggu.
Karena itulah, TLS memerlukan mekanisme untuk membentuk atau memperoleh kunci bersama secara aman sebelum komunikasi data berlangsung.
Apa Itu Enkripsi Asimetris?
Kriptografi asimetris, yang juga dikenal sebagai kriptografi kunci publik (public-key cryptography), menggunakan dua kunci yang saling berhubungan, yaitu:
- Public Key: kunci publik yang boleh dibagikan kepada pihak lain.
- Private Key: kunci privat yang harus dijaga kerahasiaannya oleh pemiliknya.
Kedua kunci tersebut memiliki hubungan matematis. Dalam penggunaan tertentu, data yang diproses dengan satu kunci dapat diverifikasi atau dipulihkan menggunakan kunci pasangannya.
Namun, penting dipahami bahwa kriptografi asimetris tidak hanya digunakan untuk enkripsi dan dekripsi. Teknologi ini juga digunakan untuk pertukaran atau pembentukan kunci dan tanda tangan digital.
Contoh penggunaan kriptografi asimetris
Dalam SSL/TLS, kriptografi asimetris dapat digunakan untuk membantu membuktikan identitas server melalui tanda tangan digital.
Sebagai contoh, server memiliki sertifikat digital yang berisi informasi identitas dan public key. Sertifikat tersebut ditandatangani oleh Certificate Authority (CA).
Ketika browser memeriksa sertifikat, browser dapat memvalidasi rantai sertifikat dan tanda tangan digital untuk memastikan bahwa sertifikat diterbitkan oleh pihak yang dipercaya dan sesuai dengan nama domain yang diakses.
Dalam proses handshake, server juga dapat menggunakan private key untuk membuat tanda tangan digital atas informasi handshake. Browser kemudian memverifikasi tanda tangan tersebut menggunakan public key yang sesuai.
Dengan demikian, browser memperoleh bukti kriptografis bahwa server memiliki private key yang berkaitan dengan identitas dalam sertifikat.
Contoh algoritma kriptografi asimetris
Beberapa algoritma yang digunakan dalam ekosistem TLS antara lain:
- RSA: algoritma kunci publik yang dapat digunakan untuk tanda tangan digital. RSA juga pernah digunakan dalam mekanisme pertukaran kunci pada versi TLS yang lebih lama.
- ECDSA (Elliptic Curve Digital Signature Algorithm): algoritma tanda tangan digital berbasis kurva eliptik.
- EdDSA (Edwards-Curve Digital Signature Algorithm): keluarga algoritma tanda tangan digital berbasis kurva eliptik.
- ECDHE (Elliptic Curve Diffie-Hellman Ephemeral): mekanisme pertukaran kunci yang memungkinkan dua pihak membentuk rahasia bersama menggunakan kontribusi kunci sementara.
Perlu diperhatikan bahwa ECDHE merupakan mekanisme key agreement, bukan algoritma enkripsi data biasa. Kedua pihak menggunakannya untuk membentuk rahasia bersama tanpa harus mengirimkan rahasia tersebut secara langsung.
Kelebihan kriptografi asimetris
- Tidak membutuhkan pembagian private key: public key dapat dibagikan tanpa membuka private key.
- Mendukung autentikasi: tanda tangan digital dapat membantu membuktikan kepemilikan private key.
- Mendukung pembentukan kunci bersama: mekanisme seperti ECDHE memungkinkan dua pihak membentuk rahasia bersama melalui jaringan yang tidak dipercaya.
Kekurangan kriptografi asimetris
- Proses komputasi lebih kompleks: sejumlah operasi asimetris membutuhkan sumber daya lebih besar dibandingkan enkripsi simetris.
- Tidak ideal untuk mengenkripsi seluruh komunikasi: karena itu TLS menggunakan enkripsi simetris untuk melindungi data setelah handshake selesai.
- Pengelolaan private key sangat penting: jika private key yang digunakan untuk autentikasi server bocor, pihak lain berpotensi menyalahgunakannya untuk menyamar sebagai server dalam kondisi tertentu.
Perbedaan Enkripsi Simetris dan Asimetris
Meskipun sama-sama merupakan bagian dari teknologi kriptografi, enkripsi simetris dan kriptografi asimetris memiliki karakteristik dan fungsi yang berbeda.
| Aspek | Simetris | Asimetris |
|---|---|---|
| Kunci | Satu kunci rahasia bersama | Pasangan public key dan private key |
| Kecepatan | Umumnya lebih cepat | Umumnya lebih kompleks secara komputasi |
| Pengelolaan kunci | Kunci rahasia harus dibagikan dengan aman | Public key boleh dibagikan, private key harus dirahasiakan |
| Fungsi umum | Enkripsi dan perlindungan data | Autentikasi, tanda tangan digital, dan pembentukan kunci |
| Contoh | AES, ChaCha20 | RSA, ECDSA, EdDSA, ECDHE |
| Penggunaan dalam TLS | Melindungi data selama sesi komunikasi | Mendukung autentikasi dan pembentukan rahasia bersama |
Dari perbandingan tersebut, dapat dipahami bahwa kedua metode bukanlah teknologi yang saling menggantikan. Keduanya dirancang untuk menangani kebutuhan keamanan yang berbeda.
Bagaimana Enkripsi Simetris dan Asimetris Bekerja Bersama dalam SSL/TLS?
Salah satu hal menarik dari SSL/TLS adalah penggunaan kedua pendekatan kriptografi tersebut dalam satu proses komunikasi.
Ketika pengguna membuka website dengan HTTPS, browser dan server terlebih dahulu menjalankan proses yang disebut TLS Handshake.
Dalam proses ini, keduanya menyepakati parameter keamanan, melakukan autentikasi sesuai mekanisme yang digunakan, dan membentuk material kunci yang akan dipakai untuk melindungi komunikasi.
Berikut gambaran sederhananya.
1. Browser menghubungi server
Ketika pengguna membuka alamat website HTTPS, browser memulai komunikasi dengan server melalui pesan ClientHello.
Pesan ini berisi informasi seperti versi TLS yang didukung, pilihan algoritma kriptografi, serta parameter lain yang dibutuhkan untuk membentuk koneksi.
2. Server memberikan informasi sertifikat
Server merespons dengan informasi handshake, termasuk sertifikat digital yang digunakan untuk mengidentifikasi server.
Browser kemudian memeriksa beberapa hal, seperti:
- Apakah sertifikat berlaku untuk nama domain yang sedang diakses?
- Apakah masa berlaku sertifikat masih aktif?
- Apakah rantai sertifikat dapat ditelusuri ke CA yang dipercaya?
- Apakah tanda tangan dan parameter kriptografinya valid?
Proses ini membantu browser memastikan bahwa identitas server dapat dipercaya.
3. Kedua pihak membentuk rahasia bersama
Pada TLS 1.3, mekanisme pertukaran kunci seperti ECDHE dapat digunakan untuk membentuk rahasia bersama.
Browser dan server masing-masing memiliki kontribusi kunci sementara. Melalui perhitungan kriptografi, keduanya menghasilkan rahasia bersama tanpa mengirimkan rahasia tersebut secara langsung melalui jaringan.
Server juga dapat membuktikan kepemilikan private key sertifikat melalui tanda tangan digital pada informasi handshake.
Dengan demikian, proses pembentukan kunci dan autentikasi server saling melengkapi.
4. Kunci simetris diturunkan
Rahasia bersama yang terbentuk kemudian digunakan sebagai dasar untuk menghasilkan sejumlah kunci sesi melalui proses derivasi kunci.
Pada TLS 1.3, proses ini menggunakan HKDF (HMAC-based Key Derivation Function).
Kunci-kunci sesi tersebut digunakan untuk melindungi komunikasi antara browser dan server.
5. Data dikirim menggunakan enkripsi simetris
Setelah proses handshake selesai, browser dan server menggunakan kunci sesi untuk melindungi data aplikasi.
Misalnya, ketika pengguna:
- Mengisi formulir pada website.
- Login ke akun.
- Mengirimkan informasi melalui halaman checkout.
- Mengakses halaman yang memuat data pribadi.
Data tersebut dilindungi menggunakan algoritma simetris yang telah disepakati, misalnya AES-GCM atau ChaCha20-Poly1305.
Proses ini berlangsung secara efisien sehingga komunikasi dapat terus berjalan tanpa harus menggunakan operasi kriptografi asimetris untuk setiap bagian data.
Ilustrasi Sederhana Cara Kerja Keduanya
Untuk memudahkan pemahaman, bayangkan proses komunikasi antara browser dan server seperti pengiriman dokumen melalui sebuah kotak terkunci.
Kriptografi asimetris membantu kedua pihak membangun kepercayaan dan membentuk rahasia bersama. Sementara itu, enkripsi simetris menggunakan kunci sesi yang telah terbentuk untuk mengunci dan membuka data selama komunikasi berlangsung.
<pre>
BROWSER SERVER
| |
|——– ClientHello ———>|
| |
|<—— ServerHello ———–|
|<—— Sertifikat ————|
| |
| Validasi sertifikat dan |
| autentikasi server |
| |
|<—- Pertukaran kunci ——–>|
| |
| Membentuk rahasia bersama |
| dan menurunkan kunci sesi |
| |
|====== Koneksi aman ===========|
| |
|<==== Data terenkripsi ========>|
| Enkripsi simetris |
</pre>
Ilustrasi tersebut merupakan gambaran konseptual, bukan urutan lengkap seluruh pesan TLS 1.3. Dalam implementasi sebenarnya, terdapat pesan dan tahapan tambahan sesuai konfigurasi serta mekanisme autentikasi yang digunakan.
Apakah SSL/TLS Selalu Menggunakan Enkripsi Asimetris?
Tidak selalu dalam arti yang sama. TLS mendukung beberapa mekanisme autentikasi dan pembentukan kunci.
Pada koneksi TLS 1.3 berbasis sertifikat yang umum digunakan website, server biasanya menggunakan tanda tangan digital untuk autentikasi dan ECDHE untuk pembentukan kunci bersama.
Namun, TLS 1.3 juga mendukung penggunaan PSK (Pre-Shared Key), yaitu rahasia yang sebelumnya sudah dimiliki kedua pihak. PSK dapat digunakan sendiri atau dikombinasikan dengan ECDHE.
Hal penting lainnya adalah bahwa TLS 1.3 tidak lagi menggunakan mekanisme pertukaran kunci RSA statis seperti yang pernah tersedia pada TLS versi lama.
RSA masih dapat digunakan dalam TLS 1.3 untuk tanda tangan digital, tetapi bukan sebagai mekanisme RSA key transport seperti pada konfigurasi TLS lama.
Jadi, jangan menyamakan penggunaan sertifikat RSA dengan penggunaan RSA untuk mengenkripsi seluruh data komunikasi.
Mengapa TLS Menggunakan Kombinasi Kedua Metode?
Menggabungkan kriptografi asimetris dan simetris memberikan beberapa keuntungan.
1. Membantu memastikan identitas server
Sertifikat dan tanda tangan digital membantu browser memverifikasi identitas server. Hal ini mengurangi risiko pengguna berkomunikasi dengan server palsu yang mencoba menyamar sebagai website tujuan.
2. Membentuk kunci komunikasi dengan aman
Mekanisme seperti ECDHE memungkinkan browser dan server membentuk rahasia bersama tanpa perlu mengirimkan kunci sesi secara langsung.
3. Melindungi data dengan efisien
Setelah kunci sesi terbentuk, enkripsi simetris dapat digunakan untuk melindungi data dalam jumlah besar dengan performa yang baik.
4. Mendukung forward secrecy
Ketika TLS menggunakan kunci ECDHE sementara yang baru untuk setiap sesi, koneksi dapat memperoleh perlindungan forward secrecy.
Artinya, jika private key sertifikat server diketahui pihak lain di kemudian hari, kunci tersebut tidak dengan sendirinya cukup untuk membuka kembali sesi lama yang menggunakan rahasia ECDHE sementara dan telah dihapus dengan benar.
Apakah Sertifikat SSL Menggunakan Enkripsi Simetris atau Asimetris?
Sertifikat SSL/TLS berkaitan erat dengan kriptografi asimetris karena sertifikat digital umumnya memuat public key dan informasi identitas pemiliknya.
Namun, sertifikat bukanlah kunci yang digunakan untuk mengenkripsi seluruh data komunikasi website.
Fungsi sertifikat adalah membantu proses identifikasi dan autentikasi server. Sementara itu, enkripsi data selama komunikasi HTTPS dilakukan menggunakan kunci sesi yang dibentuk melalui proses TLS Handshake.
Dengan kata lain:
- Sertifikat SSL/TLS: membantu membuktikan identitas server dan menyediakan public key.
- Private key server: digunakan dalam mekanisme kriptografi yang sesuai, misalnya untuk membuat tanda tangan digital.
- Mekanisme pertukaran kunci: membantu browser dan server membentuk rahasia bersama.
- Kunci sesi: digunakan untuk melindungi komunikasi menggunakan enkripsi simetris.
Inilah alasan mengapa sertifikat SSL/TLS dan enkripsi HTTPS saling berkaitan, tetapi bukan merupakan hal yang sama.
Kesimpulan
Enkripsi simetris dan kriptografi asimetris memiliki fungsi berbeda dalam sistem keamanan digital.
Enkripsi simetris menggunakan satu kunci rahasia bersama dan cocok untuk melindungi data dalam jumlah besar karena prosesnya relatif cepat.
Sementara itu, kriptografi asimetris menggunakan pasangan public key dan private key. Teknologi ini mendukung autentikasi, tanda tangan digital, serta mekanisme pembentukan kunci bersama.
Dalam SSL/TLS modern, keduanya bekerja bersama. Mekanisme handshake membantu melakukan autentikasi dan membentuk kunci sesi, sedangkan enkripsi simetris melindungi data selama komunikasi HTTPS berlangsung.
Dengan memahami cara kerja keduanya, pemilik website dapat lebih memahami bahwa HTTPS bukan sekadar simbol gembok pada browser, melainkan hasil kerja beberapa mekanisme kriptografi yang dirancang untuk menjaga kerahasiaan, integritas, dan autentikasi komunikasi.
FAQ (Pertanyaan yang Sering Diajukan)
1. Apa perbedaan utama enkripsi simetris dan asimetris?
Enkripsi simetris menggunakan satu kunci rahasia yang sama untuk proses enkripsi dan dekripsi. Kriptografi asimetris menggunakan pasangan public key dan private key untuk berbagai fungsi, termasuk enkripsi tertentu, tanda tangan digital, dan pembentukan kunci.
2. Mana yang lebih aman, enkripsi simetris atau asimetris?
Keduanya dapat memberikan keamanan yang kuat jika algoritma, ukuran kunci, implementasi, dan pengelolaannya sesuai standar. Keduanya memiliki fungsi berbeda sehingga tidak tepat membandingkannya hanya berdasarkan mana yang lebih aman.
3. Mengapa SSL/TLS membutuhkan enkripsi simetris?
Enkripsi simetris digunakan untuk melindungi data komunikasi setelah kunci sesi terbentuk. Metode ini relatif efisien untuk menangani pertukaran data dalam jumlah besar antara browser dan server.
4. Apakah public key dan private key digunakan untuk mengenkripsi semua data HTTPS?
Tidak. Public key dan private key dapat digunakan dalam proses autentikasi dan mekanisme kriptografi tertentu. Pada koneksi TLS modern, data aplikasi umumnya dilindungi menggunakan kunci simetris yang diturunkan selama handshake.
5. Apakah AES termasuk enkripsi simetris?
Ya. AES merupakan algoritma enkripsi simetris yang menggunakan kunci rahasia untuk melakukan enkripsi dan dekripsi.
6. Apakah RSA masih digunakan dalam SSL/TLS?
Ya, RSA masih dapat digunakan untuk tanda tangan digital pada konfigurasi TLS yang mendukungnya. Namun, TLS 1.3 tidak lagi mendukung pertukaran kunci RSA statis seperti pada beberapa konfigurasi TLS versi lama.
7. Apakah website yang menggunakan HTTPS otomatis aman dari semua serangan?
Tidak. HTTPS membantu melindungi komunikasi antara browser dan server, tetapi tidak otomatis mencegah serangan seperti phishing, malware, SQL injection, pencurian akun, atau kerentanan pada aplikasi website. Keamanan website tetap membutuhkan pembaruan sistem, konfigurasi server yang tepat, serta pengamanan aplikasi.
Butuh bantuan memilih SSL untuk website Anda?
Kunjungi sslkita.com atau hubungi tim SSLKita melalui email sales@sslkita.com untuk mendiskusikan kebutuhan sertifikat SSL Anda.
Referensi
- NIST – Symmetric-Key Cryptography
- NIST – Public Key Cryptography
- IETF – RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3
- RFC Editor – RFC 8446: TLS 1.3