Исследователи из французского института INRIA разработали новый метод атак на системы шифрования, применяющие 64-битные блочные шифры 3DES и Blowfish, получивший кодовое имя Sweet32. Метод позволяет в ходе MITM-атаки, подразумевающей наличие контроля за транзитным трафиком (например, через прослушивание публичного Wi-Fi), восстановить значение небольших идентификаторов, передаваемых внутри шифрованного сеанса, например сессионных Cookie в HTTPS-соединениях с 3DES. Метод также применим для восстановления аутентификационных токенов OpenVPN (используется Blowfish). Для защиты от выявленного метода атаки рекомендуется использовать шифры с размером блока, превышающим 64 бита, например, AES.

Для успешного совершения атаки сайт должен поддерживать создание защищённых соединений с использованием симметричного блочного шифра 3DES, а также допускать передачу большого числа запросов через одно установленное соединение. По оценке исследователей данному условию соответствуют 0.6% от 100 тысяч самых популярных сайтов в рейтинге Alexa. Для применения атаки также требуется чтобы клиент подключился с использованием 3DES (используется примерно 1.2% клиентских запросов), после чего атакующему необходимо добиться выполнения JavaScript-кода в браузере клиента.

Так как атака подразумевает наличие возможности перехвата трафика клиента, для выполнения JavaSсript-кода атакующий может подставить его при запросе клиентом незащищённого ресурса. JavaSсript-код нужен для отправки проверочных запросов на целевой сайт, которые отслеживаются в перехваченном трафике. Для успешной расшифровки Cookie в HTTPS в ходе эксперимента потребовалось 38 часов и отправка 785 Гб проверочных данных. Для восстановления 16-байтного аутентификационного токена в OpenVPN потребовалось 18 часов и генерация 705 Гб данных.

Метод основан на применении описанного в теории вероятности парадокса дней рождений. Генерируя большую последовательность запросов, атакующие оценивают появление двух одинаковых результирующих зашифрованных блоков, свидетельствующих об обнаружении коллизии. Учитывая то, что вызвавший коллизию запрос изначально известен, а в режиме CBC применяется XOR-наложение двух различных блоков, для воссоздания ключа шифрования требуется выявление нескольких коллизий.

Несмотря на то, что атака требует достаточно специфичных условий и мало применима на практике, выявление проблемы уже подтолкнуло разработчиков средств шифрования для перевода 64-битных шифров в разряд устаревших. В частности, уже выпущен OpenVPN 2.3.12, в котором прекращено применение 64-битных шифров. В ожидаемом на днях релизе OpenSSL 1.1.0 проблему планируется решить путём отключения 3DES. В ветках OpenSSL 1.0.2 и 1.0.1 для сохранения совместимости 3DES будет оставлен, но переведён в менее приоритетную группу (из high в medium).

Источник: http://www.opennet.ru/opennews/art.shtml?num=45023