<?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.6.39 (Ruby 3.2.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-celi-wiggers-tls-authkem-02" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.18.0 -->
  <front>
    <title abbrev="AuthKEM">KEM-based Authentication for TLS 1.3</title>
    <seriesInfo name="Internet-Draft" value="draft-celi-wiggers-tls-authkem-02"/>
    <author initials="T." surname="Wiggers" fullname="Thom Wiggers">
      <organization>PQShield</organization>
      <address>
        <postal>
          <city>Nijmegen</city>
          <country>The Netherlands</country>
        </postal>
        <email>thom@thomwiggers.nl</email>
      </address>
    </author>
    <author initials="S." surname="Celi" fullname="Sofía Celi">
      <organization>Brave Software</organization>
      <address>
        <postal>
          <city>Lisbon</city>
          <country>Portugal</country>
        </postal>
        <email>cherenkov@riseup.net</email>
      </address>
    </author>
    <author initials="P." surname="Schwabe" fullname="Peter Schwabe">
      <organization>Radboud University and MPI-SP</organization>
      <address>
        <email>peter@cryptojedi.org</email>
      </address>
    </author>
    <author initials="D." surname="Stebila" fullname="Douglas Stebila">
      <organization>University of Waterloo</organization>
      <address>
        <postal>
          <city>Waterloo, ON</city>
          <country>Canada</country>
        </postal>
        <email>dstebila@uwaterloo.ca</email>
      </address>
    </author>
    <author initials="N." surname="Sullivan" fullname="Nick Sullivan">
      <organization/>
      <address>
        <email>nicholas.sullivan+ietf@gmail.com</email>
      </address>
    </author>
    <date year="2023" month="August" day="18"/>
    <area>SECAREA</area>
    <workgroup>TLS Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 192?>

<t>This document gives a construction for a Key Encapsulation Mechanism (KEM)-based
authentication mechanism in TLS 1.3. This proposal authenticates peers via a key
exchange protocol, using their long-term (KEM) public keys.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-celi-wiggers-tls-authkem/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        tlswg Working Group mailing list (<eref target="mailto:tls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/tls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/tls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/kemtls/draft-celi-wiggers-tls-authkem"/>.</t>
    </note>
  </front>
  <middle>
    <?line 198?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><strong>Note:</strong> This is a work-in-progress draft. We welcome discussion, feedback and
contributions through the IETF TLS working group mailing list or directly on
GitHub.</t>
      <t>This document gives a construction for KEM-based authentication in TLS 1.3
<xref target="RFC8446"/>. Authentication happens via asymmetric cryptography by the usage of
KEMs advertised as the long-term KEM public keys in the Certificate.</t>
      <t>TLS 1.3 is in essence a signed key exchange protocol (if using certificate-based
authentication). Authentication in TLS 1.3 is achieved by signing the handshake
transcript with digital signatures algorithms. KEM-based authentication provides
authentication by deriving a shared secret that is encapsulated against the
public key contained in the Certificate. Only the holder of the private key
corresponding to the certificate's public key can derive the same shared secret
and thus decrypt its peer's messages.</t>
      <t>This approach is appropriate for endpoints that have KEM public keys. Though
this is currently rare, certificates can be issued with (EC)DH public keys as
specified for instance in <xref target="RFC8410"/>, or using a delegation mechanism, such as
delegated credentials <xref target="I-D.ietf-tls-subcerts"/>.</t>
      <t>In this proposal, we build on <xref target="RFC9180"/>. This standard currently only covers
Diffie-Hellman based KEMs, but the first post-quantum algorithms have already
been put forward <xref target="I-D.draft-westerbaan-cfrg-hpke-xyber768d00"/>. This proposal
uses Kyber <xref target="KYBER"/> <xref target="I-D.draft-cfrg-schwabe-kyber"/>, the first selected
algorithm for key exchange in the NIST post-quantum standardization project
<xref target="NISTPQC"/>.</t>
      <section anchor="using-key-exchange-instead-of-signatures-for-authentication">
        <name>Using key exchange instead of signatures for authentication</name>
        <t>The elliptic-curve and finite-field-based key exchange and signature algorithms
that are currently widely used are very similar in sizes for public keys,
ciphertexts and signatures. As an example, RSA signatures are famously "just"
RSA encryption backwards.</t>
        <t>This changes in the post-quantum setting. Post-quantum key exchange and
signature algorithms have significant differences in implementation, performance
characteristics, and key and signature sizes.</t>
        <t>This also leads to increases in code size: For example, implementing highly
efficient polynomial multiplication for post-quantum KEM Kyber and signature
scheme Dilithium <xref target="DILITHIUM"/> requires significantly different approaches, even
though the algorithms are related <xref target="K22"/>.</t>
        <t>Using the protocol proposed in this draft allows to reduce the amount of data
exchanged for handshake authentication. It also allows to re-use the
implementation that is used for ephemeral key exchange for authentication, as
KEM operations replace signing. This decreases the code size requirements, which
is especially relevant to protected implementations. Finally, KEM operations may
be more efficient than signing, which might especially affect embedded
platforms.</t>
      </section>
      <section anchor="evaluation-of-handshake-sizes">
        <name>Evaluation of handshake sizes</name>
        <t><strong>Should probably be removed before publishing</strong></t>
        <t>In the following table, we compare the sizes of TLS 1.3- and AuthKEM-based
handshakes. We give the transmission requirements for handshake authentication
(public key + signature), and certificate chain (intermediate CA certificate
public key and signature + root CA signature). For clarity, we are not listing
post-quantum/traditional hybrid algorithms; we also omit mechanisms such as
Certificate Transparency <xref target="RFC6962"/> or OCSP stapling <xref target="RFC6960"/>. We use
Kyber-768 instead of the smaller Kyber-512 parameterset, as the former is
currently used in experimental deployments. For signatures, we use Dilithium,
the "primary" algorithm selected by NIST for post-quantum signatures, as well as
Falcon <xref target="FALCON"/>, the algorithm that offers smaller public key and signature sizes, but
which NIST indicates can be used if the implementation requirements can be met.</t>
        <table>
          <name>Size comparison of public-key cryptography in TLS 1.3 and AuthKEM handshakes.</name>
          <thead>
            <tr>
              <th align="left">Handshake</th>
              <th align="left">HS auth algorithm</th>
              <th align="left">HS Auth bytes</th>
              <th align="left">Certificate chain bytes</th>
              <th align="left">Sum</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">TLS 1.3</td>
              <td align="left">RSA-2048</td>
              <td align="left">528</td>
              <td align="left">784  (RSA-2048)</td>
              <td align="left">1312</td>
            </tr>
            <tr>
              <td align="left">TLS 1.3</td>
              <td align="left">Dilithium-2</td>
              <td align="left">3732</td>
              <td align="left">6152 (Dilithium-2)</td>
              <td align="left">9884</td>
            </tr>
            <tr>
              <td align="left">TLS 1.3</td>
              <td align="left">Falcon-512</td>
              <td align="left">1563</td>
              <td align="left">2229 (Falcon-512)</td>
              <td align="left">3792</td>
            </tr>
            <tr>
              <td align="left">TLS 1.3</td>
              <td align="left">Dilithium-2</td>
              <td align="left">3732</td>
              <td align="left">2229 (Falcon-512)</td>
              <td align="left">5961</td>
            </tr>
            <tr>
              <td align="left">AuthKEM</td>
              <td align="left">Kyber-768</td>
              <td align="left">2272</td>
              <td align="left">6152 (Dilithium-2)</td>
              <td align="left">8424</td>
            </tr>
            <tr>
              <td align="left">AuthKEM</td>
              <td align="left">Kyber-768</td>
              <td align="left">2272</td>
              <td align="left">2229 (Falcon-512)</td>
              <td align="left">4564</td>
            </tr>
          </tbody>
        </table>
        <t>Note that although TLS 1.3 with Falcon-512 is the smallest instantiation,
Falcon is very challenging to implement: signature generation requires (emulation of)
64-bit floating point operations in constant time. It is also very difficult to
protect against other side-channel attacks, as there are no known methods of
masking Falcon. In light of these difficulties, use of Falcon-512 in online
handshake signatures may not be wise.</t>
        <t>Using AuthKEM with Falcon-512 in the certificate chain remains an attractive
option, however: the certificate issuance process, because it is mostly offline,
could perhaps be set up in a way to protect the Falcon implementation against
attacks. Falcon signature verification is fast and does not require floating-point
arithmetic. Avoiding online usage of Falcon in TLS 1.3 requires two implementations
of the signature verification routines, i.e., Dilithium and Falcon, on top of
the key exchange algorithm.</t>
        <t>In all examples, the size of the certificate chain still dominates the TLS
handshake, especially if Certificate Transparency SCT statements are included,
which is relevant in the context of the WebPKI. However, we believe that if
proposals to reduce transmission sizes of the certificate chain in the WebPKI
context are implemented, the space savings of AuthKEM naturally become
relatively larger and more significant. We discuss this in
<xref target="cert-compression"/>.</t>
      </section>
      <section anchor="related-work">
        <name>Related work</name>
        <section anchor="optls">
          <name>OPTLS</name>
          <t>This proposal draws inspiration from <xref target="I-D.ietf-tls-semistatic-dh"/>, which is
in turn based on the OPTLS proposal for TLS 1.3 <xref target="KW16"/>. However, these proposals
require a non-interactive key exchange: they combine the client's public key
with the server's long-term key. This imposes an extra requirement: the
ephemeral and static keys MUST use the same algorithm, which this proposal does
not require. Additionally, there are no post-quantum proposals for a
non-interactive key exchange currently considered for standardization, while
several KEMs are on the way.</t>
        </section>
        <section anchor="cert-compression">
          <name>Compressing certificates and certificate chains</name>
          <t>AuthKEM reduces the amount of data required for authentication in TLS. In
recognition of the large increase in handshake size that a naive adoption of
post-quantum signatures would affect, several proposals have been put forward
that aim to reduce the size of certificates in the TLS handshake. <xref target="RFC8879"/>
proposes a certificate compression mechanism based on compression algorithms,
but this is not very helpful to reduce the size of high-entropy public keys and
signatures. Proposals that offer more significant reductions of sizes of
certificate chains, such as <xref target="I-D.draft-jackson-tls-cert-abridge"/>,
<xref target="I-D.ietf-tls-ctls"/>, <xref target="I-D.draft-kampanakis-tls-scas-latest"/>, and
<xref target="I-D.draft-davidben-tls-merkle-tree-certs"/> all mainly rely on some form of
out-of-band distribution of intermediate certificates or other trust anchors in
a way that requires a robust update mechanism. This makes these proposals mainly
suitable for the WebPKI setting; although this is also the setting that has the
largest number of certificates due to the inclusion of SCT statements
<xref target="RFC6962"/> and OSCP staples <xref target="RFC6960"/>.</t>
          <t>AuthKEM complements these approaches in the WebPKI setting. On its own the gains
that AuthKEM offers may be modest compared to the large sizes of certificate
chains. But when combined with compression or certificate suppression mechanisms
such as those proposed in the referenced drafts, the reduction in handshake size
when replacing Dilithium-2 by Kyber-768 becomes significant again.</t>
        </section>
      </section>
      <section anchor="organization">
        <name>Organization</name>
        <t>After a brief introduction to KEMs, we will introduce the AuthKEM authentication
mechanism. For clarity, we discuss unilateral and mutual authentication
separately. In the remainder of the draft, we will discuss the necessary
implementation mechanics, such as code points, extensions, new protocol messages
and the new key schedule. The draft concludes with ah extensive discussion of
relevant security considerations.</t>
        <t>A related mechanism for KEM-based PSK-style handshakes is discussed in <xref target="I-D.draft-wiggers-tls-authkem-psk"/>.</t>
      </section>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and definitions</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.
<?line -6?>
      </t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The following terms are used as they are in <xref target="RFC8446"/></t>
        <dl>
          <dt>client:</dt>
          <dd>
            <t>The endpoint initiating the TLS connection.</t>
          </dd>
          <dt>connection:</dt>
          <dd>
            <t>A transport-layer connection between two endpoints.</t>
          </dd>
          <dt>endpoint:</dt>
          <dd>
            <t>Either the client or server of the connection.</t>
          </dd>
          <dt>handshake:</dt>
          <dd>
            <t>An initial negotiation between client and server that establishes the
parameters of their subsequent interactions within TLS.</t>
          </dd>
          <dt>peer:</dt>
          <dd>
            <t>An endpoint.  When discussing a particular endpoint, "peer" refers to the
endpoint that is not the primary subject of discussion.</t>
          </dd>
          <dt>receiver:</dt>
          <dd>
            <t>An endpoint that is receiving records.</t>
          </dd>
          <dt>sender:</dt>
          <dd>
            <t>An endpoint that is transmitting records.</t>
          </dd>
          <dt>server:</dt>
          <dd>
            <t>The endpoint that responded to the initiation of the TLS connection. i.e. the
peer of the client.</t>
          </dd>
        </dl>
      </section>
      <section anchor="key-encapsulation-mechanisms">
        <name>Key Encapsulation Mechanisms</name>
        <t>As this proposal relies heavily on KEMs, which are not originally used by TLS,
we will provide a brief overview of this primitive. Other cryptographic
operations will be discussed later.</t>
        <t>A Key Encapsulation Mechanism (KEM) is a cryptographic primitive that defines
the methods <tt>Encapsulate</tt> and <tt>Decapsulate</tt>. In this draft, we extend these
operations with context separation strings, per HPKE <xref target="RFC9180"/>:</t>
        <dl newline="true">
          <dt><tt>Encapsulate(pkR, context_string)</tt>:</dt>
          <dd>
            <t>Takes a public key, and produces a shared secret and encapsulation.</t>
          </dd>
          <dt><tt>Decapsulate(enc, skR, context_string)</tt>:</dt>
          <dd>
            <t>Takes the encapsulation and the private key. Returns the shared secret.</t>
          </dd>
        </dl>
        <t>We implement these methods through the KEMs defined in <xref target="RFC9180"/> to export
shared secrets appropriate for using with the HKDF in TLS 1.3:</t>
        <artwork><![CDATA[
def Encapsulate(pk, context_string):
  enc, ctx = HPKE.SetupBaseS(pk, "tls13 auth-kem " + context_string)
  ss = ctx.Export("", HKDF.Length)
  return (enc, ss)

def Decapsulate(enc, sk, context_string):
  return HPKE.SetupBaseR(enc,
                         sk,
                         "tls13 auth-kem " + context_string)
             .Export("", HKDF.Length)
]]></artwork>
        <t>Keys are generated and encoded for transmission following the conventions in
<xref target="RFC9180"/>. The values of <tt>context_string</tt> are defined in
<xref target="kem-computations"/>.</t>
      </section>
    </section>
    <section anchor="full-15-rtt-authkem-handshake-protocol">
      <name>Full 1.5-RTT AuthKEM Handshake Protocol</name>
      <t>Figure 1 below shows the basic KEM-authentication (AuthKEM) handshake, without
client authentication:</t>
      <artwork><![CDATA[
       Client                                     Server

Key  ^ ClientHello
Exch | + key_share
     v + signature_algorithms
                          -------->
                                             ServerHello  ^ Key
                                             + key_share  v Exch
                                   <EncryptedExtensions>
                                           <Certificate>  ^
       <KEMEncapsulation>  -------->                      |
       {Finished}          -------->                      | Auth
       [Application Data]  -------->                      |
                           <--------          {Finished}  v

       [Application Data]  <------->  [Application Data]

        +  Indicates noteworthy extensions sent in the
           previously noted message.
        <> Indicates messages protected using keys
           derived from a [sender]_handshake_traffic_secret.
        {} Indicates messages protected using keys
           derived from a
           [sender]_authenticated_handshake_traffic_secret.
        [] Indicates messages protected using keys
           derived from [sender]_application_traffic_secret_N.

       Figure 1: Message Flow for KEM-Authentication (KEM-Auth)
                 Handshake without client authentication.
]]></artwork>
      <t>This basic handshake captures the core of AuthKEM. Instead of using a signature
to authenticate the handshake, the client encapsulates a shared secret to the
server's certificate public key. Only the server that holds the private key
corresponding to the certificate public key can derive the same shared secret.
This shared secret is mixed into the handshake's key schedule. The client does
not have to wait for the server's <tt>Finished</tt> message before it can send data.
The client knows that its message can only be decrypted if the server was able
to derive the authentication shared secret encapsulated in the
<tt>KEMEncapsulation</tt> message.</t>
      <t><tt>Finished</tt> messages are sent as in TLS 1.3, and achieve full explicit
authentication.</t>
      <section anchor="client-authentication">
        <name>Client authentication</name>
        <t>For client authentication, the server sends the <tt>CertificateRequest</tt> message
as in <xref target="RFC8446"/>. This message can not be authenticated in the AuthKEM
handshake: we will discuss the implications below.</t>
        <t>As in <xref target="RFC8446"/>, section 4.4.2, if and only if the client receives
<tt>CertificateRequest</tt>, it MUST send a <tt>Certificate</tt> message. If the client
has no suitable certificate, it MUST send a <tt>Certificate</tt> message containing
no certificates. If the server is satisfied with the provided certificate, it
MUST send back a <tt>KEMEncapsulation</tt> message, containing the encapsulation to
the client's certificate. The resulting shared secret is mixed into the key
schedule. This ensures any messages sent using keys derived from it are covered
by the authentication.</t>
        <t>The AuthKEM handshake with client authentication is given in Figure 2.</t>
        <artwork><![CDATA[
       Client                                     Server

Key  ^ ClientHello
Exch | + key_share
     v + signature_algorithms
                          -------->
                                             ServerHello  ^ Key
                                             + key_share  v Exch
                                   <EncryptedExtensions>  ^ Server
                                    <CertificateRequest>  v Params
                                           <Certificate>  ^
     ^ <KEMEncapsulation>                                 |
     | {Certificate}       -------->                      |
Auth |                     <--------  {KEMEncapsulation}  | Auth
     v {Finished}          -------->                      |
       [Application Data]  -------->                      |
                           <-------           {Finished}  v

       [Application Data]  <------->  [Application Data]

        +  Indicates noteworthy extensions sent in the
           previously noted message.
        <> Indicates messages protected using keys
           derived from a [sender]_handshake_traffic_secret.
        {} Indicates messages protected using keys
           derived from a
           [sender]_authenticated_handshake_traffic_secret.
        [] Indicates messages protected using keys
           derived from [sender]_application_traffic_secret_N.

       Figure 2: Message Flow for KEM-Authentication (KEM-Auth)
                 Handshake with client authentication.
]]></artwork>
        <t>If the server is not satisfied with the client's certificates, it MAY, at its
discretion, decide to continue or terminate the handshake. If it decides to
continue, it MUST NOT send back a <tt>KEMEncapsulation</tt> message and the client
and server MUST compute the encryption keys as in the server-only authenticated
AuthKEM handshake. The <tt>Certificate</tt> remains included in the transcript. The
client MUST NOT assume it has been authenticated.</t>
        <t>Unfortunately, AuthKEM client authentication requires an extra round-trip.
Clients that know the server's long-term public KEM key MAY choose to use the
abbreviated AuthKEM handshake and opportunistically send the client certificate
as a 0-RTT-like message. This mechanism is discussed in
<xref target="I-D.draft-wiggers-authkem-psk-latest"/>.</t>
      </section>
      <section anchor="relevant-handshake-messages">
        <name>Relevant handshake messages</name>
        <t>After the Key Exchange and Server Parameters phase of TLS 1.3 handshake, the
client and server exchange implicitly authenticated messages. KEM-based
authentication uses the same set of messages every time that certificate-based
authentication is needed.  Specifically:</t>
        <ul spacing="normal">
          <li>
            <tt>Certificate</tt>:  The certificate of the endpoint and any per-certificate
extensions.  This message MUST be omitted by the client if the server did not
send a <tt>CertificateRequest</tt> message (thus indicating that the client should
not authenticate with a certificate). For AuthKEM, <tt>Certificate</tt> MUST include
the long-term KEM public key. Certificates MUST be handled in accordance with
<xref target="RFC8446"/>, section 4.4.2.4.</li>
          <li>
            <tt>KEMEncapsulation</tt>: A key encapsulation against the certificate's long-term
public key, which yields an implicitly authenticated shared secret.</li>
        </ul>
      </section>
      <section anchor="overview-of-key-differences-with-rfc8446-tls-13">
        <name>Overview of key differences with RFC8446 TLS 1.3</name>
        <ul spacing="normal">
          <li>New types of <tt>signature_algorithms</tt> for KEMs.</li>
          <li>Public keys in certificates are KEM algorithms.</li>
          <li>New handshake message <tt>KEMEncapsulation</tt>.</li>
          <li>The key schedule mixes in the shared secrets from the authentication.</li>
          <li>The <tt>Certificate</tt> is sent encrypted with a new handshake encryption key.</li>
          <li>The client sends <tt>Finished</tt> before the server.</li>
          <li>The client sends data before the server has sent <tt>Finished</tt>.</li>
        </ul>
      </section>
      <section anchor="implicit-and-explicit-authentication">
        <name>Implicit and explicit authentication</name>
        <t>The data that the client MAY transmit to the server before having received the
server's <tt>Finished</tt> is encrypted using ciphersuites chosen based on the
client's and server's advertised preferences in the <tt>ClientHello</tt> and
<tt>ServerHello</tt> messages. The <tt>ServerHello</tt> message can however not be
authenticated before the <tt>Finished</tt> message from the server is verified. The
full implications of this are discussed in the Security Considerations section.</t>
        <t>Upon receiving the client's authentication messages, the server responds with
its <tt>Finished</tt> message, which achieves explicit authentication. Upon receiving
the server's <tt>Finished</tt> message, the client achieves explicit authentication.
Receiving this message retroactively confirms the server's cryptographic
parameter choices.</t>
      </section>
      <section anchor="authenticating-certificaterequest">
        <name>Authenticating <tt>CertificateRequest</tt></name>
        <t>The <tt>CertificateRequest</tt> message can not be authenticated during the AuthKEM
handshake; only after the <tt>Finished</tt> message from the server has been
processed, it can be proven as authentic. The security implications of this are
discussed later.</t>
        <t><strong>This is discussed in <eref target="https://github.com/kemtls/draft-celi-wiggers-tls-authkem/issues/16">GitHub issue
#16</eref>. We
would welcome feedback there.</strong></t>
        <t>Clients MAY choose to only accept post-handshake authentication.</t>
        <t><strong>TODO: Should they indicate this? TLS Flag?</strong></t>
      </section>
    </section>
    <section anchor="implementation">
      <name>Implementation</name>
      <t>In this section we will discuss the implementation details such as extensions
and key schedule.</t>
      <section anchor="negotiation-of-authkem">
        <name>Negotiation of AuthKEM</name>
        <t>Clients will indicate support for this mode by negotiating it as if it were a
signature scheme (part of the <tt>signature_algorithms</tt> extension). We thus add
these new signature scheme values (even though, they are not signature schemes)
for the KEMs defined in <xref target="RFC9180"/> Section 7.1. Note that we will be only
using their internal KEM's API defined there.</t>
        <artwork><![CDATA[
enum {
  dhkem_p256_sha256   => TBD,
  dhkem_p384_sha384   => TBD,
  dhkem_p521_sha512   => TBD,
  dhkem_x25519_sha256 => TBD,
  dhkem_x448_sha512   => TBD,
  kem_x25519kyber768  => TBD, /*draft-westerbaan-cfrg-hpke-xyber768d00*/
}
]]></artwork>
        <t><strong>Please give feedback on which KEMs should be included</strong></t>
        <t>When present in the <tt>signature_algorithms</tt> extension, these values indicate
AuthKEM support with the specified key exchange mode. These values MUST NOT
appear in <tt>signature_algorithms_cert</tt>, as this extension specifies the signing
algorithms by which certificates are signed.</t>
      </section>
      <section anchor="protocol-messages">
        <name>Protocol messages</name>
        <t>The handshake protocol is used to negotiate the security parameters of a
connection, as in TLS 1.3. It uses the same messages, expect for the addition of
a <tt>KEMEncapsulation</tt> message and does not use the <tt>CertificateVerify</tt> one.</t>
        <artwork><![CDATA[
enum {
    ...
    kem_encapsulation(tbd),
    ...
    (255)
  } HandshakeType;

struct {
    HandshakeType msg_type;    /* handshake type */
    uint24 length;             /* remaining bytes in message */
    select (Handshake.msg_type) {
        ...
        case kem_encapsulation:     KEMEncapsulation;
        ...
    };
} Handshake;
]]></artwork>
        <t>Protocol messages MUST be sent in the order defined in Section 4. A peer which
receives a handshake message in an unexpected order MUST abort the handshake
with a "<tt>unexpected_message</tt>" alert.</t>
        <t>The <tt>KEMEncapsulation</tt> message is defined as follows:</t>
        <artwork><![CDATA[
struct {
    opaque certificate_request_context<0..2^8-1>
    opaque encapsulation<0..2^16-1>;
} KEMEncapsulation;
]]></artwork>
        <t>The encapsulation field is the result of a <tt>Encapsulate</tt> function. The
<tt>Encapsulate()</tt> function will also result in a shared secret (<tt>ssS</tt> or <tt>ssC</tt>,
depending on the peer) which is used to derive the <tt>AHS</tt> or <tt>MS</tt> secrets (See
<xref target="key-schedule"/>).</t>
        <t>If the <tt>KEMEncapsulation</tt> message is sent by a server, the authentication
algorithm MUST be one offered in the client's <tt>signature_algorithms</tt> extension.
Otherwise, the server MUST terminate the handshake with an
"<tt>unsupported_certificate</tt>" alert.</t>
        <t>If sent by a client, the authentication algorithm used in the signature MUST be
one of those present in the <tt>supported_signature_algorithms</tt> field of the
<tt>signature_algorithms</tt> extension in the <tt>CertificateRequest</tt> message.</t>
        <t>In addition, the authentication algorithm MUST be compatible with the key(s) in
the sender's end-entity certificate.</t>
        <t>The receiver of a <tt>KEMEncapsulation</tt> message MUST perform the <tt>Decapsulate()</tt>
operation by using the sent encapsulation and the private key of the public key
advertised in the end-entity certificate sent. The <tt>Decapsulate()</tt> function will
also result on a shared secret (<tt>ssS</tt> or <tt>ssC</tt>, depending on the Server or
Client executing it respectively) which is used to derive the <tt>AHS</tt> or <tt>MS</tt>
secrets.</t>
        <t><tt>certificate_request_context</tt> is included to allow the recipient to identify the
certificate against which the encapsulation was generated. It MUST be set to the
value in the <tt>Certificate</tt> message to which the encapsulation was computed.</t>
      </section>
      <section anchor="cryptographic-computations">
        <name>Cryptographic computations</name>
        <t>The AuthKEM handshake establishes three input secrets which are combined to
create the actual working keying material, as detailed below. The key derivation
process incorporates both the input secrets and the handshake transcript.  Note
that because the handshake transcript includes the random values from the Hello
messages, any given handshake will have different traffic secrets, even if the
same input secrets are used.</t>
        <section anchor="key-schedule">
          <name>Key schedule for full AuthKEM handshakes</name>
          <t>AuthKEM uses the same <tt>HKDF-Extract</tt> and <tt>HKDF-Expand</tt> functions as defined by
TLS 1.3, in turn defined by <xref target="RFC5869"/>.</t>
          <t>Keys are derived from two input secrets using the <tt>HKDF-Extract</tt> and
<tt>Derive-Secret</tt> functions.  The general pattern for adding a new secret is to
use <tt>HKDF-Extract</tt> with the Salt being the current secret state and the Input
Keying Material (IKM) being the new secret to be added.</t>
          <t>The notable differences are:</t>
          <ul spacing="normal">
            <li>The addition of the <tt>Authenticated Handshake Secret</tt> and a new set of
handshake traffic encryption keys.</li>
            <li>The inclusion of the <tt>SSs</tt> and <tt>SSc</tt> (if present) shared secrets as IKM to
<tt>Authenticated Handshake Secret</tt> and <tt>Main Secret</tt>, respectively.</li>
          </ul>
          <t>The full key schedule proceeds as follows:</t>
          <artwork><![CDATA[
            0
            |
            v
    PSK -> HKDF-Extract = Early Secret
            |
            +--> Derive-Secret(., "ext binder" | "res binder", "")
            |                  = binder_key
            |
            +--> Derive-Secret(., "c e traffic", ClientHello)
            |                  = client_early_traffic_secret
            |
            +--> Derive-Secret(., "e exp master", ClientHello)
            |                  = early_exporter_master_secret
            v
            Derive-Secret(., "derived", "")
            |
            v
(EC)DHE -> HKDF-Extract = Handshake Secret
            |
            +--> Derive-Secret(., "c hs traffic",
            |                  ClientHello...ServerHello)
            |                  = client_handshake_traffic_secret
            |
            +--> Derive-Secret(., "s hs traffic",
            |                  ClientHello...ServerHello)
            |                  = server_handshake_traffic_secret
            v
            Derive-Secret(., "derived", "") = dHS
            |
            v
    SSs -> HKDF-Extract = Authenticated Handshake Secret
            |
            +--> Derive-Secret(., "c ahs traffic",
            |                  ClientHello...KEMEncapsulation)
            |         = client_handshake_authenticated_traffic_secret
            |
            +--> Derive-Secret(., "s ahs traffic",
            |                  ClientHello...KEMEncapsulation)
            |         = server_handshake_authenticated_traffic_secret
            v
            Derive-Secret(., "derived", "") = dAHS
            |
            v
SSc||0 * -> HKDF-Extract = Main Secret
            |
            +--> Derive-Secret(., "c ap traffic",
            |                  ClientHello...server Finished)
            |                  = client_application_traffic_secret_0
            |
            +--> Derive-Secret(., "s ap traffic",
            |                  ClientHello...server Finished)
            |                  = server_application_traffic_secret_0
            |
            +--> Derive-Secret(., "exp master",
            |                  ClientHello...server Finished)
            |                  = exporter_master_secret
            |
            +--> Derive-Secret(., "res master",
                               ClientHello...client Finished)
                               = resumption_master_secret

*: if client authentication was requested, the `SSc` value should
   be used. Otherwise, the `0` value is used.
]]></artwork>
        </section>
        <section anchor="kem-computations">
          <name>Computations of KEM shared secrets</name>
          <t>The operations to compute <tt>SSs</tt> or <tt>SSc</tt> from the client are:</t>
          <artwork><![CDATA[
SSs, encapsulation <- Encapsulate(public_key_server,
                                  "server authentication")
               SSc <- Decapsulate(encapsulation, private_key_client,
                                  "client authentication")
]]></artwork>
          <t>The operations to compute <tt>SSs</tt> or <tt>SSc</tt> from the server are:</t>
          <artwork><![CDATA[
               SSs <- Decapsulate(encapsulation, private_key_server
                                  "server authentication")
SSc, encapsulation <- Encapsulate(public_key_client,
                                  "client authentication")
]]></artwork>
        </section>
        <section anchor="explicit-authentication-messages">
          <name>Explicit Authentication Messages</name>
          <t>AuthKEM upgrades implicit to explicit authentication through the <tt>Finished</tt>
message. Note that in the full handshake, AuthKEM achieves explicit
authentication only when the server sends the final <tt>Finished</tt> message (the
client is only implicitly authenticated when they send their <tt>Finished</tt>
message).</t>
          <t>Full downgrade resilience and forward secrecy is achieved once the AuthKEM
handshake completes.</t>
          <t>The key used to compute the <tt>Finished</tt> message MUST be computed from the
<tt>MainSecret</tt> using HKDF (instead of a key derived from HS as in <xref target="RFC8446"/>).
Specifically:</t>
          <artwork><![CDATA[
server/client_finished_key =
  HKDF-Expand-Label(MainSecret,
                    server/client_label,
                    "", Hash.length)
server_label = "tls13 server finished"
client_label = "tls13 client finished"
]]></artwork>
          <t>The <tt>verify_data</tt> value is computed as follows. Note that instead of what is
specified in <xref target="RFC8446"/>, we use the full transcript for both server and client
Finished messages:</t>
          <artwork><![CDATA[
server/client_verify_data =
      HMAC(server/client_finished_key,
           Transcript-Hash(Handshake Context,
                           Certificate*,
                           KEMEncapsulation*,
                           Finished**))

*  Only included if present.
** The party who last sends the finished message in terms of flights
   includes the other party's Finished message.
]]></artwork>
          <t>Any records following a <tt>Finished</tt> message MUST be encrypted under the
appropriate application traffic key as described in <xref target="RFC8446"/>. In particular,
this includes any alerts sent by the server in response to client
<tt>Certificate</tt> and <tt>KEMEncapsulation</tt> messages.</t>
          <t>See <xref target="SSW20"/> for a full treatment of implicit and explicit authentication.</t>
        </section>
      </section>
    </section>
    <section anchor="sec-considerations">
      <name>Security Considerations</name>
      <section anchor="implicit-authentication">
        <name>Implicit authentication</name>
        <t>Because preserving a 1/1.5RTT handshake in KEM-Auth requires the client to send
its request in the same flight when the <tt>ServerHello</tt> message is received, it
can not yet have explicitly authenticated the server. However, through the
inclusion of the key encapsulated to the server's long-term secret, only an
authentic server should be able to decrypt these messages.</t>
        <t>However, the client can not have received confirmation that the server's choices
for symmetric encryption, as specified in the <tt>ServerHello</tt> message, were
authentic. These are not authenticated until the <tt>Finished</tt> message from the
server arrived. This may allow an adversary to downgrade the symmetric
algorithms, but only to what the client is willing to accept. If such an attack
occurs, the handshake will also never successfully complete and no data can be
sent back.</t>
        <t>If the client trusts the symmetric algorithms advertised in its <tt>ClientHello</tt>
message, this should not be a concern. A client MUST NOT accept any
cryptographic parameters it does not include in its own <tt>ClientHello</tt> message.</t>
        <t>If client authentication is used, explicit authentication is reached before any
application data, on either client or server side, is transmitted.</t>
        <t>Application Data MUST NOT be sent prior to sending the Finished message, except
as specified in Section 2.3 of <xref target="RFC8446"/>.  Note that while the client MAY
send Application Data prior to receiving the server's last explicit
Authentication message, any data sent at that point is, being sent to an
implicitly authenticated peer.</t>
      </section>
      <section anchor="authentication-of-certificate-request">
        <name>Authentication of Certificate Request</name>
        <t>Due to the implicit authentication of the server's messages during the full
AuthKEM handshake, the <tt>CertificateRequest</tt> message can not be authenticated
before the client received <tt>Finished</tt>.</t>
        <t>The key schedule guarantees that the server can not read the client's
certificate message (as discussed above). An active adversary that maliciously
inserts a <tt>CertificateRequest</tt> message will also result in a mismatch in
transcript hashes, which will cause the handshake to fail.</t>
        <t>However, there may be side effects. The adversary might learn that the client
has a certificate by observing the length of the messages sent. There may also
be side effects, especially in situations where the client is prompted to e.g.
approve use or unlock a certificate stored encrypted or on a smart card.</t>
      </section>
      <section anchor="other-security-considerations">
        <name>Other security considerations</name>
        <ul spacing="normal">
          <li>Because the Main Secret is derived from both the ephemeral key exchange,
as well as from the key exchanges completed for server and (optionally) client
authentication, the MS secret always reflects the peers' views of the authentication
status correctly. This is an improvement over TLS 1.3 for client authentication.</li>
          <li>The academic works proposing AuthKEM (KEMTLS) contains an in-depth technical
discussion of and a proof of the security of the handshake protocol without
client authentication <xref target="SSW20"/>.</li>
          <li>The work proposing the variant protocol <xref target="SSW21"/> with pre-distributed public
keys (the abbreviated AuthKEM handshake) has a proof for both unilaterally and
mutually authenticated handshakes.</li>
          <li>We have proofs of the security of KEMTLS and KEMTLS-PDK in Tamarin. <xref target="CHSW22"/></li>
          <li>Application Data sent prior to receiving the server's last explicit
authentication message (the Finished message) can be subject to a client
certificate suite downgrade attack. Full downgrade resilience and forward
secrecy is achieved once the handshake completes.</li>
          <li>The client's certificate is kept secret from active observers by the
derivation of the <tt>client_authenticated_handshake_secret</tt>, which ensures that
only the intended server can read the client's identity.</li>
          <li>If AuthKEM client authentication is used, the resulting shared secret is
included in the key schedule. This ensures that both peers have a consistent
view of the authentication status, unlike <xref target="RFC8446"/>.</li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies version 1.3 of the Transport Layer Security (TLS) protocol. TLS allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>This document updates RFCs 5705 and 6066, and obsoletes RFCs 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 implementations.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8446"/>
          <seriesInfo name="DOI" value="10.17487/RFC8446"/>
        </reference>
        <reference anchor="RFC9180">
          <front>
            <title>Hybrid Public Key Encryption</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="K. Bhargavan" initials="K." surname="Bhargavan"/>
            <author fullname="B. Lipp" initials="B." surname="Lipp"/>
            <author fullname="C. Wood" initials="C." surname="Wood"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document describes a scheme for hybrid public key encryption (HPKE). This scheme provides a variant of public key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one that authenticates possession of a pre-shared key and two optional ones that authenticate possession of a key encapsulation mechanism (KEM) private key. HPKE works for any combination of an asymmetric KEM, key derivation function (KDF), and authenticated encryption with additional data (AEAD) encryption function. Some authenticated variants may not be supported by all KEMs. We provide instantiations of the scheme using widely used and efficient primitives, such as Elliptic Curve Diffie-Hellman (ECDH) key agreement, HMAC-based key derivation function (HKDF), and SHA2.</t>
              <t>This document is a product of the Crypto Forum Research Group (CFRG) in the IRTF.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9180"/>
          <seriesInfo name="DOI" value="10.17487/RFC9180"/>
        </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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC5869">
          <front>
            <title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
            <author fullname="H. Krawczyk" initials="H." surname="Krawczyk"/>
            <author fullname="P. Eronen" initials="P." surname="Eronen"/>
            <date month="May" year="2010"/>
            <abstract>
              <t>This document specifies a simple Hashed Message Authentication Code (HMAC)-based key derivation function (HKDF), which can be used as a building block in various protocols and applications. The key derivation function (KDF) is intended to support a wide range of applications and requirements, and is conservative in its use of cryptographic hash functions. This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5869"/>
          <seriesInfo name="DOI" value="10.17487/RFC5869"/>
        </reference>
        <reference anchor="SSW20">
          <front>
            <title>Post-Quantum TLS without Handshake Signatures</title>
            <author initials="D." surname="Stebila" fullname="Douglas Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <author initials="P." surname="Schwabe" fullname="Peter Schwabe">
              <organization>Radboud University and Max Planck Institute for Security and Privacy</organization>
            </author>
            <author initials="T." surname="Wiggers" fullname="Thom Wiggers">
              <organization>Radboud University</organization>
            </author>
            <date year="2020" month="November"/>
          </front>
          <seriesInfo name="ACM CCS 2020" value=""/>
          <seriesInfo name="DOI" value="10.1145/3372297.3423350"/>
          <seriesInfo name="IACR ePrint" value="https://ia.cr/2020/534"/>
        </reference>
        <reference anchor="SSW21">
          <front>
            <title>More Efficient KEMTLS with Pre-Shared Keys</title>
            <author initials="D." surname="Stebila" fullname="Douglas Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <author initials="P." surname="Schwabe" fullname="Peter Schwabe">
              <organization>Radboud University and Max Planck Institute for Security and Privacy</organization>
            </author>
            <author initials="T." surname="Wiggers" fullname="Thom Wiggers">
              <organization>Radboud University</organization>
            </author>
            <date year="2021" month="May"/>
          </front>
          <seriesInfo name="ESORICS 2021" value=""/>
          <seriesInfo name="DOI" value="10.1007/978-3-030-88418-5_1"/>
          <seriesInfo name="IACR ePrint" value="https://ia.cr/2021/779"/>
        </reference>
        <reference anchor="CHSW22">
          <front>
            <title>A tale of two models: formal verification of KEMTLS in Tamarin</title>
            <author initials="S." surname="Celi" fullname="Sofía Celi">
              <organization>Brave Software</organization>
            </author>
            <author initials="J." surname="Hoyland" fullname="Jonathan Hoyland">
              <organization>Cloudflare, Inc.</organization>
            </author>
            <author initials="D." surname="Stebila" fullname="Douglas Stebila">
              <organization>University of Waterloo</organization>
            </author>
            <author initials="T." surname="Wiggers" fullname="Thom Wiggers">
              <organization>Radboud University</organization>
            </author>
            <date year="2022" month="August"/>
          </front>
          <seriesInfo name="ESORICS 2022" value=""/>
          <seriesInfo name="DOI" value="10.1007/978-3-031-17143-7_4"/>
          <seriesInfo name="IACR ePrint" value="https://ia.cr/2022/1111"/>
        </reference>
        <reference anchor="NISTPQC">
          <front>
            <title>Post-Quantum Cryptography Standardization</title>
            <author initials="" surname="NIST">
              <organization>National Institute for Standards and Technology</organization>
            </author>
            <date year="2020"/>
          </front>
        </reference>
        <reference anchor="KW16" target="https://ia.cr/2015/978">
          <front>
            <title>The OPTLS Protocol and TLS 1.3</title>
            <author initials="H." surname="Krawczyk" fullname="Hugo Krawczyk">
              <organization>IBM Research</organization>
            </author>
            <author initials="H." surname="Wee" fullname="Hoeteck Wee">
              <organization>ENS, CNRS, INRIA and Columbia University</organization>
            </author>
            <date year="2016"/>
          </front>
          <seriesInfo name="Proceedings of Euro S&amp;P 2016" value=""/>
        </reference>
        <reference anchor="K22" target="https://kannwischer.eu/thesis/">
          <front>
            <title>Polynomial Multiplication for Post-Quantum Cryptography</title>
            <author initials="M. J." surname="Kannwischer" fullname="Matthias J. Kannwischer">
              <organization>Radboud University</organization>
            </author>
            <date year="2022" month="April" day="22"/>
          </front>
          <seriesInfo name="Ph.D." value="thesis"/>
        </reference>
        <reference anchor="KYBER" target="https://pq-crystals.org/kyber/">
          <front>
            <title>CRYSTALS-Kyber</title>
            <author initials="R." surname="Avanzi">
              <organization/>
            </author>
            <author initials="J." surname="Bos">
              <organization/>
            </author>
            <author initials="L." surname="Ducas">
              <organization/>
            </author>
            <author initials="E." surname="Kiltz">
              <organization/>
            </author>
            <author initials="T." surname="Lepoint">
              <organization/>
            </author>
            <author initials="V." surname="Lyubashevsky">
              <organization/>
            </author>
            <author initials="J." surname="Schanck">
              <organization/>
            </author>
            <author initials="P." surname="Schwabe">
              <organization/>
            </author>
            <author initials="G." surname="Seiler">
              <organization/>
            </author>
            <author initials="D." surname="Stehlé">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="DILITHIUM" target="https://pq-crystals.org/dilithium/">
          <front>
            <title>CRYSTALS-Dilithium</title>
            <author initials="L." surname="Ducas">
              <organization/>
            </author>
            <author initials="E." surname="Kiltz">
              <organization/>
            </author>
            <author initials="T." surname="Lepoint">
              <organization/>
            </author>
            <author initials="V." surname="Lyubashevsky">
              <organization/>
            </author>
            <author initials="P." surname="Schwabe">
              <organization/>
            </author>
            <author initials="G." surname="Seiler">
              <organization/>
            </author>
            <author initials="D." surname="Stehlé">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="FALCON" target="https://falcon-sign.info">
          <front>
            <title>Falcon</title>
            <author initials="P." surname="Fouque">
              <organization/>
            </author>
            <author initials="J." surname="Hoffstein">
              <organization/>
            </author>
            <author initials="P." surname="Kirchner">
              <organization/>
            </author>
            <author initials="V." surname="Lyubashevsky">
              <organization/>
            </author>
            <author initials="T." surname="Pornin">
              <organization/>
            </author>
            <author initials="T." surname="Ricosset">
              <organization/>
            </author>
            <author initials="G." surname="Seiler">
              <organization/>
            </author>
            <author initials="W." surname="Whyte">
              <organization/>
            </author>
            <author initials="Z." surname="Zhang">
              <organization/>
            </author>
            <date year="2021"/>
          </front>
        </reference>
        <reference anchor="RFC8410">
          <front>
            <title>Algorithm Identifiers for Ed25519, Ed448, X25519, and X448 for Use in the Internet X.509 Public Key Infrastructure</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson"/>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2018"/>
            <abstract>
              <t>This document specifies algorithm identifiers and ASN.1 encoding formats for elliptic curve constructs using the curve25519 and curve448 curves. The signature algorithms covered are Ed25519 and Ed448. The key agreement algorithms covered are X25519 and X448. The encoding for public key, private key, and Edwards-curve Digital Signature Algorithm (EdDSA) structures is provided.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8410"/>
          <seriesInfo name="DOI" value="10.17487/RFC8410"/>
        </reference>
        <reference anchor="I-D.ietf-tls-subcerts">
          <front>
            <title>Delegated Credentials for TLS and DTLS</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Subodh Iyengar" initials="S." surname="Iyengar">
              <organization>Facebook</organization>
            </author>
            <author fullname="Nick Sullivan" initials="N." surname="Sullivan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Mozilla</organization>
            </author>
            <date day="30" month="June" year="2022"/>
            <abstract>
              <t>The organizational separation between operators of TLS and DTLS endpoints and the certification authority can create limitations.  For example, the lifetime of certificates, how they may be used, and the algorithms they support are ultimately determined by the Certification Authority (CA).  This document describes a mechanism to overcome some of these limitations by enabling operators to delegate their own credentials for use in TLS and DTLS without breaking compatibility with peers that do not support this specification.
              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-subcerts-15"/>
        </reference>
        <reference anchor="I-D.draft-westerbaan-cfrg-hpke-xyber768d00">
          <front>
            <title>X25519Kyber768Draft00 hybrid post-quantum KEM for HPKE</title>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Cloudflare</organization>
            </author>
            <date day="4" month="May" year="2023"/>
            <abstract>
              <t>   This memo defines X25519Kyber768Draft00, a hybrid post-quantum KEM,
   for HPKE (RFC9180).  This KEM does not support the authenticated
   modes of HPKE.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-westerbaan-cfrg-hpke-xyber768d00-02"/>
        </reference>
        <reference anchor="I-D.draft-cfrg-schwabe-kyber">
          <front>
            <title>Kyber Post-Quantum KEM</title>
            <author fullname="Peter Schwabe" initials="P." surname="Schwabe">
              <organization>MPI-SPI &amp; Radboud University</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="31" month="March" year="2023"/>
            <abstract>
              <t>   This memo specifies a preliminary version ("draft00", "v3.02") of
   Kyber, an IND-CCA2 secure Key Encapsulation Method.

About This Document

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

   The latest revision of this draft can be found at
   https://bwesterb.github.io/draft-schwabe-cfrg-kyber/draft-cfrg-
   schwabe-kyber.html.  Status information for this document may be
   found at https://datatracker.ietf.org/doc/draft-cfrg-schwabe-kyber/.

   Source for this draft and an issue tracker can be found at
   https://github.com/bwesterb/draft-schwabe-cfrg-kyber.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-cfrg-schwabe-kyber-02"/>
        </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="RFC6960">
          <front>
            <title>X.509 Internet Public Key Infrastructure Online Certificate Status Protocol - OCSP</title>
            <author fullname="S. Santesson" initials="S." surname="Santesson"/>
            <author fullname="M. Myers" initials="M." surname="Myers"/>
            <author fullname="R. Ankney" initials="R." surname="Ankney"/>
            <author fullname="A. Malpani" initials="A." surname="Malpani"/>
            <author fullname="S. Galperin" initials="S." surname="Galperin"/>
            <author fullname="C. Adams" initials="C." surname="Adams"/>
            <date month="June" year="2013"/>
            <abstract>
              <t>This document specifies a protocol useful in determining the current status of a digital certificate without requiring Certificate Revocation Lists (CRLs). Additional mechanisms addressing PKIX operational requirements are specified in separate documents. This document obsoletes RFCs 2560 and 6277. It also updates RFC 5912.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6960"/>
          <seriesInfo name="DOI" value="10.17487/RFC6960"/>
        </reference>
        <reference anchor="I-D.ietf-tls-semistatic-dh">
          <front>
            <title>Semi-Static Diffie-Hellman Key Establishment for TLS 1.3</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Nick Sullivan" initials="N." surname="Sullivan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Christopher A. Wood" initials="C. A." surname="Wood">
              <organization>Apple Inc.</organization>
            </author>
            <date day="7" month="March" year="2020"/>
            <abstract>
              <t>   TLS 1.3 [RFC8446] specifies a signed Diffie-Hellman exchange modelled
   after SIGMA [SIGMA].  This design is suitable for endpoints whose
   certified credential is a signing key, which is the common situation
   for current TLS servers.  This document describes a mode of TLS 1.3
   in which one or both endpoints have a certified DH key which is used
   to authenticate the exchange.

Note to Readers

   Source for this draft and an issue tracker can be found at
   https://github.com/ekr/draft-rescorla-tls13-semistatic-dh
   (https://github.com/ekr/draft-rescorla-tls13-semistatic-dh).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-semistatic-dh-01"/>
        </reference>
        <reference anchor="RFC8879">
          <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="I-D.draft-jackson-tls-cert-abridge">
          <front>
            <title>Abridged Compression for WebPKI Certificates</title>
            <author fullname="Dennis Jackson" initials="D." surname="Jackson">
              <organization>Mozilla</organization>
            </author>
            <date day="6" month="July" year="2023"/>
            <abstract>
              <t>   This draft defines a new TLS Certificate Compression scheme which
   uses a shared dictionary of root and intermediate WebPKI
   certificates.  The scheme smooths the transition to post-quantum
   certificates by eliminating the root and intermediate certificates
   from the TLS certificate chain without impacting trust negotiation.
   It also delivers better compression than alternative proposals whilst
   ensuring fair treatment for both CAs and website operators.  It may
   also be useful in other applications which store certificate chains,
   e.g.  Certificate Transparency logs.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-jackson-tls-cert-abridge-00"/>
        </reference>
        <reference anchor="I-D.ietf-tls-ctls">
          <front>
            <title>Compact TLS 1.3</title>
            <author fullname="Eric Rescorla" initials="E." surname="Rescorla">
              <organization>Mozilla</organization>
            </author>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Hannes Tschofenig" initials="H." surname="Tschofenig">
         </author>
            <author fullname="Benjamin M. Schwartz" initials="B. M." surname="Schwartz">
              <organization>Google</organization>
            </author>
            <date day="13" month="March" year="2023"/>
            <abstract>
              <t>   This document specifies a "compact" version of TLS 1.3 and DTLS 1.3.
   It saves bandwidth by trimming obsolete material, tighter encoding, a
   template-based specialization technique, and alternative
   cryptographic techniques. cTLS is not directly interoperable with TLS
   1.3 or DTLS 1.3 since the over-the-wire framing is different.  A
   single server can, however, offer cTLS alongside TLS or DTLS.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-tls-ctls-08"/>
        </reference>
        <reference anchor="I-D.draft-kampanakis-tls-scas-latest">
          <front>
            <title>Suppressing CA Certificates in TLS 1.3</title>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>AWS</organization>
            </author>
            <author fullname="Cameron Bytheway" initials="C." surname="Bytheway">
              <organization>AWS</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <author fullname="Martin Thomson" initials="M." surname="Thomson">
              <organization>Mozilla</organization>
            </author>
            <date day="5" month="January" year="2023"/>
            <abstract>
              <t>   A TLS client or server that has access to the complete set of
   published intermediate certificates can inform its peer to avoid
   sending certificate authority certificates, thus reducing the size of
   the TLS handshake.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kampanakis-tls-scas-latest-03"/>
        </reference>
        <reference anchor="I-D.draft-davidben-tls-merkle-tree-certs">
          <front>
            <title>Merkle Tree Certificates for TLS</title>
            <author fullname="David Benjamin" initials="D." surname="Benjamin">
              <organization>Google LLC</organization>
            </author>
            <author fullname="Devon O'Brien" initials="D." surname="O'Brien">
              <organization>Google LLC</organization>
            </author>
            <author fullname="Bas Westerbaan" initials="B." surname="Westerbaan">
              <organization>Cloudflare</organization>
            </author>
            <date day="10" month="March" year="2023"/>
            <abstract>
              <t>   This document describes Merkle Tree certificates, a new certificate
   type for use with TLS.  A relying party that regularly fetches
   information from a transparency service can use this certificate type
   as a size optimization over more conventional mechanisms with post-
   quantum signatures.  Merkle Tree certificates integrate the roles of
   X.509 and Certificate Transparency, achieving comparable security
   properties with a smaller message size, at the cost of more limited
   applicability.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-davidben-tls-merkle-tree-certs-00"/>
        </reference>
        <reference anchor="I-D.draft-wiggers-tls-authkem-psk">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="I-D.draft-wiggers-authkem-psk-latest">
          <front>
            <title>*** BROKEN REFERENCE ***</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
        </reference>
      </references>
    </references>
    <?line 937?>

<section anchor="open-points-of-discussion">
      <name>Open points of discussion</name>
      <t>The following are open points for discussion. The corresponding Github issues
will be linked.</t>
      <section anchor="authentication-concerns-for-client-authentication-requests">
        <name>Authentication concerns for client authentication requests.</name>
        <t>Tracked by <eref target="https://github.com/kemtls/draft-celi-wiggers-tls-authkem/issues/16">Issue
#16</eref>.</t>
        <t>The certificate request message from the server can not be authenticated by the
AuthKEM mechanism. This is already somewhat discussed above and under security
considerations. We might want to allow clients to refuse client auth for
scenarios where this is a concern.</t>
      </section>
      <section anchor="interaction-with-signing-certificates">
        <name>Interaction with signing certificates</name>
        <t>Tracked by <eref target="https://github.com/kemtls/draft-celi-wiggers-tls-authkem/issues/20">Issue
#20</eref>.</t>
        <t>In the current state of the draft, we have not yet discussed combining
traditional signature-based authentication with KEM-based authentication. One
might imagine that the Client has a sigining certificate and the server has a
KEM public key.</t>
        <t>In the current draft, clients MUST use a KEM certificate algorithm if the server
negotiated AuthKEM.</t>
      </section>
    </section>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Early versions of this work were supported by the European Research Council through Starting
Grant No. 805031 (EPOQUE).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
Gsknuw93Hwzk5vHZmz/9fAwb//8BpPsHn9WXAAA=

-->

</rfc>
