我们一直在尝试从尝试使用winx on windows xp sp3(即v6)连接的客户端应用程序获得成功的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
答案 0 :(得分:4)
SSLv3和TLSv1.x具有兼容模式,以防客户端也支持v2服务器,如TLS specification (Backward Compatibility With SSL)中所述。
有些客户支持这一点。例如,Oracle / Sun Java有一个SSLv2Hello
伪协议,它使用SSLv2 Hello,但实际上并不支持SSLv2。
答案 1 :(得分:2)
我知道这个问题已经解决,但我会分享一些关于这个主题的更多信息,这些信息可能对观众有用
“客户端发送SSLv2 ClientHello,以便只了解SSLv2的服务器可以处理该消息,并继续SSLv2握手。但SSLv2 ClientHello也说”顺便说一句,我知道SSLv3,所以如果你知道SSLv3我们也做SSLv3而不是SSLv2,这就是通常发生的事情(现在只知道SSLv2的服务器非常罕见)。“
我是从Thomas Pornin的评论链接中得到的 https://security.stackexchange.com/questions/34827/why-clients-offer-handshaking-with-ssl-2-0-protocol