<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.19 (Ruby 3.3.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-beck-tls-trust-anchor-ids-01" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.23.0 -->
  <front>
    <title>TLS Trust Anchor Identifiers</title>
    <seriesInfo name="Internet-Draft" value="draft-beck-tls-trust-anchor-ids-01"/>
    <author initials="B." surname="Beck" fullname="Bob Beck">
      <organization>Google LLC</organization>
      <address>
        <email>bbe@google.com</email>
      </address>
    </author>
    <author initials="D." surname="Benjamin" fullname="David Benjamin">
      <organization>Google LLC</organization>
      <address>
        <email>davidben@google.com</email>
      </address>
    </author>
    <author initials="D." surname="O'Brien" fullname="Devon O'Brien">
      <organization>Google LLC</organization>
      <address>
        <email>asymmetric@google.com</email>
      </address>
    </author>
    <date year="2024" month="September" day="05"/>
    <area>Security</area>
    <workgroup>Transport Layer Security</workgroup>
    <abstract>
      <?line 104?>

<t>This document defines the TLS Trust Anchors extension, a mechanism for relying parties and subscribers to convey trusted certification authorities. It describes individual certification authorities more succinctly than the TLS Certificate Authorities extension.</t>
      <t>Additionally, to support TLS clients with many trusted certification authorities, it supports a mode where servers describe their available certification paths and the client selects from them. Servers may describe this during connection setup, or in DNS for lower latency.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://davidben.github.io/tls-trust-expressions/draft-beck-tls-trust-anchor-ids.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-beck-tls-trust-anchor-ids/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Transport Layer Security Working Group mailing list (<eref target="mailto:tls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/davidben/tls-trust-expressions"/>.</t>
    </note>
  </front>
  <middle>
    <?line 110?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>TLS <xref target="RFC8446"/> authentication uses X.509 certificates <xref target="RFC5280"/> to associate the authenticating party's, or <em>subscriber's</em>, TLS key with its application identifiers, such as DNS names. These associations are signed by some certificate authority (CA). The peer, or <em>relying party</em>, curates a set of CAs that are trusted to only sign correct associations, which allows it to rely on the TLS to authenticate application identifiers. Typically the subscriber is the server and the relying party is the client.</t>
      <t>A single subscriber may need to interoperate with relying parties that trust different sets of CAs. <xref section="4.2.4" sectionFormat="of" target="RFC8446"/> defines the <tt>certificate_authorities</tt> extension to accommodate this. It allows the subscriber to provision multiple certificates and select the one that will allow the relying party to accept its TLS key. This is analogous to parameter negotiation elsewhere in TLS.</t>
      <t>However, <tt>certificate_authorities</tt>'s size is impractical for some applications. Existing PKIs may have many CAs, and existing CAs may have long X.509 names. As of August 2023, the Mozilla CA Certificate Program <xref target="MOZILLA-ROOTS"/> contained 144 CAs, with an average name length of around 100 bytes. Such TLS deployments often do not use trust anchor negotiation at all.</t>
      <t>Without a negotiation mechanism, the subscriber must obtain a single certificate that simultaneously satisfies all relying parties. This is challenging when relying parties are diverse. PKI transitions, including those necessary for user security, naturally lead to relying party diversity, so the result is that service availability conflicts with security and overall PKI evolution:</t>
      <ul spacing="normal">
        <li>
          <t>For a subscriber to use a CA in its single certificate, all supported relying parties must trust the CA. PKI transitions then become difficult when subscribers support older, unupdated relying parties. This impacts both new keys from existing CA operators and new CA operators.</t>
        </li>
        <li>
          <t>When a relying party must update its policies to meet new security requirements, it adds to relying party diversity and the challenges that subscribers and CAs face. The relying party must then choose between compromising on user security or burdening the rest of the ecosystem, potentially impacting availability in the process.</t>
        </li>
      </ul>
      <t>To address this, this document introduces Trust Anchor Identifiers. There are four parts to this mechanism:</t>
      <ol spacing="normal" type="1"><li>
          <t><xref target="trust-anchor-ids"/> defines <em>trust anchor identifiers</em>, which are short, unique identifiers for X.509 trust anchors.</t>
        </li>
        <li>
          <t><xref target="tls-extension"/> defines a TLS extension that communicates the relying party’s requested trust anchors, and the subscriber’s available ones. When the relying party is a TLS client, it can mitigate large lists by sending a, possibly empty, subset of its trust anchors to the TLS server. The server provides its list of available trust anchors in response so that the client can retry on mismatch.</t>
        </li>
        <li>
          <t><xref target="dns-service-parameter"/> allows TLS servers to advertise their available trust anchors in HTTPS or SVCB <xref target="RFC9460"/> DNS records. TLS clients can then request an accurate initial subset and avoid a retry penalty.</t>
        </li>
        <li>
          <t><xref target="acme-extension"/> defines an ACME <xref target="RFC8555"/> extension for provisioning multiple certification paths, each with an associated trust anchor identifier.</t>
        </li>
      </ol>
      <t>Together, they reduce the size costs of trust anchor negotiation, supporting flexible and robust PKIs for more applications.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>
      <t>This document additionally uses the TLS presentation language, defined in <xref section="3" sectionFormat="of" target="RFC8446"/>, and ASN.1, defined in <xref target="X680"/>.</t>
      <section anchor="terminology-and-roles">
        <name>Terminology and Roles</name>
        <t>This document discusses three roles:</t>
        <dl>
          <dt>Subscriber:</dt>
          <dd>
            <t>The party whose identity is being validated in the protocol. In TLS, this is the side sending the Certificate and CertificateVerify message.</t>
          </dd>
          <dt>Relying party:</dt>
          <dd>
            <t>The party authenticating the subscriber. In TLS, this is the side that validates a Certificate and CertificateVerify message.</t>
          </dd>
          <dt>Certification authority (CA):</dt>
          <dd>
            <t>The service issuing certificates to the subscriber.</t>
          </dd>
        </dl>
        <t>Additionally, there are several terms used throughout this document to describe this proposal:</t>
        <dl>
          <dt>Trust anchor:</dt>
          <dd>
            <t>A pre-distributed public key or certificate that relying parties use to determine whether a certification path is trusted.</t>
          </dd>
          <dt>Certification path:</dt>
          <dd>
            <t>An ordered list of X.509 certificates starting with the target certificate. Each certificate is issued by the next certificate, except the last, which is issued by a trust anchor.</t>
          </dd>
          <dt>CertificatePropertyList:</dt>
          <dd>
            <t>A structure associated with a certification path, containing additional information from the CA, for use by the subscriber when presenting the certification path.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="trust-anchor-ids">
      <name>Trust Anchor Identifiers</name>
      <t>This section defines trust anchor identifiers, which are short, unique identifiers for a trust anchor. To simplify allocation, these identifiers are defined with object identifiers (OIDs) <xref target="X680"/> and IANA-registered Private Enterprise Numbers (PENs) <xref target="RFC9371"/>:</t>
      <t>A trust anchor identifier is defined with a OID under the OID arc of some PEN. For compactness, they are represented as relative object identifiers (see Section 33 of <xref target="X680"/>), relative to the OID prefix <tt>1.3.6.1.4.1</tt>. For example, an organization with PEN 32473 might define a trust anchor identifier with the OID <tt>1.3.6.1.4.1.32473.1</tt>. As a relative object identifier, it would be the OID <tt>32473.1</tt>.</t>
      <t>Depending on the protocol, trust anchor identifiers may be represented in one of three ways:</t>
      <ul spacing="normal">
        <li>
          <t>For use in ASN.1-based protocols, a trust anchor identifier's ASN.1 representation is the relative object identifier described above. This may be encoded in DER <xref target="X690"/>, or some other ASN.1 encoding. The example identifier's DER encoding is the six-octet sequence <tt>{0x0d, 0x04, 0x81, 0xfd, 0x59, 0x01}</tt>.</t>
        </li>
        <li>
          <t>For use in binary protocols such as TLS, a trust anchor identifier's binary representation consists of the contents octets of the relative object identifier's DER encoding, as described in Section 8.20 of <xref target="X690"/>. Note this omits the tag and length portion of the encoding. The example identifier's binary representation is the four-octet sequence <tt>{0x81, 0xfd, 0x59, 0x01}</tt>.</t>
        </li>
        <li>
          <t>For use in ASCII-compatible text protocols, a trust anchor identifier's ASCII representation is the relative object identifier in dotted decimal notation. The example identifier's ASCII representation is <tt>32473.1</tt>.</t>
        </li>
      </ul>
      <t>Trust anchor identifiers SHOULD be allocated by the CA operator and common among relying parties that trust the CA. They MAY be allocated by another party, e.g. when bootstrapping an existing ecosystem, if all parties agree on the identifier. In particular, the protocol requires relying parties and subscribers to agree, and subscriber configuration typically comes from the CA.</t>
      <t>The length of a trust anchor identifier's binary representation MUST NOT exceed 255 bytes. It SHOULD be significantly shorter, for bandwidth efficiency.</t>
      <section anchor="certificate-properties">
        <name>Certificate Properties</name>
        <t>This document introduces an extensible CertificatePropertyList structure for CAs to communicate additional information to subscribers, such as associated trust anchor identifiers. A CertificatePropertyList is defined using the TLS presentation language (<xref section="3" sectionFormat="of" target="RFC8446"/>) below:</t>
        <artwork><![CDATA[
enum { trust_anchor_identifier(0), (2^16-1) } CertificatePropertyType;

struct {
    CertificatePropertyType type;
    opaque data<0..2^16-1>;
} CertificateProperty;

CertificateProperty CertificatePropertyList<0..2^16-1>;
]]></artwork>
        <t>The entries in a CertificatePropertyList MUST be sorted numerically by <tt>type</tt> and MUST NOT contain values with a duplicate <tt>type</tt>. Inputs that do not satisfy these invariants are syntax errors and MUST be rejected by parsers.</t>
        <t>This document defines a single property, <tt>trust_anchor_identifier</tt>. The <tt>data</tt> field of the property contains the binary representation of the trust anchor identifier of the certification path’s trust anchor, as described in <xref target="trust-anchor-ids"/>. Future documents may define other properties for use with other mechanisms.</t>
        <t>Subscribers MUST ignore unrecognized properties with CertificatePropertyType values. If ignoring a property would cause such subscribers to misinterpret the structure, the document defining the CertificatePropertyType SHOULD include a mechanism for CAs to negotiate the new property with the subscriber in certificate management protocols such as ACME <xref target="RFC8555"/>.</t>
      </section>
      <section anchor="relying-party-configuration">
        <name>Relying Party Configuration</name>
        <t>Relying parties are configured with one or more supported trust anchors. Each trust anchor which participates in this protocol must have an associated trust anchor identifier.</t>
        <t>When trust anchors are self-signed X.509 certificates, the X.509 trust anchor identifier extension MAY be used to carry this identifier. The trust anchor identifier extension has an <tt>extnID</tt> of <tt>id-trustAnchorIdentifier</tt> and an <tt>extnValue</tt> containing a DER-encoded TrustAnchorIdentifier structure, defined below. The TrustAnchorIdentifier is the trust anchor identifier's ASN.1 representation, described in <xref target="trust-anchor-ids"/>. This extension MUST be non-critical.</t>
        <artwork><![CDATA[
id-trustAnchorIdentifier OBJECT IDENTIFIER ::= { TBD }

TrustAnchorIdentifier ::= RELATIVE-OID
]]></artwork>
        <t>Relying parties MAY instead or additionally configure trust anchor identifiers via some application-specific out-of-band information.</t>
        <t>Relying parties MAY support trust anchors without associated trust anchor identifiers, but such trust anchors will not participate in this protocol. Those trust anchors MAY participate in other trust anchor negotiation protocols, such as the <tt>certificate_authorities</tt> extension.</t>
      </section>
      <section anchor="subscriber-configuration">
        <name>Subscriber Configuration</name>
        <t>Subscribers are configured with one or more candidate certification paths to present in TLS, in some preference order. This preference order is used when multiple candidate paths are usable for a connection. For example, the subscriber may prefer candidates that minimize message size or have more performant private keys.</t>
        <t>Each candidate path which participates in this protocol must be provisioned with the trust anchor identifier for its corresponding trust anchor in the CertificatePropertlyList.</t>
        <t>Subscribers MAY have candidate certification paths without associated trust anchor identifiers, but such paths will not participate in this protocol. Those paths MAY participate in other trust anchor negotiation protocols, such as the <tt>certificate_authorities</tt> extension.</t>
      </section>
    </section>
    <section anchor="tls-extension">
      <name>TLS Extension</name>
      <t>This section defines the <tt>trust_anchors</tt> extension, which is sent in the ClientHello, EncryptedExtensions, CertificateRequest, and Certificate messages in TLS 1.3 or later.</t>
      <section anchor="overview">
        <name>Overview</name>
        <t>The <tt>trust_anchors</tt> extension is defined using the structures below:</t>
        <artwork><![CDATA[
enum { trust_anchors(TBD), (2^16-1) } ExtensionType;

opaque TrustAnchorIdentifier<1..2^8-1>;

TrustAnchorIdentifier TrustAnchorIdentifierList<0..2^16-1>;
]]></artwork>
        <t>When the extension is sent in the ClientHello or CertificateRequest messages, the <tt>extension_data</tt> is a TrustAnchorIdentifierList and indicates that the sender supports the specified trust anchors. The list is unordered, and MAY be empty. Each TrustAnchorIdentifier uses the binary representation, as described in <xref target="trust-anchor-ids"/>.</t>
        <t>When the extension is sent in EncryptedExtensions, the <tt>extension_data</tt> is a TrustAnchorIdentifierList containing the list of trust anchors that server has available, in the server’s preference order, and MUST NOT be empty.</t>
        <t>When the extension is sent in Certificate, the <tt>extension_data</tt> MUST be empty and indicates that the sender sent the certificate because the certificate matched a trust anchor identifier sent by the peer. When used in this form, the extension may only be sent in the first CertificateEntry. It MUST NOT be sent in subsequent ones.</t>
      </section>
      <section anchor="certificate-selection">
        <name>Certificate Selection</name>
        <t>A <tt>trust_anchors</tt> extension in the ClientHello or CertificateRequest is processed similarly to the <tt>certificate_authorities</tt> extension. The relying party indicates some set of supported trust anchors in the ClientHello or CertificateRequest <tt>trust_anchors</tt> extension. The subscriber then selects a certificate from its candidate certification paths (see <xref target="subscriber-configuration"/>), as described in <xref section="4.4.2.2" sectionFormat="of" target="RFC8446"/> and <xref section="4.4.2.3" sectionFormat="of" target="RFC8446"/>. This process is extended as follows:</t>
        <t>If the ClientHello or CertificateRequest contains a <tt>trust_anchors</tt> extension, the subscriber SHOULD send a certification path whose trust anchor identifier appears in the relying party’s <tt>trust_anchors</tt> extension.</t>
        <t>If the ClientHello or CertificateRequest contains both <tt>trust_anchors</tt> and <tt>certificate_authorities</tt>, certification paths that satisfy either extension’s criteria may be used. This additionally applies to future extensions which play a similar role.</t>
        <t>If no certification paths satisfy either extension, the subscriber MAY return a <tt>handshake_failure</tt> alert, or choose among fallback certification paths without considering <tt>trust_anchors</tt> or <tt>certification_authorities</tt>. See <xref target="retry-mechanism"/> for additional guidance on selecting a fallback when the ClientHello contains <tt>trust_anchors</tt>.</t>
        <t>Sending a fallback allows the subscriber to retain support for relying parties that do not implement any form of trust anchor negotiation. In this case, the subscriber must find a sufficiently ubiquitous trust anchor, if one exists. However, only those relying parties need to be considered in this ubiquity determination. Updated relying parties may continue to evolve without restricting fallback certificate selection.</t>
        <t>If the subscriber sends a certification path that matches the relying party’s <tt>trust_anchors</tt> extension, as described in <xref target="certificate-selection"/>, the subscriber MUST send an empty <tt>trust_anchors</tt> extension in the first CertificateEntry of the Certificate message. In this case, the <tt>certificate_list</tt> flexibility described in <xref section="4.4.2" sectionFormat="of" target="RFC8446"/> no longer applies. The <tt>certificate_list</tt> MUST contain a complete certification path, issued by the matching trust anchor, correctly ordered and with no extraneous certificates. That is, each certificate MUST certify the one immediately preceding it, and the trust anchor MUST certify the final certificate. The subscriber MUST NOT send the <tt>trust_anchors</tt> extension in the Certificate message in other situations.</t>
        <t>If a relying party receives this extension in the Certificate message, it MAY choose to disable path building <xref target="RFC4158"/> and validate the peer's certificate list as pre-built certification path. Doing so avoids the unpredictable behavior of path-building, and helps ensure CAs and subscribers do not inadvertently provision incorrect paths.</t>
      </section>
      <section anchor="retry-mechanism">
        <name>Retry Mechanism</name>
        <t>When the relying party is a client, it may choose not to send its full trust anchor identifier list due to fingerprinting risks (see <xref target="privacy-considerations"/>), or because the list is too large. The client MAY send a subset of supported trust anchors, or an empty list. This subset may be determined by, possibly outdated, prior knowledge about the server, such as <xref target="dns-service-parameter"/> or past connections.</t>
        <t>To accommodate this, when receiving a ClientHello with <tt>trust_anchors</tt>, the server collects all candidate certification paths which:</t>
        <ul spacing="normal">
          <li>
            <t>Have a trust anchor identifier, and</t>
          </li>
          <li>
            <t>Satisfy the conditions in <xref section="4.4.2.2" sectionFormat="of" target="RFC8446"/>, with the exception of <tt>certification_authorities</tt>, and any future extensions that play a similar role</t>
          </li>
        </ul>
        <t>If this collection is non-empty, the server sends a <tt>trust_anchors</tt> extension in EncryptedExtensions, containing the corresponding trust anchor identifiers in preference order.</t>
        <t>When a client sends a subset or empty list in <tt>trust_anchors</tt>, it SHOULD implement the following retry mechanism:</t>
        <t>If the client receives either a connection error or an untrusted certificate, the client looks in server’s EncryptedExtensions for a trust anchor identifier that it trusts. If there are multiple, it selects an option based on the server’s preference order and its local preferences. It then makes a new connection to the same endpoint, sending only the selected trust anchor identifier in the ClientHello <tt>trust_anchors</tt> extension. If the EncryptedExtensions had no <tt>trust_anchor</tt> extension, or no match was found, the client returns the error to the application.</t>
        <t>Clients SHOULD retry at most once per connection attempt.</t>
        <t>[[TODO: Retrying in a new connection is expensive and cannot be done from within the TLS stack in most implementations. Consider handshake modifications to instead retry within the same connection. https://github.com/davidben/tls-trust-expressions/issues/53 ]]</t>
        <t>This mechanism allows the connection to recover from a certificate selection failure, e.g. due to the client not revealing its full preference list, at additional latency cost. <xref target="dns-service-parameter"/> describes an optimization which can avoid this cost.</t>
        <t>This mechanism also allows servers to safely send fallback certificates that may not be as ubiquitously acceptable. Without some form of trust anchor negotiation, servers are limited to selecting certification paths that are ubiquitously trusted in all supported clients. This often means sending extra cross-certificates to target the lowest common denominator at a bandwidth cost. If the ClientHello contains <tt>trust_anchors</tt>, the server MAY opportunistically send a less ubiquitous, more bandwidth-efficient path based on local heuristics, with the expectation that the client will retry when the heuristics fail.</t>
      </section>
    </section>
    <section anchor="dns-service-parameter">
      <name>DNS Service Parameter</name>
      <t>This section defines the <tt>tls-trust-anchors</tt> SvcParamKey <xref target="RFC9460"/>. TLS servers can use this to advertise their available trust anchors in DNS, and aid the client in formulating its <tt>trust_anchors</tt> extension (see <xref target="retry-mechanism"/>). This allows TLS deployments to support clients with many trust anchors without incurring the overhead of a reconnect.</t>
      <section anchor="syntax">
        <name>Syntax</name>
        <t>The <tt>tls-trust-anchors</tt> parameter contains an ordered list of one or more trust anchor identifiers, in server preference order.</t>
        <t>The presentation <tt>value</tt> of the SvcParamValue is a non-empty comma-separated list (<xref section="A.1" sectionFormat="of" target="RFC9460"/>). Each element of the list is a trust anchor identifier in the ASCII representation defined in <xref target="trust-anchor-ids"/>. Any other <tt>value</tt> is a syntax error. To enable simpler parsing, this SvcParam MUST NOT contain escape sequences.</t>
        <t>The wire format of the SvcParamValue is determined by prefixing each trust anchor identifier with its length as a single octet, then concatenating each of these length-value pairs to form the SvcParamValue. These pairs MUST exactly fill the SvcParamValue; otherwise, the SvcParamValue is malformed.</t>
        <t>For example, if a TLS server has three available certification paths issued by <tt>32473.1</tt>, <tt>32473.2.1</tt>, and <tt>32473.2.2</tt>, respectively, the DNS record in presentation syntax may be:</t>
        <sourcecode type="dns"><![CDATA[
example.net.  7200  IN SVCB 3 server.example.net. (
    tls-trust-anchors=32473.1,32473.2.1,32473.2.2 )
]]></sourcecode>
        <t>The wire format of the SvcParamValue would be the 17 octets below. In the example, the octets comprising each trust anchor identifier are placed on separate lines for clarity</t>
        <artwork><![CDATA[
0x04, 0x81, 0xfd, 0x59, 0x01,
0x05, 0x81, 0xfd, 0x59, 0x02, 0x01,
0x05, 0x81, 0xfd, 0x59, 0x02, 0x02,
]]></artwork>
      </section>
      <section anchor="configuring-services">
        <name>Configuring Services</name>
        <t>Services SHOULD include the trust anchor identifier for each of their available certification paths, in preference order, in the <tt>tls-trust-anchors</tt> of their HTTPS or SVCB endpoints. As TLS configuration is updated, services SHOULD update the DNS record to match. The mechanism for this is out of scope for this document, but services are RECOMMENDED to automate this process.</t>
        <t>Services MAY have certification paths without trust anchor identifiers, but those paths will not participate in this mechanism.</t>
      </section>
      <section anchor="client-behavior">
        <name>Client Behavior</name>
        <t>When connecting to a service endpoint whose HTTPS or SVCB record contains the <tt>tls-trust-anchors</tt> parameter, the client first computes the intersection between its configured trust anchors and the server’s provided list. If this intersection is non-empty, the client MAY use it to determine the <tt>trust_anchors</tt> extension in the ClientHello (see <xref target="retry-mechanism"/>).</t>
        <t>If doing so, the client MAY send a subset of this intersection to meet size constraints, but SHOULD offer multiple options. This reduces the chance of a reconnection if, for example, the first option in the intersection uses a signature algorithm that the client doesn’t support, or if the TLS server and DNS configuration are out of sync.</t>
        <t>Although this service parameter is intended to reduce trust anchor mismatches, mismatches may still occur in some scenarios. Clients and servers MUST continue to implement the provisions described in <xref target="retry-mechanism"/>, even when using this service parameter.</t>
      </section>
    </section>
    <section anchor="acme-extension">
      <name>ACME Extension</name>
      <t>This section extends ACME <xref target="RFC8555"/> to be able to issue certificate paths, each with an associated CertificatePropertyList by defining a new media type in <xref target="media-type"/>.</t>
      <t>When an ACME server processes an order object, it MAY issue multiple certification paths, each with an associated Trust Anchor Identifier. The ACME server encodes each certification path using the application/pem-certificate-chain-with-properties format, defined in <xref target="media-type"/>).  Note this format is required to form a complete certification path. The CA MUST return a result that may be verified by relying parties without path building <xref target="RFC4158"/>.</t>
      <t>The ACME server provides additional results to the client with the link relation header fields described in <xref section="7.4.2" sectionFormat="of" target="RFC8555"/>. When fetching certificates, the ACME client includes application/pem-certificate-chain-with-properties in its Accept header to indicate it supports the new format. Unlike the original mechanism described in <xref target="RFC8555"/>, these certification paths do not require heuristics to be used. Instead, the server uses the associated Trust Anchor Identifiers to select a path when requested.</t>
      <t>When the ACME client wishes to renew any of the certification paths issued in this order, it repeats this process to renew each path concurrently. Thus this extension is suitable when the CA is willing to issue and renew all paths together. It may not be appropriate if the paths have significantly different processing times or lifetimes. Future enhancements to ACME may be defined to address these cases, e.g. by allowing the ACME client to make independent orders.</t>
    </section>
    <section anchor="media-type">
      <name>Media Type</name>
      <t>A certification path with its associated CertificationPropertyList may be represented in a PEM <xref target="RFC7468"/> structure in a file of type "application/pem-certificate-chain-with-properties". Files of this type MUST use the strict encoding and MUST NOT include explanatory text.  The ABNF <xref target="RFC5234"/> for this format is
as follows, where "stricttextualmsg" and "eol" are as defined in
<xref section="3" sectionFormat="of" target="RFC7468"/>:</t>
      <artwork><![CDATA[
certchainwithproperties = stricttextualmsg eol stricttextualmsg
                          *(eol stricttextualmsg)
]]></artwork>
      <t>The first element MUST be the encoded CertificatePropertyList.
The second element MUST be an end-entity certificate.  Each following
certificate MUST directly certify the one preceding it. The certificate representing the trust anchor MUST be omitted from the path.</t>
      <t>CertificatePropertyLists are encoded using the "CERTIFICATE PROPERTIES" label. The encoded data is a serialized CertificatePropertyList, defined in <xref target="certificate-properties"/>.</t>
      <t>Certificates are encoded as in <xref section="5.1" sectionFormat="of" target="RFC7468"/>, except DER <xref target="X690"/> MUST be used.</t>
      <t>The following is an example file with a certification path containing an end-entity certificate and an intermediate certificate.</t>
      <artwork><![CDATA[
-----BEGIN CERTIFICATE PROPERTIES-----
TODO fill in an example
-----END CERTIFICATE PROPERTIES-----
-----BEGIN CERTIFICATE-----
TODO fill in an example
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
TODO fill in an example
-----END CERTIFICATE-----
]]></artwork>
      <t>The IANA registration for this media type is described in <xref target="media-type-updates"/>.</t>
    </section>
    <section anchor="use-cases">
      <name>Use Cases</name>
      <section anchor="key-rotation">
        <name>Key Rotation</name>
        <t>In most X.509 deployments, a compromise of <em>any</em> root CA's private key compromises the entire PKI. Yet key rotation in PKIs is rare. In 2023, the oldest root in <xref target="CHROME-ROOTS"/> and <xref target="MOZILLA-ROOTS"/> was 25 years old, dating to 1998. Key rotation is challenging in a single-certificate deployment model. As long as any older relying party requires the old root, subscribers cannot switch to the new root, which in turn means relying parties cannot distrust the old root, leaving them vulnerable.</t>
        <t>A multi-certificate deployment model avoids these transition problems. Key rotation may proceed as follows:</t>
        <ol spacing="normal" type="1"><li>
            <t>The CA operator generates a new root CA with a separate key, but continues operating the old root CA.</t>
          </li>
          <li>
            <t>Root programs begin trusting the new root CA alongside the old one, as a transition state. Both root CAs are configured to participate in trust anchor negotiation.</t>
          </li>
          <li>
            <t>When subscribers request certificates, the CA operator issues certificates from both roots and provisions the subscriber with both certificates.</t>
          </li>
          <li>
            <t>Trust anchor negotiation selects the old root for relying parties that only trust the old root, and the new root for relying parties that only trust the new root. In transition, relying parties that trust both may be served either, but prioritizing the new root helps monitor the transition.</t>
          </li>
          <li>
            <t>Once subscribers have been provisioned with new certificates, root programs can safely distrust the old root in new relying parties. The CA operator may continue to operate the old root CA for as long as it wishes to serve subscribers that, in turn, wish to serve older relying parties.</t>
          </li>
        </ol>
        <t>This process requires no configuration changes to the subscriber, given an automated, multi-certificate-aware certificate issuance process. The subscriber does not need to know why it received two certificates, only how to select between them for each relying party.</t>
      </section>
      <section anchor="adding-cas">
        <name>Adding CAs</name>
        <t>In the single-certificate model, subscribers cannot use TLS certificates issued from a new root CA until all supported relying parties have been updated to trust the new root CA. This can take years or more. Some relying parties, such as IoT devices, may never receive trust store updates at all.</t>
        <t>As a result, it is very difficult for subscribers that serve a wide variety of relying parties to use a newly-trusted root CA. When trust stores diverge too far, subscribers often must partition their services into multiple TLS endpoints (i.e. different DNS names) and direct different relying parties to different endpoints. Subscribers sometimes resort to TLS fingerprinting, to detect particular relying parties. But, as this repurposes other TLS fields for unintended purposes, this is unreliable and usually requires writing custom service-specific logic.</t>
        <t>In a multi-certificate deployment model, subscribers can begin serving certificates from new root CAs without interrupting relying parties that depend on existing ones.</t>
        <t>In some contexts, it may be possible to use other fields to select the new CA. For example, post-quantum-capable clients may be detected with the <tt>signature_algorithms</tt> and <tt>signature_algorithms_cert</tt> extensions. However, this assumes all post-quantum CAs are added at the same time. A multi-certificate model avoids this problem and allows for a more gradual deployment of post-quantum CAs.</t>
      </section>
      <section anchor="removing-cas">
        <name>Removing CAs</name>
        <t>Subscribers in a single-certificate model are limited to CAs in the intersection of their supported relying parties. As newer relying parties remove untrusted CAs over time,the intersection with older relying parties shrinks. Moreover, the subscriber may not even know which CAs are in the intersection. Often, the only option is to try the new certificate and monitor errors. For subscribers that serve many diverse relying parties, this is a disruptive and risky process.</t>
        <t>The multi-certificate model removes this constraint. If a subscriber's CA is distrusted, it can continue to use that CA, in addition to a newer one. This removes the risk that some older relying party required that CA and was incompatible with the new one. The mechanisms in this document will select an appropriate certificate for each relying party.</t>
      </section>
      <section anchor="other-root-transitions">
        <name>Other Root Transitions</name>
        <t>The mechanisms in this document can aid PKI transitions beyond key rotation. For example, a CA operator may generate a postquantum root CA and use the mechanism in <xref target="acme-extension"/> to issue from the classical and postquantum roots concurrently. The subscriber will then, transparently and with no configuration change, serve both. As in <xref target="key-rotation"/>, newer relying parties can then remove the classical roots, while older relying parties continue to function.</t>
        <t>This same procedure may also be used to transition between newer, more size-efficient signature algorithms, as they are developed.</t>
        <t>[[TODO: There's one missing piece, which is that some servers may attempt to parse the signature algorithms out of the certificate chain. See https://github.com/davidben/tls-trust-expressions/issues/9 ]]</t>
      </section>
      <section anchor="intermediate-elision">
        <name>Intermediate Elision</name>
        <t>Today, root CAs typically issue shorter-lived intermediate certificates which, in turn, issue end-entity certificates. The long-lived root key is less exposed to attack, while the short-lived intermediate key can be more easily replaced without changes to relying parties.</t>
        <t>This operational improvement comes at a bandwidth cost: the TLS handshake includes an extra certificate, which includes a public key, signature, and X.509 metadata. An average X.509 name in the Chrome Root Store <xref target="CHROME-ROOTS"/> or Mozilla CA Certificate Program <xref target="MOZILLA-ROOTS"/> is around 100 bytes alone. Post-quantum signature algorithms will dramatically shift this tradeoff. Dilithium3 <xref target="Dilithium"/>, for example, has a total public key and signature size of 5,245 bytes.</t>
        <t><xref target="I-D.ietf-tls-cert-abridge"/> proposes to predistribute known intermediate certificates to relying parties, as a compression scheme. A multi-certificate deployment model provides another way to achieve this effect. To relying parties, a predistributed intermediate certificate is functionally equivalent to a root certificate. PKIs use intermediate certificates because changing root certificates requires updating relying parties, but predistributed intermediates already presume updated relying parties.</t>
        <t>A CA operator could provide subscribers with two certification paths: a longer path ending at a long-lived trust anchor and shorter path the other ending at a short-lived, revocable root. Relying parties would be configured to trust both the long-lived root and the most recent short-lived root. A server that prioritizes the shorter path would then send the shorter path to up-to-date relying parties and the longer path to older relying parties.</t>
        <t>This achieves the same effect with a more general-purpose multi-certificate mechanism. It is also more flexible, as the two paths need not be related. For example, root CA public keys are not distributed in each TLS connection, so a post-quantum signature algorithm that optimizes for signature size may be preferable. In this model, both the long-lived and short-lived roots may use such an algorithm. In a compression-based model, the same intermediate must optimize both its compressed and uncompressed size, so such an algorithm may not be suitable.</t>
      </section>
      <section anchor="conflicting-relying-party-requirements">
        <name>Conflicting Relying Party Requirements</name>
        <t>A subscriber may need to support relying parties with different requirements. For example, in contexts where online revocation checks are expensive, unreliable, or privacy-sensitive, user security is best served by short-lived certificates. In other contexts, long-lived certificates may be more appropriate for, e.g., systems that are offline for long periods of time or have unreliable clocks.</t>
        <t>A single-certificate deployment model forces subscribers to find a single certificate that meets all requirements. User security then suffers in all contexts, as the PKI may not quite meet anyone's needs. In a multi-certificate deployment model, different contexts may use different trust anchors. A subscriber that supports multiple contexts would provision certificates for each, with certificate negotiation logic directing the right one to each relying party.</t>
      </section>
      <section anchor="backup-certificates">
        <name>Backup Certificates</name>
        <t>A subscriber may obtain certificate paths from multiple CAs for redundancy in the face of future CA compromises. If one CA is compromised and removed from newer relying parties, the TLS server software will transparently serve the other one.</t>
        <t>To support this, TLS serving software SHOULD permit users to configure multiple ACME endpoints and select from the union of the certificate paths returned by each ACME server.</t>
      </section>
      <section anchor="public-key-pinning">
        <name>Public Key Pinning</name>
        <t>To reduce the risk of attacks from misissued certificates, relying parties sometimes employ public key pinning <xref target="RFC7469"/>. This enforces that one of some set of public keys appear in the final certificate path. This effectively reduces a relying party's trust anchor list to a subset of the original set.</t>
        <t>As other relying parties in the PKI evolve, the pinning relying party limits the subscriber to satisfy both the pinning constraint and newer constraints in the PKI. This can lead to conflicts if, for example, the pinned CA is distrusted by a newer relying party. The subscriber is then forced to either break the pinning relying party, or break the newer ones.</t>
        <t>This protocol reduces this conflict if the pinning relying party uses its effective, reduced trust anchor list. The subscriber can then, as needed, use a certificate from the pinned CA with the pinning relying party, and another CA with newer relying parties.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <section anchor="relying-parties">
        <name>Relying Parties</name>
        <t>The negotiation mechanism described in this document is analogous to the <tt>certificate_authorities</tt> extension (<xref section="4.2.4" sectionFormat="of" target="RFC8446"/>), but more size-efficient. Like that extension, it presumes the requested trust anchor list is not sensitive.</t>
        <t>The privacy implications of this are determined by how a relying party uses this extension. Trust anchors supported by a relying party may be divided into three categories:</t>
        <ol spacing="normal" type="1"><li>
            <t>Trust anchors whose identifiers the relying party sends <em>unconditionally</em>, i.e. not in response to the server’s HTTPS/SVCB record, trust anchor list in EncryptedExtensions, etc.</t>
          </li>
          <li>
            <t>Trust anchors whose identifiers the relying party sends <em>conditionally</em>, i.e. only if the server offers them. For example, the relying party may indicate support for a trust anchor if its identifier is listed in the server’s HTTPS/SVCB record or trust anchor list in EncryptedExtensions.</t>
          </li>
          <li>
            <t>Trust anchors whose identifiers the relying party never sends, but still trusts. These are trust anchors which do not participate in this mechanism.</t>
          </li>
        </ol>
        <t>Each of these categories carries a different fingerprinting exposure:</t>
        <t>Trust anchor identifiers sent unconditionally can be observed passively. Thus, relying parties SHOULD NOT unconditionally advertise trust anchor lists which are unique to an individual user. Rather, such lists SHOULD be either empty or computed only from the trust anchors common to the relying party's anonymity set (<xref section="3.3" sectionFormat="of" target="RFC6973"/>).</t>
        <t>Trust anchor identifiers sent in response to the subscriber can only be observed actively. That is, the subscriber could vary its list and observe how the client responds, in order to probe for the client’s trust anchor list.</t>
        <t>This is similar to the baseline exposure for trust anchors that do not participate in negotiation. A subscriber in possession of a certificate can send it and determine if the relying party accepts or rejects it. Unlike this baseline exposure, trust anchors that participate in this protocol can be probed by only knowing the trust anchor identifier.</t>
        <t>Relying parties SHOULD determine which trust anchors participate in this mechanism, and whether to advertise them unconditionally or conditionally, based on their privacy goals. PKIs that reliably use the DNS service parameter (<xref target="dns-service-parameter"/>) can rely on conditional advertisement for stronger privacy properties without a round-trip penalty.</t>
        <t>Additionally, a relying party that computes the <tt>trust_anchors</tt> extension based on prior state may allow observers to correlate across connections. Relying parties SHOULD NOT maintain such state across connections that are intended to be uncorrelated. As above, implementing the DNS service parameter can avoid a round-trip penalty without such state.</t>
      </section>
      <section anchor="subscribers">
        <name>Subscribers</name>
        <t>If the subscriber is a server, the mechanisms in <xref target="dns-service-parameter"/> and <xref target="retry-mechanism"/> enumerate the trust anchors for the server’s available certification paths. This mechanism assumes they are not sensitive. Servers SHOULD NOT use this mechanism to negotiate certification paths with sensitive trust anchors.</t>
        <t>In servers that host multiple services, this protocol only enumerates certification paths for the requested service. If, for example, a server uses the <tt>server_name</tt> extension to select services, the addition to EncryptedExtensions in <xref target="retry-mechanism"/> is expected to be filtered by <tt>server_name</tt>. Likewise, the DNS parameter in <xref target="dns-service-parameter"/> only contains information for the corresponding service. In both cases, co-located services are not revealed.</t>
        <t>The above does not apply if the subscriber is a client. This protocol does not enumerate the available certification paths for a client.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="relying-party-policies">
        <name>Relying Party Policies</name>
        <t>PKI-based TLS authentication depends on the relying party's certificate policies. If the relying party trusts an untrustworthy CA, that CA can intercept TLS connections made by that relying party by issuing certificates associating the target name with the wrong TLS key.</t>
        <t>This attack vector is available with or without trust anchor negotiation. The negotiation mechanism described in this document allows certificate selection to reflect a relying party's certificate policies. It does not determine the certificate policies themselves. Relying parties remain responsible for trusting only trustworthy CAs, and untrustworthy CAs remain a security risk when trusted.</t>
      </section>
      <section anchor="agility">
        <name>Agility</name>
        <t>As with other TLS parameters, negotiation reduces a conflict between availability and security, which allows PKIs to better mitigate security risks to users. When relying parties in an existing TLS ecosystem improve their certificate policies, trust anchor negotiation helps subscribers navigate differences between those relying parties and existing relying parties. Each set of requirements may be satisfied without compatibility risk to the other. <xref target="use-cases"/> discusses such scenarios in more detail.</t>
        <t>Negotiation also reduces pressures on relying parties to sacrifice user security for compatibility. Suppose a subscriber currently uses some CA, but a relying party deems trusting that CA to pose an unacceptable security risk to its users. In a single-certificate deployment, those subscribers may be unwilling to adopt a CA trusted by the relying party, as switching CAs risks compatibility problems elsewhere. The relying party then faces compatibility pressure and adds this CA, sacrificing user security. However, in a multi-certificate deployment, the subscriber can use its existing CA <em>in addition to</em> another CA trusted by relying party B. This allows the ecosystem to improve interoperability, while still meeting relying party B's user-security goals.</t>
      </section>
      <section anchor="incorrect-selection-metadata">
        <name>Incorrect Selection Metadata</name>
        <t>If the subscriber has incorrect information about trust anchor identifiers, it may send an untrusted certification path. This will not result in that path being trusted, but does present the possibility of a degradation of service. However, this information is provisioned by the CA, which is already expected to provide accurate information.</t>
      </section>
      <section anchor="serving-multiple-certificates">
        <name>Serving Multiple Certificates</name>
        <t>Negotiation reduces compatibility pressures against subscribers choosing to serve certificates from a less common CA, as the subscriber can serve it in addition to other CAs that, together, satisfy all supported relying parties. The CA may even have been distrusted by some relying parties, e.g. if it is needed for older, unupdated relying parties that are still important for the subscriber to support. As discussed in <xref target="use-cases"/> and <xref target="agility"/>, this deployment model avoids compatibility risks during PKI transitions which mitigate security risks to users.</t>
        <t>Serving such certificates does not enable the CA to decrypt or intercept the connection. If a certificate asserts the correct information about the subscriber, notably the correct public key, the subscriber can safely present it, whether or not the issuing CA is otherwise trustworthy. Issuing a certificate for the subscriber's public key does not grant the CA access to the corresponding private key. Conversely, if the attacker already has access to the subscriber's private key, they do not need to be in control of a CA to intercept a connection.</t>
        <t>While the choice of CA is a security-critical decision in a PKI, it is the relying party's choice of trusted CAs that determines interceptibility, not the subscriber's choice of certificates to present. If the relying party trusts an attacker-controlled CA, the attacker can intercept the connection independent of whether the subscriber uses that CA or another CA. In both cases, the attacker would need to present a different certificate, with a different public key. Conversely, if the relying party does not trust the attacker's CA, the subscriber's correct but untrusted attacker-issued certificate will not enable the attacker to substitute in a different public key. The ability to intercept a connection via the PKI is determined solely by relying party trust decisions.</t>
        <t>Relying parties thus SHOULD NOT interpret the subscriber's choice of CA list as an endorsement of the CA. The subscriber's role is to present a certificate which will convince the relying party of the correct subscriber information. Subscribers do not vet CAs for trustworthiness, only the correctness of their specific, configured certificates and the CA's ability to meet the subscriber's requirements, such as availability, compatibility, and performance. It is the responsibility of the relying party, and its corresponding root program, to determine the set of trusted CAs. Trusting a CA means trusting <em>all</em> certificates issued by that CA, so it is not enough to observe subscribers serving correct certificates. An untrustworthy CA may sign one correct certificate, but also sign incorrect certificates, possibly in the future, that can attack the relying party. Root program management is a complex, security-critical process, the full considerations of which are outside the scope of this document.</t>
      </section>
      <section anchor="targeting-tls-interception">
        <name>Targeting TLS Interception</name>
        <t>Trust Anchor Identifiers, like <tt>certificate_authorities</tt>, enables a TLS server to differentiate between clients that do and do not trust some CA. If this CA mis-issued a certificate, this could be used by a network attacker to only enable TLS interception with clients that trust the CA. The network attacker may wish to do this reduce the odds of detection. Clients which do not trust the CA will not accept the mis-issued certificate, which may be user-visible.</t>
        <t>However, the attacker could also use any existing mechanism for differentiating clients. In TLS parameter negotiation, the client offers all its available TLS features, including cipher suites and other extensions, in the TLS ClientHello. This means any variation in any client TLS policies, related or unrelated to trust anchors, may be used as an implementation fingerprint to differentiate clients. While fingerprinting's heuristic nature makes it not viable for a broad, diverse set of TLS servers, it is viable for a network attacker's single interception service. Trust Anchor Identifiers only impacts detection where this differentiation was not already possible.</t>
        <t>If the attacker targets any clients that enforce Certificate Transparency <xref target="RFC6962"/>, the mis-issued certificates will need to be publicly logged. In this case, detection is more robust, and client differentiation, with or without Trust Anchor Identifiers, has no significant impact.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="tls-extensiontype-updates">
        <name>TLS ExtensionType Updates</name>
        <t>IANA is requested to create the following entry in the TLS ExtensionType Values registry, defined by <xref target="RFC8446"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Extension Name</th>
              <th align="left">TLS 1.3</th>
              <th align="left">DTLS-Only</th>
              <th align="left">Recommended</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD</td>
              <td align="left">trust_anchors</td>
              <td align="left">CH, EE, CR, CT</td>
              <td align="left">N</td>
              <td align="left">Y</td>
              <td align="left">[this-RFC]</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="media-type-updates">
        <name>Media Type Updates</name>
        <t>IANA is requested to create the following entry in the "Media Types" registry, defined in <xref target="RFC6838"/>:</t>
        <dl>
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>pem-certificate-chain-with-properties</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>None</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>None</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>7bit</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>Carries a cryptographic certificate and its associated certificate chain and additional properties. This media type carries no active content.</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>None</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>[this-RFC, <xref target="media-type"/>]</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>ACME clients and servers, HTTP servers, other applications that need to be configured with a certificate chain</t>
          </dd>
          <dt>Additional information:</dt>
          <dd>
            <dl spacing="compact">
              <dt>Deprecated alias names for this type:</dt>
              <dd>n/a</dd>
              <dt>Magic number(s):</dt>
              <dd>n/a</dd>
              <dt>File extension(s):</dt>
              <dd>.pem</dd>
              <dt>Macintosh file type code(s):</dt>
              <dd>n/a</dd>
            </dl>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>See Authors' Addresses section.</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>n/a</t>
          </dd>
          <dt>Author:</dt>
          <dd>
            <t>See Authors' Addresses section.</t>
          </dd>
          <dt>Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
        </dl>
      </section>
      <section anchor="certificatepropertytype-registry">
        <name>CertificatePropertyType Registry</name>
        <t>[[TODO: Establish a CertificatePropertyType registry.]]</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="X680">
          <front>
            <title>Information technology - Abstract Syntax Notation One (ASN.1): Specification of basic notation</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021"/>
          </front>
          <seriesInfo name="ISO/IEC" value="8824-1:2021"/>
        </reference>
        <reference anchor="X690">
          <front>
            <title>Information technology - ASN.1 encoding Rules: Specification of Basic Encoding Rules (BER), Canonical Encoding Rules (CER) and Distinguished Encoding Rules (DER)</title>
            <author>
              <organization>ITU-T</organization>
            </author>
            <date year="2021"/>
          </front>
          <seriesInfo name="ISO/IEC" value="8825-1:2021"/>
        </reference>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC5280">
          <front>
            <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
            <author fullname="D. Cooper" initials="D." surname="Cooper"/>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="S. Boeyen" initials="S." surname="Boeyen"/>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <author fullname="W. Polk" initials="W." surname="Polk"/>
            <date month="May" year="2008"/>
            <abstract>
              <t>This memo profiles the X.509 v3 certificate and X.509 v2 certificate revocation list (CRL) for use in the Internet. An overview of this approach and model is provided as an introduction. The X.509 v3 certificate format is described in detail, with additional information regarding the format and semantics of Internet name forms. Standard certificate extensions are described and two Internet-specific extensions are defined. A set of required certificate extensions is specified. The X.509 v2 CRL format is described in detail along with standard and Internet-specific extensions. An algorithm for X.509 certification path validation is described. An ASN.1 module and examples are provided in the appendices. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5280"/>
          <seriesInfo name="DOI" value="10.17487/RFC5280"/>
        </reference>
        <reference anchor="RFC9460">
          <front>
            <title>Service Binding and Parameter Specification via the DNS (SVCB and HTTPS Resource Records)</title>
            <author fullname="B. Schwartz" initials="B." surname="Schwartz"/>
            <author fullname="M. Bishop" initials="M." surname="Bishop"/>
            <author fullname="E. Nygren" initials="E." surname="Nygren"/>
            <date month="November" year="2023"/>
            <abstract>
              <t>This document specifies the "SVCB" ("Service Binding") and "HTTPS" DNS resource record (RR) types to facilitate the lookup of information needed to make connections to network services, such as for HTTP origins. SVCB records allow a service to be provided from multiple alternative endpoints, each with associated parameters (such as transport protocol configuration), and are extensible to support future uses (such as keys for encrypting the TLS ClientHello). They also enable aliasing of apex domains, which is not possible with CNAME. The HTTPS RR is a variation of SVCB for use with HTTP (see RFC 9110, "HTTP Semantics"). By providing more information to the client before it attempts to establish a connection, these records offer potential benefits to both performance and privacy.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9460"/>
          <seriesInfo name="DOI" value="10.17487/RFC9460"/>
        </reference>
        <reference anchor="RFC8555">
          <front>
            <title>Automatic Certificate Management Environment (ACME)</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="J. Hoffman-Andrews" initials="J." surname="Hoffman-Andrews"/>
            <author fullname="D. McCarney" initials="D." surname="McCarney"/>
            <author fullname="J. Kasten" initials="J." surname="Kasten"/>
            <date month="March" year="2019"/>
            <abstract>
              <t>Public Key Infrastructure using X.509 (PKIX) certificates are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certification authorities (CAs) in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. As of this writing, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a CA and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8555"/>
          <seriesInfo name="DOI" value="10.17487/RFC8555"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC9371">
          <front>
            <title>Registration Procedures for Private Enterprise Numbers (PENs)</title>
            <author fullname="A. Baber" initials="A." surname="Baber"/>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <date month="March" year="2023"/>
            <abstract>
              <t>This document describes how Private Enterprise Numbers (PENs) are registered by IANA. It shows how to request a new PEN and how to modify a current PEN. It also gives a brief overview of PEN uses.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9371"/>
          <seriesInfo name="DOI" value="10.17487/RFC9371"/>
        </reference>
        <reference anchor="RFC4158">
          <front>
            <title>Internet X.509 Public Key Infrastructure: Certification Path Building</title>
            <author fullname="M. Cooper" initials="M." surname="Cooper"/>
            <author fullname="Y. Dzambasow" initials="Y." surname="Dzambasow"/>
            <author fullname="P. Hesse" initials="P." surname="Hesse"/>
            <author fullname="S. Joseph" initials="S." surname="Joseph"/>
            <author fullname="R. Nicholas" initials="R." surname="Nicholas"/>
            <date month="September" year="2005"/>
            <abstract>
              <t>This document provides guidance and recommendations to developers building X.509 public-key certification paths within their applications. By following the guidance and recommendations defined in this document, an application developer is more likely to develop a robust X.509 certificate-enabled application that can build valid certification paths across a wide range of PKI environments. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4158"/>
          <seriesInfo name="DOI" value="10.17487/RFC4158"/>
        </reference>
        <reference anchor="RFC7468">
          <front>
            <title>Textual Encodings of PKIX, PKCS, and CMS Structures</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="S. Leonard" initials="S." surname="Leonard"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>This document describes and discusses the textual encodings of the Public-Key Infrastructure X.509 (PKIX), Public-Key Cryptography Standards (PKCS), and Cryptographic Message Syntax (CMS). The textual encodings are well-known, are implemented by several applications and libraries, and are widely deployed. This document articulates the de facto rules by which existing implementations operate and defines them so that future implementations can interoperate.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7468"/>
          <seriesInfo name="DOI" value="10.17487/RFC7468"/>
        </reference>
        <reference anchor="RFC5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker"/>
            <author fullname="P. Overell" initials="P." surname="Overell"/>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax. Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications. The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power. The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges. This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC6973">
          <front>
            <title>Privacy Considerations for Internet Protocols</title>
            <author fullname="A. Cooper" initials="A." surname="Cooper"/>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig"/>
            <author fullname="B. Aboba" initials="B." surname="Aboba"/>
            <author fullname="J. Peterson" initials="J." surname="Peterson"/>
            <author fullname="J. Morris" initials="J." surname="Morris"/>
            <author fullname="M. Hansen" initials="M." surname="Hansen"/>
            <author fullname="R. Smith" initials="R." surname="Smith"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document offers guidance for developing privacy considerations for inclusion in protocol specifications. It aims to make designers, implementers, and users of Internet protocols aware of privacy-related design choices. It suggests that whether any individual RFC warrants a specific privacy considerations section will depend on the document's content.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6973"/>
          <seriesInfo name="DOI" value="10.17487/RFC6973"/>
        </reference>
        <reference anchor="RFC6838">
          <front>
            <title>Media Type Specifications and Registration Procedures</title>
            <author fullname="N. Freed" initials="N." surname="Freed"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <author fullname="T. Hansen" initials="T." surname="Hansen"/>
            <date month="January" year="2013"/>
            <abstract>
              <t>This document defines procedures for the specification and registration of media types for use in HTTP, MIME, and other Internet protocols. This memo documents an Internet Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="13"/>
          <seriesInfo name="RFC" value="6838"/>
          <seriesInfo name="DOI" value="10.17487/RFC6838"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="CHROME-ROOTS" target="https://chromium.googlesource.com/chromium/src/+/main/net/data/ssl/chrome_root_store">
          <front>
            <title>Chrome Root Store</title>
            <author>
              <organization>Chromium</organization>
            </author>
            <date year="2023" month="August" day="30"/>
          </front>
        </reference>
        <reference anchor="MOZILLA-ROOTS" target="https://wiki.mozilla.org/CA/Included_Certificates">
          <front>
            <title>Mozilla Included CA Certificate List</title>
            <author>
              <organization>Mozilla</organization>
            </author>
            <date year="2023" month="August" day="30"/>
          </front>
        </reference>
        <reference anchor="Dilithium" target="https://pq-crystals.org/dilithium/data/dilithium-specification-round3-20210208.pdf">
          <front>
            <title>CRYSTALS-Dilithium Algorithm Specifications and Supporting Documentation</title>
            <author initials="S." surname="Bai" fullname="Shi Bai">
              <organization/>
            </author>
            <author initials="L." surname="Ducas" fullname="Léo Ducas">
              <organization/>
            </author>
            <author initials="E." surname="Kiltz" fullname="Eike Kiltz">
              <organization/>
            </author>
            <author initials="T." surname="Lepoint" fullname="Tancrède Lepoint">
              <organization/>
            </author>
            <author initials="V." surname="Lyubashevsky" fullname="Vadim Lyubashevsky">
              <organization/>
            </author>
            <author initials="P." surname="Schwabe" fullname="Peter Schwabe">
              <organization/>
            </author>
            <author initials="G." surname="Seiler" fullname="Gregor Seiler">
              <organization/>
            </author>
            <author initials="D." surname="Stehlé" fullname="Damien Stehlé">
              <organization/>
            </author>
            <date year="2021" month="February" day="08"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-tls-cert-abridge">
          <front>
            <title>Abridged Compression for WebPKI Certificates</title>
            <author fullname="Dennis Jackson" initials="D." surname="Jackson">
              <organization>Mozilla</organization>
            </author>
            <date day="16" month="March" year="2024"/>
            <abstract>
              <t>   This draft defines a new TLS Certificate Compression scheme which
   uses a shared dictionary of root and intermediate WebPKI
   certificates.  The scheme smooths the transition to post-quantum
   certificates by eliminating the root and intermediate certificates
   from the TLS certificate chain without impacting trust negotiation.
   It also delivers better compression than alternative proposals whilst
   ensuring fair treatment for both CAs and website operators.  It may
   also be useful in other applications which store certificate chains,
   e.g.  Certificate Transparency logs.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-cert-abridge-01"/>
        </reference>
        <reference anchor="RFC7469">
          <front>
            <title>Public Key Pinning Extension for HTTP</title>
            <author fullname="C. Evans" initials="C." surname="Evans"/>
            <author fullname="C. Palmer" initials="C." surname="Palmer"/>
            <author fullname="R. Sleevi" initials="R." surname="Sleevi"/>
            <date month="April" year="2015"/>
            <abstract>
              <t>This document defines a new HTTP header that allows web host operators to instruct user agents to remember ("pin") the hosts' cryptographic identities over a period of time. During that time, user agents (UAs) will require that the host presents a certificate chain including at least one Subject Public Key Info structure whose fingerprint matches one of the pinned fingerprints for that host. By effectively reducing the number of trusted authorities who can authenticate the domain during the lifetime of the pin, pinning may reduce the incidence of man-in-the-middle attacks due to compromised Certification Authorities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7469"/>
          <seriesInfo name="DOI" value="10.17487/RFC7469"/>
        </reference>
        <reference anchor="RFC6962">
          <front>
            <title>Certificate Transparency</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Kasper" initials="E." surname="Kasper"/>
            <date month="June" year="2013"/>
            <abstract>
              <t>This document describes an experimental protocol for publicly logging the existence of Transport Layer Security (TLS) certificates as they are issued or observed, in a manner that allows anyone to audit certificate authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6962"/>
          <seriesInfo name="DOI" value="10.17487/RFC6962"/>
        </reference>
        <reference anchor="I-D.davidben-tls-trust-expr">
          <front>
            <title>TLS Trust Expressions</title>
            <author fullname="David Benjamin" initials="D." surname="Benjamin">
              <organization>Google LLC</organization>
            </author>
            <author fullname="Devon O'Brien" initials="D." surname="O'Brien">
              <organization>Google LLC</organization>
            </author>
            <author fullname="Bob Beck" initials="B." surname="Beck">
              <organization>Google LLC</organization>
            </author>
            <date day="28" month="June" year="2024"/>
            <abstract>
              <t>   This document defines TLS trust expressions, a mechanism for relying
   parties to succinctly convey trusted certification authorities to
   subscribers by referencing named and versioned trust stores.  It also
   defines supporting mechanisms for subscribers to evaluate these trust
   expressions, and select one of several available certification paths
   to present.  This enables a multi-certificate deployment model, for a
   more agile and flexible PKI that can better meet security
   requirements.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-davidben-tls-trust-expr-04"/>
        </reference>
        <reference anchor="I-D.ietf-tls-wkech">
          <front>
            <title>A well-known URI for publishing ECHConfigList values.</title>
            <author fullname="Stephen Farrell" initials="S." surname="Farrell">
              <organization>Trinity College Dublin</organization>
            </author>
            <author fullname="Rich Salz" initials="R." surname="Salz">
              <organization>Akamai Technologies</organization>
            </author>
            <author fullname="Benjamin M. Schwartz" initials="B. M." surname="Schwartz">
              <organization>Meta Platforms, Inc.</organization>
            </author>
            <date day="7" month="July" year="2024"/>
            <abstract>
              <t>   We define a well-known URI at which an HTTP origin can inform an
   authoritative DNS server, or other interested parties, about its
   Service Bindings.  The data can include Encrypted ClientHello (ECH)
   configurations, allowing the origin, in collaboration with DNS
   infrastructure elements, to publish and rotate its own ECH keys.

Note

   This note is to be removed before publishing as an RFC.

   The source for this draft is in https://github.com/sftcd/wkesni/
   Issues and PRs are welcome there too.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-wkech-05"/>
        </reference>
      </references>
    </references>
    <?line 595?>

<section anchor="comparison-to-tls-trust-expressions">
      <name>Comparison to TLS Trust Expressions</name>
      <t><xref target="I-D.davidben-tls-trust-expr"/> describes Trust Expressions, another trust anchor negotiation mechanism that aims to solve similar problems. The mechanisms differ in the following ways:</t>
      <ul spacing="normal">
        <li>
          <t><tt>trust_anchors</tt> is usable by more kinds of PKIs. Trust Expressions express trust anchor lists relative to named “trust stores”, maintained by root programs. Arbitrary lists may not be easily expressible. <tt>trust_anchors</tt> does not have this restriction.</t>
        </li>
        <li>
          <t>When used with large trust stores, the retry mechanism in <tt>trust_anchors</tt> requires a new connection. In most applications, this must be implemented outside the TLS stack, so more components must be changed and redeployed. In deployments that are limited by client changes, this may be a more difficult transition. [[TODO: See <xref target="retry-mechanism"/> for an alternate retry scheme that avoids this.]]</t>
        </li>
        <li>
          <t>Trust Expressions works with static server configuration. An ideal <tt>trust_anchors</tt> deployment requires automation to synchronize a server’s DNS and TLS configuration. <xref target="I-D.ietf-tls-wkech"/> could be a starting point for this automation. In deployments that are limited by server changes, this may be a more difficult transition.</t>
        </li>
        <li>
          <t>Trust Expressions require that CAs continually fetch information from manifests that are published by root programs, while <tt>trust_anchors</tt> relies only on static pre-assigned trust anchor identifiers.</t>
        </li>
        <li>
          <t><tt>trust_anchors</tt>, when trust anchors are conditionally sent, has different fingerprinting properties. See <xref target="privacy-considerations"/>.</t>
        </li>
        <li>
          <t><tt>trust_anchors</tt> can only express large client trust stores (for server certificates), not large server trust stores. Large trust stores rely on the retry mechanism described in <xref target="retry-mechanism"/>, which is not available to client certificates.</t>
        </li>
      </ul>
      <t>The two mechanisms can be deployed together. A subscriber can have metadata for both mechanisms available, and a relying party can advertise both.</t>
      <t>[[TODO: remove this or move to supporting documentation after more working group consensus]]</t>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>The authors thank Nick Harper, and Emily Stark for many valuable discussions and insights which led to this document.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA71963IbSZbefzxFmR1hSW0AEimpW9LcliLZ0/RIoiyye3Y8
MZYKqASZy0IVpqoACq3WxLyGI+z/3ueYN5kn8bnmpS4g1Y51R+ysCKCyMk+e
PNfvnJxMJqPGNrl5kexdvDpPLqp13SSHxfyqrJLTzBSNXVhT1XujedqYy7La
vkjqJhuNRlk5L9IlPJdV6aKZzMz8etLk9aTBESYpjTCxWT15tD+q17OlrWtb
Fs12BY+cnlx8NyrWy5mpXowyGPjFaF4WtSnqdf0igRHMaPMieTxKK5PCxM7N
fF3ZZrs3uimr68uqXK9wulVa1KuyapJX6dZUif/VxhRrGDJJbv9pkvCM9v4I
I9viMvk9PoKfL1Obw+ewpH+xpllMy+oSP06r+RV8fNU0q/rFw4f4K/zIbsxU
f/YQP3g4q8qb2jyE5x/ic5e2uVrP4Mks3dhsZoqHnljm46oyRJ4af5oDQeom
eIk+MuVBprbsf/jhLVsxvWqW+d5olK4b+AQINIG3JYktgOh7L6fJS3hwjz7i
nd17Wc6CD2FpaWF/Sht4F3z5+7K8zE3y6tURf22YYrOZ+ZdL+mo6L5ej+CXH
+JLi39KlLaIXHeMKW1/d7XVKm53vPLv3srKm9UqzKYv4m7u9Ma23y6VpKjuP
3lmU1RKe3BDj/es3zx69oIfgPz1fp8WCfwPvbcz8qijz8nKbTJLDWd1U6bxJ
zrdFk35M3pQN/+qsMMn9w/M30/0HL5LzlZnDYZzzV+UimaW1nSeF/HhPX0fn
KTl4dLCvn7j91v9goXAIL36YXOhntQEy1BZmGPzs9Pzs4enJ0Yvk2bODJ5P9
FzQmre75l6wO55+YYl5meMDerXNT96zmJa3mJPpZcv/lybsH4+QoLcoCfpt3
vj+C75O0yJJjWzfw+drWVybr/OwYfvYfTKCnjkBWKYG8AD8++v7d2euTybuz
s4tzflhodnRVlUuTvCtL2PqmrAx/mVaXBo6/nv45/squl1PmtrpcV3PiOffN
w7qaP/wvKIuKh4VpQF406cO6zvkH5n0FL3hfuxe49T+ePHo2efxo1CbBhNd/
JMPjGl6f/ffTV68OexbxuvzJ5nmanBbzfJ0B7Y8OkyNTNby5cHxgY3rXdWOv
7XTJT5PYPDp8qIO8D0aov2jSMh2c87HNQV7CAmKiv/vT+cXhq/OJ+zo5zEGx
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
gf5fICpz/obIAAA=

-->

</rfc>
