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