2012-11-27 26 views
2

我们一直在尝试使用windows xp sp3(例如v6)上的wininet进行连接的客户端应用程序获得成功SSL连接的问题。客户端hello让我看,为什么hello将其版本声明为SSL 2.0,然后将握手版本声明为SSL 3.0?使用wininet的应用程序是否有错误编码?为什么当客户端问候语是sslv2时,握手协议sslv3

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 

回答

4

SSLv3和TLSv1.x具有兼容模式中的情况下,客户端也支持V2服务器,如在TLS specification (Backward Compatibility With SSL)说明。

有些客户支持这个。例如Oracle/Sun Java有一个SSLv2Hello伪协议,它使用SSLv2 Hello,但实际上不支持SSLv2。

+0

更重要的是,V3 +服务器应该认识到这一点,并具有较高的协议作出回应。 –

+0

是的,那是我们的问题。我们默认阻止了v2,现在必须弄清楚如何在不影响其他端点的情况下如何最好地支持这一点。谢谢。 – TheEmirOfGroofunkistan

+0

你能否在客户端上禁用SSLv2?我无法立即尝试,但是您可能可以通过HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ SSL 2.0 \ Client'和DisabledByDefault' = 1(DWORD )(可能与Win7机器相比)。 (我不确定Winitet是否使用此设置。) – Bruno

2

我知道这个问题是解决了,但我会分享这可能是观众

有用的问题的一些详细信息“客户端发送的SSLv2客户问候让谁只理解的SSLv2可以处理消息的服务器,并继续进行SSLv2握手,但SSLv2 ClientHello也说“顺便说一下,我知道SSLv3,所以如果你也知道SSLv3,那么我们就做SSLv3而不是SSLv2”,这就是通常发生的事情(只知道SSLv2的服务器是现在极为罕见)“。

我把它从托马斯Pornin的评论,链接 https://security.stackexchange.com/questions/34827/why-clients-offer-handshaking-with-ssl-2-0-protocol