Немного о VPN: протоколы для удаленного доступа

    Первого ноября в России начал действовать запрет на обход блокировок с помощью VPN. И многие компании, в том числе иностранные, задались вопросом, как быть организациям, использующим технологию для создания корпоративных сетей.

    Как рассказали представители Госдумы, в законе имеется оговорка, согласно которой шифрование сетей можно использовать в корпоративных целях. Это означает, что компаниям не придётся тратить значительные суммы и прокладывать частные сети между своими офисами, так как установка VPN-соединения практически (а в некоторых случаях так и есть) бесплатна. Поэтому сегодня мы решили рассмотреть два способа организации VPN-соединения в корпоративной сети и несколько применяемых для этого протоколов: PPTP, L2TP/IPsec, SSTP и OpenVPN.


    / Flickr / Johannes Weber / CC

    PPTP


    Спецификация PPTP разрабатывалась консорциумом, основанным Microsoft для организации VPN в dial-up. Поэтому PPTP долгое время оставался стандартом для корпоративных сетей. По этой же причине он использует протокол шифрования Microsoft Point-to-Point Encryption (MPPE).

    Идет «по умолчанию» на любой VPN-совместимой платформе и легко настраивается без дополнительного программного обеспечения. Еще одно достоинство PPTP — высокое быстродействие. Но к сожалению, PPTP недостаточно безопасен. С момента включения протокола в состав Windows 95 OSR2 в конце девяностых, раскрылись несколько уязвимостей.

    Самая серьезная — это возможность неинкапсулированной аутентификации MS-CHAP v2. Этот эксплойт позволил взломать PPTP за два дня. Microsoft «залатали» дыру, перейдя на протокол аутентификации PEAP, но потом сами предложили использовать VPN-протоколы L2TP/IPsec или SSTP. Еще один момент — PPTP-подключения легко заблокировать, потому что протокол работает с одним портом номер 1723 и использует GRE-протокол.

    Когда VPN-туннель установлен, PPTP поддерживает два типа передаваемых сообщений: это контрольные сообщения для поддержания и отключения VPN-соединения, а также сами пакеты данных.

    L2TP и IPsec


    Layer 2 Tunneling Protocol, или L2TP, также представлен практически во всех современных операционных системах и работает со всеми устройствами, способными «воспринимать» VPN.

    L2TP не умеет шифровать проходящий через него трафик, поэтому его часто используют в связке с IPsec. Однако это приводит к появлению негативного эффекта — в L2TP/IPsec происходит двойная инкапсуляция данных, что отрицательно сказывается на производительности. Также L2TP использует пятисотый UDP-порт, который легко блокируется файрволом, если вы находитесь за NAT.

    L2TP/IPsec умеет работать с шифрами 3DES или AES. Первый уязвим для атак типа meet-in-the-middle и sweet32, поэтому сегодня редко встречается на практике. При работе с AES-шифром о крупных уязвимостях неизвестно, поэтому в теории этот протокол должен быть безопасен (при правильной реализации). Однако Джон Гилмор (John Gilmore), основатель Electronic Frontier Foundation, указал в своем посте, что IPSec мог быть специальным образом ослаблен.

    Наиболее серьезная проблема с L2TP/IPsec заключается в том, что многие VPN-сервисы реализуют его недостаточно хорошо. Они используют pre-shared keys (PSK), которые можно загрузить с сайта. PSK нужны для установки соединения, потому даже если данные оказываются скомпрометированы, они остаются под защитой AES. Но атакующий может использовать PSK, чтобы выдать себя за VPN-сервер и затем подслушать зашифрованный трафик (даже инжектировать вредоносный код).

    SSTP


    Secure Socket Tunneling Protocol, или SSTP, — это VPN-протокол, который разрабатывала компания Microsoft. Он основывается на SSL и впервые запущен в Windows Vista SP1. Сегодня протокол доступен для таких ОС, как RouterOS, Linux, SEIL и Mac OS X, однако основное применение он все равно находит на платформе Windows. SSTP — проприетарный стандарт, принадлежащий Microsoft, и его код недоступен для публичного обозрения.

    Сам SSTP не имеет криптографического функционала за исключением одной функции — речь идет о криптографическом связывании (cryptographic binding), защищающем от атаки MITM. Шифрование же данных выполняет SSL. Описание процедуры установления VPN-соединения можно найти на сайте Microsoft.

    Тесная интеграция с Windows упрощает работу с протоколом и повышает его стабильность на этой платформе. Однако SSTP использует SSL 3.0, который уязвим для атаки POODLE, что в теории сказывается на защищённости VPN-протокола.

    OpenVPN


    OpenVPN — это открытый проект, использующий библиотеку Open SSL, TLS и ряд других технологий. Сегодня он является индустриальным стандартом в коммерческих VPN-сервисах и реализуется на любой платформе с помощью стороннего ПО. Многие провайдеры даже предоставляют кастомные клиенты OpenVPN, однако над ядром кода все равно работают разработчики проекта.

    Среди достоинств OpenVPN выделяется его настраиваемость. Его можно настроить для работы на любом порте. Это позволяет пересылать трафик через порт 443, чтобы «замаскировать» его под HTTPS, что усложняет блокирование.

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

    Еще одно достоинство протокола — библиотека OpenSSL. Она поддерживает многие криптоалгоритмы — это 3DES, CAST-128, Camelia, AES и Blowfish. Последние два чаще всего используются на практике.

    Также плюсом OpenVPN можно считать регулярные аудиты. Последняя проведенная проверка не выявила «дыр», влияющих на безопасность данных пользователей. Тогда были найдены несколько уязвимостей, дающих злоумышленникам возможность проводить DDoS-атаки, но разработчики пропатчили их в версии OpenVPN 2.4.2.

    OpenVPN считается одним из самых надёжных VPN-протоколов имеющихся сегодня и широко поддерживается VPN-индустрией. И хотя раньше OpenVPN не работал на мобильных платформах без root-доступа, сегодня есть third-party приложения, которые исправили это «недоразумение».


    / Flickr / Andrew Hart / CC

    Типы подключения VPN


    В сегодняшнем материале мы поговорим о двух наиболее часто используемых типах подключения к VPN. Речь пойдёт об удаленном доступе к корпоративной сети (remote access) и соединении «точка — точка» (site-to-site)

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

    Чтобы защитить соединение чаще всего используются протоколы IPsec или SSL. Также возможно применение протоколов PPTP и L2TP.


    / Wikimedia / Philippe Belet / PD

    Site-to-site VPN служит объединения разных локальных сетей. В этом случае устройства пользователей работают без VPN-клиентов — всю работу выполняет шлюз.
    Такой тип подключения применяется тогда, когда у компании есть несколько удаленных офисов, которые нужно объединить в одну частную сеть. А также в том случае, если у организации есть партнер, к сети которого требуется подключение. Это позволяет компаниям вместе работать в защищенном общем пространстве.


    / Wikimedia / Philippe Belet / PD

    Для защиты соединения «точка – точка» чаще всего используется IPsec. Также применяется вариант операторского MPLS-облака без публичных сетей. В этом случае появляется возможность организовать соединения Layer3 (MPLS IP VPN) или Layer2 (VPLS).

    Напоследок хотелось бы отметить, что имеются еще несколько вариантов использования VPN-соединений:

    • Установление соединения между двумя серверами в дата-центрах. Полезно в том случае, если по какой-то причине нет возможности наладить безопасный канал с помощью стандартной корпоративной сети.
    • Подключение к сервису IaaS.
    • Размещение VPN-шлюза в облаке.

    Подробнее о них и технологии VPLS мы планируем рассказать в одном из последующих материалов.



    P.S. О чем еще мы пишем в нашем корпоративном блоге:

    VAS Experts 106,53
    Российский разработчик DPI-системы СКАТ
    Поделиться публикацией
    Комментарии 21
    • 0
      Хорошая статья, спасибо! Еще хотелось бы увидеть хотя бы небольшое описание таких терминов как Cisco IPsec и IKEv2. Потому что в русском варианте о них информации мало.
      • 0
        Cisco IPSec, но IPsec. </зануда>
        Очевидно же, что не дождетесь. </сарказм>
        • 0
          Предполагается что специалист, доросший до технологий Cisco, способен читать по-английски.
        • +1
          Интересно было бы почитать о применении tinc в аналогичных случаях.
          • 0
            Поддерживаю. Очень мало написано об этом решении, а между прочим, оно позволяет строить защищенные сети любой топологии, автоматически преодолевает NAT с помощью встроенного механизма STUN и позволяет, таким образом, обмениваться трафиком напрямую даже двум клиентам за NAT. Очень гибко настраивается, может работать на 2-м и на 3-м уровне, хорошо работает на любом оборудовании, в том числе и роутерах с прошивками OpenWRT и DD-WRT. У меня есть некоторый опыт его использования.

            Tinc есть для linux и windows платформ, но на widows, у меня работало не так хорошо. Есть впечатление, что развитие проекта замедляется.
            • 0
              Насколько могу судить, проект таки развивается. О скорости высказываться не буду — последний стабильный релиз вышел 4-го ноября, что уже неплохо.
          • 0
            Вопрос по PPTP при mschap2, на который не получается найти однозначный ответ — уязвим ли он при использовании сложного цифро-буквенного пароля с разным регистром длиной 32 символа, к примеру? На каждом углу говорят о небезопасности протокола, но что конкретно имеется в виду — незащищённость слабых паролей, или он в принципе уязвим даже при сложном пароле? Хотелось бы услышать именно факты, а не догадки.
            • +1
              на который не получается найти однозначный ответ

              А ищете как? Гугл по запросу "PPTP mschapv2 vulnerability" выдает вагон ссылок с однозначным ответом — принципиальная уязвимость протокола.

              • 0
                Вы можете указать конкретную статью с тех. подробностями этого однозначного ответа? Например по вашему запросу в гугле есть такие статьи:

                1) www.securitylab.ru/analytics/428488.php
                решил пойти на генерацию для своих пользователей равномерно случайных 21-символьных паролей, не давая им возможности выбирать свои собственные пароли, чтобы гарантировать безопасность развертывания PPTP VPN-сервиса

                2) samag.ru/archive/article/1752
                Ведь редкий пользователь установит себе пароль типа «3hEML@4rj897#KJK$$», его будет сложновато запомнить

                И предлагается использование ключей 2048 бит как надёжное, что говорит о том, что сложность пароля решает проблему.
                • +1

                  Да вот хотя бы по той ссылке, которую вы привели первой, все и описано (насколько я вижу, это перевод оригинального доклада, который окончательно похоронил PPTP-MSCHAPv2). Как вы сделали из нее вывод, что сложность пароля решает проблему, я не знаю, потому что там написано прямо противоположное.


                  Вторая ссылка 2007 года. Если уязвимость раскрыта в 2012, чем вам может помочь статья 2007-го?

                • 0
                  И предлагается использование ключей 2048 бит

                  Скорее всего там про EAP-MS-CHAP v2. С ним никаких проблем, там обычный MS-CHAP v2 инкапсулируется в TLS.
            • 0
              Точности ради

              в России начал действовать запрет на обход блокировок с помощью VPN

              Открываем закон
              Владельцам информационно-телекоммуникационных сетей, информационных ресурсов (сайт в сети «Интернет» и (или) страница сайта в сети «Интернет», информационная система, программа для электронных вычислительных машин), посредством которых обеспечивается доступ к информационным ресурсам, информационно-телекоммуникационным сетям, доступ к которым ограничен на территории Российской Федерации в соответствии с настоящим Федеральным законом (далее также — владелец программно-аппаратных средств доступа к информационным ресурсам, информационно-телекоммуникационным сетям, доступ к которым ограничен), запрещается предоставлять возможность использования на территории Российской Федерации принадлежащих им информационно-телекоммуникационных сетей и информационных ресурсов для получения доступа к информационным ресурсам, информационно-телекоммуникационным сетям, доступ к которым ограничен на территории Российской Федерации в соответствии с настоящим Федеральным законом.

              Сокращаем
              Владельцам информационно-телекоммуникационных сетей, информационных ресурсов… запрещается предоставлять возможность… для получения доступа к информационным ресурсам… доступ к которым ограничен

              Тоесть:
              — Запрета VPN нет, есть запрет на доступ к запрещенным ресурсам
              — Запрет касается владельцев ресурсов, посредством которых идет обход. Частным пользователям запрета нет

              Представитель ведомства Вадим Ампелонский заявил, что закон требует от анонимайзеров отфильтровать запрещенные сайты, при этом сами анонимайзеры при этом не запрещены.
              линк

              Закон, вступающий в силу с 1 ноября 2017 года, не содержит в себе оснований для блокировки домашнего интернета при осуществлении поиска запрещенных сайтов.

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

              • 0
                И ни слова про SoftEther VPN, который при всех достоинствах практически лишён недостатков.
                • 0
                  Однако SSTP использует SSL 3.0, который уязвим для атаки POODLE

                  SSTP на Win10 и RouterOS умеет TLS 1.2 и в отличии от L2TP + IPSEC хорошо дружит с множеством клиентов за одним NAT IP адресом. Из минусов — работает поверх TCP, из-за чего можно поймать проблем на плохих каналов в топологии site2site.
                  • 0
                    Статья-то хорошая, да вот дать бы её прочитать сотрудникам провайдеров. У большинства из которых уже принудительное ipoe, во всяком случае билайн, мгтс и пр. наблюдаю. То есть речь о том что не только не производятся улучшения в сфере защиты кабеля до абонента, а вовсе даже наоборот- провайдерами снимаются практически все преграды для злоумышленников на «последней миле». «Врежется» на пять минут в ваш интернет-кабель сосед вася-ольгинец, которому что-то в вас не понравилось, а отвечать по всей строгости будете вы в свете «закона яровой». Впрочем может для того все и делалось.

                    • 0
                      А им проблемы клиента неважны. Им важен биллинг, и важна легкость обслуживания. А чего бы вы от них хотели, стойкого крипто (чтобы на их стороне тысячи каналов до клиентов чем-то шифровать?), и добавления оверхеда в канал связи (вы же понимаете, что любая инкапсуляция небесплатна — тот же PPPoE добавляет что-то процентов 13, или, если наоборот, от обещанных вам, скажем, 100 Мбит вы 13 тратите на работу PPPoE, но платите за все 100)?

                      Пользуясь случаем, хочется желто-полосатому провайдеру передать привет за их l2tp схему подключения, где нужно цепляться к серверу, который определяется по имени через их же ДНС — ух как неприятно такое на железках небытового уровня настраивать! Вот что значит принятое раз идиотское (с точки зреняи пользователей) инженерное решение на стадии проектирования!
                      • 0
                        PPPoE применяется потому, что и PPTP и L2TP это по сути надстройка над PPPoE (во всех трех случаях для доставки payload до провайдера используется PPP внутри GRE, для установки соединения свои собственные протоколы с закрытой реализацией), а чем меньше надстроек и прозрачнее система тем она надежнее. Кроме того для работы PPTP и L2TP изначально требуется наличие сконфигурированного IP адреса и уверенность, что ничего не сломается после очередного несовместимого изменения протокола от MS (как это регулярно происходило с samba).
                        • 0
                          Так почему PPP-протоколы применяются — как раз понятно. Минимум это создание отдельных интерфейсов, которые удобны как отдельные объекты управления.
                          А вот почему в домовом интернете Билайна L2TP сделан — это вопрос! Как раз по описанным вами причинам.
                    • 0
                      Можно еще добавить про новый shadowsocks. Он, правда, не для объединения сетей создан, но тоже очень интересная штука
                      • 0
                        плюсом OpenVPN можно считать регулярные аудиты

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

                        С SSTP своя петрушка — его (особенно сервера) вроде как нет ни на одной ОСи, кроме винды (и того же Микротика), что мешает распространению.

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                        Самое читаемое