IPsec
Internet Protocol Security (IPsec) — стек протоколов для безопасного обмена информацией по IP, работающий посредством аутентификации и шифрования каждого пакета сессии.
Содержание
Мотивация
Несмотря на наличие протоколов прикладного уровня, поддерживающих шифрование (например, HTTPS), они не покрывают всех возможных сценариев использования, и наличие шифрования на сетевом уровне зачастую обеспечивает бóльшую гибкость.
Архитектура
IPSec состоит из следующих протоколов:
Протоколы защиты передаваемых данных
Authentification Header (RFC 2402)
Добавляет в IP-пакет заголовок, обеспечивающий целостность путём проверки того, что ни один бит в защищаемой части пакета (весь пакет, за исключением полей вроде TTL и контрольной суммы заголовка) не был изменён во время передачи. Это создаёт проблемы при использовании NAT, так как он меняет содержимое пакета, подменяя обратный адрес на свой. NAT мог бы подменить и контрольную сумму, но при её подсчёте используется Integrity Check Value — секретное значение (ключ), известное на обоих концах до начала передачи (см. ниже). Таким образом, использовать AH за NAT не представляется возможным.
Encapsulating Security Payload (RFC 2406)
Инкапсулирующий протокол безопасности, который обеспечивает и целостность, и конфиденциальность. В режиме транспорта ESP заголовок находится между оригинальным IP заголовком и заголовком TCP или UDP. В режиме туннеля заголовок ESP размещается между новым IP заголовком и полностью зашифрованным оригинальным IP пакетом.
Так как ESP не создаёт препятствий при использовании NAT, то он более распространён, чем AH.
Протокол обмена ключами — IKE (RFC 2409)
Internet Key Exchange — стандартный протокол IPsec, используемый для первоначальной аутентификации сторон и обмена ключами. Процесс работы IKE можно разбить на две фазы.
Первая фаза
Первая фаза, в свою очередь, может проходить в двух режимах: основном и агрессивном.
Основной режим (Main mode)
- Стороны согласуют базовые алгоритмы и используемые хеш-функции (может использоваться MD5, функции семейства SHA и другие).
- Осуществляется обмен открытыми ключами в рамках алгоритма Диффи — Хеллмана и псевдослучайными числами (nonce), которые подписываются принимающими сторонами и отправляются обратно для идентификации.
- Наконец, в ходе третьего обмена по пришедшим обратно подписанным значениям nonce проверяется подлинность сторон.
Агрессивный режим (Aggressive Mode)
Этот режим обходится меньшим числом обменов и, соответственно, числом пакетов. В первом сообщении помещается практически вся нужная для установления IKE SA информация: открытый ключ Диффи —Хеллмана, для синхронизации пакетов, подтверждаемое другим участником, идентификатор пакета. Получатель посылает в ответ всё, что надо для завершения обмена. Первому узлу требуется только подтвердить соединение.
Вторая фаза
Вторая фаза происходит после создания безопасного канала в ходе первой фазы в одном режиме — быстром (Quick Mode). В её ходе согласуется общая политика IPsec, происходит обмен общими секретные ключи для алгоритмов протоколов IPsec (AH или ESP), устанавливается IPsec Security Association. Использование последовательных номеров обеспечивает защиту от атак повторной передачи. Также быстрый режим используется для пересмотра текущей IPsec SA и выбора новой, когда время жизни SA истекает. Стандартно быстрый режим проводит обновление общих секретных ключей, используя алгоритм Диффи — Хеллмана из первой фазы.