V večini razlag se dve dejstvi o SSTP zlijeta skupaj in prav to zlitje naredi zajeme zmedene. Paket aplikacije preživi znotraj zaščitenega kanala, povezava TCP, ki ta kanal nosi, pa ves čas ohranja svoje naslove. Po žici gre nosilec skupaj s svojim tovorom, nikoli nadomestilo za katerega od njiju. Prehodite sklad od zunaj navznoter in označite vsako mejo, ki jo prestopite.

Začnite pri zunanjem nosilcu

Prva stvar na žici je običajna povezava TCP na vrata 443, z resničnimi naslovi, ki jih usmerjevalniki posredujejo. Prav ta povezava preživi prevajanje omrežnih naslovov in je tisto, kar ponudnik dostopa lahko prešteje. Zaščita tovora nosilca ne odstrani in ne skrije prostornine ali časa.

Vse po tej točki se nosi, ne usmerja. Nosilec deluje naprej, tudi ko notranja izmenjava spodleti.

Sledite inkapsulaciji navznoter

Znotraj zaščitenega kanala sedi krmilna izmenjava SSTP, nato seja PPP, nato omrežni paket, ki ga želi odjemalec prejeti. Vsaka plast ima svoja pogajanja, svoja sporočila o napakah in svoj stroj stanj. Zato je lahko okvara z enega vidika videti kot okvara TLS, z drugega pa kot okvara PPP. Branje plasti po vrsti pove, kateri stroj stanj se je ustavil.

En zajem le redko pokaže celoten sklad. Zunanje glave so vidne le zunaj končne točke, notranje pa šele po dekapsulaciji. Ta asimetrija izhaja iz tega, kje stojite, ne iz protokola.

Spodnji diagram združuje plasti, da se o njih sploh da govoriti. Ni bajtna postavitev, ne obljublja enega zapisa na paket in ne pove ničesar o tem, koliko kriptografskih operacij izvede izvedba.

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 opazovalca, preden preberete zajem

Dva zajema iste seje odgovarjata na različna vprašanja, o tem, na katera, pa odloča vmesnik, na katerem sta bila zajeta. Na dostopni poti vidite nosilca in zapise TLS, velikosti in intervale pa lahko merite, ne da bi videli notranji naslov. Na končni točki je po dekapsulaciji notranji paket običajen promet po zasebni politiki posredovanja.

Na vsak zajem napišite vmesnik in smer, preden ga razložite. Sled s fizičnega vmesnika nikoli ne bo prikazala naslovov notranje aplikacije kot običajnih zunanjih polj, branje te odsotnosti kot okvare šifriranja pa je pogosta napaka. Sled iz notranjosti tunela ne pokaže nobenega nosilca, zato ne more odgovoriti na vprašanje o pogledu ponudnika. Ista disciplina velja za dnevnike končne točke, ki beležijo vrstni red pogajanj in ne vsebine.

Ohranite preverjanja, ki jih diagram ne more dokazati

Vrstni red plasti ne dokaže, da namestitev preverja strežniško potrdilo, pogaja podprto različico TLS ali pooblasti račun. Vsako od tega je konfiguracijska odločitev, ki spodleti neodvisno od inkapsulacije.

Preverite jih z odjemalcem, ki poroča, o čem se je pogajal, namesto da sklepate iz risbe. Začnite s stiskom rok TLS, nato z izmenjavo SSTP, nato s PPP, in ustavite se na prvi stopnji, ki sporoči napako. Prvi ukaz izpiše verigo in pogajano različico, drugi pa našteje stiske rok, ki so v zajemu.

openssl s_client -connect vpn.corp.internal:443 -servername vpn.corp.internal
tshark -r sstp.pcap -Y "tls.handshake.type == 1"

Sorodni članki