Indietro

ⓘ X.509




X.509
                                     

ⓘ X.509

X.509 è uno standard proposto dallUnione internazionale delle telecomunicazioni, usato per definire il formato dei certificati a chiave pubblica e delle autorità di certificazione. I certificati vengono utilizzati per la validazione dellidentità e la trasmissione di dati criptati che solo il possessore di uno specifico certificato è in grado di decifrare e leggere. Questi vengono rilasciati dalle Certificate authority, un soggetto terzo fidato che assicura la corrispondenza di una chiave pubblica a una determinata identità. Uno degli usi più diffusi di X.509 è nellambito internet, il certificato SSL/TLS viene usato nellomonimo protocollo per criptare le comunicazioni tra un sito web e il nostro browser.

Lo standard inoltre definisce sotto diversi aspetti lutilizzo dei certificati nelle infrastrutture a chiave pubblica PKI e nei Privilege Management Infrastructure PMI. Oltre al certificato a chiave pubblica e ai certificati di attributi vengono descritti anche i seguenti tipi di dato: certificate revocation list CRL e attribute certificate revocation list ACRL.

Le certificate revocation list CRL contengono la lista dei certificati che sono stati revocati dallautorità rilasciante. Le CRL vengono consultate per assicurarsi la validità e affidabilità dei certificati che si stanno per utilizzare. Operazione svolta dal browser ogni volta che ci si collega a un sito tramite SSL/TLS.

                                     

1. Storia ed utilizzo

L ITU-T X.509 venne presentato per la prima volta nel 1988 come parte dello standard X.500, insieme di raccomandazioni per un servizio di directory. Il formato dei certificati definito nel 1988 costituisce la versione unov1. Questo presupponeva uno stretto sistema di gerarchie di certificate authority CA per garantire la legittimità di un certificato. In contrasto con il modello della rete di fiducia web of trust, utilizzato da PGP, dove chiunque, non solo i CA, può firmare e quindi attestare certificare la corrispondenza tra una chiave pubblica e il soggetto a cui essa appartiene.

Lo standard fu rivisitato nel 1993 con laggiunta del supporto di due nuovi attributi nel certificato, questa estensione costituisce la versione due v2. Nello stesso anno con lInternet Privacy Enhanced Mail PEM, anche in una rete di fiducia peer-to-peer come quella di Open-PGP, raramente però è implementata in questo modo. Questo aiuto a superare la rigida struttura gerarchica dei PKI.

Il sistema X.500 non è mai stato totalmente completato, e lIETF e i public-key infrastructure working group PKIX hanno adattato lo standard con una struttura più flessibile adatta a 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 dellIETF basato su standard X.509 v3, come descritto nella RFC 5280.

                                     

2. Certificati

Nel sistema X.509, una Certification Authority CA rilascia un certificato che accoppia una chiave pubblica a un nome univoco, oppure a unentità come potrebbe essere un indirizzo e-mail o un record DNS. Lautenticità di un certificato e dellautorità di certificazioni dipendono dal root certificate. I root certificate sono implicitamente fidati. Uno degli esempi di software distribuiti con root certificate preinstallati sono i browser, rendendo possibile il funzionamento dei certificati SSL/TLS.

                                     

2.1. Certificati Struttura di un certificato

La versione tre v3 dei certificati digitali X.509 ha tre voci principali: il certificato, lidentificativo dellalgoritmo di firma del certificato e la firma del certificato. Il certificato viene descritto attraverso una serie di attributi come la versione, lID dellalgoritmo, il numero seriale, lemittente, il richiedente, la validità, informazioni sulla chiave pubblica del richiedente, estensioni e altre voci facoltative. Le informazioni sulla chiave pubblica del richiedente sono poi ulteriormente dettagliate con lalgoritmo utilizzato e la chiave pubblica stessa, mentre la validità viene indicata tramite la data dinizio e quella di fine, che eventualmente determina il periodo di vita del certificato.

I codici identificativi univoci dellemettitore e del richiedente sono stati introdotti nella versione duev2, per poter permettere il loro riutilizzo in altri certificati. Per esempio se una Certification Authority CA fallisce e non è più autorizzata ad esercitare. In seguito unaltra CA con lo stesso nome, potrebbe registrarsi nella lista pubblica delle CA, anche se non ha nessuna relazione con la prima CA. Tuttavia la IETF raccomanda di non riutilizzare lo stesso nome. Perciò la versione duev2 non ha avuto un ampio utilizzo in Internet.

Le estensioni sono state introdotte nella versione tre v3. Una CA può usare le estensioni solo per certificati che hanno uno specifico uso, come la firma di oggetti digitali. Ogni estensione del certificato ha un proprio identificativo, espresso come object identifier OID, un insieme di valori che possono essere critici o non critici. Se analizzando un certificato un sistema incontra unestensione critica che non riconosce, il certificato viene rigettato. Unestensione non critica può essere ignorata se non riconosciuta, ma altrimenti deve essere processata. LRFC 5280 definisce, nella sezione 4.2, delle estensioni in uso nelle Internet PKI. Ulteriori estensioni possono essere utilizzate, ma si deve fare attenzione nellincludere estensioni critiche, poiché potrebbero compromettere linteroperabilità del certificato.

In tutte le versioni, il numero seriale deve essere univoco per ogni certificato emesso da una specifica Certification AuthorityCA.



                                     

2.2. Certificati Estensioni tipiche dei file con certificati X.509

Estensioni comuni per i file contenenti i certificati X.509:

  • .cer.crt.der - certificato codificato con DER, a volte sequenze di certificati;
  • .p7b.p7c – struttura SignedData PKCS#7 senza dati, solo il/i certificato/i o la/le CRL Certificate revocation list;
  • .pem - Privacy-Enhanced Mail, è un certificato codificato con Base64, racchiuso tra "-----BEGIN CERTIFICATE-----" e "-----END CERTIFICATE-----";
  • .pfx.P12 - PKCS#12, può contenere certificati e chiavi pubbliche e private protette da password;

PKCS #7 è uno standard per la firma o la crittazione 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 allinterno dello stesso file.

Un file.pem può essere utilizzato oltre che per i certificati anche per le chiavi private, racchiusi tra le apposite linee BEGIN/END.

                                     

2.3. Certificati Modalità di richiesta di un certificato

Una persona/entità può richiedere di certificare la propria chiave pubblica inviando un Certificate Signing Request CSR a una Certification Authority CA. Per prima si genera una coppia di chiavi privata/pubblica. La chiave privata viene tenuta segreta e viene utilizzata per firmare il CSR. La richiesta contiene tutte le informazione necessarie per validare lidentità del richiedente, oltre alla chiave pubblica. In seguito alle verifiche il certificato viene firmato digitalmente dalla CA per evitare ulteriori modifiche. A questo punto la CA pubblica il certificato affinché altri lo possano trovare.

Esistono differenti tipi di entità definite in X.509:

  • Certification Autority CA: emette certificati, genera CRL, genera la coppia chiave Pb e Pr, conferma che ogni utente che richiede lemissione del proprio certificato è in possesso della corrispondente chiave privata, verifica lunicità della chiave Pb.
  • Local Registration Authorities: alcune CA richiedono la presenza fisica dellutente finale e quindi una LRA gioca il ruolo di intermediario, che risolve questo problema.
  • Root Authority: è lautorità 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.
  • Lutente finale: genera e verifica documenti firmati
                                     

2.4. Certificati Modalità di revoca di un certificato

Lo standard X.509 definisce il formato e la semantica delle certificate revocation list CRL, liste di revoca di certificati, per le PKI. Ogni oggetto della Certificate Revocation List include il numero seriale del certificato revocato e la data di revoca. Anche i file delle CRL sono firmate dalla Certificate Authority per prevenire manomissioni. Possono essere aggiunte informazioni opzionali come un limite temporale se la revoca si applica solo per un periodo di tempo o la ragione della revoca.

Il problema con le CRL, come con tutte le blacklist, è la difficoltà di manutenerle e sono un modo inefficiente di distribuire informazioni critiche in sistema real-time. Tutto dipende dalla frequenza di aggiornamento delle CRL, anche se ad esempio sono aggiornate ogni ora, un certificato revocato potrebbe ancora essere accettato. Inoltre se una CRL non è disponibile, qualsiasi servizio si basi su questa non è utilizzabile.

Il protocollo Online Certificate Status Protocol OCSP è unalternativa alle CRL, questo manda il certificato alle CA per essere verificato direttamente da loro, modalità utilizzata dai browser. Utilizzando meno traffico dati per effettuare la verifica.



                                     

3. Catena di certificati

Un servizio che utilizza i certificati X.509, richiede la conoscenza di una chiave pubblica, prima di usare il certificato che la contiene questo deve essere validato. Se il servizio non ha già una copia valida della chiave pubblica del CA che ha firmato il certificato, il nome della CA, le relative informazioni come il periodo di validità, si ha bisogno di ulteriori certificati per ottenere quella chiave pubblica. In generale, si ha bisogno di una lista di certificati, incluso il certificato del proprietario della chiave pubblica end-entity certificate firmato da una CA, seguito da uno o più certificati di CA firmati da altre CA. Queste catene di certificati chiamate anche certification paths sono necessarie poiché i software di solito sono inizializzati con un limitato numero di chiavi pubbliche di CA verificate.

Una catena di certificati ha le seguenti proprietà:

  • Ogni certificato deve essere firmato dalla chiave privata corrispondente al successivo certificato nella catena. Perciò la firma di un certificato può essere verificata utilizzando la chiave pubblica contenuta nel certificato successivo.
  • Lultimo certifica nella lista è il root certificate, chiamato anche trust anchor: certificato intrinsecamente fidato.
  • Lentità emittente di ogni certificato deve combaciare con il richiedente del certificato successivo nella lista. Ad eccezione dellultimo, di solito auto firmato.

Possiamo distinguere tra un certificato emesso per le CA e quelli emessi per gli end-entity grazie allestensione Basic Constraints. Un certificato emesso per una CA sono chiamati cross-certificate. I cross-certificate vengono utilizzati sia in un modello con una struttura gerarchica, dove una CA più autorevole cross-certifica una CA subordinata, sia in un modello distribuito, dove diverse CA possono emettere certificati una per laltra.

Tutti i certificati nella catena devono essere controllati. In generale, il processamento di una catena di certificati avviene in due fasi:

  • Validazione della catena, che include la verifica che ogni certificato nella catena sia ancora nel periodo di validità, non sia stato revocato, sia integro, e inoltre che ogni estensione critica sia rispettata.
  • La costruzione di una o più eventuali catene di validazione di certificati. Eventuali poiché alcune di queste potrebbero non essere validi per diversi motivi, come la lunghezza della catena o per restrizioni/vincoli riscontrati.

Esaminando come una catena di certificati viene costruita e validata, si nota che un certificato può fare parte di diverse catene di certificati, al più tutte valide. Questo grazie ai cross-certificate. Si possono infatti generare più certificati per una CA con lo stesso soggetto e chiave pubblica, ma essere firmati con diverse chiavi private, da diverse CA. Quindi, nonostante un singolo certificato X.509 possa avere un solo ente emittente e una sola firma, questo può essere collegato a più di un certificato in maniera valida. Questo è un aspetto cruciale per cross-certificare molteplici PKI e diverse applicazioni.

                                     

3.1. Catena di certificati Esempio di cross-certificate

Nel diagramma, ogni rettangolo rappresenta un certificato, con il soggetto in grassetto. A → B significa "A è stato firmato da B" più precisamente, "A è stato firmato dalla chiave privata corrispondente alla chiave pubblica nel certificato B". I certificati con lo stesso colore ad eccezione di quelli trasparenti contengono la stessa chiave pubblica.

Per assicurarsi ad esempio che gli end-entity certificate in PKI.2, come il cert.2.2, siano verificabili tramite PKI.1, la CA.1 genera un certificato contenente la chiave pubblica di CA.2, in questo caso cert.2.1. Adesso sia cert.2 sia cert.2.1 in verde hanno lo stesso soggetto e chiave pubblica. In questo modo ci sono due catene valide per cert.2.2 User.2:

  • cert.2.2 → cert.2.1 → cert.1
  • cert.2.2 → cert.2

In maniera simili, la CA.2 può generare un certificato che contiene la chiave pubblica di CA.1 cert.1.1, in modo che i certificati allinterno di PKI.1 siano riconosciuti da PKI.2.

                                     

