Ключ ipsec что это
Перейти к содержимому

Ключ ipsec что это

  • автор:

IPSec — протокол защиты сетевого трафика на IP-уровне

В конце шестидесятых годов американское агентство перспективных исследований в обороне DARPA приняло решение о создании экспериментальной сети под названием ARPANet. В семидесятых годах ARPANet стала считаться действующей сетью США, и через эту сеть можно было получить доступ к ведущим университетским и научным центрам США. В начале восьмидесятых годов началась стандартизация языков программирования, а затем и протоколов взаимодействия сетей. Результатом этой работы стала разработка семиуровневой модели сетевого взаимодействия ISO/OSI и семейства протоколов TCP/IP, которое стало основой для построения как локальных, так и глобальных сетей.

Базовые механизмы информационного обмена в сетях TCP/IP были в целом сформированы в начале восьмидесятых годов, и были направлены прежде всего на обеспечение доставки пакетов данных между различными операционными системами с использованием разнородных каналов связи. Несмотря на то, что идея создания сети ARPANet (впоследствии превратившейся в современный Интернет) принадлежала правительственной оборонной организации, фактически сеть зародилась в исследовательском мире, и наследовала традиции открытости академического сообщества. Ещё до коммерциализации Интернета (которая произошла в середине девяностых годов) многие авторитетные исследователи отмечали проблемы, связанные с безопасностью стека протоколов TCP/IP. Основные концепции протоколов TCP/IP не полностью удовлетворяют (а в ряде случаев и противоречат) современным представлениям о компьютерной безопасности.

До недавнего времени сеть Интернет использовалась в основном для обработки информации по относительно простым протоколам: электронная почта, передача файлов, удалённый доступ. Сегодня, благодаря широкому распространению технологий WWW, всё активнее применяются средства распределённой обработки мультимедийной информации. Одновременно с этим растёт объём данных, обрабатываемых в средах клиент/сервер и предназначенных для одновременного коллективного доступа большого числа абонентов. Разработано несколько протоколов прикладного уровня, обеспечивающих информационную безопасность таких приложений, как электронная почта (PEM, PGP и т.п.), WWW (Secure HTTP, SSL и т.п.), сетевое управление (SNMPv2 и т.п.). Однако наличие средств обеспечения безопасности в базовых протоколах семейства TCP/IP позволит осуществлять информационный обмен между широким спектром различных приложений и сервисных служб.

Краткая историческая справка появления протокола

В 1994 году Совет по архитектуре Интернет (IAB) выпустил отчет "Безопасность архитектуры Интернет". В этом документе описывались основные области применения дополнительных средств безопасности в сети Интернет, а именно защита от несанкционированного мониторинга, подмены пакетов и управления потоками данных. В числе первоочередных и наиболее важных защитных мер указывалась необходимость разработки концепции и основных механизмов обеспечения целостности и конфиденциальности потоков данных. Поскольку изменение базовых протоколов семейства TCP/IP вызвало бы полную перестройку сети Интернет, была поставлена задача обеспечения безопасности информационного обмена в открытых телекоммуникационных сетях на базе существующих протоколов. Таким образом, начала создаваться спецификация Secure IP, дополнительная по отношению к протоколам IPv4 и IPv6.

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

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

Спецификация IP Security (известная сегодня как IPsec) разрабатывается Рабочей группой IP Security Protocol IETF. Первоначально IPsec включал в себя 3 алгоритмо-независимые базовые спецификации, опубликованные в качестве RFC-документов "Архитектура безопасности IP", "Аутентифицирующий заголовок (AH)", "Инкапсуляция зашифрованных данных (ESP)" (RFC1825, 1826 и 1827). Необходимо заметить, что в ноябре 1998 года Рабочая группа IP Security Protocol предложила новые версии этих спецификаций, имеющие в настоящее время статус предварительных стандартов, это RFC2401 — RFC2412. Отметим, что RFC1825-27 на протяжении уже нескольких лет считаются устаревшими и реально не используются. Кроме этого, существуют несколько алгоритмо-зависимых спецификаций, использующих протоколы MD5, SHA, DES.

Рабочая группа IP Security Protocol разрабатывает также и протоколы управления ключевой информацией. В задачу этой группы входит разработка Internet Key Management Protocol (IKMP), протокола управления ключами прикладного уровня, не зависящего от используемых протоколов обеспечения безопасности. В настоящее время рассматриваются концепции управления ключами с использованием спецификации Internet Security Association and Key Management Protocol (ISAKMP) и протокола Oakley Key Determination Protocol. Спецификация ISAKMP описывает механизмы согласования атрибутов используемых протоколов, в то время как протокол Oakley позволяет устанавливать сессионные ключи на компьютеры сети Интернет. Ранее рассматривались также возможности использования механизмов управления ключами протокола SKIP, однако сейчас такие возможности реально практически нигде не используются. Создаваемые стандарты управления ключевой информацией, возможно, будут поддерживать Центры распределения ключей, аналогичные используемым в системе Kerberos. Протоколами ключевого управления для IPSec на основе Kerberos сейчас занимается относительно новая рабочая группа KINK (Kerberized Internet Negotiation of Keys).

