CERTIFICATION AUTHORITY (CA)

Uno dei principali problemi che si riscontrano negli scenari di crittografia è sicuramente dovuto alla distribuzione delle chiavi pubbliche. Risolto questo problema, inoltre, resta sempre un interrogativo: chi assicura che una chiave pubblica è effettivamente quella di una determinata entità?
Quindi, l’autenticazione della chiave pubblica, cioè il confermare che una chiave appartiene veramente all’entità (ente, utente, …) con cui si stanno scambiando informazioni e non ad un impostore, è un nodo fondamentale per la costruzione di sistemi di comunicazione sicura.

Un primo modo di autenticare un dato messaggio è quello di usare la firma digitale, tuttavia il rischio di mistificazioni esiste sempre. E’ necessario dunque un documento che leghi inequivocabilmente il proprietario della chiave pubblica con la stessa: questo documento è, appunto, il certificato digitale (o Digital ID).

Chiaramente, non è possibile pensare che un singolo possa distribuire il proprio certificato; si ricorre, perciò, ad una Autorità di Certificazione (CA, Certification Authority): questa deve essere una terza parte credibile (TTP, Thrusted Third Part) incaricata del rilascio dei certificati e della verifica dell’identità richiedente, nonché del mantenimento di quella che va sotto il nome di “lista di revoca dei certificati” (CRL, Certificate Revocation List), dove sono conservati i certificati non validi.
Alcune delle maggiori società che si occupano del rilascio dei certificati sono: VeriSign, BelSign, AT&T, Deusche Telekom, American Express. E’ da notare come nessuno abbia incaricato direttamente una di queste società ad essere CA; tuttavia, esse svolgono un ruolo davvero importante nella sicurezza delle reti, sebbene non in maniera gratuita.

In generale un certificato contiene una chiave pubblica e la firma della CA. Un’analogia può essere fatta con il documento di identità rilasciato dal Comune di residenza!...

Uno degli standard più utilizzati per la struttura dei certificati è X.509. Un certificato basato su questo standard deve contenere, in linea di principio:

Da notare che solo la CA può aver firmato un certificato, in quanto è l’unica entità a possedere la sua chiave privata.

Una CA può emettere un certificato anche per un’altra CA, in modo da creare catene gerarchiche di certificati. Controllare la validità di un certificato, quindi, significa risalire la sua catena di autorizzazioni, fino a raggiungere quella di una CA “fidata”.
In cima alla catena gerarchica c’è una RootCA, che possiede un certificato “auto-firmato” (root certificate).
I browser in circolazione sono configurati per dare fiducia ad un certo numero (modificabile, ovviamente) di CA ben note, contenendo quindi i relativi root certificate. I certificati di CA credute dall’utente, quindi, sono memorizzate nel suo browser.

Quando si verifica un certificato si deve: controllare il suo periodo di validità, identificare la CA che lo ha rilasciato, verificare se tale CA (o un membro della catena di certificazione) è presente tra quelle che sono accreditate presso il proprio browser, verificare la firma tramite la chiave pubblica della CA che lo ha rilasciato.

I certificati possono essere utilizzati per vari scopi; tra i certificati più usati ricordiamo: