IPsec VPNs – теория

IPsec – это на самом деле целый фреймворк, который предоставляет следующие сервисы:

  • Конфиденциальность данных посредством их шифрования алгоритмами DES, 3DES и AES;
  • Целостность данных и их аутентификация посредством HMAC функций MD5 и SHA-1;
  • Защита от атак типа MitM с помощью зашифрованных порядковых номеров;
  • Аутентификация устройств и пользователей.

Фреймворк IPsec описан в нескольких RFC. У него есть две группы стандартов:

  • ISAKMP/IKE/Oakley/SKEME используются для создания безопасных соединений, по которым проводится изначальное согласование параметров шифрования, сигнатур, ключей;
  • AH и ESP используются непосредственно в таких механизмах защиты данных, как обеспечение конфиденциальности (только ESP), целостность данных, подтверждение того, что данные пришли из валидного источника и защиту от mitm атак.

IPsec VPN:

Конечные устройства или пользователи проходят пять начальных шагов для установки соединения:

  1. Должно быть что-то, что инициирует процесс установки соединения. К примеру трафик до назначения, которое описано в ACL. Естественно, соединение может быть установлено чуткими нежными руками сетевых инженеров.
  2. IPsec в процессе ISAKMP/IKE Phase 1 установит безопасное управляющее соединение, которое будет использоваться для последующего обмена информацией, необходимой для установки защищенного канала передачи данных. Соединения первой фазы – служебные соединения. По этим каналам не передаются какие-либо пользовательские данные или данные приложений.
  3. Через служебный канал конечные устройства согласуют параметры, необходимые для созданиях защищенных каналов передачи данных и устанавливают их.
  4. Как только защищенный канал передачи данных создан, устройства могут начинать передачу информации. Если используются HMAC функции, источник создает fingerprint, а получатель его проверяет. Если нужно шифрование – источник, соответственно, зашифровывает информацию, получатель ее расшифровывает.
  5. И каналы передачи данных, и управляющие каналы имеют время жизни, по истечении которого соединение будет разорвано. Если вам все еще необходимо передавать информацию, то они перестроятся автоматически.

Security Assotiation (SA) – группировка компонентов безопасности (алгоритмы шифрования, HMAC функции, время жизни соединения, DH группы, AH/ESP протоколы, различные идентификаторы, такие как SPI), которые необходимы для установки надежного канала передачи данных.

Процесс установки соединений для l2l:

  1. Происходит инициация соединения;
  2. Начало ISAKMP/IKE Phase 1 – соседи договариваются о том, как управляющее соединение будет защищено;
  3. С использованием DH алгоритма соседи обмениваться ключами, которые необходимы для алгоритмов шифрования и работы HMAC функций;
  4. Происходит аутентификация устройств;
  5. Phase 1 на этом заканчивается, начинается ISAKMP/IKE Phase 2. Соседи согласовывают параметры и ключи необходимые для защиты канала передачи данных (либо через управляющее соединение, либо с использованием алгоритма DH снова);
  6. Phase 2 заканчивается и устанавливается защищенный канал передачи данных;
  7. По истечению времени жизни, канал передачи данных должен быть перестроен.

С Remote Access VPN все несколько сложнее, так как дополнительно вам может понадобится аутентификация пользователей или необходимость применить какие-либо политики.

Для Remote Access VPN это будет выглядеть так:

  1. Происходит инициация соединения;
  2. Начало ISAKMP/IKE Phase 1 – соседи договариваются о том как управляющее соединение будет защищено;
  3. С использованием DH алгоритма соседи обмениваться ключами, которые необходимы для алгоритмов шифрования и работы HMAC функций;
  4. Происходит аутентификация устройств;
  5. Опционально: происходит аутентификация пользователя (стандарт XAUTH).
  6. На это шаге проходит применение политик. У Cisco это называется IKE Mode Config или IKE Client Config. Процесс изменяется от производителя к производителю, но смысл остается примерно один: клиент получает внутренний IP, имя домена, DNS, WINS, политики split tunnel, политики МСЭ и другие.
  7. Опционально: в Cisco Remote Access VPNs происходит Reverse Route Injection (смысл в том, что клиент рассказывает о своих маршрутах VPN терминатору).
  8. Phase 1 на этом заканчивается, начинается ISAKMP/IKE Phase 2. Соседи согласовывают параметры и ключи необходимые для защиты канала передачи данных (либо через управляющее соединение, либо с использованием алгоритма DH снова);
  9. Phase 2 заканчивается и устанавливается защищенный канал передачи данных;
  10. По истечении времени жизни канал передачи данных должен быть перестроен.

Теперь поговорим подробнее про фазы 1 и 2.

ISAKMP/IKE Phase 1

Как уже было сказано выше, в процессе первой фазы устанавливается управляющее соединение. Используется 500 udp порт (4500 в случае NAT-T). Вне зависимости от того, является ли VPN l2l или remote access во время первой фазы происходит следующее:

  1. Соседи согласовывают защиту управляющего соединения.
  2. Соседи используют алгоритм DH для распространения ключей, которые будут защищать это соединение.
  3. Соседи производят аутентификацию друг друга до начала фазы 2.

Пройти эти три шага можно двумя способами: main mode и aggresive mode.

Main mode

Режим по умолчанию у Cisco для l2l соединений и remote access с использованием цифровых сертификатов. Представляет собой двухсторонний обмен 6ю пакетами в общей сложности. Три шага этого обмена описаны выше. Преимуществом метода является факт аутентификации по уже защищенному каналу.

Aggressive mode

Режим по умолчанию в Cisco Remote Access VPN с использование pre-shared ключей. В это режиме остается только два шага: обмен списком возможных способов защиты управляющего соединения, открытый ключ, сгенерированный в процессе работы алгоритма DH, информация, которая позволяет идентифицировать устройство и ее fingerprint. Все в одном пакете :) Второй шаг – подтверждение получения пакета и обмен зашифрованными DH ключами.

ISAKMP/IKE Transforms (transform sets)

Transform set – список мер по обеспечению безопасности, которые должны быть применены. Иногда в литературе и интернетах можно встретить IKE или ISAKMP policy/proposal.

Меры, которые могут присутствовать в Phase 1 transoform set:

  • Алгоритм шифрования – DES, 3DES, AES
  • HMAC функция – MD5, SHA-1
  • Тип аутентификации – pre-shared ключи, RSA псевдорандомные последовательности (RSA encrypted nounces) или RSA сертификаты (RSA signatures)
  • DH группа
  • Время жизни

То есть все, о чем мы говорили до этого, когда речь шла о VPN в общем ключе. Я не буду снова говорить про типы аутентификации, HMAC и алгоритмы шифрования, так как об этом не раз упоминалось выше.

Однако позволю себе сказать пару слов про аутентификацию. Помните в первой части мы говорили про симметричные и асимметричные ключи? Так вот, pre-shared key и RSA nounces (crypto key generate rsa []) и есть те самые симметричные и асимметричные ключи. В remote access cisco vpn, к слову, используются так называемые групповые ключи, которые позволяют применять политики на группу пользователей.

Особенности Remote Access VPN

Пара слов про XAUTH – представляет собой надстройку над IPsec и позволяет помимо аутентификации групп использовать аутентификацию пользователей. Согласитесь, не очень логично менять пароли всем пользователям в группе если один из них потерял ноутбук или смартфон. Ну и смачным плюсом может стать аутентификация с использованием внешней базы пользователей (например RADIUS).

IKE Client/Mode Config – второй шаг, отличающий l2l от remote access vpns, который позволяет накатывать некоторые политики пользователю:

  • Внутренний IP клиента (вручную или с помощью шлюза)
  • Тип соединения (client to network или lan extension)
  • DNS имя домена и DNS сервера
  • WINS сервер
  • Split tunnel
  • Политики МСЭ
  • Split DNS политики 
  • Список резервных IPsec шлюзов

В процессе инициации соединения устройства обмениваются всеми transform set’ами и сосед ищет совпадение со своим set’ом. Если совпадения не будут найдены, то соединение просто не установится (за исключением времени жизни, будет использоваться наименьшее).

ISAKMP/IKE Phase 2

Управляющее соединение построено, пора приступит к тому, ради чего все это было затеяно – установить защищенное соединение передачи данных.

В отличии от Phase 1 у Phase 2 есть только одна фаза – quick mode, в процессе которого происходит согласование параметров для защиты подключения, а так же периодическое его обновление. Следует так же отметить, что результатом этой фазы становятся два односторонних подключения, которые могут использовать разные алгоритмы шифрования (R1>R2 3DES, R2>R1 DES).

Протоколы безопасности второй фазы (AH, ESP)

Различия между AH и ESP:

Что AH ESP
Номер IP протокола 51 50
Целостность данных Да Да
Аутентификация данных Да Да
Шифрование данных Нет Да
Защита от MitM Да Да
Преодоление NAT Нет Да
Преодоление PAT Нет Нет*
Защищает IP пакет Да Нет
Защищает только данные Нет Да

* некоторые SOHO маршрутизаторы таки умеют пробрасывать ESP трафик через PAT, однако эта фича отличается от вендора к вендору и от модели к модели.

Методы подключения второй фазы – transport и tunnel mode. О них подробно рассказано в первой части.

Phase 2 Transforms (transform sets)

По смыслу это тот же список мер по обеспечению безопасности, однако набор, по понятным причинам, отличается. Это:

  • Протокол безопасности (AH или ESP);
  • Метод подключения (tunnel или transport mode);
  • Для ESP – алгоритм шифрования (без шифрования, DES, 3DES, AES-[128|192|256]);
  • HMAC функция (опционально для ESP).