Рекомендуем почитать:
Сводная группа специалистов из Тель-Авивского университета, Университета Аделаиды, Университета Мичигана, Института Вейцмана, а также NCC Group и Data61 представила доклад (PDF), посвященный новым вариациям атаки Блейхенбахера, представляющим угрозу даже для новейшего TLS 1.3.
Чтобы понимать суть проблемы, нужно вспомнить, что из себя представляет атака Блейхенбахера. В далеком 1998 году специалист Bell Laboratories Даниэль Блейхенбахер (Daniel Bleichenbacher) обнаружил проблему (PDF), связанную с тем, как ведет себя TLS-сервер, в том случае, если его оператор решил зашифровать обмен ключами между клиентом и сервером при помощи алгоритма RSA.
Суть атаки, разработанной тогда Блейхенбахером, заключалась в том, что перед установкой зашифрованного соединения, клиент случайным образом выбирает ключ сессии, который затем зашифровывается публичным ключом и отправляется серверу. Сервер расшифровывает это «послание», сохраняет копию ключа сессии и впоследствии использует для идентификации клиента. Таким образом клиент проходит валидацию, и устанавливается защищенное HTTPS-соединение.
Так как алгоритм RSA недостаточно защищен сам по себе, дополнительно используется так называемый padding, то есть добавление ничего не значащих данных к зашифровываемой информации, что в итоге должно повысить стойкость шифрования. Блейхенбахер обнаружил проблему в случае если ключи сессий, шифрующиеся с помощью RSA, используют padding PKCS #1 1.5.
Оказалось, что атакующий может просто направлять TLS-серверу случайные ключи, спрашивая, верны ли они. Подобрать настоящий ключ можно основываясь лишь на ответах сервера: простом «да/нет», которое тот возвращает в ответ на запрос «это RSA-ключ сессии?».
Однако после обнаружения данного бага от использования алгоритма RSA не отказались. Вместо этого авторы стандарта TLS реализовали ряд контрмер, которые мешали осуществить подобный брутфорс. К сожалению, этого оказалось явно недостаточно, и ИБ-специалисты уже неоднократно находили другие способы реализации атаки Блейхенбахера. Соответствующие исследования были представлены в 2003, 2012, 2014 и 2015 годах. Среди наиболее свежих вариаций этой проблемы можно вспомнить атаки, получившие названия DROWN (Decrypting RSA with Obsolete and Weakened eNcryption) и ROBOT (Return Of Bleichenbacher’s Oracle Threat), 2016-2017 годов.
Теперь группа вышеупомянутых специалистов в очередной раз нашла новые способы обхода RSA PKCS#1 v1.5. Хуже того, предложенные исследователями атаки в определенных ситуациях затрагивают не только TLS, но и протокол шифрования QUIC, разработанный Google.
Исследователи пишут, что их решение – это атака по стороннему каналу, которая использует данные «утекающие» через процессорный кеш и позволяет скомпрометировать обмен ключами RSA и определенные имплементации TLS. Хотя в новейшей версии TLS (1.3) использование RSA сводится к минимуму, специалисты обнаружили, что в ряде случаев возможно понизить соединение до TLS 1.2, после чего можно применять атаку Блейхенбахера.
Изучив различные имплементации TLS, специалисты пришли к выводу, что перед новыми вариациями старой проблемы уязвимы OpenSSL, Amazon s2n, MbedTLS, Apple CoreTLS, Mozilla NSS, WolfSSL и GnuTLS. В настоящее время все библиотеки уже получили обновления, так как исследователи предупредили разработчиков о своих выводах еще осенью прошлого года. Также в докладе отмечается, что BearSSL и Google BoringSSL проблема не затрагивала.
Обнаруженным экспертами уязвимостям были присвоены следующие идентификаторы: CVE-2018-12404, CVE-2018-19608, CVE-2018-16868, CVE-2018-16869 и CVE-2018-16870.
Читайте также
Последние новости