On Fri, Sep 27, 2019 at 04:47:16PM -0700, internet-dra...@ietf.org wrote:

> A New Internet-Draft is available from the on-line Internet-Drafts 
> directories.
> This draft is a work item of the Transport Layer Security WG of the IETF.
> 
>         Title           : TLS Ticket Requests
>         Authors         : Tommy Pauly
>                           David Schinazi
>                           Christopher A. Wood
>       Filename        : draft-ietf-tls-ticketrequests-02.txt
> 
> Abstract:
>    TLS session tickets enable stateless connection resumption for
>    clients without server-side, per-client state.  Servers vend an
>    arbitrary number of session tickets to clients, at their discretion,
>    upon connection establishment.  Clients store and use tickets when
>    resuming future connections.  This document describes a mechanism by
>    which clients may specify the desired number of tickets needed for
>    future connections.  This extension aims to provide a means for
>    servers to determine the number of tickets to generate in order to
>    reduce ticket waste, while simultaneously priming clients for future
>    connection attempts.

I've read the draft, it looks quite useful and reasonable.  It would
be good to see this published.

I have one idea (implemented in OpenSSL 1.1.1 on the server side)
that may be worth mentioning in this context (and perhaps even the
draft):

   - By default, OpenSSL TLS 1.3 servers only vend multiple (two)
     tickets on full handshakes.  Resumed sessions issue just one
     ticket.

This avoids unbounded linear growth in the number of tickets vended
to a client that makes many resumed connections even after reaching
its peak connection concurrency.

When, instead, even resumed connections (which consume at most one
ticket) also receive more than one ticket, after N connections the
client has at least N as yet unused tickets, which is a waste in
steady state.

With the proposed extension a client that already has sufficiently
many tickets to handle peak concurrency can start sending 1 as its
requested ticket count if it does not reuse tickets, and else 0 if
it is reusing tikets and has all the tickets it needs for now.

Sending 1 on resumption when enough tickets are at hand helps clients
avoid receiving useless tickets from servers that don't implement
the OpenSSL strategy.  Sending 0 helps even with servers that use
the OpenSSL strategy to avoid sending pointless tickets to clients
that do reuse tickets and don't presently need more.

In OpenSSL, with 2 default tickets vended per full handshake, and
a client that implements single-use tickets, it takes N initial
full handshakes to reach steady-state with N concurrent resumable
sessions, after which time each resumption gets a new ticket for
the next resumption.

With the proposed extension, I'd raise the number of tickets vended
on a full handshake to the smaller of say 5 and the client's requested
count, which make it possible to prime N parallel tickets in N/4
previous full handshakes.  I'd still (by default) cap the ticket
count vended in a resumed session at 1, but a hint from clients
that have enough and send a request for 0 new tickets would then
be helpful.

-- 
        Viktor.

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to