1. Khái niệm AH
Giao thức AH (Authentication Header) được định nghĩa trong RFC 1826 và sau đó là phát triển lại trong RFC 2402. AH cung cấp xác thực nguồn gốc dữ liệu (data origin authentication), kiểm tra tính toàn vẹn dữ liệu (data integrity), và dịch vụ chống phát lại (anti-replay service). Đến đây, cần phải phân biệt được hai khái niệm toàn vẹn dữ liệu và chống phát lại, toàn vẹn dữ liệu là kiểm tra những thay đổi của từng gói tin IP,không quan tâm đến vị trí các gói trong luồng lưu lượng.
Còn dịch vụ chống phát lại là kiểm tra sự phát lặp lại một gói tin tới địa chỉ đích nhiều hơn một lần. AH cho phép xác thực các trường của IP header cũng như dữ liệu của các giao thức lớp trên, tuy nhiên do một số trường của IP header thay đổi trong khi truyền và phía phát có thể không dự đoán trước được giá trị của chúng khi tới phía thu, do đó giá trị của các trường này không bảo vệ được bằng AH.
IP Packet được bảo vệ bởi AH
AH cung cấp sự bảo vệ bằng cách tính toán một chìa khóa MAC, gọi là kiểm tra tính toàn vẹn (ICV - integrity check value) trên các phần của IP header và toàn bộ payload data. Kết quả của ICV được đặt trong AH header và phần header đó được thêm vào gói dữ liệu. Vị trí chính xác của AH header trong gói dữ liệu phụ thuộc vào nó sử dụng chế độ transport hoặc tunnel.
Có thể nói AH chỉ bảo vệ một phần của IP header. AH không cung cấp bất cứ xử lý nào về bảo mật dữ liệu của các lớp trên, tất cả đều được truyền dưới dạng văn bản rõ. AH nhanh hơn ESP, nên có thể chọn AH trong trường hợp chắc chắn về nguồn gốc và tính toàn vẹn của dữ liệu nhưng tính bảo mật dữ liệu không cần được chắc chắn.
Giao thức AH cung cấp chức năng xác thực bằng cách thực hiện một hàm băm một chiều (one-way hash function) đối với dữ liệu của gói để tạo ra một đoạn mã xác thực (hash hay message digest). Đoạn mã đó được chèn vào thông tin của gói truyền đi. Khi đó, bất cứ thay đổi nào đối với nội dung của gói trong quá trình truyền đi đều được phía thu phát hiện khi nó thực hiện cùng với một hàm băm một chiều đối với gói dữ liệu thu được và đối chiếu nó với giá trị hash đã truyền đi.
Hàm băm được thực hiện trên toàn bộ gói dữ liệu, trừ một số trường trong IP header có giá trị bị thay đổi trong quá trình truyền mà phía thu không thể dự đoán trước được (ví dụ trường thời gian sống của gói tin bị các router thay đổi trên đường truyền dẫn). Ở một thời điểm AH không thể xác thực toàn bộ IP header bởi vì một số trường của nó có thể thay đổi bởi router trung gian.
Các trường của IP header
Các trường tô đậm là có thể thay đổi, không được bao phủ bởi các chứng thực, nó sẽ được thiết lập về 0 trước khi tính toán bởi ICV. Ngoài ra, địa chỉ đích được quy định có thể thay đổi nhưng có thể dự đoán được, có nghĩa là nó có thể bị thay đổi bởi các router trung gian nhưng biết được giá trị cuối cùng.
Địa chỉ đích có thể thay đổi nhưng có thể dự đoán được khi sử dụng dữ liệu định tuyến. Trong trường hợp này, giá trị dự đoán là địa chỉ đích cuối cùng, đó cũng là máy chủ cuối cùng được nhìn thấy, vì vậy giá trị đó được điền vào trước khi ICV tính toán.
2. Quá trình xử lý AH
Hoạt động của AH được thực hiện qua các bước như sau:
- Bước 1: Toàn bộ gói IP (bao gồm IP header và tải tin) được thực hiện qua một hàm băm một chiều.
- Bước 2: Mã hash thu được dùng để xây dựng một AH header, đưa header này vào gói dữ liệu ban đầu.
- Bước 3: Gói dữ liệu sau khi thêm AH header được truyền tới đối tác IPSec
- Bước 4: Bên thu thực hiện hàm băm với IP header và tải tin, kết quả thu được một mã hash.
- Bước 5: Bên thu tách mã hash trong AH header.
- Bước 6: Bên thu so sánh mã hash mà nó tính được mà mã hash tách ra từ AH header. Hai mã hash này phải hoàn toàn giống nhau. Nếu khác nhau chỉ một bit trong quá trình truyền thì 2 mã hash sẽ không giống nhau, bên thu lập tức phát hiện tính không toàn vẹn của dữ liệu.
3. Các thuật toán xác thực
Thuật toán xác thực sử dụng để tính ICV được xác định bởi kết hợp an ninh SA (Security Association). Đối với truyền thông điểm tới điểm, các thuật toán xác thực thích hợp bao gồm các hàm băm một chiều (MD5, SHA-1). Đây chính là những thuật toán bắt buộc mà một ứng dụng AH phải hỗ trợ.
4. Chế độ Transport AH
Chế độ Transport được sử dụng để đảm bảo kết nối giữa hai host. Thiết bị đầu cuối là host cụ thể thích hợp hơn giữa hai network hoặc giữa một host và một network.
AH Transport Tunnel
Trong chế độ Transport, AH header được chèn vào các gói tin IP sau IP header
Cơ chế đóng gói chế độ Transport AH trong phân đoạn TCP
5. Chế độ Tunnel AH
Chế độ Tunnel được sử dụng để kết nối hai network thông qua một tập hợp các gateway bảo mật hoặc một host và một network được bảo vệ bởi một gateway bảo mật. AH tunnel chạy giữa các gateway, không phải giữa các host trong hai network được bảo vệ.
Tunnel - Mode AH Tunnel
Bởi vì gateway bảo mật phải bảo vệ gói tin giữa những cặp host tùy ý từ hai mạng, nên đóng gói sẽ khác nhau. Thay vì chèn AH header giữa IP header và giao thức header lớp trên, mà gói gọn toàn bộ gói tin bởi prepending IP và AH header.
Cơ chế đóng gói AH Tunnel - Mode
Trần Công Hiếu – VnPro