د 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 سرلیک چکسوم یوازې سرلیک ساتي او بل هیڅ نه، نو د هغه شاته د بار په اړه هیڅ نه وایي. د IPv6 پرمخ UDP چکسوم یو څېړنې سرلیک او همدارنګه 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