Bagaimana Diffie-Hellman Key Exchange Menyediakan Komunikasi Terenkripsi
Kebijakan keamanan siber yang efektif menggabungkan kriptografi modern untuk transmisi data yang aman. Mengenkripsi data melindungi informasi sensitif selama pertukaran komunikasi sehingga hanya mereka yang berwenang untuk mendekripsi data tersebut yang dapat mengaksesnya. Tanpa enkripsi, semua data yang dikirimkan melalui internet publik berisiko tercegat dan digunakan kembali secara jahat. Enkripsi membantu mencegah data yang dicuri melalui berbagai alat, termasuk sandi kriptografi seperti pertukaran kunci Diffie-Hellman.
Artikel ini memberikan gambaran singkat tentang bagaimana pertukaran kunci Diffie-Hellman berfungsi untuk enkripsi melalui saluran komunikasi publik, mengidentifikasi potensi paparan risiko saat menggunakan prima Diffie-Hellman, dan menguraikan tiga solusi untuk mengamankan penggunaan algoritma Diffie-Hellman Anda.
Apa itu Pertukaran Kunci Kriptografi?
Dalam kriptografi, pertukaran kunci mengacu pada proses di mana kunci enkripsi dipertukarkan antara dua pihak atau lebih. Kunci tersebut memungkinkan masing-masing pihak untuk mengenkripsi pesan yang ingin mereka kirim dan mendekripsi pesan yang telah mereka terima.
Enkripsi memberikan lapisan keamanan antara data Anda dan penyerang potensial. Algoritme enkripsi yang kompleks melindungi data dari potensi dekripsi oleh serangan brute force yang dapat menebak kunci enkripsi. Ada sejumlah rangkaian sandi yang tersedia dengan komponen variabel. Standar enkripsi terus berubah, tetapi menggunakan berbagai alat yang tersedia untuk Infrastruktur Kunci Publik, seperti enkripsi kunci asimetris dan simetris, dapat membantu Anda mempertahankan postur keamanan siber yang kuat.
Enkripsi asimetris bergantung pada pasangan kunci (kunci publik dan kunci privat), di mana kunci publik mengenkripsi data dan kunci privat mendekripsinya. Pesan atau data disebut teks biasa. Setelah dienkripsi oleh kunci, itu disebut sebagai ciphertext. Enkripsi kunci asimetris adalah dasar untuk protokol SSL/TLS yang menyediakan komunikasi aman melalui HTTPS.
Dengan enkripsi kunci simetris, pengirim dan penerima menggunakan satu kunci identik untuk mendekripsi pesan. Pertukaran kunci Diffie-Hellman adalah salah satu metode enkripsi simetris yang paling umum digunakan dalam kriptografi kunci publik.
Pertukaran Kunci Diffie-Hellman
Algoritma pertukaran kunci Diffie-Hellman adalah metode untuk menyetujui dan menghitung kunci simetris rahasia antara pihak-pihak di saluran atau jaringan publik yang tidak aman. Kunci dapat bersifat sementara (digunakan untuk satu sesi), statis (jangka panjang), atau kombinasi keduanya (semi-statis). Ini dinamai Whitfield Diffie dan Martin Hellman, yang menerbitkan kolaborasi mereka pada algoritma kunci publik pada tahun 1976. Hellman telah menyarankan untuk mengganti namanya menjadi pertukaran kunci Diffie-Hellman-Merkle untuk memasukkan kontribusi Ralph Merkle.
Pertukaran kunci Diffie-Hellman biasanya menggabungkan variabel publik dan operator modulo dengan dua variabel privat untuk menghasilkan kunci sandi simetris bersama. Pertukaran kunci Diffie-Hellman menggunakan bilangan prima besar untuk menghitung kunci. Pertukaran membutuhkan kesepakatan pada prime awal dan operator modulo sehingga perhitungan untuk perjanjian kunci akan konsisten antara kedua belah pihak, meskipun tidak bertukar informasi rahasia melalui saluran publik.
Dengan pertukaran kunci Diffie-Hellman, kedua pihak menyetujui variabel publik bersama (generator) dari beberapa nilai bilangan bulat dan modulus, yang biasanya merupakan bilangan prima besar 2000 atau 4000 bit. Setiap pihak memiliki variabel privat mereka sendiri (kadang-kadang disebut kunci privat) yang akan menyediakan fungsi eksponen. Meskipun variabel-variabel ini kadang-kadang disebut sebagai kunci publik dan pribadi, penting untuk dicatat bahwa Diffie-Hellman bukanlah enkripsi kunci asimetris melainkan metode untuk menghitung kunci simetris bersama melalui eksponensial.
Masing-masing pihak akan membawa variabel publik ke kekuatan variabel privat mereka, menjalankan operasi modulo untuk mencapai hasil numerik, kemudian menukar hasilnya. Setelah masing-masing pihak menerima variabel publik ke kekuatan variabel privat pengirim, mereka mengambil hasil itu ke kekuatan variabel privat mereka sendiri dan menjalankan operasi modulo, yang menghitung hasil akhir yang sama untuk kedua belah pihak. Hasil dari perhitungan ini adalah kunci rahasia bersama.
Karena kunci rahasia bersama memerlukan variabel publik yang dipertukarkan dan variabel privat yang tidak dipertukarkan, menjadi lebih sulit bagi penyerang untuk menentukan kunci rahasia bersama karena secara komputasi sulit untuk mengambil akar persamaan dan penyerang tidak memiliki akses ke variabel privat salah satu pihak secara langsung. Ketika modulus sangat besar, operasi modulo menjadi sangat sulit untuk dipecahkan. Penggunaan Diffie-Hellman dari bilangan prima besar membuat perhitungan logaritma diskrit menjadi sulit, itulah sebabnya Diffie-Hellman sering digunakan sebagai bagian dari rangkaian sandi.
Namun, ada batasan karena pertukaran kunci Diffie-Hellman tidak memerlukan otentikasi antar pihak. Misalnya, kerentanan Logjam (CVE-2015-4000) memungkinkan penyerang untuk menurunkan koneksi aman dan menerapkan prakomputasi logjam untuk bilangan prima yang diketahui yang digunakan dalam implementasi 512-bit dan 1024-bit. Saat Anda menentukan rangkaian sandi dan memilih algoritma kriptografi, pastikan Anda telah menyeimbangkan batasan di antara komponen.
Temuan Risiko Diffie-Hellman
Algoritma Diffie-Hellman menyediakan metode untuk menentukan nomor rahasia yang relatif mudah dicapai dan sulit dipecahkan secara komputasi. Masih ada beberapa risiko yang terlibat dalam menggunakan Diffie-Hellman, terutama jika prima lemah atau umum.
Anda juga dapat menggunakan alat pemindaian otomatis yang memperhitungkan data yang diperlukan untuk memastikan bahwa Anda dapat dengan cepat mengidentifikasi tautan lemah dalam standar enkripsi untuk aset eksternal Anda. UpGuard BreachSight menyediakan pemantauan berkelanjutan dan pemindaian otomatis untuk potensi ancaman, termasuk kerentanan yang diketahui terkait dengan pertukaran kunci Diffie-Hellman:
- Lemah Diffie-Hellman prime digunakan dalam pertukaran kunci
- Prima Diffie-Hellman umum digunakan dalam pertukaran kunci
Ukuran kunci kecil dan bilangan prima yang dapat diprediksi dapat memungkinkan penyerang untuk memecahkan kunci sandi Diffie-Hellman. Beberapa kunci Diffie-Hellman menggunakan bilangan prima umum yang sama. Kerentanan sebelumnya, seperti kerentanan logjam, telah memungkinkan penyerang untuk memecahkan bilangan prima yang diketahui ini, yang dapat menyebabkan pendengaran pasif oleh agen yang tidak sah dan serangan man-in-the-middle (juga dikenal sebagai serangan person-in-the-middle). UpGuard juga memindai kerentanan Logjam dengan temuan Rentan terhadap CVE-2015-4000 (Logjam).
Untuk mencegah bilangan prima yang lemah, pastikan Anda menggunakan bilangan prima yang setidaknya 2048-bit atau lebih besar. Anda juga dapat beralih ke pertukaran kunci Elliptic-Curve Diffie-Hellman Ephemeral (ECDHE), yang menggunakan protokol Diffie-Hellman dengan kunci sementara dan kriptografi kurva elips.
Selain dua temuan Diffie-Hellman, UpGuard juga mengevaluasi SSL/TLS yang lemah atau tidak aman dan rangkaian sandi untuk memastikan bahwa situs web Anda menerapkan langkah-langkah keamanan siber yang kuat. Untuk memahami bagaimana UpGuard mengevaluasi temuan ini, baca artikel kami tentang SSL lemah.
Pengguna UpGuard saat ini dapat masuk dan mengakses Profil Risiko mereka untuk mencari temuan pertukaran kunci Diffie-Hellman di antara aset mereka. Jika Anda bukan pengguna UpGuard saat ini dan ingin menjalankan pemindaian otomatis aset Anda dengan BreachSight, daftar untuk uji coba.
Setelah mengidentifikasi risiko enkripsi di antara aset Anda, Anda dapat menyiapkan langkah-langkah keamanan untuk memperbaiki masalah tersebut sehingga pengguna tetap terlindungi saat mengakses situs web Anda.
Cara Menerapkan Pertukaran Kunci Diffie-Hellman untuk Enkripsi SSL/TLS
Pertukaran kunci Diffie-Hellman bermanfaat untuk enkripsi melalui jaringan publik. Untuk memastikan bahwa penggunaan Diffie-Hellman memberikan tindakan pencegahan keamanan yang diperlukan, Anda dapat menyebarkan pertukaran Diffie-Hellman untuk Transport Layer Security (TLS) dengan tiga rekomendasi berikut.
Nonaktifkan Suite Sandi Ekspor
Rangkaian sandi ekspor adalah rangkaian sandi enkripsi berkekuatan rendah yang dapat memperkenalkan serangan downgrade pada koneksi TLS. Rangkaian sandi ekspor lemah secara desain dan harus dihapus kecuali secara eksplisit diperlukan karena kebutuhan peraturan.
Terapkan Elliptic-Curve Diffie-Hellman Ephemeral (ECDHE)
Kriptografi kurva elips menggunakan kurva eliptik pada medan terbatas untuk membantu menghasilkan kunci enkripsi. Dengan menggunakan kunci sementara untuk pertukaran kunci Diffie-Hellman, setiap pertukaran enkripsi akan memerlukan kunci baru daripada penggunaan kembali kunci statis. Enkripsi ECDHE juga menambahkan kurva eliptik ke masalah logaritma diskrit, meningkatkan kompleksitas masalah sambil menurunkan ambang batas bit untuk tingkat keamanan yang sama. ECDHE juga memungkinkan opsi untuk kerahasiaan maju yang sempurna. Sebagian besar browser lebih memilih pertukaran kunci Elliptic-Curve Diffie-Hellman (ECDH) daripada bidang terbatas Diffie-Hellman.
Gunakan Grup Diffie-Hellman yang Kuat
Untuk mencegah prakomputasi dan penyadap potensial, gunakan grup Diffie-Hellman yang kuat setidaknya 2048-bit atau lebih besar. Sebagian besar browser web modern, termasuk Google Chrome, Mozilla Firefox, dan Microsoft Internet Explorer, memerlukan ukuran grup setidaknya 1024 bit untuk enkripsi kunci publik Diffie-Hellman, dan komputasi menjadi lebih sulit untuk dipecahkan dengan ukuran bit yang lebih besar.
Untuk memastikan bahwa server Anda menggunakan parameter ECDHE yang kuat, terapkan rangkaian sandi yang direkomendasikan Mozilla saat Anda mengonfigurasi server Anda. TLS Sisi Server Mozilla menyediakan panduan untuk konfigurasi dan rangkaian sandi yang direkomendasikan untuk keamanan. Anda dapat menggunakan Generator Konfigurasi SSL untuk menghasilkan kode konfigurasi sesuai dengan kebutuhan server dan lingkungan Anda.
Beberapa penyedia perangkat lunak server juga menawarkan saran untuk penerapan:
- Microsoft Internet Information Services (IIS): Dukungan yang diperbarui untuk pertukaran kunci Diffie-Hellman
- Amazon Elastic Load Balancing: Kebijakan keamanan SSL yang telah ditentukan sebelumnya untuk Classic Load Balancer
Untuk perangkat lunak lain, gunakan file konfigurasi yang sesuai untuk membuat perubahan apa pun:
- Server HTTP Apache: [.rt-script]httpd.conf[.rt-script] atau untuk host virtual tertentu yang ditemukan di direktori [.rt-script]/etc/apache2/sites-available/[.rt-script]
- Apache Tomcat: [.rt-skrip]server.xml[.rt-skrip]
- Dovecot: [.rt-skrip]/etc/dovecot.conf[.rt-skrip]
- HAProxy: [.rt-script]/etc/haproxy/haproxy.cfg[.rt-script]
- Lighttpd: [.rt-skrip]/etc/lighttpd/lighttpd.conf[.rt-skrip]
- Nginx: blok server yang disimpan di direktori [.rt-script]/etc/nginx/sites-enabled/default[.rt-script]
- Pascafix SMTP: [.rt-script]/etc/postfix/main.cf[.rt-script]
- Mengirim email: [.rt-script]/etc/mail/sendmail.mc[.rt-script]
Setelah Anda menerapkan pengaturan konfigurasi yang diperbarui, Anda dapat menambah penggunaan Diffie-Hellman dengan alat kriptografi lainnya, seperti tanda tangan digital untuk autentikasi. Misalnya, Anda dapat menggunakan sertifikat ECDHE-RSA sehingga algoritma RSA dapat mengautentikasi sumber pesan.