<?xml version='1.0' encoding='utf-8'?>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.2.10 -->
<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-schinazi-httpbis-transport-auth-02" category="exp" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 2.40.1 -->
  <front>
    <title abbrev="HTTP Transport Authentication">HTTP Transport Authentication</title>
    <seriesInfo name="Internet-Draft" value="draft-schinazi-httpbis-transport-auth-02"/>
    <author initials="D." surname="Schinazi" fullname="David Schinazi">
      <organization>Google LLC</organization>
      <address>
        <postal>
          <street>1600 Amphitheatre Parkway</street>
          <city>Mountain View, California 94043</city>
          <country>United States of America</country>
        </postal>
        <email>dschinazi.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2020" month="March" day="12"/>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <t>The most common existing authentication mechanisms for HTTP are sent with each
HTTP request, and authenticate that request instead of the underlying HTTP
connection, or transport. While these mechanisms work well for existing uses
of HTTP, they are not suitable for emerging applications that multiplex
non-HTTP traffic inside an HTTP connection. This document describes the HTTP
Transport Authentication Framework, a method of authenticating not only an
HTTP request, but also its underlying transport.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction" numbered="true" toc="default">
      <name>Introduction</name>
      <t>The most common existing authentication mechanisms for HTTP are sent with each
HTTP request, and authenticate that request instead of the underlying HTTP
connection, or transport. While these mechanisms work well for existing uses
of HTTP, they are not suitable for emerging applications that multiplex
non-HTTP traffic inside an HTTP connection. This document describes the HTTP
Transport Authentication Framework, a method of authenticating not only an
HTTP request, but also its underlying transport.</t>
      <t>Traditional HTTP semantics specify that HTTP is a stateless protocol where
each request can be understood in isolation <xref target="RFC7230" format="default"/>. However, the
emergence of QUIC <xref target="I-D.ietf-quic-transport" format="default"/> as a new transport protocol
that can carry HTTP <xref target="I-D.ietf-quic-http" format="default"/> and the existence of QUIC
extensions such as the DATAGRAM frame <xref target="I-D.pauly-quic-datagram" format="default"/> enable new
uses of HTTP such as <xref target="I-D.vvv-webtransport-http3" format="default"/> and
<xref target="I-D.schinazi-masque" format="default"/> where some traffic is exchanged that is disctinct
from HTTP requests and responses. In order to authenticate this traffic, it
is necessary to authenticate the underlying transport (e.g., QUIC or
TLS <xref target="RFC8446" format="default"/>) instead of authenticate each request individually. This
mechanism aims to supplement the HTTP Authentication Framework <xref target="RFC7235" format="default"/>,
not replace it.</t>
      <t>Note that there is currently no mechanism for origin servers to request
that user agents authenticate themselves using Transport Authentication,
this is left as future work.</t>
      <section anchor="conventions" numbered="true" toc="default">
        <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" format="default"/> <xref target="RFC8174" format="default"/>
when, and only when, they appear in all capitals, as shown here.</t>
        <t>This document uses the Augmented BNF defined in <xref target="RFC5234" format="default"/> and updated by
<xref target="RFC7405" format="default"/> along with the "#rule" extension defined in Section 7 of
<xref target="RFC7230" format="default"/>. The rules below are defined in <xref target="RFC3061" format="default"/>, <xref target="RFC5234" format="default"/>,
<xref target="RFC7230" format="default"/>, and <xref target="RFC7235" format="default"/>:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
  OWS           = <OWS, see {{RFC7230}}, Section 3.2.3>
  quoted-string = <quoted-string, see {{RFC7230}}, Section 3.2.6>
  token         = <token, see {{RFC7230}}, Section 3.2.6>
  token68       = <token, see {{RFC7235}}, Section 2.1>
  oid           = <oid, see {{RFC3061}}, Section 2>
]]></artwork>
      </section>
    </section>
    <section anchor="compute-proof" numbered="true" toc="default">
      <name>Computing the Authentication Proof</name>
      <t>This document only defines Transport Authentication for uses of HTTP with TLS.
