cacert-policies/Certificates and their properties changed following Jan's remarks.md
2024-05-14 20:31:44 +02:00

29 KiB
Raw Permalink Blame History

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 (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=,L=,O=,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=,L=,O=,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 for "Person-unassured": CN=CAcert Person-unassured CA 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_.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_.crl for "Person-unassured": rsa_personU_.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=,L=,O=,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 for "Client-unassured": CN=CAcert Client-unassured CA 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_.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_.crl for "Client-unassured": rsa_clientU_.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=,L=,O=,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 for "Server-unassured": CN=CAcert Server-unassured CA 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_.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_.crl for "Server-unassured": rsa_serverU_.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_.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_.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_.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_.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_.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_.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_.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_.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_.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_.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_.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_.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