cacert-policies/Certificates and their properties changed following Jan's remarks.md

575 lines
29 KiB
Markdown
Raw Normal View History

2024-05-14 18:31:44 +00:00
# 00. X.509 certificates and their properties
## 01. The directives for certificates
are given by the CA/Browser Forum (CAB). The following text reflects their
conclusion concerning certificates valid for the year 2024.
## 02. Tree types (types of ciphering)
* RSA: RivestShamirAdleman cryptography, developed 1978
* ECC: Elliptic Curve Cryptography - gives greater cryptographic strength then RSA at equivalent key size, developed 1985
The RSA type tree is the subject of the following text.
## 03. Tree structure (see Fig. 1)
* Root CA certificate (Root CA certificate) (06.)
* Subordinate CA certificates (Subroots, intermediate certs, 08.-10.) for issuing end certificates of different types of purposes e.g. Email, Server, Personal Signing, login to various servers and/or applications, and more; issued only by the Root CA certificate; every Subordinate CA certificate has its own Certificate Revoke List (CRL)
* End Certificates issued only by corresponding Subordinate CA certificates (12.-17.), for use with e.g. Email, Server, Personal Signing, login to various servers and/or applications, and more.
So the certificate chain has its length of 3: Root CA certificate -> Subordinate CA certificate -> End certificate.
## 04. The Subjects for CAcert should contain
L=Genève PostalCode=1208 STREET=Clos Belmont 2 (Location)
O=CAcert Inc. (Organization)
C=CH (Country)
CN=CAcert {Root|PersonA|PersonU|ClientA|ClientU|ServerA|ServerU} CA <year> (Common Name)
OU=http://www.cacert.org (Org.Unit)
(Note: OU for CAcert was used in old certs, but it is considered as deprecated now.)
The Issuer Distinguished Name item in Subordinate CA certificates (Subroots) is equal to Subject Distinguished Name (Subject DN) and Issuer Distinguished Name (Issuer DN) of the Root CA certificate (Main Root).
The Issuer DN item in Patterns (see below) is equal to Subject DN in the respective Subordinate CA cert.
## 05. RSA types - X.509v3; all texts are coded UTF-8
There are 2 sets suggested per 3 Subordinate CA certificates each. The 1st set is used for CAcert *assured* members, the 2nd set is used for CAcert members who are *unassured* yet.
A Member status is classified as follows (APs, see COD13 - Assurance Policy #2.3):
* Status *unassured*: 0 to 49 Assurance Points (APs).
* Status *assured*: 50 to 100+ APs.
* Status *Assurer*: 100+ APs and the *Assurer Challenge* test passed.
(Some differences can also be done for an user having the Assurer status.)
Set #1: 3 subordinate CA certificates for issuing certs for assured members:
(1) Person-assured; (2) Client-assured; (3) Server-assured
Set #1a: 3 subordinate CA certificates for issuing certs for organizations:
These are basically identical to the set #1, only differ in their Subject DN
there are parameters L=, O=, C=, CN=, and OU= concerning the organization
which the subordinate CA certificate is issued for.
Set #2: 3 subordinate CA certificates for issuing certs for unassured members:
(1) Person-unassured; (2) Client-unassured; (3) Server-unassured
Every set consists of 3 Subordinate CA certs: Person, Client, and Server.
"Person" is designed for real people. It provides person name, Email
address(es) as SAN, and possibly the document/code signing ability.
"Client" is designed to be used for machines that act as a client and needs to authenticate to other systems, client certificates contain SAN DNS names and may contain a single host name in the Subject DN Common Name (CN) field. SAN are possible.
"Server" is designed to be used for machines that need to authenticate to relying parties, server certificates contain SAN DNS names and may contain a single host name in the Subject DN Common Name (CN) field. SAN are possible.
## 06. Properties of the Root CA certificate
* Cert version: 3 (X.509v3)
* Serial number: random number, length is 16 Bytes (CAB recommendation)
* Signature Algorithm: sha256WithRSAEncryption
* Signature Algorithm Hash: (sha256) implied by the signature algorithm
* Issuer DN: C=<country>,L=<Location>,O=<organization>,CN=<Common_Name>
* Validity (Not Before & Not After), Duration = 20 years (CAB recommendation)
* Subject DN: as this is the Root CA, this item is equal to the Issuer DN item
* Subject Public Key Info
* Public Key Algorithm: RSAEncryption *(implied by the public key)*
* RSA Public-Key: (4096 bit), then the Modulus value, Exponent 65537 (0x10001)
* Public Key Parameters: 05 00
* X509v3 Extensions
* X509v3 Key Usage (critical)
* Certificate (only subordinate CA certificates) Signing, CRL Signing; Offline CRL Signing
* X509v3 Basic Constraints (critical)
* Certificate of a CA: true
* Path length restriction: none
* X509v3 Subject Key Identifier (20 Byte ID)
* Signature Algorithm: sha256WithRSAEncryption
* Fingerprint: 20 Bytes *(fingerprint is dependent on the used hash algorithm,
a certificate's TBSCertificate structure can be hashed/fingerprinted using
any hash algorithm. 20 Bytes is what a SHA1 hash produces, it can be longer
or shorter for other algorithms and is not directly included in the
certificate)*
## 07. (removed, merged with 05.))
## 08. Properties of the "Person-assured" & "Person-unassured Subordinate CA certificates (Subroots, Intermediate Roots)
Cert version: 3 (X.509v3)
Serial number: random number, length is 16 Bytes
Signature Algorithm: sha256WithRSAEncryption
Signature Algorithm Hash: sha256
Issuer DN: C=<Country>,L=<Location>,O=<Organization>,CN=<Common_Name>; if org., OU=<Org.Unit>
Validity (Not Before & Not After), Duration = 5 years
Subject DN (if the Organization Assurer, see the comment to the 05., Set #1a):
C= (see 04. above)
L= (see 04. above)
O= (see 04. above)
for "Person-assured": CN=CAcert Person-assured CA <year>
for "Person-unassured": CN=CAcert Person-unassured CA <year>
Subject Public Key Info
Public Key Algorithm: RSAEncryption
RSA Public-Key: (3072 bit), then the Modulus value, Exponent 65537 (0x10001)
Public Key Parameters: 05 00 (i.e. NULL, see RFC 4055 # 1.2)
X509v3 Extensions
X509v3 Key Usage (critical)
General Subordinate CA certificate purposes:
Digital Signature, Certificate Signing, CRL Signing
X509v3 Extended Key Usage:
TLS Web Client Authentication (1.3.6.1.5.5.7.3.2)
Code signing (1.3.6.1.5.5.7.3.3) (for "Person-assured" only)
Email protection (1.3.6.1.5.5.7.3.4)
OCSP signing (1.3.6.1.5.5.7.3.9)
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
X509v3 Subject Key Identifier: (20 Byte ID)
Authority Key ID (20 Bytes ID, equal to the Subject Key ID of the Root CA certificate)
Authority Information Access (AIA):
OCSP (1.3.6.1.5.5.7.48.1) - URI:http://ocsp.cacert.org/
CA Issuer (1.3.6.1.5.5.7.48.2)
URI:http://www.cacert.org/certs/rsa_root_<year>.crt (Root CA cert. file)
X509v3 Certificate Policies:
Policy: 1.3.6.1.4.1.18506.2.3.1 (18506 = org. number, here: CAcert; 2.3.1 = CPS)
X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.cacert.org/<CRL_file>:
for "Person-assured": rsa_personA_<year>.crl
for "Person-unassured": rsa_personU_<year>.crl
Signature Algorithm: sha256WithRSAEncryption
Fingerprint: 20 Bytes
## 09. Properties of the "Client-assured" & "Client-unassured" Subordinate CA certificates
Cert version: 3 (X.509v3)
Serial number: random number, length is 16 Bytes
Signature Algorithm: sha256WithRSAEncryption
Signature Algorithm Hash: sha256
Issuer DN: C=<country>,L=<Location>,O=<Organization>,CN=<Common_Name>,OU=<Org.Unit>
Validity (Not Before & Not After), Duration = 5 years
Subject DN (if the Organization Assurer, see the comment to the 05., Set #1a):
C= (see 04. above)
L= (see 04. above)
O= (see 04. above)
for "Client-assured": CN=CAcert Client-assured CA <year>
for "Client-unassured": CN=CAcert Client-unassured CA <year>
Subject Public Key Info
Public Key Algorithm: RSAEncryption
RSA Public-Key: (3072 bit), then the Modulus value, Exponent 65537 (0x10001)
Public Key Parameters: 05 00 (NULL)
X509v3 Extensions
X509v3 Key Usage (critical)
General Subordinate CA certificate purposes:
Digital Signature, Certificate Signig, CRL Signing
X509v3 Extended Key Usage:
TLS Web Client Authentication (1.3.6.1.5.5.7.3.2)
OCSP Signing (1.3.6.1.5.5.7.3.9)
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
X509v3 Subject Key Identifier: (20 Byte ID)
Authority Key ID (20 Bytes ID, equal to the Subject Key ID of the Root CA certificate)
Authority Information Access (AIA):
OCSP (1.3.6.1.5.5.7.48.1) - URI:http://ocsp.cacert.org/
CA Issuer (1.3.6.1.5.5.7.48.2)
URI:http://www.cacert.org/certs/rsa_root_<year>.crt (Root CA cert. file)
X509v3 Certificate Policies:
Policy: 1.3.6.1.4.1.18506.2.3.1 (18506 = org. number, here: CAcert; 2.3.1 = CPS)
X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.cacert.org/<CRL_file>:
for "Client-assured": rsa_clientA_<year>.crl
for "Client-unassured": rsa_clientU_<year>.crl
Signature Algorithm: sha256WithRSAEncryption
Fingerprint: 20 Bytes
## 10. Properties of the "Server-assured" & "Server-unassured" Subordinate CA certificates
Cert version: 3 (X.509v3)
Serial number: random number, length is 16 Bytes
Signature Algorithm: sha256WithRSAEncryption
Signature Algorithm Hash: sha256
Issuer DN: C=<Country>,L=<Location>,O=<Organization>,CN=<Common_Name>,OU=<Org.Unit>
Validity (Not Before & Not After), Duration = 5 years
Subject DN (derived from Issuer, varies in Subject: CN=name-reflecting-purpose)
(if the Organization Assurer, see the comment to the 05., Set #1a)
C= (see 04. above)
L= (see 04. above)
O= (see 04. above)
for "Server-assured": CN=CAcert Server-assured CA <year>
for "Server-unassured": CN=CAcert Server-unassured CA <year>
Subject Public Key Info
Public Key Algorithm: RSAEncryption
RSA Public-Key: (3072 bit), then the Modulus value, Exponent 65537 (0x10001)
Public Key Parameters: 05 00 (= NULL)
X509v3 Extensions
X509v3 Key Usage (critical)
General Subroot purposes:
Digital Signature, Certificate Signing, CRL Signing
X509v3 Extended Key Usage:
TLS Web Server Authentication (1.3.6.1.5.5.7.3.1)
OCSP Signing (1.3.6.1.5.5.7.3.9)
X509v3 Basic Constraints: critical
CA:TRUE, pathlen:0
X509v3 Subject Key Identifier: (20 Byte ID)
Authority Key ID (20 Bytes ID, equal to the Subject Key ID of the Root CA certificate)
Authority Information Access (AIA):
OCSP (1.3.6.1.5.5.7.48.1) - URI:http://ocsp.cacert.org/
CA Issuer (1.3.6.1.5.5.7.48.2)
- URI:http://www.cacert.org/certs/rsa_root_<year>.crt (Root CA cert. file)
X509v3 Certificate Policies:
Policy: 1.3.6.1.4.1.18506.2.3.1 (18506 = org. number, here: CAcert; 2.3.1 = CPS)
X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.cacert.org/<CRL_file>:
for "Server-assured": rsa_serverA_<year>.crl
for "Server-unassured": rsa_serverU_<year>.crl
Signature Algorithm: sha256WithRSAEncryption
Fingerprint: 20 Bytes
## 11. Users' (end) certificates
These are issued by (signed with) Subordinate CA certificates only. Some properties are constant for those certs, some differ according to the respective Subordinate CA certificate only, and some depends on the user's data. That's why it seems to be a good idea to
design the patterns for certs issued.
## 12. The proposal of the pattern "Person-assured"
Cert version: 3 (X.509v3)
Serial number: random number, length is 16 Bytes; source: Signer
Signature Algorithm: sha256WithRSAEncryption
Signature Algorithm Hash: sha256
Issuer DN: equal to the "Person-assured" Subordinate CA certificate's Subject; source: "Person-assured" Subordinate CA certificate Validity (Not Before & Not After), Duration = 1 year (CAB recommandation)
Subject DN: CN = real_name of the user, E = Email address(es); source: user's account
Subject Public Key Info
Public Key Algorithm: RSAEncryption
RSA Public-Key: (3072 bit), then the Modulus value, Exponent 65537 (0x10001); source: CSR
Public Key Parameters: 05 00 (NULL)
X509v3 Extensions
X509v3 Key Usage (critical):
Digital Signature, Key Encipherment, Key Agreement
X509v3 Extended Key Usage: (source: "Person-assured" Subordinate CA certificate, and the user's account)
TLS Web Client Authentication (1.3.6.1.5.5.7.3.2)
Code signing (1.3.6.1.5.5.7.3.3); TRUE/FALSE, source: user's account
Email protection (1.3.6.1.5.5.7.3.4)
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier: (20 Byte ID); source: CSR
Authority Key ID (20 Bytes ID, equal to the Subject Key ID of the "Person-assured" Subordinate CA certificate)
Authority Information Access (AIA):
OCSP (1.3.6.1.5.5.7.48.1) - URI:http://ocsp.cacert.org/
CA Issuer (1.3.6.1.5.5.7.48.2)
- URI:http://www.cacert.org/certs/rsa_personA_<year>.crt ("Person-assured" Subordinate CA certificate file)
X509v3 Certificate Policies:
Policy: 1.3.6.1.4.1.18506.2.3.1 (18506 = org. number, here: CAcert; 2.3.1 = CPS)
X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.cacert.org/rsa_personA_<year>.crl ("Person-assured" Subordinate CA certificate CRL file)
Signature Algorithm: sha256WithRSAEncryption
Fingerprint: 20 Bytes
For 1 or more verified (and selected by the user) Email address(es) a SAN string will be added; (source: user's account & user's selection).
## 13. The proposal of the pattern "Person-unassured"
Cert version: 3 (X.509v3)
Serial number: random number, length is 16 Bytes; source: Signer
Signature Algorithm: sha256WithRSAEncryption
Signature Algorithm Hash: sha256
Issuer DN: equal to the "Person-unassured" Subordinate CA certificate's Subject; source: "Person-unassured" Subordinate CA certificate
Validity (Not Before & Not After), Duration = 6 months
Subject DN: CN = "CAcert WoT User" OR "<user's name> (unassured)", E = Email address(es); source: user's account
Subject Public Key Info
Public Key Algorithm: RSAEncryption
RSA Public-Key: (3072 bit), then the Modulus value, Exponent 65537 (0x10001); source: CSR
Public Key Parameters: 05 00 (NULL)
X509v3 Extensions
X509v3 Key Usage (critical):
Digital Signature, Key Encipherment, Key Agreement
X509v3 Extended Key Usage: (source: "Person-unassured" Subordinate CA certificate)
TLS Web Client Authentication (1.3.6.1.5.5.7.3.2)
Email protection (1.3.6.1.5.5.7.3.4)
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier: (20 Byte ID); source: CSR
Authority Key ID (20 Bytes ID, equal to the Subject Key ID of the "Person-unassured" Subordinate CA certificate)
Authority Information Access (AIA):
OCSP (1.3.6.1.5.5.7.48.1) - URI:http://ocsp.cacert.org/
CA Issuer (1.3.6.1.5.5.7.48.2)
- URI:http://www.cacert.org/certs/rsa_personU_<year>.crt ("Person-unassured" Subordinate CA certificate file)
X509v3 Certificate Policies:
Policy: 1.3.6.1.4.1.18506.2.3.1 (18506 = org. number, here: CAcert; 2.3.1 = CPS)
X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.cacert.org/rsa_personU_<year>.crl ("Person-unassured" Subordinate CA certificate CRL file)
Signature Algorithm: sha256WithRSAEncryption
Fingerprint: 20 Bytes
For 1 or more verified (and selected by the user) Email address(es) a SAN string will be added; (source: user's account & user's selection).
## 14. The proposal of the pattern "Client-assured"
Cert version: 3 (X.509v3)
Serial number: random number, length is 16 Bytes; source: Signer
Signature Algorithm: sha256WithRSAEncryption
Signature Algorithm Hash: sha256
Issuer DN: equal to the "Client-assured" Subordinate CA certificate's Subject; source: "Client-assured" Subordinate CA certificate
Validity (Not Before & Not After), Duration = 1 year (CAB recommandation)
Subject DN: CN = client's FQDN; source: user's account
Subject Public Key Info
Public Key Algorithm: RSAEncryption
RSA Public-Key: (3072 bit), then the Modulus value, Exponent 65537 (0x10001); source: CSR
Public Key Parameters: 05 00 (NULL)
X509v3 Extensions
X509v3 Key Usage (critical):
Digital Signature, Key Encipherment, Key Agreement
X509v3 Extended Key Usage: (source: "Client-assured" Subordinate CA certificate)
TLS Web Client Authentication (1.3.6.1.5.5.7.3.2)
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier: (20 Byte ID); source: CSR
Authority Key ID (20 Bytes ID, equal to the Subject Key ID of the "Client-assured" Subordinate CA certificate)
Authority Information Access (AIA):
OCSP (1.3.6.1.5.5.7.48.1) - URI:http://ocsp.cacert.org/
CA Issuer (1.3.6.1.5.5.7.48.2)
- URI:http://www.cacert.org/certs/rsa_clientA_<year>.crt ("Client-assured" Subordinate CA certificate file)
X509v3 Certificate Policies:
Policy: 1.3.6.1.4.1.18506.2.3.1 (18506 = org. number, here: CAcert; 2.3.1 = CPS)
X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.cacert.org/rsa_clientA_<year>.crl ("Client-assured" Subordinate CA certificate CRL file)
Signature Algorithm: sha256WithRSAEncryption
Fingerprint: 20 Bytes
For 1 or more verified (and selected by the user) domains -> FQDNs a SAN string will be added; (source: user's account & user's selection).
## 15. The proposal of the pattern "Client-unassured"
Cert version: 3 (X.509v3)
Serial number: random number, length is 16 Bytes; source: Signer
Signature Algorithm: sha256WithRSAEncryption
Signature Algorithm Hash: sha256
Issuer DN: equal to the "Client-unassured" Subordinate CA certificate's Subject; source: "Client-unassured" Subordinate CA certificate
Validity (Not Before & Not After), Duration = 6 months
Subject DN: CN = client's FQDN; source: user's account
Subject Public Key Info
Public Key Algorithm: RSAEncryption
RSA Public-Key: (3072 bit), then the Modulus value, Exponent 65537 (0x10001); source: CSR
Public Key Parameters: 05 00 (NULL)
X509v3 Extensions
X509v3 Key Usage (critical):
Digital Signature, Key Encipherment, Key Agreement
X509v3 Extended Key Usage: (source: "Client-unassured" Subordinate CA certificate)
TLS Web Client Authentication (1.3.6.1.5.5.7.3.2)
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier: (20 Byte ID); source: CSR
Authority Key ID (20 Bytes ID, equal to the Subject Key ID of the "Client-unassured" Subordinate CA certificate)
Authority Information Access (AIA):
OCSP (1.3.6.1.5.5.7.48.1) - URI:http://ocsp.cacert.org/
CA Issuer (1.3.6.1.5.5.7.48.2)
- URI:http://www.cacert.org/certs/rsa_clientU_<year>.crt ("Client-unassured" Subordinate CA certificate file)
X509v3 Certificate Policies:
Policy: 1.3.6.1.4.1.18506.2.3.1 (18506 = org. number, here: CAcert; 2.3.1 = CPS)
X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.cacert.org/rsa_clientU_<year>.crl ("Client-unassured" Subordinate CA certificate CRL file)
Signature Algorithm: sha256WithRSAEncryption
Fingerprint: 20 Bytes
For 1 or more verified (and selected by the user) domains -> FQDNs a SAN string will be added; (source: user's account & user's selection).
# 16. The proposal of the pattern "Server-assured"
Cert version: 3 (X.509v3)
Serial number: random number, length is 16 Bytes; source: Signer
Signature Algorithm: sha256WithRSAEncryption
Signature Algorithm Hash: sha256
Issuer DN: equal to the "Server-Assurer" Subordinate CA certificate's Subject; source: "Server-Assurer" Subordinate CA certificate
Validity (Not Before & Not After), Duration = 1 year (CAB recommandation)
Subject DN: CN = server's FQDN; source: user's account
Subject Public Key Info
Public Key Algorithm: RSAEncryption
RSA Public-Key: (3072 bit), then the Modulus value, Exponent 65537 (0x10001); source: CSR
Public Key Parameters: 05 00 (NULL)
X509v3 Extensions
X509v3 Key Usage (critical):
Digital Signature, Key Encipherment, Key Agreement
X509v3 Extended Key Usage: (source: "Server-Assurer" Subordinate CA certificate)
TLS Web Server Authentication (1.3.6.1.5.5.7.3.1)
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier: (20 Byte ID); source: CSR
Authority Key ID (20 Bytes ID, equal to the Subject Key ID of the "Server-assured" Subordinate CA certificate)
Authority Information Access (AIA):
OCSP (1.3.6.1.5.5.7.48.1) - URI:http://ocsp.cacert.org/
CA Issuer (1.3.6.1.5.5.7.48.2)
- URI:http://www.cacert.org/certs/rsa_serverA_<year>.crt ("Server-assured" Subordinate CA certificate file)
X509v3 Certificate Policies:
Policy: 1.3.6.1.4.1.18506.2.3.1 (18506 = org. number, here: CAcert; 2.3.1 = CPS)
X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.cacert.org/rsa_serverA_<year>.crl ("Server-Assurer" Subordinate CA certificate CRL file)
Signature Algorithm: sha256WithRSAEncryption
Fingerprint: 20 Bytes
For 1 or more verified (and selected by the user) domains -> FQDNs a SAN string will be added; (source: user's account & user's selection).
## 17. The proposal of the pattern "Server-unassured"
Cert version: 3 (X.509v3)
Serial number: random number, length is 16 Bytes; source: Signer
Signature Algorithm: sha256WithRSAEncryption
Signature Algorithm Hash: sha256
Issuer DN: equal to the "Server-nonAssurer" Subordinate CA certificate's Subject; source: "Server-nonAssurer" Subordinate CA certificate
Validity (Not Before & Not After), Duration = 6 months
Subject DN: CN = server's FQDN; source: user's account
Subject Public Key Info
Public Key Algorithm: RSAEncryption
RSA Public-Key: (3072 bit), then the Modulus value, Exponent 65537 (0x10001); source: CSR
Public Key Parameters: 05 00 (NULL)
X509v3 Extensions
X509v3 Key Usage (critical):
Digital Signature, Key Encipherment, Key Agreement
X509v3 Extended Key Usage: (source: "Server-unassured" Subordinate CA certificate)
TLS Web Server Authentication (1.3.6.1.5.5.7.3.1)
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Subject Key Identifier: (20 Byte ID); source: CSR
Authority Key ID (20 Bytes ID, equal to the Subject Key ID of the "Server-unassured" Subordinate CA certificate)
Authority Information Access (AIA):
OCSP (1.3.6.1.5.5.7.48.1) - URI:http://ocsp.cacert.org/
CA Issuer (1.3.6.1.5.5.7.48.2)
- URI:http://www.cacert.org/certs/rsa_serverU_<year>.crt ("Server-nonAssurer" Subordinate CA certificate file)
X509v3 Certificate Policies:
Policy: 1.3.6.1.4.1.18506.2.3.1 (18506 = org. number, here: CAcert; 2.3.1 = CPS)
X509v3 CRL Distribution Points:
Full Name:
URI:http://crl.cacert.org/rsa_serverU_<year>.crl ("Server-nonAssurer" Subordinate CA certificate CRL file)
Signature Algorithm: sha256WithRSAEncryption
Fingerprint: 20 Bytes
For 1 or more verified (and selected by the user) domains -> FQDNs a SAN string will be added; (source: user's account & user's selection).
# Jan's comments:
The Subroot "Person" should be used for identifying real people. Certificates
issued by that Subordinat CA can be used to digitaly sign emails and documents
and for identifying as that person in Web applications (i.e. for our OpenID
Connect implementation or other applications that support client certificates
for user authentication).
For Person certificates the CN (Common Name) of the Subject DN should contain
the Name as assured by CAcert. The person certificates should contain a user
selected list of email addresses as RFC822 Subject Alternative Name extensions.
We might still include emailAdress parts in the Subject DN, but this is
deprecated. There are still some applications that expect email addresses
there.
The Subroot "Client" should be used for client certificate authentication, but
more for machine-to-machine communication scenarios. From my point of view the
SubjectDN should have a Common Name identifying a machine name or some
arbitrary application identifier. An example could be "CAcert Assurer Training
System" for our CATS system. The Subject Alternative Name might contain DNS
names from domains that are assigned to a user or organisation. It may also
contain RFC822 Subject Alternative Names (in case of some functional address
that corresponds to an application, like "cats@cacert.org").
The Subroot "Server" should be used for TLS server certificates. The CN of the
SubjectDN could contain a hostname. These certificates must contain DNS Name
Subject Alternative Names (at least one for the primary hostname, could be
more). The hostnames should be from a verified domain of a user or
organisation.
I think it would be a good idea to have separate Sub CA certificates for users
that have not been assured yet, to make it visible that these have been issued
according to different rules (currently we use "WoT user" in their Subject DNs
CN field). I think this separation would make it much clearer and would allow
relying parties to only accept certificates that correspond to assured users
without making assumptions on specific attributes of certificates.
That would mean that we have at least 1 root CA certificate (maybe 2 if we
would like to provide EC in addition to RSA). And 6 Sub CA certificates (3 for
assured users, 3 for non-assured users).
# Jan's remarks to ver. 2:
ad # 04
*Remark:* OU does not make a lot of sense here. There is no specific
"Organizational Unit". The Critical team might be such a unit, but I would not include that in the Subject DNs of CA certificates.
*Remark:* we should use the terms Issuer Distinguished Name (Issuer DN),
Subject Distinguished Name (Subject DN), Root CA certificate and Subordinate CA certificate consistently
ad # 05
*Remark:* I think the first set is not for assurers but for assured members, the other set is for unassured members. Assurers are special in that they have enough assurance points and passed the required CATS exam to assure other members
*Remark:* It may be a good idea to have a separate third set of Subordinate CA certificates to be used for organization certificates. In addition to the properties defined for personal certificates they could contain Organization (O) and optional Organizational Unit (OU) fields in the Subject DN field. ***
ad # 06
* Public Key Algorithm: RSAEncryption *(implied by the public key)*
* Fingerprint: 20 Bytes *(fingerprint is dependent on the used hash algorithm,
a certificate's TBSCertificate structure can be hashed/fingerprinted using
any hash algorithm. 20 Bytes is what a SHA1 hash produces, it can be longer
or shorter for other algorithms and is not directly included in the
certificate)*
ad # 07
Remark*: Is there any new information to part 05 above? I would suggest to
avoid duplication
ad # 08
*See remarks for Root CA and for the differentiation between assured-members
and unassured-members above. I suggest to use Person (assured) vs. Person
(unassured) or something similar in the Subordinate CA's Subject DN Common
Name (CN) field*
ad # 09
*Same remarks as for the Root CA certificate and the Person CA certificates*
ad # 10
*Same remarks as for the Root CA certificate and the Person CA certificates*
ad # 11
*Remarks* we should use the standard term end-entity certificate
ad # 12
*Remarks*:
* same remarks as for Root CA certificate and Subordinate CA certificates
* for unassured person certificates I suggest to add a "(unassured)"
suffix to the CN part of the Subject DN to make this fact explicit
* OCSP signing EKU MUST NOT be included in end-entity certificates for users
ad # 13
*Remarks:*
* same remarks as for "Person-assured"
* as an alternative to "CAcert WoT User" we might use the member's real name
with a suffix just as "(unassured)"
ad # 14
*Remarks:*
* same as for CA and Person end-entity certificates
* client certificates MUST NOT contain the OCSP Signing EKU
* there might be client certificates for email addresses that belong to
organizations (i.e. functional mailboxes), that is one of the reasons I
recommend to create a set of organization Subordinate CA certificates in
addition to the 2 proposed sets, such client certificates may need
digitalSignature and emailProtections EKU in addition to client
authentication
ad # 15
Remarks:*
* same remarks as for "Person unassured"
* OCSP signing EKU MUST NOT be included
* SANs can only be DNS names (FQDNs) from domains that have been verified to
be under control of the member
ad # 16
*Remarks:*
* same remarks as for "Person assured"
* OCSP signing EKU MUST NOT be included in general. OCSP signing may only be
included in certificates that are issued for CAcert critical-team members.
The web application needs an option to issue such certificates for CAcert
critical admin team personal
* SANs can only be DNS names (FQDNs) from domains that have been verified to
be under control of the member
* issuing of OCSP certificates is a very special case. Critical team members
must be able to create OCSP signing certificates for each Subordinate CA.
The EKU MUST NOT be added to any end-entity certificate for regular members
ad # 17
*Remarks:*
* same remarks as for "Person unassured"
* SANs can only be DNS names (FQDNs) from domains that have been verified to
be under control of the member