<?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.8 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
]>

<?rfc toc="yes"?>
<?rfc sortrefs="yes"?>
<?rfc symrefs="yes"?>

<rfc ipr="trust200902" docName="draft-pauly-taps-transport-security-02" category="info">

  <front>
    <title abbrev="transport security survey">A Survey of Transport Security Protocols</title>

    <author initials="T." surname="Pauly" fullname="Tommy Pauly">
      <organization>Apple Inc.</organization>
      <address>
        <postal>
          <street>1 Infinite Loop</street>
          <city>Cupertino, California 95014</city>
          <country>United States of America</country>
        </postal>
        <email>tpauly@apple.com</email>
      </address>
    </author>
    <author initials="C." surname="Perkins" fullname="Colin Perkins">
      <organization>University of Glasgow</organization>
      <address>
        <postal>
          <street>School of Computing Science</street>
          <city>Glasgow  G12 8QQ</city>
          <country>United Kingdom</country>
        </postal>
        <email>csp@csperkins.org</email>
      </address>
    </author>
    <author initials="K." surname="Rose" fullname="Kyle Rose">
      <organization>Akamai Technologies, Inc.</organization>
      <address>
        <postal>
          <street>150 Broadway</street>
          <city>Cambridge, MA 02144</city>
          <country>United States of America</country>
        </postal>
        <email>krose@krose.org</email>
      </address>
    </author>
    <author initials="C.A." surname="Wood" fullname="Christopher A. Wood">
      <organization>Apple Inc.</organization>
      <address>
        <postal>
          <street>1 Infinite Loop</street>
          <city>Cupertino, California 95014</city>
          <country>United States of America</country>
        </postal>
        <email>cawood@apple.com</email>
      </address>
    </author>

    <date year="2018" month="March" day="05"/>

    
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document provides a survey of commonly used or notable network security protocols, with a focus 
on how they interact and integrate with applications and transport protocols. Its goal is to supplement 
efforts to define and catalog transport services <xref target="RFC8095"/> by describing the interfaces required to 
add security protocols. It examines Transport Layer Security (TLS), Datagram Transport Layer Security (DTLS), 
Quick UDP Internet Connections with TLS (QUIC + TLS), MinimalT, CurveCP, tcpcrypt, Internet Key Exchange 
with Encapsulating Security Protocol (IKEv2 + ESP), SRTP (with DTLS), and WireGuard. This survey is not 
limited to protocols developed within the scope or context of the IETF.</t>



    </abstract>


  </front>

  <middle>


<section anchor="introduction" title="Introduction">

<t>This document provides a survey of commonly used or notable network security protocols, with a focus 
on how they interact and integrate with applications and transport protocols.  Its goal is to supplement 
efforts to define and catalog transport services <xref target="RFC8095"/> by describing the interfaces required to 
add security protocols. It examines Transport Layer Security (TLS), Datagram Transport Layer 
Security (DTLS), Quick UDP Internet Connections with TLS (QUIC + TLS), MinimalT, CurveCP, tcpcrypt, 
Internet Key Exchange with Encapsulating Security Protocol (IKEv2 + ESP), SRTP (with DTLS), and 
WireGuard. This survey is not limited to protocols developed within the scope or context of the IETF.</t>

<t>For each protocol, this document provides a brief description, the security features it provides, 
and the dependencies it has on the underlying transport. This is followed by defining the set of 
transport security features shared by these protocols. Finally, we distill the application and 
transport interfaces provided by the transport security protocols.</t>

<t>Authentication-only protocols such as TCP-AO <xref target="RFC5925"/> and IPsec AH <xref target="RFC4302"/> are excluded
from this survey. TCP-AO adds authenticity protections to long-lived TCP connections, e.g., replay 
protection  with per-packet Message Authentication Codes. (This protocol obsoletes TCP MD5 “signature” 
options specified in <xref target="RFC2385"/>.) One prime use case of TCP-AO is for protecting BGP connections. 
Similarly, AH adds per-datagram authenticity and adds similar replay protection. Despite these
improvements, neither protocol sees general use and both lack critical properties important for emergent
transport security protocols: confidentiality, privacy protections, and agility. Thus, we omit
these and related protocols from our survey.</t>

</section>
<section anchor="terminology" title="Terminology">

<t>The following terms are used throughout this document to describe the roles and interactions of transport security protocols:</t>

<t><list style="symbols">
  <t>Transport Feature: a specific end-to-end feature that the transport layer provides to an application. 
Examples include confidentiality, reliable delivery, ordered delivery, message-versus-stream orientation, etc.</t>
  <t>Transport Service: a set of Transport Features, without an association to any given framing protocol, 
which provides functionality to an application.</t>
  <t>Transport Protocol: an implementation that provides one or more different transport services using a 
specific framing and header format on the wire. A Transport Protocol services an application.</t>
  <t>Application: an entity that uses a transport protocol for end-to-end delivery of data across the network.
This may also be an upper layer protocol or tunnel encapsulation.</t>
  <t>Security Feature: a specific feature that a network security layer provides to applications. Examples 
include authentication, encryption, key generation, session resumption, and privacy. A feature may be 
considered to be Mandatory or Optional to an application’s implementation.</t>
  <t>Security Protocol: a defined network protocol that implements one or more security features. Security 
protocols may be used alongside transport protocols, and in combination with other security protocols when
appropriate.</t>
  <t>Handshake Protocol: a protocol that enables peers to validate each other and to securely establish shared cryptographic context.</t>
  <t>Record Protocol: a security protocol that allows data to be divided into manageable blocks and protected using a shared cryptographic context.</t>
  <t>Session: an ephemeral security association between applications.</t>
  <t>Cryptographic context: a set of cryptographic parameters, including but not necessarily limited to keys for encryption, authentication, and session resumption, enabling authorized parties to a session to communicate securely.</t>
  <t>Connection: the shared state of two or more endpoints that persists across messages that are transmitted 
between these endpoints. A connection is a transient participant of a session, and a session generally lasts 
between connection instances.</t>
  <t>Connection Mobility: a property of a connection that allows it to be multihomed or resilient across network 
interface or address changes.</t>
  <t>Peer: an endpoint application party to a session.</t>
  <t>Client: the peer responsible for initiating a session.</t>
  <t>Server: the peer responsible for responding to a session initiation.</t>
</list></t>

</section>
<section anchor="transport-security-protocol-descriptions" title="Transport Security Protocol Descriptions">

<t>This section contains descriptions of security protocols that currently used to protect data being sent over a network.</t>

<t>For each protocol, we describe the features it provides and its dependencies on other protocols.</t>

<section anchor="tls" title="TLS">

<t>TLS (Transport Layer Security) <xref target="RFC5246"/> is a common protocol used to establish a secure session between two endpoints. Communication
over this session “prevents eavesdropping, tampering, and message forgery.” TLS consists
of a tightly coupled handshake and record protocol. The handshake protocol is used to authenticate peers,
negotiate protocol options, such as cryptographic algorithms, and derive session-specific
keying material. The record protocol is used to marshal (possibly encrypted) data from one
peer to the other. This data may contain handshake messages or raw application data.</t>

<section anchor="protocol-description" title="Protocol Description">

<t>TLS is the composition of a handshake and record protocol <xref target="I-D.ietf-tls-tls13"/>.
The record protocol is designed to marshal an arbitrary, in-order stream of bytes from one endpoint to the other.
It handles segmenting, compressing (when enabled), and encrypting data into discrete records. When configured
to use an AEAD algorithm, it also handles nonce generation and encoding for each record. The record protocol is
hidden from the client behind a byte stream-oriented API.</t>

<t>The handshake protocol serves several purposes, including: peer authentication, protocol option (key exchange
algorithm and ciphersuite) negotiation, and key derivation. Peer authentication may be mutual; however, commonly,
only the server is authenticated. X.509 certificates are commonly used in this authentication step, though
other mechanisms, such as raw public keys <xref target="RFC7250"/>, exist. The client is not authenticated unless explicitly
requested by the server with a CertificateRequest handshake message. Assuming strong cryptography, an infrastructure for trust establishment, correctly-functioning endpoints, and communication patterns free from side channels, server authentication is sufficient to establish a channel resistant to eavesdroppers.</t>

<t>The handshake protocol is also extensible. It allows for a variety of extensions to be included by either the client
or server. These extensions are used to specify client preferences, e.g., the application-layer protocol to be driven
with the TLS connection <xref target="RFC7301"/>, or signals to the server to aid operation, e.g., Server Name Indication (SNI) <xref target="RFC6066"/>. Various extensions also exist
to tune the parameters of the record protocol, e.g., the maximum fragment length <xref target="RFC6066"/>.</t>

<t>Alerts are used to convey errors and other atypical events to the endpoints. There are two classes of alerts: closure
and error alerts. A closure alert is used to signal to the other peer that the sender wishes to terminate the connection.
The sender typically follows a close alert with a TCP FIN segment to close the connection. Error alerts are used to
indicate problems with the handshake or individual records. Most errors are fatal and are followed by connection
termination. However, warning alerts may be handled at the discretion of the implementation.</t>

<t>Once a session is disconnected all session keying material must be destroyed, with the exception of secrets previously established expressly for purposes of session resumption.
TLS supports stateful and stateless resumption. (Here, “state” refers to bookkeeping on a per-session basis
by the server. It is assumed that the client must always store some state information in order to resume a session.)</t>

</section>
<section anchor="protocol-features" title="Protocol Features">

<t><list style="symbols">
  <t>Key exchange and ciphersuite algorithm negotiation.</t>
  <t>Stateful and stateless session resumption.</t>
  <t>Certificate- and raw public key-based authentication.</t>
  <t>Mutual client and server authentication.</t>
  <t>Byte stream confidentiality and integrity.</t>
  <t>Extensibility via well-defined extensions.</t>
  <t>0-RTT data support (starting with TLS 1.3).</t>
  <t>Application-layer protocol negotiation.</t>
  <t>Transparent data segmentation.</t>
</list></t>

<!-- caw: possibles to add -->
<!-- - identity hiding -->

</section>
<section anchor="protocol-dependencies" title="Protocol Dependencies">

<t><list style="symbols">
  <t>TCP for in-order, reliable transport.</t>
  <t>(Optionally) A PKI trust store for certificate validation.</t>
</list></t>

</section>
</section>
<section anchor="dtls" title="DTLS">

<t>DTLS (Datagram Transport Layer Security) <xref target="RFC6347"/> is based on TLS, but differs in that
it is designed to run over UDP instead of TCP. Since UDP does not guarantee datagram
ordering or reliability, DTLS modifies the protocol to make sure it can still provide
the same security guarantees as TLS. DTLS was designed to be as close to TLS as possible,
so this document will assume that all properties from TLS are carried over except where specified.</t>

<section anchor="protocol-description-1" title="Protocol Description">

<t>DTLS is modified from TLS to account for packet loss, reordering, and duplication that may occur when operating over UDP. To enable out-of-order delivery of application data, the DTLS record protocol itself has no inter-record dependencies. However, as the handshake requires reliability, each handshake message is assigned an explicit sequence number to enable retransmissions of lost packets and in-order processing by the receiver. Handshake message loss is remedied by sender retransmission after a configurable period in which the expected response has not yet been received.</t>

<t>As the DTLS handshake protocol runs atop the record protocol, to account for long handshake messages that cannot fit within a single record, DTLS supports fragmentation and subsequent reconstruction of handshake messages across records. The receiver must reassemble records before processing.</t>

<t>DTLS relies on unique UDP 4-tuples to allow peers with multiple DTLS connections between them to demultiplex connections, constraining protocol design slightly more than UDP: application-layer demultiplexing over the same 4-tuple is not possible without trial decryption as all application-layer data is encrypted to a connection-specific cryptographic context. Starting with DTLS 1.3 <xref target="I-D.ietf-tls-dtls13"/>, a connection identifier extension to permit multiplexing of independent connections over the same 4-tuple is available <xref target="I-D.ietf-tls-dtls-connection-id"/>.</t>

<t>Since datagrams may be replayed, DTLS provides optional anti-replay detection based on a window of acceptable sequence numbers <xref target="RFC6347"/>.</t>

</section>
<section anchor="protocol-features-1" title="Protocol Features">

<t><list style="symbols">
  <t>Anti-replay protection between datagrams.</t>
  <t>Basic reliability for handshake messages.</t>
  <t>See also the features from TLS.</t>
</list></t>

</section>
<section anchor="protocol-dependencies-1" title="Protocol Dependencies">

<t><list style="symbols">
  <t>Since DTLS runs over an unreliable, unordered datagram transport, it does not require any reliability features.</t>
  <t>The DTLS record protocol explicitly encodes record lengths, so although it runs over a datagram transport, it does not rely on the transport protocol’s framing beyond requiring transport-level reconstruction of datagrams fragmented over packets.</t>
  <t>UDP 4-tuple uniqueness, or the connection identifier extension, for demultiplexing.</t>
  <t>Path MTU discovery.</t>
</list></t>

</section>
</section>
<section anchor="ietf-quic-with-tls" title="(IETF) QUIC with TLS">

<t>QUIC (Quick UDP Internet Connections) is a new standards-track transport protocol that runs over 
UDP, loosely based on Google’s original proprietary gQUIC protocol. (See <xref target="section-gquic"/> for more details.)
The QUIC transport layer itself provides support for data confidentiality and integrity.
This requires keys to be derived with a separate handshake protocol.
A mapping for QUIC over TLS 1.3 <xref target="I-D.ietf-quic-tls"/> has been specified to provide this handshake.</t>

<section anchor="protocol-description-2" title="Protocol Description">

<t>As QUIC relies on TLS to secure its transport functions, it creates specific integration points
between its security and transport functions:</t>

<t><list style="symbols">
  <t>Starting the handshake to generate keys and provide authentication (and providing the transport for the handshake).</t>
  <t>Client address validation.</t>
  <t>Key ready events from TLS to notify the QUIC transport.</t>
  <t>Exporting secrets from TLS to the QUIC transport.</t>
</list></t>

<t>The QUIC transport layer support multiple streams over a single connection. The first
stream is reserved specifically for a TLS connection. The TLS handshake, along with
further records, are sent over this stream. This TLS connection follows the TLS standards
and inherits the security properties of TLS. The handshake generates keys, which are
then exported to the rest of the QUIC connection, and are used to protect the rest of the streams.</t>

<t>Initial QUIC messages (packets) are encrypted using “fixed” keys derived from the QUIC version and 
public packet information (Connection ID). Packets are later encrypted using keys derived
from the TLS traffic secret upon handshake completion. The TLS 1.3
handshake for QUIC is used in either a single-RTT mode or a fast-open zero-RTT mode. When
zero-RTT handshakes are possible, the encryption first transitions to use the zero-RTT keys
before using single-RTT handshake keys after the next TLS flight.</t>

</section>
<section anchor="protocol-features-2" title="Protocol Features">

<t><list style="symbols">
  <t>Handshake properties of TLS.</t>
  <t>Multiple encrypted streams over a single connection without head-of-line blocking.</t>
  <t>Packet payload encryption and complete packet authentication (with the exception of the 
Public Reset packet, which is not authenticated).</t>
</list></t>

</section>
<section anchor="protocol-dependencies-2" title="Protocol Dependencies">

<t><list style="symbols">
  <t>QUIC transport relies on UDP.</t>
  <t>QUIC transport relies on TLS 1.3 for authentication and initial key derivation.</t>
  <t>TLS within QUIC relies on a reliable stream abstraction for its handshake.</t>
</list></t>

</section>
</section>
<section anchor="section-gquic" title="gQUIC">

<t>gQUIC is a UDP-based multiplexed streaming protocol designed and deployed by Google 
following experience from deploying SPDY, the proprietary predecessor to HTTP/2.
gQUIC was originally known as “QUIC”: this document uses gQUIC to unambiguously distinguish 
it from the standards-track IETF QUIC. The proprietary technical forebear of IETF QUIC, gQUIC 
was originally designed with tightly-integrated security and application data transport protocols.</t>

<section anchor="protocol-description-3" title="Protocol Description">

<t>((TODO: write me))</t>

</section>
<section anchor="protocol-dependencies-3" title="Protocol Dependencies">

<t>((TODO: write me))</t>

</section>
</section>
<section anchor="minimalt" title="MinimalT">

<t>MinimalT is a UDP-based transport security protocol designed to offer confidentiality, mutual authentication, DoS prevention, and connection
mobility <xref target="MinimalT"/>. One major goal of the protocol is to leverage existing protocols to obtain server-side configuration information used to
more quickly bootstrap a connection. MinimalT uses a variant of TCP’s congestion control algorithm.</t>

<section anchor="protocol-description-4" title="Protocol Description">

<t>MinimalT is a secure transport protocol built on top of a widespread directory service. Clients and servers interact with local directory
services to (a) resolve server information and (b) public ephemeral state information, respectively. Clients connect to a local
resolver once at boot time. Through this resolver they recover the IP address(es) and public key(s) of each server to which
they want to connect.</t>

<t>Connections are instances of user-authenticated, mobile sessions between two endpoints. Connections run within tunnels between hosts. A tunnel
is a server-authenticated container that multiplexes multiple connections between the same hosts. All connections in a tunnel share the
same transport state machine and encryption. Each tunnel has a dedicated control connection used to configure and manage the tunnel over time.
Moreover, since tunnels are independent of the network address information, they may be reused as both ends of the tunnel move about the network.
This does however imply that the connection establishment and packet encryption mechanisms are coupled.</t>

<t>Before a client connects to a remote service, it must first establish a tunnel to the host providing or offering the service. Tunnels are established
in 1-RTT using an ephemeral key obtained from the directory service. Tunnel initiators provide their own ephemeral key and, optionally, a
DoS puzzle solution such that the recipient (server) can verify the authenticity of the request and derive a shared secret. Within a tunnel,
new connections to services may be established.</t>

</section>
<section anchor="protocol-features-3" title="Protocol Features">

<t><list style="symbols">
  <t>0-RTT forward secrecy for new connections.</t>
  <t>DoS prevention by client-side puzzles.</t>
  <t>Tunnel-based mobility.</t>
  <t>(Transport Feature) Connection multiplexing between hosts across shared tunnels.</t>
  <t>(Transport Feature) Congestion control state is shared across connections between the same host pairs.</t>
</list></t>

</section>
<section anchor="protocol-dependencies-4" title="Protocol Dependencies">

<t><list style="symbols">
  <t>A DNS-like resolution service to obtain location information (an IP address) and ephemeral keys.</t>
  <t>A PKI trust store for certificate validation.</t>
</list></t>

</section>
</section>
<section anchor="curvecp" title="CurveCP">

<t>CurveCP <xref target="CurveCP"/> is a UDP-based transport security protocol from Daniel J. Bernstein.
Unlike other transport security protocols, it is based entirely upon highly efficient public
key algorithms. This removes many pitfalls associated with nonce reuse and key synchronization.</t>

<section anchor="protocol-description-5" title="Protocol Description">

<t>CurveCP is a UDP-based transport security protocol. It is built on three principal features: exclusive use of public key authenticated
encryption of packets, server-chosen cookies to prohibit memory and computation DoS at the server, and connection mobility with a
client-chosen ephemeral identifier.</t>

<t>There are two rounds in CurveCP. In the first round, the client sends its first initialization packet to the server, carrying its (possibly fresh)
ephemeral public key C’, with zero-padding encrypted under the server’s long-term public key. The server replies with a cookie and its own ephemeral
key S’ and a cookie that is to be used by the client. Upon receipt, the client then generates its second initialization packet carrying: the
ephemeral key C’, cookie, and an encryption of C’, the server’s domain name, and, optionally, some message data. The server verifies the cookie
and the encrypted payload and, if valid, proceeds to send data in return. At this point, the connection is established and the two
parties can communicate.</t>

<t>The use of only public-key encryption and authentication, or “boxing”, is done to simplify problems that come with symmetric key management
and synchronization. For example, it allows the sender of a message to be in complete control of each message’s nonce. It does not require
either end to share secret keying material.
Furthermore, it allows connections (or sessions) to be associated with unique ephemeral public keys as a mechanism for enabling forward secrecy given the risk of long-term private key compromise.</t>

<t>The client and server do not perform a standard key exchange. Instead, in the initial exchange of packets, each party provides its
own ephemeral key to the other end. The client can choose a new ephemeral key for every new connection. However, the server must rotate
these keys on a slower basis. Otherwise, it would be trivial for an attacker to force the server to create and store ephemeral keys
with a fake client initialization packet.</t>

<t>Unlike TCP, the server employs cookies to enable source validation. After receiving the client’s initial packet, encrypted under the server’s
long-term public key, the server generates and returns a stateless cookie that must be echoed back in the client’s following message.
This cookie is encrypted under the client’s ephemeral public key.
This stateless technique prevents attackers from hijacking client initialization packets to obtain cookie values to flood clients. (A client
would detect the duplicate cookies and reject the flooded packets.) Similarly, replaying the client’s second packet, carrying the cookie,
will be detected by the server.</t>

<t>CurveCP supports a weak form of client authentication. Clients are permitted to send their long-term public keys in the second initialization
packet. A server can verify this public key and, if untrusted, drop the connection and subsequent data.</t>

<t>Unlike some other protocols, CurveCP data packets leave only the ephemeral public key, the connection ID, and the per-message nonce
in the clear. Everything else is encrypted.</t>

</section>
<section anchor="protocol-features-4" title="Protocol Features">

<t><list style="symbols">
  <t>Forward-secure data encryption and authentication.</t>
  <t>Per-packet public-key encryption.</t>
  <t>1-RTT session bootstrapping.</t>
  <t>Connection mobility based on a client-chosen ephemeral identifier.</t>
  <t>Connection establishment message padding to prevent traffic amplification.</t>
  <t>Sender-chosen explicit nonces, e.g., based on a sequence number.</t>
</list></t>

</section>
<section anchor="protocol-dependencies-5" title="Protocol Dependencies">

<t><list style="symbols">
  <t>An unreliable transport protocol such as UDP.</t>
</list></t>

</section>
</section>
<section anchor="tcpcrypt" title="tcpcrypt">

<t>Tcpcrypt is a lightweight extension to the TCP protocol to enable opportunistic encryption with hooks available to the application layer for implementation of endpoint authentication.</t>

<section anchor="protocol-description-6" title="Protocol Description">

<t>Tcpcrypt extends TCP to enable opportunistic encryption between the two ends of a TCP connection <xref target="I-D.ietf-tcpinc-tcpcrypt"/>.
It is a family of TCP encryption protocols (TEP), distinguished by key exchange algorithm.
The use of a TEP is negotiated with a TCP option during the initial TCP handshake via the mechanism described by TCP Encryption Negotiation Option (ENO) <xref target="I-D.ietf-tcpinc-tcpeno"/>.
In the case of initial session establishment, once a tcpcrypt TEP has been negotiated the key exchange occurs within the data segments of the first few packets exchanged after the handshake completes. The initiator of a connection sends a list of supported AEAD algorithms, a random nonce, and an ephemeral public key share.
The responder typically chooses a mutually-supported AEAD algorithm and replies with this choice, its own nonce, and ephemeral key share.
An initial shared secret is derived from the ENO handshake, the tcpcrypt handshake, and the initial keying material resulting from the key exchange. The traffic encryption keys on the initial connection are derived from the shared secret.
Connections can be re-keyed before the natural AEAD limit for a single set of traffic encryption keys is reached.</t>

<t>Each tcpcrypt session is associated with a ladder of resumption IDs, each derived from the respective entry in a ladder of shared secrets.
These resumption IDs can be used to negotiate a stateful resumption of the session in a subsequent connection, resulting in use of a new shared secret and traffic encryption keys without requiring a new key exchange.
Willingness to resume a session is signaled via the ENO option during the TCP handshake.
Given the length constraints imposed by TCP options, unlike stateless resumption mechanisms (such as that provided by session tickets in TLS) resumption in tcpcrypt requires the maintenance of state on the server, and so successful resumption across a pool of servers implies shared state.</t>

<t>Owing to middlebox ossification issues, tcpcrypt only protects the payload portion of a TCP packet.
It does not encrypt any header information, such as the TCP sequence number.</t>

<t>Tcpcrypt exposes a universally-unique connection-specific session ID to the application, suitable for application-level endpoint authentication either in-band or out-of-band.</t>

</section>
<section anchor="protocol-features-5" title="Protocol Features">

<t><list style="symbols">
  <t>Forward-secure TCP payload encryption and integrity protection.</t>
  <t>Session caching and address-agnostic resumption.</t>
  <t>Connection re-keying.</t>
  <t>Application-level authentication primitive.</t>
</list></t>

</section>
<section anchor="protocol-dependencies-6" title="Protocol Dependencies">

<t><list style="symbols">
  <t>TCP</t>
  <t>TCP Encryption Negotiation Option (ENO)</t>
</list></t>

</section>
</section>
<section anchor="ikev2-with-esp" title="IKEv2 with ESP">

<t>IKEv2 <xref target="RFC7296"/> and ESP <xref target="RFC4303"/> together form the modern IPsec protocol suite that encrypts and authenticates IP packets, either as for creating tunnels (tunnel-mode) or for direct transport connections (transport-mode). This suite of protocols separates out the key generation protocol (IKEv2) from the transport encryption protocol (ESP). Each protocol can be used independently, but this document considers them together, since that is the most common pattern.</t>

<section anchor="protocol-descriptions" title="Protocol descriptions">

<section anchor="ikev2" title="IKEv2">

<t>IKEv2 is a control protocol that runs on UDP port 500. Its primary goal is to generate keys for Security Associations (SAs). It first uses a Diffie-Hellman key exchange to generate keys for the “IKE SA”, which is a set of keys used to encrypt further IKEv2 messages. It then goes through a phase of authentication in which both peers present blobs signed by a shared secret or private key, after which another set of keys is derived, referred to as the “Child SA”. These Child SA keys are used by ESP.</t>

<t>IKEv2 negotiates which protocols are acceptable to each peer for both the IKE and Child SAs using “Proposals”. Each proposal may contain an encryption algorithm, an authentication algorithm, a Diffie-Hellman group, and (for IKE SAs only) a pseudorandom function algorithm. Each peer may support multiple proposals, and the most preferred mutually supported proposal is chosen during the handshake.</t>

<t>The authentication phase of IKEv2 may use Shared Secrets, Certificates, Digital Signatures, or an EAP (Extensible Authentication Protocol) method. At a minimum, IKEv2 takes two round trips to set up both an IKE SA and a Child SA. If EAP is used, this exchange may be expanded.</t>

<t>Any SA used by IKEv2 can be rekeyed upon expiration, which is usually based either on time or number of bytes encrypted.</t>

<t>There is an extension to IKEv2 that allows session resumption <xref target="RFC5723"/>.</t>

<t>MOBIKE is a Mobility and Multihoming extension to IKEv2 that allows a set of Security Associations to migrate over different addresses and interfaces <xref target="RFC4555"/>.</t>

<t>When UDP is not available or well-supported on a network, IKEv2 may be encapsulated in TCP <xref target="RFC8229"/>.</t>

</section>
<section anchor="esp" title="ESP">

<t>ESP is a protocol that encrypts and authenticates IPv4 and IPv6 packets. The keys used for both encryption and authentication can be derived from an IKEv2 exchange. ESP Security Associations come as pairs, one for each direction between two peers. Each SA is identified by a Security Parameter Index (SPI), which is marked on each encrypted ESP packet.</t>

<t>ESP packets include the SPI, a sequence number, an optional Initialization Vector (IV), payload data, padding, a length and next header field, and an Integrity Check Value.</t>

<t>From <xref target="RFC4303"/>, “ESP is used to provide confidentiality, data origin authentication, connectionless integrity, an anti-replay service (a form of partial sequence integrity), and limited traffic flow confidentiality.”</t>

<t>Since ESP operates on IP packets, it is not directly tied to the transport protocols it encrypts. This means it requires little or no change from transports in order to provide security.</t>

<t>ESP packets may be sent directly over IP, but where network conditions warrant (e.g., when a NAT is present or when a firewall blocks such packets) they may be encapsulated in UDP <xref target="RFC3948"/> or TCP <xref target="RFC8229"/>.</t>

</section>
</section>
<section anchor="protocol-features-6" title="Protocol features">

<section anchor="ikev2-1" title="IKEv2">

<t><list style="symbols">
  <t>Encryption and authentication of handshake packets.</t>
  <t>Cryptographic algorithm negotiation.</t>
  <t>Session resumption.</t>
  <t>Mobility across addresses and interfaces.</t>
  <t>Peer authentication extensibility based on shared secret, certificates, digital signatures, or EAP methods.</t>
</list></t>

</section>
<section anchor="esp-1" title="ESP">

<t><list style="symbols">
  <t>Data confidentiality and authentication.</t>
  <t>Connectionless integrity.</t>
  <t>Anti-replay protection.</t>
  <t>Limited flow confidentiality.</t>
</list></t>

</section>
</section>
<section anchor="protocol-dependencies-7" title="Protocol dependencies">

<section anchor="ikev2-2" title="IKEv2">

<t><list style="symbols">
  <t>Availability of UDP to negotiate, or implementation support for TCP-encapsulation.</t>
  <t>Some EAP authentication types require accessing a hardware device, such as a SIM card; or interacting with a user, such as password prompting.</t>
</list></t>

</section>
<section anchor="esp-2" title="ESP">

<t><list style="symbols">
  <t>Since ESP is below transport protocols, it does not have any dependencies on the transports themselves, other than on UDP or TCP where encapsulation is employed.</t>
</list></t>

</section>
</section>
</section>
<section anchor="wireguard" title="WireGuard">

<t>WireGuard is a layer 3 protocol designed to complement or replace IPsec <xref target="WireGuard"/>.
Unlike most transport security protocols, which rely on PKI for peer authentication, 
WireGuard authenticates peers using pre-shared public keys delivered out-of-band, each 
of which is bound to one or more IP addresses. 
Moreover, as a protocol suited for VPNs, WireGuard offers no extensibility, negotiation, 
or cryptographic agility.</t>

<section anchor="protocol-description-7" title="Protocol description">

<t>WireGuard is a simple VPN protocol that binds a pre-shared public key to one or more
IP addresses. Users configure WireGuard by associating peer public keys with IP addresses. 
These mappings are stored in a CryptoKey Routing Table. (See Section 2 of <xref target="WireGuard"/>
for more details and sample configurations.) These keys are used upon WireGuard packet 
transmission and reception. For example, upon receipt of a Handshake Initiation message,
receivers use the static public key in their CryptoKey routing table to perform necessary
cryptographic computations.</t>

<t>WireGuard builds on Noise <xref target="Noise"/> for 1-RTT key exchange with identity hiding. The handshake
hides peer identities as per the SIGMA construction <xref target="SIGMA"/>. As a consequence of using Noise, 
WireGuard comes with a fixed set of cryptographic algorithms:</t>

<t><list style="symbols">
  <t>x25519 <xref target="Curve25519"/> and HKDF <xref target="RFC5869"/> for ECDH and key derivation.</t>
  <t>ChaCha20+Poly1305 <xref target="RFC7539"/> for packet authenticated encryption.</t>
  <t>BLAKE2s <xref target="BLAKE2"/> for hashing.</t>
</list></t>

<t>There is no cryptographic agility. If weaknesses are found in any of
these algorithms, new message types using new algorithms must be introduced.</t>

<t>WireGuard is designed to be entirely stateless, modulo the CryptoKey routing table, which has size
linear with the number of trusted peers. If a WireGuard receiver is under heavy load and cannot process
a packet, e.g., cannot spare CPU cycles for point multiplication, it can reply with a cookie similar
to DTLS and IKEv2. This cookie only proves IP address ownership. Any rate limiting scheme can be applied
to packets coming from non-spoofed addresses.</t>

</section>
<section anchor="protocol-features-7" title="Protocol features">

<t><list style="symbols">
  <t>Optional PSK-based session creation.</t>
  <t>Mutual client and server authentication.</t>
  <t>Stateful, timestamp-based replay prevention.</t>
  <t>Cookie-based DoS mitigation similar to DTLS and IKEv2.</t>
</list></t>

</section>
<section anchor="protocol-dependencies-8" title="Protocol dependencies">

<t><list style="symbols">
  <t>Datagram transport.</t>
  <t>Out-of-band key distribution and management.</t>
</list></t>

</section>
</section>
<section anchor="srtp-with-dtls" title="SRTP (with DTLS)">

<t>SRTP – Secure RTP – is a profile for RTP that provides confidentiality, message 
authentication, and replay protection for data and control packets <xref target="RFC3711"/>.
SRTP packets are encrypted using a session key, which is derived from a separate
master key. Master keys are derived and managed externally, e.g., via DTLS, as specified
in RFC 5763 <xref target="RFC5763"/>, under the control of a signaling protocol such as SIP <xref target="RFC3261"/>
or WebRTC <xref target="I-D.ietf-rtcweb-security-arch"/>.</t>

<section anchor="protocol-descriptions-1" title="Protocol descriptions">

<t>SRTP adds confidentiality and optional integrity protection to RTP data packets,
and adds confidentially and mandatory integrity protection to RTP control (RTCP) packets.
For RTP data packets, this is done by encrypting the payload section of the packet
and optionally appending an authentication tag (MAC) as a packet trailer, with the RTP
header authenticated but not encrypted. The RTP header itself is left unencrypted
to enable RTP header compression <xref target="RFC2508"/><xref target="RFC3545"/>. For RTCP packets, the first packet
in the compound RTCP packet is partially encrypted, leaving the first eight octets of
the header as cleartext to allow identification of the packet as RTCP, while the remainder 
of the compound packet is fully encrypted. The entire RTCP packet is then authenticated
by appending a MAC as packet trailer.</t>

<t>Packets are encrypted using session keys, which
are ultimately derived from a master key and some additional master salt and session salt.
SRTP packets carry a 2-byte sequence number to partially identify the unique packet
index. SRTP peers maintain a separate rollover counter (ROC) for RTP data packets that is 
incremented whenever the sequence number wraps. The sequence number and ROC together 
determine the packet index. RTCP packets have a similar, yet differently named, field
called the RTCP index which serves the same purpose.</t>

<t>Numerous encryption modes are supported. For popular modes of operation, e.g., AES-CTR, 
the (unique) initialization vector (IV) used for each encryption mode is a function of 
the RTP SSRC (synchronization source), packet index, and session “salting key”.</t>

<t>SRTP offers replay detection by keeping a replay list of already seen and processed packet indices. 
If a packet arrives with an index that matches one in the replay list, it is silently discarded.</t>

<t>DTLS <xref target="RFC5764"/> is commonly used as a way to perform mutual authentication and key 
agreement for SRTP <xref target="RFC5763"/>. (Here, certificates marshal public keys between
endpoints. Thus, self-signed certificates may be used if peers do not mutually trust one another, 
as is common on the Internet.) When DTLS is used, certificate fingerprints are transmitted
out-of-band using SIP. Peers typically verify that DTLS-offered certificates match
that which are offered over SIP. This prevents active attacks on RTP, but not on the signaling (SIP or
WebRTC) channel.</t>

</section>
<section anchor="protocol-features-8" title="Protocol features">

<t><list style="symbols">
  <t>Optional replay protection with tunable replay windows.</t>
  <t>Out-of-order packet receipt.</t>
  <t>(RFC5763) Mandatory mutually authenticated key exchange.</t>
  <t>Partial encryption, protecting media payloads and control packets but not data packet headers.</t>
  <t>Optional authentication of data packets; mandatory authentication of control packets.</t>
</list></t>

</section>
<section anchor="protocol-dependencies-9" title="Protocol dependencies">

<t><list style="symbols">
  <t>External key derivation and management mechanism or protocol, e.g., DTLS <xref target="RFC5763"/>.</t>
  <t>External signaling protocol to manage RTP parameters and locate and identify peers, e.g., SIP <xref target="RFC3261"/> or WebRTC <xref target="I-D.ietf-rtcweb-security-arch"/>.</t>
</list></t>

</section>
</section>
</section>
<section anchor="common-transport-security-features" title="Common Transport Security Features">

<t>There exists a common set of features shared across the transport protocols surveyed in this document.
The mandatory features should be provided by any transport security protocol, while the optional features
are extensions that a subset of the protocols provide. For clarity, we also distinguish between handshake
and record features.</t>

<section anchor="mandatory-features" title="Mandatory Features">

<section anchor="handshake" title="Handshake">

<t><list style="symbols">
  <t>Forward-secure segment encryption and authentication: Transit data must be protected with an
authenticated encryption algorithm.</t>
  <t>Private key interface or injection: Authentication based on public key signatures is commonplace for
many transport security protocols.</t>
  <t>Endpoint authentication: The endpoint (receiver) of a new connection must be authenticated before any
data is sent to said party.</t>
  <t>Source validation: Source validation must be provided to mitigate server-targeted DoS attacks. This can
be done with puzzles or cookies.</t>
</list></t>

</section>
<section anchor="record" title="Record">

<t><list style="symbols">
  <t>Pre-shared key support: A record protocol must be able to use a pre-shared key established
out-of-band to encrypt individual messages, packets, or datagrams.</t>
</list></t>

</section>
</section>
<section anchor="optional-features" title="Optional Features">

<section anchor="handshake-1" title="Handshake">

<t><list style="symbols">
  <t>Mutual authentication: Transport security protocols must allow each endpoint to authenticate the other if required by the application.</t>
  <t>Application-layer feature negotiation: The type of application using a transport security protocol often requires
features configured at the connection establishment layer, e.g., ALPN <xref target="RFC7301"/>. Moreover, application-layer features may often be used to
offload the session to another server which can better handle the request. (The TLS SNI is one example of such a feature.)
As such, transport security protocols should provide a generic mechanism to allow for such application-specific features
and options to be configured or otherwise negotiated.</t>
  <t>Configuration extensions: The protocol negotiation should be extensible with addition of new configuration options.</t>
  <t>Session caching and management: Sessions should be cacheable to enable reuse and amortize the cost of performing
session establishment handshakes.</t>
</list></t>

</section>
<section anchor="record-1" title="Record">

<t><list style="symbols">
  <t>Connection mobility: Sessions should not be bound to a network connection (or 5-tuple). This allows cryptographic
key material and other state information to be reused in the event of a connection change. Examples of this include
a NAT rebinding that occurs without a client’s knowledge.</t>
</list></t>

</section>
</section>
</section>
<section anchor="transport-security-protocol-interfaces" title="Transport Security Protocol Interfaces">

<t>This section describes the interface surface exposed by the security protocols described
above, with each interface. Note that not all protocols support each interface.</t>

<section anchor="configuration-interfaces" title="Configuration Interfaces">

<t>Configuration interfaces are used to configure the security protocols before a
handshake begins or the keys are negotiated.</t>

<t><list style="symbols">
  <t>Identity and Private Keys<vspace />
The application can provide its identities (certificates) and private keys, or
mechanisms to access these, to the security protocol to use during handshakes.<vspace />
Protocols: TLS, DTLS, QUIC + TLS, MinimalT, CurveCP, IKEv2, WireGuard, SRTP</t>
  <t>Supported Algorithms (Key Exchange, Signatures, and Ciphersuites)<vspace />
The application can choose the algorithms that are supported for key exchange,
signatures, and ciphersuites.<vspace />
Protocols: TLS, DTLS, QUIC + TLS, MinimalT, tcpcrypt, IKEv2, SRTP</t>
  <t>Session Cache<vspace />
The application provides the ability to save and retrieve session state (such as tickets,
keying material, and server parameters) that may be used to resume the security session.<vspace />
Protocols: TLS, DTLS, QUIC + TLS, MinimalT</t>
  <t>Authentication Delegation<vspace />
The application provides access to a separate module that will provide authentication,
using EAP for example.<vspace />
Protocols: IKEv2, SRTP</t>
</list></t>

</section>
<section anchor="handshake-interfaces" title="Handshake Interfaces">

<t>Handshake interfaces are the points of interaction between a handshake protocol and
the application, record protocol, and transport once the handshake is active.</t>

<t><list style="symbols">
  <t>Send Handshake Messages<vspace />
The handshake protocol needs to be able to send messages over a transport to the remote peer to establish trust and to negotiate keys.<vspace />
Protocols: All (TLS, DTLS, QUIC + TLS, MinimalT, CurveCP, IKEv2, WireGuard, SRTP (DTLS))</t>
  <t>Receive Handshake Messages<vspace />
The handshake protocol needs to be able to receive messages from the remote peer
over a transport to establish trust and to negotiate keys.<vspace />
Protocols: All (TLS, DTLS, QUIC + TLS, MinimalT, CurveCP, IKEv2, WireGuard, SRTP (DTLS))</t>
  <t>Identity Validation<vspace />
During a handshake, the security protocol will conduct identity validation of the peer.
This can call into the application to offload validation.
Protocols: All (TLS, DTLS, QUIC + TLS, MinimalT, CurveCP, IKEv2, WireGuard, SRTP (DTLS))</t>
  <t>Source Address Validation<vspace />
The handshake protocol may delegate validation of the remote peer that has sent
data to the transport protocol or application. This involves sending a cookie
exchange to avoid DoS attacks.<vspace />
Protocols: QUIC + TLS, DTLS, WireGuard</t>
  <t>Key Update<vspace />
The handshake protocol may be instructed to update its keying material, either
by the application directly or by the record protocol sending a key expiration event.<vspace />
Protocols: TLS, DTLS, QUIC + TLS, MinimalT, tcpcrypt, IKEv2</t>
  <t>Pre-Shared Key Export<vspace />
The handshake protocol will generate one or more keys to be used for record encryption/decryption and authentication. These may be explicitly exportable to the application, traditionally limited to direct export to the record protocol, or inherently non-exportable because the keys must be used directly in conjunction with the record protocol.  <list style="symbols">
      <t>Explict export: TLS (for QUIC), tcpcrypt, IKEv2, DTLS (for SRTP)</t>
      <t>Direct export: TLS, DTLS, MinimalT</t>
      <t>Non-exportable: CurveCP</t>
    </list></t>
</list></t>

</section>
<section anchor="record-interfaces" title="Record Interfaces">

<t>Record interfaces are the points of interaction between a record protocol and the application, handshake protocol, and transport once in use.</t>

<t><list style="symbols">
  <t>Pre-Shared Key Import<vspace />
Either the handshake protocol or the application directly can supply pre-shared keys for the record protocol use for encryption/decryption and authentication. If the application can supply keys directly, this is considered explicit import; if the handshake protocol traditionally provides the keys directly, it is considered direct import; if the keys can only be shared by the handshake, they are considered non-importable.
  <list style="symbols">
      <t>Explict import: QUIC, ESP</t>
      <t>Direct import: TLS, DTLS, MinimalT, tcpcrypt, WireGuard</t>
      <t>Non-importable: CurveCP</t>
    </list></t>
  <t>Encrypt application data<vspace />
The application can send data to the record protocol to encrypt it into a format that can be sent on the underlying transport. The encryption step may require that the application data is treated as a stream or as datagrams, and that the transport to send the encrypted records present a stream or datagram interface.
  <list style="symbols">
      <t>Stream-to-Stream Protocols: TLS, tcpcrypt</t>
      <t>Datagram-to-Datagram Protocols: DTLS, ESP, SRTP, WireGuard</t>
      <t>Stream-to-Datagram Protocols: QUIC ((Editor’s Note: This depends on the interface QUIC exposes to applications.))</t>
    </list></t>
  <t>Decrypt application data<vspace />
The application can receive data from its transport to be decrypted using record protocol. The decryption step may require that the incoming transport data is presented as a stream or as datagrams, and that the resulting application data is a stream or datagrams.
  <list style="symbols">
      <t>Stream-to-Stream Protocols: TLS, tcpcrypt</t>
      <t>Datagram-to-Datagram Protocols: DTLS, ESP, SRTP, WireGuard</t>
      <t>Datagram-to-Stream Protocols: QUIC ((Editor’s Note: This depends on the interface QUIC exposes to applications.))</t>
    </list></t>
  <t>Key Expiration<vspace />
The record protocol can signal that its keys are expiring due to reaching a time-based deadline, or a use-based deadline (number of bytes that have been encrypted with the key). This interaction is often limited to signaling between the record layer and the handshake layer.<vspace />
Protocols: ESP ((Editor’s note: One may consider TLS/DTLS to also have this interface))</t>
  <t>Transport mobility<vspace />
The record protocol can be signaled that it is being migrated to another transport or interface due to connection mobility, which may reset address and state validation.<vspace />
Protocols: QUIC, MinimalT, CurveCP, ESP, WireGuard (roaming)</t>
</list></t>

</section>
</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>This document has no request to IANA.</t>

</section>
<section anchor="security-considerations" title="Security Considerations">

<t>This document summarizes existing transport security protocols and their interfaces. 
It does not propose changes to or recommend usage of reference protocols.</t>

</section>
<section anchor="acknowledgments" title="Acknowledgments">

<t>The authors would like to thank Mirja Kühlewind, Brian Trammell, Yannick Sierra,
Frederic Jacobs, and Bob Bradley for their input and feedback on earlier versions
of this draft.</t>

</section>


  </middle>

  <back>

    <references title='Normative References'>





<reference  anchor="RFC2385" target='https://www.rfc-editor.org/info/rfc2385'>
<front>
<title>Protection of BGP Sessions via the TCP MD5 Signature Option</title>
<author initials='A.' surname='Heffernan' fullname='A. Heffernan'><organization /></author>
<date year='1998' month='August' />
<abstract><t>This memo describes a TCP extension to enhance security for BGP. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='2385'/>
<seriesInfo name='DOI' value='10.17487/RFC2385'/>
</reference>



<reference  anchor="RFC2508" target='https://www.rfc-editor.org/info/rfc2508'>
<front>
<title>Compressing IP/UDP/RTP Headers for Low-Speed Serial Links</title>
<author initials='S.' surname='Casner' fullname='S. Casner'><organization /></author>
<author initials='V.' surname='Jacobson' fullname='V. Jacobson'><organization /></author>
<date year='1999' month='February' />
<abstract><t>This document describes a method for compressing the headers of IP/UDP/RTP datagrams to reduce overhead on low-speed serial links. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='2508'/>
<seriesInfo name='DOI' value='10.17487/RFC2508'/>
</reference>



<reference  anchor="RFC3261" target='https://www.rfc-editor.org/info/rfc3261'>
<front>
<title>SIP: Session Initiation Protocol</title>
<author initials='J.' surname='Rosenberg' fullname='J. Rosenberg'><organization /></author>
<author initials='H.' surname='Schulzrinne' fullname='H. Schulzrinne'><organization /></author>
<author initials='G.' surname='Camarillo' fullname='G. Camarillo'><organization /></author>
<author initials='A.' surname='Johnston' fullname='A. Johnston'><organization /></author>
<author initials='J.' surname='Peterson' fullname='J. Peterson'><organization /></author>
<author initials='R.' surname='Sparks' fullname='R. Sparks'><organization /></author>
<author initials='M.' surname='Handley' fullname='M. Handley'><organization /></author>
<author initials='E.' surname='Schooler' fullname='E. Schooler'><organization /></author>
<date year='2002' month='June' />
<abstract><t>This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants.  These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3261'/>
<seriesInfo name='DOI' value='10.17487/RFC3261'/>
</reference>



<reference  anchor="RFC3545" target='https://www.rfc-editor.org/info/rfc3545'>
<front>
<title>Enhanced Compressed RTP (CRTP) for Links with High Delay, Packet Loss and Reordering</title>
<author initials='T.' surname='Koren' fullname='T. Koren'><organization /></author>
<author initials='S.' surname='Casner' fullname='S. Casner'><organization /></author>
<author initials='J.' surname='Geevarghese' fullname='J. Geevarghese'><organization /></author>
<author initials='B.' surname='Thompson' fullname='B. Thompson'><organization /></author>
<author initials='P.' surname='Ruddy' fullname='P. Ruddy'><organization /></author>
<date year='2003' month='July' />
<abstract><t>This document describes a header compression scheme for point to point links with packet loss and long delays.  It is based on Compressed Real-time Transport Protocol (CRTP), the IP/UDP/RTP header compression described in RFC 2508.  CRTP does not perform well on such links: packet loss results in context corruption and due to the long delay, many more packets are discarded before the context is repaired.  To correct the behavior of CRTP over such links, a few extensions to the protocol are specified here.  The extensions aim to reduce context corruption by changing the way the compressor updates the context at the decompressor: updates are repeated and include updates to full and differential context parameters.  With these extensions, CRTP performs well over links with packet loss, packet reordering and long delays.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3545'/>
<seriesInfo name='DOI' value='10.17487/RFC3545'/>
</reference>



<reference  anchor="RFC3711" target='https://www.rfc-editor.org/info/rfc3711'>
<front>
<title>The Secure Real-time Transport Protocol (SRTP)</title>
<author initials='M.' surname='Baugher' fullname='M. Baugher'><organization /></author>
<author initials='D.' surname='McGrew' fullname='D. McGrew'><organization /></author>
<author initials='M.' surname='Naslund' fullname='M. Naslund'><organization /></author>
<author initials='E.' surname='Carrara' fullname='E. Carrara'><organization /></author>
<author initials='K.' surname='Norrman' fullname='K. Norrman'><organization /></author>
<date year='2004' month='March' />
<abstract><t>This document describes the Secure Real-time Transport Protocol (SRTP), a profile of the Real-time Transport Protocol (RTP), which can provide confidentiality, message authentication, and replay protection to the RTP traffic and to the control traffic for RTP, the Real-time Transport Control Protocol (RTCP).   [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3711'/>
<seriesInfo name='DOI' value='10.17487/RFC3711'/>
</reference>



<reference  anchor="RFC3948" target='https://www.rfc-editor.org/info/rfc3948'>
<front>
<title>UDP Encapsulation of IPsec ESP Packets</title>
<author initials='A.' surname='Huttunen' fullname='A. Huttunen'><organization /></author>
<author initials='B.' surname='Swander' fullname='B. Swander'><organization /></author>
<author initials='V.' surname='Volpe' fullname='V. Volpe'><organization /></author>
<author initials='L.' surname='DiBurro' fullname='L. DiBurro'><organization /></author>
<author initials='M.' surname='Stenberg' fullname='M. Stenberg'><organization /></author>
<date year='2005' month='January' />
<abstract><t>This protocol specification defines methods to encapsulate and decapsulate IP Encapsulating Security Payload (ESP) packets inside UDP packets for traversing Network Address Translators.  ESP encapsulation, as defined in this document, can be used in both IPv4 and IPv6 scenarios.  Whenever negotiated, encapsulation is used with Internet Key Exchange (IKE).  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='3948'/>
<seriesInfo name='DOI' value='10.17487/RFC3948'/>
</reference>



<reference  anchor="RFC4302" target='https://www.rfc-editor.org/info/rfc4302'>
<front>
<title>IP Authentication Header</title>
<author initials='S.' surname='Kent' fullname='S. Kent'><organization /></author>
<date year='2005' month='December' />
<abstract><t>This document describes an updated version of the IP Authentication Header (AH), which is designed to provide authentication services in IPv4 and IPv6.  This document obsoletes RFC 2402 (November 1998).  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4302'/>
<seriesInfo name='DOI' value='10.17487/RFC4302'/>
</reference>



<reference  anchor="RFC4303" target='https://www.rfc-editor.org/info/rfc4303'>
<front>
<title>IP Encapsulating Security Payload (ESP)</title>
<author initials='S.' surname='Kent' fullname='S. Kent'><organization /></author>
<date year='2005' month='December' />
<abstract><t>This document describes an updated version of the Encapsulating Security Payload (ESP) protocol, which is designed to provide a mix of security services in IPv4 and IPv6.  ESP is used to provide confidentiality, data origin authentication, connectionless integrity, an anti-replay service (a form of partial sequence integrity), and limited traffic flow confidentiality.  This document obsoletes RFC 2406 (November 1998).  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4303'/>
<seriesInfo name='DOI' value='10.17487/RFC4303'/>
</reference>



<reference  anchor="RFC4555" target='https://www.rfc-editor.org/info/rfc4555'>
<front>
<title>IKEv2 Mobility and Multihoming Protocol (MOBIKE)</title>
<author initials='P.' surname='Eronen' fullname='P. Eronen'><organization /></author>
<date year='2006' month='June' />
<abstract><t>This document describes the MOBIKE protocol, a mobility and multihoming extension to Internet Key Exchange (IKEv2).  MOBIKE allows the IP addresses associated with IKEv2 and tunnel mode IPsec Security Associations to change.  A mobile Virtual Private Network (VPN) client could use MOBIKE to keep the connection with the VPN gateway active while moving from one address to another.  Similarly, a multihomed host could use MOBIKE to move the traffic to a different interface if, for instance, the one currently being used stops working.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='4555'/>
<seriesInfo name='DOI' value='10.17487/RFC4555'/>
</reference>



<reference  anchor="RFC5246" target='https://www.rfc-editor.org/info/rfc5246'>
<front>
<title>The Transport Layer Security (TLS) Protocol Version 1.2</title>
<author initials='T.' surname='Dierks' fullname='T. Dierks'><organization /></author>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<date year='2008' month='August' />
<abstract><t>This document specifies Version 1.2 of the Transport Layer Security (TLS) protocol.  The TLS protocol provides communications security over the Internet.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5246'/>
<seriesInfo name='DOI' value='10.17487/RFC5246'/>
</reference>



<reference  anchor="RFC5723" target='https://www.rfc-editor.org/info/rfc5723'>
<front>
<title>Internet Key Exchange Protocol Version 2 (IKEv2) Session Resumption</title>
<author initials='Y.' surname='Sheffer' fullname='Y. Sheffer'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'><organization /></author>
<date year='2010' month='January' />
<abstract><t>The Internet Key Exchange version 2 (IKEv2) protocol has a certain computational and communication overhead with respect to the number of round trips required and the cryptographic operations involved. In remote access situations, the Extensible Authentication Protocol (EAP) is used for authentication, which adds several more round trips and consequently latency.</t><t>To re-establish security associations (SAs) upon a failure recovery condition is time consuming especially when an IPsec peer (such as a VPN gateway) needs to re-establish a large number of SAs with various endpoints.  A high number of concurrent sessions might cause additional problems for an IPsec peer during SA re-establishment.</t><t>In order to avoid the need to re-run the key exchange protocol from scratch, it would be useful to provide an efficient way to resume an IKE/IPsec session.  This document proposes an extension to IKEv2 that allows a client to re-establish an IKE SA with a gateway in a highly efficient manner, utilizing a previously established IKE SA.</t><t>A client can reconnect to a gateway from which it was disconnected. The proposed approach encodes partial IKE state into an opaque ticket, which can be stored on the client or in a centralized store, and is later made available to the IKEv2 responder for re-authentication.  We use the term ticket to refer to the opaque data that is created by the IKEv2 responder.  This document does not specify the format of the ticket but examples are provided.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5723'/>
<seriesInfo name='DOI' value='10.17487/RFC5723'/>
</reference>



<reference  anchor="RFC5763" target='https://www.rfc-editor.org/info/rfc5763'>
<front>
<title>Framework for Establishing a Secure Real-time Transport Protocol (SRTP) Security Context Using Datagram Transport Layer Security (DTLS)</title>
<author initials='J.' surname='Fischl' fullname='J. Fischl'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig'><organization /></author>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<date year='2010' month='May' />
<abstract><t>This document specifies how to use the Session Initiation Protocol (SIP) to establish a Secure Real-time Transport Protocol (SRTP) security context using the Datagram Transport Layer Security (DTLS) protocol.  It describes a mechanism of transporting a fingerprint attribute in the Session Description Protocol (SDP) that identifies the key that will be presented during the DTLS handshake.  The key exchange travels along the media path as opposed to the signaling path.  The SIP Identity mechanism can be used to protect the integrity of the fingerprint attribute from modification by intermediate proxies.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5763'/>
<seriesInfo name='DOI' value='10.17487/RFC5763'/>
</reference>



<reference  anchor="RFC5764" target='https://www.rfc-editor.org/info/rfc5764'>
<front>
<title>Datagram Transport Layer Security (DTLS) Extension to Establish Keys for the Secure Real-time Transport Protocol (SRTP)</title>
<author initials='D.' surname='McGrew' fullname='D. McGrew'><organization /></author>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<date year='2010' month='May' />
<abstract><t>This document describes a Datagram Transport Layer Security (DTLS) extension to establish keys for Secure RTP (SRTP) and Secure RTP Control Protocol (SRTCP) flows.  DTLS keying happens on the media path, independent of any out-of-band signalling channel present. [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5764'/>
<seriesInfo name='DOI' value='10.17487/RFC5764'/>
</reference>



<reference  anchor="RFC5869" target='https://www.rfc-editor.org/info/rfc5869'>
<front>
<title>HMAC-based Extract-and-Expand Key Derivation Function (HKDF)</title>
<author initials='H.' surname='Krawczyk' fullname='H. Krawczyk'><organization /></author>
<author initials='P.' surname='Eronen' fullname='P. Eronen'><organization /></author>
<date year='2010' month='May' />
<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="RFC5925" target='https://www.rfc-editor.org/info/rfc5925'>
<front>
<title>The TCP Authentication Option</title>
<author initials='J.' surname='Touch' fullname='J. Touch'><organization /></author>
<author initials='A.' surname='Mankin' fullname='A. Mankin'><organization /></author>
<author initials='R.' surname='Bonica' fullname='R. Bonica'><organization /></author>
<date year='2010' month='June' />
<abstract><t>This document specifies the TCP Authentication Option (TCP-AO), which obsoletes the TCP MD5 Signature option of RFC 2385 (TCP MD5).  TCP-AO specifies the use of stronger Message Authentication Codes (MACs), protects against replays even for long-lived TCP connections, and provides more details on the association of security with TCP connections than TCP MD5.  TCP-AO is compatible with either a static Master Key Tuple (MKT) configuration or an external, out-of-band MKT management mechanism; in either case, TCP-AO also protects connections when using the same MKT across repeated instances of a connection, using traffic keys derived from the MKT, and coordinates MKT changes between endpoints.  The result is intended to support current infrastructure uses of TCP MD5, such as to protect long-lived connections (as used, e.g., in BGP and LDP), and to support a larger set of MACs with minimal other system and operational changes.  TCP-AO uses a different option identifier than TCP MD5, even though TCP-AO and TCP MD5 are never permitted to be used simultaneously.  TCP-AO supports IPv6, and is fully compatible with the proposed requirements for the replacement of TCP MD5.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='5925'/>
<seriesInfo name='DOI' value='10.17487/RFC5925'/>
</reference>



<reference  anchor="RFC6066" target='https://www.rfc-editor.org/info/rfc6066'>
<front>
<title>Transport Layer Security (TLS) Extensions: Extension Definitions</title>
<author initials='D.' surname='Eastlake 3rd' fullname='D. Eastlake 3rd'><organization /></author>
<date year='2011' month='January' />
<abstract><t>This document provides specifications for existing TLS extensions.  It is a companion document for RFC 5246, &quot;The Transport Layer Security (TLS) Protocol Version 1.2&quot;.  The extensions specified are server_name, max_fragment_length, client_certificate_url, trusted_ca_keys, truncated_hmac, and status_request.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6066'/>
<seriesInfo name='DOI' value='10.17487/RFC6066'/>
</reference>



<reference  anchor="RFC6347" target='https://www.rfc-editor.org/info/rfc6347'>
<front>
<title>Datagram Transport Layer Security Version 1.2</title>
<author initials='E.' surname='Rescorla' fullname='E. Rescorla'><organization /></author>
<author initials='N.' surname='Modadugu' fullname='N. Modadugu'><organization /></author>
<date year='2012' month='January' />
<abstract><t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol.  The DTLS protocol provides communications privacy for datagram protocols.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.  This document updates DTLS 1.0 to work with TLS version 1.2.  [STANDARDS-TRACK]</t></abstract>
</front>
<seriesInfo name='RFC' value='6347'/>
<seriesInfo name='DOI' value='10.17487/RFC6347'/>
</reference>



<reference  anchor="RFC7250" target='https://www.rfc-editor.org/info/rfc7250'>
<front>
<title>Using Raw Public Keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)</title>
<author initials='P.' surname='Wouters' fullname='P. Wouters' role='editor'><organization /></author>
<author initials='H.' surname='Tschofenig' fullname='H. Tschofenig' role='editor'><organization /></author>
<author initials='J.' surname='Gilmore' fullname='J. Gilmore'><organization /></author>
<author initials='S.' surname='Weiler' fullname='S. Weiler'><organization /></author>
<author initials='T.' surname='Kivinen' fullname='T. Kivinen'><organization /></author>
<date year='2014' month='June' />
<abstract><t>This document specifies a new certificate type and two TLS extensions for exchanging raw public keys in Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS).  The new certificate type allows raw public keys to be used for authentication.</t></abstract>
</front>
<seriesInfo name='RFC' value='7250'/>
<seriesInfo name='DOI' value='10.17487/RFC7250'/>
</reference>



