Jika openssl
menggunakan banyak CPU maka tidak diblokir menunggu "entropi". OpenSSL sebenarnya waras dalam hal itu, dan menggunakan PRNG yang aman secara kriptografis untuk memperluas benih awal menjadi bit sebanyak yang diperlukan.
Saat Anda menggunakan dhparam
, OpenSSL tidak hanya menghasilkan parameter DH; ia juga ingin menegaskan status sosialnya dengan berhati-hati menggunakan modulus yang disebut "premium kuat", yang tidak berguna untuk keamanan tetapi membutuhkan lebih banyak upaya komputasi. Sebuah "prime kuat" adalah sebuah p prima sehingga (p -1)/2 juga prima. Algoritma pembuatan utama terlihat seperti ini:
- Buat bilangan bulat ganjil acak p .
- Uji apakah p adalah prima. Jika tidak, ulangi.
- Uji apakah (p -1)/2 adalah bilangan prima. Jika tidak, ulangi.
Bilangan bulat ganjil 4096-bit acak adalah probabilitas sekitar 1/2000 menjadi bilangan prima, dan karena keduanya p dan (p -1)/2 harus prima, ini akan membutuhkan pembuatan dan pengujian rata-rata untuk keutamaan sekitar 4 juta dari bilangan prima ganjil. Ini pasti akan memakan waktu.
Saat beralih dari 2048-bit ke 4096-bit, kepadatan bilangan prima yang kuat dibagi 4, dan tes primality juga akan menjadi sekitar 4 kali lebih lambat, jadi jika menghasilkan modulus DH 2048-bit rata-rata membutuhkan waktu 1 jam, hal yang sama mesin dengan perangkat lunak yang sama akan menggunakan rata-rata 16 jam untuk modulus DH 4096-bit. Ini hanya rata-rata; setiap generasi mungkin lebih cepat atau lebih lambat, bergantung pada keberuntungan Anda.
Solusi yang masuk akal adalah menambahkan -dsaparam
opsi.
openssl dhparam -dsaparam -out /etc/ssl/private/dhparam.pem 4096
Opsi ini menginstruksikan OpenSSL untuk menghasilkan parameter DH "seperti DSA" (p sedemikian rupa sehingga p -1 adalah kelipatan dari bilangan prima q yang lebih kecil , dan generator memiliki urutan perkalian q ). Ini jauh lebih cepat karena tidak perlu menyarangkan pengujian primality, sehingga hanya ribuan, bukan jutaan, kandidat yang akan dibuat dan diuji.
Sejauh yang diketahui akademisi, parameter mirip DSA untuk DH sama-sama aman; sebenarnya tidak ada keuntungan menggunakan "bilangan prima kuat" (terminologinya tradisional dan sebenarnya tidak menyiratkan kekuatan ekstra).
Demikian pula, Anda juga dapat menggunakan modulus 2048-bit, yang sudah sangat jauh ke dalam "zona tidak dapat menembusnya". Modulus 4096-bit akan membuat perhitungan DH lebih lambat (yang sebenarnya bukan masalah untuk VPN; ini hanya terjadi pada awal koneksi), tetapi sebenarnya tidak akan meningkatkan keamanan.
Sampai batas tertentu, modulus 4096-bit mungkin merayu auditor, tetapi auditor kemungkinan tidak terlalu terkesan dengan Raspberry-Pi, yang bagaimanapun juga terlalu murah.