Как инициировать ssl-соединение с использованием SSLv2

Я хочу установить соединение SSL с удаленным сервером, используя SSLv2. Я использую Java. Я попытался получить поддерживаемые протоколы в моем сокете, используя:

String[] suppProtocols=socket.getSupportedProtocols();
System.out.println("The protocols supported for this socket are: 
"+Arrays.toString(suppProtocols));

и я получил это в выводе:

[SSLv2Hello, SSLv3, TLSv1, TLSv1.1, TLSv1.2]

Теперь я прочитал, что Java не поддерживает SSLv2, а SSLv2Hello только отправляет приветственное сообщение с использованием SSLv2. Я могу'Понять, что это значит? Isn»т так же, как если бы клиент поддерживал SSLv2? Как я могу установить SSL-соединение, используя SSLv2.

Ответы на вопрос(1)

Решение Вопроса

в Hellov клиента SSLv2, как описано вСпецификация TLS:Обратная совместимость с SSL, SSLv3 и TLS 1 и выше имеют более согласованный механизм согласования версии. Как сказано в спецификации TLS:

Возможность отправлять приветственные сообщения клиента версии 2.0 будет полностью прекращена. Разработчики ДОЛЖНЫ приложить все усилия, чтобы двигаться вперед как можно быстрее. Версия 3.0 предоставляет лучшие механизмы для перехода к более новым версиям.

Sun / Oracle JRE или OpenJDK не 'Поддержка SSLv2. Включение сообщения SSLv3 + в сообщение SSLv2 было сделано только для обратной совместимости. Сейчаспо умолчанию отключено для клиентов в Java 7, С точки зрения сервера, он может, по крайней мере, принимать других клиентов SSLv3 +, которые таким образом переносят свое сообщение Client Hello в сообщение SSLv2, независимо от того, поддерживают они SSLv2 или нет.

Вы'Более подробную информацию о поддержке Java (включая другие реализации) вы найдете вэтот вопрос.

Вообще говоря, SSLv2 считается небезопасным: вы просто не должныне используй это. Общая тенденция состоит в том, чтобы перейти от SSLv3 к TLS 1.0 или выше, а не назад.

 Bruno08 окт. 2012 г., 01:54
Не совсем уверен, что тыЯ хочу проверить. SSLv2 действительно больше не должен существовать. Это, как говорится, проверьте EJP 'ответ на вопрос, который ямы связаны с. Судя по всему, IBM JRE поддерживает это. В качестве альтернативы, если вам действительно нужно общаться с сервером SSLv2, вы можете использовать туннель, которыйS реализован с OpenSSL (и настроен с v2), возможно, с чем-то вродеstunnelвместо использования JSSE.
 Jury A08 окт. 2012 г., 01:52
Я знаю, что это небезопасно и не должно использоваться. Мне нужно использовать его для тестирования. Мне все еще нужен какой-либо способ сделать это, если это возможно.
 user20742112 дек. 2012 г., 21:30
@ Бруно Второй 'SSLv3' в этом ответе должно бытьSSLv2' (клиент привет).
 Bruno12 дек. 2012 г., 21:40
@ EJP, ах спасибо, извини, это была опечатка.

Ваш ответ на вопрос