当客户端hello是sslv2时,为什么握手协议sslv3

时间:2012-11-27 14:32:54

标签: security http ssl https handshake

我们一直在尝试从尝试使用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

2 个答案:

答案 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