Введение

Интернет-протокол
В вычислительной технике, обмен ключами в Интернете (IKE, версии IKEv1 и IKEv2) — это протокол, используемый для установления ассоциации безопасности (SA) в наборе протоколов IPsec. IKE основан на протоколах Oakley и ISAKMP. IKE использует сертификаты X.509 для аутентификации — либо предварительно согласованные, либо распространяемые с использованием DNS (предпочтительно с DNSSEC) — и обмен ключами Диффи — Хеллмана для создания общего секрета сеанса, из которого выводятся криптографические ключи. Кроме того, необходимо вручную поддерживать политику безопасности для каждого узла, который будет подключаться. Протокол ISAKMP (Ассоциация по безопасности Интернета и протокол управления ключами) был определён ранее. Затем был определён протокол IKE. В декабре 2005 года IKE был обновлён до версии два (IKEv2), в октябре 2006 года были уточнены некоторые детали. В сентябре 2010 года эти два документа, а также дополнительные разъяснения, были объединены в обновлённый IKEv2. Позднее обновление повысило статус документа с Предложенного стандарта до Интернет-стандарта, опубликованного в октябре 2014 года. Родительская организация IETF, Интернет-общество (ISOC), сохраняет авторские права на эти стандарты, предоставляя их в свободный доступ интернет-сообществу.

Архитектура

Большинство реализаций IPsec состоят из IKE-демона, работающего в пользовательском пространстве, и стека IPsec в ядре, который обрабатывает фактические IP-пакеты. Деймоны пользовательского пространства имеют простой доступ к хранилищу, содержащему конфигурационную информацию, такую как адреса конечных точек IPsec, ключи и сертификаты, по мере необходимости. Модули ядра, с другой стороны, могут эффективно обрабатывать пакеты с минимальными накладными расходами, что важно для производительности. Протокол IKE использует UDP-пакеты, обычно на порту 500, и обычно требует 4–6 пакетов с 2–3 обменами данными для создания ассоциации безопасности ISAKMP (SA) с обеих сторон. Затем согласованный ключевой материал передается в стек IPsec. Например, это может быть ключ AES, информация, идентифицирующая IP-конечные точки и порты, которые необходимо защитить, а также тип созданного IPsec-туннеля. Стек IPsec, в свою очередь, перехватывает соответствующие IP-пакеты при необходимости и выполняет шифрование/дешифрование по мере необходимости. Способы перехвата пакетов различаются в разных реализациях: например, некоторые используют виртуальные устройства, другие используют часть функциональности брандмауэра и т. д. IKEv1 состоит из двух фаз: фазы 1 и фазы 2.

Уязвимости

Просочившиеся в 2014 году презентации АНБ, опубликованные Der Spiegel, указывают на то, что IKE эксплуатируется неизвестным способом для расшифровки трафика IPsec, как и ISAKMP. Исследователи, обнаружившие атаку Logjam, утверждают, что взлом 1024-битной группы Диффи — Хеллмана скомпрометирует 66% VPN-серверов, 18% из миллиона наиболее популярных доменов HTTPS и 26% SSH-серверов, что, по мнению исследователей, соответствует данным утечек. Это утверждение было опровергнуто в 2015 году Эялом Роненом и Ади Шамиром в их работе "Критический обзор несовершенной прямой секретности", а также Полом Воутерсом из Libreswan в статье 2015 года "66% VPN на самом деле не взломаны".

Конфигурации IPsec VPN, допускающие согласование нескольких конфигураций, уязвимы для MITM-атак с понижением версии между предлагаемыми конфигурациями, как в IKEv1, так и в IKEv2. Этому можно противодействовать путем тщательного разделения клиентских систем на несколько точек доступа к сервисам с более строгими настройками. Обе версии стандарта IKE подвержены атаке перебором по словарю в автономном режиме при использовании пароля с низкой энтропией. Для IKEv1 это справедливо как для основного, так и для агрессивного режима.