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
ssl module incorrectly supports tls-unique channel binding for TLS 1.3 #95341
Comments
There are two possibilities for TLS Binding: Details:
Linked to: |
Meh, what a mess. Thanks for notifying us, David. I have started a PR to implement |
Hmm. Does |
Oh, there is a function for that? I somehow missed the fact that OpenSSL has an API function for extms... |
Ah, it is implemented as a macro! That's why I could neither find a symbol in libssl nor a function in |
Yeah all the SSL_ctrl nonsense is macros. I tried to convince upstream to make them real functions, but no dice. |
davidben commentedJul 27, 2022
CPython's
get_channel_binding
method implements the tls-unique channel binding for TLS 1.3:https://github.com/python/cpython/blob/main/Lib/test/test_ssl.py#L671-L681
https://github.com/python/cpython/blob/main/Modules/_ssl.c#L2705
But this is incorrect. tls-unique is vulnerable to a couple of attacks (3SHAKE, SLOTH), so it was left undefined in TLS 1.3. RFC 9266 defines a replacement tls-exporter binding, built with Export Keying Material instead.
The text was updated successfully, but these errors were encountered: