Påstanden om at ein VPN-pakke ber nøyaktig to kontrollsummar høyrest rydeleg ut og er ofte nok feil til at han er verdt å pakke ut. Talet kjem an på kva IP-versjonar som opptrer, kva transportprotokoll som vert boren og kva vernformat tunnelen nyttar. Ein hovudkontrollsum, ein kontrollsum i øvre lag og eit kryptografisk integritetsmerke er tre mekanismar med tre dekningsområde. Å telje dei byrjar med å merke kva kvar av dei dekkjer.

Sjekk kva IP-versjonar som faktisk er på leidninga

IPv4-hovud ber ein 16-bits hovudkontrollsum, og IPv6-hovud ber ingenting slikt. Den eine kjensgjerninga endrar talet for kvar tunnel, fordi innpakking av IPv4 i IPv6 og av IPv6 i IPv4 gjev ulike dokument. Ein tunnel kan bere begge familiane samstundes, og då kan éin retning innehalde eit felt som den andre ikkje har. Fastset versjonane før du tel noko som helst.

Skriv oppsettet som ei hovudliste i staden for eit bilete. Rekkjefølgja betyr noko når ein les ein opptak, og tilstadeveringa eller fråværet av kontrollsumfeltet er det første som skal merkast.

outer IPv6 | ESP | inner IPv6 | UDP | application data
outer IPv4 | ESP | inner IPv4 | TCP | application data

Fyrste line har ingen IP-hovudkontrollsum nokon stad i IP-hovuda sine, medan andre har to når begge hovuda er IPv4. Same tunnelteknologi, ulikt tal, og ingen av linjene er eit fullstendig leidningsformat.

Sjekk kva kvar kontrollsum dekkjer

Dekninga er den delen folk hoppar over, og ho er det som gjer eit tal meiningsfullt. IPv4-hovudkontrollsummen vernar hovudet og ingenting anna, så han seier ingenting om nyttelasta bak. Ein UDP-kontrollsum over IPv6 dekkjer eit pseudo-hovud pluss UDP-hovudet og nyttelasta, noko som tyder at han når inn i den borne pakka når datagrammet vert tunellert. TCP har sin eigen kontrollsum med ein liknande avhengnad av pseudo-hovudet. Det er tre ulike dekningsområde sjølv om alle tre vert kalla kontrollsummar.

RFC 791 definerer IPv4-hovudkontrollen og omrekninga av han ved kvar hopp, og RFC 8200 definerer handsaminga i øvre lag over IPv6, inkludert pseudo-hovudet. Ingen av dokumenta seier at ein VPN-pakke har eit fast tal kontrollsummar, fordi ingen av dei skildrar ein tunnel.

tshark -r capture.pcap -Y "ip.proto == 50" -V | grep -i checksum

Sjekk integritetsvernet separat

ESP-integritet er kryptografisk vern med si eiga dekning og ei algoritmeavhengig framstilling. Det er ikkje ein IP- eller UDP-kontrollsum under eit anna namn, og lengda varierer med den valde konstruksjonen. Ein integritetskontroll dekkjer ein definert del av pakka, som avhengig av modus kan omfatte ESP-hovudet og ein del av nyttelasta. Å telje han som eit kontrollsumfelt med kjend breidd er der dei fleste av desse forklaringane fell frå kvarandre.

Les den valde konstruksjonen før du tel byte, og skildra resultatet som integritetsvern i staden for som ein kontrollsum med eit anna merke. Dekodaren namngjev feltet for deg om du spør han.

tshark -r capture.pcap -Y esp -V | grep -iE "integrity|icv"

Sjekk observasjonspunktet før du tel

Eit opptak på det indre grensesnittet og eit opptak på leidninga kan vise heilt ulike lag. På det indre grensesnittet er tunnelen alt fjerna, så du ser den borne pakka og ingen av dei ytre hovuda. På leidninga ser du dei ytre hovuda og ei kryptert nyttelast du ikkje kan lese. Ingen av visingane er feil, og dei er ikkje visingar av same objekt. Oppgje kvar opptaket vart gjort før du siterer noko tal.

sudo tcpdump -ni eth0 -vv -c 5 esp
sudo tcpdump -ni tun0 -vv -c 5

Den fyrste kommandoen viser den ytre pakka med sin integritetstrailer, og den andre viser den borne pakka med sin eigen transportkontrollsum. Å leggje saman tal frå begge opptaka tel ingenting dobbelt, men forklarer den same pakka to gonger.

Hald talet opp mot eit ekte opptak

Dekod éi pakke fullstendig og merk kvart felt dekodaren kallar ein kontrollsum eller ein integritetsverdi. Samanlikn deretter kvart merke med oppsettet du skreiv, og slett dei som høyrer til eit lag du ikkje faktisk tel. Eit tal som overlever den øvinga, er forsvarleg, og eit tal sitert frå minnet er det ikkje.

Gjenta for svarretninga, fordi ein tunnel som ber begge familiane, kan variere per retning og per flyt. Oppgje deretter talet saman med dekningsområdet, til dømes tre kontrollsummar for denne indre pakka på dette observasjonspunktet, i staden for som ein eigenskap ved VPN-pakkar generelt.

tshark -r capture.pcap -T fields -e ip.checksum -e udp.checksum -e tcp.checksum

Relaterte artiklar