Гарантии целостности и конфиденциальности данных в спецификации IPsec обеспечиваются за счет использования механизмов аутентификации и шифрования соответственно. Последние, в свою очередь, основаны на предварительном согласовании сторонами информационного обмена т.н. "контекста безопасности" – применяемых криптографических алгоритмов, алгоритмов управления ключевой информацией и их параметров. Спецификация IPsec предусматривает возможность поддержки сторонами информационного обмена различных протоколов и параметров аутентификации и шифрования пакетов данных, а также различных схем распределения ключей. При этом результатом согласования контекста безопасности является установление индекса параметров безопасности (SPI), представляющего собой указатель на определенный элемент внутренней структуры стороны информационного обмена, описывающей возможные наборы параметров безопасности.

По сути, IPSec, который станет составной частью IPv6, работает на третьем уровне, т. е. на сетевом уровне. В результате передаваемые IP-пакеты будут защищены прозрачным для сетевых приложений и инфраструктуры образом. В отличие от SSL (Secure Socket Layer), который работает на четвертом (т. е. транспортном) уровне и теснее связан с более высокими уровнями модели OSI, IPSec призван обеспечить низкоуровневую защиту.

К IP-данным, готовым к передаче по виртуальной частной сети, IPSec добавляет заголовок для идентификации защищенных пакетов. Перед передачей по Internet эти пакеты инкапсулируются в другие IP-пакеты. IPSec поддерживает несколько типов шифрования, в том числе Data Encryption Standard (DES) и Message Digest 5 (MD5).

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

С текущей версией IP, IPv4, могут быть использованы или Internet Secure Association Key Management Protocol (ISAKMP), или Simple Key Management for Internet Protocol. С новой версией IP, IPv6, придется использовать ISAKMP, известный сейчас как IKE, хотя не исключается возможность использования SKIP. Однако, следует иметь в виду, что SKIP уже давно не рассматривается как кандидат управления ключами, и был исключён из списка возможных кандидатов ещё в 1997 г.

Заголовок AH

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

Формат AH достаточно прост и состоит из 96-битового заголовка и данных переменной длины, состоящих из 32-битовых слов. Названия полей достаточно ясно отражают их содержимое: Next Header указывает на следующий заголовок, Payload Len представляет длину пакета, SPI является указателем на контекст безопасности и Sequence Number Field содержит последовательный номер пакета.

Последовательный номер пакета был введен в AH в 1997 году в ходе процесса пересмотра спецификации IPsec. Значение этого поля формируется отправителем и служит для защиты от атак, связанных с повторным использованием данных процесса аутентификации. Поскольку сеть Интернет не гарантирует порядок доставки пакетов, получатель должен хранить информацию о максимальном последовательном номере пакета, прошедшего успешную аутентификацию, и о получении некоторого числа пакетов, содержащих предыдущие последовательные номера (обычно это число равно 64).

В отличие от алгоритмов вычисления контрольной суммы, применяемых в протоколах передачи информации по коммутируемым линиям связи или по каналам локальных сетей и ориентированных на исправление случайных ошибок среды передачи, механизмы обеспечения целостности данных в открытых телекоммуникационных сетях должны иметь средства защиты от внесения целенаправленных изменений. Одним из таких механизмов является специальное применение алгоритма MD5: в процессе формирования AH последовательно вычисляется хэш-функция от объединения самого пакета и некоторого предварительно согласованного ключа, а затем от объединения полученного результата и преобразованного ключа. Данный механизм применяется по умолчанию в целях обеспечения всех реализаций IPv6, по крайней мере, одним общим алгоритмом, не подверженным экспортным ограничениям.

Заголовок ESP

В случае использования инкапсуляции зашифрованных данных заголовок ESP является последним в ряду опциональных заголовков, "видимых" в пакете. Поскольку основной целью ESP является обеспечение конфиденциальности данных, разные виды информации могут требовать применения существенно различных алгоритмов шифрования. Следовательно, формат ESP может претерпевать значительные изменения в зависимости от используемых криптографических алгоритмов. Тем не менее, можно выделить следующие обязательные поля: SPI, указывающее на контекст безопасности и Sequence Number Field, содержащее последовательный номер пакета. Поле "ESP Authentication Data" (контрольная сумма), не является обязательным в заголовке ESP. Получатель пакета ESP расшифровывает ESP заголовок и использует параметры и данные применяемого алгоритма шифрования для декодирования информации транспортного уровня.

Различают два режима применения ESP и AH (а также их комбинации) — транспортный и туннельный.

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

Транспортный режим используется для шифрования поля данных IP пакета, содержащего протоколы транспортного уровня (TCP, UDP, ICMP), которое, в свою очередь, содержит информацию прикладных служб. Примером применения транспортного режима является передача электронной почты. Все промежуточные узлы на маршруте пакета от отправителя к получателю используют только открытую информацию сетевого уровня и, возможно, некоторые опциональные заголовки пакета (в IPv6). Недостатком транспортного режима является отсутствие механизмов скрытия конкретных отправителя и получателя пакета, а также возможность проведения анализа трафика. Результатом такого анализа может стать информация об объемах и направлениях передачи информации, области интересов абонентов, расположение руководителей.

