<?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.35 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-tls-trust-anchor-ids-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title>TLS Trust Anchor Identifiers</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-tls-trust-anchor-ids-04"/>
    <author initials="B." surname="Beck" fullname="Bob Beck">
      <organization>OpenSSL</organization>
      <address>
        <email>beck@openssl.org</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/>
      <address>
        <email>devon.obrien@gmail.com</email>
      </address>
    </author>
    <author initials="K." surname="Nekritz" fullname="Kyle Nekritz">
      <organization>Meta</organization>
      <address>
        <email>knekritz@meta.com</email>
      </address>
    </author>
    <date year="2026" month="May" day="01"/>
    <area>Security</area>
    <workgroup>Transport Layer Security</workgroup>
    <abstract>
      <?line 97?>

<t>This document defines the TLS Trust Anchors extension, a mechanism for relying parties 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://tlswg.github.io/tls-trust-anchor-ids/draft-ietf-tls-trust-anchor-ids.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-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/tlswg/tls-trust-anchor-ids"/>.</t>
    </note>
  </front>
  <middle>
    <?line 103?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>TLS <xref target="RFC8446"/> authentication uses X.509 certificates <xref target="RFC5280"/> to associate the <em>authenticating party's</em> TLS key with its application identifiers, such as DNS names. These associations are signed by some certification 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 authenticating party is the server and the relying party is the client.</t>
      <t>An authenticating party 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 authenticating party 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 authenticating party 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 an authenticating party to use a CA in its single certificate, all supported relying parties must trust the CA. PKI transitions then become difficult when authenticating parties 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 authenticating parties 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 (Trust Anchor IDs). There are several parts to this mechanism:</t>
      <ol spacing="normal" type="1"><li>
          <t><xref target="trust-anchor-ids"/> defines <em>trust anchor IDs</em>, which are short, unique identifiers for X.509 trust anchors, or groups of trust anchors.</t>
        </li>
        <li>
          <t><xref target="tls-extension"/> defines a TLS extension that communicates the relying party's requested trust anchors using trust anchor IDs. IDs that represent individual trust anchors can mitigate long X.509 names. IDs that represent groups of trust anchors can mitigate large trust anchor lists.</t>
        </li>
        <li>
          <t><xref target="retry-mechanism"/> defines a retry mechanism that, when the relying party is a TLS client, can mitigate signaling failures. The server provides its available trust anchors alongside its certificate, so that the client can retry on mismatch. This can further mitigate large trust anchor lists by allowing the client to initially omit some trust anchors or use an otherwise too broad trust anchor group. However, this mitigation can come at the cost of additional round trips in some cases.</t>
        </li>
        <li>
          <t><xref target="dns-service-parameter"/>, finally, allows TLS servers to advertise their available trust anchors in HTTPS or SVCB <xref target="RFC9460"/> DNS records. When the above options are insufficient, TLS clients can request an accurate initial subset and avoid a retry penalty.</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>Authenticating party:</dt>
          <dd>
            <t>The party authenticating itself 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 whom the authenticating party presents its identity to. 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 authenticating party.</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 X.509 name and public key that relying parties use to determine whether a certification path is trusted. See <xref section="6.1.1" sectionFormat="of" target="RFC5280"/>. Trust anchors are sometimes configured as self-signed certificates.</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>
        </dl>
      </section>
    </section>
    <section anchor="trust-anchor-ids">
      <name>Trust Anchor Identifiers</name>
      <t>This section defines trust anchor IDs, which are short, unique identifiers that represent either a trust anchor, or a group of trust anchors. When a trust anchor ID represents a group of trust anchors, it is known as a <em>trust anchor group</em>.</t>
      <t>A trust anchor ID is an object identifier (OID) <xref target="X680"/> under the OID arc of some IANA-registered Private Enterprise Number (PEN) <xref target="RFC9371"/>. 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 ID 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 IDs may be represented in one of three ways:</t>
      <ul spacing="normal">
        <li>
          <t>For use in ASN.1-based protocols, a trust anchor ID'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 ID'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 ID'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 ID'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 ID's ASCII representation is the relative object identifier in dotted decimal notation. The example ID's ASCII representation is <tt>32473.1</tt>.</t>
        </li>
      </ul>
      <t>The length of a trust anchor ID's binary representation MUST NOT exceed 255 bytes. It SHOULD be significantly shorter, for bandwidth efficiency.</t>
      <t>A trust anchor ID representing a single trust anchor SHOULD be allocated by the CA operator and be 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 ID. In particular, the protocol requires authenticating and relying parties to agree, and the authenticating party's configuration typically comes from the CA.</t>
      <t>A trust anchor ID representing a trust anchor group MAY be allocated by any party. However, to be useful, the group requires agreement between relying parties and authenticating parties. <xref target="trust-anchor-groups"/> discusses defining trust anchor groups in more detail.</t>
      <section anchor="trust-anchor-ranges">
        <name>Trust Anchor Ranges</name>
        <t>Related trust anchor IDs can be allocated from a single OID arc, such as in the versioning construction described in <xref target="versioned-groups"/>. This section defines a <em>trust anchor range</em>, which describes a series of such IDs. Concretely, a trust anchor range is defined by three properties:</t>
        <ul spacing="normal">
          <li>
            <t>A trust anchor ID <tt>base</tt></t>
          </li>
          <li>
            <t>Two non-negative, 64-bit integers <tt>min</tt> and <tt>max</tt></t>
          </li>
        </ul>
        <t>A trust anchor range is said to <em>contain</em> some trust anchor ID, <tt>id</tt> if the <tt>id</tt>, as a relative OID, is the concatenation of <tt>base</tt> and some integer component between <tt>min</tt> and <tt>max</tt>, inclusive. <tt>max</tt> can be set to 2<sup>64</sup>-1 if there is no upper bound.</t>
        <t>The following procedure can be used to perform this check. It succeeds if the range contains <tt>id</tt> and fails otherwise:</t>
        <ol spacing="normal" type="1"><li>
            <t>Check that <tt>base</tt> does not end in the middle of an OID component. That is, check that the most-significant bit of the last byte of <tt>base</tt> is unset. If it is set, fail the procedure.</t>
          </li>
          <li>
            <t>Check that <tt>base</tt> is a prefix of <tt>id</tt>. If not, fail the procedure. Let <tt>rest</tt> be <tt>id</tt> with the <tt>base</tt> prefix removed.</t>
          </li>
          <li>
            <t>Decode <tt>rest</tt> as a minimally-encoded, big-endian, base-128 OID component as follows:
            </t>
            <ol spacing="normal" type="1"><li>
                <t>If <tt>rest</tt> is empty, fail the procedure.</t>
              </li>
              <li>
                <t>If the most-significant bit of the last byte of <tt>rest</tt> is set, fail the procedure.</t>
              </li>
              <li>
                <t>If the most-significant bit of any other byte of <tt>rest</tt> is unset, fail the procedure.</t>
              </li>
              <li>
                <t>If the first byte of <tt>rest</tt> is 0x80, fail the procedure.</t>
              </li>
              <li>
                <t>Set <tt>v</tt> to zero. Throughout this procedure, <tt>v</tt> will be less than 2<sup>64</sup>.</t>
              </li>
              <li>
                <t>For each byte <tt>b</tt> of <tt>rest</tt>:
                </t>
                <ol spacing="normal" type="1"><li>
                    <t>If <tt>v</tt> is greater than or equal to 2<sup>57</sup>, fail the procedure.</t>
                  </li>
                  <li>
                    <t>Set <tt>v</tt> to <tt>(v &lt;&lt; 7) + (b &amp; 127)</tt>.</t>
                  </li>
                </ol>
              </li>
            </ol>
          </li>
          <li>
            <t>Check if <tt>min &lt;= v &lt;= max</tt>. If this is not true, fail the procedure. Otherwise, the procedure succeeds.</t>
          </li>
        </ol>
      </section>
      <section anchor="authenticating-party-configuration">
        <name>Authenticating Party Configuration</name>
        <t>Authenticating parties 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 authenticating party may prefer candidates that minimize message size or have more performant private keys.</t>
        <t>Each candidate path that participates in this protocol must be configured with two properties:</t>
        <ul spacing="normal">
          <li>
            <t>The trust anchor ID for its corresponding trust anchor.</t>
          </li>
          <li>
            <t>Optionally, a list of <em>trust anchor group inclusions</em>. A trust anchor group inclusion is a trust anchor range (<xref target="trust-anchor-ranges"/>) that describes some trust anchor groups also containing the path's trust anchor.</t>
          </li>
        </ul>
        <t>These properties allow certificate selection (see <xref target="certificate-selection"/>) to consider this path when a relying party advertises a matching trust anchor ID. It is RECOMMENDED, though not required, that this information come from the CA. <xref target="certificate-properties"/> defines a RECOMMENDED format for this information, along with an optional ACME <xref target="RFC8555"/> extension for CAs to send it.</t>
        <t>Authenticating parties MAY have candidate certification paths without these associated properties. Such paths will not participate in this protocol. They MAY participate in other trust anchor negotiation protocols, such as the <tt>certificate_authorities</tt> extension.</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 that participates in this protocol must have an associated trust anchor ID.</t>
        <t>When trust anchors are represented as X.509 certificates, the X.509 trust anchor ID extension MAY be used to carry this ID. The trust anchor ID extension has an <tt>extnID</tt> of <tt>id-pe-trustAnchorID</tt> and an <tt>extnValue</tt> containing a DER-encoded TrustAnchorID structure, defined below. The TrustAnchorID is the trust anchor ID's ASN.1 representation, described in <xref target="trust-anchor-ids"/>. This extension MUST be non-critical.</t>
        <sourcecode type="asn.1"><![CDATA[
id-pe-trustAnchorID OBJECT IDENTIFIER ::=
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-pe(1) TBD }

TrustAnchorID ::= RELATIVE-OID
]]></sourcecode>
        <t>Relying parties MAY instead or additionally configure trust anchor IDs via some application-specific out-of-band information.</t>
        <t>Relying parties MAY additionally be configured with trust anchor groups that include their trust anchors. When authenticating parties are known to be configured with corresponding inclusion lists (<xref target="authenticating-party-configuration"/>), this can further reduce the size of messages sent by the relying party.</t>
        <t>Relying parties MAY support trust anchors without associated trust anchor IDs, 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>
    <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>
        <sourcecode type="tls-presentation"><![CDATA[
enum { trust_anchors(TBD), (2^16-1) } ExtensionType;

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

/* These types differ in whether they may be empty. */
TrustAnchorID RequestedTrustAnchorList<0..2^16-1>;
TrustAnchorID AvailableTrustAnchorList<1..2^16-1>;
]]></sourcecode>
        <t>When the extension is sent in the ClientHello or CertificateRequest messages, the <tt>extension_data</tt> is a RequestedTrustAnchorList and indicates that the sender supports the specified trust anchors or trust anchor groups. The list is unordered, and MAY be empty. Each TrustAnchorID 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 an AvailableTrustAnchorList containing the list of individual trust anchors for which the server has a candidate path. This list is ordered matching the server's candidate path 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 ID 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 authenticating party then selects a certificate from its candidate certification paths (see <xref target="authenticating-party-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 authenticating party SHOULD send a certification path such that either:</t>
        <ul spacing="normal">
          <li>
            <t>The path's trust anchor ID appears in the relying party's <tt>trust_anchors</tt> extension.</t>
          </li>
          <li>
            <t>One of the path's trust anchor group inclusions contains some ID in the relying party's <tt>trust_anchors</tt> extension.</t>
          </li>
        </ul>
        <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 authenticating party 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 authenticating party to retain support for relying parties that do not implement any form of trust anchor negotiation. In this case, the authenticating party 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 authenticating party sends a certification path that matches the relying party's <tt>trust_anchors</tt> extension, as described in <xref target="certificate-selection"/>, the authenticating party 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 authenticating party 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 authenticating parties 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 ID 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 ID, 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 IDs 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 ID 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 ID 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/tlswg/tls-trust-anchor-ids/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="trust-anchor-groups">
      <name>Trust Anchor Groups</name>
      <t>A trust anchor ID is typically much smaller than the corresponding X.509 name. Depending on the number of trust anchors, this can be sufficient to efficiently represent relying party state.</t>
      <t>PKIs where further size savings are needed can use trust anchor groups (<xref target="trust-anchor-ids"/>). Trust anchor groups require additional coordination within a PKI, but they can further reduce relying party message sizes by allowing one ID to signal multiple trust anchors. To be usable, a trust anchor group must:</t>
      <ul spacing="normal">
        <li>
          <t>be known to and sent by relying parties (see <xref target="relying-party-configuration"/>); and</t>
        </li>
        <li>
          <t>configured with candidate paths in authenticating parties (see <xref target="authenticating-party-configuration"/>), ideally provided by the CA during issuance (see <xref target="certificate-properties"/>).</t>
        </li>
      </ul>
      <t>This document does not prescribe how to define trust anchor groups, but gives some general guidance:</t>
      <t>A trust anchor group specifies a collection of trust anchors, which a relying party can send to represent the contents. For example:</t>
      <ul spacing="normal">
        <li>
          <t>A set of root CAs (or intermediate CAs, as in <xref target="intermediate-elision"/>) operated by a CA operator.</t>
        </li>
        <li>
          <t>A set of trust anchors common to large set of relying parties.</t>
        </li>
        <li>
          <t>A set of related application-specific trust anchors, such as a range of Merkle Tree Certificate landmarks <xref target="I-D.ietf-plants-merkle-tree-certs"/>.</t>
        </li>
      </ul>
      <t>Different group definitions trade off size savings, applicability, and coordination overhead. A group that reflects a single CA operator will cover fewer trust anchors, so a relying party might combine several operators' IDs to describe its trust anchors. However, it is generally usable by relying parties that trust this CA operator. Such a group also requires minimal coordination for the CA operator to provide group inclusion information (<xref target="authenticating-party-configuration"/>) with the certificate.</t>
      <t>Conversely, a group that reflects a single relying party vendor can potentially be the only ID sent. However, it may be less generally usable when relying parties differ. Groups reflecting multiple relying party vendors are more broadly usable, but may need to be combined with other IDs in a given relying party. For example, a relying party might send a group containing established CAs common to its ecosystem, and individual IDs for its remaining, not yet as common CAs.</t>
      <t>A client relying party MAY send a group containing CAs it does not trust, however it SHOULD then be prepared to retry (see <xref target="retry-mechanism"/>) in case of signaling failure.</t>
      <t>The authenticating party selection process described in <xref target="certificate-selection"/> can implemented generically for any trust anchor group. This allows deployments to tailor their group allocation based on their needs, without requiring software updates in authenticating parties. Where feasible, deployments SHOULD use groups that are more broadly applicable and require lower coordination overhead.</t>
      <section anchor="versioned-groups">
        <name>Versioned Groups</name>
        <t>Over time, a group may become out-of-date, making it describe current relying parties less effectively. For example, a CA operator may deploy or turn down a CA instance, or a relying party may trust a new CA or distrust an existing CA. Existing trust anchor groups SHOULD NOT be redefined, but the following versioning scheme MAY be used to define updated groups:</t>
        <t>A versioned sequence of trust anchor groups is identified by a OID arc. Each group has an ID of this OID arc, with a non-negative integer version number component appended. For example, versioned groups using the OID arc <tt>32473.2</tt> would have IDs <tt>32473.2.0</tt>, <tt>32473.2.1</tt>, <tt>32473.2.2</tt>, and so on. When defining a new group version, the version component is incremented.</t>
        <t>The trust anchor group inclusion for a candidate path is a trust anchor range (<xref target="trust-anchor-ranges"/>) determined as follows:</t>
        <ul spacing="normal">
          <li>
            <t>At issuance, if the trust anchor is no longer in the latest group version, the range's <tt>min</tt> and <tt>max</tt> values are the first and last version that include the trust anchor, respectively.</t>
          </li>
          <li>
            <t>At issuance, if the trust anchor is in the latest group version, the range's <tt>min</tt> value is the first version that includes the trust anchor, and its <tt>max</tt> value is 2<sup>64</sup>-1.</t>
          </li>
        </ul>
        <t>In the second case, the range contains not-yet-defined group versions, so there is a potential signaling error. Suppose, after issuance, a new group version is defined without the trust anchor. The unlimited upper bound is now incorrect. A relying party might not trust this trust anchor, while sending this new group version. However, the authenticating party will misinterpret the certificate as compatible based on its stale information. Such signaling errors may result in the wrong certificate being selected.</t>
        <t>This can be mitigated in one several ways:</t>
        <ul spacing="normal">
          <li>
            <t>Only pre-existing certificates are impacted. Newly-issued certificates postdate this version and will have the correct upper bound. When the certificate is renewed, group inclusions will be corrected.</t>
          </li>
          <li>
            <t><xref target="SCTNotAfter"/> describes a trust anchor removal strategy that only impacts newly-issued certificates. In this case, no renewal is needed. Pre-existing group inclusions remain accurate under this strategy.</t>
          </li>
          <li>
            <t>If the authenticating party's preferences place the correct candidate path (issued by a newer trust anchor) ahead of misinterpreted one (issued by the removed trust anchor), the correct candidate will still be chosen.</t>
          </li>
          <li>
            <t>When the relying party is a client, any remaining signaling errors can be corrected with the retry mechanism described in <xref target="retry-mechanism"/>.</t>
          </li>
        </ul>
      </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 IDs, 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 ID 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 ID 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-rr"><![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 ID 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 ID 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 IDs, 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="certificate-properties">
      <name>Certificate Properties</name>
      <t>As described in <xref target="authenticating-party-configuration"/>, certification paths participating in this mechanism must be configured with a trust anchor ID. This section introduces a RECOMMENDED extensible CertificatePropertyList structure for representing this and other additional properties of a certification path. CertificatePropertyLists may be used as part of authenticating party configuration, and for CAs to communicate additional properties during certificate issuance.</t>
      <t>The extensibility aims to simplify application deployment as PKI mechanisms evolve. When certificate issuance and application software is updated to pass this structure to the underlying TLS implementation, new properties may be transparently defined without changes to certificate and configuration management.</t>
      <t>A CertificatePropertyList is defined using the TLS presentation language (<xref section="3" sectionFormat="of" target="RFC8446"/>) below:</t>
      <sourcecode type="tls-presentation"><![CDATA[
enum {
    trust_anchor_id(0),
    trust_anchor_group_inclusions(1),
    (2^16-1)
} CertificatePropertyType;

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

CertificateProperty CertificatePropertyList<0..2^16-1>;
]]></sourcecode>
      <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 two properties:</t>
      <ul spacing="normal">
        <li>
          <t><tt>trust_anchor_id</tt>, defined in <xref target="trust-anchor-id-property"/></t>
        </li>
        <li>
          <t><tt>trust_anchor_group_inclusions</tt>, defined in <xref target="trust-anchor-group-inclusions-property"/></t>
        </li>
      </ul>
      <t>Future documents MAY define other properties for use with other mechanisms. Such a document MUST define the format of the <tt>data</tt> field and how authenticating parties interpret the property. Authenticating parties MUST ignore properties with unrecognized CertificatePropertyType values.</t>
      <section anchor="trust-anchor-id-property">
        <name>Trust Anchor ID Property</name>
        <t>The <tt>trust_anchor_id</tt> property's <tt>data</tt> field contains the binary representation of the trust anchor ID of the certification path's trust anchor, as described in <xref target="authenticating-party-configuration"/>.</t>
      </section>
      <section anchor="trust-anchor-group-inclusions-property">
        <name>Trust Anchor Group Inclusions Property</name>
        <t>The <tt>trust_anchor_group_inclusions</tt> property's <tt>data</tt> field contains the certification path's trust anchor group inclusions, as described in <xref target="authenticating-party-configuration"/>. Each trust anchor group inclusion is described in a TrustAnchorRangeList structure, defined below. Each TrustAnchorRange structure describes a trust anchor range, as defined in <xref target="trust-anchor-ranges"/>.</t>
        <artwork><![CDATA[
struct {
    TrustAnchorID base;
    uint64 min;
    uint64 max;
} TrustAnchorRange;

TrustAnchorRange TrustAnchorRangeList<1..2^16-1>;
]]></artwork>
      </section>
      <section anchor="media-type">
        <name>Media Type</name>
        <t>A certification path with its associated CertificatePropertyList 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>
        <sourcecode type="abnf"><![CDATA[
certchainwithproperties = stricttextualmsg eol stricttextualmsg
                          *(eol stricttextualmsg)
]]></sourcecode>
        <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="acme-extension">
        <name>ACME Extension</name>
        <t>The format defined in <xref target="media-type"/> can be used with ACME's alternate format mechanism (see <xref section="7.4.2" sectionFormat="of" target="RFC8555"/>) as follows. When downloading certificates, a supporting client SHOULD include "application/pem-certificate-chain-with-properties" in its HTTP Accept header (<xref section="12.5.1" sectionFormat="of" target="RFC9110"/>). When a supporting server sees such a header, it MAY then respond with that format to include a CertificatePropertyList with the certification path. This CertificatePropertyList MAY include <tt>trust_anchor_id</tt> and <tt>trust_anchor_group_inclusions</tt> properties for use with this protocol, or other properties defined in another document.</t>
        <t>When used with ACME's alternate certificate chain mechanism (see <xref section="7.4.2" sectionFormat="of" target="RFC8555"/>), this protocol removes the need for heuristics in determining which path to serve to which relying party.</t>
        <t>The authenticating party MAY combine the resulting certification paths with those from other ACME orders, or other sources, for a complete set of candidate paths to serve.</t>
      </section>
    </section>
    <section anchor="use-cases">
      <name>Use Cases</name>
      <t><tt>trust_anchors</tt>, like <tt>certificate_authorities</tt>, implements trust anchor negotiation. That is, it allows an authenticating party to incorporate relying party trust anchors into certificate selection. <tt>trust_anchors</tt> allows a wider range of TLS applications to use trust anchor negotiation, notably those that would be unable to use <tt>certificate_authorities</tt> due to size or privacy limitations.</t>
      <t>Without trust anchor negotiation, authenticating parties are limited to CAs in the intersection of all supported relying parties. However, trust anchors can vary significantly between different relying party implementations and different versions of a single relying party implementation, particularly as PKIs evolve to meet user security needs.</t>
      <t>As security-positive PKI changes increase variance, this intersection shrinks. This leads to a conflict between user security and service availability. When the authenticating party cannot serve a certificate in the intersection, either the relying party must risk user security by not changing the PKI, or the authenticating party must degrade service availability by dropping support for some relying parties.</t>
      <t>The rest of this section discusses uses cases for trust anchor negotiation.</t>
      <section anchor="making-use-of-newly-trusted-cas">
        <name>Making Use of Newly-Trusted CAs</name>
        <t>When one relying party trusts a new CA, other relying parties, such as older ones, may not yet trust it. Trust anchor negotiation allows an authenticating party to negotiate a certificate from the newer CA with relying parties that do trust it, while continuing to negotiate another certificate with relying parties that do not. This allows PKI transitions to progress smoothly. Connections can make use of, for example, a new CA's stronger signature algorithms, stronger validation practices, better automation, or more efficient certificate sizes, without interruptions to other connections.</t>
        <t>Without negotiation, the authenticating party is limited to its relying parties' intersection and must wait for every supported relying party to be updated before the transition even begins. This wait could often take many years. In some cases, such as with IoT devices, relying parties may never receive updates.</t>
        <t>In some contexts, other fields can provide a partial signal. For example, post-quantum-capable relying parties may be detected with the <tt>signature_algorithms</tt> and <tt>signature_algorithms_cert</tt> extensions. However, this relies on all post-quantum CAs being added at roughly the same time and that they are sufficiently interchangeable to be negotiated with these extensions. Trust anchor negotiation directly addresses this problem and allows for both gradual and possibly heterogeneous deployment of post-quantum CAs across relying parties.</t>
      </section>
      <section anchor="removing-untrustworthy-cas">
        <name>Removing Untrustworthy CAs</name>
        <t>When CAs are determined to be untrustworthy, relying parties must remove them to mitigate the risk to user security. Over time, this shrinks their intersection with older relying parties. Without negotiation, the result is authenticating parties have fewer and fewer CA choices available. Even determining the intersecting CAs can be difficult. Often, the only option is to try the new certificate and monitor errors. For authenticating parties that serve many diverse relying parties, this is a disruptive and risky process.</t>
        <t>Trust anchor negotiation removes this constraint. If an authenticating party's CA is distrusted, it can use a new CA in addition to the existing one. The addition does not risk outages for older relying parties and may be chosen from a wider set of CAs, as it only needs to be compatible with the relying parties that distrusted the other CA.</t>
        <t>Over time, the authenticating party can monitor which certificates it serves, and re-evaluate which CA or CAs to use. For example, it may find the new CA was sufficient, or that older relying parties have since all been updated. However, user security depends on the relying party's trust anchors, not the authenticating party's choice of CA, so this can occur asynchronously, based on serving needs and costs, rather than delay the response to a security incident.</t>
      </section>
      <section anchor="key-rotation">
        <name>Key Rotation</name>
        <t>Despite the severity of root CA private key compromise and the benefits of routinely rotating cryptographic key material, such rotation in PKIs is often very rare. In 2023, the oldest root in <xref target="CHROME-ROOTS"/> and <xref target="MOZILLA-ROOTS"/> was 25 years old, dating to 1998.</t>
        <t>Key rotation in PKIs used in TLS is challenging, as it combines the challenges described in both <xref target="making-use-of-newly-trusted-cas"/> and <xref target="removing-untrustworthy-cas"/>. Without trust anchor negotiation, authenticating parties cannot switch to the new root as long as any supported older relying party requires the old root. That, in turn, means relying parties cannot distrust the old root, leaving them vulnerable.</t>
        <t>Trust anchor negotiation offers a smooth transition for CA key rotation. The CA can provide certification paths for the old and new roots. The authenticating party can then serve both paths without impacting older relying parties. New relying parties can then distrust the old root.</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 issue from the classical and postquantum roots concurrently. The authenticating party 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>
      </section>
      <section anchor="intermediate-elision">
        <name>Intermediate Elision</name>
        <t>In my PKIs, root CAs issue shorter-lived intermediate certificates which, in turn, issue end-entity certificates. This comes at a bandwidth cost: the TLS handshake includes an extra certificate, which includes a public key, signature, and X.509 metadata. Post-quantum signature algorithms will dramatically increase this cost. ML-DSA-65 <xref target="FIPS204"/>, for example, has a total public key and signature size of 5,261 bytes.</t>
        <t><xref target="I-D.ietf-tls-cert-abridge"/> predistributes a specific set of intermediate CA certificates to relying parties so that these certificates can be omitted from TLS connections, as a compression scheme. Negotiating intermediate CAs as short-lived trust anchors also achieves this effect, but is usable by more relying parties than the specific intermediate set accommodates.</t>
        <t>In this model, a CA operator provides authenticating parties with two certification paths: a longer path ending at a long-lived root and shorter path the other ending at a short-lived root. Relying parties trust both the long-lived root and the most recent short-lived root. The authenticating party sends the shorter path when possible, falling back to the longer path when the relying party’s short-lived root is stale.</t>
        <t>This achieves the same effect with a simpler and more flexible, general-purpose mechanism.</t>
      </section>
      <section anchor="conflicting-relying-party-requirements">
        <name>Conflicting Relying Party Requirements</name>
        <t>An authenticating party may need to support relying parties with different, potentially conflicting 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>Trust anchor negotiation allows these conflicts to be resolved by different trust anchors where necessary. This avoids the need to compromise on user security or service availability.</t>
      </section>
      <section anchor="backup-certificates">
        <name>Backup Certificates</name>
        <t>An authenticating party may obtain certification paths from multiple CAs for redundancy. If one CA is compromised and removed from newer relying parties, the TLS server software will be able to gracefully serve a backup certification path, avoiding the immediate breakage that would otherwise be caused by this removal.</t>
      </section>
      <section anchor="public-key-pinning">
        <name>Public Key Pinning</name>
        <t>To reduce security risk from misissued certificates, relying parties sometimes employ public key pinning <xref target="RFC7469"/>. Pinning 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 authenticating party 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 authenticating party is then forced to either break the pinning relying party, or break the newer ones.</t>
        <t>Trust anchor negotiation reduces this conflict, provided the pinning relying party negotiates with its reduced trust anchor list. The authenticating party can then use a certificate from the pinned CA with the pinning relying party, and another CA with other relying parties.</t>
      </section>
    </section>
    <section anchor="privacy-considerations">
      <name>Privacy Considerations</name>
      <section anchor="relying-parties">
        <name>Relying Parties</name>
        <t>The <tt>trust_anchors</tt> extension is analogous to the <tt>certificate_authorities</tt> extension (<xref section="4.2.4" sectionFormat="of" target="RFC8446"/>), but more size-efficient. Like <tt>certificate_authorities</tt>, <tt>trust_anchors</tt> reveals some information about the relying party's trust anchors. However, unlike <tt>certificate_authorities</tt>, <tt>trust_anchors</tt> allows a relying party to only reveal a trust anchor in response to the authenticating party's list, which reduces the fingerprinting exposure. This section provides guidance for a relying party to configure this mechanism, based on its privacy goals.</t>
        <t>When using this extension, a relying party's trust anchors may be divided into three categories:</t>
        <ol spacing="normal" type="1"><li>
            <t>Trust anchors whose IDs the relying party never sends, but still trusts. These are trust anchors that do not participate in this mechanism.</t>
          </li>
          <li>
            <t>Trust anchors whose IDs 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 ID is listed in the server's HTTPS/SVCB record or trust anchor list in EncryptedExtensions.</t>
          </li>
          <li>
            <t>Trust anchors whose IDs the relying party sends <em>unconditionally</em>, i.e. independently of the authenticating party's behavior.</t>
          </li>
        </ol>
        <t>Each of these categories carries a different fingerprinting exposure:</t>
        <t>Trust anchors that do not participate are not revealed by this extension. However, they have some fingerprinting exposure due to being trusted. Given a certification path, an authenticating party can probe whether the relying party trusts the trust anchor by seeing if the relying party accepts it.</t>
        <t>Trust anchor IDs sent in response to the authenticating party can only be observed actively. That is, the authenticating party could vary its list and observe how the client responds, in order to probe for the client's trust anchor list. This is similar to the exposure of trust anchors not participating in this extension, except that the trust anchor can be probed by only knowing the trust anchor ID.</t>
        <t>Trust anchor IDs sent unconditionally can be observed passively. This mode is analogous to the <tt>certificate_authorities</tt> extension. Relying parties SHOULD NOT unconditionally advertise trust anchor lists that are unique to an individual user. Rather, unconditionally-advertised lists SHOULD be 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>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="authenticating-parties">
        <name>Authenticating Parties</name>
        <t>If the authenticating party 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 authenticating party 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="incorrect-selection-metadata">
        <name>Incorrect Selection Metadata</name>
        <t>If the authenticating party has provisioned certification paths with incorrect trust anchor IDs, it may negotiate inaccurately and send an untrusted path to the relying party when another candidate would have been trusted. This will not result in the untrusted path becoming trusted, but the connection will fail.</t>
      </section>
      <section anchor="trust-anchor-negotiation">
        <name>Trust Anchor Negotiation</name>
        <t>Both the <tt>trust_anchors</tt> and <tt>certificate_authorities</tt> (<xref section="4.2.4" sectionFormat="of" target="RFC8446"/>) extensions implement trust anchor negotiation, so security considerations are largely unchanged from <tt>certificate_authorities</tt>. This section discusses security considerations for trust anchor negotiation in general.</t>
        <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 authenticating parties 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. If a relying party does not trust an authenticating party's current CA, connections between the two will fail until either the relying party trusts the CA or the authenticating party uses an already trusted CA. Without trust anchor negotiation, the authenticating party is limited to one certificate, and therefore switching CAs risks compatibility problems with other relying parties. The relying party then faces compatibility pressure to add this CA, even if it deems the CA a security risk. With trust anchor negotiation, the authenticating party can use its existing CA <em>in addition to</em> another CA trusted by the relying party. This allows the ecosystem to improve interoperability without sacrificing user security.</t>
        </section>
        <section anchor="serving-multiple-certificates">
          <name>Serving Multiple Certificates</name>
          <t>Trust anchor negotiation reduces compatibility pressures against authenticating parties serving certificates from a less common CA, as they can be served with other certificates. In some cases, the CA may have been distrusted, but still used to support older relying parties. As discussed in <xref target="use-cases"/> and <xref target="agility"/>, this capability aids PKI transitions that mitigate security risks to users.</t>
          <t>Even if the CA is untrustworthy, these certificates do not enable the CA to decrypt or intercept the connection. If a certificate asserts the correct information about the authenticating party, notably the correct public key, the authenticating party can safely present it. Issuing a certificate for the authenticating party's public key does not grant the CA access to the corresponding private key. Conversely, if the attacker already has access to the authenticating party's private key, they do not need to be in control of a CA to intercept a connection.</t>
          <t>Rather, it is the relying party's choice of trusted CAs that determines susceptibility to interception. If the relying party trusts a misbehaving or attacker-controlled CA, the attacker can intercept the connection with a public key certified by that CA, regardless of which CA is used by the intended authenticating party. Conversely, if the relying party does not trust the attacker's CA, the attacker cannot successfully intercept the connection using a public key certified by this CA.</t>
          <t>Choosing trusted CAs is a complex, security-critical process, the full considerations of which are outside the scope of this document. Relying parties thus SHOULD NOT interpret the authenticating party's choice of CA as an endorsement of the CA. Trusting a CA means trusting <em>all</em> certificates issued by that CA, so it is not enough to observe correct certificates from an authenticating party. An untrustworthy CA may sign one correct certificate, but also sign incorrect certificates, possibly in the future, that can attack the relying party.</t>
        </section>
        <section anchor="targeting-tls-interception">
          <name>Targeting TLS Interception</name>
          <t>A network attacker in possession of a misissued certificate could use trust anchor negotiation to differentiate clients and only enable TLS interception with clients that accept the certificate. The network attacker may wish to do this to reduce the odds of detection.</t>
          <t>However, trust anchor negotiation only impacts detection where this differentiation was not already possible. In TLS, the client offers all its available TLS features, including cipher suites and other extensions, in the TLS ClientHello. Any variation in client TLS policies, related or unrelated to trust anchors, may be used as a fingerprint. Transport properties, such as IP geolocation, may also be used. While fingerprinting's heuristic nature makes broad, legitimate use difficult, a network attacker's single interception service can easily use it for targeted attacks.</t>
          <t>If the attacker targets any clients that enforce Certificate Transparency <xref target="RFC6962"/>, the misissued certificates will need to be publicly logged. In this case, detection is more robust, and client differentiation, with or without trust anchor negotiation, has no significant impact.</t>
        </section>
      </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="pkix-registry-updates">
        <name>PKIX Registry Updates</name>
        <t>IANA is requested to create the following entry in the SMI Security for PKIX Module Identifier registry, defined by <xref target="RFC7299"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Decimal</th>
              <th align="left">Description</th>
              <th align="left">References</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD</td>
              <td align="left">id-mod-trustAnchorIDs-2025</td>
              <td align="left">[this-RFC]</td>
            </tr>
          </tbody>
        </table>
        <t>IANA is requested to create the following entry in the SMI Security for PKIX Certificate Extension registry, defined by <xref target="RFC7299"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Decimal</th>
              <th align="left">Description</th>
              <th align="left">References</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD</td>
              <td align="left">id-pe-trustAnchorID</td>
              <td align="left">[this-RFC]</td>
            </tr>
          </tbody>
        </table>
      </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="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="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="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="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </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>
        <reference anchor="RFC7299">
          <front>
            <title>Object Identifier Registry for the PKIX Working Group</title>
            <author fullname="R. Housley" initials="R." surname="Housley"/>
            <date month="July" year="2014"/>
            <abstract>
              <t>When the Public-Key Infrastructure using X.509 (PKIX) Working Group was chartered, an object identifier arc was allocated by IANA for use by that working group. This document describes the object identifiers that were assigned in that arc, returns control of that arc to IANA, and establishes IANA allocation policies for any future assignments within that arc.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7299"/>
          <seriesInfo name="DOI" value="10.17487/RFC7299"/>
        </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="FIPS204" target="https://csrc.nist.gov/projects/post-quantum-cryptography">
          <front>
            <title>Module-Lattice-based Digital Signature Standard</title>
            <author>
              <organization>National Institute of Standards and Technology (NIST)</organization>
            </author>
            <date year="2023" month="August"/>
          </front>
          <seriesInfo name="FIPS PUB" value="204"/>
        </reference>
        <reference anchor="SCTNotAfter" target="https://dadrian.io/blog/posts/sct-not-after/">
          <front>
            <title>How to distrust a CA without any certificate errors</title>
            <author initials="D." surname="Adrian" fullname="David Adrian">
              <organization/>
            </author>
            <date year="2025" month="March"/>
          </front>
        </reference>
        <reference anchor="I-D.ietf-plants-merkle-tree-certs">
          <front>
            <title>Merkle Tree Certificates</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>Apple Inc.</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Luke Valenta" initials="L." surname="Valenta">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Filippo Valsorda" initials="F." surname="Valsorda">
              <organization>Geomys</organization>
            </author>
            <date day="20" month="April" year="2026"/>
            <abstract>
              <t>   This document describes Merkle Tree certificates, a new form of X.509
   certificates which integrate public logging of the certificate, in
   the style of Certificate Transparency.  The integrated design reduces
   logging overhead in the face of both shorter-lived certificates and
   large post-quantum signature algorithms, while still achieving
   comparable security properties to traditional X.509 and Certificate
   Transparency.  Merkle Tree certificates additionally admit an
   optional size optimization that avoids signatures altogether, at the
   cost of only applying to up-to-date relying parties and older
   certificates.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-plants-merkle-tree-certs-03"/>
        </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="September" 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-02"/>
        </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>
      </references>
    </references>
    <?line 715?>

<section anchor="asn1-module">
      <name>ASN.1 Module</name>
      <sourcecode type="asn.1"><![CDATA[
TrustAnchorIDs-2025
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-trustAnchorIDs-2025(TBD) }

DEFINITIONS EXPLICIT TAGS ::=
BEGIN

IMPORTS
    EXTENSION
    FROM PKIX-CommonTypes-2009 -- From [RFC5912]
    { iso(1) identified-organization(3) dod(6)
      internet(1) security(5) mechanisms(5) pkix(7)
      id-mod(0) id-mod-pkixCommon-02(57) };

-- Trust Anchor IDs Certificate Extension

ext-TrustAnchorID EXTENSION ::= {
    SYNTAX TrustAnchorID
    IDENTIFIED BY id-pe-trustAnchorID
    CRITICALITY { FALSE } }

id-pe-trustAnchorID OBJECT IDENTIFIER ::=
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-pe(1) TBD }

TrustAnchorID ::= RELATIVE-OID

END
]]></sourcecode>
    </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. Thanks also to Aaron Gable for providing feedback on ACME extensions.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
/D8pGbP9nucAAA==

-->

</rfc>
