Dal 30 settembre 2021, si è verificato un aumento considerevole delle segnalazioni di errori su siti web che, se navigati da alcuni browser, segnalano errori SSL come “Errore :La connessione non è privata” oppure “NET::ERR_CERT_AUHTORITY_INVALID”.

In questo articolo scopriremo insieme cosa sono i certificati radice, perché dal 30 settembre 2021 alcuni vecchi dispositivi restituiscono un errore SSL navigando su siti web che hanno installato certificati SSL Let’s Encrypt e come si è evoluta questa Certification Authority nel tempo.

Cominciamo!

Cos’è Let’s Encrypt

Let’s Encrypt è sicuramente una delle autorità di certificazione più famose del web. Nata come progetto dalla Internet Security Research Group (ISRG), è stata fondata nel 2013 da diverse aziende e università tra cui Mozilla, Cisco, Akamai e l’università del Michigan.

Il progetto Let’s Encrypt ha reso internet più sicuro e libero, permettendo a tutti i webmaster di attivare un certificato SSL per il proprio sito web e renderlo accessibile in HTTPS in forma completamente gratuita e automatizzata.

Noi di Ergonet ci ricordiamo molto bene dell’avvento di Let’s Encrypt nel web. Siamo infatti stati il primo hosting provider in Italia a rendere disponibile l’attivazione di un certificato SSL gratuito per tutti i nostri servizi di web hosting. Attualmente i certificati SSL vengono attivati in forma completamente automatica, sia in fase di registrazione che di trasferimento di un nome a dominio.

Negli anni successivi alla fondazione, il progetto Let’s Encrypt ha raggiunto numeri stupefacenti. Pensate che oggi questa CA (Certification Authority) emette più di due milioni di certificati SSL ogni singolo giorno.

Grafico dei certificati emessi da Let's Encrypt ogni giorno.

Soprattutto per via del fatto che emette certificati SSL gratuiti, Let’s Encrypt è quindi responsabile dell’emissione di moltissimi dei certificati SSL attivi sui siti web che navighiamo giornalmente. Se negli ultimi anni avete realizzato un sito web, è quasi certo che abbiate attivato un certificato SSL di Let’s Encrypt per rendere il sito accessibile in HTTPS.

Let’s Encrypt e il certificato radice DST Root CA X3

Chiarita la posizione di Let’s Encrypt, vediamo ora nel dettaglio cosa è successo pochi giorni fa.

Il 30 settembre 2021, come la stessa Let’s Encrypt ha annunciato sul proprio sito ufficiale, è scaduto quello che tecnicamente viene chiamato un “root certificate”, cioè un certificato radice. È proprio questa la causa scatenante del problema dei siti web che restituiscono, su alcuni dispositivi, un errore di certificato SSL.

Fortunatamente l’errore sul certificato SSL non si verifica su tutti i dispositivi o browser, ma solo su quelli di vecchia generazione. Per comprendere perché accada, è necessario prima capire che cos’è un certificato radice e quale sia la sua importanza nel processo di verifica dei certificati SSL che eseguono i browser web.

Cercheremo di semplificare il più possibile la spiegazione, evitando di addentrarci troppo nel mondo della crittografia 🙂 .

Cos’è un certificato radice e cosa serve?

Un certificato radice è un certificato auto-firmato da una Certification Authority (in questo caso Let’s Encrypt), che viene utilizzato per firmare un certificato intermedio. Lo scopo del certificato intermedio è quello di proteggere il certificato radice, la cui chiave di crittografia privata, può così essere mantenuta letteralmente offline per motivi di sicurezza. Il certificato intermedio, forte dell’affidabilità acquisita dal certificato radice, ha la capacità di firmare a sua volta i certificati SSL che vengono installati sui siti web.

Il concetto è quello alla base della crittografia a chiave pubblica, su cui essenzialmente si basa il trasferimento di informazioni in modalità protetta sulla rete internet. Detto con parole semplici, il sistema a coppia di chiavi permette a un client (ad esempio un browser) di crittografare delle informazioni tramite una chiave pubblica accessibile a tutti, ma solo chi è in possesso della chiave privata, accoppiata con quella pubblica, potrà decifrare quelle stesse informazioni.

Dettaglio preso dal browser web chrome di una catena di certificati

Se il certificato SSL installato sul vostro sito web risulta sicuro, è proprio grazie all’affidabilità che ha ottenuto dal certificato intermedio che l’ha emesso (nell’immagine R3), che a sua volta l’ha ottenuta dal suo certificato radice (nell’immagine ISRG Root X1 ). Come noterete, si tratta proprio di una catena, è chiamata infatti catena di certificati o certificate chain.

Ormai avrete capito che i certificati radice sono essenziali. E indovinate dove si trova la lista di tutti i certificati radice che i browser utilizzano per validare un certificato SSL di un sito web che state visitando? Nei sistemi operativi dei dispositivi fissi e mobili che utilizzate tutti i giorni.

Grafico di una catena di certificati:certificato radice, certificato intermedio e certificato SSL.

Cercando di semplificare nuovamente il più possibile il concetto, possiamo affermare che i certificati radice presenti nei sistemi operativi, sono essenziali al fine di verificare che la Certification Authority sia affidabile, e che ci si possa di conseguenza fidare del certificato che essa stessa ha emesso per il sito web che stiamo navigando, poiché ne ha verificato l’identità mediante un processo di certificazione sicuro e standardizzato.

È proprio questo il modo attraverso il quale il vostro browser (Chrome, Firefox, Safari,ecc) si assicura che il canale di comunicazione con il sito web che avete aperto, e sul quale state inserendo la vostra carta di credito, sia davvero criptato. Solo così sarà possibile scambiare informazioni in totale sicurezza mediante il protocollo HTTPS, nel mezzo del quale nessuno potrà inserirsi per sniffare le informazioni inviate e ricevute.

Certificati radice e browser web

Ma non esiste solo Let’s Encrypt e il suo certificato radice. Esistono diverse Certification Authority come Sectigo, DigiCert, IdenTrust, Google, Microsoft, Apple, e così via, e ognuna ha il suo certificato radice.

Esiste quindi una vera e propria lista di certificati radice, che i browser utilizzano per analizzare la “catena di fiducia” (detta anche chain of trust) e di conseguenza la validità dei certificati SSL dei siti web.

Come abbiamo accennato prima, la lista dei certificati radice è presente in tutti i sistemi operativi, ed è solitamente compito di questi ultimi mantenerla aggiornata. I browser fanno quindi affidamento sugli aggiornamenti del sistema operativo in cui sono stati installati, per poter ottenere una lista aggiornata dei certificati radice. I root certificate infatti, con il tempo scadono e ne vengono conseguentemente introdotti di nuovi grazie proprio agli aggiornamenti software.

Le uniche eccezioni sono il browser Firefox di Mozilla e il sistema operativo Android. Firefox utilizza una propria lista di certificati radice che aggiorna ad ogni update del software, senza necessità di fare affidamento a quelli del sistema operativo. Per i vecchi dispostivi Android, invece, Let’s Encrypt ha trovato un’alternativa valida ai mancati aggiornamenti.

Scadenza del certificato radice di Let’s Encrypt

Prima che un certificato radice scada, l’autorità di certificazione (nel nostro caso Let’s Encrypt) si assicura, grazie ad accordi speciali messi in piedi con le case madri produttrici dei sistemi operativi, che il suo nuovo certificato radice venga approvato ed inserito nella lista di quelli presenti e utilizzati dal sistema operativo stesso.

Così è stato anche per il nuovo certificato radice di Let’s Encrypt (ISRG Root X1), che è stato quindi aggiunto già da diversi anni nei vari sistemi operativi, grazie proprio agli aggiornamenti software periodici.

Dispositivi obsoleti e non aggiornati

Eccoci al dunque: quando un certificato radice scade e il sistema operativo non è più aggiornato, il browser non potrà più verificare se il certificato SSL del sito web su cui stiamo navigando sia valido o meno.

E nel dubbio cosa farà? È ovvio, il browser è tendenzialmente progettato con l’intento di fare sempre la cosa più sicura (e meno male).

Non potendo più garantire all’utente che la connessione avverrà attraverso un canale crittografato, restituirà un errore di certificato NET::ERR_CERT_AUHTORITY_INVALID oppure “La connessione non è privata”.

Ecco il vero motivo per cui i dispositivi che non possono più ricevere aggiornamenti da parte delle case madri dei sistemi operativi come quelli di Apple, Microsoft o Google, restituiranno un errore di sito non sicuro o certificato non valido per i siti che utilizzano certificati SSL Let’s Encrypt.

Ci sono possibili soluzioni?

In Ergonet abbiamo da subito implementato diverse modifiche lato server per aumentare il più possibile la compatibilità della catena di certificazione e scongiurare l’errore SSL sui dispositivi obsoleti. Purtroppo, essendo una problematica derivante soprattutto dal software o dal sistema operativo utilizzato da chi si collega al sito web, non è tecnicamente possibile coprire tutte le casistiche.

Le possibili soluzioni in questo caso sono tre:

  1. [difficoltosa] consigliare agli utenti di utilizzare un browser differente come Firefox, che include una gestione personalizzata della lista dei certificati radice che non dipende dal sistema operativo in utilizzo.
  2. [difficoltosa] consigliare agli utenti di aggiornare il sistema operativo del dispositivo utilizzato, nel caso ci sia questa possibilità e la casa madre supporti ancora l’hardware che utilizza.
  3. [più semplice] acquistare un certificato SSL commerciale per il sito web (non Let’s Encrypt) per estendere il più possibile la compatibilità con i vecchi sistemi operativi.

Considerate che chi non vede correttamente un sito web per questo motivo, avrà comunque problemi con qualsiasi altro sito o applicazione che utilizza un certificato SSL emesso Let’s Encrypt.

Conclusioni

Non è certo la prima volta che scade un certificato radice di una Certification Authority. Speriamo che questo articolo vi sia stato utile per comprendere in maniera semplice perché accadano certe cose.

Ma non sono solo gli utenti che non aggiornano i loro dispositivi 🙂

Negli ultimi giorni, diverse grosse aziende hanno segnalato problematiche e disservizi a causa della scadenza del root certificate di Let’s Encrypt. Alcuni esempi sono AWS, Shopify, Fortinet, CPanel, Mailgun.

Evidentemente il problema degli aggiornamenti è proprio un problema dell’uomo, più che delle macchine 🙂