Обзор Secure Socket Tunneling Protocol
В статье мы посмотрим, что такое SSTP, чем отличаются VPN-протоколы и какие преимущества есть у SSTP для подключения пользователей по VPN.
5.4K открытий
Виртуальная частная сеть VPN представляет собой сеть, построенную с использованием открытых сетей для соединения узлов. Это позволяет пользователю получать безопасный доступ к ресурсам локальной сети (например на время карантина). При этом используется шифрование и другие меры безопасности, чтобы гарантировать, что данные не будут перехвачены неавторизованными пользователями.
В течение многих лет для VPN-подключений успешно использовались протокол PPTP, но в последнее время их использование стало проблематично из-за увеличения числа подключений к мобильным провайдерам и публичным Wi-Fi сетям. Были придуманы альтернативные меры для обеспечения такого типа доступа. Многие организации начали использовать IPSec и SSL VPN в качестве альтернативы. Другой новой альтернативой стало SSTP, также называемый «SSL VPN от Microsoft».
Проблемы с обычным PPTP VPN
В PPTP используется зашифрованный GRE-туннель, который обеспечивает конфиденциальность передаваемых данных. Когда туннель проходит через обычные NAT-ы, VPN туннель перестает работать. VPN обычно соединяет узел с конечной точкой. Может случиться так, что и узел, и конечная точка имеют один и тот же внутренний адрес локальной сети и, если задействован NAT, могут возникнуть сложности с прохождением трафика.
Протокол SSL использует криптографическую систему, с двумя ключами для шифрования данных — открытым и закрытым. Открытый ключ известен всем, а закрытый — только получателю. Благодаря этому SSL создается безопасное соединение между клиентом и сервером. В отличие от PPTP, SSL VPN позволяет пользователям устанавливать безопасный удаленный доступ практически из любого браузера, подключенного к интернету, препятствие в виде нестабильного соединения устраняется. С SSL VPN весь сеанс защищен, тогда как только с SSL это не достигается.
Протокол туннелирования защищенных сокетов SSTP по определению является протоколом прикладного уровня. Он предназначен для синхронного обмена данными между двумя программами и позволяет использовать множество конечных точек приложения по одному сетевому соединению между равноправными узлами. Это позволяет эффективно использовать коммуникационные ресурсы, которые доступны в сети.
Протокол SSTP основан на SSL вместо PPTP или IPSec, и использует TCP-порт 443 (или другие, как это реализовано в Ideco UTM) для ретрансляции трафика SSTP. Хотя он тесно связан с SSL, прямое сравнение между SSL и SSTP невозможно, поскольку в отличие от SSL, SSTP является только протоколом туннелирования. Существует множество причин для выбора SSL, а не IPSec в качестве основы для SSTP. IPSec направлен на поддержку межсетевого подключения VPN, поэтому SSL стал лучшей основой для разработки SSTP, поскольку он поддерживает роуминг.
Есть и другие причины не основывать его на IPSec:
- не требует строгой аутентификации,
- есть различия в качестве и кодировании пользовательских клиентов от поставщика к поставщику,
- не IP-протоколы не поддерживаются по умолчанию,
- поскольку протокол IPSec был разработан для защищенных соединений типа «сайт-сайт», он может создавать проблемы для удаленных пользователей, пытающихся подключиться из места с ограниченным числом IP-адресов.
SSL VPN оказался более подходящей основой для разработки SSTP
SSL VPN решает эти проблемы и многое другое. В отличие от базового SSL, SSL VPN защищает весь сеанс работы. Статические IP-адреса не требуются, а клиент в большинстве случаев не нужен.
SSTP — расширение VPN
Развитие SSTP было вызвано проблемами с безопасностью протокола PPTP. SSTP устанавливает соединение по защищенному HTTPS; это позволяет клиентам безопасно получать доступ к сетям за NAT-маршрутизаторами, брандмауэрами и веб-прокси, не беспокоясь о станадартных проблемах блокировки портов.
SSTP не предназначен для VPN-подключений «сайт-сайт», но предназначен для VPN-подключений «клиент-сайт».
Эффективность SSTP достигнута такими особенностями:
- SSTP использует HTTPS для установки безопасного соединения. Туннель SSTP (VPN) будет работать через Secure-HTTP. Проблемы с VPN-соединениями на основе протокола туннелирования точка-точка (PPTP) или протокола туннелирования уровня 2 (L2TP) будут устранены. Веб-прокси, брандмауэры и маршрутизаторы преобразования сетевых адресов (NAT), расположенные на пути между клиентами и серверами, больше не будут блокировать VPN-подключения.
- Стандартная блокировка портов уменьшится. Проблемы, связанные с соединениями из-за блокировки портов PPTP GRE или L2TP ESP через брандмауэр или маршрутизатор NAT, не позволяющие клиенту достичь сервера, больше не будут проблемами, т.к. достигается повсеместное подключение. Клиенты смогут подключаться из любого места в интернета.
- SSTP Client встроен в Windows начиная с версии Vista SP1SSTP не потребует переподготовки, т.к. средства управления VPN для конечных пользователей остаются неизменными. VPN-туннель на основе SSTP подключается непосредственно к текущим интерфейсам клиентского и серверного программного обеспечения Microsoft VPN.
- Полная поддержка IPv6. Туннель SSTP VPN может быть установлен через интернет-протокол IPv6.
- Используется встроенная поддержка защиты доступа к сети для проверки исправности клиента.
- Надежная интеграция с клиентом и сервером MS RRAS, возможность двухфакторной аутентификации.
- Увеличивается покрытие VPN с нескольких точек до практически любого количества интернет-подключений.
- SSL-инкапсуляция (защита SSL) для прохождения через порт 443.
- Может контролироваться и управляться с помощью брандмауэров прикладного уровня, таких как ISA-сервер.
- Полноценное сетевое VPN-решение, а не туннель приложений (программ) для одного клиента (устройства).
- Интеграция в NAP.
- Возможна интеграция и настройка политик для проверки состояния клиента.
- Один сеанс создан для туннеля SSL.
- Независимость от приложений.
- Более сильная принудительная аутентификация, чем IPSec.
- Поддержка не IP-протоколов, это намного лучше, чем IPSec.
- Не нужно покупать дорогие, трудно настраиваемые аппаратные брандмауэры, которые не поддерживают интеграцию с Active Directory и встроенную двухфакторную аутентификацию.
Механизм подключения SSTP
Как работает VPN-соединение на основе SSTP. Семь шагов:
- Клиенту SSTP нужно интернет-соединение. Как только оно проверено протоколом, устанавливается TCP-соединение с сервером через порт 443.
- SSL-соединение теперь идет поверх уже установленного TCP-соединения, при котором сертификат сервера подтверждается. Если сертификат действителен, соединение устанавливается, если нет, оно разрывается.
- Клиент отправляет HTTPS-запрос поверх зашифрованного сеанса SSL на сервер.
- Далее он отправляет контрольные пакеты SSTP в рамках сеанса HTTPS. Это, в свою очередь, создает систему SSTP с обеих сторон для управления. Теперь обе стороны инициируют связь уровня PPP.
- Согласование PPP с использованием SSTP через HTTPS происходит с двух сторон. Клиент должен пройти аутентификацию на сервере.
- Сеанс привязывается к IP-интерфейсу с обеих сторон и IP-адресу, назначенному для маршрутизации трафика.
- Трафик может проходить через соединение являясь либо IP-трафиком, либо другим.
В Microsoft уверены, что этот протокол поможет облегчить проблемы с VPN-соединениями. Команда RRAS сейчас готовит RRAS для интеграции с SSTP, этот протокол станет частью решения в будущем. Единственным условием на данный момент является то, что клиент запускает сервера Vista и Longhorn. Набор функций, предоставляемый этим небольшим протоколом, является одновременно разнообразным и гибким. Протокол расширяет возможности пользователя и администратора. Предполагаем, что устройства начнут встраивать этот протокол в стек для безопасной связи, и головная боль NAT вскоре будет забыта, когда мы перейдем к решению с поддержкой 443 / SSL.
SSTP является отличным дополнением к инструментам VPN и позволяет пользователям удаленно и безопасно подключаться к корпоративной сети. Блокирование удаленного доступа и проблемы NAT, кажется, забыты при использовании этого протокола. Технология стабильна, хорошо документирована и работает. Это отличный продукт, он очень приветствуется в наше время для удаленного доступа.
Шлюз безопасности Ideco UTM поддерживает VPN-протокол SSTP. Если ваши пользователи испытывают проблемы при установлении VPN-подключения по протоколу IPsec, вы можете попробовать использовать SSTP.
Подробнее о VPN-сервере в Ideco UTM смотрите на нашем канале.
Secure socket tunneling protocol
Что такое SSTP?
Чем отличаются VPN-протоколы?
Какие преимущества есть у SSTP для подключения пользователей по VPN?
VPN
Виртуальная частная сеть VPN представляет собой сеть, построенную с использованием открытых сетей для соединения узлов. Это позволяет пользователю получать безопасный доступ к ресурсам локальной сети (например на время карантина). При этом используется шифрование и другие меры безопасности, чтобы гарантировать, что данные не будут перехвачены неавторизованными пользователями.
В течение многих лет для VPN-подключений успешно использовались протокол PPTP, но в последнее время их использование стало проблематично из-за увеличения числа подключений к мобильным провайдерам и публичным Wi-Fi сетям. Были придуманы альтернативные меры для обеспечения такого типа доступа. Многие организации начали использовать IPSec и SSL VPN в качестве альтернативы. Другой новой альтернативой стало SSTP, также называемый «SSL VPN от Microsoft».
ПРОБЛЕМЫ С ОБЫЧНЫМ PPTP VPN
В PPTP используется зашифрованный GRE-туннель, который обеспечивает конфиденциальность передаваемых данных. Когда туннель проходит через обычные NAT-ы, VPN туннель перестает работать. VPN обычно соединяет узел с конечной точкой. Может случиться так, что и узел, и конечная точка имеют один и тот же внутренний адрес локальной сети и, если задействован NAT, могут возникнуть сложности с прохождением трафика.
SSL VPN
Протокол SSL использует криптографическую систему, с двумя ключами для шифрования данных — открытым и закрытым. Открытый ключ известен всем, а закрытый — только получателю. Благодаря этому SSL создается безопасное соединение между клиентом и сервером. В отличие от PPTP, SSL VPN позволяет пользователям устанавливать безопасный удаленный доступ практически из любого браузера, подключенного к интернету, препятствие в виде нестабильного соединения устраняется. С SSL VPN весь сеанс защищен, тогда как только с SSL это не достигается.
SSTP
- не требует строгой аутентификации,
- есть различия в качестве и кодировании пользовательских клиентов от поставщика к поставщику,
- не IP-протоколы не поддерживаются по умолчанию,
- поскольку протокол IPSec был разработан для защищенных соединений типа «сайт-сайт», он может создавать проблемы для удаленных пользователей, пытающихся подключиться из места с ограниченным числом IP-адресов.
SSL VPN ОКАЗАЛСЯ БОЛЕЕ ПОДХОДЯЩЕЙ ОСНОВОЙ ДЛЯ РАЗРАБОТКИ SSTP
SSL VPN решает эти проблемы и многое другое. В отличие от базового SSL, SSL VPN защищает весь сеанс работы. Статические IP-адреса не требуются, а клиент в большинстве случаев не нужен.
SSTP — РАСШИРЕНИЕ VPN
Развитие SSTP было вызвано проблемами с безопасностью протокола PPTP. SSTP устанавливает соединение по защищенному HTTPS; это позволяет клиентам безопасно получать доступ к сетям за NAT-маршрутизаторами, брандмауэрами и веб-прокси, не беспокоясь о станадартных проблемах блокировки портов.
SSTP не предназначен для VPN-подключений «сайт-сайт», но предназначен для VPN-подключений «клиент-сайт».
ЭФФЕКТИВНОСТЬ SSTP ДОСТИГНУТА ЭТИМИ ОСОБЕННОСТЯМИ:
- SSTP использует HTTPS для установки безопасного соединения
- Туннель SSTP (VPN) будет работать через Secure-HTTP. Проблемы с VPN-соединениями на основе протокола туннелирования точка-точка (PPTP) или протокола туннелирования уровня 2 (L2TP) будут устранены. Веб-прокси, брандмауэры и маршрутизаторы преобразования сетевых адресов (NAT), расположенные на пути между клиентами и серверами, больше не будут блокировать VPN-подключения.
- Стандартная блокировка портов уменьшится
- Проблемы, связанные с соединениями из-за блокировки портов PPTP GRE или L2TP ESP через брандмауэр или маршрутизатор NAT, не позволяющие клиенту достичь сервера, больше не будут проблемами, т.к. достигается повсеместное подключение. Клиенты смогут подключаться из любого места в интернета.
- SSTP Client встроен в Windows начиная с версии Vista SP1
- SSTP не потребует переподготовки, т.к. средства управления VPN для конечных пользователей остаются неизменными. VPN-туннель на основе SSTP подключается непосредственно к текущим интерфейсам клиентского и серверного программного обеспечения Microsoft VPN.
- Полная поддержка IPv6. Туннель SSTP VPN может быть установлен через интернет-протокол IPv6.
- Используется встроенная поддержка защиты доступа к сети для проверки исправности клиента.
- Надежная интеграция с клиентом и сервером MS RRAS, возможность двухфакторной аутентификации.
- Увеличивается покрытие VPN с нескольких точек до практически любого количества интернет-подключений.
- SSL-инкапсуляция (защита SSL) для прохождения через порт 443.
- Может контролироваться и управляться с помощью брандмауэров прикладного уровня, таких как ISA-сервер.
- Полноценное сетевое VPN-решение, а не туннель приложений (программ) для одного клиента (устройства).
- Интеграция в NAP.
- Возможна интеграция и настройка политик для проверки состояния клиента.
- Один сеанс создан для туннеля SSL.
- Независимость от приложений.
- Более сильная принудительная аутентификация, чем IPSec.
- Поддержка не IP-протоколов, это намного лучше, чем IPSec.
- Не нужно покупать дорогие, трудно настраиваемые аппаратные брандмауэры, которые не поддерживают интеграцию с Active Directory и встроенную двухфакторную аутентификацию.
МЕХАНИЗМ ПОДКЛЮЧЕНИЯ SSTP:
КАК РАБОТАЕТ VPN-СОЕДИНЕНИЕ НА ОСНОВЕ SSTP. СЕМЬ ШАГОВ:
- Клиенту SSTP нужно интернет-соединение. Как только оно проверено протоколом, устанавливается TCP-соединение с сервером через порт 443.
- SSL-соединение теперь идет поверх уже установленного TCP-соединения, при котором сертификат сервера подтверждается. Если сертификат действителен, соединение устанавливается, если нет, оно разрывается.
- Клиент отправляет HTTPS-запрос поверх зашифрованного сеанса SSL на сервер.
- Далее он отправляет контрольные пакеты SSTP в рамках сеанса HTTPS. Это, в свою очередь, создает систему SSTP с обеих сторон для управления. Теперь обе стороны инициируют связь уровня PPP.
- Согласование PPP с использованием SSTP через HTTPS происходит с двух сторон. Клиент должен пройти аутентификацию на сервере.
- Сеанс привязывается к IP-интерфейсу с обеих сторон и IP-адресу, назначенному для маршрутизации трафика.
- Трафик может проходить через соединение являясь либо IP-трафиком, либо другим.
ВЫВОД
SSTP является отличным дополнением к инструментам VPN и позволяет пользователям удаленно и безопасно подключаться к корпоративной сети. Блокирование удаленного доступа и проблемы NAT, кажется, забыты при использовании этого протокола. Технология стабильна, хорошо документирована и работает. Это отличный продукт, он очень приветствуется в наше время для удаленного доступа.
Туннель SSTP (VPN) будет работать через Secure-HTTP. Проблемы с VPN-соединениями на основе протокола туннелирования точка-точка (PPTP) или протокола туннелирования уровня 2 (L2TP) будут устранены. Веб-прокси, брандмауэры и маршрутизаторы преобразования сетевых адресов (NAT), расположенные на пути между клиентами и серверами, больше не будут блокировать VPN-подключения.
Обзор сетевых туннелей SSTP
Людям, которые всерьез увлечены сетевыми технологиями, наверняка будет интересно познакомиться с устройством протокола туннелирования SSTP (Secure Socket Tunneling Protocol) . SSTP представляет собой протокол VPN, разработанный компанией Microsoft, в основе которого лежит SSL. Американская корпорация включает SSTP в состав своих операционных систем Windows, начиная с версии Vista SP1 и серверной 2008. Для установления соединения используется HTTPS, данные по умолчанию передаются через порт TCP/443. За шифрование отвечает протокол SSL, для аутентификации применяются SSL и PPP.
SSTP имеет серверную часть, которая внедрена в линейку ОС Windows Server, начиная с 2008-й редакции. Ниже будет рассказано о версии протокола 1.0. Можно считать ее единственной, так как за прошедшие годы она не получила какого-либо развития.
Кратко об особенностях криптографии
SSTP имеет сравнительно простое устройство, однако выделяется наличием уникальной криптографической функции, пусть и только одной. Речь идет об опции Cryptographic Binding, и о ней будет сказано подробнее дальше по тексту.
Данные шифрует протокол SSL. При авторизации используются SSL, PPP и, непосредственно, SSTP.
На уровне PPP клиентский узел авторизуется сервером. Попутно в некоторых случаях идет процесс аутентификации сервера. Если применяется PPP, то для выполнения процедуры аутентификации клиента, серверная ОС от Microsoft использует:
- протокол проверки подлинности MS-CHAPv2 ;
- фреймворк аутентификации EAP-TLS ;
- Protocol PEAP-MSCHAPv2 , усиливающий стойкость EAP;
- PEAP-TLS .
Технология также предусматривает поддержку CHAP и протокола PAP, в котором применяется пароль, не прошедший шифрование. Оба варианта не рекомендованы к применению, так как при их использовании узлы не обмениваются ключевой информацией, а, значит, функция Cryptographic Binding становится недоступной.
Здесь применимы в основном те же способы аутентификации, какие характерны и для PPTP. Но есть и важное отличие: в PPP узлы обмениваются данными внутри защищенного канала SSL, который зашифрован.
Теперь к сути Cryptographic Binding . Вследствие того, что аутентификацию сервер и клиент проходят на не одинаковых уровнях, открывается возможность для злоумышленников организовать так называемую «атаку человека посередине» (man-in-the-middle). В этом случае взломщик соединяется с сервером по SSL. Для связи же с клиентом выбирается PPP, а это соединение, как известно, не защищено.
Чтобы защититься от таких атак, применяется подпись ключом сообщения уровня SSTP о том, что соединение установлено (Call Connected Message). При этом есть одна важная особенность. Ключ вырабатывается во время процедуры аутентификации на PPP-уровне, благодаря чему у сервера появляется возможность определить, что тот, кто организовал SSL-сеанс и тот, кто смог пройти авторизацию по PPP, является одним и тем же клиентом. Вышеописанная процедура и лежит в основе функции Cryptographic Binding.
Как происходит установление соединения
- Клиент отправляет TCP-пакет на порт 443 сервера SSTP.
- Устанавливается соединение SSL/TLS поверх TCP. На этом этапе клиент выполняет проверку серверного сертификата.
- Дальше следует приветствие на уровне HTTPS.
- Для последующего обмена данными применяется SSTP. Все пакеты при пользовании этим протоколом передаются внутри HTTPS. Клиентской машиной отправляется запрос, чтобы установить соединение (Call Connect Request Message). Сообщение содержит Protocol Number. Этот протокол будет применен внутри Secure Socket Tunneling Protocol.
- Осуществляется проверка запроса на стороне сервера. В случае положительного исхода он дает подтверждение (Call Connect Acknowledge Message). Это сообщение включает 32-битное число, выбранное случайным образом. Оно будет использовано в клиентском ответе, чтобы защититься от повторений. Здесь также содержится перечень хэш-функций, которые необходимы, чтобы подписать следующий ответ (SHA256 либо SHA1, возможны оба варианта).
- Производится авторизация посредством PPP. Каждый пакет этого протокола инкапсулируется в соответствующий блок данных SSTP, выполняется шифрование с помощью технологии SSL.
- Клиент отправляет Call Connected Message. Сообщение содержит Client Nonce и хэш серверного сертификата, который удалось получить в момент, когда устанавливался SSL-сеанс.
- На этом этапе сервер производит проверку Call Connected Message, после чего SSTP можно считать установленным.
- Завершается определение параметров протокола Point-to-Point.
Разрыв соединения
Во время работы канал может простаивать. Это может выглядеть как разрыв соединения, но узлам необходимо уметь отличать одно от другого. Для этого стороны используют стандартный Ping. Если за 1 минуту узлы ни разу не обменялись данными, то производится отправка Echo Request (пакет с управляющей информацией уровня SSTP). При отсутствии отклика в течение 60 секунд производится разрыв связи.
Завершение сеанса
Узлы направляют друг другу пакеты SSTP, сообщающие о завершении сессии, после чего обе стороны независимо друг от друга разрывают соединение.
При подготовке материала использовались источники:
https://vc.ru/dev/119780-obzor-secure-socket-tunneling-protocol
https://www.ideco.ru/sobytiya/tpost/ncu2ce4y14-secure-socket-tunneling-protocol
https://lankraft.ru/blog/obzor-setevykh-tunneley-sstp/