Slojevi SSTP-a objašnjeni: što unutarnji paket još otkriva
SSTP umata PPP i unutarnji paket u TLS, ali vanjska TCP veza i dalje pokazuje tko je s kim razgovarao. Označite svaki sloj prije nego što pročitate snimku.
Dvije činjenice o SSTP-u spajaju se u većini objašnjenja, i upravo to spajanje čini snimke zbunjujućima. Paket aplikacije preživljava unutar zaštićenog kanala, a TCP veza koja nosi taj kanal cijelo vrijeme zadržava vlastite adrese. Preko žice putuje nosač i njegov teret, nikada zamjena za jedno od toga. Prođite stogom izvana prema unutra i označite svaku granicu koju prijeđete.
Počnite od vanjskog nosača
Prvo što se vidi na žici obična je TCP veza prema portu 443, sa stvarnim adresama koje usmjerivači prosljeđuju. Ta veza je ono što preživljava prevođenje mrežnih adresa i što davatelj pristupa može brojati. Zaštita tereta ne uklanja nosač i ne skriva količinu ni vrijeme.
Sve nakon te točke prenosi se, a ne usmjerava. Nosač nastavlja raditi čak i kada unutarnja razmjena ne uspije.
Slijedite inkapsulaciju prema unutra
Unutar zaštićenog kanala nalazi se SSTP kontrolna razmjena, zatim PPP sesija, pa mrežni paket koji klijent želi da se dostavi. Svaki sloj ima svoje pregovore, svoje poruke o pogreškama i svoj stroj stanja. Zato se kvar s jednog gledišta može činiti kvarom TLS-a, a s drugoga kvarom PPP-a. Čitanje slojeva po redu govori koji je stroj stanja stao.
Jedna snimka rijetko pokazuje cijeli stog. Vanjska zaglavlja vidljiva su samo izvan krajnje točke, a unutarnja samo nakon dekapsulacije. Ta asimetrija dolazi od mjesta na kojem stojite, a ne od protokola.
Dijagram u nastavku grupira slojeve kako bi se o njima uopće moglo govoriti. On nije bajtni raspored, ne obećava jedan zapis po paketu i ne govori ništa o tome koliko kriptografskih operacija izvodi neka implementacija.
outer IP header
TCP to port 443
TLS record layer
SSTP control and data packets
PPP frames
inner IP packet
application transport and payload
Označite promatrača prije čitanja snimke
Dvije snimke iste sesije odgovaraju na različita pitanja, a sučelje na kojem su uzete odlučuje na koja. Na pristupnom putu vidite nosač i TLS zapise, i možete mjeriti veličine i intervale bez viđenja unutarnje adrese. Na krajnjoj točki, nakon dekapsulacije, unutarnji paket običan je promet pod privatnom politikom prosljeđivanja.
Zapišite sučelje i smjer na svakoj snimci prije nego je protumačite. Trag s fizičkog adaptera nikada neće prikazati adrese unutarnje aplikacije kao obična vanjska polja, a čitanje te odsutnosti kao kvara šifriranja česta je pogreška. Trag iz unutrašnjosti tunela ne pokazuje nikakav nosač, pa ne može odgovoriti na pitanje o davateljevu pogledu. Ista disciplina vrijedi i za zapisnike krajnje točke, koji bilježe redoslijed pregovora, a ne sadržaj.
Zadržite provjere koje dijagram ne može dokazati
Redoslijed slojeva ne dokazuje da neka instalacija provjerava poslužiteljev certifikat, pregovara podržanu verziju TLS-a ili odobrava račun. Svaka od toga je konfiguracijska odluka koja pada neovisno o inkapsulaciji.
Provjerite ih klijentom koji izvješćuje o tome što je pregovarao, umjesto zaključivanja iz crteža. Počnite s TLS rukovanjem, zatim SSTP razmjenom, zatim PPP-om i zaustavite se na prvom koraku koji prijavi pogrešku. Prva naredba ispisuje lanac i pregovaranu verziju, a druga navodi rukovanja prisutna u snimci.
openssl s_client -connect vpn.corp.internal:443 -servername vpn.corp.internal
tshark -r sstp.pcap -Y "tls.handshake.type == 1"