Как сообщает служба поддержки OpenSSL, выпущено обновление библиотеки криптозащиты, позволяющее закрыть крайне опасную уязвимость. Ее использование открывает злоумышленникам путь для получения ключа шифрования и возможность чтения трафика, передаваемого по защищенным каналам связи. Официальные представители OpenSSL отметили, что установка обновления может проявить себя в снижении производительности работы механизма шифрования.

Несмотря на высокую степень угрозы, для проведения успешной атаки необходимо соблюсти ряд дополнительных условий. Во-первых, атака может быть осуществлена только на конкретную версию OpenSSL, а именно 1.0.2. Во-вторых, приложения, использующие защищенный протокол, должны работать в группах на базе единой системы шифрования с цифровой подписью, генерирующей эфемерные ключи Диффи-Хеллмана.

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

К счастью, большинство используемых сейчас приложений не отвечают этим требованиям. Они передают данные по OpenSSL и используют механизм шифрования Диффи-Хеллмана с цифровой подписью. Например, Web-сервер Apache подключает опцию SSL_OP_SINGLE_DH_USE, которая заставляет использовать различные закрытые секретные ключи. Еще несколько месяцев назад Google сообщила, что отказалась от поддержки режима SSL_OP_SINGLE_DH_USE в BoringSSL, собственном форке OpenSSL. Недавно появились сообщения об отказе в использовании уязвимого режима передачи трафика в форке LibreSSL. Тем не менее, угроза для работы приложений и библиотек остается, когда они применяют набор статичных ключей шифрования.

Проведение атаки на OpenSSL

Когда условия атаки соблюдены, то она может быть проведена следующим образом. Сначала атакующая сторона отсылает многократные запросы на инициализацию «рукопожатия» (handshake), получая данные от уязвимого сервера или пользовательского компьютера. Затем злоумышленники проводят их обработку, в результате которой у них могут появиться неполные секретные ключи. Теперь им остается попытать счастье и, используя неполные ключи, получить работающие ключи шифрования, опираясь на принципы китайской теоремы об остатках.

Открыл эту уязвимость и подробно описал ее в своих материалах Антонио Сансо, исследователь по безопасности компании Adobe Systems. Описанию уже присвоен персональный учетный код CVE-2016-0701. Как отмечают эксперты, исправление уязвимости в OpenSSL было проведено в кратчайшие сроки. Информация об ее обнаружении поступила от Сансо 12 января. На поиски решения и организацию выпуска обновления ушло немного более двух недель.

И снова о Logjam...

Выпущенное обновление также учитывает ряд дополнительных мер защиты против уязвимости Logjam, открытой в мае прошлого года; тогда она поставила под угрозу десятки тысяч серверов по всему миру. Logjam позволяла взломать любое соединение TLS/SSL, установленное вместе с небрежно сконфигурированными интернет-сервисами или почтовым сервером. Идея Logjam была очень проста: эта уязвимость позволяла понизить уровень шифрования до так называемого «экспортного» уровня, когда длина ключа составляет всего 512 бит.

Появление уязвимости Logjam стало возможно вследствие специального закона США, который накладывает ограничения на экспорт стойких шифров. Благодаря Logjam злоумышленники получали возможность вмешаться в трафик обмена данными и незаметно переключить стороны на использовании слабого шифра с 512-битными ключами. Если атакующая сторона обладала достаточно мощными вычислительными ресурсами, то это открывало для нее возможность расшифровки трафика.

Согласно правилам обслуживания OpenSSL, реализованным теперь через новое обновление, механизм отвергает любые попытки передачи зашифрованных данных с параметрами Диффи-Хеллмана длиной меньше 1024 бит. До сих пор порог срабатывания был установлен на более низком уровне — 768 бит.

Что делать?

Всем пользователям OpenSSL version 1.0.2 следует установить обновление до версии 1.0.2f. Пользователи версии 1.0.1 должны перейти на 1.0.1r.

Официальные представители OpenSSL также сообщают, что поддержка версии OpenSSL 1.0.1 заканчивается в конце этого года и дальнейших обновлений по безопасности для нее не будет. Поддержка версий 0.9.8 и 1.0.0 была прекращена в декабре прошлого года.