Колькі кантрольных сум у пакеце 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