RFR: 8245545: Disable TLS_RSA cipher suites

Sean Mullan mullan at openjdk.org
Mon Nov 18 21:02:42 UTC 2024


On Fri, 15 Nov 2024 19:50:33 GMT, Artur Barashev <abarashev at openjdk.org> wrote:

> These cipher suites do not preserve forward-secrecy and are not commonly used. Other TLS implementations (ex: Rustls) do not support or enable these suites by default. RFC 9325 [1] states that these suites should not be used. The IETF Draft "Deprecating Obsolete Key Exchange Methods in TLS" [2] mandates that these suites not be used.
> 
> Some TLS_RSA_* cipher suites are already disabled because they use DES, 3DES, RC4, or NULL, which are disabled. This action will disable all remaining TLS_RSA cipher suites.
> 
> [1] RFC 9325, Recommendations for Secure Use of TLS and DTLS (https://www.rfc-editor.org/rfc/rfc9325.html#section-4.1-2.5.1): "Implementations SHOULD NOT negotiate cipher suites based on RSA key transport, a.k.a. "static RSA". Rationale: These cipher suites, which have assigned values starting with the string "TLS_RSA_WITH_*", have several drawbacks, especially the fact that they do not support forward secrecy."
> [2] IETF Draft, Deprecating Obsolete Key Exchange Methods in TLS (https://www.ietf.org/archive/id/draft-ietf-tls-deprecate-obsolete-kex-05.html#section-4): "Clients MUST NOT offer and servers MUST NOT select RSA cipher suites in TLS 1.2 connections. (Note that TLS 1.0 and 1.1 are deprecated by [RFC8996], and TLS 1.3 does not support static RSA [RFC8446].)"

Changes requested by mullan (Reviewer).

test/jdk/sun/security/ssl/EngineArgs/DebugReportsOneExtraByte.java line 29:

> 27:  * @summary Incorrect SSLEngine debug output
> 28:  * @library /test/lib /javax/net/ssl/templates
> 29:  * @run main/othervm DebugReportsOneExtraByte

You don't have to run this in othervm mode. When there are no arguments, the test is relaunched in a new process (see lines 96-100).

test/jdk/sun/security/ssl/EngineArgs/DebugReportsOneExtraByte.java line 94:

> 92:      */
> 93:     public static void main(String args[]) throws Exception {
> 94:         SecurityUtils.removeFromDisabledTlsAlgs("TLS_RSA_*");

You can instead append "TLS_RSA_*" to "TLSv1" on line 105 as this is only needed to be removed when there are command line arguments.

-------------

PR Review: https://git.openjdk.org/jdk/pull/22163#pullrequestreview-2443720313
PR Review Comment: https://git.openjdk.org/jdk/pull/22163#discussion_r1847267983
PR Review Comment: https://git.openjdk.org/jdk/pull/22163#discussion_r1847269238


More information about the security-dev mailing list