Certificate transparency - protezione contro i certificati falsificati

05/feb/2015 | Jindřich Zechmeister

La Certificate Transparency  è una funzionalità che aumenta l’affidabilità dei certificati, di cui abbiamo già parlato a novembre. La parte teorica è disponibile nell’articolo Certificate Transparency a Public Key Pinning.  Certificate Transparency e Public Key Pinning. Oggi esamineremo più da vicino la Certificate Transparency, concentrandoci in particolare sugli aspetti pratici e sul suo comportamento nel browser Google Chrome.

Logo di Google

Cos'è Certificate Transparency e perché è nato?

Fondamentalmente, Certificate Transparency può essere caratterizzato come la registrazione dei certificati emessi da Google, che oltre a tenerne traccia li monitora e li verifica. Certificate Transparency funziona solo in Chrome, altri browser non supportano CT.

La nuova funzione CT è nata per aumentare la protezione contro la falsificazione dei certificati, che è tecnicamente chiamata attacco MITM (Man in the middle). Di conseguenza, l'utente dovrebbe essere più protetto contro tentativi di utilizzo di un certificato falsificato (sebbene tale rischio sia in realtà minimo).

Certificate Transparency è attualmente dominio dei certificati EV con verifica estesa, ma l'obiettivo di Google è di espandere il servizio anche ad altri tipi di certificati.

È importante notare che da febbraio 2015 Chrome non mostrerà la barra verde sui certificati EV emessi dopo il 1 gennaio 2015 se il certificato non è presente nei log CT! I certificati EV Symantec, GeoTrust e Thawte esistenti sono stati aggiunti al log a dicembre 2014 e i nuovi verranno aggiunti automaticamente. I nostri clienti non devono preoccuparsi.

Chrome controlla i registri pubblici del certificato

Google Chrome ha iniziato a mostrare messaggi strani e incomprensibili riguardo la pubblicazione dei dati. Segue una panoramica di quattro possibili varianti (la traduzione è tratta dalla versione ceca di Chrome, per alcune varianti ancora non conosco la traduzione ufficiale).

L'identità di questo sito web (organizzazione XY) è stata verificata da [nome della tua CA], ...

  • e è pubblicamente verificabile (L'identità di questo sito è stata verificata da ISSUER ed è pubblicamente verificabile.) - tutto è in ordine e CT funziona (timestamp valido).
  • ma non esistono registri pubblici di questa organizzazione  - apparentemente assenza del registro CT, vedi sotto
  • ma non esistono registri pubblici del sito (L'identità di questo sito è stata verificata da ISSUER ma non ha registri di audit pubblici) - CT non funziona (nel cert. non esiste un timestamp firmato).
  • dichiara di avere registri di audit pubblici, ma non possono essere verificati (traduzione propria) - il timestamp è firmato, ma non è in un log noto e non può essere verificato.
  • ma i registri di audit pubblici non sono riusciti alla verifica (traduzione propria) - il timestamp è elencato in un log noto, ma non può essere verificato.

trasparenza certificato chrome

Errore di Certificate Transparency in Google Chrome. Il messaggio sulle impostazioni di sicurezza non si riferisce più a CT.

All'inizio, non mi è nemmeno venuto in mente che questo messaggio fosse correlato alla Certificate Transparency, ma è così. Le obiezioni ai registri pubblici (audit records) dunque si riferiscono a Certificate Transparency. Mi sorprende, tuttavia, che non ci sia nessuna spiegazione aggiuntiva con il messaggio. Il link al registro CT appare solo con un record positivamente verificato, con l'errore non c'è niente.

Cosa fare dal punto di vista del titolare del sito?

È importante scegliere un'autorità di certificazione responsabile, che si occupa della pubblicazione dei certificati EV emessi nel log CT. Ad esempio, Symantec, Thawte o GeoTrust. Il resto sarà "fatto" automaticamente e il risultato sarà positivo.

Il vantaggio per il proprietario del sito è la possibilità di controllo e panoramica dei certificati emessi dal punto di vista del proprietario del dominio. Venire a sapere che qualche grande autorità di certificazione ha emesso un certificato per il tuo dominio; se ciò è avvenuto senza il tuo consenso, puoi impedirne l'uso improprio tempestivamente.

Cosa succede se Certificate Transparency non funziona?

Nel caso di malfunzionamento di CT, Chrome non dovrebbe mostrare la barra verde del certificato EV. Tuttavia, con Google, è difficile prevedere come alla fine integrerà gli avvisi in Chrome. Più probabilmente mi aspetterei che il browser mostri un avviso di affidabilità. Attualmente, sembra che CT influisca sull'aspetto del simbolo HTTPS anche per tipi di certificati inferiori. Google crea dunque molta confusione in Chrome e nei suoi avvisi.

Non tutto ciò che viene da Google è perfetto

Certificate Transparency è stato creato con l'intento benevolo di rafforzare la protezione degli utenti contro i certificati falsificati. Tuttavia, presenta alcune carenze che devo menzionare.

La prima è il supporto solo in Chrome; altri browser non usano ancora CT. Il secondo è lo stesso Google, che è molto aggressivo in questioni di sicurezza, e nell'implementare nuove funzionalità in Chrome è troppo precipitato (basta ricordare il caso SHA-1). Chrome è ora in uno stato in cui spesso mostra avvertimenti senza senso sui certificati, e il tutto varia anche tra le piattaforme (su Linux puoi vedere avvertimenti che su Windows non vedi, il che può essere dovuto al diverso ritmo di lavoro dei programmatori nella versione Linux di Chrome).

Lo stesso principio di Certificate Transparency non è perfetto, ma non esaminerò qui tutte le obiezioni, e indirizzerò i lettori alla prima fonte alla fine dell'articolo. L'autore dell'articolo critica principalmente il fatto che CT non serve tanto a prevenire l'attacco MITM, ma piuttosto a rilevarlo retroattivamente.

L'operatore del log principale, cioè Google, sostanzialmente si comporta come se CT non lo riguardasse. Lascia il controllo al pubblico, e ogni proprietario di dominio dovrebbe controllare i log da solo (!), e cercare se per il suo dominio è stato emesso un certificato fraudolento (!). I log possono anche essere controllati dai "monitor" dei log, ma non è chiaro cosa dovrebbero fare in caso di sospetto. Allo stesso modo, non è chiaro cosa dovrebbero fare i browser con un rilevamento positivo nel log CT (alla fine, finirà che ognuno segnalerà qualcosa di diverso).

CT, nella sua forma attuale, non risolve la situazione in cui i certificati falsificati provengono direttamente da un CA (cosa che accade durante un attacco hack al CA, che fortunatamente praticamente non si verifica, o in caso di collaborazione del CA con i servizi segreti). L'autorità, naturalmente, pubblicherà il registro del certificato in CT al momento dell'emissione.

Un'altra carenza è il fatto che CT funziona automaticamente, e non c'è modo di effettuare un opt-out, cioè la possibilità di annullare la pubblicazione dei certificati. Il proprietario del certificato non è in grado di influenzare nulla, e se non gli piace CT, non ha scelta.

Ulteriori fonti di informazione:

  1. Il problema con Certificate Transparency. Critica delle carenze di Certificate Transparency e obiezioni.
  2. Certificate Transparency. Sito ufficiale di Google su Certificate Transparency.
  3. A Comparison of HTTPS Reforms. Riflessione sul "miglioramento" del protocollo SSL/TLS e confronto di queste nuove funzionalità.

Ing. Jindřich Zechmeister
Specialista per i certificati SSL di sicurezza
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz