Cos'è SSL/TLS?
SSL (Secure Sockets Layer) e TLS (Transport Layer Security) sono protocolli crittografici che assicurano la comunicazione sulle reti. TLS è il successore moderno di SSL, ma "SSL" rimane comunemente usato per riferirsi a entrambi. Questi protocolli consentono HTTPS, crittografando i dati tra browser e server.
SSL vs TLS: una breve storia
| Versione | Anno | Stato |
|---|---|---|
| SSL 1.0 | 1994 | Mai rilasciato (flawed) |
| SSL 2.0 | 1995 | Deprecato (insecure) |
| SSL 3.0 | 1996 | Deprecated (POODLE vulnerabilità) |
| TLS 1.0 | 1999 | Deprecato |
| TLS 1.1 | 2006 | Deprecato |
| TLS 1.2 | 2008 | Standard attuale |
| TLS 1.3 | 2018 | Ultimi, consigliati |
I sistemi moderni dovrebbero utilizzare TLS 1.2 o TLS 1.3 esclusivamente.
Come funziona TLS
Il TLS Handshake
1. Pronto? Browser invia versioni TLS supportate e suite di cifrari
2. Ehila'! Server seleziona la versione TLS e la suite di cifrari
3. Certificate: Server invia il suo certificato SSL
4. Key Exchange: Scambio chiave sicuro (varie per suite di cifrari)
5. Finished: sessione crittografata stabilita
Client Server
|-- Client Hello -------------->|
|<-- Server Hello --------------|
|<-- Certificate ---------------|
|<-- Key Exchange --------------|
|-- Key Exchange -------------->|
|-- Finished ------------------>|
|<-- Finished ------------------|
|<======= Encrypted Session ===>|
TLS 1.3 riduce questo a un solo giro, migliorando le prestazioni.
Certificati SSL/TLS
Cosa c'e' in un certificato?
- Subject: Nome(i) del dominio
- Issuer: Certificato Autorità (CA) che lo ha rilasciato
- Periodo di validità: date di inizio e di scadenza
- #Public Key # Per stabilire connessioni crittografate
- Signature: firma crittografica di CA
Tipi di certificati
Domain Validated (DV): Prove solo la proprietà del dominio- Emessa in pochi minuti
- Gratuito (crittografia) o basso costo
- Mostra lucchetto, nessuna informazione dell'organizzazione
- Richiede verifica aziendale
- Mostra il nome dell'organizzazione nei dettagli del certificato
- Maggiore fiducia, costo moderato
- Verifica dell'identità rigorosa
- Nelle puntate precedenti...
- Più alto costo, più alta fiducia
Copertura del certificato
Single Domain: Copre un dominio (example.com) Wildcard: copre tutti i sottodomini (*.example.com)Multi-Domain (SAN) Copre più domini specifici
Implementazione SSL/TLS
Certificati gratuiti con Let's Encrypt
# Using Certbot
sudo certbot --nginx -d example.com -d www.example.com
# Auto-renewal
sudo certbot renew --dry-run
Certificati Cloud Provider
La maggior parte delle piattaforme cloud offrono certificati di rinnovo automatico gratuiti:
- Cloudflare: Automatico per domini prossi
- AWS: Gestione certificati (ACM)
- Google Cloud: certificati SSL gestiti
Verifica del certificato
I browser verificano i certificati per:
1. Controllare la catena del certificato a una CA radice attendibile
2. Verifica del certificato non è scaduto
3. Confermare le partite di dominio
4. Controllo dello stato di revoca (CRL/OCSP)
Migliori pratiche SSL/TLS
Configurazione server
Utilizzare TLS 1.2+: Disattiva SSL 3.0, TLS 1.0, TLS 1.1ssl_protocols TLSv1.2 TLSv1.3;
Straong Cipher Suites. Preferire numeri moderni e sicuri
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
HSTS: Forza HTTPS (vedi voce glossaria HSTS)
Gestione certificati
- Rinnovo automatico: I certificati scadono (90 giorni per Let's Encrypt)
- Monitor expiration: Impostare gli avvisi prima della scadenza dei certificati
- Utilizzare i record CAA: Limitare quali CA possono rilasciare certificati
Controllo SSL/TLS
# Usando DomScan #
curl "https://domscan.net/v1/health?domain=example.com"
# Returns SSL validity, issuer, expiration
Utilizzando OpenSSL:
openssl s_client -connect example.com:443 -servername example.com
Strumenti online: SSL Labs (ssllabs.com/ssltest) fornisce un'analisi completa.
Problemi comuni SSL
Contenuti separati: risorse HTTPS di caricamento della pagina (bloccato dai browser) Certificate Mismatch: Il certificato non corrisponde al dominio Certificato scaduto: Periodo di validità del certificato terminato Catena incompleta: Certificati intermedi mancantiSSL/TLS non è più facoltativo: tutti i siti web dovrebbero utilizzare HTTPS per i vantaggi di sicurezza e SEO.