Versioni TLS, cipher suite e perfect forward secrecy
Configuri TLS 1.2/1.3, selezioni cipher suite robuste e abiliti la perfect forward secrecy per garantire che il traffico intercettato non possa essere decrittografato retroattivamente.
Versioni TLS, cipher suite e perfect forward secrecy è una lezione Security+ Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Security+ Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Security+ Academy include 4 lezioni in totale.
Panoramica del protocollo TLS
TLS (Transport Layer Security) è il protocollo crittografico che protegge la maggior parte delle comunicazioni Internet: HTTPS, SMTPS, IMAPS, LDAPS e le VPN si basano tutti su TLS. TLS offre tre proprietà di sicurezza: riservatezza (la crittografia impedisce l'intercettazione), integrità (il MAC impedisce le manomissioni) e autenticazione (i certificati verificano l'identità del server). TLS si è evoluto da SSL (Secure Sockets Layer), ormai deprecato. Le versioni attuali sono TLS 1.2, ampiamente distribuito, e TLS 1.3, più veloce e sicuro, consigliato per tutte le nuove implementazioni.
Cronologia delle versioni TLS e deprecazioni
TLS ha attraversato diverse versioni; quelle meno recenti presentavano vulnerabilità critiche. SSL 2.0/3.0: deprecati e vulnerabili agli attacchi POODLE e DROWN. TLS 1.0: deprecato da NIST e PCI-DSS nel 2020, vulnerabile a BEAST e a POODLE con i cifrari a blocchi. TLS 1.1: deprecato insieme a TLS 1.0. TLS 1.2: standard minimo attuale, sicuro se configurato correttamente con suite di cifratura robuste. TLS 1.3: rilasciato nel 2018; rimuove tutti gli algoritmi deboli, rende obbligatoria la forward secrecy, accelera significativamente l'handshake (1-RTT anziché 2-RTT) e impedisce gli attacchi di downgrade. PCI-DSS 4.0 richiede almeno TLS 1.2 e raccomanda TLS 1.3.
# TLS version timeline
SSL 2.0 1995 DEPRECATED (DROWN)
SSL 3.0 1996 DEPRECATED (POODLE)
TLS 1.0 1999 DEPRECATED 2020 (BEAST, POODLE)
TLS 1.1 2006 DEPRECATED 2020 (no improvements over 1.0)
TLS 1.2 2008 MINIMUM STANDARD (strong ciphers required)
TLS 1.3 2018 RECOMMENDED (mandatory PFS, faster, secure)
# Check which TLS versions a server supports
nmap --script ssl-enum-ciphers -p 443 example.com
# Or:
openssl s_client -connect example.com:443 -tls1_2
openssl s_client -connect example.com:443 -tls1_3Suite di cifratura
Una suite di cifratura è un insieme di algoritmi crittografici utilizzati insieme in una sessione TLS. Ogni suite di cifratura specifica: un algoritmo di scambio delle chiavi (come vengono stabilite le chiavi di sessione), un algoritmo di autenticazione (come viene verificato il server), un algoritmo di cifratura bulk (che cosa cifra i dati) e un algoritmo MAC (Message Authentication Code) (come viene verificata l'integrità). Client e server negoziano la suite da utilizzare durante l'handshake TLS: il server seleziona la suite più robusta tra quelle supportate da entrambe le parti.
# TLS cipher suite naming format (TLS 1.2)
# TLS_[KeyExchange]_WITH_[Cipher]_[MAC]
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
ECDHE = Elliptic Curve Diffie-Hellman Ephemeral
RSA = Server certificate authentication
AES_256_GCM = 256-bit AES in Galois/Counter Mode
SHA384 = HMAC with SHA-384 for integrity
# TLS 1.3 simplified format (fewer components)
TLS_AES_256_GCM_SHA384
TLS_CHACHA20_POLY1305_SHA256
TLS_AES_128_GCM_SHA256Algoritmi di scambio delle chiavi
La fase di scambio delle chiavi stabilisce la chiave di sessione senza trasmetterla. Scambio di chiavi RSA (TLS 1.2): il client cifra un segreto premaster con la chiave pubblica del server; se in seguito la chiave privata viene compromessa, tutte le sessioni passate possono essere decifrate. DHE (Diffie-Hellman Ephemeral): genera una nuova coppia di chiavi per ogni sessione; offre la forward secrecy, ma è lento. ECDHE (Elliptic Curve DHE): offre la stessa forward secrecy di DHE, ma con chiavi più piccole e prestazioni migliori; è lo scambio di chiavi preferito sia in TLS 1.2 sia in TLS 1.3. TLS 1.3 rende obbligatorio ECDHE o DHE, eliminando completamente lo scambio di chiavi RSA.
Perfect Forward Secrecy (PFS)
La Perfect Forward Secrecy (PFS) garantisce che, anche se la chiave privata a lungo termine del server viene compromessa in seguito, le sessioni registrate in passato non possano essere decifrate. La PFS si ottiene usando uno scambio di chiavi effimero (ECDHE o DHE), che genera una nuova coppia di chiavi temporanea per ogni sessione e la elimina al termine dell'utilizzo. Senza PFS, con lo scambio di chiavi RSA, un aggressore può registrare oggi tutte le sessioni TLS cifrate e decifrarle retroattivamente quando riesce a ottenere la chiave privata. La strategia di sorveglianza della NSA, «raccogli ora, decifra in seguito», presuppone che gli obiettivi passeranno infine a chiavi più robuste o che i computer quantistici riusciranno a violare quelle attuali.
# Cipher suites WITH perfect forward secrecy
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 # Good
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 # Good
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 # OK (slower)
# Cipher suites WITHOUT perfect forward secrecy
TLS_RSA_WITH_AES_256_CBC_SHA256 # NO PFS - avoid
TLS_RSA_WITH_3DES_EDE_CBC_SHA # NO PFS + weak
# Key: look for ECDHE or DHE prefix
# RSA alone as key exchange = no forward secrecyAlgoritmi di cifratura deboli da evitare
Diversi componenti di cifratura legacy sono compromessi dal punto di vista crittografico e devono essere disabilitati. Cifrari NULL: nessuna cifratura. Cifrari di livello export (attacco FREAK): indeboliti deliberatamente per rispettare le normative statunitensi sull'esportazione degli anni '90. RC4: cifrario a flusso con distorsioni statistiche sfruttate negli attacchi. DES e 3DES: cifrari a blocchi con dimensioni dei blocchi troppo ridotte (attacco SWEET32) o lunghezze delle chiavi insufficienti. MD5 e SHA-1 per i MAC: vulnerabilità alle collisioni. Cifrari anonimi (aNULL): nessuna autenticazione del server. Le configurazioni TLS moderne dovrebbero consentire come cifrari bulk solo AES-GCM, ChaCha20-Poly1305, AES-CCM.
# nginx: disable weak ciphers, enforce strong only
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:
ECDHE-RSA-AES256-GCM-SHA384:
ECDHE-ECDSA-CHACHA20-POLY1305:
ECDHE-RSA-CHACHA20-POLY1305:
ECDHE-ECDSA-AES128-GCM-SHA256:
ECDHE-RSA-AES128-GCM-SHA256';
ssl_prefer_server_ciphers on;
# Explicitly disable weak ciphers in Apache
SSLCipherSuite 'HIGH:!aNULL:!MD5:!3DES:!RC4:!EXPORT'Miglioramenti di TLS 1.3
TLS 1.3 introduce diversi miglioramenti significativi alla sicurezza rispetto a 1.2. PFS obbligatoria: lo scambio di chiavi RSA è stato rimosso; tutte le sessioni usano ECDHE o DHE. Meno suite di cifratura: sono consentite solo 5 suite di cifratura AEAD; non è possibile negoziare cifrari deboli. Handshake più veloce: un round trip (1-RTT) anziché 2-RTT in TLS 1.2 e 0-RTT per la ripresa della sessione, anche se 0-RTT comporta considerazioni relative agli attacchi di replay. Handshake cifrato: il certificato del server viene cifrato durante l'handshake, impedendo agli osservatori passivi di identificare il certificato e quindi il sito web a cui il client si sta connettendo.
# TLS 1.3 handshake (simplified)
Client -> Server: ClientHello (supported ciphers, key shares)
Server -> Client: ServerHello (chosen cipher, key share)
{EncryptedExtensions}
{Certificate}
{CertificateVerify}
{Finished}
Client -> Server: {Finished}
# Both sides now have session keys
# Total: 1 round-trip before application data
# (TLS 1.2 required 2 round trips)
# Note: {} = encrypted (cert is hidden from observers)Attacchi di downgrade e POODLE
Gli attacchi di downgrade inducono un server e un client TLS a usare una versione TLS o una suite di cifratura più vecchia e debole rispetto a quelle supportate da entrambi. POODLE (Padding Oracle On Downgraded Legacy Encryption) sfruttava il fatto che le implementazioni TLS tornassero a SSL 3.0 in caso di errori di connessione. La mitigazione consisteva nel disabilitare SSL 3.0. FREAK e Logjam sfruttavano i cifrari di livello export. TLS_FALLBACK_SCSV è una pseudo-suite di cifratura che i client includono per segnalare «questa non è la mia versione preferita»: se un server la rileva e supporta una versione superiore, interrompe il tentativo di downgrade.
Verifica e pinning dei certificati
L'autenticazione del server TLS si basa sulla verifica, da parte del client, della catena di certificati fino a una CA radice attendibile. Controlli fondamentali: scadenza (il certificato deve rientrare nel periodo di validità), revoca (un controllo CRL o OCSP conferma che il certificato non sia stato revocato), nome host (SAN o CN deve corrispondere al dominio a cui ci si connette) e catena delle firme (le firme della CA intermedia e della CA radice sono valide). La Certificate Transparency (CT) richiede che tutti i certificati considerati attendibili pubblicamente siano registrati in log CT append-only, consentendo di rilevare entro pochi minuti dall'emissione i certificati emessi in modo errato.
# Check TLS certificate details
openssl s_client -connect example.com:443 \
-showcerts 2>/dev/null | openssl x509 -noout \
-text | grep -E 'Subject:|Issuer:|Not After:|SAN'
# Verify certificate chain
openssl verify -CAfile /etc/ssl/certs/ca-certificates.crt \
server.crt
# Check OCSP status
openssl ocsp -issuer intermediate.crt \
-cert server.crt \
-url http://ocsp.ca.example.com \
-text -noverifySSL Labs e test della configurazione
Qualys SSL Labs (ssllabs.com/ssltest) è lo strumento di riferimento per valutare la configurazione TLS di un server web. Assegna ai server una valutazione da A+ (eccellente) a F (problemi critici) in base a: versioni TLS supportate, robustezza delle suite di cifratura, validità del certificato, configurazione HSTS, supporto della forward secrecy e resistenza agli attacchi noti. Una valutazione A+ richiede: solo TLS 1.2 o versioni successive, tutti cifrari ECDHE, un certificato valido e HSTS con preload. Le organizzazioni dovrebbero eseguire i test SSL Labs dopo la configurazione iniziale e nuovamente dopo ogni modifica allo stack TLS. Molti framework di conformità, tra cui PCI-DSS, richiedono valutazioni periodiche della configurazione TLS.
Procedure consigliate per la gestione dei certificati TLS
I certificati TLS scaduti causano interruzioni del servizio e avvisi che compromettono la fiducia degli utenti, aspetti che gli aggressori possono sfruttare. La gestione del ciclo di vita dei certificati comprende: il monitoraggio di tutti i certificati in un inventario dei certificati, la configurazione di avvisi di scadenza almeno 30 giorni prima della scadenza, l'automazione del rinnovo con il protocollo ACME (Let's Encrypt, Certbot), l'utilizzo di certificati con validità breve (90 giorni per i certificati pubblici) per ridurre la finestra di rischio in caso di compromissione e l'uso attento dei certificati wildcard (*.example.com), poiché un certificato wildcard compromesso compromette tutti i sottodomini. Le piattaforme di gestione dei certificati (Venafi, DigiCert CertCentral) automatizzano l'individuazione e la gestione del ciclo di vita in grandi inventari di certificati.
# Auto-renew Let's Encrypt cert with Certbot
# Install Certbot
apt install certbot python3-certbot-nginx
# Issue certificate
certbot --nginx -d example.com -d www.example.com
# Certbot auto-renewal (runs twice daily via systemd timer)
systemctl status certbot.timer
# Test renewal without actually renewing
certbot renew --dry-run
# Verify cert expiry date
openssl x509 -enddate -noout -in /etc/ssl/certs/example.crt
# Output: notAfter=Feb 20 12:00:00 2025 GMTVerifica rapida
Verificate la vostra comprensione dei concetti di CompTIA Security+ (SY0-701) trattati in questa lezione.
Riepilogo della lezione
In questa lezione avete imparato che TLS 1.0/1.1 sono deprecati e TLS 1.2 è lo standard minimo, mentre TLS 1.3 è la versione preferita, con PFS obbligatoria e handshake cifrati; che le suite di cifratura specificano lo scambio delle chiavi (è preferibile ECDHE), la cifratura bulk (AES-GCM, ChaCha20) e gli algoritmi MAC; e che la Perfect Forward Secrecy richiede uno scambio di chiavi effimero (DHE/ECDHE), affinché le sessioni passate non possano essere decifrate nemmeno dopo la compromissione della chiave. Ora esamineremo il DNS sicuro: DNSSEC e DNS over HTTPS.
Domande Frequenti
La lezione «Versioni TLS, cipher suite e perfect forward secrecy» è gratuita?
Sì — il testo completo di «Versioni TLS, cipher suite e perfect forward secrecy» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Security+ Academy, passa a CoddyKit PRO. Il corso Security+ Academy include 4 lezioni in totale.
Cosa imparerò in «Versioni TLS, cipher suite e perfect forward secrecy»?
Configuri TLS 1.2/1.3, selezioni cipher suite robuste e abiliti la perfect forward secrecy per garantire che il traffico intercettato non possa essere decrittografato retroattivamente. Eserciti Security+ Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Security+ Academy?
Non è richiesta alcuna esperienza precedente. Security+ Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Versioni TLS, cipher suite e perfect forward secrecy»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Security+ Academy?
Sì. Ogni lezione Security+ Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Sostituire i protocolli non sicuri: Telnet e SSH, FTP e SFTP
- Versioni TLS, cipher suite e perfect forward secrecy
- DNS sicuro: DNSSEC e DNS su HTTPS (DoH)
- IPsec, protocolli VPN e sicurezza dell'accesso remoto