Туннельный режим

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

Security Associations

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

Политика безопасности

Политика безопасности хранится в SPD (База данных политики безопасности). SPD может указать для пакета данных одно из трёх действий: отбросить пакет, не обрабатывать пакет с помощью IPSec, обработать пакет с помощью IPSec. В последнем случае SPD также указывает, какой SA необходимо использовать (если, конечно, подходящий SA уже был создан) или указывает, с какими параметрами должен быть создан новый SA.

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

ISAKMP/Oakley

Протокол ISAKMP определяет общую структуру протоколов, которые используются для установления SA и для выполнения других функций управления ключами. ISAKMP поддерживает несколько Областей Интерпретации (DOI), одной из которых является IPSec-DOI. ISAKMP не определяет законченный протокол, а предоставляет "строительные блоки" для различных DOI и протоколов обмена ключами.

Протокол Oakley — это протокол определения ключа, использующий алгоритм замены ключа Диффи-Хеллмана. Протокол Oakley поддерживает идеальную прямую безопасность (Perfect Forward Secrecy — PFS). Наличие PFS означает невозможность расшифровки всего траффика при компрометации любого ключа в системе.

IKE — протокол обмена ключами по умолчанию для ISAKMP, на данный момент являющийся единственным. IKE находится на вершине ISAKMP и выполняет, собственно, установление как ISAKMP SA, так и IPSec SA. IKE поддерживает набор различных примитивных функций для использования в протоколах. Среди них можно выделить хэш-функцию и псевдослучайную функцию (PRF).

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

Что касается псеводслучайных функций, то в настоящее время вместо специальных PRF используется хэш функция в конструкции HMAC (HMAC — механизм аутентификации сообщений с использованием хэш функций). Для определения HMAC нам понадобится криптографическая хэш функция (обозначим её как H) и секретный ключ K. Мы предполагаем, что H является хэш функцией, где данные хэшируются с помощью процедуры сжатия, последовательно применяемой к последовательности блоков данных. Мы обозначим за B длину таких блоков в байтах, а длину блоков, полученных в результате хэширования — как L (L<B). Ключ K может иметь длину, меньшую или равную B. Если приложение использует ключи большей длины, сначала мы должны хэшировать сам ключ с использованием H, и только после этого использовать полученную строку длиной L байт, как ключ в HMAC. В обоих случаях рекомендуемая минимальная длина для K составляет L байт. Определим две следующие различные строки фиксированной длины:

ipad = байт 0x36, повторённый B раз;
opad = байт 0x5C, повторённый B раз.

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

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

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

Атаки на 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.

Оценка протокола

Протокол IPSec получил неоднозначную оценку со стороны специалистов. С одной стороны, отмечается, что протокол IPSec является лучшим среди всех других протоколов защиты передаваемых по сети данных, разработанных ранее (включая разработанный Microsoft PPTP). По мнению другой стороны, присутствует чрезмерная сложность и избыточность протокола. Так, Niels Ferguson и Bruce Schneier в своей работе "A Cryptographic Evaluation of IPsec" отмечают, что они обнаружили серьёзные проблемы безопасности практически во всех главных компонентах IPsec. Эти авторы также отмечают, что набор протоколов требует серьёзной доработки для того, чтобы он обеспечивал хороший уровень безопасности. В работе приведено описание ряда атак, использующих как слабости общей схемы обработки данных, так и слабости криптографических алгоритмов.

Заключение

В этой статье мы рассмотрели некоторые основные моменты, касающиеся протокола сетевой безопасности IPsec. Не лишним будет отметить, что протокол IPsec доминирует в большинстве реализаций виртуальных частных сетей. В настоящее время на рынке представлены как программные реализации (например, протокол реализован в операционной системе Windows2000 компании Microsoft), так и программно-аппаратные реализации IPsec — это решения Cisco, Nokia. Несмотря на большое число различных решений, все они довольно хорошо совместимы друг с другом. В заключение статьи приводится таблица, в которой производится сравнение IPSec и широко распространённого сейчас SSL.

Особенности IPSec SSL
Аппаратная независимость Да Да
Код Не требуется изменений для приложений. Может потребовать доступ к исходному коду стека TCP/IP. Требуются изменения в приложениях. Могут потребоваться новые DLL или доступ к исходному коду приложений.
Защита IP пакет целиком. Включает защиту для протоколов высших уровней. Только уровень приложений.
Фильтрация пакетов Основана на аутентифицированных заголовках, адресах отправителя и получателя, и т.п. Простая и дешёвая. Подходит для роутеров. Основана на содержимом и семантике высокого уровня. Более интеллектуальная и более сложная.
Производительность Меньшее число переключений контекста и перемещения данных. Большее число переключений контекста и перемещения данных. Большие блоки данных могут ускорить криптографические операции и обеспечить лучшее сжатие.
Платформы Любые системы, включая роутеры В основном, конечные системы (клиенты/серверы), также firewalls.
Firewall/VPN Весь трафик защищён. Защищён только трафик уровня приложений. ICMP, RSVP, QoS и т.п. могут быть незащищены.
Прозрачность Для пользователей и приложений. Только для пользователей.
Текущий статус Появляющийся стандарт. Широко используется WWW браузерами, также используется некоторыми другими продуктами.

Ссылки

  • www.ietf.org/html.charters/ipsec-charter.html — Домашняя страничка рабочей группы IETF. Там же находятся ссылки на RFC и предложения по стандартам.
  • www.microsoft.com/rus/windows2000/library/security/w2k_IPSecurity.asp – Информация о реализации протокола IPSec в Windows2000 Server.

Благодарности

Автор благодарит всех читателей, приславших свои отзывы и замечания к статье, особенно Валерия Смыслова, приславшего ряд наиболее ценных замечаний и советов.

Ключ ipsec что это

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

VPN, или Virtual Private Network, что в переводе означает Виртуальная Частная Сеть — это криптосистема, позволяющая защитить данные при передаче их по незащищенной сети, такой как Интернет. Несмотря на то, что данное описание подходит и для криптосистемы SSH, VPN имеет другое предназначение. SSH разрабатывался как средство, позволяющее пользователю безопасно зайти и удалённо управлять другим компьютером. Цель VPN — прозрачный доступ к ресурсам сети, где пользователь может делать всё то, что он делает обычно независимо от того, насколько он удалён. По этой причине VPN приобрёл популярность среди дистанционных работников и офисов, которые нуждаются в совместном использовании ресурсов территориально разделённых сетей.

VPN Туннели

Прежде чем приступить к настройке VPN, необходимо познакомится с общепринятой терминологией и с некоторыми проблемами настройки. Начнём с терминологии. VPN соединение всегда состоит из канала типа точка-точка, также известного под названием туннель. Туннель создаётся в незащищённой сети, в качестве которой чаще всего выступает Интернет. Соединение точка-точка подразумевает, что оно всегда устанавливается между двумя компьютерами, которые называются узлами или peers. Каждый peer отвечает за шифрование данных до того, как они попадут в туннель и расшифровке этих данных после того, как они туннель покинут.

Хотя VPN туннель всегда устанавливается между двумя точками, каждый peer может устанавливать дополнительные туннели с другими узлами. Для примера, когда трём удалённым станциям необходимо связаться с одним и тем же офисом, будет создано три отдельных VPN туннеля к этому офису. Для всех туннелей peer на стороне офиса может быть одним и тем же. Это возможно благодаря тому, что узел может шифровать и расшифровывать данные от имени всей сети, как это показано на рисунке 1:

Рисунок 1 — VPN шлюз к сети

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

Интересно отметить, что внутри домена шифрования самого шифрования не происходит. Причина в том, что эта часть сети считается безопасной и находящейся под непосредственным контролем в противоположность Интернет. Это справедливо и при соединении офисов с помощью VPN шлюзов. Таким образом гарантируется шифрование только той информации, которая передаётся по небезопасному каналу между офисами. Рисунок 2 показывает VPN соединяющую два офиса:

Рисунок 2 — защищённая сеть на основе незащищённой сети

Сеть A считается доменом шифрования VPN шлюза A, а сеть B доменом шифрования VPN шлюза B, соответственно. Когда пользователь сети A изъявляет желание отправить данные в сеть B, VPN шлюз A зашифрует их и отошлёт через VPN туннель. VPN шлюз B расшифрует информацию и передаст получателю в сети B.

Помните режим транспорта и режим туннеля в Терминологии Криптографии 101? Всякий раз, когда соединение сетей обслуживают два VPN шлюза, они используют режим туннеля. Это означает, что шифруется весь пакет IP, после чего к нему добавляется новый IP заголовок. Новый заголовок содержит IP адреса двух VPN шлюзов, которые и увидит пакетный сниффер при перехвате. Невозможно определить компьютер-источник в первом домене шифрования и компьютер-получатель во втором домене.

Посмотрите на рисунок 1, иллюстрирующий типичное использование VPN, которая позволяет удалённым пользователям с переносыми компьютерами и пользователям, работающим из дома, иметь доступ к офисной сети. Чтобы эта схема заработала, пользователь должен иметь установленное ПО — VPN клиент, который обеспечит создание VPN туннеля к удалённому VPN шлюзу. По сценарию используется режим туннеля, т.к. пользователь хочет получить доступ к ресурсам домена, а не самого шлюза. Единственной случай, когда включается режим транспорта — это если одному компьютеру нужно получить доступ к другому непосредственно.

