-
Notifications
You must be signed in to change notification settings - Fork 602
Add Modern cipher suites and deprecate legacy TLS. #1283
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
… and :compatible cipher suite upgrades to align with modern security standards, prioritizing TLS 1.3 and 1.2. Remove support for the insecure TLS 1.0 and 1.1 protocols in accordance with RFC 8996. New tests verify the correct application of these updated configurations.
|
I have simplified the changes to the tests. If you are unhappy with them, please let me know. If you believe going through OpenSSL is necessary, we can do it in a single individual test and validate it rather than making most tests potentially skipped in some systems. Thank you! |
3af8d53 to
a5cb578
Compare
|
Looks, good! I submitted trivial changes to the test before refreshing the comments page to see [7d0c4bb], but those were mostly formatting and file name use. I'm glad we got this updated. It's been on my mind for over a year now. |
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 good to me, but it is a breaking change that could lead to issues if/when people upgrade "unexpectedly" (e.g. a weak constraint in Mix file and an enthusiastically configured Depandabot/Renovate)...
|
@voltone Thank you for the approval and for raising this excellent point. |
|
Sure, and I agree it needs to be done. And I realise that an important part of any update to this particular part of Plug is going to be removing unsafe things rather than adding new things. Which necessarily means breaking changes. My comment was not meant to express reservations about adopting the change, but more of a practical question about what it means for versioning: is this going to become Plug v2.0, or is it ok to do this in v1.19? |
|
@ voltone Of course, I see your point. |
|
A scan of all artifacts reveals that the only documentation that needs an update to match the update to 'ssl.ex' is "guides/https.md". All other references are linked directly or indirectly to the Erlang ':ssl' application. Now, a massive version update would be a breaking change, such as renaming 'ssl.ex' to 'tls.ex'. Renaming to 'tls.ex' is a signal of future-proofing and modernizing, and it is technically accurate. However, such a rename would be in conflict with Erlang/OTP and a massive breaking change. Therefore, in this case, it is best to document the historical inertia of this naming convention as a known quirk. |
|
💚 💙 💜 💛 ❤️ Plug v1.19-dev already bumps the minimum Elixir version from v1.10 to v1.14 and the older OTP versions are no longer maintained, so we will give a shot at doing it as a minor release. Doing a major means people can't upgrade because of ~> 1.3 checks which would then come with other issues. Another option is to extract this into |
Update the :strong and :compatible cipher suite upgrades to align with modern security standards,
prioritizing TLS 1.3 and 1.2.
Remove support for the insecure TLS 1.0 and 1.1 protocols in accordance with RFC 8996.
New tests verify the correct application of these updated configurations.