Как отключить набор 112-битных шифров на сервере приложений Java. Конкретно эти.
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
TLS_RSA_WITH_3DES_EDE_CBC_SHA
Я отредактировал файл java.security
и сделал jdk.tls.disabledAlgorithms = SSLv3, MD5withRSA, DH keySize <2048
, но эти алгоритмы все еще перечислены.
Также я хочу, чтобы функция предотвращения атак на более раннюю версию ( TLS_FALLBACK_SCSV
)
Что делать?
Перед тем, как вы измените конфигурацию SSL , возможно, стоит понять, в чем именно заключается уязвимость.
Когда была представлена 3DES, требовалось, чтобы она была совместима с унаследованными системами single-DES. Идея 3DES заключается в том, что вы можете увеличить безопасность, выполняя несколько операций DES с разными ключами. Для обеспечения совместимости они использовали конструкцию EDE: 3 операции DES последовательно - шифрование, дешифрование, шифрование - или для краткости EDE. Оказывается, операция дешифрования DES в основном взаимозаменяема с операцией шифрования с точки зрения безопасности, так что это работает довольно хорошо. Когда вы используете три независимых ключа для каждой операции (известная как вариант ввода 1), вы, по сути, получаете 168-битный ключ. Если вы хотите вернуться в старый режим single-DES, вы используете другую опцию ввода ключей (3), в которой для всех трех подключей установлено одно и то же значение, то есть k1 = k2 = k3, так что две операции отменяются и только действительно важна одна операция DES. Существует также еще один вариант ввода, который имеет два ключа с одинаковым значением, но один другой, что дает 112-битный ключ, но он на самом деле не используется в действительности и (несколько сбивает с толку) полностью не связан с тем, почему вы видите 3DES. сообщается как 112-битный.
Чтобы еще больше запутать ситуацию, вы иногда слышите, как люди говорят о 64-битном DES или 192-битном 3DES. С криптографической точки зрения они идентичны 56-битному DES или 168-битному 3DES. DES определяет систему заполнения клавиш, при которой 8 битов заполнения могут быть добавлены к 56-битному ключу для создания 64-битного дополненного ключа. Это было для использования в некоторых старых системах, и это не очень важно, но 8 бит можно игнорировать, и только 56 бит на самом деле являются ключевым материалом. В 192-битном 3DES происходит то же самое, где каждый 56-битный подключ дополняется 8 битами заполнения, но опять же реальный криптографический ключ имеет длину всего 168 бит.
Итак, что это за 112-битная штука?
3DES страдает от проблемы, называемой атакой встречи посередине . Подход заключается в следующем:
Это компромисс между временем и пространством, который позволяет сократить количество вычислений с 2 168 до 2 112 с пробелом. стоимость 2 56 64-битных блоков (512 петабайт).
Теперь, по какой-то странной причине, все инструменты безопасности, кажется, сообщают 3DES-EDE как 112-битные, не уточняя причину. 3DES-EDE не имеет 112-битной длины ключа и даже 112-битной эффективной длины ключа, если вы не укажете, что у вашего злоумышленника есть 512 ПиБ молниеносного хранилища, доступного вместе с их огромным массивом ASIC для взлома DES. Практика сообщения об этом как о 112-битном, похоже, началась с инструмента "sslscan" и с тех пор копировалась различными другими инструментами, что привело к разного рода путанице и заблуждениям (я даже видел, что это неправильно отмечено на экзамене по безопасности. !)
Это не значит, что вы не должны отключать 3DES - сейчас это старый алгоритм, и с ним возникли проблемы, так что, вероятно, стоит от него отказаться. Просто стоит знать, почему.
Если вы хотите это сделать, добавьте DESede
и DES
в список отключенных алгоритмов. Эти имена определены в документации провайдеров криптографии на случай, если вы захотите отключить любые другие.