gpt4 book ai didi

Java 6 ECDHE 密码套件支持

转载 作者:太空宇宙 更新时间:2023-11-03 12:55:55 29 4
gpt4 key购买 nike

Java Cryptography ArchitectureStandard Algorithm Name Documentation Java 6 的页面列出了 ECDHE 密码套件。因此,我希望它们在 Java 6 中得到支持。然而,无论是 OOTB Java 6 还是添加的 JCE Unlimited Strength 策略文件都无法启用它们。

本书Bulletproof SSL and TLS还表明 Java 6 支持 ECDHE,但需要注意:

Enable and prioritize ECDHE suites on the server. Java 6 and 7 clients support these, and will happily use them. (But do note that with Java 6 you must switch to using the v3 handshake in order to utilize ECDHE suites at the client level.)

我假设通过 v3 握手他指的是 SSLv3?我还没有尝试过,但即使可行,由于 POODLE 漏洞,SSLv3 也不是一个可行的选择。

我错过了什么?

最佳答案

Java 1.6 和更高版本中的 SSL/TLS 实现“JSSE”支持 ECDHE 套件如果有可用的 (JCE) 提供程序所需的 ECC 原语。 Java 1.6 OOTB 不包含这样的 ECC 提供程序,但您可以添加一个。 Java 7 和 8 包含 SunECC 提供程序。

这似乎是今天的热门话题。另见 https://security.stackexchange.com/questions/74270/which-forward-secrecy-cipher-suites-are-supported-for-tls1-0-protocolshttps://superuser.com/questions/848698/testing-cipher-suite-using-openssl-for-tomcat-server-is-resulting-in-wrong-manne(令我惊讶的是,它是从安全性迁移过来的)。

Ristic 的书无疑是指 v3 格式 ClientHello。 SSL2 和 SSL3 之间有一个主要的格式变化,SSL2 ClientHello 不能代表 ECC 的数据(特别是扩展)。 TLS 的所有版本(迄今为止)都使用与 SSL3 相同的格式,但具有(重要的)不同的内容。在 20 世纪早期,SSL 客户端通常使用 SSL2 format ClientHello,但content 允许升级到 SSL3 甚至 TLS1.0,以便成功对抗所有服务器,因为许多 SSL2仍在使用中。

大约 2006 年的 Java 1.6 客户端是过渡性的——默认情况下它使用 SSL2 格式 指定 版本 到 TLS1.0,但如果服务器同意 版本 SSL2 而不是更高版本,客户端异常中止,实际上是“SSL2 不安全”。这是由伪协议(protocol)字符串 SSLv2Hello 控制的,因此在 Java 1.6 客户端上,您应该 .setEnabledProtocols 来删除/排除它。

Java 7 和 8 仍然实现 SSLv2Hello 但不再默认启用它,因此默认使用 v3 格式,或者只要您指定协议(protocol)为(全部)SSL3 或更好。 7 和 8 还实现了 TLS1.1 和 1.2,而 6 没有,尽管默认情况下只有 8 在客户端启用它们。如果您要连接到仅支持 SSL2 的老式服务器,您应该只指定 SSLv2Hello —— 当然,您应该非常努力地完全不这样做。

关于Java 6 ECDHE 密码套件支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27323858/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com