Vrstvy SSTP vysvetlené: čo vnútorný paket ešte prezrádza
SSTP zabalí PPP a vnútorný paket do TLS, ale vonkajšie TCP spojenie stále ukazuje, kto s kým hovoril. Označte každú vrstvu, skôr než začnete čítať záznam.
Vo väčšine vysvetlení sa dve skutočnosti o SSTP zlievajú do jednej a práve to zlievanie robí záznamy mätúcimi. Paket aplikácie prežíva vo vnútri chráneného kanála a TCP spojenie, ktoré ten kanál nesie, si po celý čas drží vlastné adresy. Po drôte ide nosič spolu s nákladom, nikdy nie náhrada za jedno z toho. Prejdite zásobník zvonka dovnútra a označte každú hranicu, ktorú prekročíte.
Začnite pri vonkajšom nosiči
Prvá vec na drôte je obyčajné TCP spojenie na port 443 so skutočnými adresami, ktoré smerovače preposielajú. Práve toto spojenie prežíva preklad sieťových adries a je tým, čo poskytovateľ prístupu môže počítať. Ochrana užitočného nákladu nosič neodstraňuje a neskrýva objem ani časovanie.
Všetko po tomto bode sa nesie, nie smeruje. Nosič funguje ďalej, aj keď vnútorná výmena zlyhá.
Sledujte zapuzdrenie dovnútra
Vo vnútri chráneného kanála je riadiaca výmena SSTP, potom relácia PPP a potom sieťový paket, ktorý chce klient doručiť. Každá vrstva má svoje vlastné vyjednávanie, svoje chybové správy a svoj stavový stroj. Porucha preto môže z jedného pohľadu vyzerať ako porucha TLS a z iného ako porucha PPP. Čítanie vrstiev po poradí povie, ktorý stavový stroj sa zastavil.
Jediný záznam málokedy ukáže celý zásobník. Vonkajšie hlavičky sú viditeľné len mimo koncového bodu a vnútorné až po dekapsulácii. Táto asymetria pochádza z toho, kde stojíte, nie z protokolu.
Nižšie uvedená schéma zoskupuje vrstvy, aby sa o nich vôbec dalo hovoriť. Nie je to bajtové rozloženie, nesľubuje jeden záznam na paket a nehovorí nič o tom, koľko kryptografických operácií implementácia vykoná.
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 pozorovateľa, skôr než začnete čítať záznam
Dva záznamy tej istej relácie odpovedajú na rôzne otázky a rozhoduje o tom rozhranie, na ktorom boli urobené. Na prístupovej ceste vidíte nosič a záznamy TLS a môžete merať veľkosti a intervaly bez toho, aby ste videli vnútornú adresu. V koncovom bode, po dekapsulácii, je vnútorný paket obyčajná prevádzka pod súkromnou politikou preposielania.
Na každý záznam napíšte rozhranie a smer, skôr než ho interpretujete. Stopa z fyzického adaptéra nikdy neukáže adresy vnútornej aplikácie ako bežné vonkajšie polia a čítať túto neprítomnosť ako zlyhanie šifrovania je častá chyba. Stopa zvnútra tunela neukazuje žiadny nosič, takže nemôže odpovedať na otázku o pohľade poskytovateľa. Rovnaká disciplína platí pre záznamy koncového bodu, ktoré zaznamenávajú poradie vyjednávania, nie obsah.
Zachovajte kontroly, ktoré schéma nemôže dokázať
Poradie vrstiev nedokazuje, že nasadenie overuje certifikát servera, vyjednáva podporovanú verziu TLS alebo autorizuje účet. Každé z toho je konfiguračné rozhodnutie, ktoré zlyháva nezávisle od zapuzdrenia.
Overte ich klientom, ktorý hlási, čo vyjednal, namiesto usudzovania z nákresu. Začnite podaním ruky TLS, potom výmenou SSTP, potom PPP a zastavte sa pri prvom kroku, ktorý ohlási chybu. Prvý príkaz vypíše reťazec a vyjednanú verziu a druhý vymenuje podania ruky prítomné v zázname.
openssl s_client -connect vpn.corp.internal:443 -servername vpn.corp.internal
tshark -r sstp.pcap -Y "tls.handshake.type == 1"