-
Notifications
You must be signed in to change notification settings - Fork 18k
proposal: crypto/tls: expose a session identifier #46718
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
Comments
@seankhliao I saw the linked tickets, I think this is not a duplicate of #25228: the session resumption already supported in Go works fine for my use case, but it is not possible to check which session was resumed. So this proposal isn't about implementing session id resumption, session tickets are ok. Regarding #18346 this is a different use case and I'm unable to find any existing ticket/proposal about a API to verify which TLS session was resumed, this is the reason I opened a new proposal, thank you |
cc @FiloSottile |
Change https://go.dev/cl/496822 mentions this issue: |
I think this is now possible using |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (
go env
)?go env
Outputcrypto/tls has no API to verify which TLS session was resumed. This is an issue for FTPS: to avoid data connection stealing vulnerability we need to require TLS session resumption and to enforce that the TLS session on the data connection was resumed from the one on the control connection.
Please take a look here for more details.
I propose to add two new API to the
ConnectionState
struct:this way we can store/get the session ID for the FTP control connection and check that
ResumedFrom
matches the expected ID.I'm aware that a unique TLS identifier is not easy to expose and that it is difficult to match TLS sessions (but at least possible) also with OpenSSL
The text was updated successfully, but these errors were encountered: