IPsec – это на самом деле целый фреймворк, который предоставляет следующие сервисы:
- Конфиденциальность данных посредством их шифрования алгоритмами DES, 3DES и AES;
- Целостность данных и их аутентификация посредством HMAC функций MD5 и SHA-1;
- Защита от атак типа MitM с помощью зашифрованных порядковых номеров;
- Аутентификация устройств и пользователей.
Фреймворк IPsec описан в нескольких RFC. У него есть две группы стандартов:
- ISAKMP/IKE/Oakley/SKEME используются для создания безопасных соединений, по которым проводится изначальное согласование параметров шифрования, сигнатур, ключей;
- AH и ESP используются непосредственно в таких механизмах защиты данных, как обеспечение конфиденциальности (только ESP), целостность данных, подтверждение того, что данные пришли из валидного источника и защиту от mitm атак.
IPsec VPN:
Конечные устройства или пользователи проходят пять начальных шагов для установки соединения:
- Должно быть что-то, что инициирует процесс установки соединения. К примеру трафик до назначения, которое описано в ACL. Естественно, соединение может быть установлено чуткими нежными руками сетевых инженеров.
- IPsec в процессе ISAKMP/IKE Phase 1 установит безопасное управляющее соединение, которое будет использоваться для последующего обмена информацией, необходимой для установки защищенного канала передачи данных. Соединения первой фазы – служебные соединения. По этим каналам не передаются какие-либо пользовательские данные или данные приложений.
- Через служебный канал конечные устройства согласуют параметры, необходимые для созданиях защищенных каналов передачи данных и устанавливают их.
- Как только защищенный канал передачи данных создан, устройства могут начинать передачу информации. Если используются HMAC функции, источник создает fingerprint, а получатель его проверяет. Если нужно шифрование – источник, соответственно, зашифровывает информацию, получатель ее расшифровывает.
- И каналы передачи данных, и управляющие каналы имеют время жизни, по истечении которого соединение будет разорвано. Если вам все еще необходимо передавать информацию, то они перестроятся автоматически.
Security Assotiation (SA) – группировка компонентов безопасности (алгоритмы шифрования, HMAC функции, время жизни соединения, DH группы, AH/ESP протоколы, различные идентификаторы, такие как SPI), которые необходимы для установки надежного канала передачи данных.
Процесс установки соединений для l2l:
- Происходит инициация соединения;
- Начало ISAKMP/IKE Phase 1 – соседи договариваются о том, как управляющее соединение будет защищено;
- С использованием DH алгоритма соседи обмениваться ключами, которые необходимы для алгоритмов шифрования и работы HMAC функций;
- Происходит аутентификация устройств;
- Phase 1 на этом заканчивается, начинается ISAKMP/IKE Phase 2. Соседи согласовывают параметры и ключи необходимые для защиты канала передачи данных (либо через управляющее соединение, либо с использованием алгоритма DH снова);
- Phase 2 заканчивается и устанавливается защищенный канал передачи данных;
- По истечению времени жизни, канал передачи данных должен быть перестроен.
С Remote Access VPN все несколько сложнее, так как дополнительно вам может понадобится аутентификация пользователей или необходимость применить какие-либо политики.
Для Remote Access VPN это будет выглядеть так:
- Происходит инициация соединения;
- Начало ISAKMP/IKE Phase 1 – соседи договариваются о том как управляющее соединение будет защищено;
- С использованием DH алгоритма соседи обмениваться ключами, которые необходимы для алгоритмов шифрования и работы HMAC функций;
- Происходит аутентификация устройств;
- Опционально: происходит аутентификация пользователя (стандарт XAUTH).
- На это шаге проходит применение политик. У Cisco это называется IKE Mode Config или IKE Client Config. Процесс изменяется от производителя к производителю, но смысл остается примерно один: клиент получает внутренний IP, имя домена, DNS, WINS, политики split tunnel, политики МСЭ и другие.
- Опционально: в Cisco Remote Access VPNs происходит Reverse Route Injection (смысл в том, что клиент рассказывает о своих маршрутах VPN терминатору).
- Phase 1 на этом заканчивается, начинается ISAKMP/IKE Phase 2. Соседи согласовывают параметры и ключи необходимые для защиты канала передачи данных (либо через управляющее соединение, либо с использованием алгоритма DH снова);
- Phase 2 заканчивается и устанавливается защищенный канал передачи данных;
- По истечении времени жизни канал передачи данных должен быть перестроен.
Теперь поговорим подробнее про фазы 1 и 2.
ISAKMP/IKE Phase 1
Как уже было сказано выше, в процессе первой фазы устанавливается управляющее соединение. Используется 500 udp порт (4500 в случае NAT-T). Вне зависимости от того, является ли VPN l2l или remote access во время первой фазы происходит следующее:
- Соседи согласовывают защиту управляющего соединения.
- Соседи используют алгоритм DH для распространения ключей, которые будут защищать это соединение.
- Соседи производят аутентификацию друг друга до начала фазы 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).