[Docs] [txt|pdf|xml|html] [Tracker] [Email] [Diff1] [Diff2] [Nits]

Versions: 00 01

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,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8446]  Rescorla, E., "The Transport Layer Security (TLS) Protocol
              Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
              <https://www.rfc-editor.org/info/rfc8446>.

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, <https://www.rfc-editor.org/info/rfc5077>.

Author's Address

   Raja Ashok
   Huawei
   Whitefield
   Bengaluru, Karnataka 560066
   India

   Email: rashok.ietf@gmail.com









Ashok                   Expires October 16, 2020                [Page 5]


Html markup produced by rfcmarkup 1.129d, available from https://tools.ietf.org/tools/rfcmarkup/