Network Working Group R. Ashok Internet-Draft Huawei Intended status: Standards Track April 14, 2020 Expires: October 16, 2020 TLS Ticket Request Message draft-rashok-tls-ticket-request-msg-01 Abstract TLS session ticket provides a stateless mechanism for server to resume connection with client. As per TLS 1.3 [RFC8446], server always sends arbitary number of session ticket after handshake. This document introduces a new message which is TicketRequest message, it can be send by client after handshake at any point of connection lifetime to retrieve new session ticket. The proposed mechanism in this document is only for TLS 1.3 and DTLS 1.3 and future versions. Status of This Memo This Internet-Draft is submitted in full conformance with the 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 and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on October 16, 2020. Copyright Notice Copyright (c) 2020 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of Ashok Expires October 16, 2020 [Page 1] Internet-Draft TLS Ticket Request Message April 2020 the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 2. SessionTicket Generation . . . . . . . . . . . . . . . . . . 2 3. TicketRequest Message . . . . . . . . . . . . . . . . . . . . 3 4. Performance Improvement . . . . . . . . . . . . . . . . . . . 3 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 6. Security Considerations . . . . . . . . . . . . . . . . . . . 4 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 4 7.1. Normative References . . . . . . . . . . . . . . . . . . 5 7.2. Informative References . . . . . . . . . . . . . . . . . 5 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 5 1. Introduction As per TLS 1.3 [RFC8446], TLS server sends arbitary number of session ticket after handshake (or after post-handshake authentication). Such session tickets are needed only for a client which resumes parallel connections to server immediately for connection multiplexing. But this delays the application data processing for a client which is not going to resume parallel connections immediately. Such clients might need session ticket at later point of time or it may not need also. So a client's need based session ticket generation will be more efficient on both server and client. To achieve this a new TicketRequest message is proposed in this specification, which should be send by client as and when it needs session ticket for resumption. 1.1. Requirements Language The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here. 2. SessionTicket Generation Client should be able to retrieve session ticket from server in two ways Ashok Expires October 16, 2020 [Page 2] Internet-Draft TLS Ticket Request Message April 2020 o As per [RFC8446] immediately after handshake or after post- handshake authentication. o By sending TicketRequest message to server at later time during data transfer. A new ticket_request extension [I-D.ietf-tls-ticketrequests] has been proposed to give control over client to request the amount of session ticket it needs for resuming parallel connection immediately after handshake. This extension SHOULD be send by client with TicketRequestContents.count as zero, if it does not need session ticket immediately after handshake. Then it can use TicketRequest message at later point when it needs to retrieve session ticket for session resumption. A client can send any number of TicketRequest message in its connection lifetime with server. But server SHOULD limit the total number of ticket issued to client per connection to prevent DOS attack. 3. TicketRequest Message TicketRequest message send by client holds the count parameter, which indicates how much session ticket immediately client needs. Structure of this message: struct { uint8 count; } TicketRequest; count The number of tickets needed by client 4. Performance Improvement Performance improvement on TLS 1.3 client's first application data processing when compared with and without session ticket from server is measured with below mentioned pseudocode. do_tls13_client_connection() { SSL_connect(ssl) SSL_write(ssl) /* Sends HTTP Request of 41 bytes */ SSL_read(ssl) /* Receives HTTP Response of 54 bytes */ } Performance results are Ashok Expires October 16, 2020 [Page 3] Internet-Draft TLS Ticket Request Message April 2020 +------------------+-------------------------+-------------------------+ | Num of Ticket | Average time taken by | Average time taken by | | send by Serv | SSL_read | SSL_read | | after handshake | (AES_GCM_256) | (Chacha20Poly1305) | +------------------+-------------------------+-------------------------+ | 0 | 62 usecs | 56 usecs | | 1 | 102 usecs | 86 usecs | | 2 | 132 usecs | 128 usecs | | 4 | 195 usecs | 185 usecs | | 6 | 250 usecs | 241 usecs | +----------------------------------------------------------------------+ +------------------+-------------------------+-------------------------+ | Num of Ticket | Average number of | Average number of | | send by Serv | connections per second | connections per second | | after handshake | (AES_GCM_256) | (Chacha20Poly1305) | +------------------+-------------------------+-------------------------+ | 0 | 1260 | 1356 | | 1 | 1134 | 1229 | | 2 | 1092 | 1141 | | 4 | 1001 | 1060 | | 6 | 929 | 1002 | +----------------------------------------------------------------------+ Time taken by reading HTTP response has 6.4% (for AES_GCM_256) and 3.4% (for Chacha20Poly1305) improvement when compared 0 ticket and 1 ticket sent by server. Similarly 303% and 330% improvement when compared 0 ticket and 6 tickets send by server. Total number of connections made by a client per second has 11% improvement when compared to 0 ticket and 1 ticket send by server. Similarly 35% improvement when compared to 0 ticket and 6 tickets send by server. 5. IANA Considerations Needs to register new TLS message type TicketRequest in IANA 6. Security Considerations The amount of ticket requested per connection should be limited by threshold value at server to prevent DOS attack. 7. References Ashok Expires October 16, 2020 [Page 4] Internet-Draft TLS Ticket Request Message April 2020 7.1. Normative References [I-D.ietf-tls-ticketrequests] Pauly, T., Schinazi, D., and C. Wood, "TLS Ticket Requests", draft-ietf-tls-ticketrequests-04 (work in progress), November 2019. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, March 1997, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, . 7.2. Informative References [I-D.ietf-tls-dtls13] Rescorla, E., Tschofenig, H., and N. Modadugu, "The Datagram Transport Layer Security (DTLS) Protocol Version 1.3", draft-ietf-tls-dtls13-37 (work in progress), March 2020. [RFC5077] Salowey, J., Zhou, H., Eronen, P., and H. Tschofenig, "Transport Layer Security (TLS) Session Resumption without Server-Side State", RFC 5077, DOI 10.17487/RFC5077, January 2008, . Author's Address Raja Ashok Huawei Whitefield Bengaluru, Karnataka 560066 India Email: rashok.ietf@gmail.com Ashok Expires October 16, 2020 [Page 5]