Skip to content
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

Add feature to disable support for SSLv2 formatted client hellos #4988

Open
jmayclin opened this issue Dec 20, 2024 · 1 comment
Open

Add feature to disable support for SSLv2 formatted client hellos #4988

jmayclin opened this issue Dec 20, 2024 · 1 comment

Comments

@jmayclin
Copy link
Contributor

jmayclin commented Dec 20, 2024

Problem:

For server's running in modern contexts, we should allow them to disable SSLv2 Client Hello support to comply with the RFC Recommendations.

Implementations MUST NOT send an SSL version 2.0 compatible CLIENT-HELLO. Implementations MUST NOT negotiate TLS 1.3 or later using an SSL version 2.0 compatible CLIENT-HELLO. Implementations are NOT RECOMMENDED to accept an SSL version 2.0 compatible CLIENT-HELLO in order to negotiate older versions of TLS.
https://www.rfc-editor.org/rfc/rfc8446#appendix-D.5

Solution:

Customers should be able to disable support for SSLv2 ClientHellos on a config.

Requirements / Acceptance Criteria:

A client attempting to use an SSLv2 client hello with the new behavior must fail.

Note: We should consider the way that this interacts with the ClientHello callback. E.g. What if SSLv2 ClientHellos are disabled on the first but not the second? And vice versa.

@jmayclin
Copy link
Contributor Author

jmayclin commented Dec 20, 2024

This can sort of be achieved by setting a minimum supported TLS version of TLS 1.3, but most endpoints serving public traffic will need to support both TLS 1.2 and TLS 1.3

When attempting to use TLS 1.3 with an SSLv2 client hello, s2n_client_hello_recv did fail, but with a nonspecific

Error Message: 'Cipher is not supported'

It would be nice to add an actual assertion here with a nice Duvet comment referencing the RFC.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants