Ang pahayag na ang isang VPN packet ay may dalang eksaktong dalawang checksum ay mukhang maayos at madalas na mali para sulitin ang pagsusuri. Ang bilang ay depende sa kung aling mga bersyon ng IP ang lumilitaw, aling transport protocol ang dinadala at aling format ng proteksyon ang ginagamit ng tunnel. Ang checksum ng header, checksum ng itaas na layer at cryptographic integrity tag ay tatlong mekanismo na may tatlong saklaw. Ang pagbilang sa kanila ay nagsisimula sa pagmarka ng sakop ng bawat isa.

Tingnan kung aling mga bersyon ng IP ang talagang nasa wire

Ang mga header ng IPv4 ay may dalang 16-bit na checksum ng header, at ang mga header ng IPv6 ay walang dalang ganoon. Ang isang katotohanang ito ay nagbabago ng bilang para sa bawat tunnel, dahil ang pagbabalot ng IPv4 sa IPv6 at ng IPv6 sa IPv4 ay gumagawa ng magkaibang dokumento. Ang isang tunnel ay maaaring magdala ng dalawang pamilya nang sabay, at sa gayong kaso ang isang direksyon ay maaaring may field na wala sa isa. Itakda ang mga bersyon bago magbilang ng anuman.

Isulat ang layout bilang listahan ng header at hindi bilang larawan. Mahalaga ang pagkakasunod-sunod kapag nagbabasa ng capture, at ang presensya o kawalan ng checksum field ang unang dapat markahan.

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

Ang unang linya ay walang checksum ng IP header kahit saan sa mga IP header nito, samantalang ang pangalawa ay may dalawa kapag parehong IPv4 ang mga header. Parehong teknolohiya ng tunnel, magkaibang bilang, at wala sa mga linya ang kumpletong format ng wire.

Tingnan kung ano ang sakop ng bawat checksum

Ang saklaw ay ang bahaging nilalaktawan ng mga tao, at ito ang nagbibigay ng kahulugan sa bilang. Ang checksum ng IPv4 header ay nagpoprotekta sa header at wala nang iba, kaya wala itong sinasabi tungkol sa payload sa likod nito. Ang UDP checksum sa IPv6 ay sumasaklaw sa pseudo-header kasama ang UDP header at payload, ibig sabihin umaabot ito sa loob ng dinadalang packet kapag ang datagram ay naka-tunnel. Ang TCP ay may sariling checksum na may katulad na pag-asa sa pseudo-header. Tatlong magkaibang saklaw ito kahit tinatawag na checksum ang tatlo.

Tinutukoy ng RFC 791 ang pagsusuri ng IPv4 header at ang muling pagkalkula nito sa bawat hop, at tinutukoy ng RFC 8200 ang pagtrato sa itaas na layer sa IPv6 kasama ang pseudo-header. Wala sa mga dokumento ang nagsasabing may fixed na bilang ng checksum ang isang VPN packet, dahil wala sa kanila ang naglalarawan ng tunnel.

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

Tingnan ang proteksyon ng integridad nang hiwalay

Ang integridad ng ESP ay cryptographic na proteksyon na may sariling saklaw at representasyong nakadepende sa algorithm. Hindi ito checksum ng IP o UDP sa ibang pangalan, at nagbabago ang haba nito ayon sa piniling konstruksyon. Ang pagsusuri ng integridad ay sumasaklaw sa tinukoy na bahagi ng packet, na depende sa mode ay maaaring kasama ang ESP header at bahagi ng payload. Ang bilangin ito bilang checksum field na kilala ang lapad ay ang lugar kung saan bumabagsak ang karamihan ng mga paliwanag na ito.

Basahin ang piniling konstruksyon bago magbilang ng byte, at ilarawan ang resulta bilang proteksyon ng integridad at hindi bilang checksum na may ibang label. Sasabihin ng decoder ang pangalan ng field kung tatanungin mo.

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

Tingnan ang observation point bago magbilang

Ang capture sa inner interface at capture sa wire ay maaaring magpakita ng magkaibang layer. Sa inner interface, tanggal na ang tunnel, kaya nakikita mo ang dinadalang packet at wala sa mga panlabas na header. Sa wire, nakikita mo ang mga panlabas na header at isang naka-encrypt na payload na hindi mo mabasa. Wala sa dalawang tanaw ang mali, at hindi sila tanaw ng parehong bagay. Sabihin kung saan kinuha ang capture bago sumipi ng anumang bilang.

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

Ipinapakita ng unang utos ang panlabas na packet kasama ang integrity trailer nito, at ipinapakita ng pangalawa ang dinadalang packet kasama ang sariling transport checksum. Ang pagdaragdag ng mga numero mula sa dalawang capture ay walang binibilang nang dalawang beses, ngunit dalawang beses na ipinapaliwanag ang parehong packet.

Ihambing ang bilang sa isang tunay na capture

I-decode ang isang packet nang buo at markahan ang bawat field na tinatawag ng decoder na checksum o integrity value. Pagkatapos ihambing ang bawat marka sa layout na isinulat mo, at burahin ang mga kabilang sa layer na hindi mo talaga binibilang. Ang bilang na makakaligtas sa pagsasanay na iyon ay mapagtatanggol, at ang bilang na sinipi mula sa memorya ay hindi.

Ulitin para sa direksyon ng sagot, dahil ang tunnel na may dalang dalawang pamilya ay maaaring magkaiba ayon sa direksyon at ayon sa daloy. Pagkatapos sabihin ang bilang kasama ang saklaw nito, halimbawa tatlong checksum para sa panloob na packet na ito sa observation point na ito, at hindi bilang katangian ng mga VPN packet sa pangkalahatan.

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

Kaugnay na mga artikulo