Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8254713

Disable TLS 1.0 and 1.1

    XMLWordPrintable

    Details

    • Type: CSR
    • Status: Closed
    • Priority: P2
    • Resolution: Approved
    • Fix Version/s: 16
    • Component/s: security-libs
    • Labels:
      None
    • Subcomponent:
    • Compatibility Kind:
      behavioral
    • Compatibility Risk:
      low
    • Compatibility Risk Description:
      Hide
      According to [SSLPulse](https://www.ssllabs.com/ssl-pulse/), as of October 03, 2020, 99% of the 150,000 most popular websites support TLS 1.2, which implies that 1% *only* support a weaker protocol such as TLS 1.0 and/or 1.1.
      If necessary, and at their own risk, users can re-enable TLS 1.0 and 1.1 by adding them back to the jdk.tls.disabledAlgorithms property in the java.security file.
      Show
      According to [SSLPulse]( https://www.ssllabs.com/ssl-pulse/), as of October 03, 2020, 99% of the 150,000 most popular websites support TLS 1.2, which implies that 1% *only* support a weaker protocol such as TLS 1.0 and/or 1.1. If necessary, and at their own risk, users can re-enable TLS 1.0 and 1.1 by adding them back to the jdk.tls.disabledAlgorithms property in the java.security file.
    • Interface Kind:
      System or security property
    • Scope:
      JDK

      Description

      Summary

      Disable the TLS 1.0 and 1.1 protocols by default.

      Problem

      TLS 1.0 and 1.1 are versions of the TLS protocol that are no longer considered secure and have been superseded by more secure and modern versions (TLS 1.2 and 1.3).

      TLS 1.0 and 1.1 require and use weak algorithms such as 3DES and SHA-1. They lack support for stronger and more modern algorithms and ciphers that are supported or required in TLS 1.2 and 1.3. They have also been vulnerable to a number of attacks over the years. The Internet Draft "Deprecating TLSv1.0 and TLSv1.1" (which is currently in Last Call for comments) provides more details on the rationale for deprecating these versions of TLS.

      The compatibility risk of this change should be low. According to SSLPulse, as of October 03, 2020, 99% of the 150,000 most popular websites support TLS 1.2, which implies that 1% only support a weaker protocol such as TLS 1.0 and/or 1.1.

      Also, Mozilla and Google have already deprecated TLS 1.0 and 1.1 in the Firefox and Chrome browsers, respectively. Other major web browsers have announced similar plans to disable TLS 1.0 and 1.1 already or in the near future. This should help further reduce the compatibility risk as servers will be forced to upgrade to TLS 1.2 or higher if they want to continue working with these web browser clients.

      Solution

      Add "TLSv1" and "TLSv1.1" to the jdk.tls.disabledAlgorithms security property in the java.security configuration file.

      Specification

      --- a/src/java.base/share/conf/security/java.security
      +++ b/src/java.base/share/conf/security/java.security
      @@ -731,8 +731,8 @@ jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, \
       # Example:
       #   jdk.tls.disabledAlgorithms=MD5, SSLv3, DSA, RSA keySize < 2048, \
       #       rsa_pkcs1_sha1, secp224r1
      -jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, DH keySize < 1024, \
      -    EC keySize < 224, 3DES_EDE_CBC, anon, NULL
      +jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
      +    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              mullan Sean Mullan
              Reporter:
              mullan Sean Mullan
              Reviewed By:
              Xue-Lei Fan
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: