Как включить SSL 3 в Java

Поскольку Java 8 Update 31 протокол SSL 3 по умолчанию отключен из-за недостатков безопасности в SSL-протоколе (см. Атаку POODLE ).

Даже если это не рекомендуется, как его можно включить?

Если у вас нет другого выбора, кроме использования SSL 3, приведенная ниже ссылка объясняет конфигурацию.

Примечания к выпуску для обновления 31 предоставляют информацию для включения SSL 3 снова в Java.

Как указано:

Если SSLv3 абсолютно необходим , протокол можно активировать, удалив «SSLv3» из свойства jdk.tls.disabledAlgorithms в файле java.security или динамически устанавливая это свойство безопасности «true» до инициализации JSSE.

Имейте в виду, что даже протокол TLS может быть использован для обеспечения небезопасного доступа с SSL 3, который также является частью недостатка POODLE. Включение этого для Java или любой другой технологии должно быть в крайнем случае только по критическим причинам.

Если вы должны повторно активировать SSLv3.0 на 8u31, 7u75, 6u91, все, что вам нужно сделать, это прокомментировать следующую строку в JRE_HOME / lib / security / java.security :

jdk.tls.disabledAlgorithms=SSLv3 

Код:

 import javax.net.ssl.*; public class SocketProtocols { public static void main(String[] args) throws Exception { SSLSocketFactory factory = (SSLSocketFactory) SSLSocketFactory.getDefault(); SSLSocket soc = (SSLSocket) factory.createSocket(); // Returns the names of the protocol versions which are // currently enabled for use on this connection. String[] protocols = soc.getEnabledProtocols(); System.out.println("Enabled protocols:"); for (String s : protocols) { System.out.println(s); } } } 

Вывод:

Перед включением SSL 3.0

 $ /jdk1.8.0_31/bin/java SocketProtocols Enabled protocols: TLSv1 TLSv1.1 TLSv1.2 

После включения SSL 3.0

 $ /jdk1.8.0_31/bin/java SocketProtocols Enabled protocols: SSLv3 TLSv1 TLSv1.1 TLSv1.2 

кредиты / источник: http://javablogx.blogspot.de/2015/02/enabling-ssl-v30-in-java-8.html

Вы можете установить jdk.tls.disabledAlgorithms безопасности jdk.tls.disabledAlgorithms во время выполнения.

 static { Security.setProperty("jdk.tls.disabledAlgorithms", ""); } 

Я обнаружил, что оба эти изменения необходимы для подключения к плате DRAC 5:

Удалите MD5:

 jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024 

Удалите SSLv3, RC4 и MD5withRSA:

 jdk.tls.disabledAlgorithms=DH keySize < 768 
  • Как отключить резерв SSL и использовать только TLS для исходящих подключений в .NET? (Смягчение пуделя)
  • Подключение к WebSphere MQ в Java с помощью SSL / Keystore
  • Как заставить java-сервер принимать только tls 1.2 и отклонять tls 1.0 и tls 1.1 соединения
  • как я могу поделиться сеансом asp.net между http и https
  • javax.net.ssl.SSLException: Получено фатальное предупреждение: protocol_version
  • Почему SSLSocket Java отправляет приветствие клиента версии 2?
  • Trust Anchor не найден для подключения SSL для Android
  • Delphi: idHttp + SSL
  • Поддержка Android SSL - SNI
  • Выбор SSL-сертификата клиента в Java
  • Установите сертификат SSL с ненадежного веб-сайта в оснастку «Сертификаты», используя IE
  • Давайте будем гением компьютера.