Подробности атаки на шифрование PGP и S/MIME в почтовых клиентах

14 мая 2018 года

Исследователи раскрыли ( PDF (Архивная копия от 21 мая 2018 на Wayback Machine)) детали уязвимости в системах шифрования электронной почты, не дожидаясь намеченного времени публикации. В целом, предположения разработчиков GnuPG оказались верными, а предупреждение о критичности слишком преувеличенными. Предложено два варианта MITM-атаки на почтовые клиенты с поддержкой HTML, которые автоматически загружают данные из внешних ресурсов (например, картинки и CSS).

Первый вариант атаки производится через модификацию транзитного сообщения, в которое подставляется обращение к внешниму ресурсу при помощи тегов "img" или "style", подставляемых в незашифрованные части HTML-писем (MIME-заголовки). Обращающийся к внешнему хосту атакующего тег открывается до начала шифрованного MIME-блока, а закрывается после него (см. пример ниже).

Почтовый клиент с проблемным MIME-парсером при открытии письма дешифрует шифротекст, а затем разбирая HTML отправляет уже расшифрованный текст в составе подставленного атакующими тега. Проблема проявляется только в почтовых клиентах, которые объединяют содержимое всех MIME-частей multipart-сообщения, смешивая шифрованные и незашифрованные части. Например, такое поведение свойственно Apple Mail, iOS Mail и Thunderbird.

Второй вариант атаки отталкивается от уязвимостей в спецификациях S/MIME (CVE-2017-17689) и OpenPGP (CVE-2017-17688). В случае S/MIME атакующий может организовать дешифровку нескольких email, отправив специально изменённое email-сообщение жертве. Для PGP без поддержки MDC атаку совершить сложнее и успешной оказываются только треть попыток, так как перед шифрованием в PGP открытый текст сжимается. Как и в первом варианте в сообщение вставляется HTML-тег, обращающийся к подконтрольному атакующему хосту.

Атака базируется на подмене блоков шифротекста, манипулируя изначально известными блоками данных при использовании режимов CBC и CFB. Зная открытый текст, в режиме CBC атакующий может выборочно изменить блоки. В большинстве случаев при использовании S/MIME в составе исходного текста присутствует строка "Content-type: multipart/signed", т.е. атакующий уже знает содержимое как минимум одного полного блока. Следом атакующий может сформировать блок, содержащий только нули. Пара из изначально известного блока и нулевого блока обозначается как CBC-гаджет.

В ходе атаки CBC-гаджет используется для включения в состав зашифрованного текста данных атакующего. В отличие от первого варианта таки, CBC-гаджет позволяет встроить img-тег атакующего непосредственно в состав зашифрованного текста и создать единую зашифрованную MIME-часть, содержимое которой отправляется на внешний хост при разборе HTML после открытия письма пользователем. Для режима CFB, который применяется в OpenPGP, метод атаки аналогичен режиму CBC.

Некоторые факты:

  • Уязвимость связана с типовыми недоработками в отдельных почтовых клиентах. Проведение первого варианта атаки без участия пользователя возможно только в Apple Mail и iOS Mail, уязвимости подвержены также PostBox, MailMate и Thunderbird, но в них для атаки требуется совершение пользователем определённых действий. Второй вариант атаки с PGP эффективен в Outlook 2007 с GPG4Win, Thunderbird с Enigmail, Apple Mail c GPGTools, Roundcube и ещё в 6 менее известных клиентах. Второй вариант атаки с S/MIME охватывает почти все протестированные клиенты, за исключением Mutt и Claws Mail;
  • Для успешной атаки требуется контроль за трафиком или архивом сообщений жертвы (MITM, взлом почтового сервера или захват учётной записи). При наличии доступа к учётной записи, атакующий может расшифровать ранее полученные пользователем зашифрованные сообщения, путём их модификации и повторной отправки пользователю с применением одной из вышеизложенных атак.
  • Реализации OpenPGP с MDC (GnuPG) проблеме не подвержены, если почтовый клиент учитывает код проверки MDC. В S/MIME (RFC 5751) поддержка аутентифицированного шифрования не предоставляется, что требует внесения изменений в спецификацию S/MIME для устранения уязвимости. В OpenPGP (RFC 4880) спецификация предоставляет возможность аутентифицированного шифрования (MDC), которое позволяет выявить подмену CFB-блоков (поддержка MDC реализована в GnuPG в 2001 году, но при выводе через pipe для определения подмены требуется анализ кода возврата, что многие почтовые клиенты не делают).
  • Наиболее эффективными методами защиты являются отключение поддержки HTML в почтовом клиенте и организация расшифровки не силами почтового клиента, а путём ручного копирования шифротекста в отдельное приложение.

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Подробности атаки на шифрование PGP и S/MIME в почтовых клиентах», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.