From: Alexander HunSolo <a.hunsolo@gmail.com.>
Newsgroups: http://www.ciscolab.ru/
Date: Mon, 5 Feb 2007 14:31:37 +0000 (UTC)
Subject: Технологии используемые в IPSEC
IPSEC как протокол защиты сетевого трафика IPSEC и VPN
Введение
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
Протокол 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
завершают свою работу либо в результате их удаления, либо по
причине превышения предельного времени их существования.
В следующих разделах указанные шаги будут описаны подробнее.
Шаг 1. Начало процесса IPSec
Тип трафика, который должен защищаться средствами IPSec, определяется
в рамках политики защиты для VPN. Затем эта политика реализуется в
виде команд конфигурации интерфейсов устройств каждой стороны IPSec.
Например, в маршрутизаторах Cisco и брандмауэрах PIX Firewall для
определения трафика, подлежащего шифрованию, используют списки
доступа. Списки доступа реализуют политику шифрования, например, с
помощью операторов permit, указывающих, что соответствующий трафик
должен шифроваться, и операторов deny, запрещающих шифрование
соответствующего трафика. В случае клиента Cisco VPN используются окна
меню, где указываются соединения, которым должна обеспечиваться
защита IPSec. Когда подлежащий шифрованию трафик генерируется клиентом
IPSec или проходит через него, клиент инициирует следующий шаг
процесса, начиная первую фазу IKE.
Шаг 2. Первая фаза IKE
Главной целью обмена данными, происходящего в первой фазе IKE,
является аутентификация сторон IPSec и создание защищенного канала
между сторонами, позволяющего начать обмен IKE. В ходе первой фазы IKE
выполняются следующие действия.
* Ведутся переговоры о согласовании политики ассоциаций защиты IKE
между сторонами, чтобы обеспечить защиту обмена IKE. Ассоциация
защиты IKE получает согласованные параметры IKE и является
двусторонней.
* Выполняется аутентифицированный обмен Диффи-Хеллмана, в результате
которого выбирается общий секретный ключ для использования в
алгоритмах шифрования IPSec.
* Выполняется аутентификация и обеспечивается защита сторон IPSec.
* Устанавливается защищенный туннель для ведения переговоров о
параметрах второй фазы IKE.
Для первой фазы IKE допустимы два режима: основной и энергичный
Основной режим первой фазы IKE (Main Mode)
В этом режиме выполняются три двухсторонних обмена между инициатором и
респондентом.
1. В ходе первого обмена алгоритмы, используемые для защиты связи
IKE, согласуются до тех пор, пока не будет достигнуто соответствие
для всех ассоциаций защиты IKE сообщающихся сторон.
2. В процессе второго обмена выполняется алгоритм Диффи-Хеллмана,
чтобы согласовать общий секретный материал, на основе которого
создаются общие секретные ключи, передать так называемые "оказии"
(случайные значения, посылаемые другой стороне), подписать их и
возвратить обратно, чтобы доказать "свою личность".
3. В ходе третьего обмена выполняется аутентификация
стороны-партнера. Идентификационным значением в данном случае
выступает IP-адрес стороны IPSec в шифрованном виде.
Основным результатом этого режима является согласование параметров
ассоциаций защиты IKE между сторонами с целью создания защищенного
канала для последующих обменов IKE.
Ассоциация защиты IKE определяет параметры обмена IKE: используемый
метод аутентификации, алгоритмы шифрования и хэширования, используемая
группа Диффи-Хеллмана (одна из двух доступных), максимальное время
существования ассоциации защиты IKE в секундах или килобайтах и
совместно используемые секретные значения ключей для алгоритмов
шифрования. Ассоциации защиты IKE в устройствах каждой из сторон
являются двусторонними.
Энергичный режим первой фазы IKE (Aggressive mode)
В данном режиме меньше и число обменов, и число пересылаемых при этом
пакетов, в результате чего требуется меньше времени для установки
сеанса IPSec. В этом случае выполняются следующие действия.
1. В ходе первого обмена почти все необходимое включается в
предлагаемые значения для ассоциаций защиты IKE, открытый ключ
Диффи-Хеллмана, оказию, подписываемую второй стороной, и пакет
идентификации, который можно использовать для того, чтобы
аутентифицировать вторую сторону с помощью третьей стороны.
2. Получатель отправляет назад все, что требуется, чтобы завершить
обмен. Инициатору остается только подтвердить обмен.
Недостатком использования энергичного режима является то, что обе
стороны обмениваются информацией до того, как создан защищенный канал.
Таким образом, можно подключиться к линии и выяснить, кто формирует
новую ассоциацию защиты. С другой стороны, обмен происходит быстрее,
чем в основном режиме. Энергичный режим для обмена IKE обычно не
инициируется продуктами Cisco, но маршрутизаторы Cisco и брандмауэры
PIX Firewall могут соответствующим образом ответить стороне IPSec,
инициировавшей обмен в энергичном режиме.
Шаг 3. Вторая фаза IKE (Quick Mode)
Задачей второй фазы IKE является согласование параметров ассоциации
защиты IPSec с целью создания туннеля IPSec. В этой фазе выполняются
следующие действия.
* Ведутся переговоры о параметрах ассоциации защиты IPSec,
защищаемые существующей ассоциацией защиты IKE.
* Устанавливаются ассоциации защиты IPSec.
* Периодически возобновляются переговоры об ассоциациях защиты
IPSec, чтобы гарантировать защиту.
* В необязательном порядке может выполняться дополнительный обмен
Диффи-Хеллмана.
Вторая фаза IKE выполняется только в быстром режиме, после того как в
результате первой фазы IKE создается защищенный туннель. Затем ведутся
переговоры о согласованной политике IPSec, извлекается общий секретный
материал для работы алгоритмами защиты IPSec и создаются ассоциации
защиты IPSec. В быстром режиме выполняется обмен оказиями, которые
обеспечивают защиту от воспроизведения сообщений. Оказии используются
для того, чтобы гарантировать создание новых секретных ключей и не
допустить проведения атак воспроизведения, в результате которых
противник мог бы создать "фальшивые" ассоциации защиты.
Быстрый режим используется также для того, чтобы договориться о новых
ассоциациях защиты IPSec, когда оказывается превышен предел времени
существования старой ассоциации защиты IPSec. Базовый вариант быстрого
режима используется для того, чтобы обновить секретный материал,
предназначенный для создания общего секретного ключа на основе
значений, полученных при обмене Диффи-Хеллмана в ходе первой фазы.
В IPSec имеется опция PFS (Perfect Forward Secrecy -- совершенная
прямая секретность), усиливающая защиту ключей. Если политикой IPSec
предписано использование опции PFS, то для каждого обмена в быстром
режиме требуется новый обмен Диффи-Хеллмана, обеспечивающий новые
данные для ключей, в результате чего данные для ключей будут обладать
большей энтропией ("нерегулярностью") и потому большей устойчивостью в
отношении криптографических атак. Каждый обмен Диффи-Хеллмана требует
большого числа возведений в степень, что увеличивает загрузку
процессора и снижает общую производительность системы.
Ассоциации защиты, согласуемые в быстром режиме, идентифицируются
IP-адресами IКЕ-сторон.
Согласование преобразований IPSec
В ходе второй фазы в рамках протокола IKE ведутся переговоры о
преобразованиях IPSec (алгоритмах защиты IPSec). IPSec состоит из
двух главных протоколов защиты и множества протоколов поддержки.
Преобразования IPSec и связанные с ними алгоритмы шифрования являются
следующими.
* Протокол АН (Authentication Header -- заголовок аутентификации).
Протокол зашиты, обеспечивающий аутентификацию и (в качестве
опции) сервис выявления воспроизведения. Протокол АН действует как
цифровая подпись и гарантирует, что данные в пакете IP не будут
несанкционированно изменены. Протокол АН не обеспечивает сервис
шифрования и дешифрования данных. Данный протокол может
использоваться или самостоятельно, или совместно с протоколом ESP.
* Протокол ESP (Encapsulating Security Payload -- включающий защиту
полезный груз). Протокол защиты, обеспечивающий конфиденциальность
и защиту данных, а также (в качестве опции) сервис аутентификации
и выявления воспроизведения. Поддерживающие IPSec продукты Cisco
используют ESP для шифрования полезного груза IP-пакетов. Протокол
ESP может использоваться самостоятельно или совместно с АН.
* Стандарт DES (Data Encription Standard -- стандарт шифрования
данных). Алгоритм шифрования и дешифрования данных пакетов.
Алгоритм DES используется как в рамках IPSec, так и IKE. Для
алгоритма DES используется 56-битовый ключ, что означает не только
более высокое потребление вычислительных ресурсов, но и более
надежное шифрование. Алгоритм DES является симметричным алгоритмом
шифрования, для которого требуются идентичные секретные ключи
шифрования в устройствах каждой из сообщающихся сторон IPSec. Для
создания симметричных ключей применяется алгоритм Диффи-Хеллмана.
IKE и IPSec используют алгоритм DES для шифрования сообщений.
* "Тройной" DES (3DES). Вариант DES, основанный на использовании
трех итераций стандартного DES с тремя разными ключами, что
практически утраивает стойкость DES. Алгоритм 3DES используется в
рамках IPSec для шифрования и дешифрования потока данных. Данный
алгоритм использует 168-битовый ключ, что гарантирует высокую
надежность шифрования. IKE и IPSec используют алгоритм 3DES для
шифрования сообщений.
При преобразовании IPSec используется также два стандартных алгоритма
хэширования, обеспечивающих аутентификацию данных.
* Алгоритм MD5 (Message Digest 5 ). Алгоритм хэширования,
применяемый для аутентификации пакетов данных. В продуктах Cisco
используется вычисляемый с помощью MD5 код НМАС (Hashed Message
Authentication Code -- хэшированный код аутентичности сообщения)
-- вариант кода аутентичности сообщения, которому обеспечивается
дополнительная защита с помощью хэширования. Хэширование
представляет собой процесс одностороннего (т.е. необратимого)
шифрования, в результате которого для поступающего на вход
сообщения произвольной длины получается вывод фиксированной длины.
IKE, АН и ESP используют MD5 для аутентификации данных.
* Алгоритм SHA-1 (Secure Hash Algorithm-1 -- защищенный алгоритм
хэширования 1).
Алгоритм хэширования, используемый для аутентификации пакетов
данных. В продуктах Cisco применяется вариант кода НМАС,
вычисляемый с помощью SHA-1. IKЕ, АН и ESP используют SHA-1 для
аутентификации данных.
В рамках протокола IKE симметричные ключи создаются с помощью
алгоритма Диффи-Хеллмана, использующего DES, 3DES, MD5 и SHA. Протокол
Диффи-Хеллмана является криптографическим протоколом, основанным на
применении открытых ключей. Он позволяет двум сторонам согласовать
общий секретный ключ, не имея достаточно надежного канала связи. Общие
секретные ключи требуются для алгоритмов DES и НМАС. Алгоритм
Диффи-Хеллмана используется в рамках IKE для создания сеансовых
ключей. В продуктах Cisco поддерживаются 768- и 1024-битовые группы
Диффи-Хеллмана. 1024-битовая группа обеспечивает более надежную
защиту.
Каждой ассоциации защиты IPSec присваивается индекс SPI (Security
Parameter Index -- индекс параметров защиты) -- число, используемое
для идентификации ассоциации защиты IPSec. Ассоциация защиты IPSec
определяет используемое преобразование IPSec (ESP и/или АН и
соответствующие алгоритмы шифрования и хэширования), предел времени
существования ассоциации защиты IPSec в секундах или килобайтах,
указывает необходимость применения опции PFS, IP-адреса сторон, а
также общие значения секретных ключей для алгоритмов шифрования и
другие параметры. Все ассоциации защиты IPSec являются односторонними.
Один цикл согласования ассоциации защиты IPSec завершается созданием
двух ассоциаций защиты -- одной входящей и одной исходящей.
Протоколы АН и ESP IPSec могут действовать или в туннельном, или в
транспортном режимах. Туннельный режим используется для связи между
шлюзами IPSec, и в этом случае средствам IPSec приходится создавать
совершенно новый заголовок IPSec. Транспортный режим обычно
применяется между клиентом и сервером VPN, и при этом используется
существующий заголовок IP.
Шаг 4. Передача данных
После завершения второй фазы IKE и создания ассоциаций защиты IPSec в
быстром режиме, начинается обмен информацией через туннель IPSec,
связывающий стороны IPSec. Пакеты шифруются и дешифруются с помощью
алгоритмов шифрования и ключей, указанных ассоциацией защиты IPSec.
Ассоциация защиты IPSec задает также предел времени своего
существования в килобайтах передаваемых данных или в секундах.
Ассоциация защиты имеет специальный счетчик, значение которого
уменьшается на единицу за каждую секунду или после передачи каждого
килобайта данных.
Шаг 5. Завершение работы туннеля IPSec
Ассоциации защиты IPSec завершают свою работу либо по причине их
удаления, либо потому, что оказывается превышен предел времени их
существования. Когда ассоциации защиты завершают работу,
соответствующие им ключи тоже становятся недействительными. Если для
потока данных требуются новые ассоциации защиты IPSec, в рамках
протокола IKE снова выполняется обмен второй фазы, а если необходимо,
то и первой. В результате успешного их завершения создаются новые
ассоциации защиты и новые ключи. Новые ассоциации защиты могут
создаваться и до истечения времени существования предыдущих, чтобы
поток данных мог двигаться непрерывно. Обычно переговоры второй фазы
выполняются чаще, чем переговоры первой фазы.
Атаки на AH, ESP и IKE.
Все виды атак на компоненты IPSec можно разделить на следующие группы:
атаки, эксплуатирующие конечность ресурсов системы (типичный пример -
атака "Отказ в обслуживании", Denial-of-service или DOS-атака), атаки,
использующие особенности и ошибки конкретной реализации IPSec и,
наконец, атаки, основанные на слабостях самих протоколов. AH и ESP.
Чисто криптографические атаки можно не рассматривать - оба протокола
определяют понятие "трансформ", куда скрывают всю криптографию. Если
используемый криптоалгоритм стоек, а определенный с ним трансформ не
вносит дополнительных слабостей (это не всегда так, поэтому правильнее
рассматривать стойкость всей системы - Протокол-Трансформ-Алгоритм),
то с этой стороны все нормально. Что остается? Replay Attack -
нивелируется за счет использования Sequence Number (в одном
единственном случае это не работает - при использовании ESP без
аутентификации и без AH). Далее, порядок выполнения действий (сначала
шифрация, потом аутентификация) гарантирует быструю отбраковку
"плохих" пакетов (более того, согласно последним исследованиям в мире
криптографии, именно такой порядок действий наиболее безопасен,
обратный порядок в некоторых, правда очень частных случаях, может
привести к потенциальным дырам в безопасности; к счастью, ни SSL, ни
IKE, ни другие распространенные протоколы с порядком действий "сначала
аутентифицировать, потом зашифровать", к этим частным случаям не
относятся, и, стало быть, этих дыр не имеют). Остается
Denial-Of-Service атака. Как известно, это атака, от которой не
существует полной защиты. Тем не менее, быстрая отбраковка плохих
пакетов и отсутствие какой-либо внешней реакции на них (согласно RFC)
позволяют более-менее хорошо справляться с этой атакой. В принципе,
большинству (если не всем) известным сетевым атакам (sniffing,
spoofing, hijacking и т.п.) AH и ESP при правильном их применении
успешно противостоят. С IKE несколько сложнее. Протокол очень сложный,
тяжел для анализа. Кроме того, в силу опечаток (в формуле вычисления
HASH_R) при его написании и не совсем удачных решений (тот же HASH_R и
HASH_I) он содержит несколько потенциальных "дыр" (в частности, в
первой фазе не все Payload в сообщении аутентифицируются), впрочем,
они не очень серьезные и ведут, максимум, к отказу в установлении
соединения. От атак типа replay, spoofing, sniffing, hijacking IKE
более-менее успешно защищается. С криптографией несколько сложнее, -
она не вынесена, как в AH и ESP, отдельно, а реализована в самом
протоколе. Тем не менее, при использовании стойких алгоритмов и
примитивов (PRF), проблем быть не должно. В какой-то степени можно
рассматривать как слабость IPsec то, что в качестве единственного
обязательного к реализации криптоалгоритма в нынешних спецификациях
указывается DES (это справедливо и для ESP, и для IKE), 56 бит ключа
которого уже не считаются достаточными. Тем не менее, это чисто
формальная слабость - сами спецификации являются
алгоритмо-независимыми, и практически все известные вендоры давно
реализовали 3DES (а некоторые уже и AES).Таким образом, при правильной
реализации, наиболее "опасной" атакой остается Denial-Of-Service.
По материалам:
http://www.ixbt.com/comm/ipsecure.shtml Cisco Security VPN IPSEC
Технологии используемые в IPSEC
Давайте рассмотрим детали технологий, составляющих суть
IPSec. Стандарты, используемые в рамках IPSec, являются достаточно
сложными для понимания, поэтому в этом разделе мы рассмотрим каждую из
составляющих IPSec подробно.
В IPSec используются следующие технологии:
* протокол АН;
* протокол ESP;
* стандарт шифрования DES;
* стандарт шифрования 3DES;
* протокол IKE;
* метод согласования ключей по схеме Диффи-Хеллмана;
* хэшированные коды аутентичности сообщений (НМАС);
* защита RSA;
* центры сертификации.
Протокол АН
Данный протокол обеспечивает аутентификацию и целостность данных для
пакетов IP, передаваемых между двумя системами. Протокол АН не
обеспечивает конфиденциальность (т.е. шифрование) пакетов.
Аутентификация выполняется путем применения к пакету односторонней,
зависящей от ключа функции хэширования, генерирующей "профиль"
сообщения. Изменение любой части пакета в пути передачи будет
обнаружено получателем в результате применения к полученным данным
аналогичной односторонней функции хэширования и сравнения вычисленного
значения профиля сообщения с тем, которое указал отправитель.
Аутентичность полученной информации гарантируется тем, что для
одностороннего хэширования обеими системами используется один и тот же
секретный ключ. Схема работы протокола АН показана ниже. При этом
выполняются следующие действия.
1. Выполняется хэширование IP-заголовка и полезного груза пакета.
2. Полученный хэш-код используется при построении нового заголовка
АН, который подсоединяется к исходному пакету между заголовком и
блоком полезного груза.
3. Новый пакет передается второй стороне IPSec.
4. Сторона-получатель вычисляет значение хэш-кода для заголовка IP и
полезного груза, извлекает переданное значение хэш-кода из
заголовка АН и сравнивает эти два значения. Соответствующие
значения хэш-кода должны в точности совпадать. Если в пути
изменится хотя бы один бит пакета, вычисленный получателем хэш-код
пакета не будет совпадать со значением, указанным в заголовке АН.
Протокол АН обеспечивает аутентификацию для максимально возможного
числа полей заголовка IP, как и для полей данных протоколов высших
уровней. Однако некоторые поля заголовка IP могут изменяться в пути.
Значения изменяемых полей (например, поля TTL, указывающего время
существования пакета) изменяются промежуточными сетевыми устройствами,
через которые проходит пакет, и такие изменения отправитель
прогнозировать не может. Значения изменяемых полей не должны
защищаться протоколом АН. Таким образом, защита, которая
обеспечивается заголовку IP протоколом АН, оказывается несколько
ограниченной. Протокол АН может также дополнительно обеспечить защиту
от воспроизведения пакетов, для чего в заголовке IP указывается
порядковый номер пакета. Полное описание протокола АН содержится в
документе RFC 2402.
Протокол ESP
ESP является протоколом защиты, обеспечивающим конфиденциальность
(т.е. шифрование), аутентификацию источника и целостность данных, а
также (в качестве опции) сервис защиты от воспроизведения и
ограниченную конфиденциальность трафика путем противодействия попыткам
анализа потока данных.
Протокол ESP обеспечивает конфиденциальность с помощью шифрования на
уровне пакетов IP. При этом поддерживается множество алгоритмов
симметричной схемы шифрования. Алгоритмом по умолчанию для IPSec
является DES с 56-битовым ключом. Этот шифр должен присутствовать для
гарантии совместимости между всеми поддерживающими IPSec продуктами.
Продукты Cisco поддерживают также алгоритм 3DES, обеспечивающий более
стойкое шифрование. Конфиденциальность может быть выбрана независимо
от других сервисов.
Аутентификация источника данных и поддержка целостности без
установления соединений используются совместно и являются опциями
(т.е. необязательны). Эти возможности можно также объединить с
сервисом конфиденциальности.
Сервис защиты от воспроизведения можно выбрать только в том случае,
если выбрана аутентификация источника данных, и выбор этого сервиса
является исключительной прерогативой получателя. Хотя по умолчанию от
отправителя и требуется автоматически увеличивать порядковый номер,
используемый для защиты от воспроизведения, этот сервис оказывается
эффективным только в том случае, если получатель проверяет этот
порядковый номер. Конфиденциальность трафика требует выбора
туннельного режима. Наиболее эффективным это оказывается в шлюзе
защиты, где маскировка источника-адресата может быть выполнена сразу
для всего трафика. Здесь следует отметить, что хотя и
конфиденциальность, и аутентификация являются опциями, должен быть
выбран по крайней мере один из этих сервисов.
Набор сервисов, обеспечиваемых протоколом ESP, зависит от параметров,
которые указываются в конфигурации IPSec и выбираются при создании
ассоциации защиты IPSec. Однако выбор конфиденциальности без
целостности/аутентификации (или в рамках ESP, или отдельно с помощью
АН) оставляет противнику возможность для проведения атак определенного
вида, что может ограничить пользу применяемого таким образом
сервиса конфиденциальности.
Заголовок ESP вставляется в пакет после заголовка IP перед заголовком
протокола высшего уровня (в транспортном режиме) или перед
инкапсулированным заголовком IP (в туннельном режиме). Полное описание
протокола ESP содержится в документе RFC 2406.
Шифрование ESP с применением НМАС
В рамках протокола ESP может также обеспечиваться аутентификация
пакетов с помощью необязательного поля аутентификации. В программном
обеспечении Cisco IOS и в брандмауэрах PIX Firewall этот сервис
называется ESP НМАС. Значения аутентификации вычисляются после того,
как выполнено шифрование. Используемый сегодня стандарт IPSec
описывает алгоритмы SHA1 и MD5 как обязательные для НМАС.
Главное различие между аутентификацией ESP и аутентификацией АН
заключается в области их охвата. ESP не защищает никаких полей
заголовка IP, если только не предполагается инкапсуляция ESP
(туннельный режим). На рис указано, какие поля защищаются при
использовании ESP НМАС.
Обратите внимание на то, что шифрование охватывает только данные
полезного груза, a ESP с хэшированием ESP НМАС -- заголовок ESP и
данные полезного груза. Заголовок IP не защищается. Сервис ESP НМАС не
может использоваться самостоятельно, а должен быть объединен с
протоколом шифрования ESP.
Туннельный и транспортный режимы IPSec
IPSec действует или в туннельном, или в транспортном режиме. На рис
показана схема реализации туннельного режима. В этом режиме вся
исходная дейтаграмма IP шифруется и становится полезным грузом в новом
пакете IP с новым заголовком IP и дополнительным заголовком IPSec (на
рис. заголовок обозначен аббревиатурой HDR). Туннельный режим
позволяет сетевому устройству (например, брандмауэру PIX Firewall)
выступать в роли шлюза IPSec или прокси-сервера, выполняющего
шифрование для хостов, размещенных за брандмауэром. Маршрутизатор
источника шифрует пакет и передает его по туннелю IPSec. Брандмауэр
PIX Firewall адресата дешифрует полученный пакет IPSec, извлекает
исходную дейтаграмму IP и передает ее системе адресата. Главное
преимущество туннельного режима заключается в том, что не требуется
модифицировать конечные системы, чтобы обеспечить им возможность
использования IPSec. Туннельный режим также не позволяет противнику
анализировать поток данных. При обмене в туннельном режиме противник
имеет возможность определить только конечные точки туннеля, но не
истинных источника и адресата проходящих через туннель пакетов, даже
если конечные точки туннеля находятся как раз в системах источника и
адресата.
Схема на рис ниже иллюстрирует транспортный режим. Здесь шифруется
только полезный груз IP, а исходный заголовок IP остается нетронутым.
Добавляется заголовок IPSec. Преимуществом этого режима является
добавление только нескольких байтов к каждому пакету. Кроме того,
устройства открытой сети могут видеть истинные адреса отправителя и
получателя пакета.
Это позволяет использовать специальные возможности промежуточных сетей
(например, гарантированное качество сервиса), основанные на информации
в заголовке IP. Однако заголовок уровня 4 шифруется, что ограничивает
возможности анализа пакета. К сожалению, передача заголовка IP в
открытом виде в транспортном режиме позволяет нарушителю в
определенной мере выполнить анализ потока данных. Например, нарушитель
может выяснить, сколько пакетов было передано сторонами IPSec,
действующими в транспортном режиме. Но нарушитель может узнать только
о том, что пакеты IP пересылались. Он не сможет определить, были ли
они сообщением электронной почты или каким-то другим приложением, если
использовался протокол ESP.
Использование туннельного и транспортного режимов
Рассмотрим несколько примеров, иллюстрирующих правила выбора
туннельного или транспортного режима. На рис ниже показаны ситуации, в
которых используется туннельный режим. Этот режим чаще всего
используется для шифрования потока данных между шлюзами защиты IPSec
-- например, между маршрутизатором Cisco и брандмау эром PIX Firewall.
Шлюзы IPSec выполняют функции IPSec для устройств, находящихся за
такими шлюзами (на указанном рисунке это персональный компьютер Алисы
и серверы HR). В этом примере Алиса получает защищенный доступ к
серверам HR через туннель IPSec, установленный между шлюзами.
Туннельный режим используется и для связи конечных станций, в которых
выполняется программное обеспечение IPSec, например для связи клиента
CiscoSecure VPN и шлюза IPSec.
В данном примере туннельный режим применяется для создания туннеля
IPSec между маршрутизатором Cisco и сервером, на котором выполняется
программное обеспечение IPSec. Обратите внимание на то, что в
программном обеспечении Cisco IOS и брандмауэра PIX Firewall
туннельный режим для связей IPSec является режимом, устанавливаемым по
умолчанию.
Транспортный режим используется между конечными станциями,
поддерживающими IPSec, или между конечной станцией и шлюзом, если шлюз
интерпретируется как хост. На рис. ниже показан пример Г,
иллюстрирующий применение транспортного режима для создания
шифрованного туннеля IPSec от компьютера Алисы, на котором выполняется
программное обеспечение клиента Microsoft Windows 2000, к
концентратору Cisco VPN 3000, что позволяет Алисе использовать
L2ТР-туннель над IPSec.
Использование АН и ESP
В определенных ситуациях проблема выбора между АН и ESP может
показаться сложной для решения, но ее можно упростить, если следовать
нескольким правилам. Если вам необходимо знать, что данные из
идентифицированного источника передаются без нарушения целостности,
а их конфиденциальность обеспечивать не требуется, используйте
протокол АН, который защищает протоколы высших уровней и поля
заголовка IP, не изменяемые в пути. Защита означает, что
соответствующие значения нельзя изменить, потому что это будет
обнаружено второй стороной IPSec и любая модифицированная дейтаграмма
IP будет отвергнута. Протокол АН не обеспечивает защиту от
прослушивания канала и просмотра нарушителем заголовка и данных. Но
поскольку заголовок и данные незаметно изменить нельзя, измененные
пакеты отвергаются.
Если необходимо сохранить данные в тайне (обеспечить
конфиденциальность), используйте ESP. Данный протокол предполагает
шифрование протоколов высших уровней в транспортном режиме и всей
исходной дейтаграммы IP в туннельном режиме, так что извлечь
информацию о пакетах путем прослушивания канала передачи невозможно.
Протокол ESP может также обеспечить для пакетов сервис аутентификации.
Однако при использовании ESP в транспортном режиме внешний
оригинальный заголовок IP не защищается, а в туннельном режиме не
защищается новый заголовок IP. При использовании IPSec пользователи
скорее применят туннельный режим, чем транспортный.
Ассоциации защиты
Ассоциация защиты IPSec представляет собой соединение между сторонами
IPSec, определяющее, какие сервисы IPSec доступны между сторонами,
подобно порту TCP или UDP. Каждая сторона IPSec поддерживает в памяти
базу данных ассоциаций защиты, содержащую параметры ассоциаций защиты.
Ассоциации защиты однозначно идентифицируются своими индексами SPI
(Security Parameter Index -- индекс параметров защиты). Вашей задачей
является выбор параметров ассоциаций защиты и контроль ассоциаций
защиты в продуктах Cisco.
Ассоциации защиты IPSec устанавливаются в быстром режиме второй фазы
IKE. Каждое преобразование АН и ESP получает собственную пару
ассоциаций защиты IPSec. Каждая сторона IPSec разрешает установить
ассоциации защиты, определяемые параметрами политики защиты, которые
будут использоваться в ходе сеансов IPSec. Ассоциации защиты для IPSec
являются односторонними, так что сторона 1 будет предлагать свою
политику защиты стороне 2. Если сторона 2 принимает политику стороны
1, эта политика будет отправлена назад стороне 1. В результате между
сторонами создаются две односторонние ассоциации защиты.
Двухсторонняя связь складывается из двух ассоциаций защиты -- по одной
для каждого направления.
Каждая ассоциация защиты состоит из таких значений, как, например,
адрес получателя, индекс SPI, преобразования IPSec для данного сеанса,
ключи защиты и до полнительные атрибуты типа максимального времени
существования связи IPSec. Ассоциации защиты каждой стороны имеют
уникальные значения индекса SPI, которые записываются в базах данных
параметров защиты сторон.
На рис. ниже показан пример набора параметров ассоциации зашиты для
двух сторон IPSec -- маршрутизаторов Cisco, обозначенных R1 и R2.
Обратите внимание на то, что каждая ассоциация защиты IPSec является
односторонней и параметры ассоциации защиты должны быть одинаковы для
обеих сторон IPSec. Конфигурация параметров ассоциации защиты
выбирается системным администратором, эти параметры согласуются в
быстром режиме второй фазы IKE и сохраняются в базе данных ассоциаций
защиты.
Преобразования IPSec
Как уже упоминалось, преобразование IPSec задает один протокол защиты
IPSec (АН или ESP) с соответствующими алгоритмами и режимом.
Преобразование АН предлагает механизм аутентификации полезного груза,
а преобразование ESP -- метод шифрования полезного груза. На рис. ниже
показаны возможные комбинации преобразований.
Вот несколько примеров преобразований.
* Протокол АН, применяемый в туннельном режиме для аутентификации и
использующий НМАС с алгоритмом аутентификации MD5.
* Протокол ESP, применяемый в транспортном режиме для обеспечения
конфиденциальности данных и использующий алгоритм шифрования 3DES.
* Протокол ESP, применяемый в туннельном режиме для обеспечения
аутентификации и конфиденциальности и использующий алгоритм
шифрования DES с 56-битовым ключом и НМАС с алгоритмом
аутентификации SHA.
Стандарт DES
В IPSec используется алгоритм DES с 56-битовым ключом и алгоритм 3DES
с 168-битовым ключом для шифрования данных в рамках протокола ESP и
обеспечения конфиденциальности данных в процессе обмена IKE.
Самой главной характеристикой криптографического алгоритма является
его защищенность от взлома. Защищенность криптосистемы (или сложность
задачи выяснения содержимого открытого текста для нарушителя)
является функцией нескольких переменных. В большинстве протоколов
надежность защиты практически полностью зависит от защищенности
секретного ключа, используемого для шифрования данных. Алгоритм DES
построен так, что без наличия такого ключа определить открытый текст
исключительно трудно. В любой криптосистеме большая длина ключей
выбирается именно для того, чтобы обеспечить секретность ключей
шифрования.
После того как две стороны IPSec получат общий секретный ключ, они
могут использовать его для обмена данными с помощью алгоритмов
шифрования DES или 3DES. Но даже зашифрованные с помощью DES данные
могут быть расшифрованы нарушителем, если у него будет достаточно
вычислительных ресурсов и времени для вычисления ключей. Если ключ
будет открыт, каждый пакет, который был зашифрован этим ключом, может
быть легко расшифрован нарушителем. Частое изменение общих секретных
ключей сторонами уменьшает вероятность того, что нарушитель сможет
расшифровать данные, так как у него будет меньше времени на то, чтобы
вычислить ключ, и соответственно меньше данных может быть открыто,
если ключ будет нарушителем все же вычислен. В алгоритме DES
используются 56- и 168-битовые ключи.
На рис. показано, как работает алгоритм DES. Компонентами системы
шифрования DES являются алгоритмы шифрования и дешифрования,
соответствующие секретные ключи сторон и вводимые для шифрования
открытые данные. Основой DES является алгоритм шифрования. Общий
секретный ключ подается на вход алгоритма. Данные открытого текста
подаются на вход алгоритма блоками фиксированной длины, которые в
результате обработки превращаются в шифрованный текст. Шифрованный
текст передается второй стороне IPSec по протоколу ESP. Получившая
пакет ESP сторона извлекает шифрованный текст, обрабатывает его с
помощью алгоритма дешифрования и получает открытый текст, идентичный
введенному шифрующей стороной.
Алгоритм DES
Алгоритм DES был разработан специалистами IBM на заре 70-х годов.
Агентство национальной безопасности (NSA) США внесло некоторые
изменения в алгоритм, одобрило его для широкого использования и
опубликовало. Алгоритм DES и сегодня считается очень надежным (до сих
пор никто не смог опровергнуть это). Однако при его использовании
благоразумно периодически менять ключи.
Алгоритм DES использует 56-битовый ключ, обеспечивающий достаточно
быстрое шифрование. DES используется для шифрования и дешифрования
пакетов данных; он преобразует открытый текст в шифрованный с помощью
алгоритма шифрования. Алгоритм дешифрования на удаленном конце
соединения восстанавливает открытый текст. Такое шифрование и
дешифрование становится возможным благодаря использованию общих
секретных ключей. DES является симметричным алгоритмом шифрования,
а это значит, что обе участвующие в обмене стороны должны использовать
одинаковые 56-битовые секретные ключи.
DES представляет собой алгоритм блочного шифрования, т.е. обработка
данных выполняется блоками фиксированной длины (64 бит). Для алгоритма
шифрования в устройствах Cisco используется режим CFB (режим
шифрованной обратной связи), который дает дополнительные гарантии
целостности получаемых данных. Алгоритм DES действует следующим
образом.
1. DES получает поток данных для шифрования и преобразует его в
последовательность 64-битовых блоков.
2. DES выполняет начальную перестановку битов блока, а затем
разделяет блок на две 32-битовые части. К одной из полученных
частей применяется сложная, заданная с помощью таблиц подстановка,
зависящая от ключа, а результат связывается операцией XOR
(исключающее "ИЛИ") со второй частью битов блока. Такое
преобразование называется раундом и повторяется 16 раз. После
каждого раунда две 32-битовые части меняются местами.
3. По завершении последнего раунда выполняется завершающая
перестановка. Полученный в результате шифрованный текст
представляет собой набор битов, каждый из которых зависит от
каждого бита вводимых данных и каждого бита ключа.
"Тройной" DES
Алгоритм 3DES тоже поддерживается протоколами шифрования для IPSec в
продуктах Cisco и является вариантом алгоритма DES с 56-битовым
ключом. 3DES действует аналогично DES, разбивая данные на 64-битовые
блоки. Затем 3DES обрабатывает каждый блок три раза; каждый раз с
новым (независимым от двух других) 56-битовым ключом. Алгоритм 3DES
практически утраивает стойкость шифрования в сравнении с 56-битовым
алгоритмом DES. 3DES является алгоритмом симметричной схемы
шифрования.