Spiegazione dei certificati SSL e del protocollo HTTPS
IPAddress-Lookup.com ·
Ogni volta che visiti un sito web e vedi un piccolo lucchetto accanto all’indirizzo, oppure noti che l’URL inizia con https:// invece che con http://, ti affidi a una delle tecnologie più importanti del web moderno: la crittografia SSL/TLS e i certificati digitali che la rendono possibile. Questi certificati proteggono in modo discreto le tue password, i numeri delle carte di credito, i messaggi privati e le tue abitudini di navigazione da chiunque possa intercettare i dati sulla rete tra te e il server. Eppure, nonostante si tratti di qualcosa di così fondamentale, il funzionamento dei certificati SSL e del protocollo HTTPS rimane un mistero per la maggior parte delle persone. Questa guida fa luce sull’argomento e spiega, in un linguaggio semplice, cos’è esattamente SSL/TLS, come funziona la crittografia, cosa dimostra effettivamente un certificato e come il tuo browser decide se fidarsi o meno di un sito.
Cosa sono effettivamente SSL e TLS
SSL sta per Secure Sockets Layer, un protocollo originariamente progettato da Netscape a metà degli anni ’90 per proteggere la comunicazione tra browser web e server. Il problema che risolse era semplice da descrivere ma difficile da risolvere: il web originale (HTTP) inviava tutto come testo in chiaro, leggibile. Chiunque si trovasse tra l’utente e un sito web — un hotspot Wi-Fi non autorizzato, un provider Internet, un router compromesso — poteva leggere o addirittura alterare i dati che circolavano in entrambe le direzioni. SSL ha avvolto quel traffico in un livello di crittografia in modo che diventasse privo di significato per chi cercava di intercettarlo.
SSL di per sé è ormai obsoleto. Si è scoperto che SSL 2.0 e SSL 3.0 presentavano gravi falle di sicurezza e sono stati ritirati da anni. Il protocollo che oggi garantisce effettivamente la sicurezza del web si chiama TLS, ovvero Transport Layer Security. TLS è il successore diretto di SSL e, quando si parla di «certificato SSL», quasi sempre si intende un certificato utilizzato con TLS. Il nome è semplicemente rimasto in uso perché era familiare. L’evoluzione si presenta così:
- SSL 1.0 — mai rilasciato pubblicamente a causa di difetti di sicurezza.
- SSL 2.0 (1995) e SSL 3.0 (1996) — entrambi ormai deprecati e disabilitati ovunque.
- TLS 1.0 (1999) — la prima versione con il nome TLS; anch’essa oggi obsoleta.
- TLS 1.1 (2006) — ritirata insieme alla versione 1.0.
- TLS 1.2 (2008) — ancora ampiamente utilizzato e considerato sicuro se configurato correttamente.
- TLS 1.3 (2018) — lo standard attuale, più veloce e privo degli algoritmi obsoleti e deboli.
TLS 1.3 ha rappresentato una riprogettazione radicale. Ha eliminato decine di opzioni di cifratura obsolete che causavano vulnerabilità e ha ottimizzato la configurazione della connessione in modo che le sessioni sicure si stabiliscano più rapidamente. I browser moderni negoziano la versione più alta supportata da entrambe le parti, il che in pratica significa TLS 1.2 o 1.3.
Cosa fa effettivamente un certificato SSL
Un certificato SSL/TLS svolge due funzioni distinte ed è importante comprendere che si tratta di due aspetti separati. La prima è la crittografia: codificare i dati in modo che non possano essere letti durante il trasferimento. La seconda è l’autenticazione, ovvero la verifica dell’identità: dimostrare che il server con cui ci si sta comunicando appartiene effettivamente al dominio visualizzato nella barra degli indirizzi e non a un impostore che ha intercettato la connessione.
La crittografia senza autenticazione sarebbe pericolosa. Si potrebbe avere una connessione perfettamente crittografata con un malintenzionato che si limita a inoltrare il traffico dell’utente leggendone ogni dettaglio. Il certificato risolve questo problema associando una chiave crittografica a un’identità verificata. Quando il browser accetta un certificato, conferma sia che la connessione sarà privata, sia che l’altra parte è chi dice di essere. Insieme, queste due garanzie sono ciò che rende sicuri l’online banking, lo shopping online e gli accessi ai siti.
Crittografia asimmetrica contro crittografia simmetrica
Per comprendere come funziona l’HTTPS, sono necessari due concetti di crittografia, che sono più semplici di quanto possano sembrare.
La crittografia simmetrica utilizza un’unica chiave segreta condivisa sia per codificare che per decodificare i dati. È estremamente veloce ed efficiente, il che la rende ideale per crittografare il grande volume di dati in una sessione di navigazione reale. Il problema è evidente: entrambe le parti devono disporre della stessa chiave e, se questa viene inviata su una rete non sicura, un malintenzionato potrebbe intercettarla.
La crittografia asimmetrica risolve il problema della condivisione della chiave utilizzando una coppia di chiavi abbinate: una chiave pubblica visibile a tutti e una chiave privata che il proprietario mantiene segreta. I dati crittografati con la chiave pubblica possono essere decrittografati solo con la chiave privata, e viceversa. Ciò consente a due estranei di concordare un segreto su un canale aperto. La crittografia asimmetrica è tuttavia lenta, quindi non viene utilizzata per l’intera conversazione.
HTTPS combina il meglio di entrambe le soluzioni. Utilizza brevemente la crittografia asimmetrica, all’inizio, per stabilire in modo sicuro un segreto condiviso, per poi passare alla crittografia simmetrica veloce per il resto della sessione. Questa negoziazione è chiamata handshake TLS.
Come funziona l’HTTPS: una panoramica sull’handshake TLS
Quando digiti un indirizzo web, il tuo browser prima risolve il nome di dominio in un indirizzo IP — un processo strettamente legato al funzionamento del DNS — e poi apre una connessione a quel server. Prima che venga scambiata qualsiasi pagina web, ha luogo l’handshake TLS. Ecco cosa succede, passo dopo passo.
- ClientHello. Il browser invia il primo messaggio. Elenca le versioni TLS che supporta, le suite di cifratura (combinazioni di algoritmi di crittografia) che può utilizzare e un valore casuale che verrà impiegato nella generazione della chiave. È come se dicesse: «Ecco chi sono e ecco cosa so fare».
- ServerHello. Il server risponde scegliendo dalla lista del browser la versione TLS e la suite di cifratura che utilizzerà, e invia il proprio valore casuale. Entrambe le parti concordano ora sulle regole della conversazione.
- Certificato. Il server presenta il proprio certificato SSL/TLS, che contiene la sua chiave pubblica e le informazioni di identità firmate da un’Autorità di Certificazione. Questo è il momento in cui il browser verifica che il certificato sia valido, affidabile ed emesso per il dominio che state visitando.
- Scambio di chiavi. Utilizzando la chiave pubblica del certificato (o un moderno algoritmo di accordo sulle chiavi come Diffie-Hellman a curve ellittiche), le due parti ricavano in modo sicuro un segreto condiviso. È fondamentale sottolineare che un intercettatore che osservi ogni messaggio non è comunque in grado di calcolare questo segreto, poiché la chiave privata non lascia mai il server.
- Chiavi di sessione e conferma di completamento. Entrambe le parti utilizzano il materiale scambiato e i due valori casuali per generare lo stesso insieme di chiavi di sessione simmetriche. Ciascuna invia un messaggio di "completamento" crittografato con queste chiavi per confermare il successo della procedura di handshake. Da questo momento in poi, l’intera comunicazione è crittografata in modo simmetrico: veloce, riservata e a prova di manomissione.
Tutto questo in genere si completa in una frazione di secondo. In TLS 1.3 l’handshake è stato ridotto a un unico round trip, e i visitatori che ritornano sul sito a volte possono riprendere la connessione ancora più velocemente. Il risultato finale è un canale sicuro attraverso il quale viaggiano le tue effettive richieste e risposte HTTPS.
Le autorità di certificazione e la catena di fiducia
Un certificato è affidabile solo quanto l’entità che ne garantisce la validità. Questo ruolo spetta a un’Autorità di Certificazione (CA), ovvero un’organizzazione di cui il browser e il sistema operativo dell’utente hanno deciso in anticipo di fidarsi. Quando il proprietario di un sito web richiede un certificato, la CA verifica il suo controllo sul dominio (e talvolta la sua identità aziendale) prima di firmare il certificato con la propria chiave. È proprio quella firma che il browser verifica.
La fiducia è organizzata come una catena composta da tre anelli:
- Certificato radice. Il vertice della catena. I certificati radice sono preinstallati nel browser e nel sistema operativo in un “archivio di fiducia”. Le loro chiavi private sono conservate offline sotto stretta protezione, poiché la compromissione di una di esse minerebbe l’intero sistema.
- Certificato intermedio. I certificati radice non firmano direttamente i certificati dei siti web. Firmano invece uno o più certificati intermedi, che a loro volta firmano i certificati effettivi del sito. Ciò mantiene isolata la preziosa chiave radice e consente di revocare un certificato intermedio compromesso senza compromettere la radice.
- Certificato foglia. Chiamato anche certificato dell’entità finale, è quello installato sul sito web stesso. È firmato da un certificato intermedio.
Quando il browser convalida un sito, risale questa catena: il certificato foglia è firmato da un certificato intermedio, il certificato intermedio è firmato da un altro certificato intermedio o da una radice, e la radice è una di quelle di cui si fida già. Se ogni anello della catena risulta valido e la radice è presente nell’archivio di fiducia, il certificato viene accettato. Questo processo è chiamato “costruzione della catena” e una causa comune degli errori “non attendibile” è un server che dimentica di inviare il proprio certificato intermedio, interrompendo così la catena.
Tipi di certificati
Non tutti i certificati sono uguali. Si differenziano per il livello di rigore con cui l’Autorità di Certificazione (CA) verifica il richiedente e per il numero di domini che coprono. La tabella seguente riassume i tipi principali.
| Tipo | Livello di convalida | Cosa attesta | Uso tipico |
|---|---|---|---|
| DV (Convalida del dominio) | Base — controllo del solo dominio | Il richiedente controlla il dominio | Blog, siti personali, la maggior parte dei siti web moderni |
| OV (Convalida dell’organizzazione) | Moderato — identità dell’organizzazione verificata | Il dominio appartiene a un’organizzazione verificata | Siti aziendali e commerciali |
| EV (Convalida estesa) | Rigoroso — verifica legale approfondita | Conferma rigorosa della persona giuridica | Banche, grandi siti di e-commerce, servizi ad alta affidabilità |
| Wildcard | Qualsiasi delle opzioni precedenti | Protegge un dominio e tutti i suoi sottodomini | *.example.com che copre negozio, blog, posta, ecc. |
| Multi-dominio (SAN/UCC) | Qualsiasi tra quelli sopra indicati | Protegge diversi domini distinti con un unico certificato | Organizzazioni che gestiscono molti domini separati |
Un punto chiave per gli utenti comuni: dal punto di vista della crittografia, i certificati DV, OV ed EV sono identici. Tutti garantiscono la stessa protezione avanzata per i tuoi dati. La differenza risiede esclusivamente nella verifica dell’identità. Un tempo i certificati EV mostravano il nome dell’azienda in verde nella barra degli indirizzi, ma i browser hanno in gran parte eliminato tale distinzione, quindi oggi la maggior parte dei siti utilizza certificati DV economici o gratuiti.
Certificati wildcard e multidominio
Un certificato wildcard utilizza un asterisco per coprire tutti i sottodomini di un dominio di base: ad esempio, un unico certificato per *.example.com protegge contemporaneamente www.example.com, shop.example.com e login.example.com. Un certificato multidominio, talvolta denominato certificato SAN o UCC, elenca diversi nomi di dominio completamente diversi in un unico certificato. Entrambi riducono il numero di certificati che un amministratore deve gestire.
Cosa contiene un certificato
Un certificato è un documento strutturato, di cui è possibile esaminare ogni campo. I più importanti sono:
- Soggetto. L’identità a cui è stato rilasciato il certificato, principalmente il nome di dominio (Common Name).
- Emittente. L’Autorità di Certificazione che ha firmato ed emesso il certificato.
- Periodo di validità. Le date "non prima" e "non dopo" tra le quali il certificato è valido.
- Nomi alternativi del soggetto (SAN). L’elenco completo dei nomi di dominio coperti dal certificato. I browser moderni si basano sul campo SAN, anziché sul vecchio Nome Comune, per identificare il sito.
- Chiave pubblica. La metà pubblica della coppia di chiavi, utilizzata durante la procedura di handshake.
- Algoritmo di firma. Il metodo crittografico utilizzato dall’Autorità di Certificazione per la firma, come SHA-256 con RSA o ECDSA.
- Impronta digitale. Un hash univoco dell’intero certificato, utile per identificarlo con esattezza.
- Numero di serie. Un identificatore univoco assegnato dall’Autorità di Certificazione emittente.
Quando il browser convalida un sito, verifica che la data odierna rientri nel periodo di validità, che una delle voci SAN corrisponda al dominio, che la firma sia intatta e che la catena conduca a una radice attendibile.
Scadenza dei certificati e perché la loro durata è breve
Ogni certificato ha una data di scadenza e la durata si è ridotta drasticamente nel corso degli anni. I certificati che un tempo duravano diversi anni ora hanno una durata massima di circa un anno o meno, con il settore che si sta orientando verso periodi di validità ancora più brevi, misurati in settimane. Ci sono valide ragioni alla base di questa tendenza.
Una durata più breve limita i danni in caso di furto di una chiave privata: un certificato compromesso scade semplicemente prima, riducendo il lasso di tempo che un aggressore può sfruttare. Inoltre, garantisce che gli algoritmi crittografici obsoleti e i certificati revocati o emessi per errore vengano eliminati rapidamente dall’ecosistema. Il compromesso è che gli amministratori devono effettuare il rinnovo con maggiore frequenza, motivo per cui l’automazione è diventata essenziale piuttosto che facoltativa.
Cosa succede quando un certificato non è valido
Se una qualsiasi parte della convalida fallisce, il browser interrompe la connessione con un avviso a tutta pagina anziché con una piccola icona. I casi più comuni di errore sono:
- Certificato scaduto. La data corrente è successiva alla data di scadenza. Questa è la causa più frequente e di solito significa che qualcuno ha dimenticato di rinnovarlo.
- Certificato autofirmato. Il certificato è stato firmato dalla propria chiave anziché da una CA attendibile, quindi non esiste alcuna catena di fiducia. Va bene per i test interni, ma i browser lo rifiutano per i siti pubblici.
- Discrepanza nel nome. Il dominio visitato non compare nell’elenco SAN del certificato — ad esempio, un certificato per un dominio viene utilizzato su un altro.
- Emittente non attendibile. La catena del certificato risale a una radice che non è presente nel tuo archivio di fiducia, spesso perché manca un certificato intermedio o l’autorità di certificazione non è riconosciuta.
- Certificato revocato. L’autorità di certificazione (CA) ha invalidato il certificato prima della sua scadenza, in genere a causa della compromissione di una chiave.
In ciascuno di questi casi il browser mostra un avviso del tipo «La tua connessione non è privata» e blocca la pagina per impostazione predefinita. Questi avvisi servono a proteggerti: un certificato non corrispondente o non attendibile può essere indice di un vero e proprio attacco di intercettazione, pertanto non dovresti mai ignorarli con noncuranza su un sito che gestisce dati sensibili.
Certificati gratuiti e rinnovo automatico
Uno degli sviluppi più importanti nella sicurezza web è stata l’introduzione dei certificati gratuiti e automatizzati. Let’s Encrypt, un’Autorità di Certificazione senza scopo di lucro, ha reso disponibili certificati DV a costo zero e, cosa altrettanto importante, completamente automatizzabili tramite un protocollo chiamato ACME (Automated Certificate Management Environment).
Con ACME, un server può dimostrare il controllo del proprio dominio, richiedere un certificato, installarlo e rinnovarlo prima della scadenza — il tutto senza alcun intervento umano. Questo è proprio il motivo per cui una durata breve dei certificati è pratica: un certificato che si rinnova automaticamente ogni due mesi non causa alcun problema operativo. La combinazione di emissione gratuita e automazione è una delle ragioni principali per cui l’HTTPS è passato dall’essere una funzionalità di nicchia a diventare l’impostazione predefinita quasi universale sul web.
Come verificare il certificato di un sito
Non è necessario alcun software speciale per esaminare un certificato. In qualsiasi browser moderno è possibile fare clic sull’icona del lucchetto nella barra degli indirizzi e selezionare l’opzione per visualizzare i dettagli del certificato, dove si troveranno il soggetto, l’emittente, le date di validità, l’elenco SAN e l’impronta digitale. Questo è un modo rapido per confermare di trovarsi sul sito autentico e per verificare quando scade un certificato.
Per una visione più rapida e dettagliata — che includa la catena completa dei certificati, l’algoritmo di firma e quanti giorni mancano alla scadenza — è possibile utilizzare uno strumento online. Il nostro strumento SSL Certificate Checker consente di inserire qualsiasi dominio e verificare immediatamente se il relativo certificato è valido, correttamente collegato a una radice attendibile e quanto tempo manca al rinnovo. È un modo semplice per individuare un certificato in scadenza prima che generi un avviso del browser per i visitatori.
Domande frequenti
SSL è la stessa cosa di TLS?
Non esattamente. SSL è il protocollo più vecchio ed è ormai obsoleto, mentre TLS è il suo successore moderno ed è ciò che oggi garantisce effettivamente la sicurezza dei siti web. Tuttavia, il termine “certificato SSL” è rimasto in uso per abitudine, quindi nell’uso quotidiano “SSL” e “TLS” sono spesso utilizzati in modo intercambiabile, anche se la tecnologia sottostante è TLS.
L’icona del lucchetto indica che un sito web è sicuro?
Il lucchetto indica che la connessione al sito è crittografata e che il certificato è valido per quel dominio. Non garantisce che il sito stesso sia affidabile o privo di truffe: anche i siti fraudolenti possono ottenere certificati DV gratuiti. Considera il lucchetto come un segno di connessione privata, non come un sigillo di affidabilità generale.
I certificati SSL gratuiti sono sicuri quanto quelli a pagamento?
Sì, in termini di crittografia. Un certificato DV gratuito rilasciato da un’autorità di certificazione (CA) come Let’s Encrypt offre esattamente lo stesso livello di crittografia di un certificato a pagamento. I certificati OV ed EV a pagamento aggiungono un’ulteriore verifica dell’identità dell’organizzazione, ma non rendono la connessione crittografata più sicura.
Perché su alcuni siti ricevo un avviso relativo al certificato?
Gli avvisi relativi ai certificati compaiono quando la convalida fallisce — più comunemente perché il certificato è scaduto, non corrisponde al nome di dominio, è autofirmato o fa capo a un'autorità non attendibile. L'avviso è il tuo browser che ti protegge e, su un sito che gestisce password o pagamenti, non dovresti ignorarlo senza aver compreso il motivo per cui è apparso.
Quanto durano i certificati SSL?
I certificati pubblici moderni hanno in genere una durata di circa un anno o meno, e il settore si sta orientando progressivamente verso periodi di validità molto più brevi. I periodi di validità brevi riducono il rischio derivante dal furto di chiavi e costringono a dismettere l’uso di sistemi crittografici obsoleti. Il rinnovo automatico tramite protocolli come ACME rende il rinnovo frequente un’operazione semplice.
Posso verificare un certificato senza visitare il sito in un browser?
Sì. Gli strumenti online consentono di inserire un nome di dominio e visualizzarne i dettagli del certificato, tra cui l’emittente, le date di validità, la catena di fiducia completa e i giorni rimanenti alla scadenza, senza dover controllare manualmente il lucchetto. Ciò è utile per monitorare i propri siti o verificare un dominio prima di visitarlo.