Cơ chế hoạt động của giao thức AH và ESP
Tác giả: Vi Thị Mưu
1. Khái quát :
Giao thức ESP và giao thức AH là hai giao thức chính trong việc mã hoá và xác thực dữ liệu.
- ESP sử dụng IP Protocol number là 50 (ESP được đóng gói bởi giao thức IP và trường protocol trong IP là 50)
- AH sử dụng IP Protocol number là 51 ( AH được đóng gói bởi giao thức IP và trường protocol trong IP là 51)
Bộ giao thức IPSec hoạt động trên 2 mode chính : Tunnel Mode và Transports Mode.
- Khi giao thức IPSec hoạt động ở Tunnel Mode thì sau khi đóng gói dữ liệu, giao thức ESP mã hoá toàn bộ Payload, frame Header, IP Header thì nó sẽ thêm một IP Header mới vào gói tin trước khi forward đi.
- Khi giao thức IPSec hoạt động ở Transport Mode thì IP Header vẫn được giữ nguyên và lúc này giao thức ESP sẽ chèn vào giữa Payload và IP Header của gói tin.
2. Tổng quan về ESP Header và AH Header
- Trong trường hợp dùng giao thức ESP : thì giao thức này sẽ làm công việc mã hóa (encryption), xác thực (authentication), bảo đảm tính toàn vẹn dữ liệu ( integrity protection). Sau khi đóng gói xong bằng ESP, mọi thông tin và mã hoá và giải mã sẽ nằm trong ESP Header.
- Các thuật toán mã hoá sử dụng trong giao thức như : DES, 3DES, AES
- các thuật toán hash như : MD5 hoặc SHA-1
- Trong trường hợp dùng giao thức AH : thì AH chỉ làm công việc xác thực (Authentication), và đảm bảo tính toàn vẹn dữ liệu. Giao thức AH không có tính năng mã hoá dữ liệu.
3. Authentication Header (AH)
AH là một trong những giao thức bảo mật, cung cấp tính năng đảm bảo toàn vẹn packet headers và data, xác thực nguồn gốc dữ liệu. Nó có thể tuỳ chọn cung cấp dịch vụ replay protection và access protection. AH không mã hoá bất kỳ phần nào của các gói tin. Trong phiên bản đầu của IPSec, giao thức ESP chỉ có thể cung cấp mã hoá, không xác thực. Do đó, người ta kết hợp giao thức AH và ESP với nhau để cung cấp sự cẩn mật và đảm bảo toàn vẹn dữ liệu cho thông tin.
a. AH Mode
AH có hai mode : Transport và Tunnel.
Trong Tunnel mode, AH tạo 1 IP Header mới cho mỗi gói tin
Trong Transport mode, AH không tạo IP Header mới
Trong cấu trúc IPSec mà sử dụng gateway , địa chỉ thật của IP nguồn và đích của các gói tin phải thay đổi thành địa chỉ IP của gateway. Vì trong Transport Mode không thay đổi IP Header nguồn hoặc tạo một IP Header mới, Transport Mode thường sử dụng trong cấu trúc host-to-host.
AH cung cấp tính năng đảm bảo tính toàn vẹn cho toàn bộ gói tin, bất kỳ mode nào được sử dụng .
Figure 3-3: AH Tunnel Mode Packet
Figure 3-4: AH Transport Mode Packet
B1: AH sẽ đem gói dữ liệu (packet ) bao gồm : Payload + IP Header + Key cho chạy qua giải thuật Hash 1 chiều và cho ra 1 chuỗi số. và chuỗi số này sẽ được gán vào AH Header.
B2: AH Header này sẽ được chèn vào giữa Payload và IP Header và chuyển sang phía bên kia.
B3: Router đích sau khi nhận được gói tin này bao gồm : IP Header + AH Header + Payload sẽ được cho qua giải thuật Hash một lần nữa để cho ra một chuỗi số.
B4: so sánh chuỗi số nó vừa tạo ra và chuỗi số của nó nếu giống nhau thì nó chấp nhận gói tin .
C. AH Header
Figure 3-5 : AH Header
-Payload Length : Trường này chứa chiều dài của AH Header.
-Reserved : giá trị này được dành để sử dụng trong tương lai ( cho đến thời điểm này nó được biểu thị bằng các chỉ số 0).
-Security parameter Index (SPI) : mỗi đầu cuối của mỗi kết nối IPSec tuỳ ý chọn giá trị SPI. Hoạt động này chỉ được dùng để nhận dạng cho kết nối. Bên nhận sử dụng giá trị SPI cùng với địa chỉ IP đích và loại giao thức IPSec (trường hợp này là AH) để xác định chính sách SA được dùng cho gói tin (Có nghĩa là giao thức IPSec và các thuật toán nào được dùng để áp cho gói tin).
-Sequence Number : chỉ số này tăng lên 1 cho mỗi AH datagram khi một host gửi có liên quan đến chính sách SA. Giá trị bắt đầu của bộ đếm là 1. chuỗi số này không bao giờ cho phép ghi đè lên là 0. vì khi host gửi yêu cầu kiểm tra mà nó không bị ghi đè và nó sẽ thoả thuận chính sách SA mới nếu SA này được thiết lập. Host nhận sẽ dùng chuỗi số để phát hiện replayed datagrams. Nếu kiểm tra bên phía host nhận, bên nhận có thể nói cho bên gửi biết rằng bên nhận không kiểm tra chuỗi số, nhưng đòi hỏi nó phải luôn có trong bên gửi để tăng và gửi chuỗi số.
-Authentication Data: Trường này chứa kết quả của giá trị Integrity Check Value (ICV). Trường này luôn là bội của 32-bit (từ) và phải được đệm vào nếu chiều dài của ICV trong các bytes chưa đầy.
d. Hoạt động của giao thức AH
-Hướng tốt nhất để hiểu AH làm việc như thế nào, ta sẽ xem và phân tích các gói tin AH.
Figure 3-6: Sample AH Transport Mode Packet.
Hình trên cho thấy các thành phần của gói tin AH thật sự. Mỗi section của AH Packet gồm : Ethernet header , IP header , AH header và Payload. Dựa trên các trường của phần AH mode, ta thấy đây là gói tin ở Transport Mode vì nó chỉ chứa IP Header. Trong trường hợp này, payload chứa ICMP echo request (hay là Ping). Ping gốc chứa chuỗi mẫu tự được miêu tả trong gói tin tăng dần bởi giá trị Hex ( vd : 61, 62, 63). Sau khi giao thức AH được applied, ICMP Payload không thay đổi. Vì AH chỉ cung cấp dịch vụ đảm bảo toàn vẹn dữ liệu, không mã hoá.
Figure 3-7 : AH Header Fields from Sample Packet.
Các trường trong AH Header từ 4 gói tin đầu tiên trong AH session giữa host A và host B. Các trường trong header đầu tiên chỉ là nhãn, để đáp ứng trong việc nhận dạng AH mode.
-SPI : host A sử dụng giá trị số Hex cdb59934 cho SPI trong cả các gói tin của nó. Trong khi đó host B sử dụng giá trị số Hex a6b32c00 cho SPI trong cả các gói tin. Điều này phản ánh được rằng kết nối AH thật sự gồm hai thành phần kết nối một chiều.
-Sequence Number : cả hai host bắt đầu thiết lập chỉ số bằng 1, và cả hai tăng lên là 2 cho gói tin thứ hai của chúng.
-Authentication information : Xác thực (đảm bảo toàn vẹn ) thông tin , là một keyed hash dựa trên hầu như tất cả các bytes trong gói tin.
e. AH version 3
Một chuẩn mới của AH là Version 3, phiên bản được phát triển dựa trên phiên bản phác thảo. Tính năng khác nhau giữa Version 2 và Version 3 là mối quan hệ thứ yếu để các quản trị viên IPSec và người dùng - một vài sự thay đổi đến SPI, và tuỳ chọn chỉ số dài hơn.
chuẩn phác thảo version 3 cũng chỉ đến một chuẩn phác thảo khác rằng liệt kê thuật toán mã hoá yêu cầu cho AH. Bản phác thảo uỷ nhiệm hỗ trợ cho HMAC-SHA1-96, giới thiệu thuật toán hỗ trợ mạnh hơn là AES-XCBC-MAC-96, và cũng giới thiệu thuật toán : HMAC-MD5-96.
f. AH Summary
-AH cung cấp dịch vụ đảm bảo toàn vẹn cho tất cả các header và data gói tin. Ngoại trừ một số trường IP Header mà định tuyến thay đổi trong chuyển tiếp.
-AH bao gồm địa chỉ nguồn và địa chỉ đích trong dịch vụ đảm bảo toàn vẹn. AH thường không tương thích với NAT.
-Hiện nay, hầu hết IPSec bổ sung hỗ trợ phiên bản thứ hai của IPSec mà ESP có thể cung cấp dịch các vụ đảm bảo toàn vẹn dữ liệu qua sự xác thực.
-AH cung cấp một lợi ích mà ESP không có, đó là : đảm bảo toàn vẹn cho outermost IP Header.
4. Encapsulaton Secutity Payload (ESP)
ESP là giao thức bảo mật chính thứ hai. Trong phiên bản đầu của IPSec , ESP chi cung cấp mã hoá cho packet payload data. Khi cần, giao thức AH cung cấp dịch vụ đảm bảo toàn vẹn. Trong phiên bản thứ hai của IPSec, ESP trở nên mềm dẻo hơn. Nó có thể thực hiện xác thực để cung cấp dịch vụ đảm bảo toàn vẹn, mặc dù không hỗ trợ cho outermost IP header. Sự mã hoá của ESP có thể bị vô hiệu hoá qua thuật toán mã hoá Null ESP algorithm. Do đó, ESP có thể cung cấp chỉ mã hoá; mã hoá và đảm bảo toàn vẹn dữ liệu; hoặc chỉ đảm bảo toàn vẹn dữ liệu.
a. ESP Mode
ESP có hai mode : Transport Mode và Tunnel Mode.
Trong Tunnel Mode : ESP tạo một IP Header mới cho mỗi gói tin. IP Header mới liệt kêt các đầu cuối của ESP Tunnel ( như hai IPSec gateway) nguồn và đích của gói tin. Vì Tunnel mode có thể dùng với tất cả 3 mô hình cấu trúc VPN.
Figure 3-8: ESP Tunnel Mode Packet
ESP Tunnel Mode được sử dụng thường xuyên nhanh hơn ESP Transport Mode.
Trong Tunnel Mode, ESP dùng IP header gốc thay vì tạo một IP header mới.
Trong Transport Mode, ESP có thể chỉ mã hoá và/hoặc bảo đảm tính toàn vẹn nội dung gói tin và một số các thành phần ESP, nhưng không có với IP header.
Giao thức AH, ESP trong Transport mode thường sử dụng trong cấu trúc host-to-host. Trong Transport mode không tương thích với NAT.
Figure 3-9: ESP Transport Mode Packet
b. ESP Packet Fields
Figure 3-10: ESP Packet Fields
ESP thêm một header và Trailer vào xung quanh nội dung của mỗi gói tin. ESP Header được cấu thành bởi hai trường : SPI và Sequence Number.
-SPI (32 bits) : mỗi đầu cuỗi của mỗi kêt nối IPSec được tuỳ chọn giá trị SPI. Phía nhận sử dụng giá trị SPI với địa chỉ IP đích và giao thức IPSec để xác định chính sách SA duy nhất mà nó được áp cho gói tin.
-Sequence Number : thưòng được dùng để cung cấp dịch vụ anti-replay. Khi SA được thiết lập, chỉ số này được khởi đầu về 0. Trước khi mỗi gói tin được gửi, chỉ số này luôn tăng lên 1 và được đặt trong ESP header. Để chắc chắn rằng sẽ không có gói tin nào được công nhận, thì chỉ số này không được phép ghi lên bằng 0. Ngay khi chỉ số 232-1 được sử dụng , một SA mới và khóa xác thực được thiết lập.
Phần kế tiếp của gói tin là Payload, nó được tạo bởi Payload data (được mã hoá) và IV không được mã hoá). Giá trị của IV trong suốt quá trình mã hoá là khác nhau trong mỗi gói tin.
phần thứ ba của gói tin là ESP Trailer, nó chứa ít nhất là hai trường.
-Padding ( 0-255 bytes) : được thêm vào cho đủ kích thước của mỗi gói tin.
-Pad length: chiều dài của Padding
-Next header : Trong Tunnel mode, Payload là gói tin IP, giá trị Next Header được cài đặt là 4 cho IP-in-IP. Trong Transport mode, Payload luôn là giao thức lớp 4. Nếu giao thức lớp 4 là TCP thì trường giao thức trong IP là 6, giao thức lớp 4 là UDP thì trường giao thức IP là 17. Mỗi ESP Trailer chứa một giá trị Next Header.
-Authentication data : trường này chứa giá trị Integrity Check Value (ICV) cho gói tin ESP. ICV được tính lên toàn bộ gói tin ESP công nhận cho trường dữ liệu xác thực của nó. ICV bắt đầu trên ranh giới 4-byte và phải là bội số của 32-bit (đơn vị từ).
C. Quá trình mã hoá và hoạt động của giao thức ESP
ESP sử dụng mật mã đối xứng để cung cấp sự mật hoá dữ liệu cho các gói tin IPSec. Cho nên, để kết nối của cả hai đầu cuối đều được bảo vệ bởi mã hoá ESP thì hai bên phải sử dụng key giống nhau mới mã hoá và giải mã được gói tin .
Khi một đầu cuối mã hoá dữ liệu, nó sẽ chia dữ liệu thành các block nhỏ, và sau đó thực hiện thao tác mã hoá nhiều lần sử dụng các block dữ liệu và key. Thuật toán mã hoá hoạt động trong chiều này được xem như blocks cipher algorithms.
Khi một đầu cuối khác nhận được dữ liệu mã hoá, nó thực hiện giải mã sử dụng key giống nhau và quá trình thực hiện tương tự, nhưng trong bước này ngược với thao tác mã hoá.
Ví dụ : ESP sử dụng thuật toán mã hoá là AES-Cipher Block Chaining (AES-CBC), AES Counter Mode (AES-CTR), và Triple DES ( 3DES).
Khi so sánh với gói tin AH , gói tin ESP có dạng giống với gói tin AH. chuỗi mẫu tự có thể xác định được trong AH-protected Payload nhưng không xác định được trong ESP-protected payload, vì trong ESP nó đã được mã hoá.
Gói tin ESP có chứa 5 đoạn : Ethernet Header , IP Header, ESP Header, Encrypted Data (Payload và ESP Trailer), và (option) authentication information . Dữ liệu được mã hoá không thể xác định được dù gói tin truyền trong Transport Mode hay Tunnel Mode. Tuy nhiên, vì IP Header không được mã hoá, trường giao thức IP trong Header vẫn phát hiện được giao thức dùng cho Payload ( trong trường hợp này là ESP).
Hình trên cho thấy, các trường ESP Header từ 4 gói tin đầu trong ESP session giữa host A và host B . Các trường SPI và Sequence Number trong ESP làm việc một chiều như chúng đã thực hiện trong AH . Mỗi host sử dụng một giá trị SPI khác nhau cho các gói tin của nó, tương thích với kết nối ESP gồm hai thành phần kết nối một chiều.
Cả hai host cũng bắt đầu thiết lập sequence number là 1, và sẽ tăng dần lên là 2 cho gói tin thứ hai.
d. ESP Version 3
Một chuẩn mới cho ESP là phiên bản 3, một phiên bản vừa được bổ sung, được dựa trên chuẩn phác thảo. Tìm ra được chức năng chính để cho thấy sự khác nhau giữa version 2 và version 3 , bao gồm những điều sau :
-Chuẩn ESP version 2 đòi hỏi ESP bổ sung để hỗ trợ ESP chỉ sử dụng cho mã hoá (không có tính năng bảo vệ toàn vẹn dữ liệu). Do đó, chuẩn ESP version 3 được đưa ra nhằm hỗ trợ cho sự lựa chọn này.
-ESP có thể dùng chuỗi số dài hơn, giống với chuẩn AH version 3.
-ESP version 3 hỗ trợ trong việc sử dụng kết hợp các thuật toán ( EAS Counter với CBC-MAC [EAS-CMC]. Như vậy kết quả mã hoá và tính bảo vệ toàn vẹn dữ liệu đạt được sẽ nhanh hơn là sử dụng tách rời thuật toán.
e. ESP Summary
-Trong Tunnel Mode, ESP cung cấp sự mã hoá và sự đảm bảo an toàn cho đóng gói IP Packet, cũng xác thực tốt giống như của ESP Header , ESP có thể tương thích với NAT.
-Trong Transport Mode, ESP cung cấp sự mã hoá và đảm bảo an toàn cho Payload của gói tin IP , cũng đảm bảo an toàn tốt giống như của ESP Header. Transport Mode thì không tương thích với NAT.
-ESP Tunnel Mode thường sử dụng phổ biến trong IPSec , vì nó mã hoá IP Header gốc, nó có thể giấu địa chỉ source và des thật của gói tin. ESP cũng có thể thêm vật đệm vào để đủ gói tin.
-ESP thường được dùng để cung cấp cho mã hoá hoặc đảm bảo an toàn ( hoặc cả hai ).
5. Các mode chính của giao thức IPSec:
a. Transport Mode :
-Transport mode bảo vệ giao thức tầng trên và các ứng dụng. Trong transport mode, phần IPSec header được chèn vào giữa phần IP header và phần header của giao thức tầng trên.
-vì vậy, chỉ có tải (IP payload) là được mã hóa và IP header ban đầu là được giữ nguyên vẹn. Transport mode có thể được dùng khi cả hai host hỗ trợ IPSec.
Figure 3-13: IPSec Transport-mode – a generic representation
Transport mode được dùng để bảo mật kết nối giữa hai host:hoạt động của ESP trong Transport mode được sử dụng để bảo vệ thông tin giữa hai host cố định. Bảo vệ các giao thức lớp trên của IP datagram.
Figure 3-14: Transport Mode Tunnel
Figure 3-15: Transport Mode Packet
a.Tunnel mode :
Figure 3-16: A Tunne Mode – AH Tunnel
Figure 3-17 : An ESP Tunnel – Mode VPN
-không giống như transport mode, Tunnel mode bảo vệ toàn bộ gói dữ liệu. Toàn bộ gói dữ liệu IP được đóng gói trong một gói dữ liệu IP khác. Và một IPSec header được chèn vào giữa phần đầu nguyên bản và phần đầu mới của IP .
Figure 3-18: IPSec Tunnel Mode – a generic representation
-với tunnel hoạt động giữa hai security gateway, địa chỉ nguồn và đích có thể được mã hóa.
Ví dụ : Luồng gói tin được gởi từ host A2 đến host B3:
Figure 3-19: Packet Flow from Host A2 to Host B3
-Khi datagram đến GWA, gateway kiểm tra SPD của nó và thông báo nó chỉ rõ chính sách để bất kỳ datagram từ mạng 10.0.1.0/24 đến mạng 10.0.2.0/24 nên được đóng gói với mode-tunnel ESP và gửi đến GWB tại 2.2.2.2. Sau khi GWA đóng gói IP datagram, IP header bên ngoài có địa chỉ nguồn 1.1.1.1 (GWA) và địa chỉ đích 2.2.2.2 (GWB). trường giao thức của IP header bên ngoài là 50 (để chỉ rõ giao thức ESP được dùng). Trường giao thức của gói tin ESP là 4 (để chỉ ra gói tin ESP đang đóng gói IP datagram). Và IP header bên trong không thay đổi.
-Khi đóng gói IP datagram đến tại GWB, gateway thấy rằng nó chứa gói tin ESP và xác thực lại và key mã hoá từ SA thích hợp, thực hiện kiểm tra xác thực và giải mã ESP Payload. IP header bên ngoài, ESP header và Trailer, và ICV đã được tách ra khỏi, và IP datagram bên trong được forward đến đích của nó (10.0.2.3).
Bảng so sánh giữa giao thức AH và ESP
Comment