In crittografia, X.509 uno standard ITU-T per le infrastrutture
a chiave pubblica (PKI). X.509 definisce, fra le altre cose, formati
standard per i certificati a chiave pubblica ed un certification
path validation algorithm.
X.509 venne presentato per la prima volta nel 1988 e il suo sviluppo
cominci insieme allo standard X.500. La prima versione presupponeva
uno stretto sistema di gerarchie di certificate authority (CA) per
presentare e garantire un certificato, in contrasto con il modello
della rete di fiducia (web of trust), utilizzato da PGP, dove chiunque
(non solo CA particolari) pu firmare e quindi attestare (certificare)
la validit delle chiavi altrui. La Versione 3 di X.509 include
flessibilit tipiche di altre tipologie di reti e filtri: pu essere
utilizzato in una rete di fiducia peer-to-peer come quella di OpenPGP,
anche se raramente implementata in questo modo. Il sistema X.500
non mai stato totalmente implementato, e l'IETF ed i public-key
infrastructure working group hanno adattato lo standard con una
struttura più flessibile adatta ad internet. Infatti il termine
certificato X.509 si riferisca generalmente al profilo di certificato
PKI e di revoca del certificato (CRL) dell'IETF dello standard X.509
v3, come descritto nella RFC 3280.
Certificati
Nel sistema X.509, una CA rilascia un certificato che accoppia
una chiave pubblica ad un Nome Distintivo(Distinguished Name) seguendo
la tradizione del X.500, oppure ad un Nome Alternativo(Alternative
Name) come potrebbe essere un indirizzo e-mail o un record DNS.
Un root certificate fidato di un'azienda pu essere distribuito
a tutti i dipendenti, per far si che possano usare la PKI aziendale.
Browser come Internet Explorer, Netscape/Mozilla ed Opera vengono
distribuiti con alcuni root certificate preinstallati, rendendo
possibile il funzionamento dei certificati SSL di alcuni grossi
distributori che hanno pagato per questo servizio; in pratica chi
sviluppa il browser determina quali CA sono terze parti fidate.
Nonostante questi root certificate possano essere eliminati o disabilitati,
raramente gli utenti lo fanno.
X.509 include anche gli standard per le implementazioni di certificate
revocation list (CRL, liste di revoca di certificati), un aspetto
spesso sottovalutato dei sistemi PKI. La modalit di controllo della
validit di un certificato approvata dall'IETF si chiama Online
Certificate Status Protocol (OCSP).
Struttura di un certificato
La struttura di un certificato digitale X.509 v3 è la seguente:
Codice identificativo univoco del soggetto (facoltativo)
Estensioni (facoltativo)
Algoritmo di firma del certificato
Firma del certificato
I codici identificativi univoci dell'emettitore e del soggetto sono
stati introdotti nella versione 2, le "Estensioni" nella
versione 3.
Estensioni comuni per i file contententi i certificati
X.509
.CER - certificato codificato con DER, a volte sequenze di certificati;
.DER - certificato codificato con DER;
.PEM - certificato codificato con Base64, racchiuso tra "-----BEGIN
CERTIFICATE-----" e "-----END CERTIFICATE-----";
.P7B - vedi .p7c
.P7C - struttura SignedData PKCS#7 senza dati, solo il/i certificato/i
o la/le CRL (Certificate revocation list);
.PFX - vedi .p12
.P12 - PKCS#12, può contenere certificati e chiavi pubbliche
e private (protette da password);
PKCS #7
è uno standard per la firma o la crittazione
(viene chiamata "imbustamento", "incapsulazione",
"enveloping" in inglese) dei dati. Poiché è
necessario un certificato per verificare i dati firmati, è
possibile includerli in una struttura SignedData. Un file .P7C
non è altro che una struttura SignedData "degenere"
(senza dati firmati).
Used by Adobe Acrobat PDF's upto version 5.0
PKCS #12
è nato dallo standard PFX (Personal inFormation eXchange)
ed è usato per scambiarsi oggetti pubblici e privati
all'interno dello stesso file.
Used by Adobe Acrobat PDF's starting with version 6.0
Un file .PEM può contenere certificati o chiavi private,
racchiusi tra le apposite linee BEGIN/END.