Несмотря на успешную деятельность группы IETF IPSec Working Group, некоторые эксперты выражают большие сомнения в целесообразности выбора сетевого уровня модели OSI в качестве основы для системы защиты.
Главное преимущество подхода IETF заключается в том, что он не требует изменения приложений. Между тем довольно большое число прикладных программ, особенно работающих в реальном времени или ориентированных на многоадресную передачу, базируются на протоколе UDP, на который совсем не просто распространить механизмы защиты, предусмотренные в IPSec.
Еще большую проблему представляет сложность самой архитектуры IPSec, что может негативно сказываться на производительности, особенно в сетях с высокой интенсивностью трафика.
Отмеченные слабые стороны системы защиты на базе IPSec заставляют оппонентов данной технологии рассматривать другие средства обеспечения информационной безопасности. В качестве кандидатов на эту роль называются такие протоколы, как Secure Shell (SSH), Secure Sockets Layer (SSL), Transport Layer Security (TLS), Layer-2 Tunneling Protocol (L2TP) и Point-to-Point Tunneling Protocol (PPTP).
Наиболее распространенным среди перечисленных стал протокол Point-to-Point Tunneling Protocol (PPTP, RFC 2637), который является расширением протокола канального уровня PPP (RFC 1661), используемого, в частности, для передачи IP-трафика при доступе в Internet по коммутируемому соединению. Помимо программной поддержки, как и все остальные альтернативные решения, он получил и аппаратную реализацию и рассматривается, таким образом, в качестве базовой технологии для построения защищенных сетей VPN, альтернативной IPSec.
Наиболее известной является реализация PPTP, предложенная фирмой Microsoft в сотрудничестве с 3Com и Ascend Communications, которая даже предлагалаcь к стандартизации. Впоследствии компания Cisco предложила протокол Layer-2 Forwarding (L2F) с аналогичными функциями. Учитывая большое влияние указанных корпораций в сетевом мире и мире программного обеспечения, они в сотрудничестве разработали новую версию, получившую название Layer-2 Tunneling Protocol (L2TP), которая объединяет достоинства обеих разработок и уже подана в качестве заявки на стандартизацию.
Основное отличие PPTP и L2TP заключается в том, что пакеты управления PPTP инкапсулируются в пакеты TCP, а информационные пакеты в GRE, для L2TP используется инкапсуляция всех пакетов в пакеты UDP, что упрощает реализацию и аппаратную поддержку в брандмауэрах и других сетевых устройствах. Поэтому здесь мы рассмотрим лишь протокол PPTP.
Основным моментом в понимании принципов работы PPTP является четкое разграничение между функциями протокола и его реализацией.
По функциональному назначению протокол PPTP, как и PPP, относится ко второму уровню ЭМВОС, однако реализован он, как протокол уровня приложений. Это означает следующее.
Если необходимо связаться двум узлам в разных сегментах корпоративной сети и для связи требуется использовать сеть Internet, т.е. организовать через нее виртуальный защищенный канал, то с точки зрения этих узлов обмен организуется на втором уровне. Однако, когда пакеты доходят до шлюза Internet, как бы он ни был реализован, то они заключаются в качестве данных в пакеты протокола TCP/IP (если несут управляющую информацию о соединении) или GRE/IP (если несут собственно данные). На принимающей стороне шлюз Internet извлекает пакеты PPTP из стандартных пакетов стека TCP/IP и отправляет в сеть. Таким образом, происходит прозрачный обмен на втором уровне и одновременно обеспечивается защита данных от атак, свойственных сети Internet.
В терминологии PPTP процесс обмена информации строится по клиент-серверной архитектуре.
Клиентом в данном случае считается шлюз доступа в Internet, к которому непосредственно подключается пользователь через модем или другим образом по протоколу PPP. Этот шлюз обозначается PAC (PPTP Access Concentrator). Сервером считается сторона, "отвечающая" на запрос соединения и находящаяся "по другую сторону" сети Internet, т.е. тоже шлюз, но на входе целевой сети, которой и будет в случае успеха передан трафик PPP, инкапсулированный в протоколы Internet. Сервер имеет обозначение PNS (PPTP Network Server).
Таким образом, протокол PPTP описывает процедуры передачи произвольного PPP трафика через сеть Internet и работает на участке PAC–PNS.
Если же реализуется непосредственный обмен между модемами, например, пользователя и сервера RAS Windows NT, то этот сервер одновременно может выступать в роли и PAC, и PNS.
Рассмотрим теперь форматы сообщений протокола.
Как уже было сказано выше, различают два вида сообщений: управляющие, которые обеспечивают установление PPP соединения, и информационные, которые собственно и передают PPP трафик через сеть Internet.
Управляющие сообщения PPTP инкапсулируются в качестве данных в пакеты протокола TCP, причем соединение устанавливается по порту 1723.
Сообщения имеют следующий формат:
1. Длина сообщения (1 байт) в байтах.
2. Тип управляющего сообщения PPTP (1 байт, предусмотрено два типа управляющих сообщений: 1 – control, 2 – management, при этом в настоящее время используется только первый тип).
3. Специальная комбинация 0x1A2B3C4D, предназначенная для проверки правильности передачи данных по коммутируемым линиям связи.
4. Тип управляющего сообщения (1 байт).
5. Резерв (1 байт).
6. Содержание управляющего (control) сообщения, зависящее от его типа.
К управляющим сообщениям относятся сейчас 15 комбинаций: запрос/разрешение соединения, запрос/разрешение разрыва соединения, запрос/ответ сервера PPTP, запрос/разрешение входящего или исходящего звонка, ошибка связи и т.д. Для каждого из них предусмотрен свой формат, включающий всю необходимую информацию. Например, версию протокола PPP, скорость передачи, количество сеансов PPP, управляемых данной сессией управляющих сообщений, марки производителей оборудования, параметры передачи сигналов по линиям связи и т.д. Т.е. фактически происходит передача той информации, которая была бы необходима, если бы модемы обменивались напрямую.
Когда соединение PPP установлено, то его пакеты данных инкапсулируются в специализированный протокол Generic Routing Encapsulation (GRE, RFC 1701-1702), который был специально создан для инкапсуляции любых протоколов в IP-пакет. Для PPTP используется модифицированная версия этого протокола Enhanced GRE (RFC 2637).
Пакет при этом имеет следующий формат:
1. C – бит наличия контрольной суммы (равен 0).
2. R – бит маршрутизации (равен 0).
3. K – бит наличия ключа аутентификации (равен 1).
4. S – бит наличия последовательного номера пакета (равен 0 или 1 в зависимости от наличия указанной информации).
5. s – бит дополнительной информации маршрутизации (равен 0).
6. Recur – три бита контроля рекурсии (равны 0).
7. A – бит наличия максимального номера пакета (равен 0 или 1 в зависимости от наличия указанной информации).
8. Flags – три резервных бита флагов (равны 0).
9. Ver – три бита версии протокола (для Enhanced GRE версия равна 1).
10. Protocol Type (2 байта) – идентификатор инкапсулированного протокола, для PPP равен 0x880B.
11. Key (4 байта) – ключ аутентификации, два старших байта равны длине поля данных в байтах, два младших байта – идентификатор абонента, присвоенный ему в процессе установки соединения.
12. Sequence Number (4 байта) – порядковый номер пакета.
13. Acknowledgment Number (4 байта) – максимальный номер пакета, который будет принят.
14. Payload – данные переменной длины (сам пакет PPP без заголовка, касающегося специфических параметров связи).
Заметим, что процедуры шифрования данных и распространения ключей не оговорены в стандарте PPTP и возлагаются на разработчиков систем защищенной передачи информации через сеть Internet. Поэтому можно сделать вывод, что протоколы PPTP и IPSec обладают противоположными достоинствами и недостатками.
С одной стороны, в IPSec подробно расписаны процедуры, связанные с аутентификацией, шифрованием и распространением ключей, но уровень ЭМВОС и сложность самого протокола считаются слишком высокими.
PPTP намного проще в реализации, но в нем не стандартизированы криптографические вопросы.
С технической точки зрения в одной сети можно одновременно задействовать оба протокола, правда, скорее для обеспечения избыточности средств информационной защиты. Выбор PPTP оправдан в тех случаях, когда первостепенной является задача транспортировки трафика, отличного от IP. Если же главным требованием остается высокая гибкость и масштабируемость, предпочтение стоит отдать архитектуре IPSec.
Примеры аппаратно-программных средств криптографической защиты