Conformità alla normativa RFC
Certificate Authority Service utilizza lo strumento ZLint per garantire che i certificati X.509 siano validi in base alle regole RFC 5280. Tuttavia, CA Service non applica tutti i requisiti RFC 5280 ed è possibile che una CA creata utilizzando CA Service emetta un certificato non conforme.
Certificate Authority Service applica i seguenti requisiti RFC 5280.
| Sezione RFC 5280 | Clausola di analisi tramite lint |
|---|---|
| 4.1.1.2 | signatureAlgorithm in Certificate DEVE contenere lo stesso identificatore dell'algoritmo del campo signature nella sequenza tbsCertificate (sezione 4.1.2.3). |
| 4.1.2.1 | Quando vengono utilizzate le estensioni, come previsto in questo profilo, la versione DEVE essere 3 (il valore è 2). |
| 4.1.2.2 | Il numero di serie DEVE essere un numero intero positivo assegnato dalla CA a ogni certificato. |
| 4.1.2.2 | Le CA conformi NON DEVONO utilizzare valori serialNumber più lunghi di 20 ottetti. |
| 4.1.2.4 | Il campo emittente DEVE contenere un nome distinto (DN) non vuoto. |
| 4.1.2.5 | Le CA conformi a questo profilo DEVONO sempre codificare le date di validità dei certificati fino all'anno 2049 come UTCTime |
| 4.1.2.5 | Per indicare che un certificato non ha una data di scadenza ben definita, a notAfter DEVE essere assegnato il valore GeneralizedTime 99991231235959Z. |
| 4.1.2.5.1 | I valori UTCTime DEVONO essere espressi in Greenwich Mean Time (Zulu) |
| 4.1.2.5.1 | I valori UTCTime DEVONO includere i secondi |
| 4.1.2.5.2 | I valori GeneralizedTime DEVONO essere espressi in Greenwich Mean Time (Zulu) |
| 4.1.2.5.2 | GeneralizedTime DEVE includere i secondi |
| 4.1.2.5.2 | I valori GeneralizedTime NON DEVONO includere frazioni di secondo |
| 4.1.2.6 | Se il soggetto è una CA (ad esempio, l'estensione dei vincoli di base, come descritto nella sezione 4.2.1.9, è presente e il valore di cA è TRUE), il campo del soggetto DEVE essere compilato con un nome distinto non vuoto che corrisponda ai contenuti del campo dell'emittente (sezione 4.1.2.4) in tutti i certificati emessi dalla CA del soggetto. |
| 4.1.2.8 | I campi identificatori univoci DEVONO essere visualizzati solo se la versione è 2 o 3 |
| 4.1.2.8 | Le CA conformi a questo profilo NON DEVONO generare certificati con identificatori univoci. |
| 4.1.2.9 | Il campo Estensioni DEVE essere visualizzato solo se la versione è 3 |
| 4.2 | Un certificato NON DEVE includere più di un'istanza di una determinata estensione. |
| 4.2 | Se l'autorità di certificazione emette certificati con una sequenza vuota per il campo soggetto, DEVE supportare l'estensione del nome alternativo del soggetto |
| 4.2.1.1 | Il campo keyIdentifier dell'estensione authorityKeyIdentifier DEVE essere incluso in tutti i certificati generati dalle CA conformi per facilitare la creazione del percorso di certificazione. |
| 4.2.1.1 | Le CA conformi DEVONO contrassegnare l'estensione authorityKeyIdentifier come non critica. |
| 4.2.1.2 | Per facilitare la creazione del percorso di certificazione, authorityKeyIdentifier DEVE essere presente in tutti i certificati CA conformi, ovvero in tutti i certificati che includono l'estensione basicConstraints (sezione 4.2.1.9) in cui il valore di cA è TRUE. |
| 4.2.1.2 | Le CA conformi DEVONO contrassegnare l'estensione dell'identificatore della chiave del soggetto come non critica. |
| 4.2.1.2 | Per aiutare le applicazioni a identificare il certificato dell'entità finale appropriato, questa estensione DEVE essere inclusa in tutti i certificati dell'entità finale |
| 4.2.1.3 | Se il bit keyCertSign è impostato, deve essere impostato anche il bit cA nell'estensione Limitazioni di base (sezione 4.2.1.9). |
| 4.2.1.3 | Quando l'estensione keyUsage viene visualizzata in un certificato, almeno uno dei bit DEVE essere impostato su 1. |
| 4.2.1.3 | Se presente, le CA conformi DEVONO contrassegnare questa estensione di utilizzo della chiave come critica. |
| 4.2.1.4 | Un OID della policy del certificato NON DEVE comparire più di una volta in un'estensione delle policy del certificato. |
| 4.2.1.4 | Quando i qualificatori vengono utilizzati con la norma speciale anyPolicy, DEVONO essere limitati ai qualificatori identificati in questa sezione. |
| 4.2.1.4 | Le CA conformi NON DEVONO utilizzare l'opzione noticeRef. |
| 4.2.1.4 | Le CA conformi DEVONO utilizzare la codifica UTF8String per explicitText, ma POSSONO utilizzare IA5String. |
| 4.2.1.4 | La stringa explicitText NON DEVE includere caratteri di controllo (ad es. da U+0000 a U+001F e da U+007F a U+009F. |
| 4.2.1.4 | Quando viene utilizzata la codifica UTF8String, tutte le sequenze di caratteri DEVONO essere normalizzate in base alla forma di normalizzazione Unicode C (NFC) |
| 4.2.1.5 | Le policy NON DEVONO essere mappate al valore speciale anyPolicy o da questo valore. |
| 4.2.1.5 | Ogni issuerDomainPolicy denominata nell'estensione dei mapping delle policy DEVE essere dichiarata anche in un'estensione delle policy dei certificati nello stesso certificato. |
| 4.2.1.5 | Le CA conformi DEVONO contrassegnare questa estensione Policy Mappings come critica. |
| 4.2.1.6 | Ogni volta che queste identità (qualsiasi elemento in un SAN) devono essere associate a un certificato, DEVE essere utilizzata l'estensione del nome alternativo del soggetto (o del nome alternativo dell'emittente); |
| 4.2.1.6 | Se il campo dell'oggetto contiene una sequenza vuota, la CA emittente DEVE includere un'estensione subjectAltName contrassegnata come critica. |
| 4.2.1.6 | Quando l'estensione subjectAltName contiene un indirizzo di posta internet, l'indirizzo DEVE essere memorizzato in rfc822Name. |
| 4.2.1.6 | Per la versione 4 dell'IP, come specificato in [RFC 791], la stringa di ottetti DEVE contenere esattamente quattro ottetti. Per la versione 6 di IP, come specificato in [RFC 2460], la stringa di ottetti DEVE contenere esattamente sedici ottetti. |
| 4.2.1.6 | Quando l'estensione subjectAltName contiene un'etichetta del sistema dei nomi di dominio, il nome di dominio DEVE essere memorizzato in dNSName (una stringa IA5). |
| 4.2.1.6 | SAN: dNSName DEVE essere nella "sintassi del nome preferito" |
| 4.2.1.6 | Le estensioni subjectAltName con un dNSName di " " NON DEVONO essere utilizzate |
| 4.2.1.6 | non deve essere utilizzata la rappresentazione DNS per gli indirizzi di posta internet (subscriber.example.com anziché subscriber@example.com) |
| 4.2.1.6 | Quando l'estensione subjectAltName contiene un URI, il nome DEVE essere memorizzato in uniformResourceIdentifier (una stringa IA5). |
| 4.2.1.6 | URI SAN: il nome NON DEVE essere un URI relativo e DEVE seguire le regole di sintassi e codifica degli URI specificate in [RFC 3986]. |
| 4.2.1.6 | URI SAN: il nome DEVE includere uno schema (ad es. "http" o "ftp") e una parte specifica dello schema. |
| 4.2.1.6 | Gli URI SAN che includono un'autorità ([RFC 3986], sezione 3.2) DEVONO includere un nome di dominio completo o un indirizzo IP come host. |
| 4.2.1.6 | Se l'estensione subjectAltName è presente, la sequenza DEVE contenere almeno una voce. |
| 4.2.1.6 | Le CA conformi NON DEVONO emettere certificati con subjectAltNames contenenti campi GeneralName vuoti. |
| 4.2.1.6 | Quando includono l'estensione subjectAltName in un certificato con un nome distinto del soggetto non vuoto, le CA conformi DEVONO contrassegnare l'estensione subjectAltName come non critica. |
| 4.2.1.7 | Il nome alternativo dell'emittente DEVE essere codificato come in 4.2.1.6 |
| 4.2.1.7 | Se presente, le CA conformi DEVONO contrassegnare questa estensione del nome alternativo dell'emittente come non critica. |
| 4.2.1.8 | Attributi della directory dei soggetti: le CA conformi DEVONO contrassegnare questa estensione come non critica. |
| 4.2.1.9 | Se presente, il campo pathLenConstraint DEVE essere maggiore o uguale a zero. |
| 4.2.1.9 | Le CA conformi DEVONO includere questa estensione in tutti i certificati CA che contengono chiavi pubbliche utilizzate per convalidare le firme digitali sui certificati e DEVONO contrassegnare l'estensione come critica in questi certificati. |
| 4.2.1.9 | Le CA NON DEVONO includere il campo pathLenConstraint a meno che il valore booleano cA non sia affermato e l'estensione Utilizzo chiave non affermi il bit keyCertSign. |
| 4.2.1.10 | L'estensione dei vincoli relativi ai nomi, che DEVE essere utilizzata solo in un certificato CA, indica uno spazio dei nomi all'interno del quale devono trovarsi tutti i nomi oggetto nei certificati successivi di un percorso di certificazione. |
| 4.2.1.10 | Vincoli relativi ai nomi: le CA conformi DEVONO contrassegnare questa estensione come critica |
| 4.2.1.10 | Le CA conformi NON DEVONO emettere certificati in cui i vincoli relativi ai nomi sono una sequenza vuota. ovvero deve essere presente il campo permittedSubtrees o excludedSubtrees. |
| 4.2.1.10 | All'interno di questo profilo, i campi minimo e massimo non vengono utilizzati con alcun modulo di nome, pertanto il valore minimo DEVE essere zero e il valore massimo DEVE essere assente. |
| 4.2.1.10 | La sintassi di iPAddress DEVE essere quella descritta nella sezione 4.2.1.6 con le seguenti aggiunte specifiche per i vincoli del nome: per gli indirizzi IPv4, il campo iPAddress di GeneralName DEVE contenere otto (8) ottetti, codificati nello stile di RFC 4632 (CIDR) per rappresentare un intervallo di indirizzi [RFC 4632]. Per gli indirizzi IPv6, il campo iPAddress DEVE contenere 32 ottetti codificati in modo simile. |
| 4.2.1.10 | NON DEVE imporre vincoli di nome ai moduli di nome x400Address, ediPartyName o registeredID. |
| 4.2.1.11 | Le CA conformi NON DEVONO emettere certificati in cui i vincoli delle norme sono una sequenza vuota. ovvero deve essere presente il campo inhibitPolicyMapping o il campo requireExplicitPolicy. |
| 4.2.1.11 | Vincoli dei criteri: le CA conformi DEVONO contrassegnare questa estensione come critica. |
| 4.2.1.12 | Le CA conformi NON DEVONO contrassegnare questa estensione come critica se è presente un KeyPurposeId anyExtendedKeyUsage. |
| 4.2.1.13 | Un DistributionPoint NON DEVE essere costituito solo dal campo reasons; devono essere presenti distributionPoint o cRLIssuer. |
| 4.2.1.13 | L'estensione Punti di distribuzione CRL DOVREBBE essere non critica |
| 4.2.1.13 | Se presente, DistributionPointName DEVE includere almeno un URI LDAP o HTTP. |
| 4.2.1.13 | Le CA conformi NON DEVONO utilizzare nameRelativeToCRLIssuer per specificare i nomi dei punti di distribuzione. |
| 4.2.1.14 | Le CA conformi DEVONO contrassegnare questa estensione Inhibit anyPolicy come critica. |
| 4.2.1.15 | L'estensione CRL più recente DEVE essere contrassegnata come non critica dalle CA conformi. |
| 4.2.2.1 | Le CA conformi DEVONO contrassegnare questa estensione di accesso alle informazioni sull'autorità come non critica. |
| 4.2.2.1 | Quando viene utilizzato il metodo di accesso id-ad-caIssuers, almeno un'istanza DEVE specificare una accessLocation che sia un URI HTTP [RFC 2616] o LDAP [RFC 4516]. |
| 4.2.2.2 | Le CA conformi DEVONO contrassegnare questa estensione di accesso alle informazioni del soggetto come non critica. |
| 7.2 | Per adattare i nomi di dominio internazionalizzati alla struttura attuale, le implementazioni conformi DEVONO convertire i nomi di dominio internazionalizzati nel formato ASCII Compatible Encoding (ACE) come specificato nella sezione 4 di RFC 3490 prima dell'archiviazione nel campo dNSName. |