Vrstvy SSTP vysvětleny: co vnitřní paket ještě prozradí
SSTP zabaluje PPP a vnitřní paket do TLS, ale vnější TCP spojení stále ukazuje, kdo s kým mluvil. Označte každou vrstvu, než začnete číst zachycený provoz.
Dvě skutečnosti o SSTP se ve většině vysvětlení slévají dohromady a právě to slévání dělá zachycený provoz matoucím. Paket aplikace přežívá uvnitř chráněného kanálu a TCP spojení, které tento kanál nese, si po celou dobu drží vlastní adresy. Po drátě jde nosič a jeho náklad, nikdy náhrada za jedno z toho. Projděte zásobník zvenčí dovnitř a označte každou hranici, kterou překročíte.
Začněte u vnějšího nosiče
První věc na drátě je obyčejné TCP spojení na port 443 se skutečnými adresami, které routery přeposílají. Právě toto spojení přežívá překlad síťových adres a je tím, co poskytovatel přístupu může počítat. Ochrana užitečného nákladu nosič neodstraňuje a neskrývá objem ani časování.
Všechno po tomto bodu se nese, nikoli směruje. Nosič funguje dál, i když vnitřní výměna selže.
Sledujte zapouzdření dovnitř
Uvnitř chráněného kanálu je řídicí výměna SSTP, potom relace PPP a potom síťový paket, který chce klient doručit. Každá vrstva má své vlastní vyjednávání, své chybové zprávy a svůj stavový stroj. Porucha tedy může z jednoho pohledu vypadat jako porucha TLS a z jiného jako porucha PPP. Čtení vrstev popořadě vám řekne, který stavový stroj se zastavil.
Jediné zachycení málokdy ukáže celý zásobník. Vnější hlavičky jsou vidět jen mimo koncový bod a vnitřní jen po dekapulaci. Tato asymetrie pochází z místa, kde stojíte, ne z protokolu.
Následující diagram vrstvy seskupuje, aby se o nich vůbec dalo mluvit. Není to bajtové rozvržení, neslibuje jeden záznam na paket a neříká nic o tom, kolik kryptografických operací implementace provede.
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čte pozorovatele, než začnete číst zachycení
Dvě zachycení jedné relace odpovídají na různé otázky a rozhoduje o tom rozhraní, na kterém byla pořízena. Na přístupové cestě vidíte nosič a záznamy TLS a můžete měřit velikosti a intervaly, aniž byste viděli vnitřní adresu. V koncovém bodě, po dekapulaci, je vnitřní paket obyčejný provoz podle soukromé politiky předávání.
Na každé zachycení napište rozhraní a směr, než ho začnete vykládat. Stopa z fyzického adaptéru nikdy neukáže adresy vnitřní aplikace jako běžná vnější pole a číst tuto nepřítomnost jako selhání šifrování je častá chyba. Stopa zevnitř tunelu neukazuje žádný nosič, takže nemůže odpovědět na otázku o pohledu poskytovatele. Stejná disciplína platí pro protokoly koncového bodu, které zaznamenávají pořadí vyjednávání, nikoli obsah.
Zachovejte kontroly, které diagram nemůže prokázat
Pořadí vrstev nedokazuje, že nasazení ověřuje certifikát serveru, vyjednává podporovanou verzi TLS nebo autorizuje účet. Každé z toho je konfigurační rozhodnutí, které selhává nezávisle na zapouzdření.
Ověřte je klientem, který hlásí, co vyjednal, místo abyste usuzovali z nákresu. Začněte navázáním TLS, potom výměnou SSTP, potom PPP a zastavte se u prvního kroku, který ohlásí chybu. První příkaz vypíše řetězec a vyjednanou verzi a druhý vyjmenuje navázání přítomná v zachycení.
openssl s_client -connect vpn.corp.internal:443 -servername vpn.corp.internal
tshark -r sstp.pcap -Y "tls.handshake.type == 1"