È possibile implementare la forward secrecy anche nelle sessioni TLS di Postfix.
Questa guida parte dal presupposto che Postfix abbia TLS configurato e funzionante, non importa se con un certificato auto-emesso o rilasciato da un’autorità PKI, e si applica alla versione 2.10, le versioni precedenti potrebbero aver bisogno di qualche aggiustamento dei parametri, come indicato nel readme apposito.
Lo scopo è di avere delle chiavi di sessione effimere con una vita relativamente breve al fine di rendere più ardua la cosiddetta retrospective decryption attraverso una rigenerazione periodica dei parametri p e g dell’algoritmo Diffie-Hellman per lo scambio di chiavi.
Se si compila Postfix sul proprio server è consigliabile avere OpenSSL 1.0.0 o successiva; dal momento che alcune versioni non aggiornate di RedHat/CentOS possono avere il protocollo ECDHE disabilitato per dubbi (ora risolti) sul copyright dell’algoritmo, è bene comunque verificare con il comando
openssl ciphers -V 'EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA256 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EDH+aRSA EECDH RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS'
Per default, dalla versione 2.8 Postfix supporta nativamente le curve ellittiche, ma è bene verificare che il parametro smtpd_tls_eecdh_grade
sia impostato a strong
(il default) oppure non sia indicato.
Nel file main.cf
aggiungere (o modificare) questi parametri:
smtpd_tls_dh1024_param_file = /etc/postfix/dh2048.pem smtpd_tls_dh512_param_file = /etc/postfix/dh512.pem
Se qualche client dovesse dare errore potrebbe essere perché non supporta i parametri EDH a 2048 byte; per aggirare il problema modificare il submission
in master.cf
aggiungendo questi parametri
-o smtpd_tls_dh1024_param_file=/etc/postfix/dh1024.pem -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes
e utilizzare sul client la porta submission per inviare la mail.
Per rigenerare periodicamente i parametri EDH creare uno script simile a questo
#!/bin/bash cd /etc/postfix openssl dhparam -out dh512.tmp 512 && mv dh512.tmp dh512.pem openssl dhparam -out dh1024.tmp 1024 && mv dh1024.tmp dh1024.pem openssl dhparam -out dh2048.tmp 2048 && mv dh2048.tmp dh2048.pem chmod 644 dh512.pem dh1024.pem dh2048.pem
ed eseguirlo con i privilegi di root. Una frequenza di una volta la giorno è ragionevolmente sicura, i più paranoici possono rigenerare i parametri più spesso. In una macchina virtuale di medie performance la rigenerazione richiede al massimo due o tre minuti; è ovviamente consigliabile disporre di una buona fonte di entropia.
Non è necessario ricaricare Postfix dopo aver rigenerato i parametri EDH.
Se si desidera indicare negli header dei messaggi le caratteristiche della sessione TLS aggiungere la riga
smtpd_tls_received_header = yes
al file main.cf
La lettura di questo articolo aiuta chi volesse approfondire ulteriormente il tema.
Lascia un commento