Một gói VPN có bao nhiêu tổng kiểm tra? Còn tùy
Số lượng phụ thuộc vào phiên bản IP, giao thức được mang và định dạng bảo vệ. Tổng kiểm tra phần đầu, tầng trên và thẻ toàn vẹn khác nhau.
Khẳng định rằng một gói VPN mang đúng hai tổng kiểm tra nghe có vẻ gọn gàng và sai đủ thường xuyên để đáng mổ xẻ. Số lượng phụ thuộc vào việc phiên bản IP nào xuất hiện, giao thức vận chuyển nào được mang và đường hầm dùng định dạng bảo vệ nào. Tổng kiểm tra phần đầu, tổng kiểm tra tầng trên và thẻ toàn vẹn mật mã là ba cơ chế với ba phạm vi. Việc đếm chúng bắt đầu bằng việc đánh dấu mỗi thứ bao phủ những gì.
Kiểm tra phiên bản IP nào thực sự có trên dây
Phần đầu IPv4 mang tổng kiểm tra phần đầu 16 bit, còn phần đầu IPv6 không mang gì như vậy. Một sự thật này thay đổi con số cho mọi đường hầm, vì bọc IPv4 trong IPv6 và bọc IPv6 trong IPv4 tạo ra các tài liệu khác nhau. Một đường hầm có thể mang cả hai họ cùng lúc, và khi đó một chiều có thể chứa trường mà chiều kia không có. Hãy xác định phiên bản trước khi đếm bất cứ thứ gì.
Viết bố cục dưới dạng danh sách phần đầu chứ không phải hình ảnh. Thứ tự quan trọng khi đọc bản ghi, và việc có hay không có trường tổng kiểm tra là thứ đầu tiên cần đánh dấu.
outer IPv6 | ESP | inner IPv6 | UDP | application data
outer IPv4 | ESP | inner IPv4 | TCP | application data
Dòng đầu không có tổng kiểm tra phần đầu IP ở bất cứ đâu trong các phần đầu IP của nó, trong khi dòng thứ hai có hai khi cả hai phần đầu đều là IPv4. Cùng một công nghệ đường hầm, con số khác nhau, và không dòng nào là định dạng dây đầy đủ.
Kiểm tra mỗi tổng kiểm tra bao phủ những gì
Phạm vi là phần mà người ta bỏ qua, và chính nó làm cho con số có ý nghĩa. Tổng kiểm tra phần đầu IPv4 bảo vệ phần đầu và không gì khác, nên nó không nói gì về tải trọng phía sau. Tổng kiểm tra UDP trên IPv6 bao phủ một phần đầu giả cùng với phần đầu và tải trọng UDP, nghĩa là nó vươn vào gói được mang khi datagram được đưa vào đường hầm. TCP có tổng kiểm tra riêng với sự phụ thuộc tương tự vào phần đầu giả. Cả ba đều được gọi là tổng kiểm tra nhưng đây là ba phạm vi khác nhau.
RFC 791 định nghĩa việc kiểm tra phần đầu IPv4 và việc tính lại nó ở mỗi bước nhảy, còn RFC 8200 định nghĩa cách xử lý tầng trên trên IPv6 bao gồm phần đầu giả. Không tài liệu nào nói gói VPN có số tổng kiểm tra cố định, vì không tài liệu nào mô tả một đường hầm.
tshark -r capture.pcap -Y "ip.proto == 50" -V | grep -i checksum
Kiểm tra bảo vệ toàn vẹn riêng
Toàn vẹn ESP là bảo vệ mật mã với phạm vi riêng và cách biểu diễn phụ thuộc thuật toán. Nó không phải tổng kiểm tra IP hay UDP dưới tên khác, và độ dài thay đổi theo cấu trúc được chọn. Việc kiểm tra toàn vẹn bao phủ một phần xác định của gói, tùy chế độ có thể bao gồm phần đầu ESP và một phần tải trọng. Đếm nó như một trường tổng kiểm tra có độ rộng đã biết là nơi phần lớn những lời giải thích này sụp đổ.
Đọc cấu trúc được chọn trước khi đếm byte, và mô tả kết quả như bảo vệ toàn vẹn chứ không phải tổng kiểm tra với nhãn khác. Bộ giải mã sẽ gọi tên trường nếu bạn hỏi.
tshark -r capture.pcap -Y esp -V | grep -iE "integrity|icv"
Kiểm tra điểm quan sát trước khi đếm
Bản ghi trên giao diện trong và bản ghi trên dây có thể cho thấy các tầng hoàn toàn khác nhau. Trên giao diện trong, đường hầm đã được bóc, nên bạn thấy gói được mang và không thấy phần đầu bên ngoài nào. Trên dây, bạn thấy các phần đầu bên ngoài và một tải trọng đã mã hóa mà bạn không thể đọc. Không góc nhìn nào sai, và chúng không phải góc nhìn của cùng một đối tượng. Nêu rõ bản ghi được lấy ở đâu trước khi trích dẫn bất kỳ con số nào.
sudo tcpdump -ni eth0 -vv -c 5 esp
sudo tcpdump -ni tun0 -vv -c 5
Lệnh đầu tiên cho thấy gói bên ngoài với phần đuôi toàn vẹn của nó, lệnh thứ hai cho thấy gói được mang với tổng kiểm tra vận chuyển riêng. Cộng các con số từ hai bản ghi không đếm gì hai lần, nhưng giải thích cùng một gói hai lần.
Đối chiếu con số với một bản ghi thật
Giải mã hoàn toàn một gói và đánh dấu mọi trường mà bộ giải mã gọi là tổng kiểm tra hoặc giá trị toàn vẹn. Sau đó so sánh từng dấu với bố cục bạn đã viết, và xóa những dấu thuộc về một tầng mà bạn không thực sự đếm. Một con số sống sót qua bài tập đó là có thể bảo vệ, còn con số trích từ trí nhớ thì không.
Lặp lại cho chiều trả lời, vì một đường hầm mang cả hai họ có thể khác nhau theo chiều và theo luồng. Sau đó nêu con số kèm phạm vi của nó, ví dụ ba tổng kiểm tra cho gói bên trong này tại điểm quan sát này, chứ không phải như một thuộc tính của các gói VPN nói chung.
tshark -r capture.pcap -T fields -e ip.checksum -e udp.checksum -e tcp.checksum