Cấu trúc gói tin ESP

Một phần của tài liệu xây dựng thiết bị bảo mật vpn dựa trên giao thức ipsec (Trang 52 - 54)

b)

3.2.1.7 Cấu trúc gói tin ESP

Không giống như AH, ESP đóng gói tất cả hoặc một phần dữ liệu gốc. Do khả năng bảo mật dữ liệu nên xu hướng ESP được sử dụng rộng rãi hơn AH. ESP header được đặt trước header lớp Transport (TCP hoặc UDP) hoặc trước IP payload của các loại giao thức IP khác, cụ thể như sau:

Hình 3-19: Xử lý đóng gói ESP

Hình 3-20: Khuôn dạng gói ESP

Các trường trong ESP header có thể thay đổi phụ thuộc vào yêu cầu người sử dụng (có hay không việc xác thực gói tin). Việc lựa chọn một trường tùy chọn được định nghĩa trong quá trình thiết lập kết hợp an ninh SA thông qua yêu cầu người sử dụng được thể hiện qua bảng SPD. Cụ thể thông tin các trường trong ESP header như sau:

 SPI (chỉ dẫn thông số an ninh): Là một số bất kỳ 32 bit, cùng với địa chỉ IP đích và giao thức an ninh ESP cho phép nhận dạng duy nhất SA cho gói dữ liệu này. Các giá trị SPI từ 0÷255 được dành riêng để sử dụng trong tương lai. SPI thường được chọn lửa bởi phía thu khi thiết lập SA. SPI là trường bắt buộc.

 Sequence Number (số thứ tự): Tương tự như trường số thứ tự của AH. Trường này luôn hiện diện trong gói tin ESP bất kể tính năng xác thực gói tin có được sử dụng hay không.

 Payload Data (trường dữ liệu tải tin): Trường này bao gồm một số lượng biến đổi các byte dữ liệu gốc hoặc một phần dữ liệu yêu cầu bảo mật đã được mô tả trong trường Next Header. Trường này được mã hóa cùng với thuật toán mã hóa đã chọn lựa trong suốt quá trình thiết lập SA. Nếu thuật toán được sử dụng mã hóa yêu cầu dữ liệu đồng bộ mật mã (ví dụ Vector khởi tạo (Initialization Vector-IV)), dữ liệu này sẽ được gắn thêm vào đầu payload sau khi quá trình mã hóa gói tin kết thúc. Thuật toán được dùng để mã hóa ESP thường là thuật toán DES-CBC. Đôi khi các thuật toán khác cũng được hỗ trợ như 3DES hay CDMF trong trường hợp nhà cung cấp dịch vụ IBM.

 Padding (0÷255 bytes): Có hai nguyên nhân chính dẫn đến sự có mặt của trường này:

- Nếu thuật toán mật mã được sử dụng yêu cầu bản rõ (plaintext) phải là số nguyên lần khối các byte (ví dụ trường hợp mã khối) thì Padding được sử dụng để điền đầy vào plaintext (bao gồm Payload Data, Pad Length, Next Header và Padding) có kích thước theo yêu cầu.

- Padding cũng cần thiết để đảm bảo phần dữ liệu mật mã (ciphertext) sẽ kết thúc ở biên giới 4 byte để phân biết rõ ràng với trường Authentication Data.

Ngoài ra, Padding còn có thể sử dụng để che dấu độ dài thực của Payload, tuy nhiên mục đích này cần phải được cân nhắc vì nó ảnh hưởng tới băng

tần truyền dẫn. Padding byte được khởi tạo với một chuỗi các giá trị tự nhiên, bắt đầu từ 1 và tăng một cách tuần tự đến khi đạt chiều dài cần thiết cho việc mã hóa gói tin.

 Pad length (độ dài trường đệm): Trường này xác định số byte Padding được thêm vào. Các giá trị phù hợp là 0÷255 bytes, Pad length là trường bắt buộc.

 Next Header (tiêu đề tiếp theo): Trường này dài 8 bit, xác định kiểu dữ liệu chứa trong Payload Data, ví dụ một extension header trong IPv6, hoặc nhận dạng của một giao thức lớp trên khác. Giá trị của trường này được lựa chọn từ tập các giá trị IP Protocol Number định nghĩa bởi IANA. Next Header là trường bắt buộc.

 Authentication Data (dữ liệu xác thực): Trường có độ dài biến đổi chứa một giá trị kiểm tra tính toàn vẹn ICV tính trên dữ liệu của toàn bộ gói ESP trừ trường Authentication Data. Độ dài của trường này phụ thuộc vào thuật toán xác thực được sử dụng. Trường này là tùy chọn, và chỉ được thêm vào nếu dịch vụ xác thực được lựa chọn cho SA đang xét. Thuật toán xác thực phải chỉ ra độ dài ICV và các bước xử lý cũng như các luật so sánh cần thực hiện để kiểm tra tính toàn vẹn của gói tin.

Một phần của tài liệu xây dựng thiết bị bảo mật vpn dựa trên giao thức ipsec (Trang 52 - 54)