Ракрыты (http://openwall.com/lists/oss-security/2017/12/12/6) детали новой атаки на TLS, которая получила кодовое имя ROBOT (https://robotattack.org/) (Return Of Bleichenbacher's Oracle Threat). Проблема позволяет выполнить операции расшифровки трафика и формирования цифровых подписей без знания закрытого RSA-ключа уязвимого TLS-сервера. Атаке подвержены только режимы TLS-шифров, использующие RSA. В качестве демонстрации успешного проведения атаки было представлено произвольно составленное сообщение, подписанное закрытым ключом Facebook. Проблема выявлена на 27 из 100 крупнейших сайтов по рейтингу Alexa, включая Facebook и PayPal. При этом при рассмотрении миллиона крупнейших сайтов уязвимость наблюдается всего на 2.8% ресурсах. Подобное расхождение объясняется тем, что атаке подвержены в основном коммерческие реализации TLS (Cisco ACE, F5 BIG-IP SSL, Citrix NetScaler, Radware), применяемые в крупных проектах. Из открытых проектов уязвимость присутствует Erlang (http://erlang.org/), Java/JSSE (https://www.oracle.com/technetwork/topics/security/cpuoct201... WolfSSL (https://github.com/wolfSSL/wolfssl/), MatrixSSL (https://github.com/matrixssl/matrixssl/) и Bouncy Castle (https://github.com/bcgit/bc-java/). OpenSSL, LibreSSL и GnuLTS проблеме не подвержены, но не исключается возникновения уязвимости из-за применения неофициальных модификаций. Например, в Facebook используется OpenSSL, который оказался уязвим (https://eprint.iacr.org/2017/1189.pdf) из-за применения собственных дополнительных патчей. Причиной возникновения уязвимости называется неполная реализация мер защиты, описанных в секции 7.4.7.1 спецификации TLS.
Примечательно, что метод является незначительной модификацией первой практической атаки на RSA, предложенной Даниэлем Блейхенбахером (Daniel Bleichenbacher (https://en.wikipedia.org/wiki/Daniel_Bleichenbacher)) в 1998 году. Было выявлено, что спустя 19 лет многие HTTPS-хосты до сих пор подвержены вариациям данной атаки. Суть метода в том, что атакующий на основании разных ответов от сервера может отделить корректные и некорректные блоки добавочного заполнения (padding oracle) в режиме PKCS #1 v1.5. Отличие нового метода от оригинальной атаки Блейхенбахера (http://archiv.infsec.ethz.ch/education/fs08/secsem/bleichenb... заключается в использовании дополнительных сигналов для разделения типов ошибок, таких как таймауты, сбросы соединения и дубликаты TLS-оповещений. Манипулируя информацией о корректности блоков добавочного заполнения атакующий может путём перебора подобрать подходящий для сеанса сессионный ключ.
Для сайтов, применяющих только шифрование на основе ключей RSA, атакущий может пассивно сохранить перехваченный трафик и позднее расшифровать его. Для HTTPS-хостов поддерживающих PFS (Perfect forward secrecy) успех атаки не так однозначен и зависит от того, как быстро будет проведена атака. Атака не восстанавливает непосредственно закрытый ключ, а только позволяет расшифровать шифротекст или сформировать поддельное подписанное сообщение. Проблеме подвержен не только TLS, но и другие протоколы в которых применяется RSA и PKCS #1 v1.5, включая XML Encryption, интерфейсы PKCS#11, JOSE (Javascript Object Signing and Encryption) и S/MIME.
Проверить свой сайт на наличие уязвимость можно через web-форму (https://robotattack.org/) или при помощи специального подготовленного скрипта (https://github.com/robotattackorg/robot-detect) на языке Python. В качестве обходного пути защиты рекомендуется отключить поддержку шифров на базе RSA (TLS_RSA*), за исключением шифров в которых RSA используется для создания цифровой подписи (шифры на основе эллиптических кривых с DHE и ECDHE в имени также не подвержены рассматриваемой атаке).
URL: http://openwall.com/lists/oss-security/2017/12/12/6
Новость: http://www.opennet.ru/opennews/art.shtml?num=47730