Протокол IPSec (IP Security) – стандарт, который определяет способ настройки сети VPN в защищенном режиме с помощью протокола IP. IPSec не жестко связан с конкретными методами шифрования и аутентификации, алгоритмами обеспечения безопасности или технологией обмена ключами – возможно включение новых алгоритмов.
Механизм IPSec решает следующие задачи:
аутентификацию пользователей или компьютеров при инициализации защищенного канала;
шифрование и аутентификацию данных, передаваемых между конечными точками защищенного канала;
автоматическое снабжение конечных точек канала секретными ключами, необходимыми для работы протоколов аутентификации и шифрования данных.
IPSec включает в себя три протокола, каждый со своими функциями:
ESP (Encapsulating Security Payload) – безопасная инкапсуляция полезной нагрузки) занимается непосредственно шифрованием данных, а также может обеспечивать аутентификацию источника и проверку целостности данных;
AH (Authentication Header – заголовок аутентификации) отвечает за аутентификацию источника и обеспечивает целостность путем проверки того, что ни один бит в защищаемой части пакета не был изменен во время передачи, и последующую проверку подлинности передаваемых данных.
Однако использование AH может вызвать проблемы при прохождении пакета через NAT-устройство. Так как протокол АН выполняет проверку целостности всего пакета, включая заголовок доставки, а при переходе через NAT меняется IP-адрес в этом заголовке, то на приемной стороне контрольная сумма такого пакета не будет соответствовать контрольной первоначально рассчитанной контрольной сумме в пакете. Также стоит отметить, что AH разрабатывался только для обеспечения аутентификации и проверки целостности. Он не гарантирует конфиденциальность путем шифрования содержимого пакета;
IKE (Internet Key Exchange protocol – протокол обмена ключами) – протокол, используемый для первичной настройки соединения, взаимной аутентификации конечными узлами друг друга и обмена секретными ключами.
Используется для формирования безопасного вспомогательного канала между двумя узлами, называемого IKE SECURITY ASSOCIATION (IKE SA);
SA (Security Association) представляет собой набор параметров защищенного соединения (например, алгоритм шифрования, хеш-функцию ключ шифрования), который может использоваться обеими сторонами соединения. У каждого соединения есть ассоциированный с ним SA. SA создаются парами, так как каждая SA – это однонаправленное соединение, а данные необходимо передавать в двух направлениях. Полученные пары SA хранятся на каждом узле.
Так как каждый узел способен устанавливать несколько туннелей с другими узлами, каждый SA имеет уникальный номер, позволяющий определить, к какому узлу он относится. Этот номер называется SPI (Security Parameter Index) или индекс параметра безопасности.
SA храняться в базе данных (БД) SAD (Security Association Database).
Каждый узел IPSec также имеет вторую БД – SPD (Security Policy Database), содержащую настроенную политики безопасности узла. SPD служит для соотнесения приходящих IP-пакетов с правилами обработки для них. Большинство VPN-решений разрешают создание нескольких политик с комбинациями подходящих алгоритмов для каждого узла, с которым нужно установить соединение.
Работа протокола IKE выполняется в две фазы.
Первая фаза IKE может проходить в одном из двух режимов.
Основнойрежимсостоит из трех двусторонних обменов между отправителем и получателем:
во время первого обмена согласуются алгоритмы и хеш-функции, которые будут использоваться для защиты IKE соединения, посредством сопоставления IKE SA каждого узла;
используя алгоритм Диффи – Хеллмана, стороны обмениваются общим секретным ключом. Также узлы проверяют идентификацию друг друга путем передачи и подтверждения последовательности псевдослучайных чисел;
проверяется идентичность противоположной стороны.
В результате выполнения основного режима создается безопасный вспомогательный туннель для последующего ISAKMP – обмена (этот протокол определяет порядок действий для аутентификации соединения узлов, создания и управления SA, генерации ключей.