-
Notifications
You must be signed in to change notification settings - Fork 178
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
TLJH upgrade causes SSLV3_ALERT_HANDSHAKE_FAILURE until ciphers explicitly configured #293
Comments
I got the cipher list from the output of |
I think you configured the following ciphers
where the default ciphers may have been:
Hmmm... I wonder what cipher ended up being needed. Do you know what ciphers was supported via OpenLDAP? I observe that the default ciphers was all part of the larger list you specified. |
In Python < 3.10, the following ciphers were part of the default ssl context:
In Python 3.10+, that became strictly narrower list with no new ciphers added:
|
I suspect upgrading to using a more modern version of Python led to the list of ciphers was too narrow for an agreement with the server, which doesn't sound bad security wise --- could it be that your LDAP server isn't allowing any cipher part of the python 3.10 list? I figure its probably not suitable to expand the list of ciphers by default within this project. |
Using tcpdump and wireshark, I found that the TLJH setup that I've been using over the last year would settle on the TLS_RSA_WITH_AES_256_GCM_SHA384 cipher when connecting successfully to our LDAP server. (That's the name as displayed by wireshark, apparently encoded as 0x009d). When I got the connection to work again on the latest TLJH update and with the ciphers explicitly listed as above, the same cipher was chosen. I don't have access to our LDAP server but it's running RHEL 7 and has correspondingly older versions of the openssl libs. |
In lieu of extending the list of default ciphers, perhaps the docs for ldapauthenticator could mention the symptoms and workaround for the case of cipher mismatch. |
I think Amazing debugging into this @fredcy, I fully agree on docs about this - possibly also a log message if this error ocurr to point users in the right direction. |
Bug description
Upgrading TLJH breaks LDAP authentication with this error:
If I explicitly set the list of TLS ciphers in the TLJH config as below, then authentication starts working again. So maybe this is not a bug-report per se, but report of a workaround that took me a long time to discover.
How to reproduce
Start with a year-old TLJH instance that uses ldapauthenticator configured with
use_ssl: True
.Update TLJH to the latest version, and thus ldapauthenticator also.
Try to login at the TLJH web home page:
Expected behaviour
I expected to be able to login as I did before the upgrade.
Actual behaviour
It fails with HTTP 500 error, and the internal logs show the above SSLV3_ALERT_HANDSHAKE_FAILURE error.
Your personal set up
I'm using the TLJH on Ubuntu 22.04.5 LTS.
We originally installed TLJH a year ago.
Our OpenLDAP server expects to connect with TLS 1.2 using TLS-over-SSL on port 636.
Python 3.10.12
Full environment
The text was updated successfully, but these errors were encountered: