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, il servizio CA non applica tutti i requisiti RFC 5280 ed è possibile che una CA creata utilizzando il servizio CA emetta un certificato non conforme.

Certificate Authority Service applica i seguenti requisiti RFC 5280.

Sezione RFC 5280 Clausola Lint
4.1.1.2 Il campo signatureAlgorithm in Certificate DEVE contenere lo stesso identificatore di 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 (valore 2).
4.1.2.2 Il numero di serie DEVE essere un numero intero positivo assegnato dall'autorità di certificazione 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à del certificato fino all'anno 2049 come UTCTime
4.1.2.5.1 I valori UTCTime DEVONO essere espressi in ora del meridiano di Greenwich (Zulu)
4.1.2.5.1 I valori UTCTime DEVONO includere i secondi
4.1.2.5.2 I valori GeneralizedTime DEVONO essere espressi nel fuso orario di Greenwich (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 es. è presente l'estensione dei vincoli di base, come discusso nella Sezione 4.2.1.9, e il valore di cA è TRUE), il campo soggetto DEVE essere compilato con un nome distinto non vuoto che corrisponda ai contenuti del campo emittente (Sezione 4.1.2.4) in tutti i certificati emessi dalla CA soggetto.
4.1.2.8 I campi degli 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 dell'oggetto, DEVE supportare l'estensione del nome alternativo dell'oggetto
4.2.1.1 Il campo keyIdentifier dell'estensione authorityKeyIdentifier DEVE essere incluso in tutti i certificati generati da CA conformi per facilitare la costruzione 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 costruzione del percorso di certificazione, authorityKeyIdentifier DEVE essere presente in tutti i certificati CA conformi, ovvero in tutti i certificati che includono l'estensione dei vincoli di base (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 dell'oggetto come non critica.
4.2.1.3 Se il bit keyCertSign è attivato, deve essere attivato 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.4 Un OID delle norme del certificato NON DEVE comparire più di una volta in un'estensione delle norme del certificato.
4.2.1.4 Quando i qualificatori vengono utilizzati con la policy speciale anyPolicy, DEVONO essere limitati ai qualificatori identificati in questa sezione.
4.2.1.5 I criteri NON DEVONO essere mappati al valore speciale anyPolicy o da questo
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 dell'oggetto (o del nome alternativo dell'emittente).
4.2.1.6 Se il campo dell'oggetto contiene una sequenza vuota, l'autorità di certificazione che lo ha emesso DEVE includere un'estensione subjectAltName contrassegnata come critica.
4.2.1.6 Quando l'estensione subjectAltName contiene un indirizzo email 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 dell'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 (un'IA5String).
4.2.1.6 SAN: il valore dNSName DEVE essere nella "sintassi del nome preferito"
4.2.1.6 NON DEVONO essere utilizzate estensioni subjectAltName con un valore dNSName di " "
4.2.1.6 NON DEVE essere utilizzata la rappresentazione DNS per gli indirizzi email 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 (un'IA5String).
4.2.1.6 URI SAN: il nome NON DEVE essere un URI relativo e DEVE seguire la sintassi e le regole di codifica degli URI specificate in [RFC 3986].
4.2.1.6 URI SAN: il nome DEVE includere sia 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 è presente l'estensione subjectAltName, 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.7 Il nome alternativo dell'emittente DEVE essere codificato come in 4.2.1.6
4.2.1.8 Attributi della directory dei soggetti: le CA conformi DEVONO contrassegnare questa estensione come non critica.
4.2.1.9 Dove viene visualizzato, 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 degli oggetti nei certificati successivi in 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. In altre parole, il campo permittedSubtrees o il campo excludedSubtrees DEVE essere presente.
4.2.1.10 In questo profilo, i campi minimo e massimo non vengono utilizzati con nessuna forma 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 come descritto nella Sezione 4.2.1.6 con le seguenti aggiunte specifiche per i vincoli dei nomi: 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.11 Le CA conformi NON DEVONO emettere certificati in cui i vincoli delle norme sono una sequenza vuota. In altre parole, è necessario che sia presente il campo inhibitPolicyMapping o il campo requireExplicitPolicy.
4.2.1.11 Vincoli delle norme: le CA conformi DEVONO contrassegnare questa estensione come critica.
4.2.1.13 un DistributionPoint NON DEVE essere costituito solo dal campo reasons; devono essere presenti distributionPoint o cRLIssuer.
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 per l'accesso alle informazioni sull'autorità come non critica.
4.2.2.2 Le CA conformi DEVONO contrassegnare questa estensione di accesso alle informazioni sull'oggetto come non critica.
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.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 presente, le CA conformi DEVONO contrassegnare questa estensione di utilizzo della chiave come critica.
4.2.1.4 Le CA conformi NON DEVONO utilizzare l'opzione noticeRef.
4.2.1.4 Le CA conformi DOVREBBERO 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. U+0000 a U+001F e 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 Ogni issuerDomainPolicy denominato nell'estensione delle mappature dei criteri DEVE essere affermato anche in un'estensione dei criteri del certificato nello stesso certificato.
4.2.1.5 Le CA conformi DOVREBBERO contrassegnare questa estensione di mappatura dei criteri come critica.
4.2.1.6 Quando includi l'estensione subjectAltName in un certificato con un nome distinto dell'oggetto non vuoto, le CA conformi DEVONO contrassegnare l'estensione subjectAltName come non critica.
4.2.1.7 Ove presente, le CA conformi DEVONO contrassegnare questa estensione Nome alternativo emittente come non critica.
4.2.1.10 NON DEVE imporre vincoli sui nomi per i formati x400Address, ediPartyName o registeredID.
4.2.1.12 Le CA conformi NON DEVONO contrassegnare questa estensione come critica se è presente il KeyPurposeId anyExtendedKeyUsage.
4.2.1.13 L'estensione Punti di distribuzione CRL DEVE 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.2.1 Quando viene utilizzato il metodo di accesso id-ad-caIssuers, almeno un'istanza DEVE specificare un'accessLocation che sia un URI HTTP [RFC 2616] o LDAP [RFC 4516].
7.2 Per supportare i nomi di dominio internazionalizzati nella struttura attuale, le implementazioni conformi DEVONO convertire i nomi di dominio internazionalizzati nel formato ACE (ASCII Compatible Encoding) come specificato nella Sezione 4 del RFC 3490 prima di memorizzarli nel campo dNSName.