Новая атака SLOTH, затрагивающая TLS 1.2, SSH и IKE/IPsec с MD5 и SHA-1

В то время как цифровые подписи на основе MD5 уже практически не используются в серверных сертификатах, MD5 по-прежнему продолжает применяться в системах аутентификации клиента, в том числе при использовании протоколов TLS 1.2, SSH и IKE/IPsec, в которых до сих пор считалось невозможным практическое применение методов, связанных с поиском коллизий. Исследователи из французского института INRIA разработали пригодную для практического применения серию атак SLOTH, нацеленных на поражение систем аутентификации, использующих подверженные коллизиям алгоритмы хэширования.

Если в процессе аутентификации в таких системах клиент и сервер поддерживают цифровые подписи RSA-MD5, то SLOTH позволяет атакующему выдать себя за аутентифицированного пользователя, предварительно перенаправленного на подконтрольный злоумышленникам сервер (MITM-атака). В процессе совершения атаки инициируется откат TLS-соедиения на использование MD5-хэшей, после чего на исходный сервер и клиенту отправляются специально оформленные подставные сообщения, снабжённые хэшем MD5, совпадающим с хэшем отправленных пользователем сообщений. На подбор коллизии для MD5 требуется выполнить примерно 5.75 миллиардов вычислений, что на 48-ядерном сервере занимает около часа.

Практические сценарии атак предлагаются для RSA-MD5 в TLS 1.2, HMAC-MD5 в IKEv1, RSA-SHA1 или DSA-SHA1 в IKEv2, при этом атаки на MD5 вполне реалистичны, в то время как атаки на SHA-1 пока рассматриваются только в теории из-за значительных затрат на поиск коллизии (подбор коллизии для SHA-1 занимает около трех месяцев на кластере из 512 GPU). Атака может применяться и для SHA-1 в SSH 2, но для инициирования отката на менее защищённые алгоритмы в процессе согласования ключей.

В качестве главного вывода, исследователи указывают на то, что продолжение применения MD5 и SHA1 в находящихся в обиходе криптографических протоколах значительно уменьшает их защищённость и делает потенциально подверженными практически осуществимым атакам на ключевые механизмы протоколов. Кроме того, требуется по возможности избегать использования урезанных хэшей и MAC-ов в протоколах обмена ключами. После публикации результатов исследования, развивающая TLS рабочая группа уже приняла решение удалить из спецификации TLS 1.3 поддержку цифровых подписей RSA-MD5 и урезанных хэшей HMAC. Пользователям TLS 1.2 предлагается в настройках отключить применение MD5 в цифровых подписях.

В соответствии с ноябрьскими результатами сканирования сети, около 30% HTTPS-серверов поддерживают цифровые подписи RSA-MD5. Из клиентского ПО цифровые подписи RSA-MD5 принимаются, отправляются и анонсируются в реализациях TLS в Java (SunJSSE), NSS (до 3.21), BouncyCastle, PolarSSL/mbedTLS (до 2.2.1), GnuTLS (до 3.3.15) и OpenSSL (до 1.0.1f). Обновления пакетов с OpenSSL, NSS и GnuTLS с устранением проблемы (CVE-2015-7575) на днях доставлены пользователям RHEL, CentOS, Ubuntu и Debian. Проблема также устранена в Firefox 43 и GnuTLS 3.3.15.