-
Notifications
You must be signed in to change notification settings - Fork 714
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
s2n client unable to resume connections with rustls server #4124
Comments
I think that behaviour is justified by:
As a server, it's impossible to make this decision without the client including
Yeah. Could be something that could be fixed in 8446bis? |
I talked with some teammates about this, and an interesting point was raised.
That is only the case if the session ticket format depends on the Key Exchange mode. For s2n-tls tickets are agnostic to the key exchange mode (even though we only support
even when a client hasn't sent their supported key exchange modes. We're still planning on switching to a behavior compatible with rustls, but it adds some interesting context to the "RFC ambiguity" discussion. |
Hmmm although thinking about it more, since s2n-tls only supports |
Addressed in #4177 |
Problem:
s2n-tls
clients are unable to use TLS 1.3 session resumption withrustls
servers.Turning on rustls logging, we see the following messages
s2n-tls does not send the
key_exchange_mode
extension unless there is a PSK already available.s2n-tls/tls/extensions/s2n_psk_key_exchange_modes.c
Lines 39 to 43 in ea6d02a
However, rustls won't send a session ticket unless the
key_exchange_mode
is included in the first flight of messages.The RFC is unfortunately under-specified about this scenario.
It is very clear that the extension must be sent, but is not clear about when it must be sent. However, this section from the RFC does imply that the
key_exchange_mode
extension should be sent before the server responds with a session ticketOpenssl and Rustls both include the
key_exchange_mode
extension in the first flight of messages.s2n-tls and Openssl both return session tickets even if the
key_exchange_mode
isn't sent.Solution:
Send a
key_exchange_modes
extension whenever the client wants to use resumption. The proposed change is listed below.Requirements / Acceptance Criteria:
Ideally we would merge in testing with this change. However the tests that I wrote for this are using #4114 , so I'll need to wait for that to be merged in before I can add my tests.
The text was updated successfully, but these errors were encountered: