draft-ietf-trans-rfc6962-bis-36.txt   draft-ietf-trans-rfc6962-bis-37.txt 
skipping to change at page 1, line 13 skipping to change at page 1, line 13
TRANS (Public Notary Transparency) B. Laurie TRANS (Public Notary Transparency) B. Laurie
Internet-Draft A. Langley Internet-Draft A. Langley
Obsoletes: 6962 (if approved) E. Kasper Obsoletes: 6962 (if approved) E. Kasper
Intended status: Experimental E. Messeri Intended status: Experimental E. Messeri
Expires: 14 November 2021 Google Expires: 14 November 2021 Google
R. Stradling R. Stradling
Sectigo Sectigo
13 May 2021 13 May 2021
Certificate Transparency Version 2.0 Certificate Transparency Version 2.0
draft-ietf-trans-rfc6962-bis-36 draft-ietf-trans-rfc6962-bis-37
Abstract Abstract
This document describes version 2.0 of the Certificate Transparency This document describes version 2.0 of the Certificate Transparency
(CT) protocol for publicly logging the existence of Transport Layer (CT) protocol for publicly logging the existence of Transport Layer
Security (TLS) server certificates as they are issued or observed, in Security (TLS) server certificates as they are issued or observed, in
a manner that allows anyone to audit certification authority (CA) a manner that allows anyone to audit certification authority (CA)
activity and notice the issuance of suspect certificates as well as activity and notice the issuance of suspect certificates as well as
to audit the certificate logs themselves. The intent is that to audit the certificate logs themselves. The intent is that
eventually clients would refuse to honor certificates that do not eventually clients would refuse to honor certificates that do not
skipping to change at page 3, line 39 skipping to change at page 3, line 39
8.1.1. Receiving SCTs and inclusion proofs . . . . . . . . . 42 8.1.1. Receiving SCTs and inclusion proofs . . . . . . . . . 42
8.1.2. Reconstructing the TBSCertificate . . . . . . . . . . 42 8.1.2. Reconstructing the TBSCertificate . . . . . . . . . . 42
8.1.3. Validating SCTs . . . . . . . . . . . . . . . . . . . 42 8.1.3. Validating SCTs . . . . . . . . . . . . . . . . . . . 42
8.1.4. Fetching inclusion proofs . . . . . . . . . . . . . . 43 8.1.4. Fetching inclusion proofs . . . . . . . . . . . . . . 43
8.1.5. Validating inclusion proofs . . . . . . . . . . . . . 43 8.1.5. Validating inclusion proofs . . . . . . . . . . . . . 43
8.1.6. Evaluating compliance . . . . . . . . . . . . . . . . 44 8.1.6. Evaluating compliance . . . . . . . . . . . . . . . . 44
8.2. Monitor . . . . . . . . . . . . . . . . . . . . . . . . . 44 8.2. Monitor . . . . . . . . . . . . . . . . . . . . . . . . . 44
8.3. Auditing . . . . . . . . . . . . . . . . . . . . . . . . 45 8.3. Auditing . . . . . . . . . . . . . . . . . . . . . . . . 45
9. Algorithm Agility . . . . . . . . . . . . . . . . . . . . . . 46 9. Algorithm Agility . . . . . . . . . . . . . . . . . . . . . . 46
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 47 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 47
10.1. New Entry to the TLS ExtensionType Registry . . . . . . 47 10.1. Additions to existing registries . . . . . . . . . . . . 47
10.2. Hash Algorithms . . . . . . . . . . . . . . . . . . . . 47 10.1.1. New Entry to the TLS ExtensionType Registry . . . . 47
10.2.1. Specification Required guidance . . . . . . . . . . 47 10.1.2. URN Sub-namespace for TRANS errors
10.3. Signature Algorithms . . . . . . . . . . . . . . . . . . 48 (urn:ietf:params:trans:error) . . . . . . . . . . . . 47
10.3.1. Expert Review guidelines . . . . . . . . . . . . . . 49 10.2. New CT-Related registries . . . . . . . . . . . . . . . 47
10.4. VersionedTransTypes . . . . . . . . . . . . . . . . . . 49 10.2.1. Hash Algorithms . . . . . . . . . . . . . . . . . . 47
10.5. Log Artifact Extension Registry . . . . . . . . . . . . 50 10.2.2. Signature Algorithms . . . . . . . . . . . . . . . . 48
10.5.1. Specification Required guidance . . . . . . . . . . 51 10.2.3. VersionedTransTypes . . . . . . . . . . . . . . . . 49
10.6. Object Identifiers . . . . . . . . . . . . . . . . . . . 51 10.2.4. Log Artifact Extension Registry . . . . . . . . . . 50
10.6.1. Log ID Registry . . . . . . . . . . . . . . . . . . 51 10.2.5. Object Identifiers . . . . . . . . . . . . . . . . . 51
10.7. URN Sub-namespace for TRANS errors 10.2.6. CT Error Types Registry . . . . . . . . . . . . . . 52
(urn:ietf:params:trans:error) . . . . . . . . . . . . . 52
10.7.1. TRANS Error Types . . . . . . . . . . . . . . . . . 53
11. Security Considerations . . . . . . . . . . . . . . . . . . . 54 11. Security Considerations . . . . . . . . . . . . . . . . . . . 54
11.1. Misissued Certificates . . . . . . . . . . . . . . . . . 55 11.1. Misissued Certificates . . . . . . . . . . . . . . . . . 55
11.2. Detection of Misissue . . . . . . . . . . . . . . . . . 55 11.2. Detection of Misissue . . . . . . . . . . . . . . . . . 55
11.3. Misbehaving Logs . . . . . . . . . . . . . . . . . . . . 55 11.3. Misbehaving Logs . . . . . . . . . . . . . . . . . . . . 55
11.4. Multiple SCTs . . . . . . . . . . . . . . . . . . . . . 56 11.4. Multiple SCTs . . . . . . . . . . . . . . . . . . . . . 56
11.5. Leakage of DNS Information . . . . . . . . . . . . . . . 56 11.5. Leakage of DNS Information . . . . . . . . . . . . . . . 56
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 56 12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 56
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 57 13. References . . . . . . . . . . . . . . . . . . . . . . . . . 56
13.1. Normative References . . . . . . . . . . . . . . . . . . 57 13.1. Normative References . . . . . . . . . . . . . . . . . . 56
13.2. Informative References . . . . . . . . . . . . . . . . . 59 13.2. Informative References . . . . . . . . . . . . . . . . . 59
Appendix A. Supporting v1 and v2 simultaneously (Informative) . 60 Appendix A. Supporting v1 and v2 simultaneously (Informative) . 60
Appendix B. An ASN.1 Module (Informative) . . . . . . . . . . . 61 Appendix B. An ASN.1 Module (Informative) . . . . . . . . . . . 60
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 62 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 62
1. Introduction 1. Introduction
Certificate Transparency aims to mitigate the problem of misissued Certificate Transparency aims to mitigate the problem of misissued
certificates by providing append-only logs of issued certificates. certificates by providing append-only logs of issued certificates.
The logs do not themselves prevent misissuance, but they ensure that The logs do not themselves prevent misissuance, but they ensure that
interested parties (particularly those named in certificates) can interested parties (particularly those named in certificates) can
detect such misissuance. Note that this is a general mechanism that detect such misissuance. Note that this is a general mechanism that
could be used for transparently logging any form of binary data, could be used for transparently logging any form of binary data,
skipping to change at page 7, line 30 skipping to change at page 7, line 30
document. Briefly, it is a binary tree where each non-leaf node is a document. Briefly, it is a binary tree where each non-leaf node is a
hash of its children. For CT, the number of children is at most two. hash of its children. For CT, the number of children is at most two.
Additional information can be found in the Introduction and Reference Additional information can be found in the Introduction and Reference
section of [RFC8391]. section of [RFC8391].
2.1.1. Definition of the Merkle Tree 2.1.1. Definition of the Merkle Tree
The log uses a binary Merkle Hash Tree for efficient auditing. The The log uses a binary Merkle Hash Tree for efficient auditing. The
hash algorithm used is one of the log's parameters (see Section 4.1). hash algorithm used is one of the log's parameters (see Section 4.1).
This document establishes a registry of acceptable hash algorithms This document establishes a registry of acceptable hash algorithms
(see Section 10.2). Throughout this document, the hash algorithm in (see Section 10.2.1). Throughout this document, the hash algorithm
use is referred to as HASH and the size of its output in bytes as in use is referred to as HASH and the size of its output in bytes as
HASH_SIZE. The input to the Merkle Tree Hash is a list of data HASH_SIZE. The input to the Merkle Tree Hash is a list of data
entries; these entries will be hashed to form the leaves of the entries; these entries will be hashed to form the leaves of the
Merkle Hash Tree. The output is a single HASH_SIZE Merkle Tree Hash. Merkle Hash Tree. The output is a single HASH_SIZE Merkle Tree Hash.
Given an ordered list of n inputs, D_n = {d[0], d[1], ..., d[n-1]}, Given an ordered list of n inputs, D_n = {d[0], d[1], ..., d[n-1]},
the Merkle Tree Hash (MTH) is thus defined as follows: the Merkle Tree Hash (MTH) is thus defined as follows:
The hash of an empty list is the hash of an empty string: The hash of an empty list is the hash of an empty string:
MTH({}) = HASH(). MTH({}) = HASH().
skipping to change at page 14, line 46 skipping to change at page 14, line 46
hash can be verified using hash1=k and l. hash can be verified using hash1=k and l.
The consistency proof between hash2 and hash is PROOF(6, D[7]) = [i, The consistency proof between hash2 and hash is PROOF(6, D[7]) = [i,
j, k]. k, i are used to verify hash2, and j is additionally used to j, k]. k, i are used to verify hash2, and j is additionally used to
show hash is consistent with hash2. show hash is consistent with hash2.
2.2. Signatures 2.2. Signatures
When signing data structures, a log MUST use one of the signature When signing data structures, a log MUST use one of the signature
algorithms from the IANA CT Signature Algorithms registry, described algorithms from the IANA CT Signature Algorithms registry, described
in Section 10.3. in Section 10.2.2.
3. Submitters 3. Submitters
Submitters submit certificates or preannouncements of certificates Submitters submit certificates or preannouncements of certificates
prior to issuance (precertificates) to logs for public auditing, as prior to issuance (precertificates) to logs for public auditing, as
described below. In order to enable attribution of each logged described below. In order to enable attribution of each logged
certificate or precertificate to its issuer, each submission MUST be certificate or precertificate to its issuer, each submission MUST be
accompanied by all additional certificates required to verify the accompanied by all additional certificates required to verify the
chain up to an accepted trust anchor (Section 5.7). The trust anchor chain up to an accepted trust anchor (Section 5.7). The trust anchor
(a root or intermediate CA certificate) MAY be omitted from the (a root or intermediate CA certificate) MAY be omitted from the
skipping to change at page 16, line 24 skipping to change at page 16, line 24
* "SignedData.crls" MUST be omitted. * "SignedData.crls" MUST be omitted.
* "SignedData.signerInfos" MUST contain one "SignerInfo": * "SignedData.signerInfos" MUST contain one "SignerInfo":
- "version" MUST be v3(3). - "version" MUST be v3(3).
- "sid" MUST use the "subjectKeyIdentifier" option. - "sid" MUST use the "subjectKeyIdentifier" option.
- "digestAlgorithm" MUST be one of the hash algorithm OIDs listed - "digestAlgorithm" MUST be one of the hash algorithm OIDs listed
in the IANA CT Hash Algorithms Registry, described in in the IANA CT Hash Algorithms Registry, described in
Section 10.2. Section 10.2.1.
- "signedAttrs" MUST be present and MUST contain two attributes: - "signedAttrs" MUST be present and MUST contain two attributes:
o A content-type attribute whose value is the same as o A content-type attribute whose value is the same as
"SignedData.encapContentInfo.eContentType". "SignedData.encapContentInfo.eContentType".
o A message-digest attribute whose value is the message digest o A message-digest attribute whose value is the message digest
of "SignedData.encapContentInfo.eContent". of "SignedData.encapContentInfo.eContent".
- "signatureAlgorithm" MUST be the same OID as - "signatureAlgorithm" MUST be the same OID as
skipping to change at page 18, line 39 skipping to change at page 18, line 39
these parameters MUST be established before the log operator begins these parameters MUST be established before the log operator begins
to operate the log. to operate the log.
Base URL: The prefix used to construct URLs ([RFC3986]) for client Base URL: The prefix used to construct URLs ([RFC3986]) for client
messages (see Section 5). The base URL MUST be an "https" URL, messages (see Section 5). The base URL MUST be an "https" URL,
MAY contain a port, MAY contain a path with any number of path MAY contain a port, MAY contain a path with any number of path
segments, but MUST NOT contain a query string, fragment, or segments, but MUST NOT contain a query string, fragment, or
trailing "/". Example: https://ct.example.org/blue trailing "/". Example: https://ct.example.org/blue
Hash Algorithm: The hash algorithm used for the Merkle Tree (see Hash Algorithm: The hash algorithm used for the Merkle Tree (see
Section 10.2). Section 10.2.1).
Signature Algorithm: The signature algorithm used (see Section 2.2). Signature Algorithm: The signature algorithm used (see Section 2.2).
Public Key: The public key used to verify signatures generated by Public Key: The public key used to verify signatures generated by
the log. A log MUST NOT use the same keypair as any other log. the log. A log MUST NOT use the same keypair as any other log.
Log ID: The OID that uniquely identifies the log. Log ID: The OID that uniquely identifies the log.
Maximum Merge Delay: The MMD the log has committed to. This Maximum Merge Delay: The MMD the log has committed to. This
document deliberately does not specify any limits on the value, to document deliberately does not specify any limits on the value, to
skipping to change at page 21, line 17 skipping to change at page 21, line 17
"TimestampedCertificateEntryDataV2" structure. The "TransItem" can "TimestampedCertificateEntryDataV2" structure. The "TransItem" can
be reconstructed from these fields and the entire chain that the log be reconstructed from these fields and the entire chain that the log
used to verify the submission. used to verify the submission.
4.4. Log ID 4.4. Log ID
Each log is identified by an OID, which is one of the log's Each log is identified by an OID, which is one of the log's
parameters (see Section 4.1) and which MUST NOT be used to identify parameters (see Section 4.1) and which MUST NOT be used to identify
any other log. A log's operator MUST either allocate the OID any other log. A log's operator MUST either allocate the OID
themselves or request an OID from the Log ID Registry (see themselves or request an OID from the Log ID Registry (see
Section 10.6.1). The only advantage of the registry is that the DER Section 10.2.5.1). The only advantage of the registry is that the
encoding can be small. (Recall that OID allocations do not require a DER encoding can be small. (Recall that OID allocations do not
central registration, although logs will most likely want to make require a central registration, although logs will most likely want
themselves known to potential clients through out of band means.) to make themselves known to potential clients through out of band
Various data structures include the DER encoding of this OID, means.) Various data structures include the DER encoding of this
excluding the ASN.1 tag and length bytes, in an opaque vector: OID, excluding the ASN.1 tag and length bytes, in an opaque vector:
opaque LogID<2..127>; opaque LogID<2..127>;
Note that the ASN.1 length and the opaque vector length are identical Note that the ASN.1 length and the opaque vector length are identical
in size (1 byte) and value, so the full DER encoding (including the in size (1 byte) and value, so the full DER encoding (including the
tag and length) of the OID can be reproduced simply by prepending an tag and length) of the OID can be reproduced simply by prepending an
OBJECT IDENTIFIER tag (0x06) to the opaque vector length and OBJECT IDENTIFIER tag (0x06) to the opaque vector length and
contents. contents.
The OID used to identify a log is limited such that the DER encoding The OID used to identify a log is limited such that the DER encoding
skipping to change at page 22, line 27 skipping to change at page 22, line 27
case x509_entry_v2: TimestampedCertificateEntryDataV2; case x509_entry_v2: TimestampedCertificateEntryDataV2;
case precert_entry_v2: TimestampedCertificateEntryDataV2; case precert_entry_v2: TimestampedCertificateEntryDataV2;
case x509_sct_v2: SignedCertificateTimestampDataV2; case x509_sct_v2: SignedCertificateTimestampDataV2;
case precert_sct_v2: SignedCertificateTimestampDataV2; case precert_sct_v2: SignedCertificateTimestampDataV2;
case signed_tree_head_v2: SignedTreeHeadDataV2; case signed_tree_head_v2: SignedTreeHeadDataV2;
case consistency_proof_v2: ConsistencyProofDataV2; case consistency_proof_v2: ConsistencyProofDataV2;
case inclusion_proof_v2: InclusionProofDataV2; case inclusion_proof_v2: InclusionProofDataV2;
} data; } data;
} TransItem; } TransItem;
"versioned_type" is a value from the IANA registry in Section 10.4 "versioned_type" is a value from the IANA registry in Section 10.2.3
that identifies the type of the encapsulated data structure and the that identifies the type of the encapsulated data structure and the
earliest version of this protocol to which it conforms. This earliest version of this protocol to which it conforms. This
document is v2. document is v2.
"data" is the encapsulated data structure. The various structures "data" is the encapsulated data structure. The various structures
named with the "DataV2" suffix are defined in later sections of this named with the "DataV2" suffix are defined in later sections of this
document. document.
Note that "VersionedTransType" combines the v1 [RFC6962] type Note that "VersionedTransType" combines the v1 [RFC6962] type
enumerations "Version", "LogEntryType", "SignatureType" and enumerations "Version", "LogEntryType", "SignatureType" and
skipping to change at page 23, line 20 skipping to change at page 23, line 20
opaque extension_data<0..2^16-1>; opaque extension_data<0..2^16-1>;
} Extension; } Extension;
The "Extension" structure provides a generic extensibility for log The "Extension" structure provides a generic extensibility for log
artifacts, including Signed Certificate Timestamps (Section 4.8) and artifacts, including Signed Certificate Timestamps (Section 4.8) and
Signed Tree Heads (Section 4.10). The interpretation of the Signed Tree Heads (Section 4.10). The interpretation of the
"extension_data" field is determined solely by the value of the "extension_data" field is determined solely by the value of the
"extension_type" field. "extension_type" field.
This document does not define any extensions, but it does establish a This document does not define any extensions, but it does establish a
registry for future "ExtensionType" values (see Section 10.5). Each registry for future "ExtensionType" values (see Section 10.2.4).
document that registers a new "ExtensionType" must specify the Each document that registers a new "ExtensionType" must specify the
context in which it may be used (e.g., SCT, STH, or both) and context in which it may be used (e.g., SCT, STH, or both) and
describe how to interpret the corresponding "extension_data". describe how to interpret the corresponding "extension_data".
4.7. Merkle Tree Leaves 4.7. Merkle Tree Leaves
The leaves of a log's Merkle Tree correspond to the log's entries The leaves of a log's Merkle Tree correspond to the log's entries
(see Section 4.3). Each leaf is the leaf hash (Section 2.1) of a (see Section 4.3). Each leaf is the leaf hash (Section 2.1) of a
"TransItem" structure of type "x509_entry_v2" or "precert_entry_v2", "TransItem" structure of type "x509_entry_v2" or "precert_entry_v2",
which encapsulates a "TimestampedCertificateEntryDataV2" structure. which encapsulates a "TimestampedCertificateEntryDataV2" structure.
Note that leaf hashes are calculated as HASH(0x00 || TransItem), Note that leaf hashes are calculated as HASH(0x00 || TransItem),
skipping to change at page 28, line 48 skipping to change at page 28, line 48
(JSON) objects [RFC8259]. Parameters for GETs are encoded as order- (JSON) objects [RFC8259]. Parameters for GETs are encoded as order-
independent key/value URL parameters, using the "application/x-www- independent key/value URL parameters, using the "application/x-www-
form-urlencoded" format described in the "HTML 4.01 Specification" form-urlencoded" format described in the "HTML 4.01 Specification"
[HTML401]. Binary data is base64 encoded according to section 4 of [HTML401]. Binary data is base64 encoded according to section 4 of
[RFC4648] as specified in the individual messages. [RFC4648] as specified in the individual messages.
Clients are configured with a log's base URL, which is one of the Clients are configured with a log's base URL, which is one of the
log's parameters. Clients construct URLs for requests by appending log's parameters. Clients construct URLs for requests by appending
suffixes to this base URL. This structure places some degree of suffixes to this base URL. This structure places some degree of
restriction on how log operators can deploy these services, as noted restriction on how log operators can deploy these services, as noted
in [RFC7320]. However, operational experience with version 1 of this in [RFC8820]. However, operational experience with version 1 of this
protocol has not indicated that these restrictions are a problem in protocol has not indicated that these restrictions are a problem in
practice. practice.
Note that JSON objects and URL parameters may contain fields not Note that JSON objects and URL parameters may contain fields not
specified here, to allow for experimentation. Any fields that are specified here, to allow for experimentation. Any fields that are
not understood SHOULD be ignored. not understood SHOULD be ignored.
In practice, log servers may include multiple front-end machines. In practice, log servers may include multiple front-end machines.
Since it is impractical to keep these machines in perfect sync, Since it is impractical to keep these machines in perfect sync,
errors may occur that are caused by skew between the machines. Where errors may occur that are caused by skew between the machines. Where
skipping to change at page 47, line 16 skipping to change at page 47, line 16
live log, then the log MUST be frozen as specified in Section 4.13 live log, then the log MUST be frozen as specified in Section 4.13
and a new log SHOULD be started. Certificates in the frozen log that and a new log SHOULD be started. Certificates in the frozen log that
have not yet expired and require new SCTs SHOULD be submitted to the have not yet expired and require new SCTs SHOULD be submitted to the
new log and the SCTs from that log used instead. new log and the SCTs from that log used instead.
10. IANA Considerations 10. IANA Considerations
The assignment policy criteria mentioned in this section refer to the The assignment policy criteria mentioned in this section refer to the
policies outlined in [RFC8126]. policies outlined in [RFC8126].
10.1. New Entry to the TLS ExtensionType Registry 10.1. Additions to existing registries
This sub-section defines additions to existing registries.
10.1.1. New Entry to the TLS ExtensionType Registry
IANA is asked to add an entry for "transparency_info(TBD)" to the IANA is asked to add an entry for "transparency_info(TBD)" to the
"TLS ExtensionType Values" registry defined in [RFC8446], setting the "TLS ExtensionType Values" registry defined in [RFC8446], setting the
"Recommended" value to "Y", setting the "TLS 1.3" value to "CH, CR, "Recommended" value to "Y", setting the "TLS 1.3" value to "CH, CR,
CT", and citing this document as the "Reference". CT", and citing this document as the "Reference".
10.2. Hash Algorithms 10.1.2. URN Sub-namespace for TRANS errors
(urn:ietf:params:trans:error)
IANA is requested to add a new entry in the "IETF URN Sub-namespace
for Registered Protocol Parameter Identifiers" registry, following
the template in [RFC3553]:
Registry name: trans:error
Specification: RFCXXXX
Repository: https://www.iana.org/assignments/trans
Index value: No transformation needed.
10.2. New CT-Related registries
This sub-section defines new registries for CT. They should be made
available at https://www.iana.org/assignments/
10.2.1. Hash Algorithms
IANA is asked to establish a registry of hash algorithm values, named IANA is asked to establish a registry of hash algorithm values, named
"CT Hash Algorithms", that initially consists of: "CT Hash Algorithms", that initially consists of:
+========+============+========================+===================+ +========+============+========================+===================+
| Value | Hash | OID | Reference / | | Value | Hash | OID | Reference / |
| | Algorithm | | Assignment Policy | | | Algorithm | | Assignment Policy |
+========+============+========================+===================+ +========+============+========================+===================+
| 0x00 | SHA-256 | 2.16.840.1.101.3.4.2.1 | [RFC6234] | | 0x00 | SHA-256 | 2.16.840.1.101.3.4.2.1 | [RFC6234] |
+--------+------------+------------------------+-------------------+ +--------+------------+------------------------+-------------------+
skipping to change at page 47, line 46 skipping to change at page 48, line 23
+--------+------------+------------------------+-------------------+ +--------+------------+------------------------+-------------------+
| 0xE0 - | Reserved | | Experimental Use | | 0xE0 - | Reserved | | Experimental Use |
| 0xEF | | | | | 0xEF | | | |
+--------+------------+------------------------+-------------------+ +--------+------------+------------------------+-------------------+
| 0xF0 - | Reserved | | Private Use | | 0xF0 - | Reserved | | Private Use |
| 0xFF | | | | | 0xFF | | | |
+--------+------------+------------------------+-------------------+ +--------+------------+------------------------+-------------------+
Table 7 Table 7
10.2.1. Specification Required guidance The Designated Expert(s) should ensure that the proposed algorithm
has a public specification and is suitable for use as a cryptographic
The appointed Expert(s) should ensure that the proposed algorithm has
a public specification and is suitable for use as a cryptographic
hash algorithm with no known preimage or collision attacks. These hash algorithm with no known preimage or collision attacks. These
attacks can damage the integrity of the log. attacks can damage the integrity of the log.
10.3. Signature Algorithms 10.2.2. Signature Algorithms
IANA is asked to establish a registry of signature algorithm values, IANA is asked to establish a registry of signature algorithm values,
named "CT Signature Algorithms" named "CT Signature Algorithms".
The following notes should be added: The following notes should be added:
* This is a subset of the TLS SignatureScheme Registry, limited to * This is a subset of the TLS SignatureScheme Registry, limited to
those algorithms that are appropriate for CT. A major advantage those algorithms that are appropriate for CT. A major advantage
of this is leveraging the expertise of the TLS working group and of this is leveraging the expertise of the TLS working group and
its designated experts. its Designated Expert(s).
* The value "0x0403" appears twice. While this may be confusing, it * The value "0x0403" appears twice. While this may be confusing, it
is okay because the verification process is the same for both is okay because the verification process is the same for both
algorithms, and the choice of which to use when generating a algorithms, and the choice of which to use when generating a
signature is purely internal to the log server. signature is purely internal to the log server.
The registry should initially consist of: The registry should initially consist of:
+================================+==================+==============+ +================================+==================+==============+
| SignatureScheme Value | Signature | Reference / | | SignatureScheme Value | Signature | Reference / |
skipping to change at page 49, line 41 skipping to change at page 49, line 41
| | | Review | | | | Review |
+--------------------------------+------------------+--------------+ +--------------------------------+------------------+--------------+
| 0xFE00 - 0xFEFF | Reserved | Experimental | | 0xFE00 - 0xFEFF | Reserved | Experimental |
| | | Use | | | | Use |
+--------------------------------+------------------+--------------+ +--------------------------------+------------------+--------------+
| 0xFF00 - 0xFFFF | Reserved | Private Use | | 0xFF00 - 0xFFFF | Reserved | Private Use |
+--------------------------------+------------------+--------------+ +--------------------------------+------------------+--------------+
Table 8 Table 8
10.3.1. Expert Review guidelines The Designated Expert(s) should ensure that the proposed algorithm
has a public specification, has a value assigned to it in the TLS
The appointed Expert should ensure that the proposed algorithm has a
public specification, has a value assigned to it in the TLS
SignatureScheme Registry (that IANA is asked to establish in SignatureScheme Registry (that IANA is asked to establish in
[RFC8446]) and is suitable for use as a cryptographic signature [RFC8446]) and is suitable for use as a cryptographic signature
algorithm. algorithm.
10.4. VersionedTransTypes 10.2.3. VersionedTransTypes
IANA is asked to establish a registry of "VersionedTransType" values, IANA is asked to establish a registry of "VersionedTransType" values,
named "CT VersionedTransTypes", that initially consists of: named "CT VersionedTransTypes", that initially consists of:
+==========+======================+===============================+ +==========+======================+===============================+
| Value | Type and Version | Reference / Assignment Policy | | Value | Type and Version | Reference / Assignment Policy |
+==========+======================+===============================+ +==========+======================+===============================+
| 0x0000 | Reserved | [RFC6962] * | | 0x0000 | Reserved | [RFC6962] * |
+----------+----------------------+-------------------------------+ +----------+----------------------+-------------------------------+
| 0x0001 | x509_entry_v2 | RFCXXXX | | 0x0001 | x509_entry_v2 | RFCXXXX |
skipping to change at page 50, line 37 skipping to change at page 50, line 37
| 0xE000 - | Reserved | Experimental Use | | 0xE000 - | Reserved | Experimental Use |
| 0xEFFF | | | | 0xEFFF | | |
+----------+----------------------+-------------------------------+ +----------+----------------------+-------------------------------+
| 0xF000 - | Reserved | Private Use | | 0xF000 - | Reserved | Private Use |
| 0xFFFF | | | | 0xFFFF | | |
+----------+----------------------+-------------------------------+ +----------+----------------------+-------------------------------+
Table 9 Table 9
* The 0x0000 value is reserved so that v1 SCTs are distinguishable * The 0x0000 value is reserved so that v1 SCTs are distinguishable
from v2 SCTs and other "TransItem" structures. ### Specification from v2 SCTs and other "TransItem" structures.
Required guidance
The appointed Expert should review the public specification to ensure The Designated Expert(s) should review the public specification to
that it is detailed enough to ensure implementation interoperability. ensure that it is detailed enough to ensure implementation
interoperability.
10.5. Log Artifact Extension Registry 10.2.4. Log Artifact Extension Registry
IANA is asked to establish a registry of "ExtensionType" values, IANA is asked to establish a registry of "ExtensionType" values,
named "CT Log Artifact Extensions", that initially consists of: named "CT Log Artifact Extensions", that initially consists of:
+===============+============+=====+===============================+ +===============+============+=====+===============================+
| ExtensionType | Status | Use | Reference / Assignment Policy | | ExtensionType | Status | Use | Reference / Assignment Policy |
+===============+============+=====+===============================+ +===============+============+=====+===============================+
| 0x0000 - | Unassigned | n/a | Specification Required | | 0x0000 - | Unassigned | n/a | Specification Required |
| 0xDFFF | | | | | 0xDFFF | | | |
+---------------+------------+-----+-------------------------------+ +---------------+------------+-----+-------------------------------+
skipping to change at page 51, line 27 skipping to change at page 51, line 27
Table 10 Table 10
The "Use" column should contain one or both of the following values: The "Use" column should contain one or both of the following values:
* "SCT", for extensions specified for use in Signed Certificate * "SCT", for extensions specified for use in Signed Certificate
Timestamps. Timestamps.
* "STH", for extensions specified for use in Signed Tree Heads. * "STH", for extensions specified for use in Signed Tree Heads.
10.5.1. Specification Required guidance The Designated Expert(s) should review the public specification to
ensure that it is detailed enough to ensure implementation
The appointed Expert should review the public specification to ensure interoperability. They should also verify that the extension is
that it is detailed enough to ensure implementation interoperability. appropriate to the contexts in which it is specified to be used (SCT,
The Expert should also verify that the extension is appropriate to STH, or both).
the contexts in which it is specified to be used (SCT, STH, or both).
10.6. Object Identifiers 10.2.5. Object Identifiers
This document uses object identifiers (OIDs) to identify Log IDs (see This document uses object identifiers (OIDs) to identify Log IDs (see
Section 4.4), the precertificate CMS "eContentType" (see Section 4.4), the precertificate CMS "eContentType" (see
Section 3.2), and X.509v3 extensions in certificates (see Section 3.2), and X.509v3 extensions in certificates (see
Section 7.1.2) and OCSP responses (see Section 7.1.1). The OIDs are Section 7.1.2) and OCSP responses (see Section 7.1.1). The OIDs are
defined in an arc that was selected due to its short encoding. defined in an arc that was selected due to its short encoding.
10.6.1. Log ID Registry 10.2.5.1. Log ID Registry
IANA is asked to establish a registry of Log IDs, named "CT Log ID IANA is asked to establish a registry of Log IDs, named "CT Log ID
Registry", that initially consists of: Registry", that initially consists of:
+================+==============+==============+===================+ +================+==============+==============+===================+
| Log ID | Log Base URL | Log Operator | Reference / | | Log ID | Log Base URL | Log Operator | Reference / |
| | | | Assignment Policy | | | | | Assignment Policy |
+================+==============+==============+===================+ +================+==============+==============+===================+
| 1.3.101.8192 - | Unassigned | Unassigned | First Come First | | 1.3.101.8192 - | Unassigned | Unassigned | First Come First |
| 1.3.101.16383 | | | Served | | 1.3.101.16383 | | | Served |
skipping to change at page 52, line 44 skipping to change at page 52, line 44
URL in this registry, because these fields are immutable (see URL in this registry, because these fields are immutable (see
Section 4.1). Section 4.1).
IANA is asked to accept requests from log operators to update their IANA is asked to accept requests from log operators to update their
contact details in this registry. contact details in this registry.
Since log operators can choose to not use this registry (see Since log operators can choose to not use this registry (see
Section 4.4), it is not expected to be a global directory of all Section 4.4), it is not expected to be a global directory of all
logs. logs.
10.7. URN Sub-namespace for TRANS errors (urn:ietf:params:trans:error) 10.2.6. CT Error Types Registry
IANA is requested to add a new entry in the "IETF URN Sub-namespace
for Registered Protocol Parameter Identifiers" registry, following
the template in [RFC3553]:
Registry name: trans:error
Specification: RFCXXXX
Repository: https://www.iana.org/assignments/trans
Index value: No transformation needed.
10.7.1. TRANS Error Types IANA is requested to create a new registry for errors, the "CT Error
Types" registry.
IANA is requested to create a new registry for errors. Requirements Requirements for this registry are Specification Required.
for this registry are Specification Required.
This registry should have the following three fields: This registry should have the following three fields:
+============+========+===========+ +============+========+===========+
| Field Name | Type | Reference | | Field Name | Type | Reference |
+============+========+===========+ +============+========+===========+
| identifier | string | RFCXXXX | | identifier | string | RFCXXXX |
+------------+--------+-----------+ +------------+--------+-----------+
| meaning | string | RFCXXXX | | meaning | string | RFCXXXX |
+------------+--------+-----------+ +------------+--------+-----------+
skipping to change at page 60, line 9 skipping to change at page 59, line 49
[JSON.Metadata] [JSON.Metadata]
The Chromium Projects, "Chromium Log Metadata JSON The Chromium Projects, "Chromium Log Metadata JSON
Schema", 2014, <https://www.gstatic.com/ct/log_list/ Schema", 2014, <https://www.gstatic.com/ct/log_list/
log_list_schema.json>. log_list_schema.json>.
[RFC6962] Laurie, B., Langley, A., and E. Kasper, "Certificate [RFC6962] Laurie, B., Langley, A., and E. Kasper, "Certificate
Transparency", RFC 6962, DOI 10.17487/RFC6962, June 2013, Transparency", RFC 6962, DOI 10.17487/RFC6962, June 2013,
<https://www.rfc-editor.org/info/rfc6962>. <https://www.rfc-editor.org/info/rfc6962>.
[RFC7320] Nottingham, M., "URI Design and Ownership", RFC 7320,
DOI 10.17487/RFC7320, July 2014,
<https://www.rfc-editor.org/info/rfc7320>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26, Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>. <https://www.rfc-editor.org/info/rfc8126>.
[RFC8820] Nottingham, M., "URI Design and Ownership", BCP 190,
RFC 8820, DOI 10.17487/RFC8820, June 2020,
<https://www.rfc-editor.org/info/rfc8820>.
Appendix A. Supporting v1 and v2 simultaneously (Informative) Appendix A. Supporting v1 and v2 simultaneously (Informative)
Certificate Transparency logs have to be either v1 (conforming to Certificate Transparency logs have to be either v1 (conforming to
[RFC6962]) or v2 (conforming to this document), as the data [RFC6962]) or v2 (conforming to this document), as the data
structures are incompatible and so a v2 log could not issue a valid structures are incompatible and so a v2 log could not issue a valid
v1 SCT. v1 SCT.
CT clients, however, can support v1 and v2 SCTs, for the same CT clients, however, can support v1 and v2 SCTs, for the same
certificate, simultaneously, as v1 SCTs are delivered in different certificate, simultaneously, as v1 SCTs are delivered in different
TLS, X.509 and OCSP extensions than v2 SCTs. TLS, X.509 and OCSP extensions than v2 SCTs.
 End of changes. 31 change blocks. 
79 lines changed or deleted 84 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/