Pokud openssl
používá hodně CPU, pak není blokován čekáním na "entropii". OpenSSL je v tomto ohledu skutečně rozumné a používá kryptograficky zabezpečený PRNG k rozšíření počátečního jádra na tolik bitů, kolik potřebuje.
Když použijete dhparam
OpenSSL nejen generuje DH parametry; chce také prosadit své sociální postavení tím, že se bude starat o to, aby pro modul použil takzvaný "silný prvočíslo", který je z hlediska bezpečnosti k ničemu, ale vyžaduje mnohem více výpočetního úsilí. "Silné prvočíslo" je prvočíslo p tak, že (p -1)/2 je také prvočíslo. Algoritmus primární generace vypadá takto:
- Vygenerujte náhodné liché celé číslo p .
- Otestujte, zda p je prvotřídní. Pokud ne, smyčka.
- Otestujte, zda (p -1)/2 je prvočíslo. Pokud ne, smyčka.
Náhodná lichá 4096bitová celá čísla mají pravděpodobnost asi 1/2000, že budou prvočísla, a protože obě p a (p -1)/2 musí být prvočíslo, bude to vyžadovat průměrně generování a testování na primálnost asi 4 miliony lichých prvočísel. To bude nějakou dobu trvat.
Při přechodu z 2048 bitů na 4096 bitů se hustota silných prvočísel vydělí 4 a testy primality budou také asi 4krát pomalejší, takže pokud generování 2048bitového modulu DH trvá v průměru 1 hodinu, to samé stroj se stejným softwarem bude používat průměrně 16 hodin pro 4096bitový modul DH. Toto jsou pouze průměry; každá jednotlivá generace může být rychlejší nebo pomalejší, v závislosti na vašem štěstí.
Rozumným řešením by bylo přidat -dsaparam
možnost.
openssl dhparam -dsaparam -out /etc/ssl/private/dhparam.pem 4096
Tato možnost dává pokyn OpenSSL, aby vytvořilo parametry DH „podobné DSA“ (p je takové, že p -1 je násobek menšího prvočísla q a generátor má multiplikativní pořadí q ). To je podstatně rychlejší, protože není nutné vnořovat testy primality, a tak budou generovány a testovány pouze tisíce, nikoli miliony kandidátů.
Pokud akademici vědí, parametry podobné DSA pro DH jsou stejně bezpečné; použití „silných prvočísel“ nemá žádnou skutečnou výhodu (terminologie je tradiční a ve skutečnosti neznamená nějakou extra sílu).
Podobně můžete také použít 2048bitový modul, který je již velmi daleko v zóně „cannot break it“. 4096bitový modul zpomalí výpočty DH (což není skutečný problém pro VPN; ty se vyskytují pouze na začátku připojení), ale ve skutečnosti nezlepší zabezpečení.
Do určité míry může 4096bitový modul uchvátit auditory, ale je nepravděpodobné, že by na auditory udělal velký dojem Raspberry-Pi, které je tak jako tak příliš levné.