Почему протокол рукопожатия sslv3, когда приветствие клиента - sslv2

У нас были проблемы с получением успешного SSL-соединения от клиентского приложения, пытающегося подключиться с помощью wininet в Windows XP SP3 (т.е. v6). Приветствие клиента смотрит на меня, почему привет указывает свою версию как 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

person TheEmirOfGroofunkistan    schedule 27.11.2012    source источник


Ответы (2)


SSLv3 и TLSv1.x имеют режим совместимости на случай, если клиент также поддерживает серверы v2, как описано в Спецификация TLS (Обратная совместимость с SSL).

Некоторые клиенты поддерживают это. Например, Oracle/Sun Java имеет псевдопротокол SSLv2Hello, который использует SSLv2 Hello, но на самом деле не поддерживает SSLv2.

person Bruno    schedule 27.11.2012
comment
Что еще более важно, серверы v3+ должны распознавать это и отвечать протоколом более высокого уровня. - person President James K. Polk; 28.11.2012
comment
да, это была наша проблема. У нас была заблокирована версия 2 по умолчанию, и теперь нам нужно выяснить, как лучше поддерживать это, не влияя на другие конечные точки. Спасибо. - person TheEmirOfGroofunkistan; 28.11.2012
comment
Вы можете отключить SSLv2 на клиенте? Я не могу попробовать прямо сейчас, но вы можете отключить Regedit в HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Client и DisabledByDefault = 1 (DWORD) (возможно, сравните с машиной Win7). (Я не уверен, что Winitet использует этот параметр.) - person Bruno; 28.11.2012

Я знаю, что эта проблема решена, но я поделюсь дополнительной информацией по этому вопросу, которая может быть полезна для зрителей.

«Клиент отправляет 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

person Kadir Erdem Demir    schedule 25.04.2013