Väide, et VPN-pakett kannab täpselt kahte kontrollsummat, kõlab korralikult ja on piisavalt sageli vale, et seda tasuks lahti võtta. Arv sõltub sellest, millised IP-versioonid esinevad, millist transpordiprotokolli kantakse ja millist kaitseformaati tunnel kasutab. Päise kontrollsumma, ülemise kihi kontrollsumma ja krüptograafiline terviklikkuse silt on kolm mehhanismi kolme ulatusega. Nende loendamine algab märkimisest, mida igaüks katab.

Kontrollige, millised IP-versioonid tegelikult juhtmel on

IPv4 päised kannavad 16-bitist päise kontrollsummat ja IPv6 päised ei kanna midagi sellist. See üks fakt muudab arvu iga tunnelil, sest IPv4 pakkimine IPv6 sisse ja IPv6 pakkimine IPv4 sisse annavad erinevad dokumendid. Tunnel võib kanda mõlemat perekonda korraga ja siis võib üks suund sisaldada välja, mida teisel ei ole. Tehke versioonid kindlaks enne, kui midagi loendate.

Kirjutage paigutus päiste loendina, mitte pildina. Järjekord on tabamuse lugemisel oluline ja kontrollsumma välja olemasolu või puudumine on esimene asi, mida märkida.

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

Esimesel real ei ole kuskil oma IP-päistes IP-päise kontrollsummat, teisel on aga kaks, kui mõlemad päised on IPv4. Sama tunnelitehnoloogia, erinev arv ja kumbki rida ei ole täielik juhtmeformaat.

Kontrollige, mida iga kontrollsumma katab

Katvus on osa, mille inimesed vahele jätavad, ja just see teeb arvu mõttekaks. IPv4 päise kontrollsumma kaitseb päist ja mitte midagi muud, seega ei ütle see midagi selle taga oleva kandevõime kohta. UDP kontrollsumma üle IPv6 katab pseudopäise pluss UDP päise ja kandevõime, mis tähendab, et see ulatub kantavasse paketti, kui datagramm on tunnelisse pandud. TCP-l on oma kontrollsumma, millel on sarnane sõltuvus pseudopäisest. Need on kolm erinevat ulatust, kuigi kõiki kolme nimetatakse kontrollsummaks.

RFC 791 määratleb IPv4 päise kontrolli ja selle ümberarvutuse igal hüppel ning RFC 8200 määratleb ülemise kihi töötlemise üle IPv6, sealhulgas pseudopäise. Kumbki dokument ei ütle, et VPN-paketil on kindel arv kontrollsummasid, sest kumbki ei kirjelda tunnelit.

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

Kontrollige terviklikkuse kaitset eraldi

ESP terviklikkus on krüptograafiline kaitse, millel on oma katvus ja algoritmist sõltuv esitus. See ei ole IP või UDP kontrollsumma teise nime all ja selle pikkus varieerub valitud konstruktsiooni järgi. Terviklikkuse kontroll katab paketi määratud osa, mis võib režiimist sõltuvalt hõlmata ESP päist ja osa kandevõimest. Selle loendamine teadaoleva laiusega kontrollsumma väljana on koht, kus enamik neist selgitustest laguneb.

Lugege valitud konstruktsiooni enne baitide loendamist ja kirjeldage tulemust terviklikkuse kaitsena, mitte teise sildiga kontrollsummana. Dekooder nimetab välja teie eest, kui te seda küsite.

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

Kontrollige vaatluspunkti enne loendamist

Sisemise liidese tabamus ja juhtme tabamus võivad näidata täiesti erinevaid kihte. Sisemisel liidesel on tunnel juba eemaldatud, nii et näete kantavat paketti ja mitte ühtegi välimist päist. Juhtmel näete välimisi päiseid ja krüpteeritud kandevõimet, mida te ei saa lugeda. Kumbki vaade ei ole vale ja need ei ole sama objekti vaated. Märkige, kus tabamus tehti, enne kui nimetate ükskõik millise arvu.

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

Esimene käsk näitab välimist paketti koos oma terviklikkuse sabaga ja teine näitab kantavat paketti koos oma transpordi kontrollsummaga. Mõlema tabamuse arvude liitmine ei loenda midagi kaks korda, kuid selgitab sama paketti kaks korda.

Võrrelge arvu tegeliku tabamusega

Dekodeerige üks pakett täielikult ja märkige iga väli, mida dekooder nimetab kontrollsummaks või terviklikkuse väärtuseks. Seejärel võrrelge iga märget paigutusega, mille kirjutasite, ja kustutage need, mis kuuluvad kihile, mida te tegelikult ei loenda. Arv, mis selle harjutuse üle elab, on kaitstav, ja mälust tsiteeritud arv ei ole.

Korrake vastusesuuna jaoks, sest mõlemat perekonda kandev tunnel võib erineda suuna ja voo kaupa. Seejärel öelge arv koos selle ulatusega, näiteks kolm kontrollsummat selle sisemise paketi jaoks selles vaatluspunktis, mitte VPN-pakettide üldise omadusena.

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

Seotud artiklid