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

Renegotiation extension isn't really correct #6484

Open
richsalz opened this issue Jun 13, 2018 · 6 comments
Open

Renegotiation extension isn't really correct #6484

richsalz opened this issue Jun 13, 2018 · 6 comments
Labels
branch: master Merge to master branch inactive triaged: feature The issue/pr requests/adds a feature
Milestone

Comments

@richsalz
Copy link
Contributor

From some email to the IETF TLS list:

I wrote the following: It seems that the semantics of the "renegotiation_info" extension are slightly muddy. Qualys understands it to mean that the server will not perform insecure renegotiation, full stop. But OpenSSL further understands it to mean that the server will perform secure negotiation. OpenSSL therefore makes it difficult to simultaneously simultaneously satisfy both of Qualys's expectations, since disabling all renegotiation will cause it not to send the "renegotiation_info" extension. Popular open source web servers implement a workaround which achieves Qualys's desired behavior. Comments?

Martin Thomson replied: I think that the Qualys interpretation might be safer. That is, you
probably should send R-I always. See Karthik's response to my suggestion that it might be OK to omit R-I in some cases: https://mailarchive.ietf.org/arch/msg/tls/TfiUa3M390augtvUoxH2D7L5LGM

David Benjamin also replied: This is BoringSSL's interpretation as well. We don't support renegotiation on the server at all, but our server still implements the renegotiation_info extension in the degenerate case for the initial handshake. It is vacuously true that all renegotiations we'll perform on that connection are secure. :-) I believe the Go TLS stack has the same behavior.

This has impacts on some open source servers, so maybe we can't fix in the 1.1.1 release.

@mattcaswell mattcaswell added this to the Assessed milestone Jul 2, 2018
@joymcg
Copy link

joymcg commented Sep 15, 2020

Hi richsalz
Does openssl now add renegoatiation_info extension in initial client hello message? Can openssl handle renegoatiation_info in initial client hello msg for both tls1.1 and tls1.2 versions.

@richsalz
Copy link
Contributor Author

Answering because you pinged me: I'm not part of the project any more.

@joymcg
Copy link

joymcg commented Sep 16, 2020

Answering because you pinged me: I'm not part of the project any more.

Still thanks for the time.

@joymcg
Copy link

joymcg commented Sep 16, 2020

@mattcaswell do you have any idea about this question?

@kaduk
Copy link
Contributor

kaduk commented Sep 16, 2020

Hi @joymcg you should probably have opened a new issue since you have a different question.
That said, since I am responding already, openssl never sends the empty "renegotiation_info" extension in the ClientHello; instead, we use the SCSV defined in Section 3.3 of RFC 5746 that offers equivalent functionality. We always send it initial ClientHellos.
The server can handle renegotiation_info in all versions of TLS for which it is defined (which is to say, all versions prior to 1.3).

@t8m t8m added triaged: feature The issue/pr requests/adds a feature branch: master Merge to master branch labels Jun 1, 2021
@t8m t8m modified the milestones: Assessed, Post 3.0.0 Jun 1, 2021
@nhorman
Copy link
Contributor

nhorman commented Jun 17, 2024

Marking as inactive, to be closed at the end of 3.4 dev barring further input

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
branch: master Merge to master branch inactive triaged: feature The issue/pr requests/adds a feature
Projects
None yet
Development

No branches or pull requests

6 participants