Существует много вариантов VPN шлюзов и VPN клиентов. Это может быть аппаратное VPN устройство или программное VPN обеспечение, которое устанавливается на маршрутизаторах или на ПК. ОС FreeBSD поставляется вместе с ПО для создания VPN шлюза и для настройки VPN клиента. В коллекции портов существуют и другие приложения, позволяющие соединяться со станциями под управлением других ОС.

К счастью, в Интернет есть много источников информации о VPN, FAQ и варианты настроек. Я могу порекомендовать Tina Bird’s VPN Information, VPN Labs, и Virtual Private Network Consortium (VPNC).

Назависимо от используемого ПО, все VPN работают по следующим принципам:

  1. Каждый из узлов идентифицирует друг друга перед созданием туннеля, чтобы удостовериться, что шифрованные данные будут отправлены на нужный узел
  2. Оба узла требуют заранее настроеной политики, указывающей какие протоколы могут использоваться для шифрования и обеспечения целостности данных
  3. Узлы сверяют политики, чтобы договориться об используемых алгоритмах; если это не получается, то туннель не устанавливается
  4. Как только достигнуто соглашение по алгоритмам, создаётся ключ, который будет использован в симметричном алгоритме для шифрования/расшифровки данных

Есть несколько стандартов регламентирующих вышеописанное взаимодействие. Вы, должно быть, слышали о некоторых из них: L2TP, PPTP, и IPSec. Т.к. IPSec — наиболее широко поддерживаемый стандарт, который имеет в арсенале наибольшее количество сокращений, оставшуюся часть статьи стоит посвятить именно ему.

IPSec

Стандарт IPSec был разработан для повышения безопасности IP протокола. Это достигается за счёт дополнительных протоколов, добавляющих к IP пакету собственные заголовки, которые называются инкапсуляциями. Т.к. IPSec — стандарт Интернет, то для него существуют RFC (Requests For Comments). Если есть интерес покопаться во внутренностях IPSec, то следующие RFC с http://www.rfc-editor.org/ могут оказаться полезными:

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

AH (Authentication Header) — протокол заголовка идентификации. Обеспечивает целостность путём проверки того, что ни один бит в защищаемой части пакета не был изменён во время передачи. Не будем вдаваться в подробности, какая часть пакета защищается и где находятся данные AH заголовка, т.к. это зависит от используемого типа шифрования и в деталях, с диаграммами описывается в соответствующем RFC. Отметим лишь, что использование AH может вызвать проблемы, например, при прохождении пакета через NAT устройство. NAT меняет IP адрес пакета, чтобы разрешить доступ в Интернет с закрытого локального адреса. Т.к. пакет в таком случае изменится, то контрольная сумма AH станет неверной. Также стоит отметить, что AH разрабатывался только для обеспечения целостности. Он не гарантирует конфиденциальности путём шифрования содержимого пакета.

ESP (Encapsulating Security Protocol) — инкапсулирующий протокол безопасности, который обеспечивает и целостность и конфиденциальность. В режиме транспорта ESP заголовок находится между оригинальным IP заголовком и заголовком TCP или UDP. В режиме туннеля заголовок ESP размещается между новым IP заголовком и полностью зашифрованным оригинальным IP пакетом.

Т.к. оба протокола — AH и ESP добавляют собственные заголовки, они имеют свой ID протокола, по которому можно определить что последует за заголовком IP. Если вспомнить статью TCP Protocol Layers Explained, то в ней сказано, что каждый тип заголовка имеет собственный номер. Например, для TCP это 6, а для UDP — 17. При работе через firewall важно не забыть настроить фильтры, чтобы пропускать пакеты с ID AH и/или ESP протокола. Для AH номер ID — 51, а ESP имеет ID протокола равный 50. При создании правила не забывайте, что ID протокола не то же самое, что номер порта.

Третий протокол, используемый IPSec — это IKE или Internet Key Exchange protocol. Как следует из названия, он предназначен для обмена ключами между двумя узлами VPN. Насмотря на то, что генерировать ключи можно вручную, лучшим и более масштабируемым вариантом будет автоматизация этого процесса с помощью IKE. Помните, что ключи должны часто меняться, и вам наверняка не хочется полагаться на свою память, чтобы найти время для совершения этой операции вручную. Главное — не забудьте настроить правило на файрволе для UPD порта с номером 500, т.к. именно этот порт используется IKE.

SA (Security Association), что можно приближённо перевести как «связь или ассоциация безопасности» — это термин IPSec для обозначения соединения. При настроенном VPN, для каждого используемого протокола создаётся одна SA пара (т.е. одна для AH и одна для ESP). SA создаются парами, т.к. каждая SA — это однонаправленное соединение, а данные необходимо передавать в двух направлениях. Полученные SA пары хранятся на каждом узле. Если ваш узел имеет SA, значит VPN туннель был установлен успешно.

Т.к. каждый узел способен устанавливать несколько туннелей с другими узлами, каждый SA имеет уникальный номер, позволяющий определить к какому узлу он относится. Это номер называется SPI (Security Parameter Index) или индекс параметра безопасности.

SA храняться в базе данных c названием, кто бы подумал — SAD (Security Association Database) или БД ассоциаций безопасности. Мы встретимся с ней ещё раз при настройке IPSec VPN.