This includes any use of HTTP over TLS as typically used for HTTP/2, or
HTTP/3 where the transport protocol uses TLS as its authentication and key
exchange mechanism <xref target="I-D.ietf-quic-tls" format="default"/>.</t>
      <t>The user agent leverages a TLS keying material exporter <xref target="RFC5705" format="default"/> to
generate a nonce which can be signed using the user-id's key. The keying
material exporter uses a label that starts with the characters
"EXPORTER-HTTP-Transport-Authentication-" (see <xref target="schemes" format="default"/> for the labels
and contexts used by each scheme). The TLS keying material exporter is
used to generate a 32-byte key which is then used as a nonce.</t>
    </section>
    <section anchor="header-definition" numbered="true" toc="default">
      <name>Header Field Definition</name>
      <t>The "Transport-Authentication" header allows a user agent to authenticate
its transport connection with an origin server.</t>
      <artwork name="" type="" align="left" alt=""><![CDATA[
  Transport-Authentication = transp-auth-scheme *( OWS ";" OWS parameter )
  transp-auth-scheme       = token
  parameter                = token "=" ( token / quoted-string )
]]></artwork>
      <section anchor="directive-u" numbered="true" toc="default">
        <name>The u Directive</name>
        <t>The OPTIONAL "u" (user-id) directive specifies the user-id that the user
agent wishes to authenticate. It is encoded using
Base64 (Section 4 of <xref target="RFC4648" format="default"/>).</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
    u = token68
]]></artwork>
      </section>
      <section anchor="directive-p" numbered="true" toc="default">
        <name>The p Directive</name>
        <t>The OPTIONAL "p" (proof) directive specifies the proof that the user agent
provides to attest to possessing the credential that matches its user-id.
It is encoded using Base64 (Section 4 of <xref target="RFC4648" format="default"/>).</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
    p = token68
]]></artwork>
      </section>
      <section anchor="directive-a" numbered="true" toc="default">
        <name>The a Directive</name>
        <t>The OPTIONAL "a" (algorithm) directive specifies the algorithm used to compute
the proof transmitted in the "p" directive.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
    a = oid
]]></artwork>
      </section>
    </section>
    <section anchor="schemes" numbered="true" toc="default">
      <name>Transport Authentication Schemes</name>
      <t>The Transport Authentication Framework allows defining Transport
Authentication Schemes, which specify how to authenticate user-ids. This
documents defined the "Signature" and "HMAC" schemes.</t>
      <section anchor="signature" numbered="true" toc="default">
        <name>Signature</name>
        <t>The "Signature" Transport Authentication Scheme uses asymmetric cyptography.
User agents possess a user-id and a public/private key pair, and origin
servers maintain a mapping of authorized user-ids to their associated public
keys. When using this scheme, the "u", "p", and "a" directives are REQUIRED.
The TLS keying material export label for this scheme is
"EXPORTER-HTTP-Transport-Authentication-Signature" and the associated
context is empty. The nonce is then signed using the selected asymmetric
signature algorithm and transmitted as the proof directive.</t>
        <t>For example, the user-id "john.doe" authenticating using Ed25519 <xref target="RFC8410" format="default"/>
could produce the following header (lines are folded to fit):</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
Transport-Authentication: Signature u="am9obi5kb2U=";a=1.3.101.112;
p="SW5zZXJ0IHNpZ25hdHVyZSBvZiBub25jZSBoZXJlIHdo
aWNoIHRha2VzIDUxMiBiaXRzIGZvciBFZDI1NTE5IQ=="
]]></artwork>
      </section>
      <section anchor="hmac" numbered="true" toc="default">
        <name>HMAC</name>
        <t>The "HMAC" Transport Authentication Scheme uses symmetric cyptography.
User agents possess a user-id and a secret key, and origin servers maintain a
mapping of authorized user-ids to their associated secret key. When using this
scheme, the "u", "p", and "a" directives are REQUIRED.
The TLS keying material export label for this scheme is
"EXPORTER-HTTP-Transport-Authentication-HMAC" and the associated
context is empty. The nonce is then HMACed using the selected HMAC algorithm
and transmitted as the proof directive.</t>
        <t>For example, the user-id "john.doe" authenticating using
HMAC-SHA-512 <xref target="RFC6234" format="default"/> could produce the following
header (lines are folded to fit):</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
Transport-Authentication: HMAC u="am9obi5kb2U=";a=2.16.840.1.101.3.4.2.3;
p="SW5zZXJ0IEhNQUMgb2Ygbm9uY2UgaGVyZSB3aGljaCB0YWtl
cyA1MTIgYml0cyBmb3IgU0hBLTUxMiEhISEhIQ=="
]]></artwork>
      </section>
    </section>
    <section anchor="proxy" numbered="true" toc="default">
      <name>Proxy Considerations</name>
      <t>Since Transport Authentication authenticates the underlying transport by
leveraging TLS keying material exporters, it cannot be transparently
forwarded by proxies that terminate TLS. However it can be sent over
proxied connections when TLS is performed end-to-end (e.g., when using
HTTP CONNECT proxies).</t>
    </section>
    <section anchor="security" numbered="true" toc="default">
      <name>Security Considerations</name>
      <t>Transport Authentication allows a user-agent to authenticate to an origin
server while guaranteeing freshness and without the need for the server
to transmit a nonce to the user agent. This allows the server to accept
authenticated clients without revealing that it supports or expects
authentication for some resources. It also allows authentication without
the user agent leaking the presence of authentication to observers due to
clear-text TLS Client Hello extensions.</t>
    </section>
    <section anchor="iana" numbered="true" toc="default">
      <name>IANA Considerations</name>
      <section anchor="iana-header" numbered="true" toc="default">
        <name>Transport-Authentication Header Field</name>
        <t>This document, if approved, requests IANA to register the
"Transport-Authentication" header in the "Permanent Message Header Field Names"
registry maintained at
<eref target="https://www.iana.org/assignments/message-headers/">https://www.iana.org/assignments/message-headers/</eref>.</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
  +--------------------------+----------+--------------+---------------+
  |    Header Field Name     | Protocol |    Status    |   Reference   |
  +--------------------------+----------+--------------+---------------+
  | Transport-Authentication |   http   | experimental | This document |
  +--------------------------+----------+--------------+---------------+
]]></artwork>
      </section>
      <section anchor="iana-schemes" numbered="true" toc="default">
        <name>Transport Authentication Schemes Registry</name>
        <t>This document, if approved, requests IANA to create a new HTTP Transport
Authentication Schemes Registry with the following entries:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
  +---------------------------------+---------------+
  | Transport Authentication Scheme |   Reference   |
  +---------------------------------+---------------+
  |            Signature            | This document |
  +---------------------------------+---------------+
  |              HMAC               | This document |
  +---------------------------------+---------------+
]]></artwork>
      </section>
      <section anchor="iana-exporter-label" numbered="true" toc="default">
        <name>TLS Keying Material Exporter Labels</name>
        <t>This document, if approved, requests IANA to register the following entries in
