Журнал Системный Администратор, Апрель 2007

Журнал Системный Администратор

Апрель 2007

Цена: $4.5 US

  Подписаться

Зарегистриванные пользователи, пожалуйста следуйте этой ссылке


VPN на основе протокола PPTP: как повысить безопасность?

Дмитрий Рощин

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

Нелегкая судьба протокола PPTP

Протокол PPTP (Point-to-Point Tunneling Protocol) разработан компанией Microsoft совместно с компаниями Ascend Communications, 3Com/Primary Access, ECI-Telematics и US Robotics. Этот протокол получил статус интернет-стандарта, но так и не был утвержден.

Для организации туннеля в PPTP используется протокол GRE (Generic Routing Encapsulation), а для шифрования трафика используется MPPE (Microsoft Point-to-Point Encryption), протокол для шифрования пакетов протокола PPP потоковым шифром RC4.

Фактически задача PPTP состоит в организации шифрованного туннеля, внутри которого будет работать протокол PPP.

GRE не единственный протокол транспортного (согласно модели OSI) уровня, используемый в PPTP – для организации управляющего канала PPTP использует протокол TCP (порт 1723).

В реализации Microsoft поддерживаются следующие методы аутентификации: PAP, CHAP, SPAP, MSCHAP v1, MSCHAP v2, EAP. Несмотря на наличие ряда «врожденных» дефектов, о которых я еще скажу далее, данный протокол до сих пор активно используется многими организациями благодаря тому, что до появления L2TP/IPSEC это был единственный VPN-протокол, поддержка которого была встроена в ОС Windows.

Итак, как настроить PPTP VPN таким образом, чтобы обеспечить максимально возможный для данного протокола уровень безопасности? Думаю, что предложенное решение будет интересно еще и как очередной пример взаимодействия в рамках конкретной задачи коммерческого программного обеспечения с программным обеспечением, имеющим открытый исходный код.

В первоначальном виде протокол PPTP представлял собой настоящее решето. Буквально все его составляющие были уязвимы к различным видам атак. Пароли в виде LM-хэшей; алгоритм MSHAP v1 (сплошное недоразумение); шифрование MPPE (многократное использование ключей шифрования, атаки на шифр RC4, генерация ключей шифрования на основе пароля пользователя); полное отсутствие аутентификации сервера и проверки подлинности шифрованных пакетов; отсутствие шифрования во время установления PPP-соединения; нет никакой защиты канала управления и т. д.

Все эти уязвимости были выявлены в 1998 году Брюсом Шнаером [1]. После чего Microsoft провела работу по усилению безопасности и улучшению качества кода реализации PPTP. Новая версия протокола получилась более защищенной, появилась вторая версия протокола MSCHAP.

Однако в скором времени все тот же неугомонный Брюс Шнаер в 1999 году опять провел криптографический анализ уже обновленного протокола [2]. Результаты снова оказались неутешительными, это и понятно, ведь многие из уязвимостей существуют из-за недоработок в дизайне протокола. Осталась генерация ключей шифрования на основе пароля пользователя, равно как и отсутствие проверки подлинности шифрованных пакетов, шифрование во время установления PPP-соединения по-прежнему отсутствует.

В 2003 году Джошуа Райт написал утилиту asleap [3], которая за доли секунд взламывает слабые пароли, защищенные алгоритмом MSCHAPv2, а чуть позже в нее был добавлен функционал работы с PPTP (см. рис. 1). Эта утилита изначально разрабатывалась для атак на патентованный протокол Cisco Systems LEAP. Многие специалисты по информационной безопасности, увидев ее в действии, начали призывать махнуть рукой на ущербный от рождения протокол, мол, горбатого могила исправит, и переходить на L2TP/IPsec.

Рисунок 1. Демонстрация работы asleap

Конечно, уровень безопасности протокола IPSEC на порядок выше, чем PPTP, однако есть один нюанс, который позволяет и PPTP от Microsoft отстоять свое право на существование. И вот в чем он заключается.

Оставшая часть статьи доступна только подписчикам. Если вы желаете продолжить чтение этой статьи, то вам необходимо подписаться на эту статью или весь номер.

Подписаться на весь номер

Зарегистриванные пользователи, пожалуйста следуйте по этой ссылке