RC4 связанная проблема после обновления Java 8
В предыдущей версии Java RC4 была включена в то время, когда мое приложение работало нормально, но после обновления Java 8 U 77 оно больше не использует следующие шифры, которые необходимы для работы с одним из моих старых серверов.
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
TLS_ECDHE_RSA_WITH_RC4_128_SHA
SSL_RSA_WITH_RC4_128_SHA
TLS_ECDH_ECDSA_WITH_RC4_128_SHA
TLS_ECDH_RSA_WITH_RC4_128_SHA
SSL_RSA_WITH_RC4_128_MD5
Я изменил java.security и раздел отключенного алгоритма, как показано ниже,
jdk.certpath.disabledAlgorithms=MD2, RSA keySize < 1024
Тем не менее я не могу заставить работать вышеупомянутые люксы. Любая идея их включения, я также пытался добавить их при запуске приложения,
java -Djavax.net.debug=all -Djavax.net.debug=ssl:handshake:verbose -Dhttps.cipherSuites="TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_RC4_128_SHA,TLS_ECDH_ECDSA_WITH_RC4_128_SHA,TLS_ECDH_RSA_WITH_RC4_128_SHA,SSL_RSA_WITH_RC4_128_MD5" <myApp>
Еще не повезло, заранее спасибо.
2 ответа
В примечаниях к выпуску Oracle JRE 8u51 упоминается новое свойство безопасности под названием jdk.tls.legacyAlgorithms
к которому был добавлен RC4:
RC4 сейчас считается слабым шифром. Серверы не должны выбирать RC4, если в наборе шифров, запрошенных клиентом, нет более сильного кандидата. Новое свойство безопасности, jdk.tls.legacyAlgorithms, добавлено, чтобы определить устаревшие алгоритмы в реализации Oracle JSSE. Связанные с RC4 алгоритмы добавлены в список устаревших алгоритмов.
Я предполагаю, что вы должны удалить RC4_40
из этого списка свойств в файле java.security, чтобы сделать его снова пригодным для использования.
Чтобы решить эту проблему, нам нужно снова включить RC4 и MD5 (оба теперь рассматриваются как скомпрометированные алгоритмы). Это должно быть сделано путем изменения конфигурации "java.security" (путем удаления RC4 и MD5 из файла jdk.tls.disabledAlgorithms, jdk.certpath.disabledAlgorithms) и повторного добавления вышеупомянутых "наборов шифров отсутствий" с использованием "SSLSocket/SSLEngine.setEnabledCipherSuites()". Для получения дополнительной информации о повторном добавлении связанных с RC4 шифров, пожалуйста, обратитесь к разделу Java 8 Update 60 (8u60) из выделения версии java 8 ( https://java.com/en/download/faq/release_changes.xml) и следующей ссылке ( http://bugs.java.com/view_bug.do?bug_id=8076221)