У већини објашњења две чињенице о SSTP-у се стапају у једну, и управо то стапање чини снимке збуњујућим. Пакет апликације преживљава унутар заштићеног канала, а TCP веза која носи тај канал цело време задржава сопствене адресе. По жици иде носач заједно са својим теретом, никада замена за било које од тога. Прођите кроз стек споља унутра и означите сваку границу коју пређете.

Почните од спољашњег носача

Прва ствар на жици је обична TCP веза ка порту 443, са стварним адресама које рутери прослеђују. Управо та веза преживљава превођење мрежних адреса и то је оно што добављач приступа може да изброји. Заштита терета не уклања носач, и не скрива обим ни време.

Све после ове тачке преноси се, а не усмерава. Носач наставља да ради чак и када унутрашња размена не успе.

Пратите инкапсулацију ка унутра

Унутар заштићеног канала налази се SSTP контролна размена, затим PPP сесија, затим мрежни пакет који клијент жели да добије. Сваки слој има своје преговоре, своје поруке о грешкама и своју државну машину. Зато кварењем из једног угла може изгледати као квар TLS-а, а из другог као квар PPP-а. Читање слојева по реду каже која се државна машина зауставила.

Један снимак ретко показује цео стек. Спољашња заглавља видљива су само изван крајње тачке, а унутрашња само после декапсулације. Та асиметрија долази од места на коме стојите, а не од протокола.

Дијаграм испод групише слојеве како би о њима уопште могло да се говори. Он није бајтни распоред, не обећава један запис по пакету и не каже ништа о томе колико криптографских операција извршава нека имплементација.

outer IP header
  TCP to port 443
    TLS record layer
      SSTP control and data packets
        PPP frames
          inner IP packet
            application transport and payload

Означите посматрача пре читања снимка

Два снимка исте сесије одговарају на различита питања, а интерфејс на коме су направљени одлучује на која. На приступном путу видите носач и TLS записе, и можете да мерите величине и интервале без виђења унутрашње адресе. На крајњој тачки, после декапсулације, унутрашњи пакет је обичан саобраћај под приватном политиком прослеђивања.

Запишите интерфејс и смер на сваком снимку пре него што га протумачите. Траг са физичког адаптера никада неће приказати адресе унутрашње апликације као обична спољашња поља, а читање те одсутности као квара шифровања честа је грешка. Траг из унутрашњости тунела не показује никакав носач, па не може да одговори на питање о виђењу пружаоца услуга. Иста дисциплина важи и за дневнике крајње тачке, који бележе редослед преговора, а не садржај.

Задржите провере које дијаграм не може да докаже

Редослед слојева не доказује да нека инсталација проверава серверски сертификат, преговара о подржаној верзији TLS-а или овлашћује налог. Свака од тога је конфигурацијска одлука која пада независно од инкапсулације.

Проверите их клијентом који извештава о чему је преговарао, уместо да закључујете са цртежа. Почните TLS руковањем, затим SSTP разменом, затим PPP-ом и зауставите се на првој фази која пријави грешку. Прва наредба исписује ланац и преговарану верзију, а друга наводи руковања присутна у снимку.

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

Повезани чланци