<?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.29 (Ruby 3.2.3) -->
<?rfc rfcedstyle="yes"?>
<?rfc tocindent="yes"?>
<?rfc strict="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc text-list-symbols="-o*+"?>
<?rfc docmapping="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-yusef-tls-pqt-dual-certs-01" category="std" consensus="true" submissionType="IETF" xml:lang="en" updates="RFC9261, RFC8446" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="PQ/T Dual Certs in TLS">Post-Quantum Traditional (PQ/T) Hybrid Authentication with Dual Certificates in TLS 1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-yusef-tls-pqt-dual-certs-01"/>
    <author initials="R." surname="Shekh-Yusef" fullname="Rifaat Shekh-Yusef">
      <organization>Ciena</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>rifaat.s.ietf@gmail.com</email>
      </address>
    </author>
    <author initials="H." surname="Tschofenig" fullname="Hannes Tschofenig">
      <organization abbrev="H-BRS">University of Applied Sciences Bonn-Rhein-Sieg</organization>
      <address>
        <postal>
          <country>Germany</country>
        </postal>
        <email>hannes.tschofenig@gmx.net</email>
      </address>
    </author>
    <author initials="M." surname="Ounsworth" fullname="Mike Ounsworth">
      <organization>Entrust</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>mike.ounsworth@entrust.com</email>
      </address>
    </author>
    <author initials="T." surname="Reddy" fullname="Tirumaleswar Reddy">
      <organization>Nokia</organization>
      <address>
        <postal>
          <country>India</country>
        </postal>
        <email>kondtir@gmail.com</email>
      </address>
    </author>
    <author initials="Y." surname="Rosomakho" fullname="Yaroslav Rosomakho">
      <organization>Zscaler</organization>
      <address>
        <email>yrosomakho@zscaler.com</email>
      </address>
    </author>
    <date year="2025" month="December" day="17"/>
    <area>sec</area>
    <workgroup>TLS Working Group</workgroup>
    <keyword>PKI</keyword>
    <keyword>Post-Quantum Traditional (PQ/T) Hybrid Authentication</keyword>
    <keyword>PQC</keyword>
    <keyword>TLS</keyword>
    <abstract>
      <?line 61?>

<t>This document extends the TLS 1.3 authentication mechanism to allow the negotiation and use of two signature algorithms to enable dual-algorithm hybrid authentication, ensuring that an attacker would need to break both algorithms to compromise the session. The two signature algorithms come from two independent certificates that together produce a single <tt>Certificate</tt> and <tt>CertificateVerify</tt> message.</t>
    </abstract>
  </front>
  <middle>
    <?line 65?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>There are several potential mechanisms to address concerns related to the anticipated emergence of cryptographically relevant quantum computers (CRQCs). While the encryption-related aspects are covered in other documents, this document focuses on the authentication component of the <xref target="TLS"/> handshake.</t>
      <t>One approach is the use of dual certificates: issuing two distinct certificates for the same end entity — one using a traditional algorithm (e.g., <xref target="ECDSA"/>), and the other using a post-quantum (PQ) algorithm (e.g., <xref target="ML-DSA"/>).</t>
      <t>This document defines how TLS 1.3 can utilize such certificates to enable dual-algorithm authentication, ensuring that an attacker would need to break both algorithms to compromise the session.</t>
      <t>It also addresses the challenges of integrating hybrid authentication in TLS 1.3 while balancing backward compatibility, forward security, and deployment practicality.</t>
      <t>This document defines a new extension <tt>dual_signature_algorithms</tt> to negotiate support for two categories of signature algorithms, typically one set of traditional schemes and one set of PQ schemes. It also makes changes to the <tt>Certificate</tt> and <tt>CertificateVerify</tt> messages to take advantage of both certificates when authenticating the end entity.</t>
      <t>This method exemplifies a PQ/T hybrid protocol with non-composite authentication as defined in
 <xref section="4" sectionFormat="of" target="PQT-TERMS"/>, where two single-algorithm schemes are used in parallel: when the certificate type is X.509, each certificate chain uses the same format as in standard PKI, and both chains together provide hybrid assurance without modifying the X.509 certificate structure. While this approach does not produce a single cryptographic hybrid signature, it ensures that both certificates are presented, validated, and cryptographically bound to the TLS handshake transcript. This specification is also compatible with other certificate types defined in the TLS Certificate Types registry defined in <xref section="14" sectionFormat="of" target="IANA-TLS"/> provided that both components of the dual are of the same type. This document assumes X.509 certificates for all explanatory text.</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?>

