Un problema associato ai sistemi di crittografia a chiave pubblica è quello di doversi costantemente assicurare dell'appartenenza di una chiave pubblica. In ambienti del genere, dove lo scambio di chiavi pubbliche può avvenire anche tramite Keyserver pubblici, gli attacchi man-in-the-middle sono una minaccia costante. Un certificato ha dunque il compito di stabilire se una chiave pubblica appartiene realmente al proprietario supposto. Esso è costituito da una chiave pubblica, informazioni sul proprietario della chiave stessa (nome, user ID , e così via), e una o più firme digitali. Lo scopo della firma digitale è dichiarare che le informazioni contenute nel certificato sono state attestate da qualche altra persona o entità. La firma digitale, però, non dichiara l'autenticità del certificato nell'insieme, ma serve solo a legare l’identità dell’utente alla chiave pubblica specificata.
Attraverso
i certificati, le chiavi pubbliche possono essere memorizzate, distribuite o
spedite su un mezzo sicuro senza pericolo di manipolazioni non individuate. In
questo modo autenticità e validità di una chiave pubblica possono essere
verificate da qualunque utente.
I certificati possono avere un numero diverso di formati.
Pgp ne riconosce due: PGP e X.509.
Le
differenze sostanziali tra i due tipi sono le seguenti:
un utente può creare il proprio certificato PGP, mentre un certificato X.509
deve essere richiesto alla Certification Autority (CA);
i certificati X.509 supportano solo una firma per dimostrare la validità di una
chiave;
i certificati X.509 supportano solo un nome associato al proprietario della
chiave.
Un certificato è creato specificando un periodo di validità: la data di inizio e quella di fine. Quando scade il periodo di validità di un certificato, la coppia di chiavi ad esso associata non è più sicura. D'altra parte tale coppia di chiavi può ancora essere utilizzata per la decifratura e la verifica di informazioni che sono state cifrate o firmate nel periodo di validità del certificato.
Ci sono anche situazioni in cui è necessario invalidare un certificato prima della sua data di scadenza, come ad esempio quando si sospetta che la coppia di chiavi ad esso associata sia stata compromessa. Questa operazione è appunto detta revoca. Per rendere pubbliche le revoche la CA mette a disposizione una Certificate Revocation List o CRL. La CRL contiene dunque tutti i certificati non ancora scaduti ma che, per qualche motivo, sono stati revocati. Non appena scadono, i certificati vengono cancellati dalla CRL per evitare che diventi troppo lunga. Una CA piuttosto conosciuta è VeriSign Inc.