SSL/TLS (Secure Sockets Layer / Transport Layer Security)

Email e Sicurezza
Protocolli crittografici che codificano la comunicazione tra i server web e i browser, indicati da HTTPS e l'icona del lucchetto.
← Torna al Glossario

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

VersioneAnnoStato
SSL 1.01994Mai rilasciato (flawed)
SSL 2.01995Deprecato (insecure)
SSL 3.01996Deprecated (POODLE vulnerabilità)
TLS 1.01999Deprecato
TLS 1.12006Deprecato
TLS 1.22008Standard attuale
TLS 1.32018Ultimi, 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?

Tipi di certificati

Domain Validated (DV): Prove solo la proprietà del dominio Organization Validated (OV): Verifica l'identità dell'organizzazione Validazione estesa (EV): Livello di verifica più alto

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:

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.1
ssl_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

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 mancanti

SSL/TLS non è più facoltativo: tutti i siti web dovrebbero utilizzare HTTPS per i vantaggi di sicurezza e SEO.

Metti in Pratica Questa Conoscenza

Usa l'API di DomScan per verificare disponibilità, salute del dominio e altro.