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

Ingela/crypto/public key/deprecation revert/otp 19163 #8700

Conversation

IngelaAndin
Copy link
Contributor

OTB: Decided to revert deprecation of crypto and public_key functions using legacy RSA encryption. Reason is that there exists other paddings than rsa-pcks1-padding that can still have valid uses cases, and that rsa-pkcs1-padding use case can be used for offline reasons or with mitigated OpenSSL versions and is then likely secure, we leave it up to the user if they want to trust OpenSSL implementation.

I rephrased the warnings and still recommend against using this functions with rsa-pkcs1-padding, we want to be secure by default and let it be the users responsibility to ensure that if they use the algorithm it will be secure for their setup.

Note that best practices for the web-socket protocol using these functions (and that is the main reason for reverting) explicitly recommends to only support an other padding than rsa-pcks1 one.

Avoid all RSA-PKCS1 v1.5 encryption algorithms ([RFC8017], Section 7.2), preferring RSAES-OAEP ([RFC8017], Section 7.1).

Form: https://www.rfc-editor.org/rfc/rfc8725#RFC7515

We also remove rsa_sslv23_padding form the documentation as, from OpenSSL doc:

RSA_SSLV23_PADDING
PKCS https://github.com/erlang/otp-internal/pull/1 v1.5 padding with an SSL-specific modification that denotes that the server is SSL3 capable.

Translated to English , this means that the SSL implementation that implements SSL-2.0 (First protocol version designed by Netscape and never released to the public due to its many vulnerabilities) signals that it also supports SSL-3.0 (First IETF standardized version) .
So OTP has never had an SSL implementation that supports SSL-2.0 not even when we wrapped OpenSSL. And for several years we have not supported SSL-3.0. And I do not think that we need to think that there are any other Erlang implementations in the wild of legacy SSL version 2.0 and 3.0 that we need to support, especially not in OTP-27. It can be considered a documentation bug.

@IngelaAndin IngelaAndin self-assigned this Aug 7, 2024
@IngelaAndin IngelaAndin added the team:PS Assigned to OTP team PS label Aug 7, 2024
Copy link
Contributor

github-actions bot commented Aug 7, 2024

CT Test Results

    4 files    104 suites   38m 16s ⏱️
2 423 tests 2 363 ✅  60 💤 0 ❌
2 992 runs  2 814 ✅ 178 💤 0 ❌

Results for commit 7ecbd28.

♻️ This comment has been updated with latest results.

To speed up review, make sure that you have read Contributing to Erlang/OTP and that all checks pass.

See the TESTING and DEVELOPMENT HowTo guides for details about how to run test locally.

Artifacts

// Erlang/OTP Github Action Bot

@IngelaAndin IngelaAndin force-pushed the ingela/crypto/public_key/deprecation-revert/OTP-19163 branch 2 times, most recently from 99ba2d1 to d6c83be Compare August 7, 2024 09:38
@IngelaAndin IngelaAndin added the testing currently being tested, tag is used by OTP internal CI label Aug 7, 2024
@IngelaAndin IngelaAndin force-pushed the ingela/crypto/public_key/deprecation-revert/OTP-19163 branch from d6c83be to 7ecbd28 Compare August 8, 2024 11:07
@IngelaAndin IngelaAndin force-pushed the ingela/crypto/public_key/deprecation-revert/OTP-19163 branch from 7ecbd28 to 5de483d Compare August 8, 2024 14:53
@IngelaAndin IngelaAndin merged commit 0ec8bd9 into erlang:maint Aug 8, 2024
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team:PS Assigned to OTP team PS testing currently being tested, tag is used by OTP internal CI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant