IPsec

Материал из Википедии — свободной энциклопедии
Текущая версия страницы покане проверялась опытными участниками и может значительно отличаться отверсии, проверенной 4 апреля 2019 года; проверки требуют28 правок.
Перейти к навигацииПерейти к поиску

IPsec (сокращение отIP Security) — наборпротоколов для обеспечения защиты данных, передаваемых по межсетевому протоколуIP. Позволяет осуществлять подтверждение подлинности (аутентификацию), проверку целостности и/илишифрование IP-пакетов. IPsec также включает в себя протоколы для защищённого обменаключами в сетиИнтернет. В основном применяется для организацииVPN-соединений.

Содержание

История

[править |править код]

Первоначально сетьИнтернет была создана как безопасная среда передачи данных между военными. Так как с ней работал только определённый круг лиц, людей образованных и имеющих представления о политике безопасности, то явной нужды построения защищённых протоколов не было. Безопасность организовывалась на уровне физической изоляции объектов от посторонних лиц, и это было оправдано, когда к сети имело доступ ограниченное число машин. Однако, когда Интернет стал публичным и начал активно развиваться и разрастаться, такая потребность появилась[1].

И в 1994 годуСовет по архитектуре Интернета (IAB) выпустил отчёт «Безопасность архитектуры Интернета». Он посвящался в основном способам защиты от несанкционированного мониторинга, подмены пакетов и управлению потоками данных. Требовалась разработка некоторого стандарта или концепции, способной решить эту проблему. В результате появились стандарты защищённых протоколов, в числе которых и IPsec. Первоначально он включал в себя три базовые спецификации, описанные в документах (RFC1825, 1826 и 1827), однако впоследствии рабочая группаIP Security Protocol IETF пересмотрела их и предложила новые стандарты (RFC2401 — RFC2412), используемые и в настоящее время.

Стандарты

