Современная электронная почта остается одним из самых распространенных способов коммуникации во всем мире. Люди доверяют ей важные сообщения, бизнес-переписку, конфиденциальную информацию и личные данные. Для обеспечения безопасности и приватности применяются технологии шифрования, среди которых особо выделяются OpenPGP и S/MIME — механизмы, гарантирующие энд-ту-энд защиту сообщений. Однако в 2018 году стало известно об опасной уязвимости под названием EFAIL, которая способна раскрывать исходный текст зашифрованных писем посредством уязвимостей в обработке HTML-контента в почтовых клиентах. Глубокое понимание этой угрозы позволит повысить информационную безопасность и избежать серьезных последствий.
Электронная почта традиционно передает данные в виде текста, который при прохождении по сети может быть перехвачен. Для повышения безопасности используется защищенный транспортный уровень TLS — он шифрует передачу письма по каналам от отправителя к получателю. Но TLS не обеспечивает полноценную защиту сообщения в состоянии покоя, например, на почтовом сервере, где письма хранятся в открытом виде. Именно здесь на помощь приходят OpenPGP и S/MIME, которые добавляют дополнительный уровень защиты, шифруя содержание писем, так что даже при компрометации серверов злоумышленник не сможет прочесть содержимое корреспонденции. Однако EFAIL выявила серьезные недостатки в реализации и структуре этих систем шифрования.
Уязвимость эксплуатирует факт того, что многие почтовые клиенты позволяют отображать письма в формате HTML со встроенными элементами, такими как изображения или таблицы стилей. Злоумышленник, обладая доступом к зашифрованным письмам (например, через перехват сетевого трафика, взлом аккаунта или сервера, либо из старых архивов), изменяет содержимое письма и отправляет его обратно жертве. При открытии письма почтовый клиент расшифровывает зашифрованные данные и одновременно загружает внешние ресурсы из изменённого HTML-кода. Запрос на эти ресурсы содержит в URL раскрытые данные текста письма, которые передаются обратно злоумышленнику. Так происходит эффективное извлечение конфиденциальной информации из зашифрованных писем.
Суть уязвимости связывается с двумя ключевыми методами атак: CBC/CFB gadget attack и прямой эксфильтрацией. Первый метод основан на криптографических особенностях режимов шифрования CBC и CFB, используемых в S/MIME и OpenPGP соответственно. Злоумышленник, регулируя зашифрованные блоки и используя известные фрагменты текста, может внедрить вредоносный HTML-код непосредственно в дешифрованный поток. Так, например, в протоколе S/MIME злоумышленник знает начало текстового блока «Content-type: multipart/signed» и с помощью специального "гаджета" (комбинации блоков) формирует изображение, URL которого содержит исходный текст. В OpenPGP ситуация схожа, хотя применение кода обнаружения модификаций (Modification Detection Code, MDC) снижает успешность атаки, но не исключает ее полностью, так как некоторые клиенты продолжают показывать модифицированный текст, лишь предупреждая пользователя о нарушении целостности.
Второй способ атаки — прямая эксфильтрация — связан с ошибками в популярных почтовых клиентах, таких как Apple Mail, iOS Mail и Mozilla Thunderbird. Здесь злоумышленник создает составное письмо из нескольких частей, где одна часть содержит открытый HTML-код с не закрытыми тегами, а следующая — зашифрованный текст. Почтовый клиент, собирая части формирования письма, формирует URL, в котором фактически оказываются данные исходного текста, и делает запрос на сервер злоумышленника. Таким образом, несмотря на шифрование, информация выводится наружу простейшим методом. Эти уязвимости оказались критичными, особенно для таких пользователей, как журналисты, политические активисты, правозащитники и все, кто полагается на защиту своих сообщений дополнительной криптографией для борьбы с прослушкой со стороны мощных атакующих — например, государственных спецслужб.
Параллельно уязвимости затрагивают корпоративные сети, где S/MIME широко применяется для защиты служебной переписки. Стоит понимать, что успешность атак EFAIL не означает, что злоумышленник может прочитать письмо в любой ситуации. Для атаки необходим доступ к зашифрованному письму, а также возможность отправить специально измененное сообщение жертве. Без доступа к зашифрованным данным атака невозможна. Однако для пользователей, ценящих уровень защищенности, сама эта возможность серьезно подрывает доверие к текущим решениям.
Основные рекомендации по защите от EFAIL строятся на принципах уменьшения риска исполнения вредоносного HTML-кода и изоляции процесса шифрования/дешифрования от почтового клиента. Первый и наиболее простой способ — отключение отображения HTML-писем. Это позволяет заблокировать главный канал утечки, хотя многие пользователи предпочитают HTML за удобство форматирования и визуальную привлекательность. Также рекомендуется не хранить приватные ключи в почтовом клиенте, а выполнять дешифровку в отдельном приложении, куда вручную копируется зашифрованный текст. Со стороны разработчиков и стандартов было выпущено несколько обновлений и рекомендаций.
В частности, OpenPGP-стандарт начал отходить от формата SE-пакетов не защищенных MDC, чтобы затруднить подобные атаки. Также вводятся более безопасные режимы шифрования с использованием аутентифицированного шифрования (AES-GCM) и ограничений на обработку нескольких частей в MIME-сообщениях. Однако изменения стандартов и массовое их внедрение займут время. Важным аспектом остается актуальная проверка почтовых клиентов на наличие патчей и обновлений, закрывающих уязвимости EFAIL. Однако фиксами можно только снизить риск, полностью исключить уязвимость позволяет только отказ от рискового функционала, связанного с автоматическим выполнением активного HTML-кода в зашифрованных письмах.
Дополнительную сложность создает то, что EFAIL не зависит от механизмов защиты подлинности сообщений, таких как SPF, DKIM или DMARC. Эти технологии позволяют подтвердить подлинность отправителя и защититься от подделки адреса, но не предотвращают внедрение вредоносного HTML в уже зашифрованное письмо. Следовательно, даже идеально настроенные политики по аутентификации сообщений не помогут против EFAIL. Уязвимость EFAIL стала важным уроком для сообщества по защите электронной почты. Она показывает, что криптография — это лишь часть общей безопасности системы, а внимание следует уделять всей цепочке: от протоколов до конечных приложений и пользовательского интерфейса.
Тщательный анализ и тестирование, а также просвещение пользователей о рисках и правильных практиках являются ключевыми элементами борьбы с подобными угрозами. Для тех, кто серьезно относится к безопасности переписки, оптимальной стратегией пока остается отказ от расшифровки писем напрямую в почтовом клиенте и отказ от просмотра писем в HTML-формате. Использование специализированных утилит для обработки PGP/S/MIME сообщений обеспечивает дополнительный барьер на пути злоумышленников. Следует отметить, что несмотря на найденные уязвимости, принципиальные возможности шифрования OpenPGP и S/MIME по-прежнему остаются востребованными и полезными. Задача сообщества и производителей ПО — сделать эти технологии более надежными, а конечные клиенты — безопаснее в эксплуатации.
EFAIL стала стимулом к пересмотру стандартов и усилению мер безопасности в области электронной почты. В заключение, уязвимость EFAIL подчеркивает, что даже самые продвинутые технологии шифрования могут оказаться уязвимы при комплексном анализе экосистемы и взаимодействия компонентов. Пользователям важно быть осведомленными о потенциальных рисках, пользоваться актуальными версиями программ, ограничивать включение активного контента в электронных письмах и поддерживать взвешенный подход к управлению ключами и процессу шифрования. Только такой комплексный подход обеспечит защиту конфиденциальной информации в условиях постоянно меняющихся цифровых угроз.