</section>
    <section anchor="scope">
      <name>Scope</name>
      <t>The approach described herein is also compatible with FIPS-compliant deployments (FIPS 140-2 and FIPS 140-3), as it supports the continued use of FIPS-approved traditional signature algorithms during the TLS handshake.</t>
      <t>The proposed mechanism is fully backward compatible: traditional certificates and authentication methods remain functional with existing TLS 1.3 implementations. As cryptographically relevant quantum computers (CRQCs) emerge, deployments can transition by gradually disabling traditional authentication and enabling post-quantum–only authentication. This strategy offers a smooth migration path, ensuring long-term cryptographic agility, regulatory compliance, and operational continuity without disrupting existing infrastructure.</t>
    </section>
    <section anchor="design-overview">
      <name>Design Overview</name>
      <t>This document introduces a mechanism to enable dual-certificate authentication in TLS 1.3. The primary objective is to allow each TLS peer to present two certificate chains requiring an attacker to break both authentication algorithms to impersonate a peer. Typically one of the certificate chains is using a traditional cryptographic algorithms while the second leverages post-quantum (PQ) cryptography.</t>
      <t>The design builds on existing TLS 1.3 structures and introduces minimal protocol changes. It is applicable to both client and server authentication and is compatible with the Exported Authenticators mechanism <xref target="EXPORTED-AUTH"/>.</t>
      <t>A full set of informal design requirements for this specification can be found in <xref target="sec-design-requirements"/>.</t>
      <section anchor="signature-algorithms-negotiation">
        <name>Signature Algorithms Negotiation</name>
        <t>A new extension, <tt>dual_signature_algorithms</tt>, is defined to negotiate support for two distinct categories of signature algorithms. The extension carries two disjoint lists: one for traditional signature algorithms and one for post-quantum signature algorithms.</t>
        <ul spacing="normal">
          <li>
            <t>In the <tt>ClientHello</tt>, this extension indicates the client's supported traditional and PQ signature algorithms for dual certificate server authentication.</t>
          </li>
          <li>
            <t>In the <tt>CertificateRequest</tt>, this extension indicates the server's supported traditional and PQ signature algorithms for dual certificate client authentication.</t>
          </li>
        </ul>
        <t>This allows both endpoints to signal independently two distinct algorithms for dual authentication.</t>
        <t>The <tt>dual_signature_algorithms</tt> can also be used in <tt>extensions</tt> of <tt>CertificateRequest</tt> and <tt>ClientCertificateRequest</tt> structures of Authenticator Request message of Exported Authenticators as defined in <xref section="4" sectionFormat="of" target="EXPORTED-AUTH"/>.</t>
        <t>The <tt>dual_signature_algorithms</tt> extension does not replace <tt>signature_algorithms</tt>. Since <tt>signature_algorithms</tt> is required any time that certificate-based authentication is requested according to <xref section="4.2.3" sectionFormat="of" target="TLS"/>, TLS peers <bcp14>MUST</bcp14> include the <tt>signature_algorithms</tt> extension regardless of whether <tt>dual_signature_algorithms</tt> is used. The <tt>signature_algorithms</tt> extension indicates algorithms acceptable for single-certificate authentication and <bcp14>MUST</bcp14> contain either a non-empty list of such algorithms or be empty if only dual-certificate authentication is acceptable.</t>
      </section>
      <section anchor="certificate-chain-encoding">
        <name>Certificate Chain Encoding</name>
        <t>TLS 1.3 defines the <tt>Certificate</tt> message to carry a list of certificate entries representing a single chain. This document reuses the same structure to convey two certificate chains by concatenating them and inserting a delimiter in the form of a zero-length certificate entry.</t>
        <t>A zero-length certificate is defined as a <tt>CertificateEntry</tt> with an empty <tt>cert_data</tt> field and omitted <tt>extensions</tt> field. TLS 1.3 prohibits the use of empty certificate entries, making this delimiter an unambiguous boundary between the two certificate chains. Implementations <bcp14>MUST</bcp14> treat all entries before the zero-length delimiter as the first certificate chain (typically traditional), and all entries after it as the second certificate chain (typically post-quantum).</t>
        <t>This encoding applies equally to the <tt>CompressedCertificate</tt> message defined in <xref target="COMPRESS-CERT"/> and to the <tt>Certificate</tt> message of Exported Authenticators as defined in <xref section="5.2.1" sectionFormat="of" target="EXPORTED-AUTH"/>.</t>
        <t>Since TLS 1.3 supports only a single certificate type in each direction, both certificate chains <bcp14>MUST</bcp14> either contain X.509 certificates or certificates of type specified in:</t>
        <ul spacing="normal">
          <li>
            <t><tt>server_certificate_type</tt> extension in a <tt>EncryptedExtensions</tt> message for Server certificates</t>
          </li>
          <li>
            <t><tt>client_certificate_type</tt> extension in a <tt>EncryptedExtensions</tt> message for Client certificates</t>
          </li>
        </ul>
        <t>Note that according to <xref section="5.2.1" sectionFormat="of" target="EXPORTED-AUTH"/> Exported Authenticators support only X.509 certificates.</t>
      </section>
      <section anchor="certificateverify-signatures">
        <name>CertificateVerify Signatures</name>
        <t>The <tt>CertificateVerify</tt> message is extended to include two digital signatures:</t>
        <ol spacing="normal" type="1"><li>
            <t>One computed using a signature algorithm selected from the first list of the <tt>dual_signature_algorithms</tt> extension.</t>
          </li>
          <li>
            <t>One computed using a signature algorithm selected from the second list of the <tt>dual_signature_algorithms</tt> extension.</t>
          </li>
        </ol>
        <t>Each signature is computed over the transcript hash as specified in TLS 1.3, but with distinct context strings to domain-separate the two operations.</t>
        <t>This encoding applies equally to the <tt>CertificateVerify</tt> message of Exported Authenticators as defined in <xref section="5.2.2" sectionFormat="of" target="EXPORTED-AUTH"/>.</t>
        <t>The order of the signatures in the message <bcp14>MUST</bcp14> correspond to the order of the certificate chains in the Certificate message: the first signature <bcp14>MUST</bcp14> correspond to a traditional algorithm from <tt>first_signature_algorithms</tt> list of <tt>dual_signature_algorithms</tt> extension, while the second signature <bcp14>MUST</bcp14> correspond to a PQ algorithm from <tt>second_signature_algorithms</tt> list of <tt>dual_signature_algorithms</tt> extension.</t>
      </section>
      <section anchor="common-chains">
        <name>Common Chains</name>
        <t>In order to lessen operational burden on Certification Authority (CA) operators, the two certificates of the dual <bcp14>MAY</bcp14> be issued from the same CA. For example, during the PQC migration, a CA operator might wish to stand up a root CA using a Level 5 PQC algorithm or a hash-based signature, and then continue to issue RSA and ECDSA certificates off that root.</t>
        <t>Negotiation of such a setup requires use of the <tt>signature_algorithms_cert</tt> TLS 1.3 extension, which is unmodified from its definition in <xref section="4.2.3" sectionFormat="of" target="TLS"/> and when present it applies equally to both chains of the dual.</t>
        <t>In order to optimize bandwidth and avoid sending duplicate copies of the same chain, when constructing a <tt>Certificate</tt> message as described in <xref target="certificate"/>, the second certificate chain <bcp14>MAY</bcp14> consist of only an end-entity certificate.</t>
      </section>
    </section>
    <section anchor="protocol-changes">
      <name>Protocol Changes</name>
      <t>This section defines the normative changes to TLS 1.3 required to support dual-certificate authentication. These changes extend existing handshake messages and introduce the new extension.</t>
      <section anchor="dualsignaturealgorithms-extension">
        <name><tt>dual_signature_algorithms</tt> Extension</name>
        <section anchor="sec-structure">
          <name>Structure</name>
          <t>A new extension, <tt>dual_signature_algorithms</tt>, is defined to allow peers to advertise support for two distinct lists of signature algorithms, for example, traditional and post-quantum.</t>
          <t><tt>SignatureSchemeList</tt> is defined in <xref section="4.2.3" sectionFormat="of" target="TLS"/>, which is reproduced here:</t>
          <figure>
            <name>TLS 1.3 SignatureSchemeList</name>
            <artwork><![CDATA[
struct {
     SignatureScheme supported_signature_algorithms<2..2^16-2>;
} SignatureSchemeList;
]]></artwork>
          </figure>
          <t>This document defines the <tt>DualSignatureSchemeList</tt> extension to extend TLS 1.3's <tt>SignatureSchemesList</tt> in the obvious way to contain two lists.</t>
          <figure>
            <name>Contents of dual_signature_algorithms extension</name>
            <artwork type="ascii-art"><![CDATA[
struct {
    SignatureScheme first_signature_algorithms<2..2^16-2>;
    SignatureScheme second_signature_algorithms<2..2^16-2>;
} DualSignatureSchemeList;
]]></artwork>
          </figure>
          <t>SignatureScheme is a 2-octet value identifying a supported signature algorithm as defined in TLS SignatureScheme IANA registry.</t>
          <t>The <tt>dual_signature_algorithms</tt> extension <bcp14>MAY</bcp14> contain common elements with <tt>signature_algorithms</tt> if the peer wishes to advertize that it will accept a certain algorithm either standalone or as part of a dual signature. Listing an algorithm in <tt>signature_algorithms</tt> does not imply that it would be acceptable as part of a dual signature unless that algorithm also appears in one of the lists in <tt>dual_signature_algorithms</tt>. See <xref target="sec-policy-examples"/> for examples of cryptographic policies, and how to set <tt>signature_algorithms</tt> and <tt>dual_signature_algorithms</tt> to implement those policies.</t>
          <t>When parsing <tt>DualSignatureSchemeList</tt>, implementations <bcp14>MUST NOT</bcp14> make assumptions about which sub-list a given algorithm will appear in. As a test, if a TLS handshake containing a <tt>DualSignatureSchemeList</tt> succeeds, then an equivalent TLS handshake containing an equivalent <tt>DualSignatureSchemeList</tt> but with the first and second lists swapped <bcp14>MUST</bcp14> also succeed. However, it is not required that these two test cases result in the same selected signature algorithm and certificate. See <xref target="appdx-config"/> for a suggested configuration mechanism for selecting a preferred pair of algorithms.</t>
        </section>
        <section anchor="use-in-handshake-and-exported-authenticator-messages">
          <name>Use in Handshake and Exported Authenticator Messages</name>
          <t>The client <bcp14>MAY</bcp14> include this extension in <tt>ClientHello</tt> message to indicate the different combinations of dual algorithms it supports for verifying the server's signature. The server <bcp14>MAY</bcp14> include this extension in <tt>CertificateRequest</tt> message to indicate the different categories of algorithms it supports for verifying the client's signature. This extension <bcp14>MAY</bcp14> be included in an Authenticator Request by the requestor to signal support for dual certificates in the response.</t>
          <t>If the extension is present in <tt>ClientHello</tt>, <tt>CertificateRequest</tt> of <xref target="TLS"/> or Authenticator Request defined in <xref section="4" sectionFormat="of" target="EXPORTED-AUTH"/>, the peer <bcp14>MAY</bcp14> respond with a dual-certificate authentication structure. If the extension is absent, the peer <bcp14>MUST NOT</bcp14> send a two certificate chains or two signatures.</t>
          <t>The presence or absence of the <tt>dual_signature_algorithms</tt> indicates whether dual authentication is supported, but does not mandate it. The peer <bcp14>MAY</bcp14> select an authenticator advertised in a different extension, such as selecting a single algorithm from <tt>signature_algorithms</tt> and proceeding with single-algorithm <tt>Certificate</tt> and <tt>CertificateVerify</tt> messages as usual.</t>
        </section>
      </section>
      <section anchor="certificate">
        <name>Certificate Message Encoding</name>
        <t>TLS 1.3 defines the <tt>Certificate</tt> message as follows:</t>
        <figure>
          <name>TLS 1.3 Certificate message</name>
          <artwork type="ascii-art"><![CDATA[
struct {
    opaque certificate_request_context<0..2^8-1>;
    CertificateEntry certificate_list<0..2^24-1>;
} Certificate;
]]></artwork>
        </figure>
        <t>This document re-uses the <tt>Certificate</tt> structure as-is and extends the semantics of <tt>certificate_list</tt> to support two logically distinct certificate chains, encoded sequentially and separated by a delimiter.</t>
        <t>In order to support bandwidth optimization in the case that the two certificates are issued by the same CA, the second certificate chain <bcp14>MAY</bcp14> consist of only an end-entity certificate. In this case, validators <bcp14>SHOULD</bcp14> attempt to validate the second certificate using the chain provided with the first certificate.</t>
        <section anchor="delimiter">
          <name>Delimiter</name>
          <t>The delimiter is a zero-length certificate entry encoded as 3 bytes of 0x00. TLS 1.3 prohibits empty certificate entries, so this delimiter is unambiguous. The delimiter <bcp14>MUST NOT</bcp14> be sent to peers that did not indicate support for dual certificates by including the <tt>dual_signature_algorithms</tt> extension.</t>
          <t>This specification expands CertificateEntry structure from <xref section="4.4.2" sectionFormat="of" target="TLS"/> in the following way:</t>
          <t>Certificate parsing logic <bcp14>MUST</bcp14> reject messages that contain more than one zero-length delimiter, or that place the delimiter as the first or last entry in the certificate list. Certificate parsing logic is:</t>
          <figure>
            <name>Updated CertificateEntry structure definition</name>
            <artwork type="ascii-art"><![CDATA[
struct {
    select (is_delimiter) {
        case Delimiter: uint24 delimiter = 0;
        case Non_Delimiter:
          opaque cert_specific_data<1..2^24-1>;
          Extension extensions<0..2^16-1>;
    };
} CertificateEntry;
]]></artwork>
          </figure>
          <t>All entries before the delimiter are treated as the first certificate chain and <bcp14>MUST</bcp14> use algorithms from <tt>first_signature_algorithms</tt> list of <tt>dual_signature_algorithms</tt> extension, all entries after the delimiter are treated as the second certificate chain and <bcp14>MUST</bcp14> use algorithms from <tt>second_signature_algorithms</tt> list of <tt>dual_signature_algorithms</tt> extension. As specified in <xref section="4.4.2" sectionFormat="of" target="TLS"/>, end-entity certificate <bcp14>MUST</bcp14> be the first in both chains.</t>
          <t>A peer receiving this structure <bcp14>MUST</bcp14> validate each chain independently according to its corresponding signature algorithm. Implementers <bcp14>MAY</bcp14> wish to consider performing this verification in a timing-invariant way so as not to leak which certificate failed, for example if it failed for policy reasons rather than cryptographic reasons, however since this information is not hidden in a single-certificate TLS handshake, implementers <bcp14>MAY</bcp14> decide that this is not important.</t>
          <t>The first certificate chain <bcp14>MUST</bcp14> contain an end-entity certificate whose public key is compatible with one of the algorithms listed in the <tt>first_signature_algorithms</tt> section of <tt>dual_signature_algorithms</tt> extension. The second certificate chain <bcp14>MUST</bcp14> contain an end-entity certificate whose public key is compatible with one of the algorithms listed in the <tt>second_signature_algorithms</tt> section of <tt>dual_signature_algorithms</tt> extension. End-entity certificates of both chains <bcp14>MUST</bcp14> use different public keys.</t>
          <t>If a <tt>signature_algorithms_cert</tt> extension is absent, then all certificates of given chain <bcp14>MUST</bcp14> also use an algorithm from the corresponding list, but not necessarily the same one as the end-entity certificate. It is always allowed to provide mixed-algorithm certificate chains within the same list as long as relevant list contains more than one entry.</t>
          <t>This encoding applies equally to the <tt>CompressedCertificate</tt> message and to <tt>Certificate</tt> message of Exported Authenticators.</t>
        </section>
      </section>
      <section anchor="certificate-verify">
        <name>CertificateVerify Message</name>
        <t>TLS 1.3 defines the <tt>CertificateVerify</tt> message as follows:</t>
        <figure>
          <name>TLS 1.3 CertificateVerify message</name>
          <artwork><![CDATA[
struct {
     SignatureScheme algorithm;
     opaque signature<0..2^16-1>;
} CertificateVerify;
]]></artwork>
        </figure>
        <t>This document defines <tt>DualCertificateVerify</tt> which extends <tt>CertificateVerify</tt> to carry two independent signatures.</t>
        <figure>
          <name>DualCertificateVerify message</name>
          <artwork type="ascii-art"><![CDATA[
struct {
    SignatureScheme first_algorithm;
    opaque first_signature<0..2^16-1>;
    SignatureScheme second_algorithm;
    opaque second_signature<0..2^16-1>;
} DualCertificateVerify;
]]></artwork>
        </figure>
        <t>It is an error for any fields to be empty. In particular, the <tt>DualCertificateVerify</tt> structure <bcp14>MUST NOT</bcp14> be used to carry only a single signature. Both signatures included in a single <tt>DualCertificateVerify</tt> structure <bcp14>MUST</bcp14> use different signature algorithms. Violation of this rules <bcp14>MUST</bcp14> result in session termination with an <tt>illegal_parameter</tt> alert.</t>
        <t>The <tt>DualCertificateVerify</tt> message <bcp14>MAY</bcp14> be used in place of <tt>CertificateVerify</tt> anywhere that it is allowed.</t>
        <t>Each signature covers the transcript hash as in TLS 1.3, but with a distinct context string for domain separation, which are defined in <xref target="sec-context-strings"/>.</t>
        <section anchor="sec-context-strings">
          <name>Context Strings</name>
          <t>The context string is used as input to the data over which the signature is computed, consistent with the <tt>CertificateVerify</tt> construction defined in <xref section="4.4.3" sectionFormat="of" target="TLS"/>. The first signature uses the same context string as in the TLS 1.3 specification:</t>
          <ul spacing="normal">
            <li>
              <t>for a server context string is "TLS 1.3, server CertificateVerify"</t>
            </li>
            <li>
              <t>for a client context string is "TLS 1.3, client CertificateVerify"</t>
            </li>
          </ul>
          <t>The second signature uses a distinct context string to bind it to the secondary certificate:</t>
          <ul spacing="normal">
            <li>
              <t>for a server, secondary context string is "TLS 1.3, server secondary CertificateVerify"</t>
            </li>
            <li>
              <t>for a client, secondary context string is "TLS 1.3, client secondary CertificateVerify"</t>
            </li>
          </ul>
          <t>Implementations <bcp14>MUST</bcp14> verify both signatures and <bcp14>MUST</bcp14> associate each with its corresponding certificate chain.</t>
          <t>This dual-signature structure applies equally to <tt>CertificateVerify</tt> messages carried in Exported Authenticators with second signature using "Secondary Exported Authenticator" as the context string.</t>
        </section>
      </section>
      <section anchor="dual-certificate-policy-enforcement">
        <name>Dual Certificate Policy Enforcement</name>
        <t>Policy enforcement regarding the use of dual certificates is implementation-defined and driven by the authenticating peer. When dual certificate authentication is required by local policy, such as during high-assurance sessions or post-quantum transition periods, the authenticating endpoint <bcp14>MUST</bcp14> abort a handshake where only one signature or one certificate chain is present with an <tt>dual_certificate_required</tt> alert. Implementations <bcp14>MUST</bcp14> ensure that both certificates and both signatures are processed together and <bcp14>MUST NOT</bcp14> accept fallback to single-certificate authentication when dual-authentication is expected.</t>
        <t>A single composite certificate chain and signature such as defined by <xref target="TLS-COMPOSITE-MLDSA"/> <bcp14>MAY</bcp14> be an acceptable alternative during post-quantum transition period as long as corresponding signature scheme is listed in <tt>signature_algorithms</tt> extension.</t>
        <t>Additional policy examples are given in <xref target="sec-policy-examples"/>.</t>
      </section>
    </section>
    <section anchor="performance-considerations">
      <name>Performance Considerations</name>
      <t>The use of dual certificates increases the size of the certificate and certificate verify messages, which can result in larger TLS handshake messages. These larger payloads may cause packet fragmentation, retransmissions, and handshake delays, especially in constrained or lossy network environments.</t>
      <t>To mitigate these impacts, deployments can apply certificate chain optimization techniques, such as those described in <xref section="6.1" sectionFormat="of" target="PQ-RECOMMEND"/>, to minimize transmission overhead and improve handshake robustness.</t>
      <t>One implication of the design of this dual-algorithm negotiation mechanism is that the peer <bcp14>MUST</bcp14> honor any combination of algorithms from the <tt>first_signature_algorithms</tt> and <tt>second_signature_algorithms</tt> lists that the other peer chooses, even if it chooses the two largest or the two slowest algorithms. In constrained environments, it is important for TLS implementations to be configured with this in mind.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="weak-non-separability">
        <name>Weak Non-Separability</name>
        <t>This dual certificate scheme achieves Weak Non-Separability as defined in <xref target="HYBRID-SIGS"/>, which is defined as:</t>
        <ul empty="true">
          <li>
            <t>the guarantee that an adversary cannot simply “remove” one of the component signatures without evidence left behind.</t>
          </li>
        </ul>
        <t>As defined in <xref section="4.4" sectionFormat="of" target="TLS"/>, <tt>CertificateVerify</tt> (and therefore by extension <tt>DualCertificateVerify</tt>) contains signatures over the value <tt>Transcript-Hash(Handshake Context, Certificate)</tt>. In the dual certificate context, <tt>Certificate</tt> will contain both certificate chains, which is sufficient to cause the client to abort and therefore achieves Weak Non-Separability.</t>
      </section>
      <section anchor="signature-validation-requirements">
        <name>Signature Validation Requirements</name>
        <t>Implementations <bcp14>MUST</bcp14> strictly associate each signature with a <tt>DualCertificateVerify</tt> with the corresponding certificate chain, based on their order relative to the zero-length delimiter in the <tt>Certificate</tt> message. Failure to properly align signatures with their intended certificate chains could result in incorrect validation or misattribution of authentication.</t>
        <t>Both signatures in the <tt>DualCertificateVerify</tt> message <bcp14>MUST</bcp14> be validated successfully and correspond to their respective certificate chains. Implementations <bcp14>MUST</bcp14> treat failure to validate either signature as a failure of the authentication process. Silent fallback to single-certificate verification undermines the dual-authentication model and introduces downgrade risks. Implementations <bcp14>MAY</bcp14> short-circuit if the first signature or certificate chain fails, or <bcp14>MAY</bcp14> process both regardless to achieve timing invariance if the implementer deems in valuable to hide which signature or certificate validation failed, for example if one of the certificates was rejected for policy reasons rather than cryptographic reasons.</t>
      </section>
      <section anchor="side-channel-resistance">
        <name>Side-Channel Resistance</name>
        <t>Some implementations <bcp14>MAY</bcp14> wish to treat a dual signature as an atomic signing oracle and thus hide side-channels that would allow an attacker to distinguish the first algorithm from the second algorithm, for example if the first signature fails, still perform the second signature before returning an alert. However, in most cases this does not have practical value, for example if all algorithms offered as dual are also offered as single.</t>
      </section>
      <section anchor="cryptographic-independence-of-the-two-chains">
        <name>Cryptographic Independence Of The Two Chains</name>
        <t>This specification does not provide a mechanism to negotiate separate <tt>signature_algorithms_cert</tt> lists. Therefore while the two selected end-entity certificates will contain keys of different algorithms, it is possible for them to have certificate chains that use the same algorithm. In some cases this could be perfectly acceptable, for example if both chains are rooted in a hash-based signature or a composite, or if it is intentional for both end-entity certificates chain to the same root.</t>
        <t>However, in general to achieve the intended security guarantees of dual-algorithm protection, implementers and deployment operators <bcp14>SHOULD</bcp14> ensure that the two certificate chains rely on cryptographically independent primitives.</t>
      </section>
      <section anchor="certificate-usage-and-trust">
        <name>Certificate Usage and Trust</name>
        <t>Certificate chains <bcp14>MUST</bcp14> be validated independently with the same logic as if they were each presented in isolation, including trust anchors, certificate usage constraints, expiration, and revocation status. Implementations <bcp14>MUST NOT</bcp14> apply different policies and validation logic based on whether a certificate appeared as the first or second. In other words, if a dual certificate TLS handshake succeeds, then the same handshake <bcp14>MUST</bcp14> be able to succeed with the same two certificates, but the order of the first and second swapped in <tt>dual_certificate_algorithms</tt>, <tt>Certificates</tt>, and <tt>DualCertificateVerify</tt>.</t>
      </section>
      <section anchor="preventing-downgrade-attacks">
        <name>Preventing Downgrade Attacks</name>
        <t>TLS clients that are capable of accepting both traditional-only certificates and dual certificate configurations may remain vulnerable to downgrade attacks. In such a scenario, an attacker with access to a CRQC could forge a valid traditional certificate to impersonate the server and it does not indicate support for dual certificates. To mitigate this risk, clients should progressively phase out acceptance of traditional-only certificate chains once dual certificate deployment is widespread and interoperability with legacy servers is no longer necessary. During the transition period, accepting traditional-only certificate chains may remain necessary to maintain backward compatibility with servers that have not yet deployed dual certificates.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This specification registers the <tt>dual_signature_algorithms</tt> TLS extension and <tt>dual_certificate_required</tt> TLS alert.</t>
      <section anchor="tls-extension">
        <name>TLS extension</name>
        <t>IANA is requested to assign a new value from the TLS ExtensionType Values registry:</t>
        <ul spacing="normal">
          <li>
            <t>Extension Name: dual_signature_algorithms</t>
          </li>
          <li>
            <t>TLS 1.3: CH, CR</t>
          </li>
          <li>
            <t>DTLS-Only: N</t>
          </li>
          <li>
            <t>Recommended: Y</t>
          </li>
          <li>
            <t>Reference: [[This document]]</t>
          </li>
        </ul>
      </section>
      <section anchor="tls-alert">
        <name>TLS alert</name>
        <t>IANA is requested to add the following entry to the "TLS Alerts" registry:</t>
        <ul spacing="normal">
          <li>
            <t>Value: TBD</t>
          </li>
          <li>
            <t>Description: dual_certificate_required</t>
          </li>
          <li>
            <t>DTLS-OK: Y</t>
          </li>
          <li>
            <t>Reference: [[This document]]</t>
          </li>
          <li>
            <t>Comment: None</t>
          </li>
        </ul>
      </section>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We would like to thank Suzanne Wibada (Université de Sherbrooke) for her reviews and comments during the work on the initial version of this document, and her willingness to implement the recommendation of this document.</t>
      <t>We also want to thank Anthony Hu from WolfSSL for his and review and feedback on the initial version of this draft.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="TLS">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Independent</organization>
            </author>
            <date day="13" month="September" year="2025"/>
            <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.

   This document updates RFCs 5705, 6066, 7627, and 8422 and obsoletes
   RFCs 5077, 5246, 6961, 8422, and 8446.  This document also specifies
   new requirements for TLS 1.2 implementations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-rfc8446bis-14"/>
        </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="EXPORTED-AUTH">
          <front>
            <title>Exported Authenticators in TLS</title>
            <author fullname="N. Sullivan" initials="N." surname="Sullivan"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>This document describes a mechanism that builds on Transport Layer Security (TLS) or Datagram Transport Layer Security (DTLS) and enables peers to provide proof of ownership of an identity, such as an X.509 certificate. This proof can be exported by one peer, transmitted out of band to the other peer, and verified by the receiving peer.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9261"/>
          <seriesInfo name="DOI" value="10.17487/RFC9261"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="ECDSA">
          <front>
            <title>Digital Signature Standard (DSS)</title>
            <author>
              <organization/>
            </author>
            <date month="February" year="2023"/>
          </front>
          <seriesInfo name="DOI" value="10.6028/nist.fips.186-5"/>
          <refcontent>National Institute of Standards and Technology (U.S.)</refcontent>
        </reference>
        <reference anchor="ML-DSA">
          <front>
            <title>Use of ML-DSA in TLS 1.3</title>
            <author fullname="Tim Hollebeek" initials="T." surname="Hollebeek">
              <organization>DigiCert</organization>
            </author>
            <author fullname="Sophie Schmieg" initials="S." surname="Schmieg">
              <organization>Google</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="26" month="September" year="2025"/>
            <abstract>
              <t>   This memo specifies how the post-quantum signature scheme ML-DSA
   (FIPS 204) is used for authentication in TLS 1.3.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-mldsa-01"/>
        </reference>
        <reference anchor="PQT-TERMS">
          <front>
            <title>Terminology for Post-Quantum Traditional Hybrid Schemes</title>
            <author fullname="Flo D" initials="F." surname="D">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <author fullname="Michael P" initials="M." surname="P">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <author fullname="Britta Hale" initials="B." surname="Hale">
              <organization>Naval Postgraduate School</organization>
            </author>
            <date day="10" month="January" year="2025"/>
            <abstract>
              <t>   One aspect of the transition to post-quantum algorithms in
   cryptographic protocols is the development of hybrid schemes that
   incorporate both post-quantum and traditional asymmetric algorithms.
   This document defines terminology for such schemes.  It is intended
   to be used as a reference and, hopefully, to ensure consistency and
   clarity across different protocols, standards, and organisations.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-pqt-hybrid-terminology-06"/>
        </reference>
        <reference anchor="IANA-TLS">
          <front>
            <title>IANA Registry Updates for TLS and DTLS</title>
            <author fullname="J. Salowey" initials="J." surname="Salowey"/>
            <author fullname="S. Turner" initials="S." surname="Turner"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document describes a number of changes to TLS and DTLS IANA registries that range from adding notes to the registry all the way to changing the registration policy. These changes were mostly motivated by WG review of the TLS- and DTLS-related registries undertaken as part of the TLS 1.3 development process.</t>
              <t>This document updates the following RFCs: 3749, 5077, 4680, 5246, 5705, 5878, 6520, and 7301.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8447"/>
          <seriesInfo name="DOI" value="10.17487/RFC8447"/>
        </reference>
        <reference anchor="COMPRESS-CERT">
          <front>
            <title>TLS Certificate Compression</title>
            <author fullname="A. Ghedini" initials="A." surname="Ghedini"/>
            <author fullname="V. Vasiliev" initials="V." surname="Vasiliev"/>
            <date month="December" year="2020"/>
            <abstract>
              <t>In TLS handshakes, certificate chains often take up the majority of the bytes transmitted.</t>
              <t>This document describes how certificate chains can be compressed to reduce the amount of data transmitted and avoid some round trips.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8879"/>
          <seriesInfo name="DOI" value="10.17487/RFC8879"/>
        </reference>
        <reference anchor="TLS-COMPOSITE-MLDSA">
          <front>
            <title>Use of Composite ML-DSA in TLS 1.3</title>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Tim Hollebeek" initials="T." surname="Hollebeek">
              <organization>DigiCert</organization>
            </author>
            <author fullname="John Gray" initials="J." surname="Gray">
              <organization>Entrust Limited</organization>
            </author>
            <author fullname="Scott Fluhrer" initials="S." surname="Fluhrer">
              <organization>Cisco Systems</organization>
            </author>
            <date day="2" month="November" year="2024"/>
            <abstract>
              <t>   This document specifies how the post-quantum signature scheme ML-DSA
   [FIPS204], in combination with traditional algorithms RSA-
   PKCS#1v1.5,RSA-PSS, ECDSA, Ed25519, and Ed448 can be used for
   authentication in TLS 1.3.  The composite ML-DSA approach is
   beneficial in deployments where operators seek additional protection
   against potential breaks or catastrophic bugs in ML-DSA.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-tls-reddy-composite-mldsa-00"/>
        </reference>
        <reference anchor="PQ-RECOMMEND">
          <front>
            <title>Post-Quantum Cryptography Recommendations for TLS-based Applications</title>
            <author fullname="Tirumaleswar Reddy.K" initials="T." surname="Reddy.K">
              <organization>Nokia</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
              <organization>University of Applied Sciences Bonn-Rhein-Sieg</organization>
            </author>
            <date day="2" month="July" year="2025"/>
            <abstract>
              <t>   Post-quantum cryptography presents new challenges for applications,
   end users, and system administrators.  This document highlights the
   unique characteristics of applications and offers best practices for
   implementing quantum-ready usage profiles in applications that use
   TLS and key supporting protocols such as DNS.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-reddy-uta-pqc-app-08"/>
        </reference>
        <reference anchor="HYBRID-SIGS">
          <front>
            <title>Hybrid signature spectrums</title>
            <author fullname="Nina Bindel" initials="N." surname="Bindel">
              <organization>SandboxAQ</organization>
            </author>
            <author fullname="Britta Hale" initials="B." surname="Hale">
              <organization>Naval Postgraduate School</organization>
            </author>
            <author fullname="Deirdre Connolly" initials="D." surname="Connolly">
              <organization>SandboxAQ</organization>
            </author>
            <author fullname="Flo D" initials="F." surname="D">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <date day="20" month="June" year="2025"/>
            <abstract>
              <t>   This document describes classification of design goals and security
   considerations for hybrid digital signature schemes, including proof
   composability, non-separability of the component signatures given a
   hybrid signature, backwards/forwards compatibility, hybrid
   generality, and simultaneous verification.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-hybrid-signature-spectrums-07"/>
        </reference>
        <reference anchor="Signature-Spectrums">
          <front>
            <title>Hybrid signature spectrums</title>
            <author fullname="Nina Bindel" initials="N." surname="Bindel">
              <organization>SandboxAQ</organization>
            </author>
            <author fullname="Britta Hale" initials="B." surname="Hale">
              <organization>Naval Postgraduate School</organization>
            </author>
            <author fullname="Deirdre Connolly" initials="D." surname="Connolly">
              <organization>SandboxAQ</organization>
            </author>
            <author fullname="Flo D" initials="F." surname="D">
              <organization>UK National Cyber Security Centre</organization>
            </author>
            <date day="9" month="January" year="2025"/>
            <abstract>
              <t>   This document describes classification of design goals and security
   considerations for hybrid digital signature schemes, including proof
   composability, non-separability of the component signatures given a
   hybrid signature, backwards/forwards compatibility, hybrid
   generality, and simultaneous verification.

   Discussion of this work is encouraged to happen on the IETF PQUIP
   mailing list pqc@ietf.org or on the GitHub repository which contains
   the draft: https://github.com/dconnolly/draft-ietf-pquip-hybrid-
   signature-spectrums

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-pquip-hybrid-signature-spectrums-06"/>
        </reference>
      </references>
    </references>
    <?line 385?>

<section anchor="open-design-issues">
      <name>Open Design Issues</name>
      <t>This section documents open design questions that are not resolved in this version, and for which the authors wish Working Group input.</t>
      <t>This section is for Working Group review, and to be removed before publication.</t>
      <section anchor="allow-mixed-certificate-chains">
        <name>Allow mixed certificate chains?</name>
        <t>Issue: TLS 1.3 has <tt>signature_algorithms</tt> to negotiate the signature used in the TLS handshake (which is also the public key of the EE cert), and optionally <tt>signature_algorithms_cert</tt> if the peer wishes to negotiate the CA's algorithms separately. Historically, cert chains are either exclusively RSA or exclusively ECDSA with mixed RSA-ECDSA chains being extremely rale and therefore <tt>signature_algorithms_certs</tt> is extremely rarely used in the wild.</t>
        <t>One design consideration here is whether we want to allow both the PQ and traditional chains to come off the same CA in order to lower operational burden for CAs needing to maintain separate PQ and Traditional PKIs. Consider for example an ML-DSA-87 CA that issues both ML-DSA-44 and RSA EEs. Or consider an SLH-DSA CA that issus ML-DSA-44 and RSA EEs.</t>
        <t>The question is whether to continue to support negotiation of CA algs separately from EE algs in a dual context.</t>
        <t>Design options:</t>
        <ol spacing="normal" type="1"><li>
            <t>When a <tt>signature_algorithms_certs</tt> extension is present, then it applies to both chains of the dual, and <tt>dual_signature_algorithms</tt> only applies to EE certs. If not present, then <tt>dual_signature_algorithms</tt> applies to both EE and chain. This is the option chosen for presentation in this version of the draft, and is believed to be most consistent with the intent of 8446, though it is has bad alignment with TLS implementations in the wild and increases implementation complexity.</t>
          </li>
          <li>
            <t>Mandate that <tt>dual_signature_algorithms</tt> always applies to both EE and chain, and take the position that <tt>signature_algorithms_cert</tt> only applies to the single-certificate case. This makes it impossible to have dual certs with mixed-algorithm chains.</t>
          </li>
          <li>
            <t>Add a <tt>dual_signature_algorithms_certs</tt> so that the algs of the two chains can be negotioted separately.</t>
          </li>
        </ol>
      </section>
      <section anchor="can-the-client-fail-if-it-doesnt-like-the-servers-choice">
        <name>Can the client fail if it doesn't like the server's choice?</name>
        <t>This design choice is about how expressive the negotiation mechanism is.</t>
        <t>This version presents a scheme which presents three lists: [Single], [DualFirst], [DualSecond]. It is implicit that the full set of combinations of [DualFirst] X [DualSecond] is supported. This design does not allow for the omission of combinations that make little sense, such as RSA-2048 with a PQC Level 5 scheme.</t>
        <t>Design options:</t>
        <ol spacing="normal" type="1"><li>
            <t>Make the negotiation mechanism more expressive (ie more complex) to cover this case.</t>
          </li>
          <li>
            <t>The client <bcp14>MUST</bcp14> honor any choice of pair from [DualFirst], [DualSecond]; ie if it supports the algorithms, then it supports them; it is not allowed to reject specific combinations. This option is presented in this version.</t>
          </li>
          <li>
            <t>The client <bcp14>MAY</bcp14> abort the connection if it does not accept the server's choice of combination.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="sec-design-requirements">
      <name>Informal Requirements for Dual TLS Certificate Support</name>
      <t>This section documents the design requirements that drove the development of this specification.</t>
      <t>This section is primarily intended to easy WG review and could be removed or simplified prior to RFC publication.</t>
      <section anchor="dual-algorithm-security">
        <name>Dual-Algorithm Security</name>
        <section anchor="weak-non-separability-1">
          <name>Weak Non-Separability</name>
          <t>The dual certificate authentication achieves, at least, Weak Non-Separability <xref target="Signature-Spectrums"/> at the time of verification of the <tt>CertificateVerify</tt> message.</t>
        </section>
      </section>
      <section anchor="dual-certificate-semantics">
        <name>Dual Certificate Semantics</name>
        <section anchor="independent-chain-usability">
          <name>Independent Chain Usability</name>
          <t>Each certificate chain (e.g., traditional and PQ) must be independently usable for authentication, allowing endpoints to fall back to traditional or PQ-only validation if necessary.</t>
        </section>
        <section anchor="unambiguous-chain-separation">
          <name>Unambiguous Chain Separation</name>
          <t>The mechanism must clearly distinguish and delimit multiple certificate chains to prevent ambiguity or misinterpretation.</t>
        </section>
      </section>
      <section anchor="use-case-and-deployment-flexibility">
        <name>Use Case and Deployment Flexibility</name>
        <section anchor="backward-compatibility">
          <name>Backward Compatibility</name>
          <t>When only one certificate chain is used, the mechanism must remain compatible with existing TLS 1.3 endpoints unaware of dual-certificate support or willing to use only a single certificate.</t>
        </section>
        <section anchor="forward-compatibility">
          <name>Forward Compatibility</name>
          <t>The mechanism must be capable of negotiating algorithms requiring dual certificates as well as algorithms that are acceptable standalone.</t>
          <t>As an example, the mechanism must be capable of expressing the following algorithm preference:</t>
          <ul empty="true">
            <li>
              <t>I would accept SLH-DSA-128s, Composite_MLDSA65_RSA2048 Composite_MLDSA65_ECDSA-P256, or ML-DSA-87 by themselves, or a dual-cert hybrid with one of [ML-DSA-44, ML-DSA-65] with one of [RSA, ECDSA-P256, ECDSA-P384].</t>
            </li>
          </ul>
        </section>
        <section anchor="negotiation-expressiveness">
          <name>Negotiation Expressiveness</name>
          <t>Signature algorithm negotiation, whether single or dual, must arrive at a unique selection of algorithms if and only if there is at least one configuration that is mutually-acceptable to client and server. Specifically, the negotiation mechanism must be expressive enough that clients can list all valid configurations that they would accept. Conversely, the negotiation mechanism must be specific enough that the client is not forced, through clumsiness of the negotiation mechanism to list configurations that in fact it does not support and thus rely on failures and retries to arrive at an acceptable algorithm selection.</t>
        </section>
        <section anchor="mitigation-of-side-channels">
          <name>Mitigation of Side Channels</name>
          <t>The mechanism should avoid constructions that enable side-channel attacks by observing how distinct algorithms are applied to the same message.</t>
          <t><em>MikeO: I have never seen this particular side-channel attack described in the literature, so I think a reference is needed. Also, side-channels is a very wide field, so it seems odd to pick out only a very specific type of side-channels to mention. I suggest removing this section.</em></t>
        </section>
        <section anchor="non-ambiguity-of-message-formats">
          <name>Non-ambiguity of Message Formats</name>
          <t>The order and pairing between certificates and their corresponding signatures must be explicit, so verifiers can unambiguously match them.</t>
        </section>
      </section>
      <section anchor="interaction-with-existing-tls-semantics">
        <name>Interaction With Existing TLS Semantics</name>
        <section anchor="protocol-flow-consistency">
          <name>Protocol Flow Consistency</name>
          <t>Dual certificate authentication must follow the same logical flow as standard TLS certificate authentication, including integration with <tt>Certificate</tt>, <tt>CertificateVerify</tt>, and <tt>Finished</tt> messages.</t>
        </section>
        <section anchor="mtls-support">
          <name>mTLS support</name>
          <t>The mechanism must support both server and client authentication scenarios. In case of mutual authentication dual certificates may be used unidirectionally as well as bidirectionally.</t>
        </section>
        <section anchor="exported-authenticators-compatibility">
          <name>Exported Authenticators Compatibility</name>
          <t>The mechanism must be usable with Exported Authenticators (RFC 9261) for mutual authentication in post-handshake settings.</t>
        </section>
        <section anchor="minimal-protocol-changes">
          <name>Minimal Protocol Changes</name>
          <t>Any additions or modifications to the TLS protocol must be minimal to ease deployment, reduce implementation complexity and minimize new security risks.</t>
          <t>This requirement favours a design which minimizes interaction with other TLS extensions -- ie where all other extensions related to certificates will transfer their semantics from a single-certificate to a dual-certificate setting in a trivial and obvious way and no special processing rules need to be described. Ditto for existing IANA registries relating to the TLS protocol.</t>
        </section>
      </section>
      <section anchor="non-goals">
        <name>Non-Goals</name>
        <t>The following are listed as non-goals; i.e. they are out-of-scope and will not be considered in the design of dual certificate authentication.</t>
        <section anchor="multiple-identities">
          <name>Multiple Identities</name>
          <t>This mechanism is specific to cryptographic algorithm migration. It is not a generic mechanism for using multiple identities in a single TLS handshake. In particular, this mechanism does not allow for negotiating two certificates with the same algorithm but containing different identifiers, or for negotiating two independent sets of <tt>certificate_authorities</tt>.</t>
        </section>
      </section>
    </section>
    <section anchor="appdx-config">
      <name>Suggested Configuration Mechanism</name>
      <t>This section gives a non-normative suggestion for a mechanism for configuration of algorithm selection preference in a dual-algorithm setting.</t>
      <t><xref target="sec-structure"/> requires that any supported algorithm <bcp14>MAY</bcp14> appear in either the first or second list within a <tt>DualSignatureSchemeList</tt>, however it leaves open the policy for selecting a pair.</t>
      <t>The suggested implementation enforces server-preference by allowing an operator to rank the provisioned certificates from most-preferred to least-preferred. Beginning with the most-preferred, if this algorithm appears in either list, then this is selected and selection continues down the list of provisioned certificates until one is found that appears on the other list. Implementations <bcp14>MUST NOT</bcp14> select two algorithms from the same list. Regardless of which algorithm was select first according to this preference selection routine, the certificates and signatures <bcp14>MUST</bcp14> be returned in the first and second slot according to which list they appeared in. This preference selection routine has the benefit that the algorithm selection is not affected by swapping the first and second lists, which allows for greater configuration flexibility and therefore greater overall interoperability.</t>
    </section>
    <section anchor="compatibility-with-composite-certificates">
      <name>Compatibility with composite certificates</name>
      <t>Clients and servers may choose to support composite certificate schemes, such as those defined in <xref target="TLS-COMPOSITE-MLDSA"/>. In these schemes, a single certificate contains a composite public key, and the associated signature proves knowledge of private keys of all components. However, from the perspective of the TLS protocol, this is a single certificate producing a single signature and so use of <tt>dual_signature_algorithms</tt> is not required.</t>
      <t>If a composite signature algorithm appears in the <tt>signature_algorithms</tt> extension, it can fulfill the client's requirements for both traditional and PQ authentication in a single certificate and signature. It is up to the client policy to decide whether a composite certificate is acceptable in place of a dual-certificate configuration. This allows further deployment flexibility and compatibility with hybrid authentication strategies.</t>
      <t>The advantages of dual certificates over composites is operational flexibility for both Certification Authority operators and TLS server and client operators because two CAs and end-entity certificates, one traditional and one PQ, allows for backwards compatible and dynamic negotiation of pure traditional, pure PQ, or dual.</t>
      <t>The advantages of composites over dual certificates is that the certificate chains themselves are protected by dual-algorithms, which can be of great importance in use cases where trust stores are not easily updatable.</t>
      <t>It is worth noting that composites present as simply another signature algorithm, and as such nothing prevents them from being used as a component within a <tt>dual_signature_algorithm</tt>.</t>
    </section>
    <section anchor="sec-policy-examples">
      <name>Policy Examples</name>
      <t>This section provides examples of cryptographic policies and examples of how to set <tt>signature_algorithms</tt> and <tt>dual_signature_algorithms</tt> in order to implement that policy. This section is non-normative, and other ways of implementing the same policy are possible; in particular the first and second lists within a <tt>dual_signature_algorithms</tt> extension <bcp14>MAY</bcp14> be swapped in any of the examples below without changing the semantics.</t>
      <t>The scenarios in this section describe server authentication behavior based on client policy. Each case reflects a different client capability and authentication policy, based on how the client populates the <tt>signature_algorithms</tt>, <tt>signature_algorithms_cert</tt>, and <tt>dual_signature_algorithms</tt> extensions.</t>
      <t>For client authentication, the same principles apply with roles reversed: the server drives authentication requirements by sending a <tt>CertificateRequest</tt> message that includes appropriate extensions.</t>
      <section anchor="example-1-single-certificate">
        <name>Example 1: Single-certificate</name>
        <t>Client requires only one traditional, pq or a composite signature. Client either does not support or is not configured to accept dual certificates.</t>
        <t>Client behavior:</t>
        <ul spacing="normal">
          <li>
            <t>Includes supported algorithms in <tt>signature_algorithms</tt> and optionally <tt>signature_algorithms_cert</tt>.</t>
          </li>
          <li>
            <t>Does not include <tt>dual_signature_algorithms</tt>.</t>
          </li>
        </ul>
        <t>To satisfy this client, the server <bcp14>MUST</bcp14> send a single certificate chain with compatible algorithms and include a single signature in <tt>CertificateVerify</tt>.</t>
      </section>
      <section anchor="example-2-dual-compatible-traditional-primary-pq-optional">
        <name>Example 2: Dual-Compatible, Traditional Primary, PQ Optional</name>
        <t>Client supports both traditional and PQ authentication. It allows the server to send either a traditional chain alone or both chains.</t>
        <t>Client behavior:</t>
        <ul spacing="normal">
          <li>
            <t>Includes supported traditional algorithms in <tt>signature_algorithms</tt> and optionally <tt>signature_algorithms_cert</tt>.</t>
          </li>
          <li>
            <t>Includes supported traditional algorithms again in <tt>first_signature_algorithms</tt> list of <tt>dual_signature_algorithms</tt> and supported PQ algorithms in <tt>second_signature_algorithms</tt> list of <tt>dual_signature_algorithms</tt>.</t>
          </li>
        </ul>
        <t>To satisfy this client, the server <bcp14>MUST</bcp14> either:</t>
        <ul spacing="normal">
          <li>
            <t>Provide a single certificate chain with compatible traditional algorithms and include a single signature in <tt>CertificateVerify</tt>, or</t>
          </li>
          <li>
            <t>Provide a traditional certificate chain followed by a PQ certificate chain as described in <xref target="certificate"/> and two signatures in <tt>DualCertificateVerify</tt> as described in <xref target="certificate-verify"/></t>
          </li>
        </ul>
      </section>
      <section anchor="example-3-strict-dual">
        <name>Example 3: Strict Dual</name>
        <t>Client requires both traditional and PQ authentication to be performed simultaneously. It does not support composite certificates.</t>
        <t>Client behavior:</t>
        <ul spacing="normal">
          <li>
            <t>Includes an empty list in <tt>signature_algorithms</tt> (since this extension is required by [RFC8446] whenever certificate authentication is desired).</t>
          </li>
          <li>
            <t>Includes supported traditional algorithms in <tt>first_signature_algorithms</tt> list of <tt>dual_signature_algorithms</tt> and supported PQ algorithms in <tt>second_signature_algorithms</tt> list of <tt>dual_signature_algorithms</tt>.</t>
          </li>
        </ul>
        <t>To satisfy this client, the server <bcp14>MUST</bcp14> provide a traditional certificate chain followed by a PQ certificate chain as described in <xref target="certificate"/> and two signatures in <tt>CertificateVerify</tt> as described in <xref target="certificate-verify"/></t>
      </section>
      <section anchor="example-4-dual-compatible-pq-primary-traditional-optional">
        <name>Example 4: Dual-Compatible, PQ Primary, Traditional Optional</name>
        <t>Client supports both traditional and PQ authentication. It allows the server to send either a PQ chain alone or both chains.</t>
        <t>Client behavior:</t>
        <ul spacing="normal">
          <li>
            <t>Includes supported PQ algorithms in <tt>signature_algorithms</tt> and optionally <tt>signature_algorithms_cert</tt>.</t>
          </li>
          <li>
            <t>Includes supported traditional algorithms in <tt>first_signature_algorithms</tt> list of <tt>dual_signature_algorithms</tt> and supported PQ algorithms again in <tt>second_signature_algorithms</tt> list of <tt>dual_signature_algorithms</tt>.</t>
          </li>
        </ul>
        <t>To satisfy this client, the server <bcp14>MUST</bcp14> either:</t>
        <ul spacing="normal">
          <li>
            <t>Provide a single certificate chain with compatible PQ algorithms and include a single signature in <tt>CertificateVerify</tt>, or</t>
          </li>
          <li>
            <t>Provide a traditional certificate chain followed by a PQ certificate chain as described in <xref target="certificate"/> and two signatures in <tt>CertificateVerify</tt> as described in <xref target="certificate-verify"/></t>
          </li>
        </ul>
      </section>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA9192XYb17XgO76imn6wlAYQSZYVhbaj0BRlcUUDRdJxfB1f