[править |править код]
  • RFC 4301 (ранееRFC 2401) (Security Architecture for the Internet Protocol) — архитектура защиты для протокола IP.
  • RFC 4302 (ранееRFC 2402 )(IP Authentication header) — аутентификационный заголовок IP.
  • RFC 2403 (The Use of HMAC-MD5-96 within ESP and AH) — использование алгоритма хеширования MD-5 для создания аутентификационного заголовка.
  • RFC 2404 (The Use of HMAC-SHA-1-96 within ESP and AH) — использование алгоритма хеширования SHA-1 для создания аутентификационного заголовка.
  • RFC 2405 (The ESP DES-CBC Cipher Algorithm With Explicit IV) — использование алгоритма шифрования DES.
  • RFC 4303 (ранееRFC 2406) (IP Encapsulating Security Payload [ESP]) — шифрование данных.
  • RFC 2407 (The Internet IP Security Domain of Interpretation for ISAKMP) — область применения протокола управления ключами.
  • RFC 2408 (Internet Security Association and Key Management Protocol [ISAKMP]) — управление ключами и аутентификаторами защищённых соединений.
  • RFC 4109 (ранееRFC 2409) (Algorithms for Internet Key Exchange version 1 (IKEv1)) — обмен ключами IKEv1.
  • RFC 4306 (The Internet Key Exchange (IKEv2) protocol) — протокол обмена ключами IKEv2.
  • RFC 8247 (Algorithm Implementation Requirements and Usage Guidance  the Internet Key Exchange Protocol Version 2 (IKEv2) - правила реализации и использования криптоалгоритмов в IKEv2.
  • RFC 2410 (The NULL Encryption Algorithm and Its Use With IPsec) — нулевой алгоритм шифрования и его использование.
  • RFC 2411 (IP Security Document Roadmap) — дальнейшее развитие стандарта.
  • RFC 2412 (The OAKLEY Key Determination Protocol) — проверка соответствия ключа.

Архитектура IPsec

[править |править код]

Построение защищённого канала связи может быть реализовано на разных уровнях моделиOSI. IPsec реализован насетевом уровне.В вопросе выбора уровня реализации защищённого канала несколько противоречивых аргументов: с одной стороны, за выбор верхних уровней говорит их независимость от вида транспортировки (выбора протокола сетевого и канального уровней), с другой стороны, для каждого приложения необходима отдельная настройка и конфигурация. Плюсом в выборе нижних уровней является их универсальность и наглядность для приложений, минусом — зависимость от выбора конкретного протокола (например,PPP илиEthernet).То, что IPsec располагается на сетевом уровне, является компромиссом в выборе уровня OSI. IPsec использует самый распространённый протокол сетевого уровня —IP, что делает применение IPsec гибким — он может использоваться для защиты любых протоколов, базирующихся на IP (TCP,UDP и другие). В то же время он прозрачен для большинства приложений[2].

IPsec является набором стандартов Интернета и своего рода «надстройкой» над IP-протоколом. Его ядро составляют три протокола[3]:

  • Authentication Header (АН) обеспечивает целостность передаваемых данных,аутентификацию источника информации и функцию по предотвращениюповторной передачи пакетов
  • Encapsulating Security Payload (ESP) обеспечивает конфиденциальность (шифрование) передаваемой информации, ограничение потока конфиденциального трафика. Кроме этого, он может исполнять функции AH: обеспечить целостность передаваемых данных, аутентификацию источника информации и функцию по предотвращению повторной передачи пакетов. При применении ESP в обязательном порядке должен указываться набор услуг по обеспечению безопасности: каждая из его функций может включаться опционально.
  • Internet Security Association and Key Management Protocol (ISAKMP) — протокол, используемый для первичной настройки соединения, взаимной аутентификации конечными узлами друг друга и обменасекретными ключами. Протокол предусматривает использование различных механизмов обмена ключами, включая задание фиксированных ключей, использование таких протоколов, какInternet Key Exchange,Kerberized Internet Negotiation of Keys (RFC 4430) или записейDNS типа IPSECKEY (RFC 4025).

Также одним из ключевых понятий являетсяSecurity Association (SA). По сути, SA является набором параметров, характеризующим соединение. Например, используемые алгоритм шифрования ихеш-функция, секретные ключи, номер пакета и др.

Туннельный и транспортный режимы

[править |править код]

IPsec может функционировать в двух режимах: транспортном и туннельном.

В транспортном режиме шифруются или подписываются только данные IP-пакета, исходный заголовок сохраняется. Транспортный режим, как правило, используется для установления соединения между хостами. Он может также использоваться между шлюзами для защитытуннелей, организованных каким-нибудь другим способом (см., например,L2TP).

В туннельном режиме шифруется весь исходный IP-пакет: данные, заголовок, маршрутная информация, а затем он вставляется в поле данных нового пакета, то есть происходитинкапсуляция[4]. Туннельный режим может использоваться для подключения удалённых компьютеров к виртуальной частной сети или для организации безопасной передачи данных через открытые каналы связи (например, Интернет) между шлюзами для объединения разных частейвиртуальной частной сети.

Режимы IPsec не являются взаимоисключающими. На одном и том же узле некоторые SA могут использовать транспортный режим, а другие — туннельный.

Security Association

[править |править код]

Для начала обмена данными между двумя сторонами необходимо установить соединение, которое носит название SA (Security Association). Концепция SA фундаментальна для IPsec, собственно, является его сутью. Она описывает, как стороны будут использовать сервисы для обеспечения защищённого общения. Соединение SA являетсясимплексным (однонаправленным), поэтому для взаимодействия сторон необходимо установить два соединения. Стоит также отметить, что стандарты IPsec позволяют конечным точкам защищённого канала использовать как одно SA для передачи трафика всех взаимодействующих через этот каналхостов, так и создавать для этой цели произвольное число безопасных ассоциаций,например, по одной на каждое TCP-соединение. Это дает возможность выбирать нужную степень детализации защиты.[2] Установка соединения начинается со взаимной аутентификации сторон. Далее происходит выбор параметров (будет ли осуществляться аутентификация, шифрование, проверка целостности данных) и необходимого протокола (AH или ESP) передачи данных. После этого выбираются конкретные алгоритмы (например, шифрования, хеш-функция) из нескольких возможных схем, некоторые из которых определены стандартом (для шифрования —DES, для хеш-функций —MD5 либоSHA-1), другие добавляются производителями продуктов, использующих IPsec (напримерTriple DES,Blowfish,CAST)[5].

Security Associations Database

[править |править код]

Все SA хранятся в базе данных SAD (Security Associations Database) IPsec-модуля. Каждое SA имеет уникальный маркер, состоящий из трёх элементов[6]:

  • индекса параметров безопасности (Security Parameters Index, SPI)
  • IP-адреса назначения
  • идентификатора протокола безопасности (ESP или AH)

IPsec-модуль, имея эти три параметра, может отыскать в SAD запись о конкретном SA. В список компонентов SA входят[7]:

Последовательный номер
32-битовое значение, которое используется для формирования поляSequence Number в заголовках АН и ESP.
Переполнение счетчика порядкового номера
Флаг, который сигнализирует о переполнении счетчика последовательного номера.
Окно для подавления атак воспроизведения
Используется для определения повторной передачи пакетов. Если значение в полеSequence Number не попадает в заданный диапазон, то пакет уничтожается.
Информация AH
используемый алгоритм аутентификации, необходимые ключи, время жизни ключей и другие параметры.
Информация ESP
алгоритмы шифрования и аутентификации, необходимые ключи, параметры инициализации (например, IV), время жизни ключей и другие параметры
Режим работы IPsec
туннельный или транспортный
Время жизни SA
Задано в секундах или байтах информации, проходящих через туннель. Определяет длительность существования SA, при достижении этого значения текущее SA должно завершиться, при необходимости продолжить соединение устанавливается новое SA.
MTU
Максимальный размер пакета, который можно передать по виртуальному каналу без фрагментации.

Каждый протокол (ESP/AH) должен иметь свой собственный SA для каждого направления, таким образом, связка AH+ESP требует длядуплексного канала наличия четырёх SA. Все эти данные располагаются в SAD.

В SAD содержатся:

  • AH: алгоритм аутентификации.
  • AH: секретный ключ для аутентификации
  • ESP: алгоритм шифрования.
  • ESP: секретный ключ шифрования.
  • ESP: использование аутентификации (да/нет).
  • Параметры для обмена ключами
  • Ограничения маршрутизации
  • Политика IP-фильтрации

Security Policy Database

[править |править код]

Помимо базы данных SAD, реализации IPsec поддерживают базу данных SPD (Security Policy Database — база данных политики безопасности). SPD служит для соотнесения приходящих IP-пакетов с правилами обработки для них. Записи в SPD состоят из двух полей.[8] В первом хранятся характерные признаки пакетов, по которым можно выделить тот или иной поток информации. Эти поля называются селекторами. Примеры селекторов, которые содержатся в SPD[6]:

  • IP-адрес места назначения
  • IP-адрес отправителя
  • Имя пользователя в форматеDNS илиX.500
  • Порты отправителя и получателя

Второе поле в SPD содержит политику защиты, соответствующую данному потоку пакетов. Селекторы используются для фильтрации исходящих пакетов с целью поставить каждый пакет в соответствие с определенным SA. Когда поступает пакет, сравниваются значения соответствующих полей в пакете (селекторные поля) с теми, которые содержатся в SPD. При нахождении совпадения в поле политики защиты содержится информация о том, как поступать с данным пакетом: передать без изменений, отбросить или обработать. В случае обработки, в этом же поле содержится ссылка на соответствующую запись в SAD. Затем определяется SA для пакета и сопряжённый с ней индекс параметров безопасности (SPI), после чего выполняются операции IPsec (операции протокола AH или ESP).Если пакет входящий, то в нём сразу содержится SPI — проводится соответствующая обработка.

Authentication Header

[править |править код]
Authentication Header format
OffsetsOctet160123
Octet16Bit10012345678910111213141516171819202122232425262728293031
00Next HeaderPayload LenReserved
432Security Parameters Index (SPI)
864Sequence Number
C96Integrity Check Value (ICV)
Тип следующего заголовка (8 bits)
Тип заголовка протокола, идущего после заголовка AH. По этому полю приёмный IP-sec модуль узнает о защищаемом протоколе верхнего уровня. Значения этого поля для разных протоколов можно посмотреть вRFC 1700.
Длина содержимого (8 bits)
Это поле определяет общий размер АН-заголовка в 32-битовых словах, минус 2. Несмотря на это, при использовании IPv6 длина заголовка должна быть кратна 8 байтам.
Зарезервировано (16 bits)
Зарезервировано. Заполняется нулями.
Индекс параметров системы безопасности (32 bits)
Индекс параметров безопасности. Значение этого поля вместе с IP-адресом получателя и протоколом безопасности (АН-протокол), однозначно определяет защищённое виртуальное соединение (SA) для данного пакета. Диапазон значений SPI 1…255 зарезервированIANA.
Порядковый номер (32 bits)
Последовательный номер. Служит для защиты от повторной передачи. Поле содержит монотонно возрастающее значение параметра. Несмотря на то, что получатель может отказаться от услуги по защите от повторной передачи пакетов, оно является обязательным и всегда присутствует в AH-заголовке. Передающий IPsec-модуль всегда использует это поле, но получатель может его и не обрабатывать.
Данные аутентификации
Цифровая подпись. Служит для аутентификации и проверки целостности пакета. Должна быть дополнена до размера, кратного 8 байтам для IPv6, и 4 байтам — для IPv4.

Протокол AH используется для аутентификации, то есть для подтверждения того, что мы связываемся именно с тем, с кем предполагаем, и что данные, которые мы получаем, не искажены при передаче[9].

Обработка выходных IP-пакетов

[править |править код]

Если передающий IPsec-модуль определяет, что пакет связан с SA, которое предполагает AH-обработку, то он начинает обработку. В зависимости от режима (транспортный или режим туннелирования) он по-разному вставляет AH-заголовок в IP-пакет. В транспортном режиме AH-заголовок располагается после заголовка протокола IP и перед заголовками протоколов верхнего уровня (Обычно,TCP илиUDP). В режиме туннелирования весь исходный IP-пакет обрамляется сначала заголовком AH, затем — заголовком IP-протокола. Такой заголовок называется внешним, а заголовок исходного IP-пакета — внутренним. После этого передающий IPsec-модуль должен сгенерировать последовательный номер и записать его в полеSequence Number. При установлении SA последовательный номер устанавливается в 0, и перед отправкой каждого IPsec-пакета увеличивается на единицу. Кроме того, происходит проверка — не зациклился ли счетчик. Если он достиг своего максимального значения, то он снова устанавливается в 0. Если используется услуга по предотвращению повторной передачи, то при достижении счетчиком своего максимального значения передающий IPsec-модуль переустанавливает SA. Таким образом обеспечивается защита отповторной посылки пакета — приёмный IPsec-модуль будет проверять полеSequence Number и игнорировать повторно приходящие пакеты. Далее происходит вычисление контрольной суммы ICV. Надо заметить, что здесь контрольная сумма вычисляется с применением секретного ключа, без которого злоумышленник сможет заново вычислить хеш, но, не зная ключа, не сможет сформировать правильную контрольную сумму. Конкретные алгоритмы, использующиеся для вычисления ICV, можно узнать изRFC 4305. В настоящее время могут применяться, например, алгоритмы HMAC-SHA1-96 или AES-XCBC-MAC-96. Протокол АН вычисляет контрольную сумму (ICV) по следующим полям IPsec-пакета[10]:

  • поля IP-заголовка, которые не были подвержены изменениям в процессе транслирования или определены как наиболее важные
  • АН-заголовок (Поля: «Next Header», «Payload Len», «Reserved», «SPI», «Sequence Number», «Integrity Check Value». Поле «Integrity Check Value» устанавливается в 0 при вычислении ICV
  • данные протокола верхнего уровня. Если поле может изменяться в процессе транспортировки, то его значение устанавливается в 0 перед вычислением ICV. Исключения составляют поля, которые могут изменяться, но значение которых можно предугадать при приёме. При вычислении ICV они не заполняются нулями. Примером изменяемого поля может служить поле контрольной суммы, примером изменяемого, но предопределенного может являться IP-адрес получателя. Более подробное описание того, какие поля как учитываются при вычислении ICV, можно найти в стандартеRFC 2402.

Обработка входных IP-пакетов

[править |править код]

После получения пакета, содержащего сообщение АН-протокола, приёмный IPsec-модуль ищет соответствующее защищённое виртуальное соединение (SA) SAD (Security Associations Database), используя IP-адрес получателя, протокол безопасности (АН) и индекс SPI. Если соответствующее SA не найдено, пакет уничтожается. Найденное защищённое виртуальное соединение (SA) указывает на то, используется ли услуга по предотвращению повторной передачи пакетов, то есть на необходимость проверки поляSequence Number. Если услуга используется, то поле проверяется. При этом используется метод скользящего окна для ограничения буферной памяти, требуемый для работы протоколу. Приёмный IPsec-модуль формирует окно с шириной W (обычно W выбирается равным 32 или 64 пакетам). Левый край окна соответствует минимальному последовательному номеру (Sequence Number) N правильно принятого пакета. Пакет с полемSequence Number, в котором содержится значение, начиная от N+1 и заканчивая N+W, принимается корректно. Если полученный пакет оказывается по левую границу окна — он уничтожается. Затем приёмный IPsec-модуль вычисляет ICV по соответствующим полям принятого пакета, используя алгоритм аутентификации, который он узнает из записи об SA, и сравнивает полученный результат со значением ICV, расположенным в поле «Integrity Check Value». Если вычисленное значение ICV совпало с принятым, то пришедший пакет считается действительным и принимается для дальнейшей IP-обработки. Если проверка дала отрицательный результат, то принятый пакет уничтожается[10].

Encapsulating Security Payload

[править |править код]
Encapsulating Security Payload format
OffsetsOctet160123
Octet16Bit10012345678910111213141516171819202122232425262728293031
00Security Parameters Index (SPI)
432Sequence Number
864Payload data
  
 Padding (0-255 octets) 
 Pad LengthNext Header
Integrity Check Value (ICV)
Security Parameters Index (32 bits)
Индекс параметров безопасности (аналогичен соответствующему полю AH). Значение этого поля вместе с IP-адресом получателя и протоколом безопасности (ESP-протокол), однозначно определяет защищённое виртуальное соединение (SA) для данного пакета. Диапазон значений SPI 1…255 зарезервированIANA для последующего использования.
Sequence Number (32 bits)
Последовательный номер (аналогичен соответствующему полю AH). Служит для защиты от повторной передачи. Поле содержит монотонно возрастающее значение параметра. Несмотря на то, что получатель может и отказаться от услуги по защите от повторной передачи пакетов, оно всегда присутствует в ESP-заголовке. Отправитель (передающий IPsec-модуль) должен всегда использовать это поле, но получатель может и не нуждаться в его обработке.
Payload data (variable)
Это поле содержит данные (в зависимости от выбора режима — туннельного или транспортного, здесь может находиться либо весь исходныйинкапсулированный пакет, либо лишь его данные) в соответствии с полем «Next Header». Это поле является обязательным и состоит из целого числа байтов. Если алгоритм, который используется для шифрования этого поля, требует данных для синхронизации криптопроцессов (например, вектор инициализации —«Initialization Vector»), то это поле может содержать эти данные в явном виде.
Padding (0-255 octets)
Дополнение. Необходимо, например, для алгоритмов, которые требуют, чтобы открытый текст был кратен некоторому числу байтов), например, размеру блока для блочного шифра.
Pad Length (8 bits)
Размер дополнения (в байтах).
Next Header (8 bits)
Это поле определяет тип данных, содержащихся в поле «Payload data».
Integrity Check Value
Контрольная сумма. Служит для аутентификации и проверки целостности пакета. Должна быть кратна 8 байтам для IPv6 и 4 байтам — для IPv4[11].

Обработка выходных IPsec-пакетов

[править |править код]

Если передающий IPsec-модуль определяет, что пакет связан с SA, которое предполагает ESP-обработку, то он начинает обработку. В зависимости от режима (транспортный или режим туннелирования) исходный IP-пакет обрабатывается по-разному. В транспортном режиме передающий IPsec-модуль осуществляет процедуру обрамления протокола верхнего уровня (например, TCP или UDP), используя для этого ESP-заголовок (поля Security Parameters Index и Sequence Number заголовка) и ESP-концевик (остальные поля заголовка, следующие за полем данных — Payload data), не затрагивая при этом заголовок исходного IP-пакета. В режиме туннелирования IP-пакет обрамляется ESP-заголовком и ESP-концевиком (инкапсуляция), после чего обрамляется внешним IP-заголовком (который может не совпадать с исходным — например, если IPsec модуль установлен нашлюзе)[8]. Далее производится шифрование — в транспортном режиме шифруется только сообщение протокола вышележащего уровня (то есть все, что находилось после IP-заголовка в исходном пакете), в режиме туннелирования — весь исходный IP-пакет. Передающий IPsec-модуль из записи о SA определяет алгоритм шифрования исекретный ключ. Стандарты IPsec разрешают использование алгоритмов шифрованияTriple DES,AES иBlowfish, если их поддерживают обе стороны. Иначе используется DES, прописанный вRFC 2405. Так как размер открытого текста должен быть кратен определенному числу байт, например, размеру блока дляблочных алгоритмов, перед шифрованием производится ещё и необходимое дополнение шифруемого сообщения. Зашифрованное сообщение помещается в полеPayload Data. В полеPad Length помещается длина дополнения. Затем, как и в AH, вычисляетсяSequence Number, после чего считается контрольная сумма (ICV). Контрольная сумма, в отличие от протокола AH, где при её вычислении учитываются также и некоторые поля IP-заголовка, в ESP вычисляется только по полям ESP-пакета за вычетом поля ICV. Перед вычислением контрольной суммы оно заполняется нулями. Алгоритм вычисления ICV, как и в протоколе AH, передающий IPsec-модуль узнает из записи об SA, с которым связан обрабатываемый пакет.

Обработка входных IPsec-пакетов

[править |править код]

После получения пакета, содержащего сообщение ESP-протокола, приёмный IPsec-модуль ищет соответствующее защищённое виртуальное соединение (SA) в SAD, используя IP-адрес получателя, протокол безопасности (ESP) и индекс SPI[8]. Если соответствующее SA не найдено, пакет уничтожается. Найденное защищённое виртуальное соединение (SA) указывает на то, используется ли услуга по предотвращению повторной передачи пакетов, то есть на необходимость проверки поля Sequence Number. Если услуга используется, то поле проверяется. Для этого, так же как и в AH, используется метод скользящего окна. Приёмный IPsec-модуль формирует окно с шириной W. Левый край окна соответствует минимальному последовательному номеру (Sequence Number) N правильно принятого пакета. Пакет с полем Sequence Number, в котором содержится значение, начиная от N+1 и заканчивая N+W, принимается корректно. Если полученный пакет оказывается по левую границу окна- он уничтожается. Затем, если используется услуга аутентификации, приёмный IPsec-модуль вычисляет ICV по соответствующим полям принятого пакета, используя алгоритм аутентификации, который он узнает из записи об SA, и сравнивает полученный результат со значением ICV, расположенным в поле «Integrity Check Value». Если вычисленное значение ICV совпало с принятым, то пришедший пакет считается действительным. Если проверка дала отрицательный результат, то приёмный пакет уничтожается. Далее производится расшифрование пакета. Приёмный IPsec-модуль узнает из записи об SA, какой алгоритм шифрования используется и секретный ключ. Надо заметить, что проверка контрольной суммы и процедура расшифрования могут проводиться не только последовательно, но и параллельно. В последнем случае процедура проверки контрольной суммы должна закончиться раньше процедуры расшифрования, и если проверка ICV провалилась, процедура расшифрования так же должна прекратиться. Это позволяет быстрее выявлять испорченные пакеты, что, в свою очередь, повышает уровень защиты от атак типа «отказ в обслуживании» (DOS-атаки). Далее расшифрованное сообщение в соответствии с полемNext Header передается для дальнейшей обработки.

IKE

[править |править код]
Основная статья:IKE

IKE (произноситсяайк,аббр. от Internet Key Exchange) — протокол, связывающий все компоненты IPsec в работающее целое. В частности, IKE обеспечивает первоначальную аутентификацию сторон, а также их обменобщими секретными ключами.

Существует возможность вручную установить ключ для сессии (не путать с pre-shared key [PSK] для аутентификации). В этом случае IKE не используется. Однако этот вариант не рекомендуется и используется редко. Традиционно IKE работает через порт 500UDP.

Существует IKE и более новая версия протокола: IKEv2. В спецификациях и функционировании этих протоколов есть некоторые различия. IKEv2 устанавливает параметры соединения за одну фазу, состоящую из нескольких шагов. Процесс работы IKE можно разбить на две фазы.

Первая фаза

[править |править код]

IKE создает безопасный канал между двумя узлами, называемый IKE security association (IKE SA). Также в этой фазе два узла согласуютсессионный ключ по алгоритмуДиффи-Хеллмана. Первая фаза IKE может проходить в одном из двух режимов[12]:

  • Основной режим
    Состоит из трёх двусторонних обменов между отправителем и получателем:
    1. Во время первого обмена согласуются алгоритмы ихеш-функции, которые будут использоваться для защиты IKE соединения, посредством сопоставления IKE SA каждого узла.
    2. Используя алгоритм Диффи-Хеллмана, стороны вырабатывают общий секретный ключ для защиты данных во второй фазе. Также узлы проверяютидентификацию друг друга путём передачи и подтверждения последовательности псевдослучайных чисел.
    3. По зашифрованному IP-адресу проверяется идентичность противоположной стороны. В результате выполнения основного режима создается безопасный канал для последующегоISAKMP-обмена (этот протокол определяет порядок действий для аутентификации соединения узлов, создания и управления SA, генерации ключей, а также уменьшения угроз, таких какDoS-атака илиатака повторного воспроизведения).
  • Агрессивный режим
    Этот режим обходится меньшим числом обменов и, соответственно, числом пакетов. В первом сообщении помещается практически вся нужная для установления IKE SA информация: открытый ключ Диффи-Хеллмана для синхронизации пакетов, подтверждаемое другим участником, идентификатор пакета. Получатель посылает в ответ все, что надо для завершения обмена. Первому узлу требуется только подтвердить соединение.

С точки зрения безопасности агрессивный режим слабее, так как участники начинают обмениваться информацией до установления безопасного канала, поэтому возможен несанкционированный перехват данных. Однако, этот режим быстрее, чем основной. По стандарту IKE любая реализацияобязана поддерживатьосновной режим, аагрессивный режим поддерживать крайне желательно.

Вторая фаза

[править |править код]

В фазе два IKE существует только один, быстрый, режим. Быстрый режим выполняется только после создания безопасного канала в ходе первой фазы. Он согласует общую политику IPsec, получает общие секретные ключи для алгоритмов протоколов IPsec (AH или ESP), устанавливает IPsec SA. Использование последовательных номеров обеспечивает защиту от атак повторной передачи.Также быстрый режим используется для пересмотра текущей IPsec SA и выбора новой, когда время жизни SA истекает. Стандартно быстрый режим проводит обновление общих секретных ключей, используя алгоритм Диффи-Хеллмана из первой фазы.

Как работает IPsec

[править |править код]

В работе протоколов IPsec можно выделить пять этапов[13]:

  1. Первый этап начинается с создания на каждом узле, поддерживающем стандарт IPsec, политики безопасности. На этом этапе определяется, какой трафик подлежит шифрованию, какие функции и алгоритмы могут быть использованы.
  2. Второй этап является по сути первой фазой IKE. Её цель — организовать безопасный канал между сторонами для второй фазы IKE. На втором этапе выполняются:
    • Аутентификация и защита идентификационной информации узлов
    • Проверка соответствий политик IKE SA узлов для безопасного обмена ключами
    • Обмен Диффи-Хеллмана, в результате которого у каждого узла будет общий секретный ключ
    • Создание безопасного канала для второй фазы IKE
  3. Третий этап является второй фазой IKE. Его задачей является создание IPsec-туннеля. На третьем этапе выполняются следующие функции:
    • Согласуются параметры IPsec SA по защищаемому IKE SA каналу, созданному в первой фазе IKE
    • Устанавливается IPsec SA
    • Периодически осуществляется пересмотр IPsec SA, чтобы убедиться в её безопасности
    • (Опционально) выполняется дополнительный обмен Диффи-Хеллмана
  4. Рабочий этап. После создания IPsec SA начинается обмен информацией между узлами через IPsec-туннель, используются протоколы и параметры, установленные в SA.
  5. Прекращают действовать текущие IPsec SA. Это происходит при их удалении или при истечении времени жизни (определенное в SA в байтах информации, передаваемой через канал, или в секундах), значение которого содержится в SAD на каждом узле. Если требуется продолжить передачу, запускается фаза два IKE (если требуется, то и первая фаза) и далее создаются новые IPsec SA. Процесс создания новых SA может происходить и до завершения действия текущих, если требуется непрерывная передача данных.

Использование

[править |править код]

Протокол IPsec используется, в основном, для организацииVPN-туннелей. В этом случае протоколы ESP и AH работают в режиме туннелирования. Кроме того, настраивая политики безопасности определенным образом, протокол можно использовать для созданиямежсетевого экрана. Смысл межсетевого экрана заключается в том, что он контролирует и фильтрует проходящие через него пакеты в соответствии с заданными правилами. Устанавливается набор правил, и экран просматривает все проходящие через него пакеты. Если передаваемые пакеты попадают под действие этих правил, межсетевой экран обрабатывает их соответствующим образом[14]. Например, он может отклонять определенные пакеты, тем самым прерывая небезопасные соединения. Настроив политику безопасности соответствующим образом, можно, например, запретить веб-трафик. Для этого достаточно запретить отсылку пакетов, в которые вкладываются сообщения протоколовHTTP иHTTPS. IPsec можно применять и для защиты серверов — для этого отбрасываются все пакеты, кроме пакетов, необходимых для корректного выполнения функций сервера. Например, для Web-сервера можно блокировать весь трафик, за исключением соединений через 80-й порт протокола TCP или через порт TCP 443 в случаях, когда применяетсяHTTPS.

IPsec_VPN

Пример[15]:

С помощью IPsec здесь обеспечивается безопасный доступ пользователей к серверу. При использовании протокола ESP все обращения к серверу и его ответы шифруются. Однако за VPN-шлюзом (в домене шифрования) передаются открытые сообщения.

Другие примеры использования IPsec[16]:

  • шифрование трафика между файловым сервером и компьютерами в локальной сети, используя IPsec в транспортном режиме.
  • соединение двух офисов с использованием IPsec в туннельном режиме.

См. также

[править |править код]

Ссылки

[править |править код]

Примечания

[править |править код]
  1. Станислав Коротыгин,IPSec — протокол защиты сетевого трафика на IP-уровнеАрхивная копия от 28 января 2012 наWayback Machine.
  2. 12Олифер, 2010, с. 890.
  3. Олифер, 2010, с. 891.
  4. Cryptographic Terminology 101Архивная копия от 13 марта 2013 наWayback Machine, Dru Lavigne, 2002.
  5. Олифер, 2010, с. 892.
  6. 12Олифер, 2010, с. 898.
  7. Andrew Mason, IPSec Overview, 2002, Part Five: Security Associations.
  8. 123Олифер, 2010, с. 896.
  9. RFC 2402.
  10. 12Олифер, 2010, с. 895.
  11. RFC 2406.
  12. Andrew Mason, IPSec Overview, 2002, Part Four: Internet Key Exchange (IKE).
  13. Andrew Mason, IPSec Overview, 2002, How IPSec works.
  14. VPNs and IPSec DemystifiedАрхивная копия от 5 января 2011 наWayback Machine, Dru Lavigne, 2002.
  15. VPN и IPSec на пальцахАрхивная копия от 12 июля 2013 наWayback Machine, opennet.ru
  16. Роман Луковников,Практическое применение IPSecАрхивная копия от 8 марта 2013 наWayback Machine, журнал "Хакер"

Литература

[править |править код]
Перейти к шаблону «VPN»
Технологии
Программное обеспечение
VPN-сервисы
Перейти к шаблону «IPstack»
ОсновныепротоколыTCP/IP по уровняммодели OSI
Физический
Канальный
Сетевой
Транспортный
Сеансовый
Представления
Прикладной
Другие прикладные
Источник —https://ru.wikipedia.org/w/index.php?title=IPsec&oldid=149815791
Категории:
Скрытые категории: