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

09.01.2016 21:29

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

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

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

Практические сценарии атак предлагаются для 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.