0 В этой статье предлагается обзор средств IPSEC (IP Security - система защиты на уровне IP) и соответствующих протоколов IPSec, доступных в продуктах Cisco и используемых для создания виртуальных частных сетей (VPN). В данной статье мы определим, что такое IPSEC, а также какие протоколы и алгоритмы защиты лежат в основе IPSEC.

Введение

IP Security - это комплект протоколов, касающихся вопросов шифрования, аутентификации и обеспечения защиты при транспортировке IP-пакетов; в его состав сейчас входят почти 20 предложений по стандартам и 18 RFC.

Продукты Cisco для поддержки VPN используют набор протоколов IPSec, являющийся на сегодня промышленным стандартом обеспечения широких возможностей VPN. IPSec предлагает механизм защищенной передачи данных в IP-сетях, обеспечивая конфиденци¬альность, целостность и достоверность данных, передаваемых через незащищенные сети типа Internet. IPSec обеспечивает следующие возможности VPN в сетях Cisco:

  • Конфиденциальность данных . Отправитель данных IPSec имеет возможность шифровать пакеты перед тем, как передавать их по сети.
  • Целостность данных . Получатель данных IPSec имеет возможность аутентифицировать сообщающиеся с ним стороны (устройства или программное обеспе¬чение, в которых начинаются и заканчиваются туннели IPSec) и пакеты IPSec, посылаемые этими сторонами, чтобы быть уверенным в том, что данные не были изменены в пути.
  • Аутентификация источника данных . Получатель данных IPSec имеет возмож¬ность аутентифицировать источник получаемых пакетов IPSec. Этот сервис за¬висит от сервиса целостности данных.
  • Защита от воспроизведения . Получатель данных IPSec может обнаруживать и от¬вергать воспроизведенные пакеты, не допуская их фальсификации и проведе¬ния атак внедрения посредника.

IPSec представляет собой основанный на стандартах набор протоколов и алгоритмов защиты. Технология IPSec и связанные с ней протоколы защиты соответствуют открытым стандартам, которые поддерживаются группой IETF (Internet Engineering Task Force - проблемная группа проектирования Internet) и описаны в спецификациях RFC и проектах IETF. IPSec действует на сетевом уровне, обеспечивая защиту и аутентификацию пакетов IP, пересылаемых между устройствами (сторонами) IPSec - такими как маршрутизаторы Cisco, брандмауэры PIX Firewall, клиенты и концентраторы Cisco VPN, а также многие другие продукты, поддерживающие IPSec. Средства поддержки IPSec допускают масштабирование от самых малых до очень больших сетей.

Ассоциации защиты (Security Association ,SA)

IPSec предлагает стандартный способ аутентификации и шифрования соединений между сообщающимися сторонами. Чтобы обеспечить защиту связей, средства IPSec используют стандартные алгоритмы (т.е. математические формулы) шифрования и аутентификации, называемые преобразованиями. В IPSec используются открытые стандарты согласования ключей шифрования и управления соединениями, что обеспечивает возможность взаимодействия между сторонами. Технология IPSec предлагает методы, позволяющие сторонам IPSec "договориться" о согласованном использовании сервисов. Чтобы указать согласуемые параметры, в IPSec используются ассоциации защиты.

Ассоциация защиты (Security Association - SA) представляет собой согласованную политику или способ обработки данных, обмен которыми предполагается между двумя устройствами сообщающихся сторон. Одной из составляющих такой политики может быть алгоритм, используемый для шифрования данных. Обе стороны могут ис¬пользовать один и тот же алгоритм как для шифрования, так и для дешифрования. Действующие параметры SA сохраняются в базе данных ассоциаций защиты (Security Association Database - SAD) обеих сторон.

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

Протокол IKE (Internet Key Exchange - обмен Internet-ключами) является гибридным протоколом, обеспечивающим специальный сервис для IPSec, а именно аутентификацию сторон IPSec, согласование параметров ассоциаций защиты IKE и IPSec, а также выбор ключей для алгоритмов шифрования, используемых в рамках IPSec. Протокол IKE опира¬ется на протоколы ISAKMP (Internet Security Association and Key Management Protocol - протокол управления ассоциациями и ключами защиты в сети Internet) и Oakley, которые применяются для управления процессом создания и обработки ключей шифрования, используемых в преобразованиях IPSec. Протокол IKE применяется также для формирования ассоциаций защиты между потенциальными сторонами IPSec.
Как IKE, так и IPSec используют ассоциации зашиты, чтобы указать параметры связи.
IKE поддерживает набор различных примитивных функций для использования в протоколах. Среди них можно выделить хэш-функцию и псевдослучайную функцию (PRF).

Хэш-функция – это функция, устойчивая к коллизиям. Под устойчивостью к коллизиям понимается тот факт, что невозможно найти два разных сообщения m1 и m2, таких, что

H(m1)=H(m2), где H – хэш функция.

Что касается псеводслучайных функций, то в настоящее время вместо специальных PRF используется хэш функция в конструкции HMAC (HMAC - механизм аутентификации сообщений с использованием хэш функций). Для определения HMAC нам понадобится криптографическая хэш функция (обозначим её как H) и секретный ключ K. Мы предполагаем, что H является хэш функцией, где данные хэшируются с помощью процедуры сжатия, последовательно применяемой к последовательности блоков данных. Мы обозначим за B длину таких блоков в байтах, а длину блоков, полученных в результате хэширования - как L (L
ipad = байт 0x36, повторённый B раз;
opad = байт 0x5C, повторённый B раз.

Для вычисления HMAC от данных "text" необходимо выполнить следующую операцию:

H(K XOR opad, H(K XOR ipad, text))

Из описания следует, что IKE использует для аутентификации сторон HASH величины. Отметим, что под HASH в данном случае подразумевается исключительно название Payload в ISAKMP, и это название не имеет ничего общего со своим содержимым

Инфраструктура IPSec

Сети VPN на основе IPSec могут быть построены с помощью самых разных устройств Cisco - маршрутизаторов Cisco, брандмауэров CiscoSecure PIX Firewall, программного обеспечения клиента CiscoSecure VPN и концентраторов Cisco VPN серий 3000 и 5000. Маршрутизаторы Cisco имеют встроенную поддержку VPN с соответствующими богатыми возможностями программного обеспечения Cisco IOS, что уменьшает сложность сетевых решений и снижает общую стоимость VPN при возможности построения многоуровневой защиты предоставляемых сервисов. Брандмауэр PIX Firewall является высокопроизводительным сетевым устройством, которое может обслуживать конечные точки туннелей, обеспечивая им высокую пропускную способность и прекрасные функциональные возможности брандмауэра. Программное обеспечение клиента CiscoSecure VPN поддерживает самые строгие требования VPN удаленного доступа для операций электронной коммерции, а также приложений мо¬бильного доступа, предлагая законченную реализацию стандартов IPSec и обеспечивая надежное взаимодействие маршрутизаторов Cisco и брандмауэров PIX Firewall.

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


IPSec опирается на ряд технологических решений и методов шифрования, но действие IPSec в общем можно представить в виде следующих главных шагов:
  • Шаг 1. Начало процесса IPSec. Трафик, которому требуется шифрование в соответствии с политикой защиты IPSec, согласованной сторонами IPSec, начинает IКЕ-процесс.
  • Шаг 2. Первая фаза IKE . IKE-процесс выполняет аутентификацию сторон IPSec и ведет переговоры о параметрах ассоциаций защиты IKE, в результате чего создается защищенный канал для ведения переговоров о параметрах ассоциаций защиты IPSec в ходе второй фазы IKE.
  • Шаг 3. Вторая фаза IKE . IKE-процесс ведет переговоры о параметрах ассоциации защиты IPSec и устанавливает соответствующие ассоциации защиты IPSec для устройств сообщающихся сторон.
  • Шаг 4. Передача данных . Происходит обмен данными между сообщающимися сторонами IPSec, который основывается на параметрах IPSec и ключах, хранимых в базе данных ассоциаций защиты.
  • Шаг 5. Завершение работы туннеля IPSec . Ассоциации защиты IPSec завершают свою работу либо в результате их удаления, либо по причине превышения предельного времени их существования.
В следующих разделах указанные шаги будут описаны подробнее.

Протокол Encapsulating Security Payload (ESP) обеспечивает конфиденциальность данных. Кроме того, он позволяет идентифицировать отправителя данных, а также обеспечить целостность данных и защиту от воспроизведения информации.

Отличие протокола ESP от протокола Authentication Header (AH) состоит в том, что ESP выполняет шифрование данных. При этом оба протокола обеспечивают идентификацию, проверку целостности и защиту от воспроизведения информации. При работе с ESP для шифрования и расшифровки данных обе конечные системы применяют общий ключ.

Если одновременно применяются средства шифрования и идентификации данных, то отвечающая система вначале идентифицирует пакет, а если идентификация выполнена успешно, то расшифровывает пакет. Такой способ обработки пакетов снижает нагрузку на систему и уменьшает риск взлома защиты с помощью атаки типа "отказ в обслуживании".

Два способа использования ESP

Протокол ESP может применяться двумя способами: в режиме открытой передачи и в режиме туннеля. В режиме открытой передачи заголовок ESP указывается после заголовка IP дейтаграммы. Если у дейтаграммы уже есть заголовок IPSec, то заголовок ESP помещается перед этим заголовком. Концевик ESP и идентификационные данные, если они есть, указываются после поля данных.

В режиме открытой передачи заголовок IP не идентифицируется и не зашифровывается. В этом случае адреса, указанные в заголовке, могут быть перехвачены во время передачи дейтаграммы по сети. Для обмена данными в режиме открытой передачи требуется меньше ресурсов, чем при работе в режиме туннеля. Однако такой режим обеспечивает более низкий уровень защиты. В большинстве случаев при работе с протоколом ESP применяется режим открытой передачи.

В режиме туннеля создается новый заголовок IP, который становится самым внешним заголовком дейтаграммы. После него помещается заголовок ESP, а затем - сама дейтаграмма (заголовок IP и данные). Концевик ESP и идентификационные данные, если они есть, добавляются в конец поля данных. Если одновременно применяются средства шифрования и идентификации, то ESP полностью защищает исходную дейтаграмму, так как эта дейтаграмма становится полем данных в новом пакете ESP. Новый заголовок IP не защищается. При установлении соединения между шлюзами следует применять ESP в режиме туннеля.

Алгоритм защиты информации, применяемый ESP

В протоколе ESP применяется симметричный ключ, с помощью которого данные зашифровываются и расшифровываются конечными системами. Перед обменом данными отправитель и получатель должны согласовать ключ, который они будут применять. Функция VPN поддерживает способы шифрования DES, тройной DES (3DES), RC5, RC4, AES или AES-CBC.

При использовании алгоритма шифрования AES можно включить Расширенный порядковый номер (ESN). ESN позволяет передавать большие объемы данных с высокой скоростью. Соединение VPN применяет 64-битовые порядковые номера вместо 32-битовых номеров над IPSec. Использование 64-битовых порядковых номеров увеличивает период времени до смены ключа, что предотвращает окончание пула порядковых номеров и снижает расход системных ресурсов.

Рабочая группа Internet (IETF) формально описывает алгоритмы в следующих документах RFC:

Эти и другие документы RFC можно найти в Internet на следующем веб-сайте: http://www.rfc-editor.org.

Протокол ESP поддерживает алгоритмы идентификации HMAC-MD5, HMAC-SHA, HMAC-SHA-256 и AES-XCBC-MAC. Оба алгоритма получают на входе данные переменной длины и личный ключ, а на их основе создают данные фиксированной длины (или значение хэш-функции или MAC). Если значения хэш-функции, вычисленные для двух сообщений, совпадают, то с высокой вероятностью эти сообщения одинаковые.

Рабочая группа Internet (IETF) формально описывает алгоритмы в следующих документах RFC:

Эти документы RFC можно просмотреть на следующем веб-сайте: http://www.rfc-editor.org.

сеть , безопасного туннеля ( рис. 5.9), по которому передаются конфиденциальные или чувствительные к несанкционированному изменению данные. Подобный туннель создается с использованием криптографических методов защиты информации.

Протокол работает на сетевом уровне модели OSI и, соответственно, он "прозрачен" для приложений. Иными словами, на работу приложений (таких как web- сервер , браузер , СУБД и т.д.) не влияет, используется ли защита передаваемых данных с помощью IPSec или нет.

Операционные системы семейства Windows 2000 и выше имеют встроенную поддержку протокола IPSec. С точки зрения многоуровневой модели защиты, этот протокол является средством защиты уровня сети.


Рис. 5.9.

Архитектура IPSec является открытой, что, в частности, позволяет использовать для защиты передаваемых данных новые криптографические алгоритмы и протоколы, например соответствующие национальным стандартам. Для этого необходимо, чтобы взаимодействующие стороны поддерживали эти алгоритмы, и они были бы стандартным образом зарегистрированы в описании параметров соединения.

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

  • IP-адрес получателя;
  • указание на протоколы безопасности, используемые при передаче данных;
  • ключи, необходимые для шифрования и формирования имитовставки (если это требуется);
  • указание на метод форматирования, определяющий, каким образом создаются заголовки;
  • индекс параметров защиты (от англ. Security Parameter Index, сокр. SPI ) - идентификатор, позволяющий найти нужный SA.

Обычно, контекст защиты является однонаправленным, а для передачи данных по туннелю в обе стороны задействуются два SA . Каждый хост имеет свою базу SA , из которой выбирается нужный элемент либо на основании SPI , либо по IP -адресу получателя.

Два протокола, входящие в состав IPSec это:

  1. протокол аутентифицирующего заголовка - AH (от англ. Authentication Header), обеспечивающий проверку целостности и аутентификацию передаваемых данных; последняя версия протокола описана в RFC 4302 (предыдущие - RFC 1826, 2402);
  2. протокол инкапсулирующей защиты данных - ESP (от англ. Encapsulating Security Payload ) - обеспечивает конфиденциальность и, дополнительно, может обеспечивать проверку целостности и аутентификацию, описан в RFC 4303 (предыдущие - RFC 1827, 2406).

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

Транспортный режим ориентирован на соединение хост - хост . При использовании ESP в транспортном режиме защищаются только данные IP -пакета, заголовок не затрагивается. При использовании AH защита распространяется на данные и часть полей заголовка. Более подробно режимы работы описаны ниже.

Протокол AH

В IP ver .4 аутентифицирующий заголовок располагается после IP-заголовка. Представим исходный IP-пакет как совокупность IP-заголовка, заголовка протокола следующего уровня (как правило, это TCP или UDP, на рис. 5.10 он обозначен как ULP - от англ. Upper-Level Protocol) и данных.


Рис. 5.10.

Рассмотрим формат заголовка ESP ( рис. 5.13). Он начинается с двух 32-разрядных значений - SPI и SN . Роль их такая же, как в протоколе AH - SPI идентифицирует SA, использующийся для создания данного туннеля; SN - позволяет защититься от повторов пакетов. SN и SPI не шифруются.

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


Рис. 5.12.


Рис. 5.13.

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

Если ESP используется и для аутентификации данных, то завершает пакет поле переменной длины, содержащее ICV. В отличие от AH, в ESP при расчете значения имитовставки , поля IP-заголовка (нового - для туннельного режима, модифицированного старого - для транспортного) не учитываются.

При совместном использовании протоколов AH и ESP , после IP заголовка идет AH, после него - ESP . В этом случае, ESP решает задачи обеспечения конфиденциальности, AH - обеспечения целостности и аутентификации источника соединения.

Рассмотрим ряд дополнительных вопросов, связанных с использованием IPSec. Начнем с того, откуда берется информация о параметрах соединения - SA. Создание базы SA может производиться различными путями. В частности, она может создаваться администратором безопасности вручную, или формироваться с использованием специальных протоколов - SKIP , ISAKMP ( Internet Security Association and Key Management Protocol) и IKE (Internet Key Exchange).

IPSec и NAT

При подключении сетей организаций к Интернет, часто используется механизм трансляции сетевых адресов - NAT ( Network Address Translation ). Это позволяет уменьшить число зарегистрированных IP-адресов, используемых в данной сети. Внутри сети используются незарегистрированные адреса (как правило, из диапазонов, специально выделенных для этой цели, например, адреса вида 192.168.x.x для сетей класса C). Если пакет из такой сети передается в Интернет, то маршрутизатор, внешнему интерфейсу которого назначен по крайней мере один зарегистрированный ip-адрес, модифицирует ip-заголовки сетевых пакетов, подставляя вместо частных адресов зарегистрированный адрес. То, как производится подстановка, фиксируется в специальной таблице. При получении ответа, в соответствии с таблицей делается обратная замена и пакет переправляется во внутреннюю сеть.

Рассмотрим пример использования NAT рис. 5.14 . В данном случае, во внутренней сети используются частные адреса 192.168.0.x. С компьютера, с адресом 192.168.0.2 обращаются во внешнюю сеть к компьютеру с адресом 195.242.2.2. Пусть это будет подключение к web-серверу (протокол HTTP, который использует TCP порт 80).

При прохождении пакета через маршрутизатор, выполняющий трансляцию адресов, ip-адрес отправителя (192.168.0.2) будет заменен на адрес внешнего интерфейса маршрутизатора (195.201.82.146), а в таблицу трансляции адресов будет добавлена запись, аналогичная приведенной в