X.509

Da Wikipedia, l'enciclopedia libera.

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, certificati di attributo ed un certification path validation algorithm.

Storia ed utilizzo[modifica | modifica wikitesto]

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 corrispondenza tra una chiave pubblica ed il soggetto cui essa appartiene.

La Versione 3 di X.500 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 riferisce generalmente al profilo dei certificati e delle liste di revoca dei certificati (CRL, da Certificate Revocation List) dell'IETF basato su standard X.509 v3, come descritto nella RFC 5280.

Certificati[modifica | modifica wikitesto]

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 sì 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[modifica | modifica wikitesto]

La struttura di un certificato digitale X.509 v3 è la seguente:

  • Certificato
    • Versione
    • Numero seriale
    • ID dell'algoritmo
    • Ente emettitore
    • Validità
      • Non prima
      • Non dopo
    • Soggetto
    • Informazioni sulla chiave pubblica del soggetto
      • Algoritmo per l'utilizzo della chiave pubblica
      • Chiave pubblica
    • Codice identificativo univoco dell'emittente (facoltativo)
    • 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 contenenti 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).

PKCS #12 è nato dallo standard PFX (Personal inFormation eXchange) ed è usato per scambiarsi oggetti pubblici e privati all'interno dello stesso file.

Un file .PEM può contenere certificati o chiavi private, racchiusi tra le apposite linee BEGIN/END.

Entità presenti nel X.509[modifica | modifica wikitesto]

Esistono differenti tipi di entità:

  • Certification Autority (CA): emette certificati, genera CRL, genera la coppia chiave Pb e Pr, conferma che ogni utente che richiede l’emissione del proprio certificato è in possesso della corrispondente chiave privata, verifica l’unicità della chiave Pb.
  • Local Registration Authorities: alcune CA richiedono la presenza fisica dell’utente finale e quindi una LRA gioca il ruolo di intermediario, che risolve questo problema.
  • Root Authority: è l’autorità che è in carica per approvare la politica di certificazione globale. Usata solitamente per certificare altre CA, non utenti.
  • Policy certification Authority: permette di creare, per alcuni gruppi di utenti, estensioni di politiche di certificazione stabilite originalmente.
  • L’utente finale: genera e verifica documenti firmati

Certification Authority[modifica | modifica wikitesto]

Bibliografia[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]