Generare manualmente un parametro di Diffie-Hellman¶
Per la maggior sicurezza possibile nell'uso di SSL, ed in particolare per la robustezza della Perfect Forward Security (la possibilità cioè di non poter decifrare dell’eventuale traffico registrato in precedenza, anche quando si venisse in possesso delle chiavi di cifratura) è importante usare un parametro di Diffie-Helman di dimensioni opportune. Il default usato è in genere di 1024 bit, che non è più considerato molto sicuro.
In molti programmi è comunque possibile utilizzare un parametro di dimensioni maggiori (2048 o 4096 bit), basta fornire un file con il relativo contenuto. Un elenco delle direttive di configurazione di vari servizi che consentono di indicarlo è riportato nella tabella seguente:
Server | Direttiva |
OpenVPN | dh /path/dhparam.pem |
nginx | ssl_dhparam /path/dhparam.pem |
Apache (>2.4.7) | SSLOpenSSLConfCmd DHParameters /path/dhparam.pem |
Postfix | smtpd_tls_dh1024_param_file =/path/dhparam.pem |
Dovecot | ssl_dh /path/dhparam.pem |
Dato che la generazione richiede una notevole quantità di numeri casuali (generati dal kernel raccogliendo il "rumore" degli eventi di sistema) questa può risultare lenta, specialmente se fatta su un server remoto, dove non si possono usare tecniche come quelle di premere tasti a caso sulla console per aumentare il pool di numeri casuali a disposizione del kernel (farlo su una connessione remota non servirebbe, per sicurezza gli eventi generati dalla rete non vengono presi in considerazione). Per questo è in genere assai più semplice generarlo localmente, dove si può utilizzare questo trucco, e poi spostarlo a destinazione.
Il comando che consente di generare in locale il parametro di Diffie-Hellman e salvarlo su un file è sempre openssl
, con il sottocomando dhparam
; si potrà ottenere il file dhparam.pem
con il parametro nella dimensione voluta (indicata in bit dall'ultimo argomento) eseguendo:
openssl dhparam -out dhparam.pem 2048
ed una volta terminata l'esecuzione sarà sufficiente poi copiare dhparam.pem
a destinazione.
Si tenga presente che un parametro di dimensione maggiore, oltre ad un tempo molto più lungo per la generazione iniziale, richiederà anche più risorse (CPU e tempo di esecuzione) nella gestione delle connessioni una volta installato; pertanto se oggi il minimo consigliato per la dimensione è di 2048 bit, non vale comunque la pena andare oltre i 4096 bit.
Aggiornato da Simone Piccardi 2 mesi fa · 4 revisions