Колико контролних сума има VPN пакет? Зависи
Број зависи од IP верзија, пренетог протокола и формата заштите. Контролне суме заглавља, горњег слоја и ознаке интегритета се разликују.
Тврдња да VPN пакет носи тачно две контролне суме звучи уредно и довољно је често нетачна да је вреди разложити. Број зависи од тога које се IP верзије појављују, који се транспортни протокол преноси и који формат заштите тунел користи. Контролна сума заглавља, контролна сума горњег слоја и криптографска ознака интегритета су три механизма са три обима. Њихово бројање почиње означавањем онога што сваки од њих покрива.
Проверите које су IP верзије заиста на жици
IPv4 заглавља носе 16-битну контролну суму заглавља, а IPv6 заглавља не носе ништа слично. Та једна чињеница мења број за сваки тунел, јер умотавање IPv4 у IPv6 и IPv6 у IPv4 даје различите документе. Тунел може преносити обе фамилије истовремено, а тада један смер може садржати поље које други нема. Утврдите верзије пре него што било шта бројите.
Запишите распоред као листу заглавља, а не као слику. Редослед је важан при читању снимка, а присуство или одсуство поља контролне суме прва је ствар коју треба означити.
outer IPv6 | ESP | inner IPv6 | UDP | application data
outer IPv4 | ESP | inner IPv4 | TCP | application data
Први ред нема контролну суму IP заглавља нигде у својим IP заглављима, док други има две када су оба заглавља IPv4. Иста технологија тунела, различит број, и ниједан ред није потпун формат жице.
Проверите шта покрива свака контролна сума
Покривеност је део који људи прескачу и она је оно што број чини смисленим. Контролна сума IPv4 заглавља штити заглавље и ништа друго, па не говори ништа о корисном терету иза њега. UDP контролна сума преко IPv6 покрива псеудо-заглавље плус UDP заглавље и корисни терет, што значи да сеже у пренесени пакет када је датаграм тунелиран. TCP има сопствену контролну суму са сличном зависношћу од псеудо-заглавља. То су три различита обима иако се сва три називају контролним сумама.
RFC 791 дефинише проверу IPv4 заглавља и његово поновно израчунавање на сваком хопу, а RFC 8200 дефинише обраду горњег слоја преко IPv6, укључујући псеудо-заглавље. Ниједан документ не каже да VPN пакет има фиксан број контролних сума, јер ниједан не описује тунел.
tshark -r capture.pcap -Y "ip.proto == 50" -V | grep -i checksum
Проверите заштиту интегритета одвојено
ESP интегритет је криптографска заштита са сопственом покривеношћу и представом која зависи од алгоритма. То није IP или UDP контролна сума под другим именом, а њена дужина варира са изабраном конструкцијом. Провера интегритета покрива дефинисани део пакета, који у зависности од режима може укључивати ESP заглавље и део корисног терета. Бројање тога као поља контролне суме познате ширине место је где се већина оваквих објашњења распада.
Прочитајте изабрану конструкцију пре бројања бајтова и опишите резултат као заштиту интегритета, а не као контролну суму са другом ознаком. Декодер ће вам именовати поље ако га питате.
tshark -r capture.pcap -Y esp -V | grep -iE "integrity|icv"
Проверите тачку посматрања пре бројања
Снимак на унутрашњем интерфејсу и снимак на жици могу показати потпуно различите слојеве. На унутрашњем интерфејсу тунел је већ уклоњен, па видите пренесени пакет и ниједно од спољашњих заглавља. На жици видите спољашња заглавља и шифровани корисни терет који не можете прочитати. Ниједан поглед није погрешан и они нису погледи на исти објекат. Наведите где је снимак направљен пре него што цитирате било који број.
sudo tcpdump -ni eth0 -vv -c 5 esp
sudo tcpdump -ni tun0 -vv -c 5
Прва команда приказује спољашњи пакет са његовим трејлером интегритета, а друга приказује пренесени пакет са сопственом транспортном контролном сумом. Сабирање бројева из оба снимка не броји ништа дупло, али објашњава исти пакет двапут.
Упоредите број са стварним снимком
Декодирајте један пакет у потпуности и означите свако поље које декодер назива контролном сумом или вредношћу интегритета. Затим упоредите сваку ознаку са распоредом који сте записали и избришите све што припада слоју који заправо не бројите. Број који преживи ту вежбу је одбрањив, а број цитиран по сећању није.
Поновите за смер одговора, јер тунел који преноси обе фамилије може се разликовати по смеру и по току. Затим наведите број заједно са његовим обимом, на пример три контролне суме за овај унутрашњи пакет на овој тачки посматрања, а не као особину VPN пакета уопште.
tshark -r capture.pcap -T fields -e ip.checksum -e udp.checksum -e tcp.checksum