sYA6AM5VoQquU0UK1lJW/qH7sXutfu3f6P6TfMnd05lqAClbN71u+8VioeoM
++x5OpPJZHS5n3w2ysp5ka7VfpJV6aKebBujFpM6N5PNT/Uka9J8MldVbSZ5
WitTj2pd5/Dy3klp6smrJi3qZp2cV2mma10WaZ7cOnn12/PbydPtrNJZctDU
K1XUep7iz8mVrlfJYxg0OYRB9QKfK5PoIjl/dpbcnX62N0pns0pd4gwwjn/X
vrQ3gk/2E1NnI72p9pO6akx9786d39+5N5qXhVGFacx+8ik8V5+OTDNba2Ng
6nq7gWUfH50/GeVpsdxPVDHKYPL9UdGsZ6raH230/ihJqsVcZabe4ia3ysCT
upwH/9RFBvuxD0xZ1ZVaGPf3dh39WVd67l6el+s1fOt+1UWuCz+NeltPcg1Q
hUFmZQ6vTcrf/Ff4BU5onW42GleN76aVSgE+Rs33RlfwDEH3XVm9gReSb6qy
2YzeqO1VWWWwn0ly8qdj+t8vOS/68NUh/g8mGX2yhONrZjD3Ki0KwAYzX5UL
VejlbxFhPLLsjUydFtnrNC/tBlMYuKxoRQluHbZ3Ok3OVurNavI94twoof8W
TZ4zPp7qRZrWPa+U1TIt9M+0wv3kUKsilV/mZVPU1RYepkWa2adqnep8P6lo
vKmZalUv/rjEh1M4knBFT6fJudtTZ0FPadPdN+L1fFvoS1UZXW+TcpEcbDa5
VllyNodlzuHrr8uimJyulC4mZ1rZISzSP518fXrW3sw3qlqnxTbeDZ/A1B8B
7OjttFB1uJ/n0+RlUxjAhXrV2c5z/UZ1fo73clQQed0EumsYbVra0f6o+Ms2
gM+nyanKsm1nMee6atZprsxVWkWvxAt6Ub7RncM+LjLdWs2bsshqXfWf8t73
sIrSlOv0zarc6yzl+7QqTZ5e+nd6l/IvZg7rreJ5t5X95o8/8+80ebNBVoMo
/+Tw9/ce3B3jPx7ev/9gNJpMJnD6wCjSeT0ana+0QXpvkFEkwBFUkZkESNLy
xySNGepazQETtFkDb0rSPC+v6O1CLcta8ytAiAlQD2JjfVUmRi+LtG4qBa8v
ywooem3wY6CiWa4SImL3S7JithDPOk6Qy1bIb+oVkGgKk9R1On+jquSqbPIM
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
/6cAAA==

-->

</rfc>
