Hány ellenőrző összeget tartalmaz egy VPN-csomag? Attól függ
A szám az IP-verzióktól, a szállított protokolltól és a védelmi formátumtól függ. A fejléc-ellenőrző összegek, a felső réteg összegei és az integritáscímkék eltérnek.
Az az állítás, hogy egy VPN-csomag pontosan két ellenőrző összeget hordoz, rendezettnek hangzik, és elég gyakran téves ahhoz, hogy érdemes legyen szétszedni. A szám attól függ, milyen IP-verziók jelennek meg, melyik szállítási protokollt hordozza, és milyen védelmi formátumot használ az alagút. A fejléc-ellenőrző összeg, a felső réteg ellenőrző összege és egy kriptográfiai integritáscímke három mechanizmus három hatókörrel. Számlálásuk azzal kezdődik, hogy megjelöljük, mit fed le mindegyik.
Ellenőrizze, mely IP-verziók vannak valóban a vezetéken
Az IPv4-fejlécek 16 bites fejléc-ellenőrző összeget hordoznak, az IPv6-fejlécek pedig semmi ilyesmit. Ez az egyetlen tény minden alagút esetében megváltoztatja a számot, mert az IPv4 IPv6-ba csomagolása és az IPv6 IPv4-be csomagolása különböző dokumentumokat eredményez. Egy alagút egyszerre mindkét családot szállíthatja, és ilyenkor az egyik irány tartalmazhat olyan mezőt, amely a másikban nincs. A számlálás előtt állapítsa meg a verziókat.
Írja le az elrendezést fejlécek listájaként, ne képként. A sorrend számít a mentés olvasásakor, és az ellenőrző összeg mezőjének megléte vagy hiánya az első megjelölendő dolog.
outer IPv6 | ESP | inner IPv6 | UDP | application data
outer IPv4 | ESP | inner IPv4 | TCP | application data
Az első sorban sehol nincs IP-fejléc-ellenőrző összeg az IP-fejléceiben, míg a másodikban kettő van, ha mindkét fejléc IPv4. Ugyanaz az alagúttechnológia, más szám, és egyik sor sem teljes vezetékformátum.
Ellenőrizze, mit fed le az egyes ellenőrző összegek
A lefedés az a rész, amelyet az emberek kihagynak, és ez teszi értelmessé a számot. Az IPv4-fejléc ellenőrző összege a fejlécet védi és semmi mást, így semmit sem mond a mögötte lévő hasznos terhelésről. Az IPv6 feletti UDP-ellenőrző összeg egy pszeudo-fejlécet, valamint az UDP-fejlécet és a terhelést fedi le, ami azt jelenti, hogy behatol a szállított csomagba, amikor a datagramot alagútba teszik. A TCP-nek saját ellenőrző összege van, hasonló pszeudo-fejléc-függéssel. Ez három különböző hatókör, bár mindhármat ellenőrző összegnek nevezik.
Az RFC 791 meghatározza az IPv4-fejléc ellenőrzését és annak újraszámítását minden ugrásnál, az RFC 8200 pedig a felső réteg IPv6 feletti kezelését, beleértve a pszeudo-fejlécet. Egyik dokumentum sem mondja, hogy egy VPN-csomag rögzített számú ellenőrző összeget tartalmaz, mert egyik sem ír le alagutat.
tshark -r capture.pcap -Y "ip.proto == 50" -V | grep -i checksum
Ellenőrizze külön az integritásvédelmet
Az ESP-integritás kriptográfiai védelem saját lefedéssel és algoritmusfüggő ábrázolással. Nem IP- vagy UDP-ellenőrző összeg más néven, és hossza a választott konstrukció szerint változik. Az integritásellenőrzés a csomag meghatározott részét fedi le, amely az alkalmazott módtól függően magában foglalhatja az ESP-fejlécet és a terhelés egy részét. Ismert szélességű ellenőrző összeg mezőként számolni ott van a hiba, ahol ezek a magyarázatok legtöbbször szétesnek.
Olvassa el a választott konstrukciót, mielőtt bájtokat számol, és az eredményt integritásvédelemként írja le, nem más címkéjű ellenőrző összegként. A dekóder megmondja a mező nevét, ha megkérdezi.
tshark -r capture.pcap -Y esp -V | grep -iE "integrity|icv"
Számolás előtt ellenőrizze a megfigyelési pontot
A belső interfészen készült mentés és a vezetéken készült mentés teljesen különböző rétegeket mutathat. A belső interfészen az alagutat már lehúzták, így a szállított csomagot látja, és a külső fejlécek egyikét sem. A vezetéken a külső fejléceket és egy titkosított terhelést lát, amelyet nem tud elolvasni. Egyik nézet sem hibás, és nem ugyanazon objektum nézetei. Nevezze meg, hol készült a mentés, mielőtt bármilyen számot idéz.
sudo tcpdump -ni eth0 -vv -c 5 esp
sudo tcpdump -ni tun0 -vv -c 5
Az első parancs a külső csomagot mutatja az integritásszárakkal, a második pedig a szállított csomagot a saját szállítási ellenőrző összegével. A két mentés számainak összeadása semmit nem számol kétszer, de kétszer magyarázza el ugyanazt a csomagot.
Vesse össze a számot egy valódi mentéssel
Dekódoljon egy csomagot teljesen, és jelölje meg minden mezőt, amelyet a dekóder ellenőrző összegnek vagy integritásértéknek nevez. Ezután hasonlítsa össze az egyes jelöléseket az általa írt elrendezéssel, és törölje azokat, amelyek olyan réteghez tartoznak, amelyet valójában nem számol. Az a szám, amely túléli ezt a gyakorlatot, védhető, a memóriából idézett pedig nem.
Ismételje meg a válaszirányra, mert a mindkét családot szállító alagút irányonként és folyamonként eltérhet. Ezután mondja ki a számot a hatókörével együtt, például három ellenőrző összeget ehhez a belső csomaghoz ezen a megfigyelési ponton, és ne a VPN-csomagok általános tulajdonságaként.
tshark -r capture.pcap -T fields -e ip.checksum -e udp.checksum -e tcp.checksum