Для установления защищенного соединения оба участника сеанса должны иметь возможность быстро согласовать параметры защиты, такие как алгоритмы аутентификации и ключи. Протокол IPSec поддерживает два типа схем управления ключами, с помощью которых участники могут согласовать параметры сеанса.
С текущей версией IP, IPv4, могут быть использованы или Internet Secure Association Key Management Protocol (ISAKMP), или Simple Key Management for Internet Protocol.
Заголовок AH.
Опциональный заголовок (Authentication Header, AH) является обычным аутентифицирующим заголовком и чаще всего располагается между основным заголовком пакета IP и полем данных. Наличие данного заголовка никак не влияет на процесс передачи информации транспортного и более высоких уровней. Основным и единственным назначением AH является обеспечение защиты от атак, связанных с несанкционированным изменением содержимого пакета, в том числе от подмены исходного адреса сетевого уровня. Протоколы более высокого уровня должны быть модифицированы в целях осуществления проверки аутентичности полученных данных.
Рассмотрим значения каждого из приведенных полей.
Next Header (8 bits) - тип заголовка протокола, идущего после заголовка AH. По этому полю приемный IP-sec модуль узнает о защищаемом протоколе верхнего уровня. Значения этого поля для разных протоколов можно посмотреть в RFC 1700.
Payload Len (8 bits) - это поле определяет общий размер АН-заголовка в 32-битовых словах минус 2. Несмотря на это, при использовании IPv6 длина заголовка должна быть кратна 8 байтам.
Reserved (16 bits) – зарезервировано. Заполняется нулями.
Security Parameters Index (32 bits) - индекс параметров безопасности. Значение этого поля вместе с IP-адресом получателя и протоколом безопасности (АН-протокол) однозначно определяет защищенное виртуальное соединение (SA) для данного пакета. Диапазон значений SPI 1...255 зарезервирован IANA.
Sequence Number (32 bits) - последовательный номер. Служит для защиты от повторной передачи. Поле содержит монотонно возрастающее значение параметра. Несмотря на то что получатель может отказаться от услуги по защите от повторной передачи пакетов, оно является обязательным и всегда присутствует в AH-заголовке. Передающий IPsec-модуль всегда использует это поле, но получатель может его и не обрабатывать.
Integrity Check Value - контрольная сумма. Должна быть кратна 8 байтам для IPv6 и 4 байтам для IPv4.
Протокол AH используется для аутентификации, то есть для подтверждения того, что мы связываемся именно с тем, с кем предполагаем, и что данные, которые мы получаем, не искажены при передаче.
Заголовок ESP.
При использовании инкапсуляции зашифрованных данных заголовок ESP является последним в ряду опциональных заголовков, «видимых» в пакете. Так как основной целью ESP является обеспечение конфиденциальности данных, различные виды информации могут требовать применения существенно различных алгоритмов шифрования. По этой причине формат ESP может претерпевать значительные изменения в зависимости от используемых криптографических алгоритмов. Тем не менее можно выделить следующие обязательные поля: SPI, указывающее на контекст безопасности, и Sequence Number Field, содержащее последовательный номер пакета. Поле «ESP Authentication Data» (контрольная сумма) не является обязательным в заголовке ESP. Получатель пакета ESP расшифровывает ESP-заголовок и использует параметры и данные применяемого алгоритма шифрования для декодирования информации транспортного уровня.
Security Parameters Index (32 bits) – индекс параметров безопасности. Значение этого поля вместе с IP-адресом получателя и протоколом безопасности (АН-протокол) однозначно определяет защищенное виртуальное соединение (SA) для данного пакета. Диапазон значений SPI 1...255 зарезервирован IANA для последующего использования.
Sequence Number (32 bits) - последовательный номер. Служит для защиты от повторной передачи. Поле содержит монотонно возрастающее значение параметра. Несмотря на то что получатель может и отказаться от услуги по защите от повторной передачи пакетов, оно всегда присутствует в AH-заголовке. Отправитель (передающий 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.
Различают два режима применения ESP и AH (а также их комбинации) - транспортный и туннельный.
Транспортный режим используется для шифрования поля данных IP-пакета, содержащего протоколы транспортного уровня (TCP, UDP, ICMP), которое, в свою очередь, содержит информацию прикладных служб. Примером применения транспортного режима является передача электронной почты. Все промежуточные узлы на маршруте пакета от отправителя к получателю используют только открытую информацию сетевого уровня и, возможно, некоторые опциональные заголовки пакета (в IPv6). Недостатком транспортного режима является отсутствие механизмов скрытия конкретных отправителя и получателя пакета, а также возможность проведения анализа трафика. Результатом такого анализа может стать информация об объемах и направлениях передачи информации, области интересов абонентов, расположение руководителей.
Туннельный режим, в отличие от транспортного, предполагает шифрование всего пакета, включая заголовок сетевого уровня. Туннельный режим применяется в случае необходимости скрытия информационного обмена организации с внешним миром. При этом адресные поля заголовка сетевого уровня пакета, использующего туннельный режим, заполняются межсетевым экраном организации и не содержат информации о конкретном отправителе пакета. При передаче информации из внешнего мира в локальную сеть организации в качестве адреса назначения используется сетевой адрес межсетевого экрана. После расшифровки межсетевым экраном начального заголовка сетевого уровня пакет направляется получателю.
Security Associations.
Security Association (SA) - это тип соединения, которое предоставляет службы обеспечения безопасности трафика, передаваемого через него. Например, когда два компьютера на каждой стороне SA хранят режим, протокол, алгоритмы и ключи, используемые в SA, тогда каждый SA применяется только в одном направлении. Для двунаправленной связи требуется два SA. Каждый SA реализует один режим и протокол; таким образом, если для одного пакета необходимо использовать два протокола (как, например, AH и ESP), то требуется два SA.
На сегодняшний день протокол IPSec поддерживают практически все современные сетевые устройства. Поэтому я не буду приводить примеры настройки данного протокола для оборудования какого-то определенного разработчика. В предыдущих постах была представлена лишь теоретическая информация, позволяющая понять принципы работы протокола. При необходимости настройки IPSec на конкретных моделях оборудования нужно воспользоваться документацией, представленной разработчиком оборудования.
Рассмотрев теоретические основы функционирования, перейдем к практической настройке. В качестве примера мы настроим политику IPSec, запрещающую весь обмен данными по протоколам HTTP и HTTPS, и будем использовать Windows 7. Стоит отметить, что в случае использования серверной операционной системы Windows 2008 они могут отличаться, но крайне незначительно.
Итак, открываем консоль MMC (значок Windows – Выполнить – mmc).
В открывшемся меню необходимо выбрать команду Консоль, затем Добавить или удалить оснастку. В открывшемся диалоге также щелкаем Добавить, выбираем из открывшегося списка Управление политикой безопасности IP.
В появившемся диалоге выбора компьютера указываем Локальный компьютер. Последовательно закрываем окна, нажимая кнопки Готово, Закрыть, ОК. Теперь в левой панели консоли у нас появится узел Политики безопасности IP на ‘Локальный компьютер’. Сделаем на нем щелчок правой кнопкой мыши и выберем команду Управление списками IP-фильтра.
В открывшемся диалоге нажимаем кнопку Добавить. Откроется еще одно окно - Список фильтров. Для того чтобы в дальнейшем было проще ориентироваться в списках фильтров, зададим название для нового фильтра, напечатав
в поле Имя, например, Трафик_HTTP_HTTPS. Нажимаем кнопку Добавить, чтобы приступить к собственно созданию фильтра.
На второй странице можно указать описание фильтра. Чтобы вы не запутались: один фильтр может состоять из множества других. Так как мы указали на предыдущем шаге в описании Трафик_HTTP_HTTPS, сейчас мы последовательно создадим два фильтра: один – для HTTP, другой - для HTTPS. Результирующий фильтр будет объединять эти два фильтра. Итак, указываем в поле описания HTTP. Флажок Отраженный оставляем включенным - это позволит распространить правила фильтра как в одну сторону пересылки пакетов, так и в обратную с теми же параметрами. Нажимаем Далее.
Теперь необходимо указать адрес источника IP-пакетов. Как видно на картинке, возможность выбора адреса довольно широка. Сейчас мы укажем Мой IP-адрес и нажмем Далее. В следующем окне задаем адрес назначения. Выбираем Любой IP-адрес, нажимаем Далее. Теперь следует указать тип протокола. Выберите из списка TCP. Идем дальше - задаем номера портов.
Верхний переключатель оставляем в положении Пакеты из любого порта, а нижним включаем режим Пакеты на этот порт и в поле вводим значение HTTP-порта – 80. Нажимаем Готово, закрываем мастер. Теперь еще раз нажимаем кнопку Добавить и проделываем все предыдущие операции еще раз, но уже указав значение порта 443 (для HTTPS). В списке нижнего окна должны находиться оба созданных правила фильтрации пакетов.
Нажимаем кнопку ОК. Фильтр наш готов, но необходимо теперь определить действия, которые он будет производить. Переключаемся на закладку Управление действиями фильтра и нажимаем кнопку Добавить. Снова откроется диалог мастера, нажимаем Далее. Указываем имя, например Block, идем дальше. В качестве действия выбираем переключатель Блокировать, нажимаем Далее и Готово. Фильтр создан, действие для него определено, нам осталось лишь создать политику и назначить ее. В окне консоли MMC щелкаем правой кнопкой мыши узел Политики безопасности IP и выбираем команду Создать политику безопасности IP. В открывшемся окне мастера нажимаем Далее, затем указываем имя для политики, например Политика_HTTP_HTTPS, нажимаем Далее. Снимаем флажок Использовать правило по умолчанию, щелкаем Далее и Готово. В окне свойств политики нажимаем кнопку Добавить.
Нажимаем Далее, оставляем переключатель в положении Это правило не определяет туннель, идем дальше. Тип сети - указываем Все сетевые подключения, нажимаем Далее. Теперь необходимо выбрать фильтр из списка.
Выбираем созданный нами фильтр Трафик_HTTP_HTTPS (слева должна появиться точка в кружке), щелкаем кнопку Далее. Таким же образом выбираем действие для фильтра - Политика_HTTP_HTTPS, щелкаем Далее и Готово. Теперь в правой панели консоли MMC появится созданная политика с именем Политика_HTTP_HTTPS.
Все, что осталось сделать, - назначить ее. Для этого выполняем правый щелчок мышью на названии и выбираем команду Назначить. Для проверки осталось запустить браузер. Если все было сделано правильно, картина должна быть такой.
В результате выполненных ранее действий мы запретили использование веб-трафика. Теперь добавим фильтр, который будет разрешать подключения к некоторым узлам интернета. Например, мы позволим браузеру просмотр
узла www.microsoft.com . Для этого в нашей консоли MMC дважды щелкаем название политики Политика_HTTPS_HTTPS. В окне свойств нажимаем кнопку Добавить, затем двойным щелчком выберем фильтр Трафик_HTTP_HTTPS. На вкладке Список фильтров нажимаем кнопку Добавить. Указываем имя для нового фильтра, например www.microsoft.com , жмем Добавить, Далее, в качестве источника пакетов оставляем Мой IP-адрес, щелкаем кнопку Далее. В качестве адреса назначения выберем строку Определенное DNS-имя, а в поле Имя узла введем www.microsoft.com . Нажимаем Далее.
Появится предупреждение о том, что в фильтре вместо DNS-имени www.microsoft.com будет использован IP-адрес 207.46.197.32. Соглашаемся, нажав кнопку Да, затем указываем тип протокола - TCP, выбираем переключатель На этот порт и указываем его номер - 80. Жмем Далее, Готово и ОК. Теперь определяем действие фильтра - переходим на одноименную закладку и выбираем параметр Разрешить.
Сейчас фильтр состоит из двух фильтров: один запрещает весь http-трафик, другой разрешает соединения с определенным IP-адресом.
Этот пример также и показывает одно из существенных отличий между применением «нормального» межсетевого экрана и фильтрации с помощью IPSec: использование IPSec не позволяет задать порядок следования или приоритет фильтра. Впрочем, работать он все равно будет. Осталось закрыть все диалоговые окна и проверить это.
Теперь при переходе на www.microsoft.com (и только него!) браузер должен отобразить содержание этого узла. Обратите внимание, что ресурсы, расположенные на другом хосте (например, рекламные баннеры), не отображаются, - они также фильтруются примененной политикой IPSec.
Подобным же образом вы можете создать собственные необходимые фильтры и применить их.
Петухов Олег, юрист в области международного права и защиты персональных данных, специалист в области информационной безопасности, защиты информации и персональных данных.
Телеграм-канал: https://t.me/zashchitainformacii Группа в Телеграм: https://t.me/zashchitainformacii1 Сайт: https://legascom.ru Электронная почта: online@legascom.ru #защитаинформации #информационнаябезопасность

Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев