- 2/14/2019
- 2 minutes to read
Ten dokument określa protokół Secure Socket Tunneling Protocol(SSTP). SSTP jest mechanizmem enkapsulacji ruchu Point-to-Point Protocol (PPP) przez protokół HTTPS, jak określono w , ,i . Protokół ten umożliwia użytkownikom dostęp do sieci prywatnej za pomocą protokołu HTTPS. ZastosowanieHTTPS umożliwia pokonanie większości zapór ogniowych i serwerów proxy.
Wiele usług VPN zapewnia użytkownikom mobilnym i domowym zdalny dostęp do sieci korporacyjnej za pomocą protokołu Point-to-Point TunnelingProtocol (PPTP) i protokołu Layer Two Tunneling Protocol/Internet Protocol security(L2TP/IPsec). Jednak wraz z popularyzacją firewalli i serwerów proxy, wielu dostawców usług, takich jak hotele, nie zezwala na ruch PPTP i L2TP/IPsectraffic. Powoduje to, że użytkownicy nie otrzymują wszechobecnej łączności do swoich sieci korporacyjnych. Na przykład, blokowanie portów GRE (Generic Routing Encapsulation) przez wielu dostawców usług internetowych (ISP) jest częstym problemem podczas korzystania z PPTP.
Ten protokół zapewnia szyfrowany tunel (tunel SSTP) za pomocą protokołu SSL/TLS. Kiedy klient nawiązuje połączenie VPN oparte na protokole SSTP, najpierw nawiązuje połączenie TCP z serwerem SSTP na porcie TCP 443. Po pomyślnym wynegocjowaniu SSL/TLS, klient wysyła żądanie HTTP z kodowaniem długości treści i dużą długością treści na chronionym połączeniu SSL (więcej szczegółów w sekcji 3.2.4.1). Serwer odsyła odpowiedź HTTP o statusieHTTP_STATUS_OK(200). Omówione wcześniej szczegóły dotyczące żądania i odpowiedzi znajdują się w rozdziale 4.1. Połączenie HTTPS jest teraz ustanowione, a klient może wysyłać i odbierać pakiety kontrolne SSTPC i pakiety danych SSTP na tym połączeniu. Ustanowienie połączenia HTTPS, gdy obecny jest serwer proxy jest określone w .
SSTP wykonuje następujące funkcje:
-
Umożliwienie oddzielenia ramek PPP od ciągłego strumienia danych, który jest wysyłany przy użyciu HTTPS. Więcej informacji o PPP można znaleźć w rozdziale .
-
Negocjowanie parametrów między dwoma podmiotami. Więcej szczegółów w sekcji 1.7.
-
Rozszerzalny format komunikatu umożliwiający obsługę nowych parametrów w przyszłości. Więcej informacji można znaleźć w sekcji 2.2.
-
Operacje bezpieczeństwa zapobiegające niewłaściwemu przekazywaniu ramek PPP przez protokół SSTP przez osoby działające w trybie man-in-the-middle. SSTP używa materiału kluczującego wygenerowanego podczas uwierzytelniania PPP do wiązania kryptograficznego (sekcje 3.2.5.2 i 3.3.5.2.3).
Pakiety kontrolne SSTP zawierają wiadomości do negocjowania parametrów i zapewnienia, że nie ma niezaufanego man-in-the-middle. Pakiety danych SSTP zawierają ramki PPP jako ładunek.
W sieci VPN opartej na protokole SSTP negocjacje warstwy protokołu odbywają się w następującej kolejności:
-
Połączenie TCP jest nawiązywane z serwerem SSTP na porcie TCP443.
-
Uruchamianie protokołu SSL/TLS jest zakończone.
-
Uruchamianie protokołu HTTPS żądanie-odpowiedź jest zakończone.
-
Rozpoczyna się negocjacja SSTP.
-
Negocjacja PPP jest rozpoczęta, a uwierzytelnianie PPP jest zakończone lub ominięte.
-
Negocjacja SSTP jest zakończona.
-
Negocjacje PPP zostały zakończone.
-
Połączenie przechodzi w stan gotowości do transportu dowolnej warstwy sieci (na przykład pakietów IP).
Klient wykonuje następujące operacje enkapsulacji:
-
Pakiety aplikacji są enkapsulowane w dowolnym protokole transportowym (na przykład TCP i UDP).
-
Pakiety warstwy transportowej są enkapsulowane w protokole sieciowym (na przykład IP).
-
Pakiety warstwy sieciowej są enkapsulowane w warstwie danych PPP.
-
Pakiety PPP są enkapsulowane za pomocą protokołu SSTP.
-
Pakiety SSTP są enkapsulowane za pomocą protokołu SSL/TLS.
-
Protokoły SSL/TLS są enkapsulowane za pomocą protokołu TCP.
-
Pakiety TCP są enkapsulowane przez IP.
-
Pakiety IP są wysyłane przez dowolną warstwę łącza danych (taką jak Ethernet lubPPP). Więcej informacji o PPP można znaleźć w rozdziale .
Po stronie serwera operacje usuwania enkapsulacji odbywają się w odwrotnej kolejności.