05. Certificato digitale

Un certificato digitale è un documento elettronico che attesta l'associazione tra una chiave pubblica e l'identità di un soggetto (una persona, una società, un nome di dominio, etc), nell'ambito della crittografia asimmetrica.

Il certificato è rilasciato da un ente terzo fidato e riconosciuto come autorità di certificazione (CA): l'autorità di certificazione utilizza la propria chiave privata per firmare il documento costituito dai dati identificativi e la chiave pubblica del soggetto cui il certificato appartiene.  Il processo di firma da parte della CA consiste dei seguenti passi:

Chiunque riceva un certificato può verificarne l'autenticità nel seguente modo:

Il formato più comune per i certificati digitali è definito dallo standard X.509. 

L'affidabilità del meccanismo discende dall'affidabilità dell'autorità di certificazione e dalla capacità di distribuire in modo certo la chiave pubblica dell'autorità.

Nei browser le chiavi pubbliche delle principali autorità di certificazione sono inserite "in fabbrica" e tramite esse è possibile verificare l'autenticità dei certificali digitali. Gli utenti, inoltre, possono aggiungere altre autorità di certificazione di cui si fidano.

I certificati digitali sono utilizzati in diversi ambiti di uso comune.

X.509

Una Infrastruttura a Chiave Pubblica (PKI - Public Key Infrastructure) è un insieme di tecnologie che consentono di associare in modo sicuro una chiave pubblica ad un soggetto (persona fisica, nome di dominio, indirizzo di posta elettronica ecc.) e di verificarne successivamente la corrispondenza.

Una PKI quindi definisce:

Lo standard X.509 definisce il formato dei certificati nell'ambito di una PKI. Esso include le seguenti informazioni (elenco non esaustivo):

Naturalmente il certificato include anche la firma dall'autorità emittente.

Nell'ambito della PKI, le CA sono organizzate in modo gerarchico e il certificato che attesta l'autorevolezza di una CA di livello intermedio è firmato dalla CA posta gerarchicamente al livello superiore.

Il certificato appartenente alla autorità posta al vertice viene definito certificato root (o ancora di fiducia, trust anchor) . Una violazione di tale certificato, autofirmato dalla stessa autorità, comprometterebbe l'intero sistema.

Il percorso completo, che mostra la CA che ha firmato un certificato e tutte le CA poste ad un livello gerarchico superiore, è detto certification path.

Una CA può essere presente in più gerarchie di certificazione indipendenti, nel senso che può disporre di più certificati con la stessa chiave pubblica, firmate da CA appartenenti a gerarchie differenti (cross-certificate). Questa pratica facilita il riconoscimento delle chiavi delle CA, infatti riduce il numero delle chiavi pubbliche che devono essere note a priori al programma che effettua il controllo di validità del certificato (ad esempio il browser).

L'immagine riproduce alcuni campi di un certificato.

Nell'intestazione è evidenziato il certification path con l'identificazione del soggetto titolare, la CA intermediaria che ha firmato il certificato e la CA root.