我们在尝试在Windows XP SP3(即v6)上使用wininet连接的客户端应用程序获得成功的SSL连接时遇到了问题。 客户端 hello 对我来说看起来不对劲,为什么 hello 会将其版本声明为 SSL 2.0,然后将握手版本声明为 SSL 3.0? 使用 wininet 的应用程序是否有错误编码的内容?
SSLv2 Record Layer: Client Hello
[Version: SSL 2.0 (0x0002)] <---------------------
Length: 76
Handshake Message Type: Client Hello (1)
Version: SSL 3.0 (0x0300) <---------------------
Cipher Spec Length: 51
Session ID Length: 0
Challenge Length: 16
Cipher Specs (17 specs)
Challenge
SSLv3 和 TLSv1.x 具有兼容模式,以防客户端也支持 v2 服务器,如 TLS 规范(与 SSL 的向后兼容性)中所述。
一些客户端支持这一点。例如,Oracle/Sun Java有一个SSLv2Hello
伪协议,它使用SSLv2 Hello,但实际上并不支持SSLv2。
这个问题已经解决了,但我会分享一些关于这个主题的更多信息,这些信息可能对观众有用
"客户端发送SSLv2 ClientHello,以便仅理解SSLv2的服务器可以处理该消息,并继续SSLv2握手。但是SSLv2 ClientHello也说"顺便说一下,我知道SSLv3,所以如果你也知道SSLv3,让我们做SSLv3而不是SSLv2",这是通常发生的事情(现在只知道SSLv2的服务器非常罕见)。
我从托马斯·波宁的评论中获取了它,链接https://security.stackexchange.com/questions/34827/why-clients-offer-handshaking-with-ssl-2-0-protocol