rfc9149.original | rfc9149.txt | |||
---|---|---|---|---|
Network Working Group T. Pauly | Internet Engineering Task Force (IETF) T. Pauly | |||
Internet-Draft Apple Inc. | Request for Comments: 9149 Apple Inc. | |||
Intended status: Standards Track D. Schinazi | Category: Standards Track D. Schinazi | |||
Expires: 6 June 2021 Google LLC | ISSN: 2070-1721 Google LLC | |||
C.A. Wood | C.A. Wood | |||
Cloudflare | Cloudflare | |||
3 December 2020 | August 2021 | |||
TLS Ticket Requests | TLS Ticket Requests | |||
draft-ietf-tls-ticketrequests-07 | ||||
Abstract | Abstract | |||
TLS session tickets enable stateless connection resumption for | TLS session tickets enable stateless connection resumption for | |||
clients without server-side, per-client, state. Servers vend an | clients without server-side, per-client state. Servers vend an | |||
arbitrary number of session tickets to clients, at their discretion, | arbitrary number of session tickets to clients, at their discretion, | |||
upon connection establishment. Clients store and use tickets when | upon connection establishment. Clients store and use tickets when | |||
resuming future connections. This document describes a mechanism by | resuming future connections. This document describes a mechanism by | |||
which clients can specify the desired number of tickets needed for | which clients can specify the desired number of tickets needed for | |||
future connections. This extension aims to provide a means for | future connections. This extension aims to provide a means for | |||
servers to determine the number of tickets to generate in order to | servers to determine the number of tickets to generate in order to | |||
reduce ticket waste, while simultaneously priming clients for future | reduce ticket waste while simultaneously priming clients for future | |||
connection attempts. | connection attempts. | |||
Discussion Venues | ||||
This note is to be removed before publishing as an RFC. | ||||
Source for this draft and an issue tracker can be found at | ||||
https://github.com/tlswg/draft-ietf-tls-ticketrequest. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
provisions of BCP 78 and BCP 79. | ||||
Internet-Drafts are working documents of the Internet Engineering | ||||
Task Force (IETF). Note that other groups may also distribute | ||||
working documents as Internet-Drafts. The list of current Internet- | ||||
Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 6 June 2021. | Information about the current status of this document, any errata, | |||
and how to provide feedback on it may be obtained at | ||||
https://www.rfc-editor.org/info/rfc9149. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Simplified BSD License text | to this document. Code Components extracted from this document must | |||
as described in Section 4.e of the Trust Legal Provisions and are | include Simplified BSD License text as described in Section 4.e of | |||
provided without warranty as described in the Simplified BSD License. | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language | |||
2. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Use Cases | |||
3. Ticket Requests . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Ticket Requests | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 6 | 4. IANA Considerations | |||
5. Performance Considerations . . . . . . . . . . . . . . . . . 6 | 5. Performance Considerations | |||
6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 | 6. Security Considerations | |||
7. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 7 | 7. References | |||
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 7.1. Normative References | |||
8.1. Normative References . . . . . . . . . . . . . . . . . . 7 | 7.2. Informative References | |||
8.2. Informative References . . . . . . . . . . . . . . . . . 7 | Acknowledgements | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 8 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
As as described in [RFC8446], TLS servers vend clients an arbitrary | As described in [RFC8446], TLS servers vend clients an arbitrary | |||
number of session tickets at their own discretion in NewSessionTicket | number of session tickets at their own discretion in NewSessionTicket | |||
messages. There are at least three limitations with this design. | messages. There are at least three limitations with this design. | |||
First, servers vend some (often hard-coded) number of tickets per | First, servers vend some (often hard-coded) number of tickets per | |||
connection. Some server implementations return a different default | connection. Some server implementations return a different default | |||
number of tickets for session resumption than for the initial | number of tickets for session resumption than for the initial | |||
connection that created the session. No static choice, whether | connection that created the session. No static choice, whether fixed | |||
fixed, or resumption-dependent is ideal for all situations. | or dependent upon resumption, is ideal for all situations. | |||
Second, clients do not have a way of expressing their desired number | Second, clients do not have a way of expressing their desired number | |||
of tickets, which can impact future connection establishment. For | of tickets, which can impact future connection establishment. For | |||
example, clients can open parallel TLS connections to the same server | example, clients can open parallel TLS connections to the same server | |||
for HTTP, or race TLS connections across different network | for HTTP, or they can race TLS connections across different network | |||
interfaces. The latter is especially useful in transport systems | interfaces. The latter is especially useful in transport systems | |||
that implement Happy Eyeballs [RFC8305]. Since clients control | that implement Happy Eyeballs [RFC8305]. Since clients control | |||
connection concurrency and resumption, a standard mechanism for | connection concurrency and resumption, a standard mechanism for | |||
requesting more than one ticket is desirable for avoiding ticket | requesting more than one ticket is desirable for avoiding ticket | |||
reuse. See [RFC8446], Appendix C.4 for discussion of ticket reuse | reuse. See Appendix C.4 of [RFC8446] for discussion of ticket reuse | |||
risks. | risks. | |||
Third, all tickets in the client's possession ultimately derive from | Third, all tickets in the client's possession ultimately derive from | |||
some initial connection. Especially when the client was initially | some initial connection. Especially when the client was initially | |||
authenticated with a client certificate, that session may need to be | authenticated with a client certificate, that session may need to be | |||
refreshed from time to time. Consequently, a server may periodically | refreshed from time to time. Consequently, a server may periodically | |||
force a new connection even when the client presents a valid ticket. | force a new connection even when the client presents a valid ticket. | |||
When that happens, it is possible that any other tickets derived from | When that happens, it is possible that any other tickets derived from | |||
the same original session are equally invalid. A client avoids a | the same original session are equally invalid. A client avoids a | |||
full handshake on subsequent connections if it replaces all stored | full handshake on subsequent connections if it replaces all stored | |||
tickets with new ones obtained from the just performed full | tickets with new ones obtained from the just-performed full | |||
handshake. The number of tickets the server should vend for a new | handshake. The number of tickets the server should vend for a new | |||
connection may therefore need to be larger than the number for | connection may therefore need to be larger than the number for | |||
routine resumption. | routine resumption. | |||
This document specifies a new TLS extension - "ticket_request" - that | This document specifies a new TLS extension, "ticket_request", that | |||
clients can use to express their desired number of session tickets. | clients can use to express their desired number of session tickets. | |||
Servers can use this extension as a hint for the number of | Servers can use this extension as a hint for the number of | |||
NewSessionTicket messages to vend. This extension is only applicable | NewSessionTicket messages to vend. This extension is only applicable | |||
to TLS 1.3 [RFC8446], DTLS 1.3 [I-D.ietf-tls-dtls13], and future | to TLS 1.3 [RFC8446], DTLS 1.3 [RFC9147], and future versions of | |||
versions of (D)TLS. | (D)TLS. | |||
1.1. Requirements Language | 1.1. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
[RFC2119] [RFC8174] when, and only when, they appear in all capitals, | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
as shown here. | capitals, as shown here. | |||
2. Use Cases | 2. Use Cases | |||
The ability to request one or more tickets is useful for a variety of | The ability to request one or more tickets is useful for a variety of | |||
purposes: | purposes: | |||
* Parallel HTTP connections: To improve performance, a client may | Parallel HTTP connections: To improve performance, a client may open | |||
open parallel connections. To avoid ticket reuse, the client may | parallel connections. To avoid ticket reuse, the client may use | |||
use distinct tickets on each connection. Clients must therefore | distinct tickets on each connection. Clients must therefore bound | |||
bound the number of parallel connections they initiate by the | the number of parallel connections they initiate by the number of | |||
number of tickets in their possession, or risk ticket re-use. | tickets in their possession or risk ticket reuse. | |||
* Connection racing: Happy Eyeballs V2 [RFC8305] describes | Connection racing: Happy Eyeballs V2 [RFC8305] describes techniques | |||
techniques for performing connection racing. The Transport | for performing connection racing. The Transport Services | |||
Services Architecture implementation from [TAPS] also describes | Implementation document [TAPS] also describes how connections can | |||
how connections can race across interfaces and address families. | race across interfaces and address families. In such cases, | |||
In such cases, clients may use more than one ticket while racing | clients may use more than one ticket while racing connection | |||
connection attempts in order to establish one successful | attempts in order to establish one successful connection. Having | |||
connection. Having multiple tickets equips clients with enough | multiple tickets equips clients with enough tickets to initiate | |||
tickets to initiate connection racing while avoiding ticket re-use | connection racing while avoiding ticket reuse and ensuring that | |||
and ensuring that their cache of tickets does not empty during | their cache of tickets does not empty during such races. | |||
such races. Moreover, as some servers may implement single-use | Moreover, as some servers may implement single-use tickets, | |||
tickets, distinct tickets prevent premature ticket invalidation by | distinct tickets prevent premature ticket invalidation by racing. | |||
racing. | ||||
* Less ticket waste: Currently, TLS servers use application- | Less ticket waste: Currently, TLS servers use application-specific, | |||
specific, and often implementation-specific, logic to determine | and often implementation-specific, logic to determine how many | |||
how many tickets to issue. By moving the burden of ticket count | tickets to issue. By moving the burden of ticket count to | |||
to clients, servers do not generate wasteful tickets. As an | clients, servers do not generate wasteful tickets. As an example, | |||
example, clients might only request one ticket during resumption. | clients might only request one ticket during resumption. | |||
Moreover, as ticket generation might involve expensive | Moreover, as ticket generation might involve expensive | |||
computation, e.g., public key cryptographic operations, avoiding | computation, e.g., public key cryptographic operations, avoiding | |||
waste is desirable. | waste is desirable. | |||
* Decline resumption: Clients can indicate they do not intend to | Decline resumption: Clients can indicate they do not intend to | |||
resume a connection by sending a ticket request with count of | resume a connection by sending a ticket request with count of | |||
zero. | zero. | |||
3. Ticket Requests | 3. Ticket Requests | |||
As discussed in Section 1, clients may want different numbers of | As discussed in Section 1, clients may want different numbers of | |||
tickets for new or resumed connections. Clients may indicate to | tickets for new or resumed connections. Clients may indicate to | |||
servers their desired number of tickets to receive on a single | servers their desired number of tickets to receive on a single | |||
connection, in the case of a new or resumed connection, via the | connection, in the case of a new or resumed connection, via the | |||
following "ticket_request" extension: | following "ticket_request" extension: | |||
enum { | enum { | |||
ticket_request(TBD), (65535) | ticket_request(58), (65535) | |||
} ExtensionType; | } ExtensionType; | |||
Clients MAY send this extension in ClientHello. It contains the | Clients MAY send this extension in ClientHello. It contains the | |||
following structure: | following structure: | |||
struct { | struct { | |||
uint8 new_session_count; | uint8 new_session_count; | |||
uint8 resumption_count; | uint8 resumption_count; | |||
} ClientTicketRequest; | } ClientTicketRequest; | |||
new_session_count The number of tickets desired by the client if the | new_session_count: The number of tickets desired by the client if | |||
server chooses to negotiate a new connection. | the server chooses to negotiate a new connection. | |||
resumption_count The number of tickets desired by the client if the | resumption_count: The number of tickets desired by the client if the | |||
server is willing to resume using a ticket presented in this | server is willing to resume using a ticket presented in this | |||
ClientHello. | ClientHello. | |||
A client starting a new connection SHOULD set new_session_count to | A client starting a new connection SHOULD set new_session_count to | |||
the desired number of session tickets and resumption_count to 0. | the desired number of session tickets and resumption_count to 0. | |||
Once a client's ticket cache is primed, a resumption_count of 1 is a | Once a client's ticket cache is primed, a resumption_count of 1 is a | |||
good choice that allows the server to replace each ticket with a new | good choice that allows the server to replace each ticket with a new | |||
ticket, without over-provisioning the client with excess tickets. | ticket without over-provisioning the client with excess tickets. | |||
However, clients which race multiple connections and place a separate | However, clients that race multiple connections and place a separate | |||
ticket in each will ultimately end up with just the tickets from a | ticket in each will ultimately end up with just the tickets from a | |||
single resumed session. In that case, clients can send a | single resumed session. In that case, clients can send a | |||
resumption_count equal to the number of connections they are | resumption_count equal to the number of connections they are | |||
attempting in parallel. (Clients which send a resumption_count less | attempting in parallel. (Clients that send a resumption_count less | |||
than the number of parallel connection attempts might end up with | than the number of parallel connection attempts might end up with | |||
zero tickets.) | zero tickets.) | |||
When a client presenting a previously obtained ticket finds that the | When a client presenting a previously obtained ticket finds that the | |||
server nevertheless negotiates a new connection, the client SHOULD | server nevertheless negotiates a new connection, the client SHOULD | |||
assume that any other tickets associated with the same session as the | assume that any other tickets associated with the same session as the | |||
presented ticket are also no longer valid for resumption. This | presented ticket are also no longer valid for resumption. This | |||
includes tickets obtained during the initial (new) connection and all | includes tickets obtained during the initial (new) connection and all | |||
tickets subsequently obtained as part of subsequent resumptions. | tickets subsequently obtained as part of subsequent resumptions. | |||
Requesting more than one ticket in cases when servers complete a new | Requesting more than one ticket when servers complete a new | |||
connection helps keep the session cache primed. | connection helps keep the session cache primed. | |||
Servers SHOULD NOT send more tickets than requested for the | Servers SHOULD NOT send more tickets than requested for the | |||
connection type selected by the server (new or resumed connection). | connection type selected by the server (new or resumed connection). | |||
Moreover, servers SHOULD place a limit on the number of tickets they | Moreover, servers SHOULD place a limit on the number of tickets they | |||
are willing to send, whether for new or resumed connections, to save | are willing to send, whether for new or resumed connections, to save | |||
resources. Therefore, the number of NewSessionTicket messages sent | resources. Therefore, the number of NewSessionTicket messages sent | |||
will typically be the minimum of the server's self-imposed limit and | will typically be the minimum of the server's self-imposed limit and | |||
the number requested. Servers MAY send additional tickets, typically | the number requested. Servers MAY send additional tickets, typically | |||
using the same limit, if the tickets that are originally sent are | using the same limit, if the tickets that are originally sent are | |||
somehow invalidated. | somehow invalidated. | |||
A server which supports and uses a client "ticket_request" extension | A server that supports and uses a client "ticket_request" extension | |||
MUST also send the "ticket_request" extension in the | MUST also send the "ticket_request" extension in the | |||
EncryptedExtensions message. It contains the following structure: | EncryptedExtensions message. It contains the following structure: | |||
struct { | struct { | |||
uint8 expected_count; | uint8 expected_count; | |||
} ServerTicketRequestHint; | } ServerTicketRequestHint; | |||
expected_count The number of tickets the server expects to send in | expected_count: The number of tickets the server expects to send in | |||
this connection. | this connection. | |||
Servers MUST NOT send the "ticket_request" extension in any handshake | Servers MUST NOT send the "ticket_request" extension in any handshake | |||
message, including ServerHello or HelloRetryRequest messages. A | message, including ServerHello or HelloRetryRequest messages. A | |||
client MUST abort the connection with an "illegal_parameter" alert if | client MUST abort the connection with an "illegal_parameter" alert if | |||
the "ticket_request" extension is present in any server handshake | the "ticket_request" extension is present in any server handshake | |||
message. | message. | |||
If a client receives a HelloRetryRequest, the presence (or absence) | If a client receives a HelloRetryRequest, the presence (or absence) | |||
of the "ticket_request" extension MUST be maintained in the second | of the "ticket_request" extension MUST be maintained in the second | |||
ClientHello message. Moreover, if this extension is present, a | ClientHello message. Moreover, if this extension is present, a | |||
client MUST NOT change the value of ClientTicketRequest in the second | client MUST NOT change the value of ClientTicketRequest in the second | |||
ClientHello message. | ClientHello message. | |||
4. IANA Considerations | 4. IANA Considerations | |||
IANA is requested to create an entry, ticket_request(TBD), in the | IANA has added the following entry to the "TLS ExtensionType Values" | |||
existing registry for ExtensionType (defined in [RFC8446]), with "TLS | registry [RFC8446] [RFC8447]: | |||
1.3" column values being set to "CH, EE", and "Recommended" column | ||||
being set to "Y". | +=======+================+=========+===========+=============+ | |||
| Value | Extension Name | TLS 1.3 | DTLS-Only | Recommended | | ||||
+=======+================+=========+===========+=============+ | ||||
| 58 | ticket_request | CH, EE | N | Y | | ||||
+-------+----------------+---------+-----------+-------------+ | ||||
Table 1: Addition to TLS ExtensionType Values Registry | ||||
5. Performance Considerations | 5. Performance Considerations | |||
Servers can send tickets in NewSessionTicket messages any time after | Servers can send tickets in NewSessionTicket messages any time after | |||
the server Finished message (see [RFC8446]; Section 4.6.1). A server | the server Finished message (see Section 4.6.1 of [RFC8446]). A | |||
which chooses to send a large number of tickets to a client can | server that chooses to send a large number of tickets to a client can | |||
potentially harm application performance if the tickets are sent | potentially harm application performance if the tickets are sent | |||
before application data. For example, if the transport connection | before application data. For example, if the transport connection | |||
has a constrained congestion window, ticket messages could delay | has a constrained congestion window, ticket messages could delay | |||
sending application data. To avoid this, servers should prioritize | sending application data. To avoid this, servers should prioritize | |||
sending application data over tickets when possible. | sending application data over tickets when possible. | |||
6. Security Considerations | 6. Security Considerations | |||
Ticket re-use is a security and privacy concern. Moreover, clients | Ticket reuse is a security and privacy concern. Moreover, clients | |||
must take care when pooling tickets as a means of avoiding or | must take care when pooling tickets as a means of avoiding or | |||
amortizing handshake costs. If servers do not rotate session ticket | amortizing handshake costs. If servers do not rotate session ticket | |||
encryption keys frequently, clients may be encouraged to obtain and | encryption keys frequently, clients may be encouraged to obtain and | |||
use tickets beyond common lifetime windows of, e.g., 24 hours. | use tickets beyond common lifetime windows of, e.g., 24 hours. | |||
Despite ticket lifetime hints provided by servers, clients SHOULD | Despite ticket lifetime hints provided by servers, clients SHOULD | |||
dispose of cached tickets after some reasonable amount of time that | dispose of cached tickets after some reasonable amount of time that | |||
mimics the session ticket encryption key rotation period. | mimics the session ticket encryption key rotation period. | |||
Specifically, as specified in Section 4.6.1 of [RFC8446], clients | Specifically, as specified in Section 4.6.1 of [RFC8446], clients | |||
MUST NOT cache tickets for longer than 7 days. | MUST NOT cache tickets for longer than 7 days. | |||
In some cases, a server may send NewSessionTicket messages | In some cases, a server may send NewSessionTicket messages | |||
immediately upon sending the server Finished message rather than | immediately upon sending the server Finished message rather than | |||
waiting for the client Finished. If the server has not verified the | waiting for the client Finished message. If the server has not | |||
client's ownership of its IP address, e.g., with the TLS Cookie | verified the client's ownership of its IP address, e.g., with the TLS | |||
extension (see [RFC8446]; Section 4.2.2), an attacker may take | cookie extension (see Section 4.2.2 of [RFC8446]), an attacker may | |||
advantage of this behavior to create an amplification attack | take advantage of this behavior to create an amplification attack | |||
proportional to the count value toward a target by performing a | proportional to the count value toward a target by performing a | |||
(DTLS) key exchange over UDP with spoofed packets. Servers SHOULD | (DTLS) key exchange over UDP with spoofed packets. Servers SHOULD | |||
limit the number of NewSessionTicket messages they send until they | limit the number of NewSessionTicket messages they send until they | |||
have verified the client's ownership of its IP address. | have verified the client's ownership of its IP address. | |||
Servers that do not enforce a limit on the number of NewSessionTicket | Servers that do not enforce a limit on the number of NewSessionTicket | |||
messages sent in response to a "ticket_request" extension could leave | messages sent in response to a "ticket_request" extension could leave | |||
themselves open to DoS attacks, especially if ticket creation is | themselves open to DoS attacks, especially if ticket creation is | |||
expensive. | expensive. | |||
7. Acknowledgments | 7. References | |||
The authors would like to thank David Benjamin, Eric Rescorla, Nick | ||||
Sullivan, Martin Thomson, Hubert Kario, and other members of the TLS | ||||
Working Group for discussions on earlier versions of this draft. | ||||
Viktor Dukhovni contributed text allowing clients to send multiple | ||||
counts in a ticket request. | ||||
8. References | ||||
8.1. Normative References | ||||
[I-D.ietf-tls-dtls13] | 7.1. Normative References | |||
Rescorla, E., Tschofenig, H., and N. Modadugu, "The | ||||
Datagram Transport Layer Security (DTLS) Protocol Version | ||||
1.3", Work in Progress, Internet-Draft, draft-ietf-tls- | ||||
dtls13-39, 2 November 2020, <http://www.ietf.org/internet- | ||||
drafts/draft-ietf-tls-dtls13-39.txt>. | ||||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
<https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
8.2. Informative References | [RFC8447] Salowey, J. and S. Turner, "IANA Registry Updates for TLS | |||
and DTLS", RFC 8447, DOI 10.17487/RFC8447, August 2018, | ||||
<https://www.rfc-editor.org/info/rfc8447>. | ||||
[RFC9147] Rescorla, E., Tschofenig, H., and N. Modadugu, "The | ||||
Datagram Transport Layer Security (DTLS) Protocol Version | ||||
1.3", RFC 9147, DOI 10.17487/RFC9147, August 2021, | ||||
<https://www.rfc-editor.org/rfc/rfc9147>. | ||||
7.2. Informative References | ||||
[RFC8305] Schinazi, D. and T. Pauly, "Happy Eyeballs Version 2: | [RFC8305] Schinazi, D. and T. Pauly, "Happy Eyeballs Version 2: | |||
Better Connectivity Using Concurrency", RFC 8305, | Better Connectivity Using Concurrency", RFC 8305, | |||
DOI 10.17487/RFC8305, December 2017, | DOI 10.17487/RFC8305, December 2017, | |||
<https://www.rfc-editor.org/info/rfc8305>. | <https://www.rfc-editor.org/info/rfc8305>. | |||
[TAPS] Brunstrom, A., Pauly, T., Enghardt, T., Grinnemo, K., | [TAPS] Brunstrom, A., Ed., Pauly, T., Ed., Enghardt, T., | |||
Jones, T., Tiesel, P., Perkins, C., and M. Welzl, | Grinnemo, K-J., Jones, T., Tiesel, P., Perkins, C., and M. | |||
"Implementing Interfaces to Transport Services", Work in | Welzl, "Implementing Interfaces to Transport Services", | |||
Progress, Internet-Draft, draft-ietf-taps-impl-08, 2 | Work in Progress, Internet-Draft, draft-ietf-taps-impl-10, | |||
November 2020, <http://www.ietf.org/internet-drafts/draft- | 12 July 2021, <https://datatracker.ietf.org/doc/html/ | |||
ietf-taps-impl-08.txt>. | draft-ietf-taps-impl-10>. | |||
Acknowledgements | ||||
The authors would like to thank David Benjamin, Eric Rescorla, Nick | ||||
Sullivan, Martin Thomson, Hubert Kario, and other members of the TLS | ||||
Working Group for discussions on earlier draft versions of this | ||||
document. Viktor Dukhovni contributed text allowing clients to send | ||||
multiple counts in a ticket request. | ||||
Authors' Addresses | Authors' Addresses | |||
Tommy Pauly | Tommy Pauly | |||
Apple Inc. | Apple Inc. | |||
One Apple Park Way | One Apple Park Way | |||
Cupertino, California 95014, | Cupertino, CA 95014 | |||
United States of America | United States of America | |||
Email: tpauly@apple.com | Email: tpauly@apple.com | |||
David Schinazi | David Schinazi | |||
Google LLC | Google LLC | |||
1600 Amphitheatre Parkway | 1600 Amphitheatre Parkway | |||
Mountain View, California 94043, | Mountain View, CA 94043 | |||
United States of America | United States of America | |||
Email: dschinazi.ietf@gmail.com | Email: dschinazi.ietf@gmail.com | |||
Christopher A. Wood | Christopher A. Wood | |||
Cloudflare | Cloudflare | |||
101 Townsend St | 101 Townsend St | |||
San Francisco, | San Francisco, CA 94107 | |||
United States of America | United States of America | |||
Email: caw@heapingbits.net | Email: caw@heapingbits.net | |||
End of changes. 43 change blocks. | ||||
129 lines changed or deleted | 126 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |