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



我们在尝试在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

相关内容

  • 没有找到相关文章

最新更新