-
-
Notifications
You must be signed in to change notification settings - Fork 679
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
V6 - Discuss forward secrecy #2215
Comments
I did address this with #2252 Do you think we need to clarify further @randomstuff |
Can you clarify (or provide reference) when you say that RSA supports PFS? Maybe we are not talking about the same thing? |
My point is that we should have explicit requirements about forward secrecy which is currently not mentioned explicitly at all. Proposed generic requirement:
This generic requirement could be specialized into more specific requirement about TLS (?). Proposed requirement about forward secrecy with respect to the client private key
Some questions/comments:
|
Should we enforce the use of ephemeral key exchange methods, such as ephemeral Diffie-Hellman (DHE) or Elliptic Curve Diffie-Hellman (ECDHE)? |
@ImanSharaf, I think the requirement should focus on the goal which is to provide forward secrecy. In practice, this is typically achieved using DHE but could be achieved using other schemes (triple diffie hellman, some RSA based schemes, etc.). |
See #2252 |
@randomstuff what are the next steps on this issue? |
Proposition:
Somewhat more verbose (but possibly more precise) wording:
Question: Any need for an exception for compatibility with old legacy external clients? ("[…] when communicating with up-to date clients […] Communication with external legacy clients which do not support forward secrecy can be used if such compatibility is required.") Question: Add some hints about suitable TLS ciphersuites in appendix? Question: Do we need to discuss about the impact of session resumption with respect to forward secrecy? |
My questions:
Open to suggestions but that would be a separate issue on the appendix. I don't think it is critical.
Does it alter the requirement? |
Short answer: It's complicated. I'd say we can include the requirement as is. Id needed, we can talk about session resumption in another issue. Long answer below: Possibly, somewhat. Explanation: The secrets stored by the TLS server for session resumption can typically be used to break the encryption of the resumed TLS session. If these are persisted (and replicated in order to allow the session to work on different instances of the TLS termination server), this may compromise forward secrecy. See for reference : https://timtaubert.de/blog/2014/11/the-sad-state-of-server-side-tls-session-resumption-implementations/ Note: This is fixed in TLS 1.3 when if a Diffie-Hellman key exchange is done as part of the session resumption ( So for this proposed requirement:
could be interpreted as implying that session secrets must be not persisted. |
Ok so how about my other questions @randomstuff :
|
Summary of forward secrecy support depending on TLS versions and ciphersuites:
(Assuming the DH contributions are really ephemeral. And if we skip the question of session resumption. If we skip the exotic ciphersuites such as PSK, etc.) We have two options for this proposed requirement:
Option 1: always use forward secrecy → This mean you would have to disable the ciphersuites in (C). Option 2: support forward secrecy → this means that at least (B) must be supported. This should work out of the box on modern systems unless:
|
Mozilla SSL server configuration has three modes:
So the question is. Can we require the usage of an "intermediate or higher" level (→ option 1)? If I look at several servers:
|
So I would suggest the following: 9.4.1 what do you think @randomstuff |
"latest recommended cipher suites are enabled" is somewhat vague but maybe that's the point. Moreover, this wording seems to be (implicitly) about TLS ("ciphersuites") but we might want it to apply to other protocols as well.
Is the "should" instead of "must" intentional here? Not that I am against saying "should" here. I'd want to focus more on forward-secrecy as an explicit goal. |
Yes as this guidance changes.
Seems like TLS is probably the vast majority of cases so I prefer to include it there.
Agree it should be a little clearer: 9.4.1 |
Wouldn't it make sense to have (also) general requirement about this? |
(musing) The forward secrecy requirement could apply to these web-compatible flows as well (which are not completely niche):
More generally some of the transport security requirements might apply to WebRTC. There is not so much we can do about for browser-to-browser communications but for browser-to-server WebRTC, it might be relevant. (If this does make sense, this should belong to the WeRTC appendix, though.) |
In theory but I see the other examples as a lot more niche and I'd rather focus on the main relevant example. For WebRTC, we have a guy who did those requirements so maybe open a separate issue and I will ping him :) |
opened #2439 to resolve |
Some requirement(s) should require the usage of forward secrecy whenever it makes sense.
see #2212 (comment)
Possible impact:
The text was updated successfully, but these errors were encountered: