<?xml version="1.0" encoding="utf-8"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude"
     category="std"
     docName="draft-davey-tls-braid-01"
     ipr="trust200902"
     submissionType="IETF"
     xml:lang="en"
     version="3"
     consensus="true">

  <front>
    <title abbrev="BRAID Circuit-Breaker Certificates">Bound Routing, Authority, and Identity Data (BRAID): Independent Circuit Breakers for Long-Lived TLS Certificates</title>

    <author fullname="George Davey" initials="G." surname="Davey">
      <organization>Davey Group LLC</organization>
      <address>
        <postal>
          <country>United States of America</country>
        </postal>
        <email>BRAID@cpu.io</email>
      </address>
    </author>

    <date year="2026"/>

    <area>Security</area>
    <workgroup>TLS</workgroup>

    <keyword>certificate lifetime</keyword>
    <keyword>revocation</keyword>
    <keyword>delegated credentials</keyword>
    <keyword>DNSSEC</keyword>
    <keyword>RPKI</keyword>

    <abstract>
      <t>
        This document defines BRAID, a negotiated profile for publicly trusted TLS
        server certificates that adds one or more independent circuit breakers to a
        certificate. Each circuit breaker is an authorization held by a party the
        domain owner appoints; withdrawing any required authorization causes the
        certificate to stop validating. Because a certificate can be invalidated
        promptly and without the participation of the issuing certification
        authority, its natural validity period no longer has to be short in order to
        bound exposure.
      </t>
      <t>
        The base mechanism is deliberately static. The domain owner publishes a
        DNSSEC-signed BRAID Anchor listing the public keys authorized to
        authenticate the domain, and thereafter does nothing; the certificate remains
        valid until the owner withdraws an entry. Steady-state operation requires no
        periodic reissuance, no periodic re-minting of credentials, and no online
        status service. Short-interval credential refresh is defined as an optional
        enhancement that tightens revocation latency, not as a requirement.
      </t>
      <t>
        Because the Anchor authorizes credential keys rather than the end-entity key
        itself, impersonating a BRAID-protected domain requires both the end-entity
        private key and the ability to publish in the owner's DNSSEC-signed zone.
        This document calls that the Two-Control Property, and it is the principal
        security difference between BRAID and publishing an end-entity certificate
        association directly in DNS.
      </t>
      <t>
        BRAID support is negotiated in the handshake, so a BRAID certificate is
        presented only to a client that offered to validate it; every other client is
        served an ordinary certificate and is unaffected. Optional strands bind a
        certificate to an authorized routing origin and to an appointed third-party
        witness.
      </t>
    </abstract>
  </front>

  <middle>

    <section anchor="intro">
      <name>Introduction</name>
      <t>
        The maximum validity period of publicly trusted TLS certificates has been
        reduced repeatedly. The stated motivation is to bound the exposure created by
        a stolen or mis-issued certificate. That motivation is sound, and it exists
        because the mechanism intended to cancel a bad certificate before its natural
        expiry, revocation, has never worked reliably at internet scale. Online
        status checking has been deprecated by major browsers for privacy, latency,
        and soft-fail reasons, and certificate revocation lists are not consulted in
        a way that reliably protects users.
      </t>
      <t>
        Shortening lifetimes is a mitigation rather than a repair. It imposes a
        permanent operational burden and it does not restore the ability to cancel a
        certificate on demand. This document takes the other path: rather than making
        certificates expire quickly so that unreliable revocation matters less, it
        gives a certificate one or more independent circuit breakers that reliably
        invalidate it when tripped, so that a longer natural lifetime does not imply
        a longer exposure window.
      </t>
      <t>
        A circuit breaker in this document is an authorization published by a party
        the domain owner appoints, which a relying party checks and which the
        appointed party can withdraw. The certificate carries, in a critical
        extension, the statement that particular circuit breakers are required. An
        on-path attacker can withhold the evidence that a circuit breaker is intact,
        but cannot cause the certificate to validate without it.
      </t>

      <section anchor="intro-changes">
        <name>Relationship to draft-davey-tls-braid-00</name>
        <t>
          This revision makes a substantive architectural correction. The -00
          revision required a short-lived Delegated Credential, refreshed at least
          every seven days, as a mandatory element of the base profile, and it
          justified extended certificate lifetimes on the basis of that refresh
          cycle. Review of -00 correctly observed that this does not remove an
          operational renewal burden; it relocates it from certificate issuance to
          credential and anchor maintenance, and it does so in a design whose stated
          purpose was to reduce such burdens.
        </t>
        <t>
          The observation is correct and the -00 construction was inconsistent with
          the design intent. This revision separates two properties that -00
          conflated under the single term "freshness":
        </t>
        <ul>
          <li>
            <strong>Authorization</strong> is the state of a key being permitted to
            authenticate a domain. It is established once, persists without
            maintenance, and ends when the owner withdraws it. Authorization is the
            base mechanism of this document.
          </li>
          <li>
            <strong>Revocation latency</strong> is the interval between an owner
            withdrawing an authorization and relying parties ceasing to accept the
            certificate. It is bounded by how long relying parties may cache
            authorization state, and it is tunable by the owner.
          </li>
        </ul>
        <t>
          Short-interval credential refresh, the mechanism -00 made mandatory, is a
          way to reduce revocation latency and to bound the exposure of a stolen
          credential key. In this revision it is an optional enhancement
          (<xref target="freshness"/>), not part of the base profile. An operator who
          adopts only the base profile publishes one DNSSEC-signed record and
          performs no recurring work.
        </t>
      </section>

      <section anchor="goals">
        <name>Design goals</name>
        <ul>
          <li>
            Invalidation that does not depend on a queried status service, and that
            does not require the participation of the issuing certification
            authority.
          </li>
          <li>
            No steady-state operational burden in the base profile. Publishing the
            authorization is a one-time act.
          </li>
          <li>
            More than one independently held control over a certificate's validity,
            so that compromise of a single credential or system is insufficient to
            impersonate a domain (<xref target="twocontrol"/>).
          </li>
          <li>
            Optional, owner-appointed distribution of invalidation authority to
            additional parties (<xref target="witness"/>).
          </li>
          <li>
            No effect on relying parties that have not adopted BRAID, and no effect
            on the certificates they are served (<xref target="negotiation"/>).
          </li>
          <li>
            Reuse of deployed mechanisms in preference to new ones.
          </li>
        </ul>
      </section>

      <section anchor="nongoals">
        <name>Non-goals and acknowledged costs</name>
        <t>
          This document does not claim that BRAID is free of operational cost, and
          two costs are stated here rather than left to be discovered.
        </t>
        <t>
          First, until BRAID is universally supported, an operator that deploys it
          also continues to operate conventional certificates for clients that do not
          support it, and therefore continues to bear whatever renewal automation
          those certificates require. BRAID reduces the exposure that motivates short
          lifetimes; it does not, during a transition of unknown duration, remove the
          operational cost of short lifetimes. Operators should expect to run both.
        </t>
        <t>
          Second, the base profile depends on the domain owner operating a
          DNSSEC-signed zone and being able to modify a record in it. For zones that
          are not signed, BRAID offers nothing, and the deployment history of
          DNSSEC-dependent web mechanisms is not encouraging
          (<xref target="dnssec"/>). This document does not assert that this
          dependency is surmountable; it states the dependency plainly and confines
          the validation work it implies to the smallest form the author could find.
        </t>
      </section>

      <section anchor="reqlang">
        <name>Requirements Language</name>
        <t>
          The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
          "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>",
          "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>",
          "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>",
          "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and
          "<bcp14>OPTIONAL</bcp14>" 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>
      </section>
    </section>

    <section anchor="terminology">
      <name>Terminology</name>
      <dl>
        <dt>BRAID Anchor</dt>
        <dd>
          A DNSSEC-signed RRset, published by the domain owner, listing the public
          keys currently authorized to authenticate the domain. The Anchor is
          authorization state, not liveness state: it does not expire and is not
          refreshed on a schedule.
        </dd>
        <dt>Circuit breaker</dt>
        <dd>
          An authorization that a relying party checks and that an appointed party
          can withdraw, causing the certificate to stop validating.
        </dd>
        <dt>Strand</dt>
        <dd>
          A class of circuit breaker anchored in a particular trust system: Authority
          (the WebPKI), Identity (the owner's DNSSEC-signed zone), Routing (the
          RPKI), and Witness (an appointed third party).
        </dd>
        <dt>Authentication credential</dt>
        <dd>
          The key pair that produces the handshake signature. In this document it is
          carried as a Delegated Credential <xref target="RFC9345"/>.
        </dd>
        <dt>Revocation latency</dt>
        <dd>
          The maximum interval between withdrawal of an authorization and relying
          parties ceasing to accept the certificate.
        </dd>
      </dl>
    </section>

    <section anchor="overview">
      <name>Overview</name>
      <t>
        A BRAID deployment consists of three published artifacts and one negotiated
        handshake behavior.
      </t>
      <ol>
        <li>
          <t>
            <strong>A certificate</strong>, issued by a certification authority in
            the ordinary way, carrying a critical <tt>BRAIDBinding</tt> extension
            that names which circuit breakers are required and where the Anchor is
            published (<xref target="binding"/>).
          </t>
        </li>
        <li>
          <t>
            <strong>A BRAID Anchor</strong>, published once in the owner's
            DNSSEC-signed zone, listing the hashes of authorized authentication
            credential public keys (<xref target="anchor"/>).
          </t>
        </li>
        <li>
          <t>
            <strong>An authentication credential</strong>, a Delegated Credential
            <xref target="RFC9345"/> signed by the end-entity key, whose public key
            hash appears in the Anchor.
          </t>
        </li>
        <li>
          <t>
            <strong>Negotiation</strong>: a client indicates BRAID support in its
            ClientHello; a server presents a BRAID certificate only in response
            (<xref target="negotiation"/>).
          </t>
        </li>
      </ol>
      <t>
        In steady state, none of these change. The certificate may be long-lived; the
        Anchor is static; the credential may be issued with a validity period as long
        as the certificate's, unless the operator elects the optional enhancement of
        <xref target="freshness"/>.
      </t>
      <t>
        To invalidate the certificate, the owner deletes the corresponding entry from
        the Anchor. Relying parties cease to accept the certificate within the
        revocation latency, which is bounded by the Anchor RRset's TTL and by relying
        party caching policy (<xref target="latency"/>). No status responder is
        queried, no revocation list is distributed, and the issuing certification
        authority is not involved.
      </t>
    </section>

    <section anchor="invariant">
      <name>Validation Invariant</name>
      <t>
        Let R be the set of circuit breakers marked required by the certificate or by
        relying party policy. A BRAID certificate is acceptable for a connection if
        and only if every member of R is intact for that connection. There is no
        member of R whose failure can be compensated for by another. The only
        permitted relaxation is the bounded degradation policy of
        <xref target="degradation"/>, and only where relying party policy explicitly
        allows it.
      </t>
    </section>

    <section anchor="anchor">
      <name>The BRAID Anchor</name>

      <section anchor="anchor-contents">
        <name>Contents and semantics</name>
        <t>
          The BRAID Anchor is an RRset published in the domain owner's DNSSEC-signed
          zone at the name carried in the certificate. It contains a set of hashes of
          SubjectPublicKeyInfo structures, one for each authentication credential
          public key the owner authorizes to authenticate the domain, together with a
          version tag and the parameters of <xref target="anchor-params"/>.
        </t>
        <t>
          The Anchor is <strong>authorization state</strong>. Its semantics are
          membership: a key is authorized if and only if its hash is present in the
          RRset. The Anchor carries no notion of the owner asserting continued
          liveness, and there is no interval within which the owner must act in order
          for existing authorizations to remain effective. An Anchor that is never
          modified authorizes the same keys indefinitely.
        </t>
        <t>
          This is the central design decision of this revision. Because the state is
          membership rather than freshness, publishing it is a one-time act,
          withdrawing it is a one-time act, and the steady state between them requires
          nothing.
        </t>
        <t>
          An Anchor <bcp14>MAY</bcp14> list more than one key, which permits an owner
          to authorize several serving locations independently and to withdraw any one
          of them by removing a single entry.
        </t>
      </section>

      <section anchor="anchor-params">
        <name>Parameters</name>
        <t>
          In addition to the authorized key set, an Anchor carries:
        </t>
        <ul>
          <li>
            a maximum revocation latency, being the longest interval for which the
            owner permits a relying party to rely on cached authorization state
            (<xref target="latency"/>); and
          </li>
          <li>
            optionally, a declaration that the optional freshness enhancement of
            <xref target="freshness"/> is in use, and the maximum credential validity
            period it implies.
          </li>
        </ul>
      </section>

      <section anchor="anchor-publication">
        <name>Publication</name>
        <t>
          The Anchor <bcp14>MUST</bcp14> be published in a DNSSEC-signed zone. Until
          a dedicated RRTYPE is allocated (<xref target="iana"/>), the Anchor
          <bcp14>MAY</bcp14> be published as a TXT record at the <tt>_braid</tt>
          prefix of the name carried in the certificate, and a relying party
          <bcp14>MUST</bcp14> treat a DNSSEC-validated TXT-form Anchor as equivalent
          to the native form. SPF <xref target="RFC7208"/>, DKIM
          <xref target="RFC6376"/>, and DMARC <xref target="RFC7489"/> each entered
          production in this way.
        </t>
        <t>
          The credential used to modify the Anchor <bcp14>SHOULD NOT</bcp14> be
          resident on hosts that terminate TLS for the domain. The independence of
          these two capabilities is the basis of the Two-Control Property
          (<xref target="twocontrol"/>); co-locating them forfeits it while leaving
          the deployment outwardly unchanged.
        </t>
      </section>
    </section>

    <section anchor="binding">
      <name>The BRAIDBinding Certificate Extension</name>
      <t>
        A BRAID certificate carries a critical extension, <tt>BRAIDBinding</tt>,
        declaring which circuit breakers are required and where their state is
        published. Because the extension is critical <xref target="RFC5280"/>, a
        relying party that does not implement this document rejects the certificate
        rather than accepting it with a subset of the intended checks. Presentation of
        such a certificate to a relying party that has not negotiated BRAID is
        prevented by <xref target="negotiation"/>, so criticality never affects a
        client that has not asked for it.
      </t>
      <t>
        The extension is deliberately small. It carries:
      </t>
      <ul>
        <li>a bitmap of which strands are required;</li>
        <li>the DNS name at which the Anchor is published;</li>
        <li>
          where the Routing strand is required, the authorized origin AS numbers and
          any bound address prefixes, expressed using the ASN.1 resource types of
          <xref target="RFC3779"/> imported into a field native to this extension
          (<xref target="routing"/>);
        </li>
        <li>
          where the Witness strand is required, the appointed witness identity and
          ledger locator (<xref target="witness"/>);
        </li>
        <li>optionally, a set of name constraints limiting which identities an
          authentication credential may assert (<xref target="constraints"/>); and</li>
        <li>the policy mode under which the certificate was issued
          (<xref target="deployment"/>).</li>
      </ul>
      <t>
        A certificate <bcp14>SHOULD</bcp14> additionally carry the TLS Feature
        extension <xref target="RFC7633"/> listing the <tt>braid_chain</tt>
        ExtensionType, so that tooling which already parses that extension can observe
        the requirement.
      </t>

      <section anchor="routing-types">
        <name>Use of RFC 3779 types</name>
        <t>
          The routing parameters import the IP address and AS identifier ASN.1 types
          of <xref target="RFC3779"/> but <bcp14>MUST NOT</bcp14> use that document's
          extension object identifiers. The distinction is semantic. An
          <xref target="RFC3779"/> extension asserts resource holdership, validated by
          containment within the delegation hierarchy of the address registries; a
          WebPKI certification authority has no standing in that hierarchy and
          performs no such validation. What a BRAID certificate expresses is a
          subscriber-requested constraint on where the certificate may be served from.
          Encoding the latter under the object identifiers of the former would
          misstate the claim and would mislead relying party software that treats
          those identifiers as holdership assertions.
        </t>
      </section>
    </section>

    <section anchor="identity">
      <name>The Identity Circuit Breaker</name>
      <t>
        The Identity strand is the base circuit breaker and is required in every BRAID
        profile.
      </t>

      <section anchor="identity-construction">
        <name>Construction</name>
        <t>
          The server holds an authentication credential: a Delegated Credential
          <xref target="RFC9345"/>, signed by the end-entity certificate's private
          key, whose private key produces the handshake signature. The owner publishes
          the hash of that credential's public key in the BRAID Anchor.
        </t>
        <t>
          A relying party requiring the Identity strand <bcp14>MUST</bcp14> verify all
          of the following:
        </t>
        <ol>
          <li>
            the Delegated Credential validates under <xref target="RFC9345"/> against
            the end-entity certificate;
          </li>
          <li>
            the credential is within its stated validity interval, and, where the
            Anchor declares the optional enhancement of <xref target="freshness"/>,
            that interval does not exceed the declared maximum;
          </li>
          <li>
            the Anchor RRset is DNSSEC-validated under <xref target="dnssec"/>, and
            the relying party's copy of it is no older than the maximum revocation
            latency it declares; and
          </li>
          <li>
            the hash of the credential's public key is a member of the authorized set
            in that Anchor.
          </li>
        </ol>
        <t>
          Failure of any of these fails the strand. Check 4 is the circuit breaker:
          the owner trips it by removing the entry.
        </t>
      </section>

      <section anchor="identity-binding">
        <name>Credential scope binding</name>
        <t>
          To prevent an authentication credential from being replayed in a context
          other than the one for which it was issued, the credential signature
          <bcp14>MUST</bcp14> bind the credential to the parent end-entity certificate
          and to the server identity asserted in the handshake, in addition to the
          binding <xref target="RFC9345"/> already provides. A relying party
          <bcp14>MUST</bcp14> reject a credential whose binding does not correspond to
          the certificate presented and the identity requested. The wire encoding of
          this binding is specified in <xref target="wire"/>.
        </t>
      </section>

      <section anchor="constraints">
        <name>Delegated name constraints</name>
        <t>
          A Delegated Credential inherits the full name scope of the certificate that
          signs it, and <xref target="RFC9345"/> provides no means to narrow it. Where
          a credential is held by a party that legitimately serves only part of a
          certificate's name space, such as a content delivery edge, this
          over-authorizes the holder. Name Constraints <xref target="RFC5280"/> are
          issued by certification authorities and do not apply to Delegated
          Credentials, so this document carries the constraint set in
          <tt>BRAIDBinding</tt>, expressed in the GeneralSubtrees syntax of
          <xref target="RFC5280"/>.
        </t>
        <t>
          A relying party requiring the Identity strand <bcp14>MUST</bcp14> reject a
          credential asserting an identity outside the constraint set. Matching
          follows <xref target="RFC6125"/> and is performed on lowercase A-labels; a
          wildcard is permitted only as the entire leftmost label, and a name that is
          malformed under these rules fails the strand rather than being repaired. An
          absent constraint set means the credential inherits the certificate's full
          name scope, as under <xref target="RFC9345"/> today.
        </t>
      </section>
    </section>

    <section anchor="twocontrol">
      <name>The Two-Control Property</name>
      <t>
        The Anchor authorizes the public keys of authentication credentials. It does
        not authorize the end-entity key, and it is not a publication of the
        end-entity certificate. This distinction produces the principal security
        property of this document.
      </t>
      <t>
        Consider an adversary who has obtained the end-entity private key. The
        adversary can mint a syntactically valid Delegated Credential, because the
        end-entity key is the delegating key; <xref target="RFC9345"/> alone cannot
        prevent this. The credential the adversary mints, however, names a public key
        the adversary controls, and the adversary cannot cause the hash of that key to
        appear in the owner's DNSSEC-signed Anchor without also obtaining the ability
        to publish in that zone. Check 4 of
        <xref target="identity-construction"/> therefore fails and the handshake is
        rejected.
      </t>
      <t>
        Conversely, an adversary who has obtained the ability to publish in the owner's
        zone can authorize a key of their choosing, but holds no certificate issued to
        the domain and no end-entity key with which to bind a credential to one.
      </t>
      <t>
        Impersonation therefore requires two capabilities that are independently held
        and, in a correct deployment, independently operated: possession of the
        end-entity private key, and the ability to publish in the DNSSEC-signed zone.
        This document refers to that as the Two-Control Property. It does not depend on
        any refresh interval; it follows from the Anchor authorizing credential keys
        and the relying party checking membership. It is preserved unchanged when the
        optional enhancement of <xref target="freshness"/> is not in use.
      </t>
      <t>
        The property is forfeited if the two capabilities are co-located, which is why
        <xref target="anchor-publication"/> counsels against it.
      </t>
    </section>

    <section anchor="latency">
      <name>Revocation Latency</name>
      <t>
        Withdrawal of an authorization is effective for a given relying party when that
        relying party next obtains the Anchor. Revocation is therefore not
        instantaneous, and this document does not claim that it is. It is bounded by
        the maximum revocation latency the Anchor declares, which in turn constrains
        how long a relying party may rely on a cached copy.
      </t>
      <t>
        The owner selects this bound, trading promptness against lookup volume. An
        owner requiring prompt invalidation publishes a short bound; an owner
        prioritizing cacheability publishes a longer one. A relying party
        <bcp14>MUST NOT</bcp14> rely on authorization state older than the declared
        bound, and <bcp14>MUST</bcp14> treat the Identity strand as failed if it cannot
        obtain state within it, subject to <xref target="degradation"/>.
      </t>
      <t>
        Compared to the mechanisms this replaces, the relevant comparison is not with
        an idealized instantaneous revocation but with revocation that is soft-failed,
        not consulted, or unavailable. A bound that the owner sets and can rely upon is
        a different kind of guarantee from one that is nominally immediate and in
        practice unenforced.
      </t>
    </section>

    <section anchor="freshness">
      <name>Optional Enhancement: Short-Interval Credential Refresh</name>
      <t>
        An operator <bcp14>MAY</bcp14> elect to issue authentication credentials with a
        short validity period and re-mint them periodically, declaring the maximum
        credential validity in the Anchor. This is an enhancement to the base profile,
        not a component of it, and it is the mechanism that -00 required.
      </t>
      <t>
        It provides two things the base profile does not:
      </t>
      <ul>
        <li>
          it bounds the exposure of a stolen <em>credential</em> key, which is the key
          most exposed to compromise because it is resident on serving hosts, without
          requiring the owner to notice the compromise and act; and
        </li>
        <li>
          it provides a second bound on revocation latency, independent of relying
          party caching behavior, because an unrefreshed credential ceases to be valid
          on its own.
        </li>
      </ul>
      <t>
        It costs a recurring operation: minting a credential and, where the credential
        key changes, updating the Anchor. Operators should weigh that against the two
        properties above. An operator who does not elect it retains the Two-Control
        Property, retains owner-controlled invalidation, and performs no recurring work;
        a stolen credential key then remains usable until the owner withdraws its
        authorization.
      </t>
      <t>
        Where this enhancement is in use, the recurring operation is a modification of
        a record in a zone the owner controls, on a schedule the owner chooses. It is
        not a transaction with a certification authority and is not gated by that
        authority's availability, rate limits, or validation procedures. Whether that
        relocation of work is an operational improvement depends on whether the
        operator already automates DNS, and this document does not claim it is
        universally so.
      </t>
    </section>

    <section anchor="routing">
      <name>Optional Strand: Routing</name>
      <t>
        The Routing strand constrains a certificate to a network origin authorized in
        the routing system, defending against an adversary who diverts traffic by
        originating the victim's address space in order to present a certificate they
        hold. Its contribution is at use time. Diversion mounted to obtain a
        certificate at issuance time is addressed at the point of issuance by
        multi-perspective corroboration requirements, and independently by the Identity
        strand, whose Anchor never authorizes the resulting credential.
      </t>
      <t>
        A relying party does not perform validation of Resource Public Key
        Infrastructure <xref target="RFC6480"/> objects in band. That validation is
        performed by relying party software that maintains a validated cache and
        distributes it to routers <xref target="RFC6810"/>
        <xref target="RFC8210"/>; this document follows the same separation. Two
        validation methods are defined, selected by certificate and relying party
        policy:
      </t>
      <dl>
        <dt>Resolver-validated</dt>
        <dd>
          The relying party consults a validating resolver or local gateway for the
          validation state of the connection's origin against the certificate's
          asserted constraints. No protocol presently allows a stub client to make this
          query; specifying one is companion work belonging to the DNS and routing
          communities, and is not defined here. Until it exists, this method is
          available where a local validator can be consulted directly.
        </dd>
        <dt>Witness-corroborated</dt>
        <dd>
          The relying party corroborates the certificate against independently reachable
          services co-located in the same prefix and treats a mismatch as evidence of
          diversion. This detects diversion in progress; it does not prevent a first
          connection through one. A certificate or policy requiring the
          resolver-validated method <bcp14>MUST NOT</bcp14> be satisfied by
          corroboration alone.
        </dd>
      </dl>
      <t>
        Address binding, where present, constrains the certificate to specific prefixes
        or addresses. It does not apply where the relying party connects through a
        terminating proxy or content delivery network, because the observed address is
        the intermediary's; such deployments omit it.
      </t>
    </section>

    <section anchor="witness">
      <name>Optional Strand: Witness</name>
      <t>
        The Witness strand adds a circuit breaker held by a party other than the domain
        owner and the certification authority. The owner appoints the witness in the
        certificate; the witness co-signs an attestation that the certificate is
        authorized, anchored in a verifiable log using the signed-timestamp and
        Merkle-log structures of <xref target="RFC6962"/> <xref target="RFC9162"/>.
      </t>
      <t>
        This is the only circuit breaker in this document that a party other than the
        owner can trip. The authority is <strong>owner-appointed and owner-scoped</strong>:
        a relying party requires a witness only where the certificate names one, and a
        certificate names one only because its subscriber chose to be subject to it. A
        party the owner has not appointed acquires no ability to invalidate anything.
        This scoping is a requirement, not a convention: distributing invalidation
        authority without it would create a denial-of-service capability against
        arbitrary domains.
      </t>
      <t>
        The role is open to any party able to operate a signing key under sound key
        management and publish to a supported log. It requires no relationship to the
        WebPKI. The witness <bcp14>MUST</bcp14> be operationally independent of both
        the issuing certification authority and the subscriber, with separate key
        custody and separate administrative control; a witness that is a business unit
        of the issuing authority does not satisfy this requirement, because the value of
        the strand is that no single organization holds all the controls.
      </t>
      <t>
        By default a witness attestation is made once, when the certificate is
        provisioned, and remains effective until withdrawn. A deployment
        <bcp14>MAY</bcp14> instead give attestations a validity period and require
        renewal, which provides a bound on exposure analogous to
        <xref target="freshness"/> and, correspondingly, a recurring cost and an
        availability dependency on the witness. Where renewal is required, a relying
        party <bcp14>MUST</bcp14> treat a lapsed attestation as withdrawn.
      </t>
    </section>

    <section anchor="negotiation">
      <name>Negotiation and Certificate Selection</name>
      <t>
        BRAID requires TLS 1.3 or later <xref target="RFC8446"/>, inherited from
        Delegated Credentials <xref target="RFC9345"/>.
      </t>
      <t>
        A client that implements this document offers the <tt>braid_chain</tt> extension
        in its ClientHello. A server holding a BRAID certificate <bcp14>SHOULD</bcp14>
        select it when that extension is offered, and <bcp14>MUST</bcp14> select a
        conventional certificate otherwise. A BRAID certificate <bcp14>MUST NOT</bcp14>
        be configured as a listener's default or fallback certificate, and a server that
        cannot determine whether the extension was offered <bcp14>MUST</bcp14> serve the
        conventional certificate.
      </t>
      <t>
        Consequently a relying party that has not adopted BRAID is never shown a BRAID
        certificate and is unaffected by its deployment. Misconfiguration fails safely
        and visibly: a client shown a BRAID certificate it did not negotiate rejects it
        on the unrecognized critical extension, which is a loud failure rather than a
        silent acceptance with reduced checking.
      </t>
      <t>
        Negotiation creates a first-contact substitution surface: an adversary holding a
        conventional certificate for the domain may present it to a BRAID-capable client
        that has no prior knowledge of the domain's policy. Three mitigations are
        defined, in increasing strength. The owner <bcp14>MAY</bcp14> publish a
        DNSSEC-signed policy record declaring that the domain presents BRAID
        certificates, which a BRAID-capable client <bcp14>MUST</bcp14> enforce once
        validated. A client <bcp14>SHOULD</bcp14> cache an observed policy for its stated
        lifetime. A domain <bcp14>MAY</bcp14> be enrolled in a preloaded set distributed
        with client software, in the manner of <xref target="RFC6797"/>, which protects
        first contact. Absent preloading, protection is second-impression, and this
        document does not claim otherwise.
      </t>
    </section>

    <section anchor="dnssec">
      <name>DNSSEC Validation</name>
      <t>
        The Identity strand requires the relying party to obtain the Anchor with its
        DNSSEC validation status. This is the dependency with the least encouraging
        deployment history, and this document does not claim to have overcome it. It
        confines the work to the smallest form found and defines two modes with
        different trust assumptions, so that a deployment states which it relies upon.
      </t>
      <dl>
        <dt>Validated-material mode</dt>
        <dd>
          The relying party verifies DNSSEC validation material for the Anchor itself,
          obtained from cached, stapled, or software-distributed authenticated
          snapshots, and identified by the reference transport of
          <xref target="transport"/>. It does not rely on an unauthenticated assertion
          of validation by a resolver. This mode is intended for relying parties that
          cannot trust their local resolution path.
        </dd>
        <dt>Managed-resolver mode</dt>
        <dd>
          The relying party relies on validation performed by a resolver it is
          configured to trust, reached over an authenticated and encrypted transport
          <xref target="RFC7858"/> <xref target="RFC8484"/>. This mode is appropriate
          where the resolver is operated under the same administrative policy as the
          relying party, and is not appropriate for a general-purpose client on an
          arbitrary network.
        </dd>
      </dl>
      <t>
        A relying party <bcp14>MUST NOT</bcp14> treat an unauthenticated assertion of
        DNSSEC validation from an arbitrary resolver as satisfying either mode.
      </t>
      <t>
        In-band transport of a DNSSEC chain in the manner of
        <xref target="RFC9102"/> is <bcp14>OPTIONAL</bcp14> and is not a dependency of
        this document; that specification is Experimental and did not reach consensus
        for the standards track in this working group, and the base profile does not
        rest on it.
      </t>
    </section>

    <section anchor="transport">
      <name>Proof Transport and Caching</name>
      <t>
        Anchor state and its validation material are transported by reference. The
        server sends compact identifiers in the <tt>braid_chain</tt> extension; the
        relying party resolves them from cache, and only on a miss obtains the material
        itself. Each reference is a cryptographic hash of the material it names, and a
        relying party <bcp14>MUST</bcp14> verify that any material it uses matches the
        reference before relying on it. Cache entries are therefore self-certifying and
        may be shared across connections and origins.
      </t>
      <t>
        This distinguishes BRAID from a queried status protocol. The relying party is
        not making a per-connection request to a third party about a particular
        certificate, and <bcp14>MUST NOT</bcp14> do so. On a cache miss it
        <bcp14>SHOULD</bcp14> obtain the material from the server it is already
        connecting to, which learns nothing new, and <bcp14>MAY</bcp14> use a shared
        repository only over a privacy-preserving transport such as
        <xref target="RFC9458"/> or from a prefetched snapshot. The privacy failure
        that attended online status checking is thereby avoided by construction rather
        than by policy.
      </t>
      <t>
        The steady-state server flight carries the certificate chain, the authentication
        credential, and compact references, and remains within the initial congestion
        window <xref target="RFC6928"/>. Because referenced material changes only when
        the owner changes it, the amortized per-connection cost approaches zero.
      </t>
      <t>
        A relying party <bcp14>MUST</bcp14> bound the number of references it will
        accept in a handshake to those required by the certificate's declared strands,
        <bcp14>MUST</bcp14> bound the size of material it will parse, and
        <bcp14>SHOULD</bcp14> negatively cache failed resolutions for a bounded interval.
      </t>
    </section>

    <section anchor="deployment">
      <name>Deployment</name>
      <t>
        Enforcement is staged, in the manner of <xref target="RFC7489"/>: a domain
        progresses from monitor, in which relying parties evaluate and report but do not
        block, through staged, to strict. An operator enables strict only on the
        evidence of its own monitoring.
      </t>
      <t>
        The first stage requires no protocol implementation by anyone. An owner
        publishes an Anchor and compares, out of band, the credentials its endpoints
        actually serve against the keys it has authorized. This detects
        misconfiguration, unauthorized issuance, and stale edge state, and it exercises
        the withdrawal path before anything depends on it. It requires no change to any
        TLS implementation, certification authority, or root program.
      </t>

      <section anchor="degradation">
        <name>Bounded degradation</name>
        <t>
          Where relying party policy permits, a relying party that cannot obtain Anchor
          state because of a verifiable and attributable infrastructure failure
          <bcp14>MAY</bcp14> degrade to conventional validation rather than failing
          closed. The evidence for such a failure <bcp14>MUST</bcp14> be unforgeable by
          an adversary who can merely cause requests to fail; an adversary positioned to
          withhold material can trivially manufacture the appearance of an outage, and a
          relying party <bcp14>MUST NOT</bcp14> accept, as evidence of outage, failures
          observed only over a path that adversary may control. Deployments requiring
          the strongest assurance <bcp14>SHOULD</bcp14> disable degradation.
        </t>
      </section>
    </section>

    <section anchor="comparison">
      <name>Relationship to Existing Mechanisms</name>

      <section anchor="cmp-tlsa">
        <name>DANE TLSA with certificate usage 1</name>
        <t>
          A domain owner may today publish, in DNSSEC, an association to its end-entity
          certificate <xref target="RFC6698"/>, and may withdraw that record to
          invalidate the association. This is simpler than BRAID and is available now,
          and any mechanism in this space must state what it adds.
        </t>
        <t>
          What it adds is the Two-Control Property (<xref target="twocontrol"/>). A
          certificate usage 1 association names the end-entity certificate. An adversary
          in possession of the end-entity private key presents the genuine certificate
          and proves possession of the genuine key; the association is satisfied and the
          relying party accepts. The association constrains which certification
          authority may have issued the certificate, which is a different and useful
          property, but it does not constrain who may use the key.
        </t>
        <t>
          A BRAID Anchor names authentication credential keys. An adversary in possession
          of the end-entity key can mint credentials but cannot authorize them, because
          authorization is published in a zone the adversary does not control.
          Impersonation requires both capabilities rather than either.
        </t>
        <t>
          Whether that additional property justifies the additional mechanism is a
          question this document poses rather than settles. It is offered as a genuine
          difference in what compromise is required, not as a reformulation.
        </t>
      </section>

      <section anchor="cmp-muststaple">
        <name>The TLS Feature extension</name>
        <t>
          <xref target="RFC7633"/> established the structural idea this document
          depends upon: a validation requirement signed into the certificate, which an
          on-path adversary cannot strip. Its deployment difficulty was that the
          requirement pointed at a dependency the subscriber did not operate, whose
          unavailability made hard failure untenable. BRAID retains the mechanism and
          reuses the extension, and changes the dependency to one the subscriber
          publishes and controls. Whether that is sufficient to make hard failure
          tenable is an empirical question, and the staged deployment of
          <xref target="deployment"/> exists so that operators can answer it for
          themselves before enforcing.
        </t>
      </section>

      <section anchor="cmp-dc">
        <name>Delegated Credentials</name>
        <t>
          This document uses <xref target="RFC9345"/> unchanged as a credential
          container. It adds an authorization check on the credential's public key and,
          optionally, a scope constraint. It does not modify the credential format,
          define a new one, or alter the semantics of the existing one.
        </t>
      </section>
    </section>

    <section anchor="wire">
      <name>Wire Format</name>
      <t>
        The encodings of the <tt>braid_chain</tt> TLS extension, the
        <tt>BRAIDBinding</tt> certificate extension, the BRAID Anchor RRset and its TXT
        interim form, the policy record, and the credential scope binding of
        <xref target="identity-binding"/> are not specified in this revision. They will
        be specified in a subsequent revision, informed by implementation of the
        deployment stage described in <xref target="deployment"/>, which does not depend
        on them.
      </t>
      <t>
        The author considers it more useful to establish whether the architecture is
        sound before fixing its encodings, and notes that the mechanism described here
        can be exercised operationally, as described in
        <xref target="impl"/>, without any of them.
      </t>
    </section>

    <section anchor="security">
      <name>Security Considerations</name>
      <t>
        <strong>Two-Control Property.</strong> The property of
        <xref target="twocontrol"/> holds only where the ability to publish in the
        DNSSEC-signed zone is not available from hosts holding the end-entity key. A
        deployment that automates Anchor publication from its TLS-terminating hosts has
        the outward appearance of BRAID and one control rather than two.
      </t>
      <t>
        <strong>Stolen credential keys.</strong> In the base profile, a stolen
        authentication credential key remains usable until its authorization is
        withdrawn. The base profile bounds the consequences of compromise by making
        withdrawal effective and unilateral; it does not bound them by expiry. Operators
        for whom unnoticed compromise is the dominant risk should elect
        <xref target="freshness"/>, which bounds exposure without requiring the
        compromise to be noticed.
      </t>
      <t>
        <strong>Revocation is not immediate.</strong> <xref target="latency"/> applies.
        A deployment that requires immediate global invalidation is not served by this
        mechanism.
      </t>
      <t>
        <strong>Availability.</strong> Strict enforcement couples the reachability of a
        service to the availability of its DNSSEC-signed zone. This is a real coupling
        and the staged deployment of <xref target="deployment"/>, the caching of
        <xref target="transport"/>, and the bounded degradation of
        <xref target="degradation"/> reduce but do not eliminate it. Degradation is
        itself an attack surface and is constrained accordingly.
      </t>
      <t>
        <strong>Resolution path.</strong> <xref target="dnssec"/> applies to the Anchor
        as it does to any DNSSEC-dependent mechanism. A relying party that cannot
        establish the validation status of the Anchor by one of the two defined modes
        <bcp14>MUST</bcp14> treat the strand as failed rather than as satisfied.
      </t>
      <t>
        <strong>Distributed invalidation authority.</strong> The Witness strand permits a
        party other than the owner to invalidate a certificate. This is a capability the
        owner grants deliberately by naming that party, and it is available to no party
        the owner has not named. A witness that is unavailable, compromised, or coerced
        can deny service to the domains that appointed it, which is the risk an owner
        accepts in exchange for the assurance the strand provides.
      </t>
      <t>
        <strong>Downgrade.</strong> <xref target="negotiation"/> analyses first-contact
        substitution and states plainly that, absent preloading, protection begins at
        second contact.
      </t>
      <t>
        <strong>Privacy.</strong> No per-connection query is made to any third party
        about a certificate or a domain. <xref target="transport"/> constrains cache-miss
        resolution so that this remains true in the non-steady state.
      </t>
    </section>

    <section anchor="impl">
      <name>Implementation Status</name>
      <t>
        This section records the status of implementation per
        <xref target="RFC7942"/>. It is to be removed before publication.
      </t>
      <t>
        No implementation of the negotiated protocol exists. The deployment stage
        described in <xref target="deployment"/> requires none, and an out-of-band
        monitor implementing it, which compares the credentials served by an endpoint
        against a DNSSEC-signed Anchor and reports the result, is under development by
        the author and is intended for demonstration at the IETF 126 Hackathon against
        infrastructure the author operates, including a domain, a private certification
        authority, and address space originated by the author's autonomous system.
      </t>
      <t>
        The components this document composes are individually deployed at scale:
        Delegated Credentials <xref target="RFC9345"/> in a major browser and in widely
        used TLS libraries; DNSSEC validation in major recursive resolvers; Certificate
        Transparency logging and monitoring <xref target="RFC6962"/>
        <xref target="RFC9162"/>; preload distribution in the manner of
        <xref target="RFC6797"/>; and issuance automation <xref target="RFC8555"/>.
      </t>
    </section>

    <section anchor="iana">
      <name>IANA Considerations</name>
      <t>
        This document requests, in a subsequent revision that specifies their encodings:
      </t>
      <ul>
        <li>a TLS ExtensionType for <tt>braid_chain</tt>;</li>
        <li>
          a single object identifier for the <tt>BRAIDBinding</tt> certificate
          extension, within which all parameters of this document are serialized, so
          that no additional certificate extension identifiers are required;
        </li>
        <li>a DNS RRTYPE for the BRAID Anchor and a format for the policy record;</li>
        <li>a log entry type for witness attestations; and</li>
        <li>registries for policy modes and strand identifiers.</li>
      </ul>
      <t>
        The Anchor and policy RRTYPEs require DNS expert review; the validated-origin
        query described in <xref target="routing"/> belongs to the DNS and routing
        communities; and the ASN.1 of <tt>BRAIDBinding</tt>, including its
        syntax-only import of the resource types of <xref target="RFC3779"/>, warrants
        review by the working group responsible for PKIX maintenance.
      </t>
    </section>

    <section anchor="ack">
      <name>Acknowledgements</name>
      <t>
        Eric Rescorla reviewed draft-davey-tls-braid-00 and identified that its
        mandatory credential refresh relocated rather than removed an operational
        burden, that operators would bear both that burden and conventional certificate
        renewal during any transition, that its reliance on client-side DNSSEC
        validation was not adequately addressed, and that its properties should be
        compared against publishing an end-entity association in DNSSEC directly. The
        architecture of this revision is a direct response to those observations, and
        the author is grateful for them.
      </t>
    </section>

  </middle>

  <back>

    <references>
      <name>Normative References</name>

      <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
        <front>
          <title>Key words for use in RFCs to Indicate Requirement Levels</title>
          <author initials="S." surname="Bradner"/>
          <date year="1997" month="March"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="2119"/>
      </reference>

      <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
        <front>
          <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
          <author initials="B." surname="Leiba"/>
          <date year="2017" month="May"/>
        </front>
        <seriesInfo name="BCP" value="14"/>
        <seriesInfo name="RFC" value="8174"/>
      </reference>

      <reference anchor="RFC3779" target="https://www.rfc-editor.org/info/rfc3779">
        <front>
          <title>X.509 Extensions for IP Addresses and AS Identifiers</title>
          <author initials="C." surname="Lynn"/>
          <date year="2004" month="June"/>
        </front>
        <seriesInfo name="RFC" value="3779"/>
      </reference>

      <reference anchor="RFC5280" target="https://www.rfc-editor.org/info/rfc5280">
        <front>
          <title>Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile</title>
          <author initials="D." surname="Cooper"/>
          <date year="2008" month="May"/>
        </front>
        <seriesInfo name="RFC" value="5280"/>
      </reference>

      <reference anchor="RFC6125" target="https://www.rfc-editor.org/info/rfc6125">
        <front>
          <title>Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)</title>
          <author initials="P." surname="Saint-Andre"/>
          <date year="2011" month="March"/>
        </front>
        <seriesInfo name="RFC" value="6125"/>
      </reference>

      <reference anchor="RFC7633" target="https://www.rfc-editor.org/info/rfc7633">
        <front>
          <title>X.509v3 Transport Layer Security (TLS) Feature Extension</title>
          <author initials="P." surname="Hallam-Baker"/>
          <date year="2015" month="October"/>
        </front>
        <seriesInfo name="RFC" value="7633"/>
      </reference>

      <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446">
        <front>
          <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
          <author initials="E." surname="Rescorla"/>
          <date year="2018" month="August"/>
        </front>
        <seriesInfo name="RFC" value="8446"/>
      </reference>

      <reference anchor="RFC9345" target="https://www.rfc-editor.org/info/rfc9345">
        <front>
          <title>Delegated Credentials for TLS and DTLS</title>
          <author initials="R." surname="Barnes"/>
          <date year="2023" month="July"/>
        </front>
        <seriesInfo name="RFC" value="9345"/>
      </reference>
    </references>

    <references>
      <name>Informative References</name>

      <reference anchor="RFC6376" target="https://www.rfc-editor.org/info/rfc6376">
        <front>
          <title>DomainKeys Identified Mail (DKIM) Signatures</title>
          <author initials="D." surname="Crocker"/>
          <date year="2011" month="September"/>
        </front>
        <seriesInfo name="RFC" value="6376"/>
      </reference>

      <reference anchor="RFC6480" target="https://www.rfc-editor.org/info/rfc6480">
        <front>
          <title>An Infrastructure to Support Secure Internet Routing</title>
          <author initials="M." surname="Lepinski"/>
          <date year="2012" month="February"/>
        </front>
        <seriesInfo name="RFC" value="6480"/>
      </reference>

      <reference anchor="RFC6698" target="https://www.rfc-editor.org/info/rfc6698">
        <front>
          <title>The DNS-Based Authentication of Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA</title>
          <author initials="P." surname="Hoffman"/>
          <date year="2012" month="August"/>
        </front>
        <seriesInfo name="RFC" value="6698"/>
      </reference>

      <reference anchor="RFC6797" target="https://www.rfc-editor.org/info/rfc6797">
        <front>
          <title>HTTP Strict Transport Security (HSTS)</title>
          <author initials="J." surname="Hodges"/>
          <date year="2012" month="November"/>
        </front>
        <seriesInfo name="RFC" value="6797"/>
      </reference>

      <reference anchor="RFC6810" target="https://www.rfc-editor.org/info/rfc6810">
        <front>
          <title>The Resource Public Key Infrastructure (RPKI) to Router Protocol</title>
          <author initials="R." surname="Bush"/>
          <date year="2013" month="January"/>
        </front>
        <seriesInfo name="RFC" value="6810"/>
      </reference>

      <reference anchor="RFC6928" target="https://www.rfc-editor.org/info/rfc6928">
        <front>
          <title>Increasing TCP's Initial Window</title>
          <author initials="J." surname="Chu"/>
          <date year="2013" month="April"/>
        </front>
        <seriesInfo name="RFC" value="6928"/>
      </reference>

      <reference anchor="RFC6962" target="https://www.rfc-editor.org/info/rfc6962">
        <front>
          <title>Certificate Transparency</title>
          <author initials="B." surname="Laurie"/>
          <date year="2013" month="June"/>
        </front>
        <seriesInfo name="RFC" value="6962"/>
      </reference>

      <reference anchor="RFC7208" target="https://www.rfc-editor.org/info/rfc7208">
        <front>
          <title>Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1</title>
          <author initials="S." surname="Kitterman"/>
          <date year="2014" month="April"/>
        </front>
        <seriesInfo name="RFC" value="7208"/>
      </reference>

      <reference anchor="RFC7489" target="https://www.rfc-editor.org/info/rfc7489">
        <front>
          <title>Domain-based Message Authentication, Reporting, and Conformance (DMARC)</title>
          <author initials="M." surname="Kucherawy"/>
          <date year="2015" month="March"/>
        </front>
        <seriesInfo name="RFC" value="7489"/>
      </reference>

      <reference anchor="RFC7858" target="https://www.rfc-editor.org/info/rfc7858">
        <front>
          <title>Specification for DNS over Transport Layer Security (TLS)</title>
          <author initials="Z." surname="Hu"/>
          <date year="2016" month="May"/>
        </front>
        <seriesInfo name="RFC" value="7858"/>
      </reference>

      <reference anchor="RFC7942" target="https://www.rfc-editor.org/info/rfc7942">
        <front>
          <title>Improving Awareness of Running Code: The Implementation Status Section</title>
          <author initials="Y." surname="Sheffer"/>
          <date year="2016" month="July"/>
        </front>
        <seriesInfo name="BCP" value="205"/>
        <seriesInfo name="RFC" value="7942"/>
      </reference>

      <reference anchor="RFC8210" target="https://www.rfc-editor.org/info/rfc8210">
        <front>
          <title>The Resource Public Key Infrastructure (RPKI) to Router Protocol, Version 1</title>
          <author initials="R." surname="Bush"/>
          <date year="2017" month="September"/>
        </front>
        <seriesInfo name="RFC" value="8210"/>
      </reference>

      <reference anchor="RFC8484" target="https://www.rfc-editor.org/info/rfc8484">
        <front>
          <title>DNS Queries over HTTPS (DoH)</title>
          <author initials="P." surname="Hoffman"/>
          <date year="2018" month="October"/>
        </front>
        <seriesInfo name="RFC" value="8484"/>
      </reference>

      <reference anchor="RFC8555" target="https://www.rfc-editor.org/info/rfc8555">
        <front>
          <title>Automatic Certificate Management Environment (ACME)</title>
          <author initials="R." surname="Barnes"/>
          <date year="2019" month="March"/>
        </front>
        <seriesInfo name="RFC" value="8555"/>
      </reference>

      <reference anchor="RFC9102" target="https://www.rfc-editor.org/info/rfc9102">
        <front>
          <title>TLS DNSSEC Chain Extension</title>
          <author initials="V." surname="Dukhovni"/>
          <date year="2021" month="August"/>
        </front>
        <seriesInfo name="RFC" value="9102"/>
      </reference>

      <reference anchor="RFC9162" target="https://www.rfc-editor.org/info/rfc9162">
        <front>
          <title>Certificate Transparency Version 2.0</title>
          <author initials="B." surname="Laurie"/>
          <date year="2021" month="December"/>
        </front>
        <seriesInfo name="RFC" value="9162"/>
      </reference>

      <reference anchor="RFC9458" target="https://www.rfc-editor.org/info/rfc9458">
        <front>
          <title>Oblivious HTTP</title>
          <author initials="M." surname="Thomson"/>
          <date year="2024" month="January"/>
        </front>
        <seriesInfo name="RFC" value="9458"/>
      </reference>
    </references>

  </back>
</rfc>