<reference  anchor="RFC7296" target='https://www.rfc-editor.org/info/rfc7296'>
<front>
<title>Internet Key Exchange Protocol Version 2 (IKEv2)</title>
<author initials='C.' surname='Kaufman' fullname='C. Kaufman'><organization /></author>
<author initials='P.' surname='Hoffman' fullname='P. Hoffman'><organization /></author>
<author initials='Y.' surname='Nir' fullname='Y. Nir'><organization /></author>
<author initials='P.' surname='Eronen' fullname='P. Eronen'><organization /></author>
<author initials='T.' surname='Kivinen' fullname='T. Kivinen'><organization /></author>
<date year='2014' month='October' />
<abstract><t>This document describes version 2 of the Internet Key Exchange (IKE) protocol.  IKE is a component of IPsec used for performing mutual authentication and establishing and maintaining Security Associations (SAs).  This document obsoletes RFC 5996, and includes all of the errata for it.  It advances IKEv2 to be an Internet Standard.</t></abstract>
</front>
<seriesInfo name='STD' value='79'/>
<seriesInfo name='RFC' value='7296'/>
<seriesInfo name='DOI' value='10.17487/RFC7296'/>
</reference>



<reference  anchor="RFC7301" target='https://www.rfc-editor.org/info/rfc7301'>
<front>
<title>Transport Layer Security (TLS) Application-Layer Protocol Negotiation Extension</title>
<author initials='S.' surname='Friedl' fullname='S. Friedl'><organization /></author>
<author initials='A.' surname='Popov' fullname='A. Popov'><organization /></author>
<author initials='A.' surname='Langley' fullname='A. Langley'><organization /></author>
<author initials='E.' surname='Stephan' fullname='E. Stephan'><organization /></author>
<date year='2014' month='July' />
<abstract><t>This document describes a Transport Layer Security (TLS) extension for application-layer protocol negotiation within the TLS handshake. For instances in which multiple application protocols are supported on the same TCP or UDP port, this extension allows the application layer to negotiate which protocol will be used within the TLS connection.</t></abstract>
</front>
<seriesInfo name='RFC' value='7301'/>
<seriesInfo name='DOI' value='10.17487/RFC7301'/>
</reference>



<reference  anchor="RFC7539" target='https://www.rfc-editor.org/info/rfc7539'>
<front>
<title>ChaCha20 and Poly1305 for IETF Protocols</title>
<author initials='Y.' surname='Nir' fullname='Y. Nir'><organization /></author>
<author initials='A.' surname='Langley' fullname='A. Langley'><organization /></author>
<date year='2015' month='May' />
<abstract><t>This document defines the ChaCha20 stream cipher as well as the use of the Poly1305 authenticator, both as stand-alone algorithms and as a &quot;combined mode&quot;, or Authenticated Encryption with Associated Data (AEAD) algorithm.</t><t>This document does not introduce any new crypto, but is meant to serve as a stable reference and an implementation guide.  It is a product of the Crypto Forum Research Group (CFRG).</t></abstract>
</front>
<seriesInfo name='RFC' value='7539'/>
<seriesInfo name='DOI' value='10.17487/RFC7539'/>
</reference>



<reference  anchor="RFC8095" target='https://www.rfc-editor.org/info/rfc8095'>
<front>
<title>Services Provided by IETF Transport Protocols and Congestion Control Mechanisms</title>
<author initials='G.' surname='Fairhurst' fullname='G. Fairhurst' role='editor'><organization /></author>
<author initials='B.' surname='Trammell' fullname='B. Trammell' role='editor'><organization /></author>
<author initials='M.' surname='Kuehlewind' fullname='M. Kuehlewind' role='editor'><organization /></author>
<date year='2017' month='March' />
<abstract><t>This document describes, surveys, and classifies the protocol mechanisms provided by existing IETF protocols, as background for determining a common set of transport services.  It examines the Transmission Control Protocol (TCP), Multipath TCP, the Stream Control Transmission Protocol (SCTP), the User Datagram Protocol (UDP), UDP-Lite, the Datagram Congestion Control Protocol (DCCP), the Internet Control Message Protocol (ICMP), the Real-Time Transport Protocol (RTP), File Delivery over Unidirectional Transport / Asynchronous Layered Coding (FLUTE/ALC) for Reliable Multicast, NACK- Oriented Reliable Multicast (NORM), Transport Layer Security (TLS), Datagram TLS (DTLS), and the Hypertext Transport Protocol (HTTP), when HTTP is used as a pseudotransport.  This survey provides background for the definition of transport services within the TAPS working group.</t></abstract>
</front>
<seriesInfo name='RFC' value='8095'/>
<seriesInfo name='DOI' value='10.17487/RFC8095'/>
</reference>



<reference  anchor="RFC8229" target='https://www.rfc-editor.org/info/rfc8229'>
<front>
<title>TCP Encapsulation of IKE and IPsec Packets</title>
<author initials='T.' surname='Pauly' fullname='T. Pauly'><organization /></author>
<author initials='S.' surname='Touati' fullname='S. Touati'><organization /></author>
<author initials='R.' surname='Mantha' fullname='R. Mantha'><organization /></author>
<date year='2017' month='August' />
<abstract><t>This document describes a method to transport Internet Key Exchange Protocol (IKE) and IPsec packets over a TCP connection for traversing network middleboxes that may block IKE negotiation over UDP.  This method, referred to as &quot;TCP encapsulation&quot;, involves sending both IKE packets for Security Association establishment and Encapsulating Security Payload (ESP) packets over a TCP connection.  This method is intended to be used as a fallback option when IKE cannot be negotiated over UDP.</t></abstract>
</front>
<seriesInfo name='RFC' value='8229'/>
<seriesInfo name='DOI' value='10.17487/RFC8229'/>
</reference>



<reference anchor="I-D.ietf-tls-dtls13">
<front>
<title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>

<author initials='E' surname='Rescorla' fullname='Eric Rescorla'>
    <organization />
</author>

<author initials='H' surname='Tschofenig' fullname='Hannes Tschofenig'>
    <organization />
</author>

<author initials='N' surname='Modadugu' fullname='Nagendra Modadugu'>
    <organization />
</author>

<date month='March' day='4' year='2018' />

<abstract><t>This document specifies Version 1.3 of the Datagram Transport Layer Security (DTLS) protocol.  DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.  The DTLS 1.3 protocol is intentionally based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-tls-dtls13-26' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-tls-dtls13-26.txt' />
</reference>



<reference anchor="I-D.ietf-tls-dtls-connection-id">
<front>
<title>The Datagram Transport Layer Security (DTLS) Connection Identifier</title>

<author initials='E' surname='Rescorla' fullname='Eric Rescorla'>
    <organization />
</author>

<author initials='H' surname='Tschofenig' fullname='Hannes Tschofenig'>
    <organization />
</author>

<author initials='T' surname='Fossati' fullname='Thomas Fossati'>
    <organization />
</author>

<author initials='T' surname='Gondrom' fullname='Tobias Gondrom'>
    <organization />
</author>

<date month='December' day='27' year='2017' />

<abstract><t>This document specifies the "Connection ID" concept for the Datagram Transport Layer Security (DTLS) protocol, version 1.2 and version 1.3.  A Connection ID is an identifier carried in the record layer header that gives the recipient additional information for selecting the appropriate security association.  In "classical" DTLS, selecting a security association of an incoming DTLS record is accomplished with the help of the 5-tuple.  If the source IP address and/or source port changes during the lifetime of an ongoing DTLS session then the receiver will be unable to locate the correct security context.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-tls-dtls-connection-id-00' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-tls-dtls-connection-id-00.txt' />
</reference>



<reference anchor="I-D.ietf-rtcweb-security-arch">
<front>
<title>WebRTC Security Architecture</title>

<author initials='E' surname='Rescorla' fullname='Eric Rescorla'>
    <organization />
</author>

<date month='October' day='30' year='2017' />

<abstract><t>This document defines the security architecture for WebRTC, a protocol suite intended for use with real-time applications that can be deployed in browsers - "real time communication on the Web".</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-rtcweb-security-arch-13' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-rtcweb-security-arch-13.txt' />
</reference>



<reference anchor="I-D.ietf-tcpinc-tcpcrypt">
<front>
<title>Cryptographic protection of TCP Streams (tcpcrypt)</title>

<author initials='A' surname='Bittau' fullname='Andrea Bittau'>
    <organization />
</author>

<author initials='D' surname='Giffin' fullname='Daniel Giffin'>
    <organization />
</author>

<author initials='M' surname='Handley' fullname='Mark Handley'>
    <organization />
</author>

<author initials='D' surname='Mazieres' fullname='David Mazieres'>
    <organization />
</author>

<author initials='Q' surname='Slack' fullname='Quinn Slack'>
    <organization />
</author>

<author initials='E' surname='Smith' fullname='Eric Smith'>
    <organization />
</author>

<date month='November' day='29' year='2017' />

<abstract><t>This document specifies tcpcrypt, a TCP encryption protocol designed for use in conjunction with the TCP Encryption Negotiation Option (TCP-ENO).  Tcpcrypt coexists with middleboxes by tolerating resegmentation, NATs, and other manipulations of the TCP header.  The protocol is self-contained and specifically tailored to TCP implementations, which often reside in kernels or other environments in which large external software dependencies can be undesirable. Because the size of TCP options is limited, the protocol requires one additional one-way message latency to perform key exchange before application data may be transmitted.  However, this cost can be avoided between two hosts that have recently established a previous tcpcrypt connection.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-tcpinc-tcpcrypt-11' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-tcpinc-tcpcrypt-11.txt' />
</reference>



<reference anchor="I-D.ietf-tcpinc-tcpeno">
<front>
<title>TCP-ENO: Encryption Negotiation Option</title>

<author initials='A' surname='Bittau' fullname='Andrea Bittau'>
    <organization />
</author>

<author initials='D' surname='Giffin' fullname='Daniel Giffin'>
    <organization />
</author>

<author initials='M' surname='Handley' fullname='Mark Handley'>
    <organization />
</author>

<author initials='D' surname='Mazieres' fullname='David Mazieres'>
    <organization />
</author>

<author initials='E' surname='Smith' fullname='Eric Smith'>
    <organization />
</author>

<date month='November' day='30' year='2017' />

<abstract><t>Despite growing adoption of TLS, a significant fraction of TCP traffic on the Internet remains unencrypted.  The persistence of unencrypted traffic can be attributed to at least two factors. First, some legacy protocols lack a signaling mechanism (such as a "STARTTLS" command) by which to convey support for encryption, making incremental deployment impossible.  Second, legacy applications themselves cannot always be upgraded, requiring a way to implement encryption transparently entirely within the transport layer.  The TCP Encryption Negotiation Option (TCP-ENO) addresses both of these problems through a new TCP option-kind providing out-of-band, fully backward-compatible negotiation of encryption.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-tcpinc-tcpeno-18' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-tcpinc-tcpeno-18.txt' />
</reference>



<reference anchor="I-D.ietf-quic-transport">
<front>
<title>QUIC: A UDP-Based Multiplexed and Secure Transport</title>

<author initials='J' surname='Iyengar' fullname='Jana Iyengar'>
    <organization />
</author>

<author initials='M' surname='Thomson' fullname='Martin Thomson'>
    <organization />
</author>

<date month='March' day='4' year='2018' />

<abstract><t>This document defines the core of the QUIC transport protocol.  This document describes connection establishment, packet format, multiplexing and reliability.  Accompanying documents describe the cryptographic handshake and loss detection.</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-quic-transport-10' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-quic-transport-10.txt' />
</reference>



<reference anchor="I-D.ietf-quic-tls">
<front>
<title>Using Transport Layer Security (TLS) to Secure QUIC</title>

<author initials='M' surname='Thomson' fullname='Martin Thomson'>
    <organization />
</author>

<author initials='S' surname='Turner' fullname='Sean Turner'>
    <organization />
</author>

<date month='March' day='4' year='2018' />

<abstract><t>This document describes how Transport Layer Security (TLS) is used to secure QUIC.  Note to Readers  Discussion of this draft takes place on the QUIC working group mailing list (quic@ietf.org), which is archived at https://mailarchive.ietf.org/arch/search/?email_list=quic [1].  Working Group information can be found at https://github.com/quicwg [2]; source code and issues list for this draft can be found at https://github.com/quicwg/base-drafts/labels/-tls [3].</t></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-quic-tls-10' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-quic-tls-10.txt' />
</reference>



<reference anchor="I-D.ietf-tls-tls13">
<front>
<title>The Transport Layer Security (TLS) Protocol Version 1.3</title>

<author initials='E' surname='Rescorla' fullname='Eric Rescorla'>
    <organization />
</author>

<date month='March' day='4' 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></abstract>

</front>

<seriesInfo name='Internet-Draft' value='draft-ietf-tls-tls13-26' />
<format type='TXT'
        target='http://www.ietf.org/internet-drafts/draft-ietf-tls-tls13-26.txt' />
</reference>


<reference anchor="BLAKE2" >
  <front>
    <title>BLAKE2 -- simpler, smaller, fast as MD5</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="Noise" >
  <front>
    <title>The Noise Protocol Framework</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="WireGuard" >
  <front>
    <title>WireGuard -- Next Generation Kernel Network Tunnel</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="SIGMA" >
  <front>
    <title>SIGMA -- The ‘SIGn-and-MAc’ Approach to Authenticated Diffie-Hellman and Its Use in the IKE-Protocols</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="CurveCP" >
  <front>
    <title>CurveCP -- Usable security for the Internet</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="Curve25519" >
  <front>
    <title>Curve25519 - new Diffie-Hellman speed records</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>
<reference anchor="MinimalT" >
  <front>
    <title>MinimaLT -- Minimal-latency Networking Through Better Security</title>
    <author >
      <organization></organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>




  </back>

<!-- ##markdown-source:
H4sIAC2dnVoAA91963IbR5bm/3qKXPmHwWgAlihRsth7aZqkLLYsiS1S9vRs
bGwUUAmgzEIVprJAClY4Yh5j9132377JPMmea14KRcqeno6d3Q63TQB1yTx5
8pzvXHMymWRd2VX22JyYq217a3emWZjrNq/dpmk7c2Xn27bsduaybbpm3lQu
y2ez1t4em85f5PQiR0/IimZe52t4ZtHmi26yybfVbtLlGzfx90z0nsnjw6zI
O3uczeHfy6bdHZuyXjRZVm5afMnWdYePH7+Ey27s7q5pi2NzUXe2rW03OcPn
Z5nr8rr473nV1PDOnXXZpjw2/xWGOzYO3tXahYO/dmv8479lWb7tVk17nBkz
gf8beJ07NtdTc4njpG949NfNer2Lvm3aJZBps6ksjGA+pe8cPN12x+YJfLUo
67Kz5oem2dBvc5jesTndbmzblXUzNqd5VS6ati5z8/Lo8ZNnfFWzrTuc9Ue8
uzBXHdDB4SqcrG1bznO6yq7zsgJyEC3/lOMgpvNmnc7hFOZg2xv4O5rFaVOV
dfI9zQPedmtbh6sGr/q+yt2yuUumdDVfNU2Fv542680WprCE70pbz200PbnT
mO+fHJpv//KXwTm9gXsLGq2fydxt/gT/52FNYUjpVN5MzYfG2Wgeb3ZAd/8d
r8VNDg8z13a+qpuqWZYW1nl/aY4em+/aJi/u8l28Lvl61pbF0o7N2xPz+PDJ
s3/Fety0MKA/0b/35wDLcTI1PzVNES/Hqi1d12xWtk1+/XfAXPP8DkYTMVdW
N+0674BRjum6D69OD59+exQ+HD3+1n94evj8Sfhw9Cxc9vTFk+iXl8/CPc+e
Pj6MPzwNH46OwgOODp89Dx9eHD6NPjxPPjwLH759/jJ8eHkYnvb88fPwtOdP
n73wH17AhKIPL8NlL54+DlN4cfQ0PPrbxy/Do789PJRfLiZn09J2i0lXuUkB
/3ry9J4fJvOmru28K5t6Uha9i9pufmdnQVjm7XzVf858U9Zz/M+83W26e3+1
ddP77Z+25TxI5MEfKzcw6mg23/1w8uZcltAY0ST8pZlMjCvXwEstCN91XtEf
i9x1Jnfm7dmR3LRtgfVWXbdxx998M6vyG3s4Bdmuf26KhVzIYtvpy3Sr8f9o
w/3Z5vXkclVW5WZjzcl2nTvX1Pdff5Wvt7Yy7+ytdfdf9Y9Nc9OYn8pq3nya
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
bC07Mhs6CWe/p5fvMiSlIhxCEA5gQ+zFkyeIymiIvsHhQAuREIMmp7gHRamX
xkdtsnXu0EdCNRdv/d8uSW4I1OM2sK1UIPBWw/j2GXUkzaMzDzEJEMZtjl48
f6rOvOfkkogyX0NCfC7x8qQLgmL2qws1Rw+fAxUQYv1kZx+uT+PEobab39nZ
RAHqBI+H37dT0yAOUZNORhwyxbwjZyiYiWyLd8eplOMs15MW4+dVO6WgnAL2
0POUJiOY3uVBMIpfCeMl72Pvr5Y8zEKio7jH1cukp9ZonT7dnsVzxDFucJtJ
CWjfMMuXZvT25PRA4LKUC7WA0KhDtop3GGEmHqtUWeopUsFBTIADZ6Qxde7A
VWJC6qIDLvGXZiH5LrreH7ChzuLDo8ff/vor88nRM/TJGiba6WVMMM3hEiJo
rioeP4K6NrqcvCrsvooPTRlTxqySWKpzKeWxmXeWUsWoua3SwXEiLJ1e67tR
qtsyOELCwuAtHyiLHnZvJadIWsyzwOdlcq0fcRgsyOV4oExiVuT9eVGQLq2E
myUsYGC12V6Olxq20+UDwicSPWoXZgTMQdViNla168uhIH4kSQQ9wgU7vCjK
RT+7vFK9xC/AL3rCkLLE4YmHEz6TZL9tbFhLoT4nPEv6heeHwn6asnJgo5QS
XHLOO9LubS1m+lMaNzZZhf+OPryHzbEY2KQ+zIzHD7ZWmv2hi876fpa9sd4B
MHRazZX+hESAV4VUggwT4LFrvY05SGYR8744KVTtjqntrA9yAFGwzAyYmzzN
GaYHSpokPYQeKNpETnDptIRX2sgDb7zbrm1LRzJE1fDUmJHsQw1/8MbcNJst
6n++AMu++kdBnJxfTU6vP4C1gO8a8UId9OsZboNfPYQvYp++jkLyajVwSUcv
iwy6uvpwaka9ki+pTyFvfaBqeprdI+RE6Z71aCoaRTwF+51CMTWXu+Dn+qvm
e+YVt5VzdJAfN61DZGuL6O1YfA62N2FllRUt7ie1n2pZKGkZ3c1Xcj6piLno
peovd7Cvaf2xISRAb7IMCJCp1n7GpczpsTWkB+7yXWy6DraY8UZXBqDNsu+J
khqQUhEw8McHJOfl6GFNsTtCAkJZcoDGlop2q8VErJjeU8KRluVC9rWUlPmY
M5d9N9QUo+E8kSx3Yebqz9MemNMDPp1JG35zPDYuFl/AStsW65NFXkanCWaR
E0ukJ8AcPovIRRm6vkYEFhTfNCHm2p9gR31R8i50uTN6JQkqergcY611Q5zJ
yeVD5ECAJRl7Va05fB6XjRCHNW3G2OtAz8PZc2wNWiD7oJdBw1Z7edPP3EDX
RXheunczs4tbhloSCOMcRKer+qVMsUeauokt0TgkFZ9YqeOi2q2izBU6uUFI
riSK5Lyoex66bxi8F+6INcMfI0i4f2XvnV8yis4Fl/f8Gz3LJ0rUb0JlkMrb
ZNdT4D167gA+98edGlbE/pAdius1cy0s9OqWz8bTg35SVG9+J6qnIwNhggMH
OIaURXa6UP+p6LxCcS/53sdpu4r7YoV8TLgNJ3Zpnhmn14e1jJ6rRZlxsi26
ch5wqMeoz1sgfksR6ooOh+IzkSkf2rfMCUOW17K+nYOyJeP0Tvo/xy3afCMQ
7wHMw6l7oRszdSrzE30VB/2Cm3QgU1TPAHowoeCY17KUfaUuq40/O1d0XHaf
Hy5p4gX7PCoxTo4vLeuf9cDYXgqPj/bFJRQ+phd0AcdNQI1l6y8sJx+Oej6c
iXssCF1+HKnX6yBkrseNI4QgPctKmgrVu0zbvFMcGDOK8IAtqm/mI1P75bbH
+1/FVGeOpbwYctpoPveky1tAn+LREfWhrjBYHswJQTVKyyUda5DsUiEqkoxP
XOZ18rEMojfDRFibvY7fngLiM6feI3EshER91NsoVrJR9mJ0YJSmLo6DjSjO
GGmujizvBfoDHP92CPwcR+Jp4GRYOccIDUIBrOGIyeRQ0c4Xn5cLjY/6ktcH
Dn+X/v96QnkUqWLWQ49x/1wQ9SM91K6mWXR0XgWnSGRe4oWTKs2XemfRyDzS
/+HyXXxuHJ7f5QN0902HcR0PJRSUgH28IKdHXDWC9PQpoXyUIcEk9rtiuq+c
5yUomfpFASJFGqFSvHp3gRuLjgHlQBHXaM0pZsHDmR5gB238bvygQFC14DtW
c04uSJugnL2fAJEyvyaigi8PCGrBu3K0zUm0Epjf30mvgKgGTs+QjjouBs1y
rM04905pirRaOMxQRLMY7kgbkV3Rw2V88eHmSRlAQCnH+nusQvFS6/NoFTVq
96F8jaUcv+jhcmxTiV0CL8gGywWj/sF7QmmgCnh/WIgBYWg+4JzHWTt6O7bc
OOI+/ppGr4054jBQxj1IpGQt96cH7h9qxgss/e7EsOMK4n5RoU/BY56VKsbS
p7JlnD3UWgwrs0cr7+JSSEzpz0NhPvaDrWyxtF88OvvCp9n0Ds7W+lAnVXWq
lgFd0X+5RCYq59/bPr7CNMtnICHE+0jy0z9uat41WkJBuZhVlSA5zk/p3cMN
vRKejadx2mtO6tNAe2dASnj9ntGruo7aY8/sEk8Sl1R8733v7dQLDdgiayi0
eYMXG059jkQ4ijUVL1iYGYVwR7HdKE03A04i7ZdFNWN8kpBlWIyBW98iqq8S
RB1Lcna0s2B8yhYoVjBQwOECat77B/5GG6v6HgWSFRslYIzJZUDSI5Sohgjn
CIOR52LmjZPsbUqtD+f3wbSHSSZNXEinhgczxo79VySVY6tynLne66LjAn83
BbRwzZPAz1uE2CmKwoE5+HgUzUBytggH3uop2l1b2nCouAiXUBhYShyjV0Gr
Pq+WjyhRO+/A+KPJooJOKYZMuESPXPxdlCAsk+LzM1tZCR8+MH3l2CZ22VLw
WkTCXXQQXT9HKWP8g9lpi5AX0ht5sjAxEkwkRvi2Jy3ISiPXFZe0S85alOyc
DxwQgouQ9QDfeP/wrzw5UaOppeVPeF6prh9RxZgy4X98qycVmPuOMq61M1gE
xKk5SjgKnrvVh0H4Exaow6meMh9amrLrTUB6KAimtowp4bHl7ehvlSFmRAHf
A5z+Bza5/mYKiOkWiBAVTftZZ0OU+XdBBq9dfgymoMnOtq2mXyZF+PvSn3YU
pipv513ILYrsSvVNWAwiqalo0MeJ/L/f1YMbmROQj3tu/j1pIMbwieRtJJS4
hxPW5N8nmWQHZpswPAoeyovBRkrcaf6+xHSTlvMKaizrW+ykTU+QIJ009osL
/PLbpuxZ5gnrxGRiwkW5pHzAzcdNgfN5cNYz7q+NuV8s9rd8E8KNPe3BhUPZ
vr0aZcC30bmMidEfZssqV8uUGPP+jcpV/Q9SEsYYgtbi3tkTq/syyjjHNDr2
yQeiZDbBSfVNfGDffsK30cRKLeTyR5zRsO5pgkMWp0ZNq10oqmi0zJdvD5K4
pzTIK7byoUAwMqP3zew81+RGmqP6YWiWfgmpk1j9s8bXfFJA72W4Ygb+R0ci
wQR0bLR4XHmIS3cwAITO/BW4dw/kMWfxDBMW8EiCL3yXTOs4NO/1ll+ivuWr
f4Xu7rOwljsmK7bPWoO6m1tZTAcY9WItjHpeSi75IL+KXTG46+hYXoC1lLgW
e9FCaXB/LsgI3PXxt3L0xWJvANF7ObdbBhQyWrR2m1KOpOFVSRP+I/rA7plr
ugsSPNx7Dwc/o7fIPum9g+6aU45+xXU7TCKRVale3Em/d/9M3Ef8QEp+7rE9
/3IsZ5lg+UHCz/rzAD/HWyNI78Dk4Z0Rk/tinP0jT4bNodD5dVhqJB7VjtU4
F36R74/PlvW1ThJOpOyvapeck6iJKp6LXGc3JAK1FMQ3gN8bOuayUAtLCUnL
eT0NJd54N65WHMtTEvyljf2ibBY9c1ZrquLH+nMjI2eDCrQrumrSNRP+y/Q1
k2+cJistz8I7fFZjdA+vOnAGg5X9xQ4vHLqdT28cncOWaLCfMPpEjhlLcPgw
6m6kfhi6R/uU4IIGgrsp46Qz+7vYSJExXUKoOD1IUM9JTFOJ9pQGPjoSNPez
SFlLzmx4hXKKrOfv4pXQVGiI94Y4w/1fZIj4Afuv/DsxhKAmxWVG2o2lwoIk
CsWQJSOqc8HXRagOaVxsxZpSxzDlGUsCcWHzAhPKuR4fNVHvBzPqF6QL6r61
3AEubHGPTmAMBx5gB2WO3n6KLERQKoTA415/euYshSZU0wfdRN/3UCpWl0XL
UNMy8JlKO68/kEG+OdOD4zFgS/Po/EhxeXgBgifWd6y8fxFmNvSmkpXgUjfC
7KWckRVFTCJA0kaMIUs10Nle0455e2JkWnPhuc1w7yCFfftk0IAjrg8VAqO2
oUPTsCGPuTh5d4KuWyJcLtm910kzGDnIXs8CwRYBcBM5sr37+uEnuO16nbfl
L9jnQE+0ejDQk/uOsVHVqUmaS3F7Cyueem7Ky0bDem0pMyjnptXUI4MyAUNk
GRNvzMlcvfLUqDD0wcBDWLhfLxXykQ7P6xsgbftzbt787/+1qizm24zNd3g8
FjIRvLMCFPrXvK7xxN+r0rZtPs5e4ZFxGKD6cz5vZiIgv2tmcCPsO2lxrRPd
bNmFsbC2oC7JVGHfViU3paf4SaZxiKLNF900+z/EVczFO7UAAA==

-->

</rfc>

