Как настроить соединения TLS для защиты от атаки freak (CVE 2015-0204)?

для уязвимости см. https://freakattack.com/.

Mozilla wiki имеет страницу с рекомендациями для ciphersuites:https://wiki.mozilla.org/Security/Server_Side_TLS#Recommended_configurations

Как бы я применил эти или подобные рекомендации в контексте Java(SSLContext, конфигурация поставщика, соединители Tomcat и т. д.)?

3 ответов


из Java 7 и далее наборы шифров могут быть исключены из использования через файл политики безопасности под названием java.безопасность, которая находится в среде выполнения Java в каталоге/lib / security.

файл политики определяет jdk.tls.свойство disabledAlgorithms для управления выбором шифра TLS. Существует также дополнительное свойство jdk.certpath.disabledAlgorithms для управления алгоритмами, встречающимися в сертификатах SSL. Документацию по этому свойству можно найти в Oracle сайт: справочное руководство JSSE

по умолчанию, начиная с Java 7, применяется следующая политика: jdk.tls.disabledAlgorithms=MD5, SHA1, DSA, RSA размер ключа здесь в разделе шифры (если только по умолчанию sunjsse crypto поставщик был явно переопределен и не используется).

Как вы можете видеть, все наборы шифров экспорта отключены по умолчанию, поэтому нет необходимости настраивать что-то для атаки FREAK.

редактировать из-за выше комментарий Houtman на вопрос:
О пуделе: вы должны думать об этом как в java 7, так и в 8. Поскольку протокол SSLv3 был отключен только по умолчанию из JDK 8u31 (см. раздел протоколы здесь).


вы можете включить список наборов шифров, которые вы хотите использовать, обратитесь к методу setEnabledCipherSuites в API SSLSocket и можете исключить экспорт наборов шифров из этого списка


добавьте их в свой SSL-разъем

server= "Unspecified" xpoweredBy= "false" secure= " true" sslProtocol="ТЛС" sslEnabledProtocols="протоколе TLSv1,в протоколе TLSv1.1,в протоколе TLSv1.2"