2012-11-27 63 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