Secure Socket Tunneling Protocol

Secure Socket Tunneling Protocol (SSTP) je protokol koji je razvila kompanija Majkrosoft sa željom da prevaziđe probleme koje su virtuelne privatne mreže bazirane na PPTP protokolu imale sa NAT-om (Network Adress Translation). PPTP virtualne privatne mreže koriste TCP konekciju na portu 1723 za održavanje tunelovane konekcije i razmenu GRE enkapsuliranih paketa. Ali, PPTP može imati problema sa NAT-om, veb proksijima i zaštitnim zidovima (engl. firewall). Da bi se sprečili ovi problemi, zaštitni zid se mora konfigurisati da propušta GRE enkapsulirani saobraćaj, kao i da se dozvole TCP konekcije. Iako je GRE skoro standardni metod enkapsulacije IP paketa, mnogi internet servis provajderi odbacuju ove pakete, što rezultuje gubitkom podataka. Često su i konekcije u hotelima i drugim „hot spotovima“ konfigurisane za tipičan veb i e-mail saobraćaj i dešava se da neće dozvoliti PPTP pakete. Takođe, ako se naš kompjuter nalazi iza NAT-a, NAT će morati da bude sposoban da prevede GRE saobraćaj. Za kraj, PPTP paketi ne mogu da prođu preko veb proksija.

Drugi protokol koji se koristio za Windows XP i Server 2003, L2TP u kombinaciji sa IPSec protokolom, koristi IKE (Internet Key Exchange) i takođe može imati problema sa NAT-om, veb proksijima i zaštitnim zidovima. U ovom slučaju, zaštitni zid mora da propušta ESP enkapsulirane pakete i IKE saobraćaj. Ako se naš računar nalazi iza NAT-a, VPN klijent i VPN server moraju da podržavaju IPSec NAT-Traversal (NAT-T). L2TP/IPsec paketi takođe ne mogu da prolaze preko veb proksija.

Kao što možemo da vidimo, postoji mnogo problema sa VPN operacijama kod operativnih sistema Windows XP i Server 2003. Stoga se od pojave operativnih sistema Windows Vista i Server 2008 koristi SSTP. Korišćenje ovog protokola rešava sve probleme – proksi, NAT i zaštitni zid. Razlog je prost: HTTP preko SSL je veoma rasprostranjen tip saobraćaja. HTTP preko SSL može značajno da smanji troškove održavanja „remote access” rešenja jer eliminiše probleme sa NAT-om i radi u skoro svakom okruženju. Takođe, SSTP je ugrađen u Windows i nema potrebe za instalacijom dodatnog klijentskog softvera. SSTP obezbeđuje i bolje balansiranje saobraćaja (load balancing) VPN konekcija putem SSL „load balancer“-a. Za razliku od PPTP i L2TP protokola, SSTP ne podržava site-to-site VPN konekcije.

Proces konekcije

[уреди | уреди извор]
  1. SSTP VPN klijent ostvaruje TCP konekciju sa SSTP VPN mrežnim prolazom (gateway) na TCP portu 443
  2. Klijent šalje SSL CLIENT-HELLO poruku
  3. VPN mrežni prolaz šalje sertifikat klijentu
  4. Klijent verifikuje sertifikat tako što proveri svoje Trusted Root Certification Authorities sertifikate i vidi da li se među njima nalazi CA sertifikat potpisan od strane servera. Nakon toga, klijent se odlučuje za metodu enkripcije SSL sesije, generiše SSL ključ i enkriptuje ga sa javnim ključem VPN mrežnog prolaza i šalje enkriptovanu formu SSL ključa VPN mrežnom prolazu
  5. Mrežni prolaz dekriptuje SSL ključ sa privatnim ključem servera. Sva buduća komunikacija između klijenta i mrežnog prolaza je enkriptovana dogovorenom enkripcionom metodom i SSL ključem sesije.
  6. Klijent šalje HTTP preko SSL (tj. HTTPS) REQUEST poruku
  7. Klijent dogovara SSTP tunel sa mrežnim prolazom
  8. Klijent ostvaruje PPP konekciju sa SSTP serverom. Ovo uključuje standardne PPP autentifikacione metode i konfiguraciju za IPv4 ili IPv6 saobraćaj
  9. Klijent počinje da šalje IPv4 ili IPv6 saobraćaj preko PPP linka

Struktura paketa

[уреди | уреди извор]
SSTP Header
Ofset bit Bitovi 0–7 8–14 15 16–31
0 Verzija Rezervisano C Veličina
32+  
Podaci
 
  • Verzija (8 bita) – Za dogovor SSTP verzije koja će se koristiti.
  • Rezervisano (7 bita) – Rezervisano za buduću upotrebu.
  • C (1 bit) – Kontrolni bit koji označava da li je SSTP paket kontrolni ili paket podataka. Ovaj bit je setovan ukoliko je paket kontrolni.
  • Veličina (16 bita) – Polje za veličinu paketa, sastoji se od dva dela: rezervisani deo i deo za veličinu paketa.
  • Rezervisano (4 bita) – Rezervisano za buduću upotrebu.
  • Veličina (12 bita) – Sadrži veličinu celog paketa, uključujući i SSTP zaglavlje.
  • Podaci (promenljiva) – Kada je kontrolni bit C setovan, ovo polje sadrži kontrolnu poruku. U suprotnom, ovo polje bi sadržalo podatke protokola višeg nivoa. Trenutno, jedini mogući je PPP protokol.

Kontrolna poruka

[уреди | уреди извор]

Polje podataka sadrži kontrolnu poruku samo kada je kontrolni bit C setovan.

SSTP Kontrolna poruka
Ofset bit Bitovi 0–15 16–31
0 Tip poruke Broj atributa
32+  
Atributi
 
  • Tip poruke (16 bita) – Označava tip SSTP poruke koja se koristi za komunikaciju. Određuje broj i tip atributa SSTP poruka.
  • Broj atributa (16 bita) – Određuje broj atributa dodatih SSTP poruci.
  • Atributi (promenljiva) – Sadrži listu atributa vezanih za SSTP kontrolnu poruku.