Tvrdnja da VPN paket nosi tačno dvije kontrolne sume zvuči uredno i dovoljno je često netačna da je vrijedi raščlaniti. Broj zavisi od toga koje se IP verzije pojavljuju, koji se transportni protokol prenosi i koji format zaštite tunel koristi. Kontrolna suma zaglavlja, kontrolna suma gornjeg sloja i kriptografska oznaka integriteta tri su mehanizma s tri obima. Njihovo brojanje počinje označavanjem onoga što svaki pokriva.

Provjerite koje su IP verzije zaista na žici

IPv4 zaglavlja nose 16-bitnu kontrolnu sumu zaglavlja, a IPv6 zaglavlja ne nose ništa slično. Ta jedna činjenica mijenja broj za svaki tunel, jer umotavanje IPv4 u IPv6 i IPv6 u IPv4 daje različite dokumente. Tunel može prenositi obje familije istovremeno, a tada jedan smjer može sadržavati polje koje drugi nema. Utvrdite verzije prije nego što bilo šta brojite.

Zapišite raspored kao listu zaglavlja, a ne kao sliku. Redoslijed je važan pri čitanju snimka, a prisustvo ili odsustvo polja kontrolne sume prva je stvar koju treba označiti.

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

Prvi red nema kontrolnu sumu IP zaglavlja nigdje u svojim IP zaglavljima, dok drugi ima dvije kada su oba zaglavlja IPv4. Ista tehnologija tunela, različit broj, i nijedan red nije potpun format žice.

Provjerite šta pokriva svaka kontrolna suma

Pokrivenost je dio koji ljudi preskaču i ona je ono što broj čini smislenim. Kontrolna suma IPv4 zaglavlja štiti zaglavlje i ništa drugo, pa ne govori ništa o korisnom teretu iza njega. UDP kontrolna suma preko IPv6 pokriva pseudo-zaglavlje plus UDP zaglavlje i korisni teret, što znači da seže u preneseni paket kada je datagram tuneliran. TCP ima vlastitu kontrolnu sumu sa sličnom zavisnošću od pseudo-zaglavlja. To su tri različita obima iako se sva tri nazivaju kontrolnim sumama.

RFC 791 definiše provjeru IPv4 zaglavlja i njeno ponovno izračunavanje na svakom hopu, a RFC 8200 definiše obradu gornjeg sloja preko IPv6, uključujući pseudo-zaglavlje. Nijedan dokument ne kaže da VPN paket ima fiksan broj kontrolnih suma, jer nijedan ne opisuje tunel.

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

Provjerite zaštitu integriteta zasebno

ESP integritet je kriptografska zaštita s vlastitom pokrivenošću i predstavom koja zavisi od algoritma. To nije IP ili UDP kontrolna suma pod drugim imenom, a njena dužina varira s odabranom konstrukcijom. Provjera integriteta pokriva definisani dio paketa, koji u zavisnosti od režima može uključivati ESP zaglavlje i dio korisnog tereta. Brojanje toga kao polja kontrolne sume poznate širine mjesto je gdje se većina ovakvih objašnjenja raspada.

Pročitajte odabranu konstrukciju prije brojanja bajtova i opišite rezultat kao zaštitu integriteta, a ne kao kontrolnu sumu s drugom oznakom. Dekoder će vam imenovati polje ako ga pitate.

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

Provjerite tačku posmatranja prije brojanja

Snimak na unutrašnjem interfejsu i snimak na žici mogu pokazati potpuno različite slojeve. Na unutrašnjem interfejsu tunel je već uklonjen, pa vidite preneseni paket i nijedno od vanjskih zaglavlja. Na žici vidite vanjska zaglavlja i šifrovani korisni teret koji ne možete pročitati. Nijedan pogled nije pogrešan i oni nisu pogledi na isti objekat. Navedite gdje je snimak napravljen prije nego što citirate bilo koji broj.

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

Prva komanda prikazuje vanjski paket s njegovim trailerom integriteta, a druga prikazuje preneseni paket s vlastitom transportnom kontrolnom sumom. Sabiranje brojeva iz oba snimka ne broji ništa dvaput, ali objašnjava isti paket dva puta.

Uporedite broj sa stvarnim snimkom

Dekodirajte jedan paket u potpunosti i označite svako polje koje dekoder naziva kontrolnom sumom ili vrijednošću integriteta. Zatim uporedite svaku oznaku s rasporedom koji ste zapisali i izbrišite sve što pripada sloju koji zapravo ne brojite. Broj koji preživi tu vježbu je odbranjiv, a broj citiran po sjećanju nije.

Ponovite za smjer odgovora, jer tunel koji prenosi obje familije može se razlikovati po smjeru i po toku. Zatim navedite broj zajedno s njegovim obimom, na primjer tri kontrolne sume za ovaj unutrašnji paket na ovoj tački posmatranja, a ne kao osobinu VPN paketa općenito.

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

Povezani članci