Что такое eFail и чем он опасен
Рассказывают криптоаналитики компании «Актив»
Профессор Университета прикладных наук Мюнстера в области компьютерной безопасности Себастиан Шинцель (Sebastian Schinzel) сообщил о выявлении критических уязвимостей в системах шифрования почтовой переписки, основанных на использовании PGP/GPG и S/MIME.
Что такое S/MIME
Протокол S/MIME (Secure/Multipurpose Internet Mail Extensions) был создан для обеспечения аутентификации, целостности сообщения, сохранения авторства и безопасности данных в электронной почте.
Для эксплуатации уязвимости злоумышленнику нужен доступ к почтовому ящику пользователя, либо перехватить S/MIME сообщение пользователя, осуществив атаку в стиле Man in the middle.
Почему уязвим S/MIME
Атака eFail возможна потому, что в S/MIME отсутствует шифрование с аутентификацией. Особенности режимов CBC и CFB и открытость протокола S/MIME (RFC-5751) позволяют внедрить (CVE-2017-17689) в исходную криптограмму блоки шифротекста, соответствующие выбранным открытым данным.
Как итог, даже если сообщение подписано, взяв из исходной CMS-структуры необходимые блоки и саму криптограмму, модифицировав ее особым образом, и отправить от «своего» имени с другой тоже с верной подписью.
Дополнительным фактором для атаки является использование писем в формате HTML. Если в письмо в таком формате добавить тег, например, «<src img=<адрес злоумышленника>/» перед содержимым зашифрованного сообщения, то HTML-парсер попробует обратиться по этому адресу для загрузки изображения, отправив содержимое сообщения в качестве URL.
Используя это, злоумышленнику не проблема модифицировать исходное шифрованное сообщение и отправить его жертве. Для осуществления атаки нужно только открыть полученное письмо.
Что с PGP?
С PGP ситуация почти аналогична, но там присутствует сжатие данных. Этот факт немного усложняет модификацию шифротекста (CVE-2017-17688). При этом, в PGP используется и MDC (modification detection code) для проверки целостности сообщения, который многие почтовые клиенты просто не проверяют.
Рекомендации для пользующихся S/MIME на алгоритмах RSA/DSA и 3DES/AES
Для популярных алгоритмов шифрования RSA/DSA и 3DES/AES проблема будет присутствовать до ее исправления непосредственно в коде почтовых клиентов, так корень уязвимости находится в самой комбинации S/MIME + HTML.
До получения от производителя вашего почтового клиента сообщения о закрытой уязвимости, не посылайте и не открывайте зашифрованные письма с конфиденциальной информацией. Знайте, что содержимое этих писем может быть доступно злоумышленникам. Для решения вопросов с конфиденциальным обменом сообщениями используйте, например, мессенджер с внушающим доверие шифрованием или прикладные приложения, пригодные для шифрования файлов.
Не стоит винить в проблеме само шифрование, оно все еще остается надежным, ненадежным стал лишь формат шифрованных сообщений электронной почты.
ГОСТ S/MIME (RFC-4490)
Поначалу кажется, что атаки, работающие не для ГОСТ-а, подойдут и для него.
Однако, есть нюанс: если размер сообщения до шифрования больше 1024 байт, то атаку в полной мере провести не получится, так как через каждый килобайт обработанных данных идет усложнение ключа (key meshing) и, в дополнение, на новом ключе шифруется инициализирующий вектор для текущего блока.
Другими словами, модифицировав криптограмму путем добавления новых блоков, при расшифровке из-за особенностей key meshing-а мы очень сильно испортим исходное сообщение.
Мы убедились,что даже для маленького текстового сообщения криптограмма всегда получается больше двух килобайт.
Все-таки, действительно, можно сказать, что почтовые клиенты с ГОСТом почти не подвержены данной уязвимости. Максимум, что может получить хакер: первый килобайт исходного HTML-письма, в который практически никогда не попадут данные, которые вы хотели бы сохранить в конфиденциальности. Все оставшиеся за пределами первого килобайта данные в сообщении будут надежно испорченными и не смогут быть прочитаны злоумышленниками.
Один из способов защититься до появления патчей почтовых клиентов: шифровать почту по ГОСТ-алгоритмам. Это не только защитит вас от атаки, но и поспособствует укреплению цифрового суверенитета нашей страны. Для этого, конечно, придется использовать специальные ГОСТ-криптопровайдеры, правильным образом настроив ваш Outlook или Thunderbird. Ну а Рутокен нужно использовать для хранения закрытых ключей, как обычно.
Все технические подробности атак есть на сайте efail.de и в официальном докладе специалистов.