В протоколе HTTPS обнаружена серьёзная уязвимость, которой подвержены почтовые и веб-серверы, платёжные системы и другие онлайн-сервисы, требующие авторизации. По мнению автора исследования Надии Хенинджер (Nadia Heninger) из Университета Пенсильвании, она могла использоваться АНБ для получения доступа к зашифрованным данным, в том числе – передаваемых посредством VPN.
На транспортном уровне безопасность соединения при подключении по HTTPS должна обеспечиваться криптографическим протоколом TLS, который пришёл на смену SSL v.3.0 и последний раз обновлялся в 2008 году. Его уязвимость связана с ограничениями, которые по требованию правительства США ещё в середине девяностых были использованы разработчиками в отношении алгоритма Диффи-Хеллмана. Ирония в том, что в TLS он вводился как дополнительная мера безопасности и применялся для передачи общего секретного ключа по незащищенным от прослушивания каналам связи.

Обнаруженная уязвимость получила названием Logjam (затор). Она позволяет злоумышленникам вклиниться между клиентом и сервером с поддержкой обмена секретными ключами по алгоритму Диффи-Хеллмана. Используя модифицированные запросы, возможно заставить сервер использовать во всех соединениях слабый ключ длиной 512 бит.
Атака базируется на алгоритме факторизации больших целых чисел под названием «общий метод решета числового поля» и требует выполнения значительного количества предварительных вычислений. Однако за прошедшие с момента внедрения HTTPS двадцать лет задача перестала быть достаточно сложной для 512-битных ключей. Автор исследования выполнял факторизацию на компьютерах университетского кампуса, и за две недели получил два самых распространённых ключа (их использовали 92% сайтов).

При доступе к специализированным конфигурациям с векторными ускорителями (в том числе на базе топовых видеокарт) или ПЛИС подбор ключа упрощается на порядок. Правительственные агентства имеют доступ к суперкомпьютерам из TOP 500 и могут выполнять эту атаку как рутинную операцию. Заставив сервер использовать слабый ключ и подобрав его, можно использовать классический метод атаки «человек посередине» для перехвата и (опционально) модификации всего «защищённого» трафика.
Просканировав несколько миллионов узлов из адресного пространства IPv4, Хенинджер приходит к выводу, что атака на протокол HTTPS http://arstechnica.com/security/2015/05/https-crippling-attack-threatens-tens-of-thousands-of-web-and-mail-servers/ затрагивает примерно 8,4 процента из первого миллиона самых популярных сайтов и чуть больший процент почтовых серверов. В частности, те из них, которые поддерживают протокол StartTLS, а также безопасную авторизацию POP3 или IMAP. По её оценкам, среди них сейчас уязвимы соответственно 14,8%, 8,9% и 8,4% почтовых серверов.
Особенность атаки в том, что она долго остаётся незаметной и может происходить в режиме реального времени. Хенинджер уверена: в АНБ её использовали годами. Мы знаем, что Сноуден обнародовал свыше 1,7 млн секретных файлов, а лёгкость атаки на одну из популярных реализаций HTTPS проливает свет на то, как именно их могло получить агентство.
Проблема состоит ещё и в том, что схожий метод компрометации ключей может использоваться против любых серверов, которые поддерживают обмен ключами по протоколу Диффи-Хеллмана (DH). В теории он позволяет двум сторонам передать секретный ключ по незащищённому каналу связи, но на практике не должен использоваться как самодостаточный метод. В надёжных системах дополнительно используется двусторонняя аутентификация или реализация DH на эллиптических кривых (ECDHE).

Политика администрации Клинтона позволяла без проблем шпионить за иностранными субъектами, которые были уверены в надёжности шифрования трафика. «Logjam снова показал нам, насколько ужасна идея умышленного ослабления криптографических продуктов, на которой настаивает ФБР и другие правительственные агентства, – комментирует один из авторов исследования Алекс Хальдерман (J. Alex Halderman). – Из-за политики экспортных ограничений эпохи девяностых, сегодня мы сталкиваемся с широко распространёнными бэкдорами. Они делают уязвимой большую часть интернета и подрывают основы обеспечения информационной безопасности».
При использовании ключей с длиной от 2048 бит протокол Диффи-Хеллмана сильно усложняет расшифровку защищённого трафика, поскольку злоумышленникам приходится каждый раз получать новый ключ и факторизовать его. Это существенно повышает безопасность HTTPS по сравнению с другими ассиметричными схемами шифрования, где ключ передаётся только один раз (например, RSA). Однако многие серверы легко принуждаются к использованию слабых ключей, а их клиенты даже не знают об этом.

По идее, о слабом шифровании на сервере пользователя должен предупреждать браузер. Пока соответствующая функция была добавлена только в Internet Explorer, но Хенинджер уверяет, что производители других популярных браузеров тоже вскоре выпустят обновления. В частности, результаты своих исследований она направила разработчикам Firefox, Chrome и Safari.
По своей сути Logjam похож на другую атаку – FREAK (Factoring attack on RSA-EXPORT Keys), продолжившую список уязвимостей в OpenSSL и также снижающую защищённость HTTPS-подключения за счёт принудительного использования слабого шифрования. Она затронула 36,7% сайтов с поддержкой HTTPS. После выхода обновлений их число снизилось до 6,5%. Не все администраторы оперативно закрывают дыры в безопасности, не говоря уже о пользователях.
Проверить сайт на подверженность атаке FREAK можно на сайте Keycdn. Для проверки на уязвимость к атаке Logjam воспользуйтесь сайтом WeakDH.