Certificato digitale

Da Wikipedia, l'enciclopedia libera.
Diagramma: come viene realizzato un certifcato digitale

Nella crittografia asimmetrica un certificato digitale è un documento elettronico che attesta l'associazione univoca tra una chiave pubblica e l'identità di un soggetto (una persona, una società, un computer, etc) che dichiara di utilizzarla nell'ambito delle procedure di cifratura asimmetrica e/o autenticazione tramite firma digitale.

Tale certificato, fornito da un ente terzo fidato e riconosciuto come autorità di certificazione (CA), è a sua volta autenticato per evitarne la falsificazione sempre attraverso firma digitale ovvero cifrato con la chiave privata dell'associazione la quale fornisce poi la rispettiva chiave pubblica associata per verificarlo.

Descrizione[modifica | modifica sorgente]

Scopo[modifica | modifica sorgente]

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[modifica | modifica sorgente]

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, la 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[modifica | modifica sorgente]

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[modifica | modifica sorgente]

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[modifica | modifica sorgente]

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[modifica | modifica sorgente]

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.

Collegamenti esterni[modifica | modifica sorgente]

Voci correlate[modifica | modifica sorgente]