Suite di crittografia TLS
Ogni connessione TLS negozia una suite di crittografia, ovvero la combinazione specifica di algoritmi utilizzati per lo scambio di chiavi, l'autenticazione, la crittografia e l'integrità. I nomi sembrano una zuppa alfabetica (TLS_AES_256_GCM_SHA384, ECDHE-ECDSA-CHACHA20-POLY1305) ma codificano le proprietà di sicurezza della connessione. Leggerli chiarisce cosa sta realmente accadendo quando il tuo browser mostra un lucchetto.
Il corpo completo dell'articolo è fornito in inglese di seguito.
A TLS suite di crittografia è una combinazione denominata di algoritmi crittografici utilizzati per proteggere una connessione TLS. Durante l'handshake TLS, client e server negoziano quale suite di crittografia utilizzare in base a ciò che ciascuno supporta. La scelta determina lo scambio di chiavi, l'autenticazione, la crittografia e l'integrità per il resto della connessione.
Lettura dei nomi della suite di crittografia TLS 1.2
Lil formato è: TLS_KEXAUTH_WITH_CIPHER_MAC o nella convenzione OpenSSL KEX-AUTH-CIPHER-MAC.
Esempio: TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 si scompone come:
- ECDHE: usi dello scambio di chiavi Effimero Diffie-Hellman a curva ellittica (fornisce segretezza in avanti)
- RSA: il server esegue l'autenticazione utilizzando un certificato RSA
- AES_256_GCM: la crittografia di massa utilizza AES con chiavi a 256 bit in modalità GCM (autenticata crittografia)
- SHA384: handshake MAC e KDF utilizzano SHA-384
TLS 1.3 semplificazione
TLS 1.3 ha ripulito in modo significativo la denominazione della suite di crittografia. Le suite di crittografia ora specificano solo la crittografia simmetrica e l'hash. Lo scambio di chiavi e l'autenticazione vengono negoziati separatamente. I nomi sono:
TLS_AES_256_GCM_SHA384— AES-256-GCM con SHA-384TLS_AES_128_GCM_SHA256— AES-128-GCM con SHA-256TLS_CHACHA20_POLY1305_SHA256— ChaCha20-Poly1305 con SHA-256TLS_AES_128_CCM_SHA256— AES-128 in modalità CCM con SHA-256TLS_AES_128_CCM_8_SHA256: lo stesso con MAC a 8 byte, principalmente per dispositivi vincolati
TLS 1.3 ha solo cinque suite di crittografia standard in totale. TLS 1.2 aveva centinaia di combinazioni possibili.
Che cosa significa ogni pezzo
Scambio di chiavi:
- RSA: la chiave RSA del server autentica e scambia la chiave. Nessun segreto in avanti. Rimosso in TLS 1.3.
- DHE: effimero Diffie-Hellman. Segretezza in avanti sì. Utilizzato in TLS 1.2; integrato nell'handshake in TLS 1.3.
- ECDHE — curva ellittica effimera Diffie-Hellman. Segretezza in avanti sì. Veloce. L'impostazione predefinita moderna.
Authentication (TLS 1.2):
- RSA: il server ha un certificato RSA
- ECDSA: il server ha un certificato con curva ellittica
- DSS: certificato DSA (principalmente storico)
- PSK: chiave precondivisa (rara; per IoT e alcuni scenari VPN)
Cifratura in blocco:
- AES_128_GCM, AES_256_GCM: AES-GCM con 128 o 256 bit chiave, crittografia autenticata
- CHACHA20_POLY1305 — cifratura a flusso ChaCha20 con Poly1305 MAC, l'alternativa moderna a AES
- AES_128_CBC, AES_256_CBC — AES-CBC con HMAC separato, il modello più vecchio (pian piano in fase di introduzione out)
- 3DES_EDE_CBC — Triple DES, deprecato
- RC4 — cifrario a flusso non funzionante, non più presente in nessuna suite moderna
Hash per handshake:
- SHA256, SHA384: famiglia SHA-2, standard moderno
- SHA: SHA-1, deprecato
- MD5: deprecato da tempo
Suite consigliate in La guida alla configurazione TLS di 2026
Mozilla è il riferimento standard del settore. L'attuale profilo moderno suggerisce:
- TLS solo 1.3. Se la base client lo supporta (essenzialmente tutto ciò che è moderno), nessun fallback TLS 1.2.
- Cipher suite: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256.
- Se TLS 1.2 deve essere supportato: Suite ECDHE+AES-GCM e ECDHE+ChaCha20 only.
Per la compatibilità con i client precedenti, sono necessarie più suite, incluse alcune senza segretezza in avanti. Il profilo "intermedio" di Mozilla copre circa il 95% dei client mantenendo una sicurezza ragionevole.
Cosa viene rimosso e perché
La configurazione TLS moderna viene rimossa:
- Scambio di chiavi non temporaneo (RSA semplice, DH statico). Nessuna segretezza in avanti.
- CBC in modalità (in TLS 1.2 con rinegoziazione). Cronologia degli attacchi (BEAST, Lucky 13).
- 3DES, RC4. Crittografia danneggiata o troppo lenta.
- MD5, SHA-1 per handshake. Attacchi di collisione.
- Suite anonime. Nessuna autenticazione del server, vulnerabile a MITM.
- EXPORT-grade Suites. Artefatto storico dei controlli sulle esportazioni di criptovalute; debole in base alla progettazione.
LGli attacchi FREAK e Logjam del 2015 hanno sfruttato i browser che stavano ancora negoziando la compatibilità delle suite di livello EXPORT. Successivamente i server mainstream li hanno rimossi; alcuni siti a coda lunga li avevano ancora anni dopo.
Verifica del supporto di crittografia del server
Strumenti:
- SSL Labs SSL Server Test (ssllabs.com): analisi completa del TLS di un sito pubblico configurazione.
- testssl.sh — scanner da riga di comando.
- nmap --script ssl-enum-ciphers — enumerazione rapida.
- OpenSSL s_client con vari flag per il manuale testing.
Per il tuo server, eseguili periodicamente; le configurazioni variano nel tempo man mano che i pacchetti aggiornano.
Domande frequenti
- Dovrei preoccuparmi delle suite di crittografia come utente?
- I browser moderni gestiscono la negoziazione. La suite di crittografia scelta viene visualizzata quando si fa clic sul lucchetto e si controlla il certificato. Per la maggior parte degli utenti è dietro le quinte.
- Perché TLS 1.3 ha così poche suite di crittografia?
- Le centinaia di combinazioni di TLS 1.2 hanno reso facili le configurazioni errate vulnerabili. TLS 1.3 deliberatamente ridotto a un piccolo insieme di combinazioni ben comprese, tutte con segretezza diretta e crittografia autenticata.
- Qual è la differenza tra AES-128-GCM e AES-256-GCM?
- Lunghezza chiave. AES a 128 bit è veloce e considerato sicuro a tempo indeterminato contro gli avversari classici; La tecnologia a 256 bit fornisce un margine contro i futuri progressi della crittografia e contro gli avversari sensibili ai dati quantistici. Entrambi vanno bene per l'uso corrente.
- Quando dovrei utilizzare ChaCha20-Poly1305 rispetto a AES-GCM?
- ChaCha20 è più veloce su hardware senza accelerazione AES-NI (dispositivi mobili più vecchi, IoT). AES-GCM è più veloce sull'hardware moderno con AES-NI. I browser negoziano la soluzione migliore; i server dovrebbero offrire entrambi.
- La suite di crittografia influisce sulle prestazioni?
- Modestamente. AES-GCM con accelerazione hardware è essenzialmente gratuito sulle CPU moderne. L'overhead dell'handshake (scambio di chiavi) prevale sulla crittografia di massa per connessioni brevi. Per le connessioni ad alto volume e di lunga durata, la scelta della crittografia di massa è leggermente importante.