Dakwaan bahawa paket VPN membawa tepat dua checksum kedengaran kemas dan cukup kerap salah sehingga wajar dibongkar. Jumlahnya bergantung pada versi IP yang muncul, protokol pengangkutan yang dibawa dan format perlindungan yang digunakan oleh terowong. Checksum pengepala, checksum lapisan atas dan tag integriti kriptografi ialah tiga mekanisme dengan tiga skop. Mengiranya bermula dengan menandakan apa yang diliputi oleh setiap satu.

Periksa versi IP mana yang sebenarnya ada pada wayar

Pengepala IPv4 membawa checksum pengepala 16-bit, dan pengepala IPv6 tidak membawa apa-apa seumpamanya. Fakta tunggal ini mengubah jumlah bagi setiap terowong, kerana membungkus IPv4 di dalam IPv6 dan IPv6 di dalam IPv4 menghasilkan dokumen yang berbeza. Sesuatu terowong boleh membawa kedua-dua keluarga sekali gus, dan dalam keadaan itu satu arah mungkin mengandungi medan yang tiada pada arah lain. Tetapkan versinya sebelum mengira apa-apa.

Tulis susun atur sebagai senarai pengepala dan bukan gambar. Urutan penting semasa membaca tangkapan, dan kehadiran atau ketiadaan medan checksum ialah perkara pertama yang perlu ditandakan.

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

Baris pertama tidak mempunyai checksum pengepala IP di mana-mana dalam pengepala IP-nya, manakala baris kedua mempunyai dua apabila kedua-dua pengepala ialah IPv4. Teknologi terowong yang sama, jumlah berbeza, dan tiada satu baris pun merupakan format wayar yang lengkap.

Periksa apa yang diliputi oleh setiap checksum

Liputan ialah bahagian yang orang langkaui, dan itulah yang menjadikan jumlah itu bermakna. Checksum pengepala IPv4 melindungi pengepala dan tiada yang lain, jadi ia tidak berkata apa-apa tentang muatan di belakangnya. Checksum UDP di atas IPv6 meliputi pseudo-pengepala serta pengepala dan muatan UDP, yang bermaksud ia mencapai ke dalam paket yang dibawa apabila datagram diterowongkan. TCP mempunyai checksum sendiri dengan kebergantungan pseudo-pengepala yang serupa. Itu tiga skop berbeza walaupun ketiga-tiganya dipanggil checksum.

RFC 791 mentakrifkan pemeriksaan pengepala IPv4 dan pengiraan semulanya pada setiap hop, dan RFC 8200 mentakrifkan layanan lapisan atas di atas IPv6 termasuk pseudo-pengepala. Tiada dokumen yang mengatakan paket VPN mempunyai bilangan checksum yang tetap, kerana tiada yang menerangkan terowong.

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

Periksa perlindungan integriti secara berasingan

Integriti ESP ialah perlindungan kriptografi dengan liputan sendiri dan perwakilan yang bergantung pada algoritma. Ia bukan checksum IP atau UDP dengan nama lain, dan panjangnya berbeza mengikut binaan yang dipilih. Pemeriksaan integriti meliputi bahagian tertentu paket, yang bergantung pada mod mungkin merangkumi pengepala ESP dan sebahagian muatan. Mengiranya sebagai medan checksum dengan lebar yang diketahui ialah tempat kebanyakan penjelasan seperti ini runtuh.

Baca binaan yang dipilih sebelum mengira bait, dan huraikan hasilnya sebagai perlindungan integriti dan bukan sebagai checksum dengan label lain. Penyahkod akan menamakan medan itu untuk anda jika anda bertanya.

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

Periksa titik pemerhatian sebelum mengira

Tangkapan pada antara muka dalam dan tangkapan pada wayar boleh menunjukkan lapisan yang sama sekali berbeza. Pada antara muka dalam terowong sudah ditanggalkan, jadi anda melihat paket yang dibawa dan tiada satu pun pengepala luar. Pada wayar anda melihat pengepala luar dan muatan tersulit yang tidak dapat anda baca. Tiada pandangan yang salah, dan ia bukan pandangan objek yang sama. Nyatakan di mana tangkapan diambil sebelum memetik apa-apa jumlah.

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

Perintah pertama menunjukkan paket luar dengan trelernya integriti, dan yang kedua menunjukkan paket yang dibawa dengan checksum pengangkutannya sendiri. Menjumlahkan nombor daripada kedua-dua tangkapan tidak mengira apa-apa dua kali, tetapi menerangkan paket yang sama dua kali.

Uji jumlah itu terhadap tangkapan sebenar

Nyahkod satu paket sepenuhnya dan tandakan setiap medan yang dinamakan penyahkod sebagai checksum atau nilai integriti. Kemudian bandingkan setiap tanda dengan susun atur yang anda tulis, dan padamkan yang tergolong dalam lapisan yang tidak benar-benar anda kira. Jumlah yang bertahan dalam latihan itu boleh dipertahankan, dan jumlah yang dipetik dari ingatan tidak.

Ulangi untuk arah balasan, kerana terowong yang membawa kedua-dua keluarga boleh berbeza mengikut arah dan mengikut aliran. Kemudian nyatakan jumlah itu bersama skopnya, contohnya tiga checksum untuk paket dalam ini pada titik pemerhatian ini, dan bukan sebagai sifat paket VPN secara umum.

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

Artikel berkaitan