Saat mengunjungi sebuah website yang menggunakan HTTPS, browser dan server perlu menyepakati sejumlah aturan keamanan sebelum bertukar data. Salah satu bagian penting dalam proses tersebut adalah cipher suite.
Istilah ini mungkin terdengar teknis, tetapi sebenarnya cipher suite memiliki peran yang cukup mudah dipahami. Cipher suite menentukan algoritma kriptografi yang digunakan untuk melindungi komunikasi antara browser pengunjung dan server website.
Pemilihan cipher suite yang tepat membantu memastikan data yang dikirimkan melalui HTTPS terlindungi dengan baik. Sebaliknya, penggunaan algoritma yang sudah lemah atau konfigurasi yang kurang tepat dapat mengurangi tingkat keamanan koneksi.
Lalu, apa sebenarnya cipher suite dalam SSL/TLS? Bagaimana cara kerjanya, apa saja komponennya, dan mengapa pemilik website perlu memahaminya?
Mari kita bahas secara bertahap.
Apa Itu Cipher Suite?
Cipher suite adalah kumpulan algoritma kriptografi yang digunakan dalam koneksi SSL/TLS untuk mengamankan komunikasi antara client dan server.
Dalam konteks website, client biasanya merupakan browser seperti Google Chrome, Mozilla Firefox, atau Microsoft Edge. Sementara itu, server adalah komputer yang menyimpan dan menjalankan website.
Ketika seseorang membuka website menggunakan HTTPS, browser dan server perlu menentukan algoritma keamanan yang sama-sama didukung. Kesepakatan tersebut dilakukan melalui proses negosiasi saat TLS handshake.
Cipher suite membantu menentukan bagaimana data akan dienkripsi dan bagaimana integritas data dijaga selama komunikasi berlangsung.
Sederhananya, jika TLS merupakan protokol yang mengatur cara komunikasi aman dilakukan, maka cipher suite merupakan salah satu bagian yang menentukan metode kriptografi yang digunakan dalam komunikasi tersebut.
Apa Fungsi Cipher Suite dalam SSL/TLS?
Cipher suite memiliki beberapa fungsi penting dalam menjaga keamanan komunikasi website.
1. Menentukan Algoritma Enkripsi
Cipher suite menentukan algoritma yang digunakan untuk melindungi data selama proses komunikasi.
Contohnya adalah AES-GCM dan ChaCha20-Poly1305. Keduanya merupakan algoritma yang dapat digunakan untuk mengenkripsi sekaligus memeriksa keaslian data.
Dengan enkripsi tersebut, informasi yang dikirimkan melalui koneksi HTTPS tidak dapat dibaca begitu saja oleh pihak yang tidak memiliki kunci sesi yang sesuai.
2. Menjaga Integritas Data
Selain menjaga kerahasiaan, komunikasi TLS juga harus memastikan data tidak berubah tanpa terdeteksi selama perjalanan.
Algoritma AEAD (Authenticated Encryption with Associated Data) menggabungkan fungsi enkripsi dan autentikasi data.
Dengan demikian, penerima dapat memeriksa apakah data yang diterima masih sesuai dengan data yang dikirimkan.
3. Mendukung Keamanan Proses TLS
Pada TLS, cipher suite merupakan bagian dari negosiasi keamanan antara browser dan server.
Kedua pihak harus memilih konfigurasi yang kompatibel. Jika tidak ditemukan pilihan yang sama, proses pembentukan koneksi dapat gagal.
4. Membantu Menentukan Tingkat Keamanan Koneksi
Tidak semua algoritma kriptografi memiliki tingkat keamanan yang sama. Beberapa algoritma yang dahulu digunakan dalam TLS sekarang sudah dianggap lemah atau tidak direkomendasikan.
Karena itu, administrator server perlu memastikan bahwa konfigurasi cipher suite tidak menggunakan algoritma yang sudah tidak aman.
Apa Saja Komponen dalam Cipher Suite?
Untuk memahami cara kerja cipher suite, kita perlu mengenal beberapa komponen kriptografi yang terlibat.
Pada TLS 1.2, nama cipher suite biasanya menggambarkan beberapa komponen sekaligus, seperti mekanisme pertukaran kunci, autentikasi, algoritma enkripsi, dan fungsi hash.
Sementara itu, TLS 1.3 menggunakan format yang lebih sederhana. Cipher suite pada TLS 1.3 hanya menentukan algoritma enkripsi simetris berbasis AEAD dan fungsi hash yang digunakan dalam proses derivasi kunci.
Berikut penjelasan komponen-komponen pentingnya.
1. Key Exchange (Pertukaran Kunci)
Key exchange merupakan mekanisme yang memungkinkan client dan server membentuk rahasia bersama yang nantinya digunakan untuk menghasilkan kunci sesi.
Salah satu contoh mekanisme yang umum digunakan adalah ECDHE (Elliptic Curve Diffie-Hellman Ephemeral).
ECDHE memungkinkan kedua pihak menghasilkan rahasia bersama tanpa harus mengirimkan rahasia tersebut secara langsung melalui jaringan.
Mekanisme ini juga mendukung Forward Secrecy, yaitu perlindungan yang membantu menjaga kerahasiaan sesi komunikasi sebelumnya meskipun kunci privat sertifikat server diketahui pihak lain di kemudian hari.
Perlu dipahami bahwa ECDHE bukan algoritma untuk mengenkripsi seluruh data website. Fungsinya adalah membantu membentuk rahasia bersama yang menjadi dasar pembuatan kunci sesi.
2. Authentication (Autentikasi)
Autentikasi digunakan untuk memastikan identitas server yang sedang diajak berkomunikasi.
Dalam TLS, proses ini berkaitan dengan sertifikat digital dan tanda tangan digital.
Contohnya, sertifikat server dapat menggunakan RSA atau ECDSA untuk mendukung autentikasi. Browser kemudian memeriksa sertifikat dan tanda tangan digital sesuai aturan validasi yang berlaku.
Pada TLS 1.3, algoritma autentikasi dan tanda tangan dinegosiasikan secara terpisah dari cipher suite.
3. Symmetric Encryption (Enkripsi Simetris)
Enkripsi simetris digunakan untuk melindungi data yang dikirimkan setelah koneksi TLS berhasil dibentuk.
Algoritma ini menggunakan kunci sesi yang sesuai untuk mengenkripsi dan mendekripsi data.
Beberapa contoh algoritma yang umum digunakan adalah:
- AES-128-GCM: menggunakan AES dengan panjang kunci 128 bit dan mode GCM.
- AES-256-GCM: menggunakan AES dengan panjang kunci 256 bit dan mode GCM.
- ChaCha20-Poly1305: algoritma enkripsi dan autentikasi yang juga banyak digunakan dalam implementasi TLS modern.
Ketiganya merupakan contoh algoritma AEAD yang dapat memberikan kerahasiaan sekaligus pemeriksaan integritas data.
4. Hash Function (Fungsi Hash)
Fungsi hash menghasilkan nilai ringkas dari suatu data dan digunakan dalam berbagai proses kriptografi.
Dalam TLS 1.3, fungsi hash juga digunakan bersama HKDF (HMAC-based Extract-and-Expand Key Derivation Function) untuk menghasilkan dan mengelola material kunci sesi.
Contoh fungsi hash yang digunakan dalam cipher suite TLS 1.3 adalah SHA-256 dan SHA-384.
Fungsi hash bukan pengganti enkripsi. Perannya berbeda, terutama dalam mendukung derivasi kunci dan proses kriptografi lainnya.
Bagaimana Cara Kerja Cipher Suite?
Cipher suite bekerja melalui proses negosiasi antara browser dan server ketika koneksi TLS dibentuk.
Proses ini berlangsung sebagai bagian dari TLS handshake.
Berikut gambaran sederhananya.
1. Browser Mengirimkan Daftar Cipher Suite
Ketika pengunjung membuka website HTTPS, browser mengirimkan pesan awal bernama ClientHello.
Pesan tersebut berisi informasi mengenai kemampuan TLS yang didukung browser, termasuk daftar cipher suite yang dapat digunakan.
Browser biasanya mengirimkan beberapa pilihan berdasarkan urutan preferensi atau kebijakan implementasinya.
2. Server Memilih Cipher Suite
Setelah menerima ClientHello, server memeriksa daftar pilihan yang dikirimkan browser.
Server kemudian menentukan cipher suite yang didukung oleh kedua pihak dan sesuai dengan konfigurasi keamanannya.
Jika tidak ada cipher suite yang cocok, koneksi TLS tidak dapat dilanjutkan dengan konfigurasi tersebut.
3. Kedua Pihak Membentuk Kunci Sesi
Setelah parameter keamanan disepakati, browser dan server melanjutkan proses pembentukan koneksi.
Dalam TLS modern, mekanisme pertukaran kunci seperti ECDHE dapat digunakan untuk menghasilkan rahasia bersama.
Rahasia tersebut kemudian diproses melalui mekanisme derivasi kunci untuk menghasilkan kunci sesi.
4. Data Mulai Dikirimkan dengan Aman
Setelah proses handshake berhasil diselesaikan, browser dan server mulai bertukar data aplikasi melalui koneksi yang sudah dilindungi TLS.
Data tersebut dilindungi menggunakan algoritma enkripsi simetris yang telah disepakati.
Dengan cara ini, informasi seperti data formulir, informasi login, dan komunikasi lainnya dapat dikirimkan melalui koneksi HTTPS dengan perlindungan kerahasiaan dan integritas.
Contoh Cipher Suite dalam TLS 1.2 dan TLS 1.3
Nama cipher suite sering terlihat panjang dan sulit dipahami. Namun, setiap bagian memiliki arti tersendiri.
Berikut beberapa contoh yang dapat membantu memahami perbedaannya.
Contoh Cipher Suite TLS 1.2
Salah satu contoh cipher suite TLS 1.2 adalah:
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
Secara sederhana, nama tersebut dapat dijelaskan sebagai berikut:
| Komponen | Penjelasan |
|---|---|
| TLS | Protokol yang digunakan |
| ECDHE | Mekanisme pertukaran kunci |
| RSA | Metode autentikasi berbasis tanda tangan digital |
| AES_128_GCM | Algoritma enkripsi simetris |
| SHA256 | Fungsi hash yang digunakan dalam konteks suite TLS 1.2 |
Contoh lainnya adalah:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
Cipher suite tersebut menggunakan ECDHE untuk pertukaran kunci, ECDSA untuk autentikasi, AES-256-GCM untuk perlindungan data, dan SHA-384 sebagai fungsi hash.
Perlu dicatat bahwa arti komponen pada nama cipher suite TLS 1.2 tidak selalu dapat disamakan dengan cara kerja komponen dalam TLS 1.3.
Contoh Cipher Suite TLS 1.3
TLS 1.3 memiliki format nama yang lebih sederhana.
Beberapa contoh cipher suite yang ditetapkan dalam standar TLS 1.3 antara lain:
| Cipher Suite | Algoritma Enkripsi | Fungsi Hash |
|---|---|---|
| TLS_AES_128_GCM_SHA256 | AES-128-GCM | SHA-256 |
| TLS_AES_256_GCM_SHA384 | AES-256-GCM | SHA-384 |
| TLS_CHACHA20_POLY1305_SHA256 | ChaCha20-Poly1305 | SHA-256 |
Perhatikan bahwa nama cipher suite TLS 1.3 tidak lagi mencantumkan mekanisme pertukaran kunci atau algoritma autentikasi seperti ECDHE, RSA, dan ECDSA.
Hal tersebut karena TLS 1.3 memisahkan negosiasi cipher suite dari pemilihan parameter pertukaran kunci dan autentikasi.
Perbedaan Cipher Suite TLS 1.2 dan TLS 1.3
Perubahan dari TLS 1.2 ke TLS 1.3 tidak hanya berkaitan dengan versi protokol. Cara cipher suite didefinisikan juga mengalami perubahan penting.
| Aspek | TLS 1.2 | TLS 1.3 |
|---|---|---|
| Format cipher suite | Lebih panjang dan mencakup beberapa komponen | Lebih sederhana |
| Key exchange | Dicantumkan dalam nama suite | Dinegosiasikan terpisah |
| Authentication | Dapat dicantumkan dalam nama suite | Dinegosiasikan terpisah |
| Enkripsi | Mendukung beberapa jenis algoritma dan mode | Menggunakan AEAD |
| Algoritma lama | Masih memiliki pilihan lama yang perlu dihindari | Pilihan algoritma lebih dibatasi |
| Pengaturan keamanan | Memerlukan perhatian lebih pada pemilihan suite | Lebih sederhana dari sisi cipher suite |
Mengapa TLS 1.3 Mengubah Format Cipher Suite?
TLS 1.2 memberikan fleksibilitas yang cukup luas dalam pemilihan kombinasi algoritma. Namun, fleksibilitas tersebut juga membuat administrator perlu lebih berhati-hati karena tidak semua kombinasi memiliki tingkat keamanan yang sama.
TLS 1.3 menyederhanakan pilihan cipher suite dan memisahkan beberapa parameter keamanan agar proses negosiasi menjadi lebih terstruktur.
TLS 1.3 juga tidak lagi mendukung sejumlah mekanisme dan algoritma lama yang dianggap tidak sesuai untuk standar keamanan modern.
Dengan perubahan tersebut, konfigurasi keamanan menjadi lebih sederhana dan risiko penggunaan kombinasi algoritma yang lemah dapat dikurangi.
Apakah Cipher Suite Berpengaruh terhadap Kecepatan Website?
Ya, pemilihan algoritma kriptografi dapat memengaruhi performa koneksi, meskipun dampaknya tidak selalu sama pada setiap server dan perangkat.
Beberapa faktor yang dapat memengaruhi performa antara lain:
- Efisiensi algoritma enkripsi yang digunakan.
- Kemampuan prosesor server dan perangkat pengunjung.
- Dukungan akselerasi perangkat keras.
- Implementasi TLS pada sistem operasi dan web server.
- Kondisi jaringan dan proses handshake.
AES-GCM, misalnya, dapat bekerja sangat efisien pada perangkat yang memiliki dukungan akselerasi AES. Sementara itu, ChaCha20-Poly1305 dapat menjadi pilihan yang efisien pada perangkat tertentu yang tidak memiliki akselerasi AES.
Namun, tidak tepat jika menyimpulkan bahwa satu algoritma selalu lebih cepat daripada algoritma lainnya pada semua kondisi.
Karena itu, administrator server sebaiknya memilih konfigurasi yang aman dan kompatibel, kemudian melakukan pengujian performa sesuai lingkungan server yang digunakan.
Bagaimana Cara Memeriksa Cipher Suite pada Website?
Pemilik website atau administrator server dapat memeriksa cipher suite yang digunakan oleh koneksi HTTPS.
Ada beberapa cara yang dapat dilakukan.
1. Menggunakan SSL Labs Server Test
Salah satu layanan yang dapat digunakan adalah SSL Labs Server Test dari Qualys.
Layanan ini membantu menganalisis konfigurasi SSL/TLS pada server, termasuk protokol yang didukung dan cipher suite yang tersedia.
Langkah umumnya:
- Buka situs SSL Labs Server Test.
- Masukkan nama domain website.
- Jalankan pemeriksaan.
- Tunggu hingga hasil analisis selesai.
- Periksa bagian konfigurasi protokol dan cipher suite.
Hasil pemeriksaan dapat membantu administrator mengetahui apakah server masih mendukung protokol atau algoritma lama yang perlu dievaluasi.
2. Menggunakan OpenSSL
Administrator server juga dapat menggunakan OpenSSL untuk menguji koneksi TLS.
Contoh perintah untuk memeriksa koneksi TLS 1.2:
openssl s_client -connect example.com:443 -servername example.com -tls1_2Contoh untuk memeriksa koneksi TLS 1.3:
openssl s_client -connect example.com:443 -servername example.com -tls1_3Ganti example.com dengan domain website yang ingin diperiksa.
Setelah koneksi berhasil dibuat, perhatikan informasi yang menampilkan protokol dan cipher yang digunakan.
Perintah tersebut menguji negosiasi koneksi dari perangkat tempat OpenSSL dijalankan. Hasilnya bukan daftar lengkap seluruh cipher suite yang diaktifkan pada server.
Apa yang Harus Diperhatikan dalam Konfigurasi Cipher Suite?
Bagi administrator server, pemilihan cipher suite bukan sekadar memilih algoritma dengan angka atau nama yang terlihat paling kuat.
Ada beberapa hal yang perlu diperhatikan.
1. Hindari Algoritma yang Sudah Lemah
Algoritma seperti RC4, serta sejumlah konfigurasi lama berbasis NULL encryption atau mekanisme yang tidak menyediakan autentikasi memadai, tidak layak digunakan untuk komunikasi website yang membutuhkan keamanan.
Administrator perlu mengikuti rekomendasi standar TLS dan dokumentasi perangkat lunak server yang digunakan.
2. Prioritaskan TLS Modern
Jika infrastruktur server dan aplikasi sudah mendukungnya, TLS 1.3 dapat menjadi pilihan utama.
TLS 1.2 masih dapat digunakan dengan konfigurasi yang tepat, terutama untuk menjaga kompatibilitas dengan perangkat atau aplikasi yang belum mendukung TLS 1.3.
3. Gunakan Konfigurasi yang Sesuai dengan Server
Tidak semua server memiliki dukungan algoritma dan kemampuan yang sama.
Konfigurasi perlu disesuaikan dengan web server, sistem operasi, library TLS, serta kebutuhan kompatibilitas pengunjung.
4. Lakukan Pengujian Setelah Perubahan
Perubahan konfigurasi TLS dapat memengaruhi kompatibilitas website dengan browser, aplikasi, atau sistem tertentu.
Karena itu, lakukan pengujian setelah perubahan diterapkan. Pastikan koneksi HTTPS berjalan normal dan tidak menimbulkan masalah bagi pengunjung.
Apakah Cipher Suite Sama dengan Sertifikat SSL?
Tidak. Cipher suite dan sertifikat SSL/TLS merupakan dua komponen yang berbeda, meskipun keduanya bekerja bersama dalam membentuk koneksi HTTPS yang aman.
Sertifikat SSL/TLS berfungsi untuk membantu membuktikan identitas server dan menyediakan informasi kunci publik serta tanda tangan digital.
Sementara itu, cipher suite menentukan algoritma enkripsi simetris dan fungsi hash yang digunakan dalam perlindungan komunikasi, sesuai versi TLS yang digunakan.
Keduanya memiliki peran yang saling melengkapi.
Memiliki sertifikat SSL/TLS yang valid tidak otomatis menjamin seluruh konfigurasi keamanan server sudah optimal. Server tetap perlu menggunakan versi TLS dan algoritma kriptografi yang sesuai dengan standar keamanan saat ini.
Kesimpulan
Cipher suite merupakan bagian penting dalam mekanisme keamanan SSL/TLS. Komponen ini menentukan algoritma kriptografi yang digunakan untuk melindungi komunikasi antara browser dan server website.
Melalui proses negosiasi saat TLS handshake, browser dan server memilih konfigurasi keamanan yang sama-sama didukung. Setelah koneksi berhasil dibentuk, algoritma yang disepakati digunakan untuk melindungi pertukaran data.
Perkembangan dari TLS 1.2 ke TLS 1.3 membawa perubahan penting pada format dan cara kerja cipher suite. TLS 1.3 menyederhanakan definisi cipher suite, menggunakan algoritma AEAD, serta memisahkan pemilihan algoritma enkripsi dari mekanisme pertukaran kunci dan autentikasi.
Bagi pemilik website, memahami cipher suite dapat membantu mengenali mengapa konfigurasi TLS server perlu diperhatikan. Sementara itu, administrator server perlu memastikan penggunaan algoritma yang masih direkomendasikan, menjaga kompatibilitas, dan melakukan pemeriksaan keamanan secara berkala.
Dengan konfigurasi TLS yang tepat, sertifikat SSL/TLS dapat bekerja bersama mekanisme kriptografi modern untuk membantu menjaga komunikasi website tetap aman.
FAQ Seputar Cipher Suite SSL/TLS
1. Apa yang dimaksud dengan cipher suite?
Cipher suite adalah kumpulan algoritma kriptografi yang digunakan dalam koneksi SSL/TLS untuk melindungi komunikasi antara client dan server. Pada TLS 1.3, cipher suite menentukan algoritma enkripsi AEAD dan fungsi hash yang digunakan dalam derivasi kunci.
2. Apa fungsi utama cipher suite?
Fungsi utamanya adalah menentukan algoritma yang digunakan untuk mengenkripsi dan mengautentikasi data selama komunikasi TLS. Cipher suite juga menjadi bagian dari proses negosiasi keamanan antara browser dan server.
3. Apakah cipher suite memengaruhi keamanan website?
Ya. Cipher suite yang menggunakan algoritma lemah atau konfigurasi yang tidak tepat dapat mengurangi keamanan koneksi. Karena itu, server perlu menggunakan pilihan algoritma yang masih direkomendasikan.
4. Apa contoh cipher suite yang digunakan TLS 1.3?
Beberapa contohnya adalah:
TLS_AES_128_GCM_SHA256TLS_AES_256_GCM_SHA384TLS_CHACHA20_POLY1305_SHA256
Ketiganya menggunakan algoritma AEAD untuk melindungi data komunikasi.
5. Apakah TLS 1.2 masih aman digunakan?
TLS 1.2 masih dapat digunakan dengan konfigurasi yang tepat, algoritma yang kuat, dan implementasi yang diperbarui. Namun, jika infrastruktur mendukung TLS 1.3, penggunaan TLS 1.3 merupakan pilihan modern yang layak diprioritaskan.
6. Apakah pemilik website perlu mengatur cipher suite sendiri?
Tidak selalu. Banyak penyedia hosting dan pengelola server sudah menyediakan konfigurasi TLS secara otomatis. Namun, administrator tetap perlu mengetahui cara memeriksa konfigurasi tersebut untuk memastikan server tidak menggunakan algoritma yang sudah lemah.
7. Apakah sertifikat SSL yang bagus otomatis menjamin cipher suite aman?
Tidak. Sertifikat SSL/TLS dan cipher suite memiliki fungsi berbeda. Sertifikat membantu autentikasi identitas server, sedangkan cipher suite menentukan algoritma kriptografi tertentu dalam koneksi TLS. Keamanan koneksi membutuhkan konfigurasi yang tepat pada keduanya serta komponen TLS lainnya.
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
- RFC 9846 – The Transport Layer Security (TLS) Protocol Version 1.3, RFC Editor.
- RFC 9325 – Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS), RFC Editor.
- IANA – Transport Layer Security (TLS) Parameters, bagian TLS Cipher Suites.
- RFC 9847 – IANA Registry Updates for TLS and DTLS.