4.1. Sicurezza Gli anelli deboli nellarchitettura dello standard

  • Le CRL sono delle blacklist per i certificati non più validi. Una delle cause più comuni per la revoca di un certificato è la compromissione della sua chiave privata. Il problema è nella manutenzione della lista e nella sua distribuzione non efficiente. Quindi per un sistema un certificato potrebbe risultare ancora valido, anche se formalmente è stato revocato. Inoltre le CRL possono raggiungere dimensioni notevoli, per questo nel percorso di verifica dello stato di un certificato di solito intervengono dei sistemi di cache delle liste, per evitare di doverla scaricare ad ogni richiesta. Questo pone anche il problema dellaggiornamento della cache. Se le CRL non sono disponibili, ogni servizio legato ai certificati risulta non utilizzabile, il che può creare un denial of service, perdendo quindi la capacità di operare offline.
  • Il Online Certificate Status Protocol OCSP è protocollo utilizzato dai browser per la verifica dei certificati SSL/TLS. È una versione migliorata delle CRL. Anche questo, come le CRL, può presentare problemi di latenza e non disponibilità dei server delle CA. In generale per poter continuare ad utlizzare un determinato servizio si tende ad ignorare il problema di risposta OCSP non ricevuta o i messaggi di errore, comportamento chiamato soft-fail. Adam Langley disse che la verifica soft-fail delle CRL è come la cintura di sicurezza che funziona ad eccezione di quando dovrebbe
  • Unaltra problematica deriva dal fatto che diversi browser usano diverse modalità di verifica delle CRL. A meno che non venga utilizzato un Extended Validation Certificate, alcuni browser controllano solo la validità del certificato del server e non dellintera catena di certificati. Inoltre permettono che la sessione continui senza alcun messaggio di errore.
  • Unalternativa allOCSP è lOCSP Stapling. Questo permette di spostare il processo dinterrogazione delle CRL dal browser al HTTPS Server. Il server perciò può periodicamente verificare lo stato del suo certificato, e informare il client. In questo modo si elimina la dipendenza tra il browser le CA, con conseguente diminuzione del tempo dinterrogazione, maggiore privacy per chi usa un servizio e minore carico sui server delle CA. Però il browser non sa quando aspettarsi una risposta OCSP Stampling poiché questa è opzionale. Quindi un certificato revocato usato senza OCSP Stampling ricade nelle stesse problematiche del OCSP. Anche se lOCSP Stampling presenta molteplici vantaggi rispetto al OCSP, la sua adozione non è molto diffusa ed è scarsamente supportato dai browser e server.
  • La revoca dei root certificate è una questione che non viene affrontata. Se la lista dei root certificate viene compromessa con chiavi pubbliche root non legittime, queste possono essere usate per creare certificati validi. Non basta quindi tenere le chiavi pubbliche root in un certificato root, poiché questo è auto firmato e non offre nessuna sicurezza in più.
  • Le PKI nello stile X.509 sono una rubrica di nomi, in base ai quali viene reperita la chiave pubblica dellentità con cui si vuole comunicare. Ma ci possono essere delle ambiguità nei nomi, o molteplici entità con lo stesso nome, quindi per creare un identificativo univoco vengono aggiunte altre informazioni, per rendere distinguibile unentità allinterno della stessa CA.
                                     

4.2. Sicurezza Debolezze nella crittografia

La sicurezza di una firma digitale si basa su una funzione crittografica di hash. Nel momento in cui una PKI autorizza luso di una funzione di hash non più sicura, questa può essere sfruttata per compromettere i certificati. Più precisamente, se qualcuno riesce a produrre una collisione per una funzione di hash, dove il hash di un certificato è identico a un altro hash, di un certificato il cui contenuto è stato creato da un cracker. In seguito il cracker aggiunge la firma fornita dalla CA al proprio certificato, che risulta legittimamente firmato da un CA. Essendo il contenuto scelto dal cracker, ad esempio questo può estendere la validità di hostname oltre il suo termine oppure può inserire il campo CA: true abilitandosi allemissione di altri certificati.

  • Nel 2009 allEurocrypt Conference, un ricercatore australiano dellUniversità di Macquarie presentò un metodo per lincremento della possibilità di collisioni nella funzione di hash SHA-1.
  • Nel 2005, Arjen Lenstra e Benne de Weger dimostrarono la possibilità di creare due certificati X.509 con la stessa firma ma che differiscono solamente per la chiave pubblica, grazie a un attacco a collisione sulla funzione di hash MD5.
  • Nel 2017 un gruppo di ricercatori produsse una collisione nella funzione SHA-1, dimostrandone la debolezza.
  • Nel 2008, Alexander Sotirov e Marc Stevens presentarono al Chaos Communication Congress un modo pratico per la creazione di una Certificate Authority fittizia, accettata da tutti i più comuni browser, sfruttando il fatto che RapidSSL emetteva ancora certificati basati su MD5.


                                     

4.3. Sicurezza Accorgimenti presi

Lo sfruttamento delle collisioni nelle funzioni di hash per manomettere i certificati X.509 implicano che il cracker conosca a priori il contenuto del certificato firmato dalla CA. Questa possibilità può essere ridotta dalle CA stesse, introducendo un componente aleatorio nel certificato, tipicamente il numero seriale.

La CA/Browser Forum richiede lutilizzo del numero seriale dal 2011, nelle sue Baseline Requirements.

Dal 2016 inoltre le Baseline Requirements proibiscono lemissione di certificati che fanno uso dellalgoritmo di hash SHA‐1. Lanno successivo i browser come Chrome, Firefox, Edge e Safari non accettavano più certificati firmati con SHA-1. Ci sono però numerosi software non- browser che accettano ancora i certificati SHA-1.

                                     

5. Certification Authority

  • Lets Encrypt, una certification authority che rilascia certificati a titolo gratuito. Lets Encrypt, su letsencrypt.org.
  • Thawte, su thawte.com.
  • StartSSL, su startssl.com.
  • Actalis S.p.A., una certification authority italiana che rilascia certificati X.509 a titolo gratuito, con validità annuale. Actalis S.p.A., su actalis.it.
  • Comodo, una certification authority statunitense che rilascia certificati X.509 a titolo gratuito, con validità annuale. Comodo Group, su comodo.com. URL consultato il 9 aprile 2018 archiviato dall url originale il 6 aprile 2018.
  • VeriSign, su verisign.com.
  • CACert, su cacert.org.
                                     
  • comunemente fornite da altri protocolli crittografici come PGP, GnuPG e X 509 S MIME - l OTR supporta anche altre funzioni meno comuni: perfect forward
  • Later Roman Empire, Vol. I: AD260 - 395, Cambridge University Press, 1971, p. 509 Michael, Jr. DiMaio, Licinius 308 324 A.D. su De Imperatoribus Romanis
  • Meccanismo di estensione TLS Compressione TLS Gestione dei certificati X 509 e OpenPGP GnuTLS è pubblicato tramite la licenza GNU Lesser General Public
  • Voce principale: Giochi della X Olimpiade. La competizione di Ginnastica artistica dei Giochi della X Olimpiade si sono svolte al Memorial Coliseum di
  • Roberta Rambellini, collana TEA, Longanesi, 1994, pp. 524, ISBN 88 - 7819 - 509 - X Clive Cussler Altri progetti Wikiquote Wikiquote contiene citazioni di
  • Per Storia della Repubblica romana 509 - 264 a.C. si intende il periodo Repubblicano di Roma, dalla caduta dei Re sotto Tarquinio il Superbo, fino alla
  • Versione in inglese qui Velleio Patercolo, Historiae Romanae, libro I. Versione in inglese qui DE Elenco dei Consoli romani dal 509 a.C. al 541 d.C.
  • C - Stoff Z - Stoff Combustibili chimici della HWK Walter HWK 109 - 509 motore per razzo Fritz X Bomba guidata Gotha Go 242 veleggiatore con motore Heinkel
  • Brigueil - le - Chantre è un comune francese di 509 abitanti situato nel dipartimento della Vienne nella regione della Nuova Aquitania. Abitanti censiti
  • fa a 509 Ma. È diviso in due sotto - epoche, che sono attualmente elevate al rango di epoche: Terranoviano 542 - 521 Ma Cambriano Serie 2 521 - 509 Ma È

Anche gli utenti hanno cercato:

...
...
...