Каждый узел IPSec также имеет вторую БД — SPD или Security Policy Database (БД политики безопасности). Она содержит настроенную вами политику узла. Большинство VPN решений разрешают создание нескольких политик с комбинациями подходящих алгоритмов для каждого узла, с которым нужно установить соединение.

Какие настройки включает в себя политика?

  1. Симметричные алгоритмы для шифрования/расшифровки данных
  2. Криптографические контрольные суммы для проверки целостности данных
  3. Способ идентификации узла. Самые распространнённые способы — это предустановленные ключи (pre-shared secrets) или RSA сертификаты.
  4. Использовать ли режим туннеля или режим транспорта
  5. Какую использовать группу Diffie Hellman
  6. Как часто проводить переидентификацию узла
  7. Как часто менять ключ для шифрования данных
  8. Использовать ли PFS
  9. Использовать ли AH, ESP, или оба вместе

При создании политики, как правило, возможно создание упорядоченного списка алгоритмов и Diffie Hellman групп. В таком случае будет использована первая совпавшая на обоих узлах позиция. Запомните, очень важно, чтобы всё в политике безопасности позволяло добиться этого совпадения. Если за исключением одной части политики всё остальное совпадает, узлы всё равно не смогут установить VPN соединение. При настройе VPN между различными системами уделите время изучению того, какие алгоритмы поддерживаются каждой стороной, чтобы иметь выбор наиболее безопасной политики из возможных.

Фаза Один и Фаза Два

Теперь давайте посмотрим как всё это работает вместе. Установка и поддержка VPN туннеля происходит в два этапа. На первом этапе (фазе) два узла договариваются о методе идентификации, алгоритме шифрования, хэш алгоритме и группе Diffie Hellman. Они также идентифицируют друг друга. Всё это может пройти в результате обмена тремя нешифрованными пакетами (т.н. агрессивный режим) или через обмен шестью нешифрованными пакетами (стандартный режим — main mode). Предполагая, что операция завершилась успешно, создаётся SA первой Фазы — Phase 1 SA (также называемый IKE SA) и процесс переходит к Фазе Два.

На втором этапе генерируются данные ключей, узлы договариваются насчёт используемой политики. Этот режим, также называемый быстрым режимом (quick mode), отличается от первой фазы тем, что может установиться только после первого этапа, когда все пакеты второй фазы шифруются. Такое положение дел усложняет решение проблем в случае неполадок на второй фазе при успешном завершении первой. Правильное завершение второй фазы приводит к появлению Phase 2 SA или IPSec SA, и на этом установка туннеля считается завершённой.

Когда же это всё происходит? Сначала на узел прибывает пакет с адресом назначения в другом домене шифрования, и узел инициирует Фазу Один с тем узлом, который отвечает за другой домен. Допустим, туннель между узлами был успешно установлен и ожидает пакетов. Однако, узлам необходимо переидентифицировать друг друга и сравнить политику через определённое время. Это время известно как время жизни Phase One или IKE SA lifetime.

Узлы также должны сменить ключ для шифрования данных через другой отрезок времени, который называется временем жизни Phase Two или IPSec SA lifetime. Phase Two lifetime короче, чем у первой фазы, т.к. ключ необходимо менять чаще. Типичное время жизни Phase Two — 60 минут. Для Phase One оно равно 24 часам.

Ваша задача заключается в том, чтобы сконфигурировать оба узла с одинаковыми параметрами времени жизни. Если этого не произойдёт, то возможен вариант, когда изначально туннель будет установлен успешно, но по истечении первого несогласованного промежутка времени жизни связь прервётся. Странные проблемы могут возникнуть и в том случае, когда время жизни Фазы Один меньше аналогичного параметра Фазы Два. Если настроенный ранее туннель виснет, то первая вещь, которая нуждается в проверке — это время жизни на обоих узлах. В заключение стоит упомянуть, что при смене политики на одном из узлов, изменения вступят в силу только при следующем наступлении Фазы Один. Чтобы изменения вступили в силу немедленно, надо убрать SA для этого туннеля из SAD. Это вызовёт пересмотр соглашения между узлами с новыми настройками политики безопасности.

Теперь у нас есть достаточно информации для создания IPSec VPN на вашей FreeBSD машине. Демонстрация необходимых настроек — тема следующей статьи.

Dru Lavigne — инструктор Marketbridge Technologies в Оттаве и администратор Open Protocol Resource.

Основы IPsec

IPsec – это набор сопутствующих протоколов для криптографической защиты данных на уровне IP-пакетов. IPsec также предоставляет методы ручного и автоматического согласования ассоциаций безопасности (SAS) и распределения ключей, все атрибуты, для которых собраны в домене интерпретации (DOI). IPsec DOI – это документ, содержащий определения всех параметров безопасности, необходимых для успешного согласования VPN туннеля — по сути, все атрибуты, необходимые для SA и IKE согласований. Дополнительные сведения см. в RFC 2407 и RFC 2408.

Чтобы использовать службы безопасности IPsec, между хостами создаются SAS. SA – это простое соединение, которое позволяет двум хостам взаимодействовать друг с другом безопасно при помощью IPsec. Существует два типа SAS: ручной и динамический.

IPsec поддерживает два режима безопасности (транспортный и туннельный).

Связи безопасности

Ассоциация безопасности (SA) — однонаправленное соглашение между участниками VPN о методах и параметрах, используемых для обеспечения безопасности канала связи. Полная двунаправленная связь требует как минимум двух СА, по одному для каждого направления. С помощью SA туннель IPsec может обеспечить следующие функции безопасности:

Конфиденциальность (посредством шифрования)

Целостность содержимого (с помощью аутентификации данных)

Аутентификация отправитель и (при использовании сертификатов) нерезиляция (с помощью аутентификации источника данных)

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

Туннель IPsec состоит из пары однонаправленных SA — по одной SA для каждого направления туннеля, которые определяют индекс параметра безопасности (SPI), IP-адрес назначения и протокол безопасности (Заглавная пара аутентификации [AH] или инкапсулирующий security полезная нагрузка [ESP]. SA объединяет следующие компоненты для обеспечения безопасности связи:

Алгоритмы и ключи обеспечения безопасности.

Протокольный режим ( транспортный или туннельный). Junos OS устройства всегда используют туннельный режим. (См. «Обработка пакетов в туннельном режиме.)

Метод управления ключами, ручной ключ или autoKey IKE.

Срок действия SA.

Для входящий трафика Junos OS sa с помощью следующего триплета:

Протокол безопасности AH или ESP.

Значение индекса параметра безопасности (SPI).

Для исходя трафика VPN политика вызывает SA, связанную с туннелем VPN.

Управление ключами IPsec

Распределение и управление ключами очень важно для успешного использования VPN. Junos OS IPsec поддерживает технологию создания VPN-туннелей с тремя типами механизмов создания ключей:

AutoKey IKE с предварительным ключом или сертификатом

Механизм создания ключей (также называемый методом аутентификации) можно выбрать в фазах 1 и 2 в конфигурации предложений. См. Internet Key Exchange.

Данная тема включает в себя следующие разделы:

Ключ вручную

С помощью ключей вручную администраторы на обоих концах туннеля настраивают все параметры безопасности. Это прием прием приемов для небольших, статических сетей, где распределение, обслуживание и отслеживание ключей не сложно. Однако безопасное распределение настроек вручную на большом расстоянии создает проблемы безопасности. За выряду с передачей ключей лицом к лицу нельзя полностью убедиться, что ключи не были скомпрометированы при передаче. Кроме того, при изменении ключа сталкиваются с проблемами безопасности, с которыми вы сталкивались при первоначальном распределении ключей.

AutoKey IKE

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

AutoKey IKE с предварительными ключами — использование IKE AutoKey с предварительно предварительными ключами для аутентификации участников сеанса IKE, каждая сторона должна заранее настроить и безопасно обмениваться предварительным ключом. В этом отношении проблема защищенного распределения ключей такая же, как и при ручных ключах. Однако после распределенного использования автоматическое управление, в отличие от ручного ключа, может автоматически изменить свои ключи через заранее определенные интервалы с помощью IKE протокола. Частое изменение ключей значительно улучшает безопасность и автоматически снижает ответственность за управление ключами. Однако изменение ключей увеличивает объем трафика; поэтому слишком частое изменение ключей может снизить эффективность передачи данных.

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

AutoKey IKE сертификатами — при использовании сертификатов для аутентификации участников во время согласования IKE AutoKey каждая сторона генерирует пару общедоступных частных ключей и получает сертификат. Пока команды, центр сертификации (CA) доверенные обеими сторонами, участники могут извлечь открытый ключ одноранговых участников и проверить подпись одноранговых участников. Нет необходимости отслеживать ключи и SAS; IKE делает это автоматически.

Diffie-Hellman Exchange

Обмен Diffie-Hellman (DH) позволяет участникам создавать общее секретное значение. Сила метода заключается в том, что он позволяет участникам создавать секретное значение через незащиченную среду без передачи секретного значения через провод. Размер обычного модуля, используемого в расчетах каждой группы, отличается, как показано в таблице ниже. Обмен Diffie Hellman (DH) может выполняться как в программном, так и в аппаратном обеспечении. Когда эти операции обмена выполняются на аппаратном оборудовании, мы используем криптографию QuickАst Technology (QAT). Ниже Табл. 1 перечислены различные группы Diffie Hellman (DH) и указывается, выполняется ли операция для этой группы в оборудовании или программном обеспечении.

Что такое IPsec?

IPSec – это набор правил или протоколов связи для настройки безопасных подключений по сети. Интернет-протокол (IP) – это общепринятый стандарт, определяющий то, как данные передаются по Интернету. IPSec добавляет шифрование и аутентификацию, чтобы сделать протокол более безопасным. Например, он зашифровывает данные в источнике и расшифровывает их в пункте назначения. Также он проверяет подлинность источника данных.

Почему IPSec важен?

Рабочая группа инженеров Интернета разработала IPSec в 1990-х годах для обеспечения конфиденциальности, целостности и подлинности данных при доступе к публичным сетям. Например, пользователи подключаются к Интернету при помощи виртуальной частной сети (VPN) IPSec, чтобы получать удаленный доступ к файлам компании. Протокол IPSec шифрует конфиденциальную информацию, чтобы предотвратить нежелательное отслеживание. Кроме того, сервер может проверить авторизацию полученных пакетов данных.

Какова польза от IPSec?

IPsec можно использовать для выполнения указанных ниже задач.

  • Обеспечение защиты маршрутизатора при отправке данных через общедоступный Интернет.
  • Шифрование данных приложения.
  • Быстрая проверка подлинности данных, если данные отправляет известный отправитель.
  • Защита сетевых данных путем настройки зашифрованных каналов, называемых туннелями IPsec, которые шифруют все данные, отправляемые между двумя адресами.

Организации используют IPSec для защиты от атак повторением. Атака повторением или атака с применением технологии «незаконный посредник» – это перехват и изменение текущей передачи путем маршрутизации данных на промежуточный компьютер. Протокол IPSec присваивает каждому пакету данных порядковый номер и выполняет проверки для обнаружения признаков дублирования пакетов.

Что такое шифрование IPSec?

Шифрование IPSec – это программная функция, которая шифрует данные, чтобы защитит их содержимое от неавторизованных сторон. Данные шифруются при помощи ключа шифрования, а для расшифровки информации требуется ключ дешифрования. IPSec поддерживает различные типы шифрования, включая AES, Blowfish, Triple DES, ChaCha и DES-CBC.

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

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

Компьютеры обмениваются данными с помощью протокола IPSec, выполняя указанные далее действия.

  1. Компьютер отправителя определяет, требуется ли для передачи данных защита IPSec, сверяясь со своей политикой безопасности. Если требуется, компьютер инициирует безопасную передачу IPSec с компьютером получателя.
  2. Оба компьютера согласовывают требования для установления безопасного соединения. Это включает в себя взаимное согласование параметров шифрования, аутентификации и других параметров ассоциации защиты (SA).
  3. Компьютер отправляет и получает зашифрованные данные, подтверждая, что они получены из надежных источников. Он выполняет проверки, чтобы убедиться, что основной контент надежен.
  4. После завершения передачи или истечения времени сеанса компьютер завершает соединение IPSec.

Что такое протоколы IPSec?

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

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

Некоторые протоколы IPSec приведены ниже.

Заголовок аутентификации (AH)

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

Инкапсулирующая защитная полезная нагрузка (ESP)

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

Обмен ключами в Интернете (IKE)

Обмен ключами в Интернете (IKE) – это протокол, который устанавливает безопасное соединение между двумя устройствами в Интернете. Оба устройства устанавливают ассоциацию защиты (SA), которая включает согласование ключей шифрования и алгоритмов для передачи и получения последующих пакетов данных.

Что такое режимы IPSec?

IPSec работает в двух разных режимах с разной степенью защиты.

Туннель

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

Транспортный

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

Что такое IPSec VPN?

VPN или виртуальная частная сеть – это сетевое программное обеспечение, которое позволяет пользователям анонимно и безопасно пользоваться Интернетом. IPSec VPN – это программное обеспечение VPN, которое использует протокол IPSec, чтобы создавать зашифрованные туннели в Интернете. Он обеспечивает сквозное шифрование, что означает, что данные шифруются на компьютере и расшифровываются на принимающем сервере.

SSL VPN

SSL означает уровень защищенных сокетов. Это протокол безопасности, который защищает веб-трафик. SSL VPN – это сервис сетевой безопасности на основе браузера, которая использует встроенный протокол SSL, чтобы шифровать и защищать сетевой обмен данными.

Чем IPSec VPN отличается от SSL VPN?

Оба протокола безопасности работают на разных уровнях модели взаимодействия открытых систем (OSI). Модель OSI определяет многоуровневую структуру того, как компьютеры обмениваются данными в сети.

Протоколы IPSec применяются к сетевому и транспортному уровням в середине модели OSI. А SSL шифрует данные на самом верхнем уровне приложения. Вы можете подключиться к SSL VPN из веб-браузера. Чтобы использовать IPSec VPN, требуется установить отдельное программное обеспечение.

Как AWS поддерживает соединения IPSec?

AWS VPN «сеть-сайт» – это полностью управляемый сервис, который с помощью туннелей IPSec создает безопасное соединение между вашим центром обработки данных или филиалом и вашими ресурсами AWS. При использовании VPN типа «сайт-сайт» вы можете подключаться как к виртуальному частному облаку (VPC), так и к транспортному шлюзу AWS, а для повышения избыточности используются два туннеля на каждое соединение. VPN типа «сайт-сайт» от AWS дает множество приведенных ниже преимуществ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *