<?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.43 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-davidben-lamps-turducken-certs-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.1 -->
  <front>
    <title>Embedded Alternate Issuer Certificates</title>
    <seriesInfo name="Internet-Draft" value="draft-davidben-lamps-turducken-certs-00"/>
    <author fullname="David Benjamin">
      <organization>Google LLC</organization>
      <address>
        <email>davidben@google.com</email>
      </address>
    </author>
    <author initials="C." surname="Bonnell" fullname="Corey Bonnell">
      <organization>TurboLight Solutions, LLC</organization>
      <address>
        <email>corey.bonnell@turbolightsolutions.com</email>
      </address>
    </author>
    <author initials="J." surname="Gray" fullname="John Gray">
      <organization>Entrust</organization>
      <address>
        <email>john.gray@entrust.com</email>
      </address>
    </author>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization abbrev="Cryptic Forest">Cryptic Forest Software</organization>
      <address>
        <postal>
          <city>Sioux Lookout, Ontario</city>
          <country>Canada</country>
        </postal>
        <email>mike@ounsworth.ca</email>
      </address>
    </author>
    <date year="2026" month="November" day="02"/>
    <area>Security</area>
    <workgroup>Limited Additional Mechanisms for PKIX and SMIME</workgroup>
    <abstract>
      <?line 82?>

<t>This document defines a mechanism to embed one or more alternate certificates within a single outer certificate. The outer certificate remains parseable to a legacy relying party that is unaware of this specification. Each alternate certificate certifies the same subject information, but with a different issuer. This can be used to help TLS on the Web transition securely to post-quantum authentication, as well as other PKI transitions with similar constraints.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://davidben.github.io/turducken-certs/draft-davidben-lamps-turducken-certs.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-davidben-lamps-turducken-certs/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Limited Additional Mechanisms for PKIX and SMIME Working Group mailing list (<eref target="mailto:spasm@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/spasm/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/spasm/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/davidben/turducken-certs"/>.</t>
    </note>
  </front>
  <middle>
    <?line 86?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>In transitioning a Public Key Infrastructure (PKI) to post-quantum cryptography, it is necessary to reconfigure relying parties to reject legacy trust anchors before cryptographically-relevant quantum computers (CRQCs) become readily available. Otherwise, provisioning a service with a post-quantum certificate does not prevent downgrade attacks since an attacker equipped with a CRQC can attack any trust anchor that the relying party still trusts in order to forge a trusted certificate, not necessarily the one that issued the legitimate certificate. The service's choice of CA does not impact this attack, only the relying party's trust anchors.</t>
      <t>Some applications, such as TLS on the Web, have constraints that make this particularly challenging:</t>
      <ul spacing="normal">
        <li>
          <t>Upgraded relying parties must continue to connect to legacy services that do not yet support post-quantum algorithms. Waiting for services to universally become post-quantum-capable will take time.</t>
        </li>
        <li>
          <t>Relying parties support enough services that out-of-band configuration of which services have migrated to post-quantum is impractical.</t>
        </li>
        <li>
          <t>Services must themselves continue to support legacy relying parties that do not support post-quantum algorithms or trust anchors.</t>
        </li>
        <li>
          <t>In addition to lacking post-quantum algorithms, some legacy services are also unable to configure and select between multiple certificates based on trust anchor or CA signature, which precludes a solution whereby services are automatically issued separate traditional and PQ-rooted-traditional certificate chains.</t>
        </li>
      </ul>
      <t><xref target="PQ-AUTH-ROADMAP"/> and <xref target="IETF126-PQ-AUTH"/> discuss how, for these applications, it is sufficient to migrate to a state where:</t>
      <ol spacing="normal" type="1"><li>
          <t>Legacy services serve certificates with post-quantum issuers, even if the end entity keys are still traditional. This is known as a <em>post-quantum opt-out certificate</em>.</t>
        </li>
        <li>
          <t>Upgraded relying parties only accept post-quantum issuers, but accept both post-quantum and traditional end-entity keys.</t>
        </li>
      </ol>
      <t>A post-quantum opt-out certificate is a quantum-resistant proof that the service has authorized a traditional end entity key for upgraded relying parties. It is expected that only services that are not yet post-quantum-capable will authorize such certificates. A securely-configured post-quantum-capable service would authorize only its post-quantum key with post-quantum issuers, leaving its traditional key for traditional issuers and legacy relying parties.</t>
      <t>This issuer-side transition thus protects post-quantum services from downgrade, while remaining compatible with legacy services. However, the final two constraints prevent one from simply replacing every legacy service's certificate on renewal, because the legacy services will lose compatibility with legacy relying parties who do not have, or are incapable of processing, a post-quantum certification path and trust anchor.</t>
      <t>This document solves this by providing a mechanism to embed the post-quantum opt-out certificate into a legacy certificate in a way that will be ignored by legacy clients unaware of this specification. This meets the security goals of delivering the post-quantum opt-out signal to updated relying parties, while still presenting a compatible certificate to unmodified legacy relying parties. The embedding construction is also designed to meet two other requirements:</t>
      <ul spacing="normal">
        <li>
          <t>It avoids increasing the size of logged precertificates in Certificate Transparency (CT), as described in <xref target="certificate-transparency-log-sizes"/>.</t>
        </li>
        <li>
          <t>It aims to mitigate security risks of mismatched certificate contents between the outer and alternate certificates, as described in <xref target="certificate-mismatch"/>.</t>
        </li>
      </ul>
      <t>While the Web PKI is the primary motivator, this mechanism may be appropriate for other PKIs with similar post-quantum migration constraints, as well as other similarly-constrained issuer-side PKI transitions. In all cases, however, this is a temporary transitionary tool until services can deploy multiple certificates directly. <xref target="legacy-services"/> discusses this in more detail.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</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>
      <?line -18?>

<t>This document additionally uses the TLS presentation language defined in <xref section="3" sectionFormat="of" target="RFC9846"/>.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <dl>
          <dt>Subject:</dt>
          <dd>
            <t>The entity being described by a certificate.</t>
          </dd>
          <dt>Issuer:</dt>
          <dd>
            <t>The CA that certified the information in a certificate.</t>
          </dd>
          <dt>Outer certificate:</dt>
          <dd>
            <t>A certificate that embeds one or more alternate certificates using the mechanism defined in this document.</t>
          </dd>
          <dt>Certification Authority (CA):</dt>
          <dd>
            <t>The (name, key) tuple representing a certificate issuer.</t>
          </dd>
          <dt>Outer CA:</dt>
          <dd>
            <t>The CA that issues the outer certificate.</t>
          </dd>
          <dt>Alternate certificate:</dt>
          <dd>
            <t>One of the certificates embedded in the outer certificate. An alternate certificate certifies the same subject information as the outer certificate, but via a different issuer.</t>
          </dd>
          <dt>Alternate CA:</dt>
          <dd>
            <t>A CA that issues one of the alternate certificates.</t>
          </dd>
          <dt>Post-quantum opt-out certificate:</dt>
          <dd>
            <t>An end-entity certificate with a traditional subject key and post-quantum issuer. <xref target="PQ-AUTH-ROADMAP"/> embeds post-quantum opt-out certificates as alternate certificates in a fully traditional outer certificate. Other applications might issue and deploy them independently, without using this specification.</t>
          </dd>
        </dl>
      </section>
    </section>
    <section anchor="overview">
      <name>Overview</name>
      <t>Outer and alternate certificates are closely related and issued in an integrated process:</t>
      <ul spacing="normal">
        <li>
          <t>All certificates contain the same subject information, including <tt>subjectPublicKeyInfo</tt> and <tt>subjectAltName</tt>, but they differ in signature and issuer-specific information. The common subject-specific extensions all share an ordering.</t>
        </li>
        <li>
          <t>The outer certificate embeds an AlternateIssuerInfo for each alternate certificate. This contains both the signature and issuer-specific information for the alternate certificate. It is sufficient to reconstruct the alternate certificate.</t>
        </li>
        <li>
          <t>Each alternate certificate contains an outer certificate binding extension. This contains the issuer-specific fields of the outer certificate, but not the signature. This authenticates the outer certificate's issuer-specific information in relying parties that only trust the alternate CA.</t>
        </li>
      </ul>
      <section anchor="issuing-certificates">
        <name>Issuing Certificates</name>
        <t>After subject information is validated according to the policies of each CA involved, the certificates are issued in the following process:</t>
        <ol spacing="normal" type="1"><li>
            <t>The outer CA constructs an initial TBSCertificate with the validated subject information and issuer fields reflecting the outer CA. It sets <tt>notBefore</tt> and <tt>notAfter</tt> such that the certificate validity would be compatible with each alternate CA.</t>
          </li>
          <li>
            <t>For each alternate CA, run the following steps. The steps for each alternate CA <bcp14>MAY</bcp14> run in parallel.  </t>
            <ol spacing="normal" type="a"><li>
                <t>The alternate CA constructs a TBSCertificate based on the outer CA's initial TBSCertificate. The outer CA's issuer-specific fields are removed and replaced with ones reflecting the alternate CA.</t>
              </li>
              <li>
                <t>The alternate CA appends an outer certificate binding extension to its TBSCertificate, containing all fields removed or modified from the initial TBSCertificate, above. This authenticates the removed fields to a relying party that only trusts the alternate CA.</t>
              </li>
              <li>
                <t>The alternate CA signs its TBSCertificate to issue an alternate certificate. This TBSCertificate <bcp14>MUST</bcp14> satisfy the policies of the alternate CA.</t>
              </li>
              <li>
                <t>The alternate CA extracts the alternate certificate's issuer-specific fields and signature. It returns these to the outer CA as an AlternateIssuerInfo. This contains enough information for the relying party to reconstruct the alternate certificate.</t>
              </li>
            </ol>
          </li>
          <li>
            <t>If the outer CA participates in CT, run the following steps. These steps <bcp14>MAY</bcp14> run in parallel with step 2. If the outer CA does not participate in CT, skip these steps.  </t>
            <ol spacing="normal" type="a"><li>
                <t>The outer CA signs a precertificate for its initial TBSCertificate, including the critical poison extension, as described in <xref section="3.1" sectionFormat="of" target="RFC6962"/>.</t>
              </li>
              <li>
                <t>The outer CA then requests Signed Certificate Timestamps (SCTs) from CT logs.</t>
              </li>
            </ol>
          </li>
          <li>
            <t>The outer CA appends an <tt>id-ce-embeddedSCT-CTv1</tt> (OID 1.3.6.1.4.1.11129.2.4.2) extension to its initial TBSCertificate. The extension contains the AlternateIssuerInfo and, if applicable, SCTs collected above.</t>
          </li>
          <li>
            <t>The outer CA signs its final TBSCertificate to issue the outer certificate. This TBSCertificate <bcp14>MUST</bcp14> satisfy the policies of the outer CA.</t>
          </li>
        </ol>
        <t><xref target="fig-turducken-issuance"/> illustrates this process. Although the two issuance processes are now integrated, from the outer CA's perspective, it is analogous to embedding SCTs in CT. From the alternate CA's perspective, this is issuing a certificate with a specific extension added.</t>
        <figure anchor="fig-turducken-issuance">
          <name>A diagram of how the alternate and outer certificates are issued. A is the outer CA, and B is an alternate CA.</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="592" width="496" viewBox="0 0 496 592" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,96 L 8,160" fill="none" stroke="black"/>
                <path d="M 8,416 L 8,576" fill="none" stroke="black"/>
                <path d="M 32,512 L 32,576" fill="none" stroke="black"/>
                <path d="M 152,96 L 152,160" fill="none" stroke="black"/>
                <path d="M 152,416 L 152,576" fill="none" stroke="black"/>
                <path d="M 184,416 L 184,576" fill="none" stroke="black"/>
                <path d="M 272,272 L 272,400" fill="none" stroke="black"/>
                <path d="M 288,96 L 288,160" fill="none" stroke="black"/>
                <path d="M 288,512 L 288,576" fill="none" stroke="black"/>
                <path d="M 296,368 L 296,400" fill="none" stroke="black"/>
                <path d="M 320,192 L 320,224" fill="none" stroke="black"/>
                <path d="M 344,432 L 344,464" fill="none" stroke="black"/>
                <path d="M 352,176 L 352,208" fill="none" stroke="black"/>
                <path d="M 408,512 L 408,576" fill="none" stroke="black"/>
                <path d="M 416,272 L 416,400" fill="none" stroke="black"/>
                <path d="M 432,96 L 432,160" fill="none" stroke="black"/>
                <path d="M 448,272 L 448,400" fill="none" stroke="black"/>
                <path d="M 488,176 L 488,208" fill="none" stroke="black"/>
                <path d="M 8,48 L 216,48" fill="none" stroke="black"/>
                <path d="M 272,48 L 480,48" fill="none" stroke="black"/>
                <path d="M 8,96 L 152,96" fill="none" stroke="black"/>
                <path d="M 288,96 L 432,96" fill="none" stroke="black"/>
                <path d="M 8,128 L 152,128" fill="none" stroke="black"/>
                <path d="M 192,128 L 248,128" fill="none" stroke="black"/>
                <path d="M 288,128 L 432,128" fill="none" stroke="black"/>
                <path d="M 8,160 L 152,160" fill="none" stroke="black"/>
                <path d="M 288,160 L 432,160" fill="none" stroke="black"/>
                <path d="M 352,176 L 488,176" fill="none" stroke="black"/>
                <path d="M 352,208 L 488,208" fill="none" stroke="black"/>
                <path d="M 272,272 L 448,272" fill="none" stroke="black"/>
                <path d="M 272,304 L 416,304" fill="none" stroke="black"/>
                <path d="M 272,336 L 416,336" fill="none" stroke="black"/>
                <path d="M 296,368 L 416,368" fill="none" stroke="black"/>
                <path d="M 272,400 L 448,400" fill="none" stroke="black"/>
                <path d="M 8,416 L 184,416" fill="none" stroke="black"/>
                <path d="M 8,448 L 152,448" fill="none" stroke="black"/>
                <path d="M 8,480 L 152,480" fill="none" stroke="black"/>
                <path d="M 32,512 L 152,512" fill="none" stroke="black"/>
                <path d="M 288,512 L 408,512" fill="none" stroke="black"/>
                <path d="M 32,544 L 152,544" fill="none" stroke="black"/>
                <path d="M 216,544 L 256,544" fill="none" stroke="black"/>
                <path d="M 288,544 L 408,544" fill="none" stroke="black"/>
                <path d="M 8,576 L 184,576" fill="none" stroke="black"/>
                <path d="M 288,576 L 408,576" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="352,464 340,458.4 340,469.6" fill="black" transform="rotate(90,344,464)"/>
                <polygon class="arrowhead" points="328,224 316,218.4 316,229.6" fill="black" transform="rotate(90,320,224)"/>
                <polygon class="arrowhead" points="256,128 244,122.4 244,133.6" fill="black" transform="rotate(0,248,128)"/>
                <polygon class="arrowhead" points="224,544 212,538.4 212,549.6" fill="black" transform="rotate(180,216,544)"/>
                <g class="text">
                  <text x="64" y="36">CERTIFICATION</text>
                  <text x="160" y="36">AUTHORITY</text>
                  <text x="208" y="36">A</text>
                  <text x="328" y="36">CERTIFICATION</text>
                  <text x="424" y="36">AUTHORITY</text>
                  <text x="472" y="36">B</text>
                  <text x="60" y="84">TBSCertificate</text>
                  <text x="324" y="84">TBSCertificate</text>
                  <text x="64" y="116">SUBJECT</text>
                  <text x="116" y="116">INFO</text>
                  <text x="344" y="116">SUBJECT</text>
                  <text x="396" y="116">INFO</text>
                  <text x="56" y="148">A</text>
                  <text x="84" y="148">INFO</text>
                  <text x="336" y="148">B</text>
                  <text x="364" y="148">INFO</text>
                  <text x="400" y="196">A</text>
                  <text x="428" y="196">INFO</text>
                  <text x="304" y="260">Alternate</text>
                  <text x="392" y="260">Certificate</text>
                  <text x="328" y="292">SUBJECT</text>
                  <text x="380" y="292">INFO</text>
                  <text x="432" y="308">B</text>
                  <text x="320" y="324">B</text>
                  <text x="348" y="324">INFO</text>
                  <text x="432" y="340">S</text>
                  <text x="304" y="356">Outer</text>
                  <text x="348" y="356">Cert</text>
                  <text x="388" y="356">Bind</text>
                  <text x="432" y="356">I</text>
                  <text x="432" y="372">G</text>
                  <text x="336" y="388">A</text>
                  <text x="364" y="388">INFO</text>
                  <text x="24" y="404">Outer</text>
                  <text x="96" y="404">Certificate</text>
                  <text x="64" y="436">SUBJECT</text>
                  <text x="116" y="436">INFO</text>
                  <text x="168" y="452">A</text>
                  <text x="56" y="468">A</text>
                  <text x="84" y="468">INFO</text>
                  <text x="168" y="484">S</text>
                  <text x="36" y="500">SCTs</text>
                  <text x="168" y="500">I</text>
                  <text x="304" y="500">"SCT"</text>
                  <text x="168" y="516">G</text>
                  <text x="72" y="532">B</text>
                  <text x="100" y="532">INFO</text>
                  <text x="328" y="532">B</text>
                  <text x="356" y="532">INFO</text>
                  <text x="72" y="564">B</text>
                  <text x="96" y="564">SIG</text>
                  <text x="328" y="564">B</text>
                  <text x="352" y="564">SIG</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
 CERTIFICATION AUTHORITY A        CERTIFICATION AUTHORITY B
---------------------------      ---------------------------

TBSCertificate                   TBSCertificate
+-----------------+                +-----------------+
|   SUBJECT INFO  |                |   SUBJECT INFO  |
+-----------------+    ------->    +-----------------+
|     A INFO      |                |     B INFO      |
+-----------------+                +-----------------+
                                           +----------------+
                                       |   |     A INFO     |
                                       |   +----------------+
                                       V

                                 Alternate Certificate
                                 +-----------------+---+
                                 |   SUBJECT INFO  |   |
                                 +-----------------+ B |
                                 |     B INFO      |   |
                                 +-----------------+ S |
                                 | Outer Cert Bind | I |
                                 |  +--------------+ G |
                                 |  |    A INFO    |   |
Outer Certificate                +--+--------------+---+
+-----------------+---+
|   SUBJECT INFO  |   |                   |
+-----------------+ A |                   |
|     A INFO      |   |                   V
+-----------------+ S |
| SCTs            | I |            "SCT"
|  +--------------+ G |            +--------------+
|  |    B INFO    |   |            |    B INFO    |
|  +--------------+   |   <-----   +--------------+
|  |    B SIG     |   |            |    B SIG     |
+--+--------------+---+            +--------------+
]]></artwork>
          </artset>
        </figure>
        <t>While these are two distinct CAs, their policies and certificate issuance have to be sufficiently aligned to issue these closely related certificates. Often the two CAs will be operated by the same entity.</t>
        <t><xref target="certification-authorities"/> discusses certificate issuance in more detail.</t>
      </section>
      <section anchor="verifying-certificates">
        <name>Verifying Certificates</name>
        <t>When the certificate subject presents the outer certificate to a relying party, relying parties will attempt to validate one of several certificates:</t>
        <ul spacing="normal">
          <li>
            <t>Relying parties that are not aware of this protocol will ignore the unrecognized SCT type of <tt>alternate_issuer_info</tt> and validate the outer certificate as usual. <xref target="legacy-relying-parties"/> discusses this further.</t>
          </li>
          <li>
            <t>Upgraded relying parties will reconstruct the alternate certificates and use them as candidate target certificates when building certification paths <xref target="RFC4158"/>. If a relying party finds some valid certification path from some target certificate, outer or alternate, it proceeds with that certification path. This specification does not impose a preference for whether outer or alternate is used in a case where both have a valid certification path.</t>
          </li>
        </ul>
        <t>This allows the same certificate to serve both older relying parties that expect the outer CA, and newer relying parties that expect one of the alternate CAs.</t>
        <t><xref target="relying-parties"/> discusses this in more detail.</t>
      </section>
    </section>
    <section anchor="certification-authorities">
      <name>Certification Authorities</name>
      <section anchor="certificate-constraints">
        <name>Certificate Constraints</name>
        <t>Although outer and alternate certificates are conceptually separate, with relying parties accepting one or the other, they are constrained to both share subject information and incorporate parts of each other. Alternate certificates are incorporated into the outer certificate to transmit them. The outer certificate is also partially incorporated into the alternate certificate to mitigate a class of security risks in relying parties. These are described in more detail in <xref target="certificate-mismatch"/>.</t>
        <t>This means outer and alternate CAs are expected to coordinate their certificate profiles and issuance processes, as outlined in <xref target="issuing-certificates"/>. Concretely, the certificates are constrained as follows:</t>
        <t>The outer and alternate certificates <bcp14>MUST</bcp14> have a <tt>version</tt> of v3 and <bcp14>MUST</bcp14> omit <tt>issuerUniqueID</tt> and <tt>subjectUniqueID</tt>. These are preexisting requirements from Sections <xref target="RFC5280" section="4.1.2.1" sectionFormat="bare"/> and <xref target="RFC5280" section="4.1.2.8" sectionFormat="bare"/> of <xref target="RFC5280"/>.</t>
        <t>The outer and alternate certificates <bcp14>MUST</bcp14> have the same <tt>validity</tt>, <tt>subject</tt>, and <tt>subjectPublicKeyInfo</tt> values.</t>
        <t>The outer and alternate certificates' <tt>extensions</tt> lists <bcp14>MUST</bcp14> each consist of, in order, zero or more <em>common extensions</em>, zero or more <em>issuer-specific extensions</em>, and a single <em>final extension</em>. These <bcp14>MUST</bcp14> satisfy the following:</t>
        <ul spacing="normal">
          <li>
            <t>The common extensions across all certificates <bcp14>MUST</bcp14> be equal and appear in the same order.</t>
          </li>
          <li>
            <t>The issuer-specific extensions <bcp14>MUST NOT</bcp14> contain any of the following extensions:  </t>
            <ul spacing="normal">
              <li>
                <t><tt>id-ce-subjectKeyIdentifier</tt>, <xref section="4.2.1.2" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-ce-keyUsage</tt>, <xref section="4.2.1.3" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-ce-subjectAltName</tt>, <xref section="4.2.1.6" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-ce-subjectDirectoryAttributes</tt>, <xref section="4.2.1.8" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-ce-basicConstraints</tt>, <xref section="4.2.1.9" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-ce-nameConstraints</tt>, <xref section="4.2.1.10" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-ce-extKeyUsage</tt>, <xref section="4.2.1.12" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-pe-subjectInfoAccess</tt>, <xref section="4.2.2.2" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-CABFOrganizationIdentifier</tt>, <xref target="CABF-EV"/></t>
              </li>
            </ul>
          </li>
          <li>
            <t>PKI deployments <bcp14>MAY</bcp14> impose additional restrictions on issuer-specific extensions by policy. In particular, deployments <bcp14>SHOULD</bcp14> forbid extensions which would change the certificate's subject information in ways which would risk the issues described in <xref target="certificate-mismatch"/>. The following is a non-exhaustive list of extensions which would be safe to permit as issuer-specific in most applications:  </t>
            <ul spacing="normal">
              <li>
                <t><tt>id-ce-authorityKeyIdentifier</tt>, <xref section="4.2.1.1" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-ce-certificatePolicies</tt>, <xref section="4.2.1.4" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-ce-issuerAltName</tt>, <xref section="4.2.1.7" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-ce-cRLDistributionPoints</tt>, <xref section="4.2.1.13" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-ce-freshestCRL</tt>, <xref section="4.2.1.15" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-pe-authorityInfoAccess</tt>, <xref section="4.2.2.1" sectionFormat="of" target="RFC5280"/></t>
              </li>
              <li>
                <t><tt>id-pe-qcStatements</tt>, <xref section="3.2.6" sectionFormat="of" target="RFC3739"/></t>
              </li>
            </ul>
          </li>
          <li>
            <t>The outer certificate's final extension <bcp14>MUST</bcp14> have type <tt>id-ce-embeddedSCT-CTv1</tt>, with contents as described in <xref target="alternate-certificate-information"/>. This embeds each alternate certificate in the outer certificate.</t>
          </li>
          <li>
            <t>Each alternate certificate's final extension <bcp14>MUST</bcp14> have type <tt>id-pe-outerCertificateBinding</tt>, with contents as described in <xref target="outer-certificate-binding"/>. This authenticates most of the outer certificate from the alternate certificate.</t>
          </li>
        </ul>
      </section>
      <section anchor="alternate-certificate-information">
        <name>Alternate Certificate Information</name>
        <t>Each alternate certificate is described as differences from the outer certificate in an AlternateIssuerInfo structure. An AlternateIssuerInfo is defined as follows:</t>
        <sourcecode type="asn.1"><![CDATA[
AlternateIssuerInfo ::= SEQUENCE {
    serialNumber         CertificateSerialNumber,
    signatureAlgorithm   AlgorithmIdentifier{SIGNATURE-ALGORITHM,
                             {SignatureAlgorithms}},
    issuer               Name,
    commonExtensionCount INTEGER (0..MAX),
    issuerExtensions     SEQUENCE OF Extension{{CertExtensions}},
    signatureValue       BIT STRING
}
]]></sourcecode>
        <t>An AlternateIssuerInfo's fields are defined as follows:</t>
        <ul spacing="normal">
          <li>
            <t><tt>serialNumber</tt> is the alternate certificate's serial number.</t>
          </li>
          <li>
            <t><tt>signatureAlgorithm</tt> is the alternate certificate's signature algorithm. This value appears in both the TBSCertificate and Certificate structures.</t>
          </li>
          <li>
            <t><tt>issuer</tt> is the alternate certificate's issuer name.</t>
          </li>
          <li>
            <t><tt>commonExtensionCount</tt> is the number of common extensions, as defined in <xref target="certificate-constraints"/>. This value <bcp14>MUST</bcp14> be strictly less than the number of extensions in the outer certificate, to exclude the outer certificate's final extension.</t>
          </li>
          <li>
            <t><tt>issuerExtensions</tt> is the alternate certificate's issuer-specific extensions, as defined in <xref target="certificate-constraints"/>.</t>
          </li>
          <li>
            <t><tt>signatureValue</tt> is the alternate certificate's signature value. This is a signature over the reconstructed TBSCertificate, not the AlternateIssuerInfo.</t>
          </li>
        </ul>
        <section anchor="signed-certificate-timestamp-encoding">
          <name>Signed Certificate Timestamp Encoding</name>
          <t>The AlternateIssuerInfos for each alternate certificate are embedded in the outer certificate. Instead of a custom extension, this document embeds each AlternateIssuerInfo as a new type of SCT in the outer certificate's <tt>id-ce-embeddedSCT-CTv1</tt> (OID 1.3.6.1.4.1.11129.2.4.2) extension. This extension <bcp14>MUST</bcp14> be the final extension in the outer certificate. <xref target="certificate-transparency-log-sizes"/> discusses the motivation for embedding the alternate certificates as SCTs.</t>
          <t>The contents of this extension are defined in <xref section="3.3" sectionFormat="of" target="RFC6962"/>, but the definition is replicated here for clarity. The <tt>extnValue</tt> OCTET STRING field itself contains a DER-encoded OCTET STRING. This OCTET STRING's contents are SignedCertificateTimestampList defined using the TLS presentation language below. Note there are two layers of OCTET STRING encoding.</t>
          <sourcecode type="tls-presentation"><![CDATA[
opaque SerializedSCT<1..2^16-1>;

struct {
    SerializedSCT sct_list<1..2^16-1>;
} SignedCertificateTimestampList;
]]></sourcecode>
          <t>Each AlternateIssuerInfo is formated as a TransItem structure (<xref section="4.5" sectionFormat="of" target="RFC9162"/>) with a <tt>versioned_type</tt> of <tt>alternate_issuer_info</tt>, defined below:</t>
          <sourcecode type="tls-presentation"><![CDATA[
enum {
    alternate_issuer_info(TBD3), (0xFFFF)
} VersionedTransType;

struct {
    VersionedTransType versioned_type;
    select (versioned_type) {
        case alternate_issuer_info:
            opaque contents<1..2^16-1>;
    } data;
} TransItem;
]]></sourcecode>
          <t>The <tt>contents</tt> field contains the DER encoding of the AlternateIssuerInfo.</t>
          <t>The serialized TransItem is then placed in the SignedCertificateTimestampList as an opaque SerializedSCT. The SignedCertificateTimestampList <bcp14>MAY</bcp14> contain other SCT constructions, notably the SignedCertificateTimestamp structure defined in <xref section="3.2" sectionFormat="of" target="RFC6962"/> if the outer CA participates in CT. Per <xref target="legacy-relying-parties"/>, relying parties are expected to ignore unrecognized SCT versions.</t>
          <t>Note: <xref target="RFC6962"/> was obsoleted by <xref target="RFC9162"/>, but the two protocols use separate extensions. AlternateIssuerInfos are embedded in the extension from <xref target="RFC6962"/> for compatibility with existing deployments. They extend the structure from <xref target="RFC9162"/> to make use of the registry defined in <xref section="10.2.3" sectionFormat="of" target="RFC9162"/>. This can be embedded in the extension from <xref target="RFC6962"/> because the two-byte VersionedTransType type reserves 0x0000..0x00FF to avoid overlapping with SignedCertificateTimestamp's one-byte <tt>v1(0)</tt> version value. Allocating new values from VersionedTransType preserves this separation.</t>
        </section>
      </section>
      <section anchor="outer-certificate-binding">
        <name>Outer Certificate Binding</name>
        <t>Each alternate certificate contains an outer certificate binding extension, defined below:</t>
        <sourcecode type="asn.1"><![CDATA[
OuterCertificateBinding ::= SEQUENCE {
    serialNumber         CertificateSerialNumber,
    signatureAlgorithm   AlgorithmIdentifier{SIGNATURE-ALGORITHM,
                            {SignatureAlgorithms}},
    issuer               Name,
    commonExtensionCount INTEGER (0..MAX),
    issuerExtensions     SEQUENCE OF Extension{{CertExtensions}}
}

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

ext-outerCertificateBinding EXTENSION ::= {
    SYNTAX OuterCertificateBinding
    IDENTIFIED BY id-pe-outerCertificateBinding
    CRITICALITY FALSE
}
]]></sourcecode>
        <t>The OuterCertificateBinding structure is similar to the AlternateIssuerInfo, except that it does not contain a <tt>signatureValue</tt> field. It describes the outer certificate, relative to the alternate certificate.</t>
        <ul spacing="normal">
          <li>
            <t><tt>serialNumber</tt> is the outer certificate's serial number.</t>
          </li>
          <li>
            <t><tt>signatureAlgorithm</tt> is the outer certificate's signature algorithm. This value appears in both the TBSCertificate and Certificate structures.</t>
          </li>
          <li>
            <t><tt>issuer</tt> is the outer certificate's issuer name.</t>
          </li>
          <li>
            <t><tt>commonExtensionCount</tt> is the number of common extensions, as defined in <xref target="certificate-constraints"/>. This value <bcp14>MUST</bcp14> be strictly less than the number of extensions in the alternate certificate, to exclude the outer certificate binding extension itself.</t>
          </li>
          <li>
            <t><tt>issuerExtensions</tt> is the outer certificate's issuer-specific extensions, as defined in <xref target="certificate-constraints"/>.</t>
          </li>
        </ul>
        <t>The outer certificate binding extension <bcp14>MUST</bcp14> be the final extension in the alternate certificate and <bcp14>MUST</bcp14> be non-critical. It contains enough information to reconstruct the outer CA's initial TBSCertificate (see <xref target="issuing-certificates"/>). CAs <bcp14>MUST NOT</bcp14> issue an outer certificate binding extension if this reconstructed TBSCertificate violates the constraints in <xref target="certificate-constraints"/>, or is otherwise inconsistent with applicable policies. In particular, the <tt>issuerExtensions</tt> field <bcp14>MUST NOT</bcp14> contain any issuer-specific extensions forbidden by <xref target="certificate-constraints"/> or applicable policies.</t>
        <t>This binding mitigates the security risks described in <xref target="certificate-mismatch"/> by authenticating most of the replaced outer certificate by the alternate CA.</t>
        <t>Note that the design of this mechanism precludes nested alternate certificates since both the outer certificate's <tt>id-ce-embeddedSCT-CTv1</tt> extension, and the alternate certificate's <tt>id-pe-outerCertificateBinding</tt> extension must be last, thereby precluding a certificate from simultaneously being both an outer and alternate certificate. This does not preclude the alternate certificate from embedding SCTs because <xref target="RFC6962"/> does not have an ordering requirement.</t>
      </section>
    </section>
    <section anchor="relying-parties">
      <name>Relying Parties</name>
      <t>Relying parties process alternate certificates as an extension of X.509 path building <xref target="RFC4158"/>.</t>
      <t>While collecting candidate certification paths, a relying party checks if the outer certificate's final extension is <tt>id-ce-embeddedSCT-CTv1</tt>. If so, it looks for SCTs formatted as in <xref target="signed-certificate-timestamp-encoding"/>. For each such SCT, it decodes the AlternateIssuerInfo structure. For each successfully-decoded AlternateIssuerInfo, the relying party then reconstructs the alternate certificate as described in <xref target="reconstructing-the-alternate-certificate"/>.</t>
      <t>If successful, the alternate certificate is used as an alternate target certificate. The relying party then considers certification paths that end at the alternate certificate. If certification path validation (<xref section="6" sectionFormat="of" target="RFC5280"/>) succeeds for some path, the relying party proceeds with this path, as if it had found a valid path ending at the outer certificate.</t>
      <t>Certification paths for outer and alternate certificates are processed independently. Relying parties <bcp14>MAY</bcp14> extract and consider alternate certificates regardless of the trust, revocation, or expiry status of the outer certificate.</t>
      <t>An outer certificate with many AlternateIssuerInfo structures can require more processing time in the relying party. This is similar to path building itself <xref target="RFC4158"/>, X.509 policy validation <xref target="RFC9618"/>, certification path length, and other factors that contribute to X.509 scaling. Relying parties <bcp14>SHOULD</bcp14> limit the number of alternate certificates in a single outer certificate they will process. For example, if the relying party has a path building iteration limit, considering an alternate certificate can contribute to that limit. An attacker can inject arbitrarily many AlternateIssuerInfo structures into an unverified outer certificate, so this avoids a denial of service vector.</t>
      <section anchor="reconstructing-the-alternate-certificate">
        <name>Reconstructing the Alternate Certificate</name>
        <t>The following procedure reconstructs an alternate certificate from the outer certificate and an AlternateIssuerInfo.</t>
        <ol spacing="normal" type="1"><li>
            <t>Check each of the following. If any check fails, abort this procedure.  </t>
            <ul spacing="normal">
              <li>
                <t>The outer certificate's <tt>version</tt> is <tt>v3</tt>.</t>
              </li>
              <li>
                <t>The outer certificate's <tt>signatureAlgorithm</tt> and its TBSCertificate's <tt>signature</tt> fields are equal.</t>
              </li>
              <li>
                <t>The outer certificate has no <tt>subjectUniqueID</tt> or <tt>issuerUniqueID</tt> field.</t>
              </li>
              <li>
                <t>The outer certificate has at least <tt>commonExtensionCount + 1</tt> extensions and the final extension is <tt>id-ce-embeddedSCT-CTv1</tt>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Make a copy of the outer certificate as a Certificate structure.</t>
          </li>
          <li>
            <t>Replace the TBSCertificate's <tt>serialNumber</tt> field with the AlternateIssuerInfo's <tt>serialNumber</tt>. Let <tt>outerSerialNumber</tt> be the replaced value.</t>
          </li>
          <li>
            <t>Replace the Certificate's <tt>signatureAlgorithm</tt> field and the TBSCertificate's <tt>signature</tt> field with the AlternateIssuerInfo's <tt>signatureAlgorithm</tt>. Let <tt>outerSignatureAlgorithm</tt> be the replaced value.</t>
          </li>
          <li>
            <t>Replace the TBSCertificate's <tt>issuer</tt> field with the AlternateIssuerInfo's <tt>issuer</tt>. Let <tt>outerIssuer</tt> be the replaced value.</t>
          </li>
          <li>
            <t>Remove the TBSCertificate's final extension. The processing steps in <xref target="relying-parties"/> ensure this extension has type <tt>id-ce-embeddedSCT-CTv1</tt> and contains the AlternateIssuerInfo, formatted as described in <xref target="signed-certificate-timestamp-encoding"/>.</t>
          </li>
          <li>
            <t>Remove all but the first <tt>commonExtensionCount</tt> extensions in the TBSCertificate. Let <tt>outerIssuerExtensions</tt> be the removed extensions.</t>
          </li>
          <li>
            <t>Check <tt>outerIssuerExtensions</tt> and the AlternateIssuerInfo's <tt>issuerExtensions</tt> as described in <xref target="checking-issuer-specific-extensions"/>. If rejected, abort this procedure.</t>
          </li>
          <li>
            <t>Append the AlternateIssuerInfo's <tt>issuerExtensions</tt> to the TBSCertificate.</t>
          </li>
          <li>
            <t>Append a non-critical outer certificate binding extension (<xref target="outer-certificate-binding"/>) to the TBSCertificate such that:  </t>
            <ul spacing="normal">
              <li>
                <t><tt>serialNumber</tt> is <tt>outerSerialNumber</tt>.</t>
              </li>
              <li>
                <t><tt>signatureAlgorithm</tt> is <tt>outerSignatureAlgorithm</tt>.</t>
              </li>
              <li>
                <t><tt>issuer</tt> is <tt>outerIssuer</tt>.</t>
              </li>
              <li>
                <t><tt>commonExtensionCount</tt> is the AlternateIssuerInfo's <tt>commonExtensionCount</tt> value.</t>
              </li>
              <li>
                <t><tt>issuerExtensions</tt> is <tt>outerIssuerExtensions</tt>.</t>
              </li>
            </ul>
          </li>
          <li>
            <t>Replace the Certificate's <tt>signatureValue</tt> field with the AlternateIssuerInfo's <tt>signatureValue</tt>.</t>
          </li>
        </ol>
      </section>
      <section anchor="checking-issuer-specific-extensions">
        <name>Checking Issuer-Specific Extensions</name>
        <t><xref target="certificate-constraints"/> aims to forbid <tt>outerIssuerExtensions</tt> and <tt>issuerExtensions</tt> above from containing any extensions that would change the certificate's subject information. However, X.509 is extensible, so a relying party cannot enforce this restriction in full. In particular, relying parties <bcp14>MUST</bcp14> accept unrecognized issuer-specific extensions in this procedure. (If the unrecognized issuer-specific extension is critical, it will likely be rejected later during path validation.)</t>
        <t>The relying party <bcp14>SHOULD</bcp14> check for and reject the forbidden issuer-specific extensions listed in <xref target="certificate-constraints"/> and other issuer-specific extensions known to be forbidden by local policy. The relying party <bcp14>MAY</bcp14> skip this check for any extension that its path verifier does not recognize. It also <bcp14>MAY</bcp14> skip this check if all subsequent access checks reliably inspect the correct certificate, as described in <xref target="certificate-mismatch"/>.</t>
      </section>
      <section anchor="input-certificates-and-validated-certificates">
        <name>Input Certificates and Validated Certificates</name>
        <t>For this section, we define the input certificate to be the entire certificate being processed (typically the outer certificate), and the validated certificate to be the one for which the certification path was checked, which may be the outer certificate or an alternate certificate.
Note that the input certificate will always contain the validated target certificate, but does not specify which one it is.
This section considers potential impacts of the input certificate and the validated certificate being different.</t>
        <t>In contexts that are defined based on the certificate that was sent over the wire, the input certificate is used. For example:</t>
        <ul spacing="normal">
          <li>
            <t>The TLS transcript hash (<xref section="4.1" sectionFormat="of" target="RFC9846"/>) is computed from the Certificate message and thus the bytes of the input certificate.</t>
          </li>
          <li>
            <t>The tls-server-end-point channel binding (<xref section="4" sectionFormat="of" target="RFC5929"/>) is computed from the bytes of the input certificate.</t>
          </li>
        </ul>
        <t>In contexts that are defined based on the certificate that was validated, notably access control checks, the validated certificate <bcp14>SHOULD</bcp14> be used. <xref target="certificate-mismatch"/> discusses this case in more detail.</t>
        <t>This distinction is a generalization of an existing distinction in path-building X.509 applications. The input list of certificates may differ from the final certification path that was built. Applications are already expected to separate these cases, but they were not previously required to consider different target certificates.</t>
      </section>
    </section>
    <section anchor="deployment-considerations">
      <name>Deployment Considerations</name>
      <section anchor="legacy-services">
        <name>Legacy Services</name>
        <t>This document defines a temporary transitionary mechanism for deployments where some legacy services do not support multiple certificates. Services that support multiple certificates directly <bcp14>SHOULD NOT</bcp14> use this mechanism. Deployments are <bcp14>RECOMMENDED</bcp14> to enforce this in CAs and relying parties.</t>
        <t>For example, in a post-quantum transition for TLS, this mechanism is only applicable to unmodified legacy services that only have traditional end-entity keys. Once a service has a post-quantum end-entity key, it can be assumed to be relatively up-to-date and necessarily maintains separate end-entity keys for both legacy and post-quantum relying parties. The service also necessarily has sufficient certificate selection capabilities (<xref section="4.5.1.2" sectionFormat="of" target="RFC9846"/>) to select between its supported relying parties. Such a service would have no need for this document. Accordingly, in a TLS deployment using this mechanism for a post-quantum transition:</t>
        <ul spacing="normal">
          <li>
            <t>CAs <bcp14>SHOULD NOT</bcp14> embed alternate certificates if the end-entity key is post-quantum.</t>
          </li>
          <li>
            <t>Relying parties <bcp14>SHOULD</bcp14> ignore alternate certificates if the end-entity key is post-quantum.</t>
          </li>
        </ul>
        <t>This ensures that, when the post-quantum transition is completed, services will no longer rely on this mechanism and implementations can remove the supporting logic.</t>
        <t>A given deployment <bcp14>SHOULD</bcp14> only deploy this mechanism once, for only one transition. After that transition has completed, the deployment <bcp14>SHOULD</bcp14> have transitioned to a state where certificate holders support multiple certificates.</t>
      </section>
      <section anchor="legacy-relying-parties">
        <name>Legacy Relying Parties</name>
        <t>The primary backwards compatibility goal of this specification is that a relying party that is unaware of this specification will process the outer certificate as if the alternate was not present. This assumes that existing certificate parsers will ignore unrecognized SCTs of type <tt>alternate_issuer_info</tt> and continue processing the rest of the certificate as usual.</t>
        <t>This is believed to be the behavior of all existing parsers, and is supported by both <xref target="RFC6962"/> and <xref target="RFC9162"/>:</t>
        <t><xref section="3.3" sectionFormat="of" target="RFC6962"/> says:</t>
        <ul empty="true">
          <li>
            <t>This encoding ensures that TLS clients can
decode each SCT individually (i.e., if there is a version upgrade,
out-of-date clients can still parse old SCTs while skipping over new SCTs whose versions they don't understand).</t>
          </li>
        </ul>
        <t><xref section="6.3" sectionFormat="of" target="RFC9162"/> says:</t>
        <ul empty="true">
          <li>
            <t>This encoding ensures that TLS clients can decode each TransItem individually (so, for example, if there is a version upgrade, out-of-date clients can still parse old TransItem structures while skipping over new TransItem structures whose versions they don't understand).</t>
          </li>
        </ul>
      </section>
      <section anchor="certificate-transparency-log-sizes">
        <name>Certificate Transparency Log Sizes</name>
        <t>In deployments that use CT <xref target="RFC6962"/>, a direct post-quantum transition risks significantly increasing the sizes of CT logs. <xref target="IETF124-PLANTS"/> estimated an 8.3x size increase from migrating to ML-DSA-44.</t>
        <t>Merkle Tree Certificates <xref target="I-D.ietf-plants-merkle-tree-certs"/> provide a quantum-resistant transparency construction that avoids this size increase. However, when post-quantum Merkle Tree Certificates are embedded as alternate certificates, the resulting large AlternateIssuerInfo structures will instead be logged with the outer certificate. The traditional CT logs would increase in size during the transition to Merkle Tree Certificates.</t>
        <t><xref target="signed-certificate-timestamp-encoding"/> partially mitigates this new increase by embedding AlternateIssuerInfo structures in SCTs. When the outer certificate's precertificate is logged, the precertificate will omit these SCTs and thus the added structures.</t>
        <t>This is only a partial mitigation because the AlternateIssuerInfo will still be logged when the final certificate with embedded SCTs is logged. Deployments using this document to transition away from a CT-based PKI thus <bcp14>SHOULD</bcp14> permit CT logs to reject logging of any certificates with embedded SCTs of type <tt>alternate_issuer_info</tt>. This will not impact other embedded SCTs, which refer to logged precertificates rather than logged final certificates.</t>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="separate-certificates">
        <name>Separate Certificates</name>
        <t>Although each alternate certificate is ultimately encoded relative to the outer certificate, the alternate CA's signature is on the reconstructed alternate TBSCertificate, so it is still considered to have separately issued the reconstructed alternate certificate. In particular:</t>
        <ul spacing="normal">
          <li>
            <t>The alternate TBSCertificate <bcp14>MUST</bcp14> satisfy the policies of the alternate CA, including any domain validation. Misissuance of an alternate certificate remains misissuance.</t>
          </li>
          <li>
            <t>Revocation of each certificate is independent. Revoking the outer certificate does not revoke the alternate certificates and vice versa.</t>
          </li>
        </ul>
        <t>When relying parties evaluate candidate certification paths, they likewise treat each possible target certificate separately. If the relying party accepts an alternate certificate, it does not verify the outer certificate or even necessarily trust the outer CA. In particular, in the post-quantum transition, the outer CA is a traditional CA, so its key could be compromised by a CRQC.</t>
      </section>
      <section anchor="certificate-mismatch">
        <name>Certificate Mismatch</name>
        <t>Access checks in the relying party <bcp14>SHOULD</bcp14> act on the certification path that was ultimately validated, failing to do so can result in access control bypass vulnerabilities. In support of this, APIs that return the validated certification path <bcp14>SHOULD</bcp14> reflect the correct target certificate.</t>
        <t>However, this breaks an application invariant. Previously, the target certificate would never change as a result of path building. Which trust anchor it chains to and via which path might change, but the end entity certificate would not. An existing application might assume this invariant and inspect the original target certificate for some access check. If the application's X.509 implementation is updated independently from the rest of the application, it may inadvertently use the wrong certificate, which could carry security implications if the content of the alternate and outer certificate differ. In some cases, the X.509 implementation's APIs might not even return the validated path, only a success or failure status.</t>
        <t>X.509 implementations <bcp14>MAY</bcp14> further mitigate the risk by limiting alternate certificate support to applications that opt in. However, this might undesirably slow down PKI transitions that depend on alternate certificates. Additionally, a large application might opt in, yet forget to update some component.</t>
        <t>This document further mitigates this risk in two ways:</t>
        <ol spacing="normal" type="1"><li>
            <t>Where possible, limiting alternate certificates to encoding the same subject information as the outer certificate.</t>
          </li>
          <li>
            <t>Requiring the alternate CA to sign over removed or replaced outer certificate fields, via the outer certificate binding extension.</t>
          </li>
        </ol>
        <t>This contrasts with <xref target="I-D.bonnell-lamps-chameleon-certs"/> and <xref target="I-D.ietf-lamps-certdiscovery"/>, which allow the second certificate to differ significantly. There, the application is expected to be fully aware of the second certificate.</t>
        <t>If a more general protocol were instead used in this document, path validation might, for example, authenticate an alternate certificate's public key, while the rest of the application acts on a different, unverified public key in the outer certificate. This could allow an attacker to bypass certificate-based authentication. However, alternate certificates cannot replace the <tt>subjectPublicKeyInfo</tt> field in this document, so a public key mismatch is not possible.</t>
        <t>X.509 extensions complicate this mitigation. X.509 does not structurally distinguish between subject and issuer extensions, in a way that would allow a relying party to classify unrecognized extension types. If the relying party rejects unknown issuer-specific extensions, it is not possible to define new such extensions. However, if it accepts unknown extensions, it could allow an extension that downstream components depend on being the same between the alternate and outer certificate.</t>
        <t>Instead, the outer certificate binding extension mitigates this risk more generally. Except for <tt>id-ce-embeddedSCT-CTv1</tt>, extensions replaced or removed from the outer certificate are still signed by the alternate CA. This prevents an arbitrary attacker from manipulating those fields. <xref target="outer-certificate-binding"/> additionally holds the alternate CA responsible for meeting the requirements in <xref target="certificate-constraints"/> and other deployment-specific policies, to forbid the alternate CA itself from enabling an attack. CAs are expected to not sign unknown extensions, so this does not conflict with extensibility.</t>
        <t>Ultimately, the alternate CA is responsible for ensuring that any extensions removed or modified will not cause interoperability or security problems among the target relying party base.</t>
        <t>However, there are some cases where this is complicated by relying-party-imposed constraints on the CA. If the alternate CA were under, say, a name constraint (<xref section="4.2.1.10" sectionFormat="of" target="RFC5280"/>), the relying party could not rely on the alternate CA alone to mitigate subjectAltName mismatches. If the alternate certificate contained a permitted subjectAltName, while the outer certificate contained an excluded one, a mismatch could bypass the name constraint. <xref target="checking-issuer-specific-extensions"/> recommends that the relying party check replaced extensions in a more limited way. Though the relying party might not recognize all extensions, its path validator necessarily recognizes all extensions that it incorporates into path validation.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="pkix-module-identifier">
        <name>PKIX Module Identifier</name>
        <t>IANA is requested to add the following entry in the "SMI Security for PKIX Module Identifier" registry <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">TBD1</td>
              <td align="left">id-mod-embeddedAlternateIssuers-2026</td>
              <td align="left">[this-RFC]</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="pkix-certificate-extension">
        <name>PKIX Certificate Extension</name>
        <t>IANA is requested to add the following entry in the "SMI Security for PKIX Certificate Extension" registry <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">TBD2</td>
              <td align="left">id-pe-outerCertificateBinding</td>
              <td align="left">[this-RFC]</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="versioned-transparency-item-types">
        <name>Versioned Transparency Item Types</name>
        <t>IANA is requested to add the following entry in the "VersionedTransTypes" registry <xref target="RFC9162"/>:</t>
        <table>
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Type and Version</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TBD3</td>
              <td align="left">alternate_issuer_info</td>
              <td align="left">[this-RFC]</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="CABF-EV" target="https://cabforum.org/working-groups/server/extended-validation/documents/CA-Browser-Forum-EV-Guidelines-2.0.4.pdf">
          <front>
            <title>Guidelines for the Issuance and Management of Extended Validation Certificates</title>
            <author>
              <organization>CA/Browser Forum</organization>
            </author>
            <date year="2026" month="August" day="13"/>
          </front>
        </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="RFC9846">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="July" year="2026"/>
            <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 obsoletes RFC 8446, which specified TLS 1.3. This document obsoletes RFC 5246 (specifying TLS 1.2) and RFCs 5077, 6961, 7627, and 8422, all of which pertain to TLS 1.2 or earlier, and updates RFCs 5705 and 6066. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9846"/>
          <seriesInfo name="DOI" value="10.17487/RFC9846"/>
        </reference>
        <reference anchor="RFC6962">
          <front>
            <title>Certificate Transparency</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="A. Langley" initials="A." surname="Langley"/>
            <author fullname="E. Kasper" initials="E." surname="Kasper"/>
            <date month="June" year="2013"/>
            <abstract>
              <t>This document describes an experimental protocol for publicly logging the existence of Transport Layer Security (TLS) certificates as they are issued or observed, in a manner that allows anyone to audit certificate authority (CA) activity and notice the issuance of suspect certificates as well as to audit the certificate logs themselves. The intent is that eventually clients would refuse to honor certificates that do not appear in a log, effectively forcing CAs to add all issued certificates to the logs.</t>
              <t>Logs are network services that implement the protocol operations for submissions and queries that are defined in this document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6962"/>
          <seriesInfo name="DOI" value="10.17487/RFC6962"/>
        </reference>
        <reference anchor="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="RFC9162">
          <front>
            <title>Certificate Transparency Version 2.0</title>
            <author fullname="B. Laurie" initials="B." surname="Laurie"/>
            <author fullname="E. Messeri" initials="E." surname="Messeri"/>
            <author fullname="R. Stradling" initials="R." surname="Stradling"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This document describes version 2.0 of the Certificate Transparency (CT) protocol for publicly logging the existence of Transport Layer Security (TLS) server certificates as they are issued or observed, in a manner that allows anyone to audit certification 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>This document obsoletes RFC 6962. It also specifies a new TLS extension that is used to send various CT log artifacts.</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="9162"/>
          <seriesInfo name="DOI" value="10.17487/RFC9162"/>
        </reference>
        <reference anchor="RFC5912">
          <front>
            <title>New ASN.1 Modules for the Public Key Infrastructure Using X.509 (PKIX)</title>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="June" year="2010"/>
            <abstract>
              <t>The Public Key Infrastructure using X.509 (PKIX) certificate format, and many associated formats, are expressed using ASN.1. The current ASN.1 modules conform to the 1988 version of ASN.1. This document updates those ASN.1 modules to conform to the 2002 version of ASN.1. There are no bits-on-the-wire changes to any of the formats; this is simply a change to the syntax. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5912"/>
          <seriesInfo name="DOI" value="10.17487/RFC5912"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="PQ-AUTH-ROADMAP" target="https://www.chromium.org/Home/chromium-security/post-quantum-auth-roadmap/">
          <front>
            <title>Post-Quantum HTTPS Authentication Roadmap</title>
            <author initials="D." surname="Benjamin" fullname="David Benjamin">
              <organization/>
            </author>
            <author initials="J." surname="DeBlasio" fullname="Joe DeBlasio">
              <organization/>
            </author>
            <date year="2026" month="February" day="27"/>
          </front>
        </reference>
        <reference anchor="IETF126-PQ-AUTH" target="https://datatracker.ietf.org/meeting/126/materials/slides-126-saag-post-quantum-authentication-beating-the-s-curve-00">
          <front>
            <title>Post-Quantum Authentication: Beating the S-Curve</title>
            <author initials="D." surname="Benjamin" fullname="David Benjamin">
              <organization/>
            </author>
            <date year="2026" month="July" day="24"/>
          </front>
        </reference>
        <reference anchor="IETF124-PLANTS" target="https://datatracker.ietf.org/meeting/124/materials/slides-124-plants-solution-space-and-dispatched-work-00.pdf">
          <front>
            <title>PLANTS BoF: Solution Space and Dispatched Work</title>
            <author initials="D." surname="Benjamin" fullname="David Benjamin">
              <organization/>
            </author>
            <date year="2025" month="November" day="04"/>
          </front>
        </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="RFC3739">
          <front>
            <title>Internet X.509 Public Key Infrastructure: Qualified Certificates Profile</title>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="M. Nystrom" initials="M." surname="Nystrom"/>
            <author fullname="T. Polk" initials="T." surname="Polk"/>
            <date month="March" year="2004"/>
            <abstract>
              <t>This document forms a certificate profile, based on RFC 3280, for identity certificates issued to natural persons. The profile defines specific conventions for certificates that are qualified within a defined legal framework, named Qualified Certificates. However, the profile does not define any legal requirements for such Qualified Certificates. The goal of this document is to define a certificate profile that supports the issuance of Qualified Certificates independent of local legal requirements. The profile is however not limited to Qualified Certificates and further profiling may facilitate specific local needs. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3739"/>
          <seriesInfo name="DOI" value="10.17487/RFC3739"/>
        </reference>
        <reference anchor="RFC9618">
          <front>
            <title>Updates to X.509 Policy Validation</title>
            <author fullname="D. Benjamin" initials="D." surname="Benjamin"/>
            <date month="August" year="2024"/>
            <abstract>
              <t>This document updates RFC 5280 to replace the algorithm for X.509 policy validation with an equivalent, more efficient algorithm. The original algorithm built a structure that scaled exponentially in the worst case, leaving implementations vulnerable to denial-of-service attacks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9618"/>
          <seriesInfo name="DOI" value="10.17487/RFC9618"/>
        </reference>
        <reference anchor="RFC5929">
          <front>
            <title>Channel Bindings for TLS</title>
            <author fullname="J. Altman" initials="J." surname="Altman"/>
            <author fullname="N. Williams" initials="N." surname="Williams"/>
            <author fullname="L. Zhu" initials="L." surname="Zhu"/>
            <date month="July" year="2010"/>
            <abstract>
              <t>This document defines three channel binding types for Transport Layer Security (TLS), tls-unique, tls-server-end-point, and tls-unique-for-telnet, in accordance with RFC 5056 (On Channel Binding).</t>
              <t>Note that based on implementation experience, this document changes the original definition of 'tls-unique' channel binding type in the channel binding type IANA registry. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5929"/>
          <seriesInfo name="DOI" value="10.17487/RFC5929"/>
        </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="7" month="October" 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 existing X.509 constructions 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-07"/>
        </reference>
        <reference anchor="I-D.bonnell-lamps-chameleon-certs">
          <front>
            <title>A Mechanism for Encoding Differences in Paired Certificates</title>
            <author fullname="Corey Bonnell" initials="C." surname="Bonnell">
              <organization>DigiCert</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust</organization>
            </author>
            <author fullname="D. Hook" initials="D." surname="Hook">
              <organization>KeyFactor</organization>
            </author>
            <author fullname="Tomofumi Okubo" initials="T." surname="Okubo">
              <organization>DigiCert</organization>
            </author>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust</organization>
            </author>
            <date day="18" month="October" year="2025"/>
            <abstract>
              <t>   This document specifies a method to efficiently convey the
   differences between two certificates in an X.509 version 3 extension.
   This method allows a relying party to extract information sufficient
   to reconstruct the paired certificate and perform certification path
   validation using the reconstructed certificate.  In particular, this
   method is especially useful as part of a key or signature algorithm
   migration, where subjects may be issued multiple certificates
   containing different public keys or signed with different CA private
   keys or signature algorithms.  This method does not require any
   changes to the certification path validation algorithm as described
   in RFC 5280.  Additionally, this method does not violate the
   constraints of serial number uniqueness for certificates issued by a
   single certification authority.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bonnell-lamps-chameleon-certs-07"/>
        </reference>
        <reference anchor="I-D.ietf-lamps-certdiscovery">
          <front>
            <title>A Mechanism for X.509 Certificate Discovery</title>
            <author fullname="Tomofumi Okubo" initials="T." surname="Okubo">
              <organization>Penguin Securities Pte. Ltd.</organization>
            </author>
            <author fullname="Corey Bonnell" initials="C." surname="Bonnell">
              <organization>TurboLight Solutions, LLC</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust</organization>
            </author>
            <author fullname="Mike Ounsworth" initials="M." surname="Ounsworth">
              <organization>Entrust</organization>
            </author>
            <author fullname="Joe Mandel" initials="J." surname="Mandel">
              <organization>AKAYLA, Inc.</organization>
            </author>
            <date day="1" month="November" year="2026"/>
            <abstract>
              <t>   This document specifies a method to discover a referenced X.509
   certificate associated with the current X.509 certificate.  This
   enables efficient multi-certificate or fallback certificate handling
   in protocols.  The objective is threefold: to enhance cryptographic
   agility, improve operational availability, and accommodate multi-key/
   certificate usage.  The proposed method aims to maximize
   compatibility with existing systems and is designed to be legacy-
   friendly, making it suitable for environments with a mix of legacy
   and new implementations.  It includes mechanisms to provide a URI
   from which the referenced X.509 certificate can be retrieved as well
   as information about the target certificate's signature and public
   key algorithm, empowering relying parties to make informed decisions
   on whether to retrieve the Referenced Certificate, and a certificate
   hash to ensure that the correct certificate was retrieved.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lamps-certdiscovery-05"/>
        </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>
    <?line 580?>

<section anchor="asn1-module">
      <name>ASN.1 Module</name>
      <t>This module uses structures defined in <xref target="RFC5912"/>.</t>
      <sourcecode type="asn.1"><![CDATA[
EmbeddedAlternateIssuers-2026
  { iso(1) identified-organization(3) dod(6) internet(1)
    security(5) mechanisms(5) pkix(7) id-mod(0)
    id-mod-embeddedAlternateIssuers-2026(TBD1) }

DEFINITIONS IMPLICIT TAGS ::=
BEGIN

IMPORTS
  SIGNATURE-ALGORITHM, AlgorithmIdentifier{}
  FROM AlgorithmInformation-2009 -- in [RFC5912]
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-algorithmInformation-02(58) }
  Extension{}, EXTENSION
  FROM PKIX-CommonTypes-2009 -- in [RFC5912]
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-pkixCommon-02(57) }
  CertExtensions
  FROM PKIX1Implicit-2009 -- in [RFC5912]
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-pkix1-implicit-02(59) }
  Name, CertificateSerialNumber, SignatureAlgorithms
  FROM PKIX1Explicit-2009 -- in [RFC5912]
    { iso(1) identified-organization(3) dod(6) internet(1)
      security(5) mechanisms(5) pkix(7) id-mod(0)
      id-mod-pkix1-explicit-02(51) }
;

AlternateIssuerInfo ::= SEQUENCE {
    serialNumber         CertificateSerialNumber,
    signatureAlgorithm   AlgorithmIdentifier{SIGNATURE-ALGORITHM,
                             {SignatureAlgorithms}},
    issuer               Name,
    commonExtensionCount INTEGER (0..MAX),
    issuerExtensions     SEQUENCE OF Extension{{CertExtensions}},
    signatureValue       BIT STRING
}

OuterCertificateBinding ::= SEQUENCE {
    serialNumber         CertificateSerialNumber,
    signatureAlgorithm   AlgorithmIdentifier{SIGNATURE-ALGORITHM,
                            {SignatureAlgorithms}},
    issuer               Name,
    commonExtensionCount INTEGER (0..MAX),
    issuerExtensions     SEQUENCE OF Extension{{CertExtensions}}
}

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

ext-outerCertificateBinding EXTENSION ::= {
    SYNTAX OuterCertificateBinding
    IDENTIFIED BY id-pe-outerCertificateBinding
    CRITICALITY FALSE
}

END
]]></sourcecode>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thanks to the authors of <xref target="I-D.bonnell-lamps-chameleon-certs"/> and <xref target="I-D.ietf-lamps-certdiscovery"/> for exploring the space of how to represent related certificates. While this document is intentionally more specialized, it has benefited significantly from their work.</t>
      <t>Thanks also to Bob Beck for reviewing the document and providing feedback.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
