Una chiave pubblica è una chiave crittografica utilizzata in un sistema di crittografia asimmetrica; ogni chiave pubblica è associata ad una chiave privata.
La caratteristica dei crittosistemi asimmetrici è che ogni coppia di chiavi è formata in modo tale che ciò che viene cifrato con una, può essere decifrato solo con l'altra.
Le due chiavi sono, a priori, perfettamente interscambiabili, ma generalmente una delle due viene definita "pubblica" e una "privata" perché il poter distribuire una (e una sola!) delle due è il principale vantaggio dei crittosistemi asimmetrici.
Le chiavi pubbliche possono essere scambiate anche su un canale non sicuro (via e-mail, tramite un key server, su una pagina web o quant'altro), l'importante è sapere che una chiave pubblica non è di per sé associata a una "persona", ma esclusivamente ad una chiave privata. Per associarla ad una persona si fa generalmente uso di un certificato digitale.

Scopo

I certificati sono utili per la crittografia a chiave pubblica quando usata su larga scala. Infatti, scambiare la chiave pubblica in modo sicuro tra gli utenti diventa impraticabile, se non impossibile, quando il numero di utenti comincia a crescere. I certificati digitali sono una soluzione per superare questa difficoltà.
Lo scopo del certificato digitale è quello di garantire che una chiave pubblica sia associata alla vera identità del soggetto che la rivendica come propria.
In un sistema a crittografia asimmetrica ciò può essere molto importante: infatti, ogni messaggio crittografato con una data chiave pubblica può essere decrittato solo da chi possiede la relativa chiave privata (caso della cifratura asimmetrica); per cui, se siamo sicuri che la chiave pubblica appartiene a "Mario Rossi" allora siamo anche sicuri che solo "Mario Rossi" potrà leggere i messaggi crittati con quella chiave pubblica in quanto possessore della rispettiva chiave privata.
Vale inoltre anche il viceversa: se possiamo decriptare un messaggio con quella chiave pubblica allora siamo sicuri che quel messaggio è stato criptato da "Mario Rossi" garantendone l'autenticazione (caso della firma digitale) (anche se ciò non implica che quel messaggio sia stato inviato da "Mario Rossi" cioè sia passibile di attacchi di tipo man in the middle).

Funzionamento
In principio quindi se Mario Rossi voleva inviare/ricevere un messaggio cifrato oppure voleva firmare digitalmente un documento doveva divulgare la sua chiave pubblica agli altri attori della comunicazione. Ogni persona che la possedeva poteva inviargli o ricevere da lui messaggi sicuri tramite cifratura asimmetrica con quella chiave pubblica oppure ricevere da lui documenti firmati con la chiave privata per poi verificare la firma con la suddetta chiave pubblica; tuttavia qualsiasi individuo poteva divulgare una differente chiave pubblica (di cui conosceva la relativa chiave privata) e dichiarare che era la chiave pubblica di Mario Rossi.
Per evitare questo problema, Mario Rossi inserisce allora la sua chiave pubblica in un certificato firmato da una terza parte fidata ("trusted third party"): tutti quelli che riconoscono questa terza parte devono semplicemente controllarne la firma per decidere se la chiave pubblica appartiene veramente a Mario Rossi.
In una PKI, la terza parte fidata sarà un'autorità di certificazione che apporrà anch'essa una firma sul certificato per validarlo. Nel web of trust, invece, a terza parte può essere un utente qualsiasi (ovvero la firma è quella o dello stesso utente (un'auto-certificazione) oppure di altri utenti ("endorsements")) e sarà compito di chi vuole comunicare con Mario Rossi decidere se questa terza parte è abbastanza fidata.
In entrambi i casi, la firma certifica che la chiave pubblica dichiarata nel certificato appartiene al soggetto descritto dalle informazioni presenti sul certificato stesso (nome, cognome, indirizzo abitazione, indirizzo IP, etc.).

Contenuto di un certificato

Un certificato tipicamente include:

    una chiave pubblica;
    dei dati identificativi, che possono riferirsi ad una persona, un computer o un'organizzazione;
    un periodo di validità;
    l'URL della lista dei certificati revocati (CRL);

Il tutto è firmato da una terza parte fidata.
Validità e liste di revoca

Un certificato solitamente ha un intervallo temporale di validità, al di fuori del quale deve essere considerato non valido. Un certificato può essere revocato se si scopre che la relativa chiave privata è stata compromessa, oppure se la relazione specificata nello stesso (cioè la relazione tra un soggetto ed una chiave pubblica) è incorretta o è cambiata; questo potrebbe succedere se, per esempio, una persona cambia lavoro oppure indirizzo. Ciò significa che un utente oltre a controllare che il certificato sia fidato (verificare che sia firmato da una CA riconosciuta) e non sia scaduto dovrebbe controllare anche che non sia stato revocato. Questo può essere fatto attraverso la lista dei certificati revocati (CRL). Una funzione chiave della PKI è proprio quella di tenere aggiornata la CRL. Un altro modo per verificare la validità di un certificato è quello di interrogare la CA attraverso un protocollo specifico come, per esempio, Online Certificate Status Protocol (OCSP).

Standard di certificati
Lo standard più comune per i certificati è ITU-T X.509. X.509 è stato adattato ad Internet dal gruppo di lavoro PKIX dell'IETF (IETF PKIX Working Group).
Certificati e sicurezza dei siti web

L'uso più comune dei certificati digitali è per l'accesso ai siti web via HTTPS, ossia HTTP su protocollo sicuro SSL. Attraverso i certificati possiamo accertarci che il server a cui ci si è connessi è autentico, ovvero è effettivamente quello che dichiara di essere. Il protocollo SSL prevede che, alla connessione, il server fornisca il proprio certificato digitale; se il certificato digitale è firmato da un'autorità di certificazione da noi riconosciuta, e la decifratura della firma del certificato ha buon fine, allora possiamo utilizzare la chiave pubblica presente nello stesso per avviare una comunicazione sicura.
Fonte: Wikipedia