Защита передаваемых данных с помощью протоколов АН и ESP
Протокол аутентифицирующего заголовка АН и протокол инкапсулирующей защиты содержимого ESP могут работать в туннельном или транспортном режимах. Для выполнения своих задач по обеспечению безопасной передачи данных протоколы АН и ESP включают в обрабатываемые ими пакеты дополнительную служебную информацию, оформляя ее в виде заголовков.
1. Протокол аутентифицирующего заголовка АН
Протокол аутентифицирующего заголовка АН (Authentication Header) обеспечивает проверку аутентичности и целостности IP-пакетов, а также защиту от воспроизведения ранее посланныхIP-пакетов.
Протокол АН позволяет приемной стороне убедиться, что:
• пакет был отправлен именно той стороной, с которой установлена данная ассоциация;
• содержимое пакета не подверглось искажениям в процессе передачи его по сети;
• пакет не является дубликатом некоторого пакета, полученного ранее.
Протокол АН полностью защищает от подлога и искажения содержимое IP-пакетов, включая данные протоколов более высоких уровней. Полнота защиты полей IP-заголовков зависит от используемого режима работы — туннельного или транспортного. Однако протокол АН не обеспечивает конфиденциальность передаваемых данных, т. е. не предназначен для их шифрования. Данные могут быть прочитаны промежуточными узлами, но не могут быть изменены. Целостность и аутентичность данных обеспечиваются добавлением аутентифицирующего заголовка (АН) перед заголовком IP и заголовком транспортного уровня (TCP/UDP). Формат заголовка АН показан на рис. 12.3.
Заголовок АН включает в себя поля:
• следующий заголовок (Next Header) — однобайтовое поле, содержащее код протокола следующего заголовка, вложенного в IPSec-пакет, например код протокола TCP или ESP, чей заголовок следует за АН;
• длина (Payload Leri) — указывает длину заголовка АН в 32-битных словах;
• индекс параметров защиты SPI (Security Parameters Index) — представляет собой 32-разрядную метку безопасной ассоциации SA (Security Association), содержащей все параметры туннеля IPSec, включая типы криптографических алгоритмов и ключи шифрования. На основании индекса SPI пакет будет правильно отнесен к одной из существующих ассоциаций в приемном шлюзе (или хосте). Если же активной ассоциации, на которую указывает метка SPI, не существует, то пакет просто отбрасывается;
• порядковый номер SN (Sequence Number) — беззнаковое 32-битное число, увеличиваемое на единицу после передачи каждого защищенного по протоколу АН IP-пакета. Обеспечивает защиту от ложного воспроизведения ранее посланных IP-пакетов. При формировании каждого защищенного сеанса информационного обмена в рамках туннеля IPSec взаимодействующие стороны делают свои счетчики нулевыми, а потом согласованным образом увеличивают их. Получатель проверяет это поле с целью удостовериться, что пакета с таким номером принято еще не было. Если же такой пакет уже был, он не принимается;
• аутентификационные данные (Authentication Data) — поле переменной длины, содержащее информацию, используемую для аутентификации пакета и называемую МАС-кодом (MessageAuthentication Code). Это поле называют также цифровой подписью, дайджестом или кодом проверки целостности — ICV (Integrity Check Value) пакета. Содержимое поля AuthenticationData вычисляется с помощью одного из двух обязательно поддерживаемых протоколом АН алгоритмов HMAC-MD5 и HMAC-SHA1, основанных на применении односторонних хэш-функций с секретными ключами. Длина дайджеста зависит от выбранного алгоритма, поэтому это поле имеет в общем случае переменный размер. Наиболее часто используемый алгоритм HMAC-MD5 порождает 16-байтный дайджест.
Протокол АН защищает весь IP-пакет за исключением некоторых полей в IP-заголовке, таких как время жизни (TTL) и тип службы (Type of Service), которые могут меняться в процессе передачи пакета в сети. Заметим, что протокол АН обеспечивает защиту от изменений IP-адресов в заголовке пакета. Протокол аутентификации АН создает своеобразный конверт, обеспечивающий аутентификацию источника данных, их целостность и защиту от навязывания повторных сообщений.
Местоположение заголовка АН в пакете зависит от того, в каком режиме — транспортном или туннельном — сконфигурирован защищенный канал. На рис. 12.4 показано расположение АН-заголовка относительно IP-заголовка в обоих режимах.
В транспортном режиме заголовок исходного IP-пакета становится внешним заголовком, за ним следует заголовок АН, а затем все данные защищаемого пакета (т. е. пакет протокола верхнего уровня). Протокол АН защищает весь полученный таким образом пакет, включая заголовок IP и собственно сам заголовок АН. Таким образом, любое изменение данных в пакете или заголовков будет обнаружено. Следует также заметить, что в этом режиме данные пакета отсылаются открытыми, т. е. данные пакета защищены от изменений, но не защищены от просмотра. В частности, не удается скрыть IP-адреса источника и назначения от возможного просмотра посторонними лицами, поскольку эти поля всегда присутствуют в незашифрованном виде и соответствуют действительным адресам хостов.
В туннельном режиме в качестве заголовка внешнего IP-пакета создается новый заголовок IP. IP-адреса посылающей и принимающей сторон могут отличаться от адресов в заголовке исходного IP-пакета. В защищенном IP-пакете внутренний (первоначальный) IP-заголовок содержит целевой адрес пакета, а внешний IP-заголовок содержит адрес конца туннеля. За новым заголовком внешнего IP-пакета следует заголовок АН, а затем весь исходный пакет (заголовок IP и сами данные). Как и в случае транспортного режима, протокол АН защищает весь созданный пакет (два заголовка IP, заголовок АН и данные), что также позволяет обнаружить любые изменения в пакете. Как и в транспортном режиме, сам пакет не защищен от просмотра.
Независимо от режима работы, протокол АН предоставляет меры защиты от атак, направленных на нарушение целостности и подлинности пакетов сообщений. С помощью этого протокола аутентифицируется каждый пакет, что делает программы, пытающиеся перехватить управление сеансом, неэффективными. Протокол АН обеспечивает аутентификацию не только содержимого, но и заголовков IP-пакетов. Однако следует иметь в виду, что аутентификация по протоколу АН не допускает манипулирования основными полями IP-заголовка во время прохождения пакета. По этой причине данный протокол нельзя применять в среде, где используется механизм трансляции сетевых адресов NAT (Network Address Translation), поскольку для его работы необходимо манипулирование IP-заголовками.
Протокол АН может применяться как отдельно, так и в комбинации с протоколом ESP или даже с пакетом, который уже содержит АН-заголовок (вложенное применение).
2. Протокол инкапсулирующей защиты ESP
Протокол инкапсулирующей защиты содержимого ESP (Encapsulating Security Payload) обеспечивает конфиденциальность, аутентичность, целостность и защиту от повторов для пакетов данных. Следует отметить, что конфиденциальность данных протокол ESP обеспечивает всегда, а целостность и аутентичность являются для него опциональными требованиями. Конфиденциальность данных обеспечивается путем шифрования содержимого отдельных пакетов. Целостность и аутентичность данных обеспечиваются на основе вычисления дайджеста.
Из приведенного перечня функций по защите информационного обмена видно, что функциональность протокола ESP шире, чем у протокола АН. Протокол ESP поддерживает все функции протокола АН по защите зашифрованных потоков данных от подлога, воспроизведения и случайного искажения, а также обеспечивает конфиденциальность данных.
В протоколе ESP функции аутентификации и криптографического закрытия могут быть задействованы либо вместе, либо отдельно друг от друга. При выполнении шифрования без аутентификации появляется возможность использования механизма трансляции сетевых адресов NAT (Network Address Translation), поскольку в этом случае адреса в заголовках IP-пакетов можно модифицировать.
Для решения своих задач протокол ESP использует заголовок формата, приведенного на рис. 12.5.
Заголовок ESP содержит следующие поля:
• индекс параметров защиты SPI (Security Parameters Index) — используется совместно с адресом получателя и протоколом защиты (АН или ESP). Указывает соответствующее соглашениеSA. Получатель использует это значение для определения соглашения о защите, с которым идентифицируется этот пакет;
• порядковый номер SN (Sequence Number) — обеспечивает защиту от повторов для SA. Представляет собой 32-битное число, первоначально равное 1 и увеличивающееся с шагом 1. Оно не повторяется циклически и указывает номер пакета, отсылаемого по данному соглашению. Получатель проверяет это поле с целью удостовериться, что пакета с таким номером принято еще не было. Если же такой пакет уже был, он не принимается;
• данные (Payload Data);
• заполнитель (Padding) — дописывается от 0 до 255 байт для 32-битного выравнивания с размером блока шифра;
• длина заполнителя (Padding Length) — указывает длину поля заполнителя в байтах;
• следующий заголовок (Next Header) — указывает природу передаваемых данных (например, TCP или UDP);
• аутентификационные данные (Authentication Data) — содержат код проверки целостности ICV (Integrity Check Value) и код аутентичности сообщения, используемые для проверки подлинности отправителя и целостности сообщения. Значение ICV вычисляется для заголовка ESP, передаваемых данных и концевой метки ESP. Поле Authentication Data помещается в заголовок ESP только при включенной аутентификации.
Нетрудно заметить, что некоторые поля заголовка ESP аналогичны полям заголовка АН: Next Header, SPI, SN, Authentication Data. Но есть и два дополнительных поля — заполнитель (Padding) и длина заполнителя (Pad Length). Заполнитель может понадобиться в трех случаях. Во-первых, для нормальной работы некоторых алгоритмов шифрования необходимо, чтобы шифруемый текст содержал кратное число блоков определенного размера. Во-вторых, формат заголовка ESP требует, чтобы поле данных заканчивалось на границе четырех байтов. В-третьих, заполнитель можно использовать для сокрытия действительного размера пакета в целях обеспечения так называемой частичной конфиденциальности трафика, хотя протокол ESPограничивает возможности маскировки 255 байтами заполнителя; это сделано для того, чтобы не слишком снижалась полезная пропускная способность канала связи из-за большого объема избыточных данных.
Как видно из рис. 12.5, заголовок делится на две части, разделяемые полем данных (полезная нагрузка — Payload Data). Первая часть, которая далее будет обозначаться как заголовок ESP, образуется двумя полями — SPI и SN — и размещается перед полем данных. Остальные служебные поля протокола ESP расположены в конце пакета. Непосредственно за полем данных следует так называемый трейлер, в который входят заполнитель (Padding), длина заполнителя (Pad Length), а также указатель на протокол следующего уровня (Next Header). Завершает пакет поле контроля целостности (Authentication Data). В том случае, когда при установлении безопасной ассоциации принято решение не использовать возможности ESP по обеспечению целостности, это поле отсутствует.
ПО перечисленных протоколов (утилиты шифрования, цифровой подписи и пр.) может функционировать на серверах или компьютерах конечных пользователей. Однако чаще его устанавливают на маршрутизаторах или специальных устройствах, которые в архитектуре IPSec именуются шлюзами безопасности (security gateway).
Протокол ESP также используют в двух режимах — транспортном и туннельном.
В транспортном режиме зашифрованные данные транспортируются непосредственно между хостами. В транспортном режиме протокола ESP заголовок исходного IP-пакета остается внешним. Заголовок ESP помещается в передаваемый пакет между заголовками протоколов третьего (IP) и четвертого (например, TCP) уровней. Следует заметить, что поля протокола ESPследуют после стандартного IP-заголовка, а это означает, что такой пакет может маршрутизироваться в сети с помощью обычного оборудования, поддерживающего IP.
Шифрованию подвергаются только данные исходного IP-пакета (пакет верхнего уровня) и заключительная часть ESP заголовка (ESP trailer). В этом режиме ESP не шифрует заголовок IP-пакета, иначе маршрутизатор не сможет прочитать поля заголовка и корректно осуществить продвижение пакета между сетями. В число шифруемых полей не попали также поля SPI и SN, которые должны передаваться в открытом виде, для того чтобы прибывший пакет можно было отнести к определенной ассоциации SA и защититься от ложного воспроизведения пакета.
В отличие от протокола АН, контроль целостности и аутентичности данных в протоколе ESP не распространяется на заголовок исходного пакета, и по этой причине имеет смысл применять оба протокола совместно — ESP для шифрования, а АН для контроля целостности.
Таким образом, адресная информация (IP-адреса отсылающей и принимающей сторон) видна при пересылке пакета по сети, и несанкционированное изменение этих IP-адресов не будет замечено.
В туннельном режиме основная роль отводится шлюзам безопасности, поскольку предполагается, что клиентские станции (или серверы) могут не поддерживать IPSec и отправляют в сеть обычный IP-трафик. Перед тем как достичь каналов глобальной сети, каждый исходный IP-пакет сначала попадает в шлюз, который помещает этот пакет целиком в «оболочку» IPSec, зашифровывая его содержимое вместе с исходным IP-заголовком. Чтобы обеспечить возможность маршрутизации получившегося пакета, шлюз снабжает его новым IP-заголовком и только после этого отправляет в сеть. Шлюз, находящийся на противоположном конце соединения, расшифровывает этот пакет и передает его на оконечное устройство в первоначальном виде. Описанная процедура называется туннелированием.
В туннельном режиме в качестве внешнего заголовка создается новый заголовок IP. Весь исходный IP-пакет (и данные и заголовок IP) и заключительная часть заголовка ESP (трейлер ESP) шифруются. Поэтому адресная информация исходного IP-пакета не доступна для просмотра. Заголовок внешнего IP-пакета протоколом ESP не защищается.
Туннелирование позволяет распространить действие средств защиты на сетевой уровень модели OSI и, в частности, скрыть истинные адреса источника и получателя. При этом уменьшается риск атак, основанных на детальном анализе трафика.
Сравнивая протоколы ESP и АН можно заметить, что они дублируют функциональность друг друга в области обеспечения аутентификации данных. Главным отличием протокола АН отESP в данном вопросе является то, что протокол АН обеспечивает аутентификацию всего пакета (и IP заголовка и самих данных), в то время как протокол ESP аутентифицирует только данные из пакета. При шифровании в протоколе ESP используется симметричный секретный ключ, т. е. передаваемые данные зашифровываются и расшифровываются с помощью одного и того же ключа. Для протокола ESP также определен перечень обязательных алгоритмов шифрования — DES, MD5 и SHA-1.
При аутентификации данных протокол ESP использует те же алгоритмы НМАС, что и протокол АН (использующие MD5 или SHA-1 в качестве функции хеширования). Однако способы применения различаются.
В транспортном режиме:
• протокол ESP аутентифицирует только данные из пакета, не затрагивая IP-заголовка;
• протокол АН защищает и данные и оба заголовка. В туннельном режиме:
• аутентификация в ESP протоколе применяется к данным пакета и исходному IP-заголовку, но не затрагивает новый IP-заголовок;
• протокол АН аутентифицирует данные, АН-заголовок и оба IP-заголовка.
Протокол ESP может применяться отдельно или совместно с протоколом АН. При совместном использовании протоколы АН и ESP могут комбинироваться разными способами. Если используется транспортный режим, то аналогично тому, как в рамках ESP аутентификация идет следом за шифрованием, протокол АН должен применяться после протокола ESP. В туннельном режиме протоколы АН и ESP применяются к разным вложенным пакетам и, кроме того, допускается многократная вложенность туннелей с различными начальными и/или конечными точками.
3. Алгоритмы аутентификации и шифрования в IPSec
Стек протоколов IPSec представляет собой согласованный набор открытых стандартов, имеющий вполне определенное ядро, и в то же время он может быть достаточно просто дополнен новыми протоколами, алгоритмами и функциями. Благодаря модульной структуре протоколы АН и ESP допускают применение пользователями по их согласованному выбору различных криптографических алгоритмов аутентификации и шифрования. Для шифрования данных в IPSec (протокол ESP) может быть применен практически любой симметричный алгоритм шифрования, использующий секретные ключи.
Для обеспечения целостности и аутентификации данных (протоколы АН и ESP) используется один из приемов шифрования — шифрование с помощью односторонней функции (one-wayfunction), называемой также хэш-функцией (hash function) или дайджест-функцией (digest function). Эта функция, примененная к шифруемым данным, дает в результате значение-дайджест, состоящее из фиксированного небольшого числа байт. Дайджест передается в IP-пакете вместе с исходным сообщением. Получатель, зная, какая односторонняя функция шифрования была применена для составления дайджеста, заново вычисляет его, используя исходное сообщение. Если значения полученного и вычисленного дайджестов совпадают, это значит, что содержимое пакета во время передачи не было подвергнуто никаким изменениям. Знание дайджеста не дает возможности восстановить исходное сообщение и поэтому не может быть использовано для защиты конфиденциальности, но оно позволяет проверить целостность данных.
Дайджест является своего рода контрольной суммой для исходного сообщения. В отличие от традиционной контрольной суммы при вычислении дайджеста используется секретный ключ. Если для получения дайджеста применялась односторонняя функция с параметром (в качестве которого выступает секретный ключ), известным только отправителю и получателю, любая модификация исходного сообщения будет немедленно обнаружена.
В целях обеспечения совместимости продуктов разных производителей рабочая группа IETF определила базовый набор поддерживаемых функций и алгоритмов, который должен быть однотипно реализован во всех продуктах, поддерживающих IPSec. На сегодня определены 2 алгоритма аутентификации и 7 алгоритмов шифрования.
В настоящий момент для протоколов АН и ESP зарегистрировано 2 алгоритма аутентификации — HMAC-MD5 и НМАС-SHA1. Алгоритм НМАС (Keyed-Hashing for Message Authentication Code) определяется стандартом RFC 2104. Функции MD5 (Message Digest version 5, стандарт RFC 1321) и SHA1 (Secure Hash Algorithm version 1, стандарт FIPS 180-1) являютсяфункциями хеширования. Алгоритмы HMAC-MD5 и HMAC-SHA1 являются алгоритмами аутентификации с общим секретным ключом. Секретный ключ имеет длину 128 бит в случаеMD5 и 160 бит в случае SHA1.
Если секретный ключ известен только передающей и принимающей сторонам, это обеспечит аутентификацию источника данных, а также целостность пакетов, пересылаемых между двумя сторонами. Ключи для НМАС генерируются посредством процедуры ISAKMP/Oakley. Для обеспечения совместимости оборудования и ПО на начальной стадии реализации протокола
IPSec один из зарегистрированных алгоритмов аутентификации принято использовать по умолчанию. В качестве такого алгоритма определен алгоритм HMAC-MD5.
Структура алгоритма НМАС показана на рис. 12.7. Принцип действия алгоритма НМАС заключается в двухкратной обработке пакета функцией хеширования, управляемой ключом аутентификации (например, функцией хеширования MD5). Как видно из рисунка, оба раза в обрабатываемые данные включается секретный ключ, который обеспечивает аутентификацию передаваемой информации. Полученная контрольная сумма помещается в заголовок АН протокола. Проверка аутентификации на другой стороне осуществляется путем повторного вычисления контрольной суммы для пришедшего пакета с использованием такого же ключа и сравнения полученного результата с присланным.
Алгоритм НМАС реализует симметричную схему аутентификации, используя параметр проверки целостности пакета ICV (Integrity Check Value). По сути, он представляет собой цифровую подпись, помещаемую в поле аутентификации и позволяющую отправителю подписать результат предварительного хеширования содержательной части пакета ESP.
Анализ содержимого этого поля дает возможность получателю идентифицировать источник данных и убедиться в том, что они не были изменены в процессе передачи. Если для протоколаESP функции аутентификации являются факультативными, то для протокола АН процесс аутентификации обязателен.
Для протокола ESP зарегистрировано несколько алгоритмов шифрования. Чаще всего в качестве алгоритмов шифрования для ESP применяются DES (Data Encryption Standard), 3DES(тройной DES) и новый стандарт шифрования AES (Advanced
Encryption Standard). Для обеспечения IPSec-совместимости по умолчанию в качестве алгоритма шифрования стандартом предусмотрен симметричный метод DES-CBC (Cipher BlockChaining) с явно заданным вектором инициализации IV и с 56-разрядным ключом. Алгоритм AES повсюду встраивается в стандарт IPSec как альтернатива DES и 3DES.
Выбор алгоритма шифрования целиком зависит от разработчика. Возможность выбора алгоритма шифрования предоставляет пользователю дополнительное преимущество: злоумышленник должен не только вскрыть шифр, но и определить, какой именно шифр ему надо вскрывать, а вместе с необходимостью подбора ключей, это еще более уменьшает его шансы своевременно расшифровать данные пользователя.
IPSec может работать совместно с протоколами L2TP или L2F, которые выполняют только туннелирование, но не обеспечивают шифрование и аутентификацию данных. Эти протоколы создают через Internet туннель для пакетов любых протоколов, упаковывая их в пакеты IP. Когда трафик с помощью L2F или L2TP оказывается упакованным в пакеты IP, то дальше для его защиты можно использовать IPSec. В результате комбинирование IPSec с протоколами туннелирования типа L2F/L2TP позволяет решить задачу защиты данных для протоколов, отличных от IP.
Алгоритмическая независимость протоколов АН и ESP требует предварительного согласования взаимодействующими сторонами набора применяемых алгоритмов и их параметров.
Эта статья была опубликована Среда, 21 апреля, 2010 at 12:28 в рубрике Защита на сетевом уровне (Протокол IPSEC). Вы можете следить за ответами через RSS 2.0 feed.