在 java8 中禁用 TLSv1.0

Pra*_*ash 8 java security ssl java-8 tls1.2

我正在尝试在 Java 8 中禁用 TLSv1.0

我在 JRE/lib/security/java.security 中的以下行中包含了 TLSv1.0

jdk.tls.disabledAlgorithms=SSLv3、RC4、MD5withRSA、DH、TLSv1.0

尽管如此,我在测试时还是从 TLSv1.0 获取密码,但是当我配置其他版本(如 TLSv1.1)时,我能够成功删除相应的密码

这可能是什么问题?

有没有办法删除 JRE 级别的特定密码?

Bra*_*rks 7

您可以使用命令行参数禁用 TLSv1 和任何您想要的密码,如下所示:

java -Djava.security.properties=disabled_tlsv1.properties
Run Code Online (Sandbox Code Playgroud)

该文件disabled_tlsv1.properties具有要禁用的密码列表,并且还支持协议,例如TLSv1。下面列出的其余密码对于 TLSv1.1 来说被认为是不安全的。

不过,这仍然使 TLSv1.1 可行,因为它的一些密码仍然启用。请注意,如果您愿意,您也可以在 JRE 本身中执行此操作,以影响整个服务器,如问题本身所述。

禁用_tlsv1.properties

jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH keySize < 768,TLSv1,TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_CBC_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_RC4_128_MD5,TLS_RSA_WITH_RC4_128_SHA
Run Code Online (Sandbox Code Playgroud)

可以在此处找到显示此内容以及如何验证 TLSv1 是否已禁用的 git 存储库


小智 7

将 TLSv1.0 替换为 TLSv1:

jdk.tls.disabledAlgorithms=SSLv3, RC4, MD5withRSA, DH, TLSv1
Run Code Online (Sandbox Code Playgroud)

如何测试?

openssl s_client -connect ip:port -tls1
Run Code Online (Sandbox Code Playgroud)


Pra*_*ash 5

对于第一部分问题,我能够通过修改如下行来禁用 TLSv1.0(使用 TLSv1 而不是 TLSv1.0)

jdk.tls.disabledAlgorithms=SSLv3、RC4、MD5withRSA、DH、TLSv1

但我仍然想知道,是否有任何可能性我可以在 JRE 级别禁用整个密码套件,例如,删除以下 3 个密码

>    RSA_WITH_3DES_EDE_CBC_SHA
>      RSA_WITH_AES_128_CBC_SHA
>      RSA_WITH_AES_256_CBC_SHA
Run Code Online (Sandbox Code Playgroud)


Ros*_*ith 2

您可以通过设置 java 选项强制客户端使用特定协议

-Djdk.tls.client.protocols=TLSv1.1,TLSv1.2
Run Code Online (Sandbox Code Playgroud)

或者,如果正在寻找禁用特定密码,您可以尝试设置

jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
Run Code Online (Sandbox Code Playgroud)

在 java.security 文件中