the "TLS Exporter Labels" registry maintained at
<eref target="https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#exporter-labels">https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#exporter-labels</eref></t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
  +--------------------------------------------------+
  |                       Value                      |
  +--------------------------------------------------+
  | EXPORTER-HTTP-Transport-Authentication-Signature |
  +--------------------------------------------------+
  | EXPORTER-HTTP-Transport-Authentication-HMAC      |
  +--------------------------------------------------+
]]></artwork>
        <t>Both of these entries are listed with the following qualifiers:</t>
        <artwork name="" type="" align="left" alt=""><![CDATA[
  +---------+-------------+---------------+
  | DTLS-OK | Recommended |   Reference   |
  +---------+-------------+---------------+
  |    N    |      Y      | This document |
  +---------+-------------+---------------+
]]></artwork>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC7230" target="https://www.rfc-editor.org/info/rfc7230">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</title>
            <seriesInfo name="DOI" value="10.17487/RFC7230"/>
            <seriesInfo name="RFC" value="7230"/>
            <author initials="R." surname="Fielding" fullname="R. Fielding" role="editor">
              <organization/>
            </author>
            <author initials="J." surname="Reschke" fullname="J. Reschke" role="editor">
              <organization/>
            </author>
            <date year="2014" month="June"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems.  This document provides an overview of HTTP architecture and its associated terminology, defines the "http" and "https" Uniform Resource Identifier (URI) schemes, defines the HTTP/1.1 message syntax and parsing requirements, and describes related security concerns for implementations.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8446" target="https://www.rfc-editor.org/info/rfc8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <seriesInfo name="DOI" value="10.17487/RFC8446"/>
            <seriesInfo name="RFC" value="8446"/>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization/>
            </author>
            <date year="2018" month="August"/>
            <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>
        </reference>
        <reference anchor="RFC7235" target="https://www.rfc-editor.org/info/rfc7235">
          <front>
            <title>Hypertext Transfer Protocol (HTTP/1.1): Authentication</title>
            <seriesInfo name="DOI" value="10.17487/RFC7235"/>
            <seriesInfo name="RFC" value="7235"/>
            <author initials="R." surname="Fielding" fullname="R. Fielding" role="editor">
              <organization/>
            </author>
            <author initials="J." surname="Reschke" fullname="J. Reschke" role="editor">
              <organization/>
            </author>
            <date year="2014" month="June"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application- level protocol for distributed, collaborative, hypermedia information systems.  This document defines the HTTP Authentication framework.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization/>
            </author>
            <date year="1997" month="March"/>
            <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>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="BCP" value="14"/>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization/>
            </author>
            <date year="2017" month="May"/>
            <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>
        </reference>
        <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <seriesInfo name="DOI" value="10.17487/RFC5234"/>
            <seriesInfo name="RFC" value="5234"/>
            <seriesInfo name="STD" value="68"/>
            <author initials="D." surname="Crocker" fullname="D. Crocker" role="editor">
              <organization/>
            </author>
            <author initials="P." surname="Overell" fullname="P. Overell">
              <organization/>
            </author>
            <date year="2008" month="January"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax.  Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications.  The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power.  The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges.  This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7405" target="https://www.rfc-editor.org/info/rfc7405">
          <front>
            <title>Case-Sensitive String Support in ABNF</title>
            <seriesInfo name="DOI" value="10.17487/RFC7405"/>
            <seriesInfo name="RFC" value="7405"/>
            <author initials="P." surname="Kyzivat" fullname="P. Kyzivat">
              <organization/>
            </author>
            <date year="2014" month="December"/>
            <abstract>
              <t>This document extends the base definition of ABNF (Augmented Backus-Naur Form) to include a way to specify US-ASCII string literals that are matched in a case-sensitive manner.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC3061" target="https://www.rfc-editor.org/info/rfc3061">
          <front>
            <title>A URN Namespace of Object Identifiers</title>
            <seriesInfo name="DOI" value="10.17487/RFC3061"/>
            <seriesInfo name="RFC" value="3061"/>
            <author initials="M." surname="Mealling" fullname="M. Mealling">
              <organization/>
            </author>
            <date year="2001" month="February"/>
            <abstract>
              <t>This document describes a Uniform Resource Name (URN) namespace that contains Object Identifiers (OIDs).  This memo provides information for the Internet community.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC5705" target="https://www.rfc-editor.org/info/rfc5705">
          <front>
            <title>Keying Material Exporters for Transport Layer Security (TLS)</title>
            <seriesInfo name="DOI" value="10.17487/RFC5705"/>
            <seriesInfo name="RFC" value="5705"/>
            <author initials="E." surname="Rescorla" fullname="E. Rescorla">
              <organization/>
            </author>
            <date year="2010" month="March"/>
            <abstract>
              <t>A number of protocols wish to leverage Transport Layer Security (TLS) to perform key establishment but then use some of the keying material for their own purposes.  This document describes a general mechanism for allowing that.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC4648" target="https://www.rfc-editor.org/info/rfc4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <seriesInfo name="DOI" value="10.17487/RFC4648"/>
            <seriesInfo name="RFC" value="4648"/>
            <author initials="S." surname="Josefsson" fullname="S. Josefsson">
              <organization/>
            </author>
            <date year="2006" month="October"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes.  It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.ietf-quic-transport" target="http://www.ietf.org/internet-drafts/draft-ietf-quic-transport-27.txt">
          <front>
            <title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-quic-transport-27"/>
            <author initials="J" surname="Iyengar" fullname="Jana Iyengar">
              <organization/>
            </author>
            <author initials="M" surname="Thomson" fullname="Martin Thomson">
              <organization/>
            </author>
            <date month="February" day="21" year="2020"/>
            <abstract>
              <t>This document defines the core of the QUIC transport protocol. Accompanying documents describe QUIC's loss detection and congestion control and the use of TLS for key negotiation.  Note to Readers  Discussion of this draft takes place on the QUIC working group mailing list (quic@ietf.org), which is archived at &lt;https://mailarchive.ietf.org/arch/search/?email_list=quic&gt;.  Working Group information can be found at &lt;https://github.com/ quicwg&gt;; source code and issues list for this draft can be found at &lt;https://github.com/quicwg/base-drafts/labels/-transport&gt;.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-quic-http" target="http://www.ietf.org/internet-drafts/draft-ietf-quic-http-27.txt">
          <front>
            <title>Hypertext Transfer Protocol Version 3 (HTTP/3)</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-quic-http-27"/>
            <author initials="M" surname="Bishop" fullname="Mike Bishop">
              <organization/>
            </author>
            <date month="February" day="21" year="2020"/>
            <abstract>
              <t>The QUIC transport protocol has several features that are desirable in a transport for HTTP, such as stream multiplexing, per-stream flow control, and low-latency connection establishment.  This document describes a mapping of HTTP semantics over QUIC.  This document also identifies HTTP/2 features that are subsumed by QUIC, and describes how HTTP/2 extensions can be ported to HTTP/3.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.pauly-quic-datagram" target="http://www.ietf.org/internet-drafts/draft-pauly-quic-datagram-05.txt">
          <front>
            <title>An Unreliable Datagram Extension to QUIC</title>
            <seriesInfo name="Internet-Draft" value="draft-pauly-quic-datagram-05"/>
            <author initials="T" surname="Pauly" fullname="Tommy Pauly">
              <organization/>
            </author>
            <author initials="E" surname="Kinnear" fullname="Eric Kinnear">
              <organization/>
            </author>
            <author initials="D" surname="Schinazi" fullname="David Schinazi">
              <organization/>
            </author>
            <date month="November" day="4" year="2019"/>
            <abstract>
              <t>This document defines an extension to the QUIC transport protocol to add support for sending and receiving unreliable datagrams over a QUIC connection.  Discussion of this work is encouraged to happen on the QUIC IETF mailing list quic@ietf.org [1] or on the GitHub repository which contains the draft: https://github.com/tfpauly/draft-pauly-quic- datagram [2].</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.vvv-webtransport-http3" target="http://www.ietf.org/internet-drafts/draft-vvv-webtransport-http3-01.txt">
          <front>
            <title>WebTransport over HTTP/3</title>
            <seriesInfo name="Internet-Draft" value="draft-vvv-webtransport-http3-01"/>
            <author initials="V" surname="Vasiliev" fullname="Victor Vasiliev">
              <organization/>
            </author>
            <date month="November" day="3" year="2019"/>
            <abstract>
              <t>WebTransport [OVERVIEW] is a protocol framework that enables clients constrained by the Web security model to communicate with a remote server using a secure multiplexed transport.  This document describes Http3Transport, a WebTransport protocol that is based on HTTP/3 [HTTP3] and provides support for unidirectional streams, bidirectional streams and datagrams, all multiplexed within the same HTTP/3 connection.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.schinazi-masque" target="http://www.ietf.org/internet-drafts/draft-schinazi-masque-02.txt">
          <front>
            <title>The MASQUE Protocol</title>
            <seriesInfo name="Internet-Draft" value="draft-schinazi-masque-02"/>
            <author initials="D" surname="Schinazi" fullname="David Schinazi">
              <organization/>
            </author>
            <date month="January" day="8" year="2020"/>
            <abstract>
              <t>This document describes MASQUE (Multiplexed Application Substrate over QUIC Encryption).  MASQUE is a framework that allows concurrently running multiple networking applications inside an HTTP/3 connection.  For example, MASQUE can allow a QUIC client to negotiate proxying capability with an HTTP/3 server, and subsequently make use of this functionality while concurrently processing HTTP/3 requests and responses.  This document is a straw-man proposal.  It does not contain enough details to implement the protocol, and is currently intended to spark discussions on the approach it is taking.  Discussion of this work is encouraged to happen on the MASQUE IETF mailing list masque@ietf.org (mailto:masque@ietf.org) or on the GitHub repository which contains the draft: https://github.com/DavidSchinazi/masque-drafts (https://github.com/DavidSchinazi/masque-drafts).</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="I-D.ietf-quic-tls" target="http://www.ietf.org/internet-drafts/draft-ietf-quic-tls-27.txt">
          <front>
            <title>Using TLS to Secure QUIC</title>
            <seriesInfo name="Internet-Draft" value="draft-ietf-quic-tls-27"/>
            <author initials="M" surname="Thomson" fullname="Martin Thomson">
              <organization/>
            </author>
            <author initials="S" surname="Turner" fullname="Sean Turner">
              <organization/>
            </author>
            <date month="February" day="21" year="2020"/>
            <abstract>
              <t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC8410" target="https://www.rfc-editor.org/info/rfc8410">
          <front>
            <title>Algorithm Identifiers for Ed25519, Ed448, X25519, and X448 for Use in the Internet X.509 Public Key Infrastructure</title>
            <seriesInfo name="DOI" value="10.17487/RFC8410"/>
            <seriesInfo name="RFC" value="8410"/>
            <author initials="S." surname="Josefsson" fullname="S. Josefsson">
              <organization/>
            </author>
            <author initials="J." surname="Schaad" fullname="J. Schaad">
              <organization/>
            </author>
            <date year="2018" month="August"/>
            <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>
        </reference>
        <reference anchor="RFC6234" target="https://www.rfc-editor.org/info/rfc6234">
          <front>
            <title>US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)</title>
            <seriesInfo name="DOI" value="10.17487/RFC6234"/>
            <seriesInfo name="RFC" value="6234"/>
            <author initials="D." surname="Eastlake 3rd" fullname="D. Eastlake 3rd">
              <organization/>
            </author>
            <author initials="T." surname="Hansen" fullname="T. Hansen">
              <organization/>
            </author>
            <date year="2011" month="May"/>
            <abstract>
              <t>Federal Information Processing Standard, FIPS</t>
            </abstract>
          </front>
        </reference>
        <reference anchor="RFC7427" target="https://www.rfc-editor.org/info/rfc7427">
          <front>
            <title>Signature Authentication in the Internet Key Exchange Version 2 (IKEv2)</title>
            <seriesInfo name="DOI" value="10.17487/RFC7427"/>
            <seriesInfo name="RFC" value="7427"/>
            <author initials="T." surname="Kivinen" fullname="T. Kivinen">
              <organization/>
            </author>
            <author initials="J." surname="Snyder" fullname="J. Snyder">
              <organization/>
            </author>
            <date year="2015" month="January"/>
            <abstract>
              <t>The Internet Key Exchange Version 2 (IKEv2) protocol has limited support for the Elliptic Curve Digital Signature Algorithm (ECDSA). The current version only includes support for three Elliptic Curve groups, and there is a fixed hash algorithm tied to each group.  This document generalizes IKEv2 signature support to allow any signature method supported by PKIX and also adds signature hash algorithm negotiation.  This is a generic mechanism and is not limited to ECDSA; it can also be used with other signature algorithms.</t>
            </abstract>
          </front>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments" toc="default">
      <name>Acknowledgments</name>
      <t>The authors would like to thank many members of the IETF community, as this
document is the fruit of many hallway conversations. Using the OID for the
signature and HMAC algorithms was inspired by Signature Authentication in
IKEv2 <xref target="RFC7427" format="default"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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

-->

</rfc>
