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

सम्बन्धित लेखहरू