Cipher suite: gli algoritmi della crittografia TLS
Quando un browser si connette a un server HTTPS, il primo passo è il TLS handshake: client e server negoziano quale combinazione di algoritmi crittografici (cipher suite) usare per la connessione. Un cipher suite è composto da quattro algoritmi: lo scambio chiavi (come ECDHE che garantisce forward secrecy), l'autenticazione (RSA o ECDSA per verificare l'identità del server), la cifratura simmetrica (AES-256-GCM per crittografare i dati), e la funzione hash (SHA384 per l'integrità). La sicurezza della connessione dipende interamente dalla robustezza di questi algoritmi.
Il TLS Cipher Test analizza i cipher suite offerti dal server durante l'handshake, verificando versioni TLS supportate, ordine di preferenza dei cipher, presenza di cipher deboli o obsoleti, e supporto per funzionalità avanzate come forward secrecy. Un server ben configurato offre solo cipher suite moderni e sicuri, con TLS 1.2 e 1.3 come uniche versioni supportate, e forward secrecy su tutte le connessioni.
Cipher sicuri vs obsoleti
I cipher da evitare assolutamente: RC4 (broken), DES e 3DES (deboli), MD5 (collisioni note), export cipher (crittografia deliberatamente indebolita), e qualsiasi cipher senza forward secrecy (RSA key exchange diretto). I cipher consigliati usano ECDHE per lo scambio chiavi (forward secrecy), AES-GCM o ChaCha20-Poly1305 per la cifratura, e SHA256+ per l'hash. TLS 1.3 semplifica la scelta: offre solo cipher suite sicuri per design.
Configurare TLS correttamente
Per Nginx, Apache e altri web server, Mozilla offre il SSL Configuration Generator che genera configurazioni ottimali per ogni livello di compatibilità. La configurazione "Modern" supporta solo TLS 1.3 (massima sicurezza, meno compatibilità), "Intermediate" aggiunge TLS 1.2 con cipher sicuri (buon compromesso), "Old" supporta anche client legacy (più compatibilità, meno sicurezza). Per la maggior parte dei siti, "Intermediate" è la scelta ottimale.
Dopo la configurazione, verifica con il TLS Cipher Test e con SSL Check per il grade complessivo. Se il tuo server gestisce anche email, testa i cipher sulla porta SMTP con SMTP Diagnostics — la configurazione TLS per la posta potrebbe essere diversa da quella web. Un server con Grade A su HTTPS ma cipher deboli su SMTP ha ancora una vulnerabilità significativa nelle comunicazioni email.
La forward secrecy merita un'attenzione particolare: garantisce che anche se la chiave privata del server viene compromessa in futuro, le sessioni passate restino sicure. Senza forward secrecy (RSA key exchange diretto), un attaccante che ottiene la chiave privata può decrittografare tutto il traffico passato che ha registrato. Con ECDHE, ogni sessione usa chiavi effimere che vengono distrutte al termine della connessione, rendendo impossibile la decrittografia retroattiva.