-
-
Notifications
You must be signed in to change notification settings - Fork 10.6k
Use empty renegotiate extension instead of SCSV for TLS > 1.0 #24161
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
Conversation
I didn't look at the code, but checking the minimum version is probably not what you want. The default security level doesn't allow TLS 1.0, even if the minimum is set to allow it. You probably need to check both.
|
@kroeckx you're absolutely right. https://www.openssl.org/docs/man3.3/man3/SSL_CTX_set_security_level.html is clear that for v3.3 the default security level is 2, and that level 1+ disallows all TLS <1.2. That doesn't make this wrong as such (it'll just keep adding the backward compatibility in some cases unnecessarily) but it does mean we could tighten it quite a bit further to cover those cases too, and that would be a significant improvement. It looks like I'll update this PR to add that later today. It looks like this is going to take quite a bit more updating of the tests, which makes sense since it now affects far more cases, but that's interesting since many will have different results at each security level. Is there any different-security-level testing I need to be aware of for that? I understand the basic test framework I think but I'm not clear how all the CI jobs etc hook together, and it'd be useful to know how to run anything like that locally. |
PR updated:
CLA now verified too. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks like there is currently a conflict. Can you also rebase on the latest master (rebase NOT merge)?
This updates quite a few tests (as the RI extension is now used much more frequently) and also adds some new tests to cover each of the cases and check the RI is sent correctly each time.
eb4c60b
to
16240d8
Compare
Indent fixed, now rebased & mergable on master. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@t8m please reconfirm
This pull request is ready to merge |
Pushed to master. Thanks for your contribution. |
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from #24161)
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from #22275)
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from openssl#24161)
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from #22275)
Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from openssl#22275)
This PR fixes #18790.
This is my very first OpenSSL PR, and day to day I don't write much C (and zero Perl) so I'd appreciate some careful review!
I've just emailed a signed CLA to the legal email now.
The idea here is:
#18790 has some discussion about the context and risks of this. I'm not well versed in that, but given that BoringSSL made the change in 2015 (https://boringssl-review.googlesource.com/c/boringssl/+/5143) and seems to have no issues doing this in all Chrome traffic, my assumption is those risks are very minimal.
Checklist