Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

application-defined session tickets #148

Open
2 tasks
marten-seemann opened this issue Dec 5, 2017 · 1 comment
Open
2 tasks

application-defined session tickets #148

marten-seemann opened this issue Dec 5, 2017 · 1 comment

Comments

@marten-seemann
Copy link
Collaborator

Hello @ekr, @bifurcation,

I'm planning to implement QUIC session resumption in quic-go soon. We'll need a few changes to mint for that, so I wanted to use this issue to outline my plan for that.

At the moment, mint sends a random value for the ticket. We will need a way for the application to provide an arbitrary resumption token here. I suggest that we

  • add a ResumptionTokenHandler somewhat analogous to the CookieHandler

The ResumptionTokenHandler would be set by the application, and when requested provide a resumption token (and a ticket lifetime, and the maximum early data size) to mint. This token would then be encrypted using the CookieSource implemented in #141. When mint receives a PskIdentity, it would ask the ResumptionTokenHandler to validate the provided token, and decide whether to continue with the resumption or to fall back to the normal handshake.

Currently, mint sends one NewSessionTicket after the handshake completes. In general, a server can send an arbitrary number of session tickets, so we should

  • add a Conn.SendSessionTicket() to trigger sending of a new session ticket

We should probably keep sending one session ticket right after the handshake completes, since this provides a useful default for users who don't need fine-grained control.

I just read the corresponding sections of the TLS 1.3 spec, so I might have missed something important. What do you think?

@ekr
Copy link
Collaborator

ekr commented Dec 5, 2017 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants