Certificate Transparency e Public Key Pinning

11/nov/2014 | Jindřich Zechmeister

Nel presente articolo illustrerò due concetti piuttosto nuovi e poco conosciuti, Certificate Transparency a Public Key Pinning, che sono legati alla sicurezza dell’uso dei certificati SSL. Entrambi cercano di ridurre il rischio di esposizione e utilizzo di certificati falsificati sul vostro sito web.

Trasparenza dei certificati (CT)

Certificate Transparency (CT) è una funzionalità creata da Google. In breve si tratta di pubblicare tutti i certificati emessi da un'autorità in una sorta di "registro" per poter verificare se è stato effettivamente emesso dall'autorità in questione.

Certificate Transparency (CT) ha tre obiettivi principali:

  1. Impedire (o rendere molto difficile) per un'autorità di certificazione l'emissione di un certificato SSL per un dominio senza la conoscenza del proprietario del dominio in questione.
  2. Fornire un sistema di auditing e monitoraggio aperto che consente a qualsiasi proprietario di dominio di controllare se un'autorità di certificazione ha emesso un certificato per il suo dominio (sia corretto che fraudolento).
  3. Proteggere gli utenti (nella massima misura possibile) dai danni causati da certificati emessi erroneamente o con intenzioni malevoli.

Il principio del controllo reciproco in CT

Il browser verificherà lo stato del certificato nel registro pubblico prima di riporvi fiducia. Se il certificato non è elencato, non verrà visualizzata la barra verde EV in Google Chrome. Il registro pubblico accessibile sarà monitorato e i certificati sospetti saranno osservati.

Il primo utilizzo significativo di questa funzionalità è previsto da Google per febbraio 2015 sui certificati EV già menzionati; successivamente, Certificate Transparency verrà esteso anche ad altri certificati.

Ulteriori informazioni su Certificate Transparency possono essere trovate nell'articolo di Google How Certificate Transparency Works, o direttamente sul sito tematico certificate-transparency.org.

Public Key Pinning

Il pinning delle chiavi pubbliche affronta la maggiore debolezza di PKI e dell'attuale ecosistema, che è il fatto che un'autorità può emettere un certificato per qualsiasi dominio senza il consenso del suo proprietario.

Con il "pinning", un proprietario del sito può scegliere una o più autorità di cui si fida e che possono emettere un certificato per il suo dominio. Ciò limita il rischio di abuso del dominio mediante un certificato falso da parte di un'autorità meno affidabile che potrebbe essere sfruttata. Il Pinning serve quindi a difendersi dagli attacchi MITM (Man in the Middle) e a proteggere la conferma del certificato.

Attualmente il pinning è disponibile nel browser Chrome (circa 500 record), ma è in corso la creazione di uno standard aperto per il pinning utilizzando il protocollo HTTP. Ad esempio, l'estensione Public Key Pinning per il protocollo HTTP indica al browser quale certificato deve essere associato a un particolare dominio. Un approccio leggermente diverso al pinning delle chiavi pubbliche è il protocollo DANE, che posiziona le informazioni firmate sui certificati nel DNS, combinando quindi il principio dei certificati SSL e del DNSSEC.

Maggiori dettagli tecnici ed esempi di utilizzo del Key Pinning possono essere trovati, ad esempio, nell'articolo tecnico su Certificate and Public Key Pinning.

Nei prossimi articoli esploreremo altri concetti di sicurezza moderni che forse non conosci ancora.


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