Протокол туннелирования безопасных сокетов
Не путать с Простым симметричным транспортным протоколом.
Secure Socket Tunneling Protocol (SSTP) - это форма туннеля виртуальной частной сети (VPN) , которая обеспечивает механизм транспортировки PPP-трафика по каналу SSL/TLS. SSL/TLS обеспечивает безопасность на транспортном уровне с согласованием ключей, шифрованием и проверкой целостности трафика. Использование SSL/TLS через TCP-порт 443 (по умолчанию порт может быть изменен) позволяет SSTP проходить практически через все брандмауэры и прокси-серверы, за исключением аутентифицированных веб-прокси.
Серверы SSTP должны быть аутентифицированы на этапе SSL/TLS. Клиенты SSTP могут быть дополнительно аутентифицированы на этапе SSL/TLS и должны быть аутентифицированы на этапе PPP. Использование PPP позволяет поддерживать общие методы аутентификации, такие как EAP-TLS и MS-CHAP.
SSTP доступен для Linux, BSD и Windows.
SSTP доступен в Windows Vista SP1 и более поздних версиях, в RouterOS начиная с версии 5.0 и в SEIL начиная с версии прошивки 3.50. Он полностью интегрирован с архитектурой RRAS в этих операционных системах, что позволяет использовать его с аутентификацией Winlogon или смарт-карт, политиками удаленного доступа и VPN-клиентом Windows. Протокол также используется Windows Azure для виртуальной сети Точка-узел.[4]
SSTP был предназначен только для удаленного клиентского доступа, он обычно не поддерживает межсайтовые VPN-туннели.
SSTP страдает от тех же ограничений производительности, что и любой другой туннель IP-over-TCP. В общем случае производительность будет приемлемой только до тех пор, пока на нетуннелированном сетевом канале имеется достаточная избыточная пропускная способность, гарантирующая, что срок действия туннелированных TCP-таймеров не истечет. Если это становится неправдой, производительность резко падает. Это известно как "проблема распада TCP".
SSTP поддерживает только аутентификацию пользователя; он не поддерживает аутентификацию устройства или компьютера.
Структура пакета[править]
Следующая структура заголовка является общей для всех типов пакетов SSTP:
Заголовок SSTP
Битовое смещение | Биты 0–7 | 8–14 | 15 | 16–31 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Версия | Зарезервировано | C | Длина | ||||||||||||||||||||||||||||
32+ | Данные |
- Версия (8 бит) – связывает и согласовывает используемую версию SSTP.
- Зарезервировано (7 бит) – зарезервировано для будущего использования.
- C (1 бит) – управляющий бит, указывающий, представляет ли пакет SSTP управляющий пакет SSTP или пакет данных SSTP. Этот бит устанавливается, если пакет SSTP является управляющим пакетом.
- Length (16 бит) – поле длины пакета, состоящее из двух значений: зарезервированной части и части длины.
- Зарезервировано (4 бита) – зарезервировано для будущего использования.
- Length (12 бит) – содержит длину всего пакета SSTP, включая заголовок SSTP.
- Data (variable) – когда установлен управляющий бит C, это поле содержит управляющее сообщение SSTP. В противном случае поле данных будет содержать протокол более высокого уровня. На данный момент это может быть только ГЧП.
Контрольное сообщение[править]
Поле данных заголовка SSTP содержит управляющее сообщение SSTP только в том случае, если задан управляющий бит заголовка C.
Битовое смещение | Биты 0–15 | 16–31 | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Тип сообщения | Количество сообщений | ||||||||||||||||||||||||||||||
32+ | Атрибуты |
- Тип сообщения (16 бит) – определяет тип передаваемого управляющего сообщения SSTP. Это диктует количество и типы атрибутов, которые могут быть перенесены в пакет управления SSTP.
- Количество атрибутов (16 бит) – определяет количество атрибутов, добавляемых к управляющему сообщению SSTP.
- Атрибуты (переменная) – содержит список атрибутов, связанных с управляющим сообщением SSTP. Количество атрибутов задается полем Количество атрибутов.
См. также[править]
- AuthIP
- L2TP/IPSec
- HTTPS
- OpenVPN
- OpenConnect VPN
- PPTP
- SoftEther VPN-серверная программа с открытым исходным кодом, поддерживающая протокол SSTP-VPN.
- Проволочное ограждение
Пруф[править]
docs.microsoft.com/en-us/openspecs/windows_protocols/ms-sstp/c50ed240-56f3-4309-8e0c-1644898f0ea8