o РРТР-туннель, по которому клиент и сервер обмениваются зашифрованными данными.
Этот протокол имеет известные уязвимости и использует относительно слабые шифры MD4 и DES.
Протокол GRE
Протокол Generic Routing Encapsulation (GRE) разработан компанией Cisco и применяется для туннелирования трафика между различными частными сетями, включая не-IP трафик, который нельзя пропустить по сети в неизменном виде. Несмотря на то, что протокол не осуществляет шифрования, он позволяет эффективно организовать туннель с низкими накладными расходами. GRE часто применяется в сочетании с протоколами шифрования на сетевом уровне, в результате чего решаются две задачи: инкапсуляция не-IP трафика, реализуемая GRE, и шифрование, выполняемое другим протоколом, например, IPSec.
Протокол L2TP.
Этот протокол (RFC 2661), совместно разработанный компаниями Cisco, Microsoft и 3Com, обещает заменить РРТР в качестве основного туннельного протокола. По существу, L2TP представляет собой комбинацию РРТР и созданного Cisco протокола Layer Two Forwarding (L2F). Протокол L2TP применяется для туннелирования РРР-трафика поверх IP-сети. Для установления соединения по коммутируемой линии в нем используется РРР с аутентификацией по протоколу РАР или CHAP. Но в отличие от РРТР, L2TP определяет свой собственный туннельный протокол. Поскольку L2TP работает на уровне 2, то через туннель можно пропускать и не-IP трафик. L2TP совместим с любым канальным протоколом, например ATM, Frame Relay или IEEE 802.11. Сам по себе протокол не содержит средств шифрования, но может быть использован в сочетании с другими протоколами или механизмами шифрования на прикладном уровне.
Помимо стандартных протоколов VPN существуют и специализированные варианты. Рассмотрим некоторые из них.
Протокол cIPe.
Разработчики утверждают, что cIPe обеспечивает почти такой же уровень безопасности, как IPSec. Протокол работает на уровне IP и позволяет туннелировать протоколы более высоких уровней (например, ICMP, TCP, UDP). Принцип работы напоминает РРР, но cIPe инкапсулирует передаваемые IP-пакеты в UDP-дейтаграммы. При разработке cIPe была поставлена цель создать облегченный протокол, в котором для шифрования данных применяются достаточно стойкие криптографические алгоритмы Blowfish и IDEA, но при этом простой для установки и обслуживания и в то же время несколько более производительный, чем IPSec. В cIPe используется единственный UDP-порт для организации туннеля, трафик без труда проходит через механизм преобразования сетевых адресов NAT (network address translation) и межсетевой экран с запоминанием состояния. Существуют бесплатные реализации cIPe как для UNIX, так и для Windows. К сожалению, были выявлены многочисленные недостатки, допущенные при проектировании cIPe, которые, вероятно, не будут исправлены до выхода следующей версии протокола.
Пакет OpenVPN.
Open VPN — это еще одно открытое решение, по своей функциональности аналогичное cIPe. Пакет легко инсталлируется и конфигурируется. Он работает на большинстве UNIX-подобных систем, в которых есть драйверы виртуальной сети TUN/TAP. OpenVPN имеет модульную структуру. Все криптографические функции реализованы посредством библиотеки OpenSSL, в том числе и самые современные шифры, к примеру, AES с 256-битным ключом. Следовательно, протокол в полной мере поддерживает реализованные в OpenSSL механизм PKI для аутентификации сеансов, протокол TLS для обмена ключами, не зависящий от шифра интерфейс EVP для шифрования данных и коды НМАС для аутентификации данных. Как и в случае cIPe, использование единственного UDP-порта для инкапсуляции туннеля позволяет без труда пропускать трафик через NAT и межсетевые экраны с запоминанием состояния.
Пакет VTun.
VTun — это решение, которое использует драйвер виртуальной сети TUN/TAP для туннелирования IP-трафика. Протокол поддерживает все распространенные протоколы уровня 3, в том числе IPX и AppleTalk, протоколы для работы по последовательным линиям связи РРР и SLIP, а также все программы, работающие с конвейерами UNIX. Встроенный механизм контроля трафика позволяет ограничивать входную и выходную скорость работы туннеля, что отличает это решение от всех остальных. С точки зрения конфиденциальности, VTun не претендует на звание самого безопасного протокола, основные усилия при разработке были направлены на быстродействие, стабильность и удобство эксплуатации. Тем не менее, используется алгоритм шифрования Blowfish с 128-битным ключом для шифрования данных и MD5 для генерирования 128-разрядных сверток. Версии для Windows не существует, применение ограничено UNIX-подобными ОС, которые поддерживают драйвер TUN/TAP.
Протокол IPSec.
Протокол IPSec — это набор открытых стандартов, разрабатываемых под эгидой IETF. Набор протоколов IPSec состоит из трех основных частей, которые определяют два режима его работы (АН и ESP):
1. АН (Authentication Header — заголовок аутентификации) обеспечивает аутентификацию источника данных, целостность и защиту от воспроизведения;
2. ESP (Encapsulating Security Payload — инкапсуляция зашифрованных данных, обеспечивает аутентификацию источника данных, целостность, защиту от воспроизведения, конфиденциальность данных и до некоторой степени скрытность управления потоком;
3. IKE (Internet Key Exchange — схема обмена ключами через Интернет) предоставляет средства согласования криптографического алгоритма и отвечает за распределение ключей, используемых в АН и ESP.
В режиме аутентификации к стандартной дейтаграмме IP добавляется специальный заголовок аутентификации АН (рис. 3.5) . Поле «следующий заголовок» определяет тип данных после НА. Параметр безопасности SCI определяет тип профиля безопасности для данного пакета. Порядковый номер пакета служит для предотвращения атак повторением. В поле данных аутентификации содержится информация в соответствии с выбранной схемой обеспечения безопасности. Для проверки аутентичности вычисляется свертка в соответствии с механизмом НМАС (с MD5 или SHA-1).
Режим инкапсуляции зашифрованных данных ESP намного сложнее режима НА. Этот механизм обеспечивает не только аутентификацию, но и целостность и конфиденциальность передаваемых пакетов. Помимо собственно шифрования данных, к исходной дейтаграмме добавляются поля «Заголовок ESP» и «Трейлер ESP» (рис. 3.6).
Рис.3.5 Формат пакета с заголовком аутентификации НА, протокол IPSec.
Оба режима — АН и ESP — полагаются на механизм согласования сторонами параметров безопасного соединения (профиля безопасности — security association, SA) по алгоритму IKE. В SA хранятся параметры, о которых договорились оба участника обмена по сети VPN. К ним относятся криптографические ключи и время их жизни, используемые криптографические алгоритмы и режим работы IPSec.
Рис.3.6 Формат пакета с инкапсулированными данными ESP,протокол IPSec
Для каждого режима работы нужно два SA: для входящего и исходящего трафиков. Эти два набора параметров, описывающих данные, отправляемые и получаемые хостом, называются парой SA (SA bundle). В каждом SA явно указывается протокол АН или ESP, IP-адрес получателя для исходящего соединения или IP-адрес отправителя для входящего соединения и 32-разрядный уникальный идентификатор SPI. Еще одна важная характеристика SA — время жизни. Этот параметр определяет интервал времени, по истечении которого следует провести повторное согласование или считать SA недействительным. Время жизни задается либо как число обработанных байтов, либо как временной интервал; по достижении любого из этих порогов начинается повторное согласование SA. Существует два значения порога времени жизни SA: жесткий и мягкий. В случае если достигнут мягкий порог, то SA согласуется заново, по достижении же жесткого порога SA удаляется из памяти хоста.
Каждый хост-участник хранит SA в базе данных параметров безопасности (SA Database — SAD). Для работы IPSec необходима база данных политик безопасности (Security Policy Database — SPD), в которой хранятся сведения о политиках, применяемых к трафику. SPD содержит набор правил, которые, в свою очередь, состоят из селекторов, несущих информацию о типах выполняемых действий. Когда приходит пакет, по базе данных SPD определяется дальнейшее действие над ним: отбросить, пропустить дальше или передать для обработки протоколу IPSec. В отличие от SPD, база данных SAD хранит только необходимые параметры соединения.
Чтобы определить необходимые действия над пакетом, из его заголовка извлекаются три поля, которые сопоставляются с информацией, хранящейся в SAD (протокол IPSec, IP-адрес и SPI). Если соответствие найдено, то далее параметры сравниваются с полями АН или ESP. Если соответствие не найдено, пакет отбрасывается.
Традиционно в IPSec использовался шифр DES или 3DES. Шифр DES считается слабым и может быть вскрыт за несколько дней или даже часов, поэтому его использование не рекомендуется. Шифр 3DES гораздо более стоек, но требует большого объема вычислений и медленно работает на маломощных устройствах, таких как точки доступа и карманные компьютеры. Возможны и другие шифры, например Rijndael.
Добавление новых заголовков к IP-пакету после инкапсуляции ведет к увеличению размера пакета, т. е. к накладным расходам на организацию туннеля. В случае протокола ESP пакет может вырасти на 300 байт, что негативно сказывается на производительности. В протоколе IPSec предпринята попытка решения этой проблемы посредством встроенного протокола сжатия IP-пакетов (IPComp), в котором обычно применяются алгоритмы DEFLATE или LZS.DEFLATE. Сжатие выполняется до модификации в соответствии с IPSec и до фрагментации. Обычно сжатие случайных или уже сжатых данных неэффективно, более того, иногда применение избыточного сжатия приводит даже к увеличению размера IP-пакета. Применение протокола IPComp должно быть согласовано обеими сторонами с помощью механизма IKE. Следует отметить, что IPComp достаточно гибок, он позволяет выборочно применять сжатие только к конкретному протоколу транспортного уровня или лишь на одном конце соединения.