diff --git a/CAcert-CPS-Pojmy.txt b/CAcert-CPS-Pojmy.txt new file mode 100644 index 0000000..1782a4f --- /dev/null +++ b/CAcert-CPS-Pojmy.txt @@ -0,0 +1,30 @@ +Assured member - a member of the CAcert community who has 50+ APs (COD13 Assurance Policy #2.3) + (AP: Prospective Member with created account + Member) +Unassured member - a member of the CAcert community who has <50 APs (COD13 Assurance Policy #2.3) + (AP: Assured Member + Prospective Assurer + Assurer) +Root CA certificate - the main certificate of a CA (Main Root) +Subordinate CA certificate (Subroot, intermediate CA certificate) +Issuer DN - Distinguished Name of the issuer authority +Subject DN - Distinguished Name of the subject, for which the certificate is issued +... +and 1.3 from CPS COD6 +Certification Authority +Registration Authority +Subscriber +Relying Party +Member +Arbitrator +Vendor +Non-Related Person +... +abbrev. +CA (Certification Authority) +OCSP (On-line Certificate Status Protocol) - the protocol and server giving the quick informaton about revoked certificates based on their serial numbers +CSR (Certificate Signing Request) - user's utilities, as OpenSSL, XCA, and others, generate pairs of keys; one key of each pair is claimed as the private key and saved on user's machine; the other key with some added information about the user is usually given the PEM (Base64 coded) format and serves as the requeat to issue a certificate +WoT (Web of Trust) - +CRL (Certificate Revoke List) - the list of revoked certificates +AP (Assurance Points) - points a member can collect by means of assurance appointments +RSA: Rivest–Shamir–Adleman cryptography, developed 1978 +ECC: Elliptic Curve Cryptography - gives greater cryptographic strength then RSA at equivalent key size, developed 1985 +DN Distinguished Name +X.509v3 diff --git a/Certificates and their properties changed following Jan's remarks.md b/Certificates and their properties changed following Jan's remarks.md new file mode 100644 index 0000000..38447a6 --- /dev/null +++ b/Certificates and their properties changed following Jan's remarks.md @@ -0,0 +1,574 @@ +# 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: Rivest–Shamir–Adleman 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= +* 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=; if org., OU= + 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/: + 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=,OU= + 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/: + 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=,OU= + 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/: + 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 " (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 + diff --git a/RSA-tree.jpg b/RSA-tree.jpg new file mode 100644 index 0000000..f1c8f7f Binary files /dev/null and b/RSA-tree.jpg differ