Hình 3.8 Khuôn dạng ESP Các trường trong ESP đều là bắt buộc: - SPI: Là một số 32 bit bất kỳ, 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ừ 1 đến 255 được dành riêng để sử dụng trong tương lai. Giá trị SPI = 0 để chỉ ra chưa có SA nào tồn tại. - SN: Giống như AH, trường SN chứa một giá trị đếm tăng dần để chống lặp lại. Mỗi SA được lựa chọn thì giá trị của trường này bắt đầu là 0. - Payload Data: Trường có độ dài biến đổi chứa dữ liệu mô tả trong Next Header. Payload Data là trường bắt buộc, được mã hoá bởi các thuật toán mã hoá, các thuật toán mã hoá này được lựa chọn ngay khi thiết lập SA. Trường này có độ dài bằng một số nguyên lần 1 byte. - Padding: Trường này được thêm vào để đoạn được mã hoá là một số nguyên lần của một khối các byte. Ngoài ra trường còn dùng để che dấu độ dài thực của Payload. - Pad Length: Trường này xác định số byte padding đã thêm vào (0 đến 225) - Next Header: Là trường 8 bit bắt buộc, nó chỉ ra kiểu dữ liệu trong Payload Data. Ví dụ một giao thức bậc cao hơn như TCP. Giá trị của trường được chọn trong chuẩn IP Protocol Number được đưa ra bởi IANA. - Authentication Data: Trường có độ dài biến đổi chứa giá trị ICV được tính cho gói ESP từ SPI đến Next Header. Authentication là trường không bắt buộc, được thêm vào nếu dịch vụ Authentication được lựa chọn cho SA đang xét. Các IP Hdr Payload ESP Hdr ESP Trl ESP Auth SecurityParameters Index (SPI) Sequence Number Padding Pad Next 32 32 0-255 8 8 Bits thuật toán để tính ICV là các thuật toán hàm băm một chiều MD5 hoặc SHA giống với AH. 2. Chế độ hoạt động Hình 3.8 Gói ESP trong chế độ Transport ESP cũng được sử dụng ở hai chế độ: Transport và Tunnel - Chế độ Transport: Chế độ Transport cho phép bảo vệ các giao thức lớp trên nhưng không bảo vệ IP Header. Các gói tin IP cũ được cắt phần tiêu đề ra, sau đó tiêu đề ESP được đưa vào giữa. ESP trailer sẽ được đưa vào cuối gói tin, cuối cùng là Authentication Data được đưa thêm vào. Chế độ Transport không mã hoá cũng không xác thực IP Header, tuy nhiên nó có chi phí xử lý thấp, chỉ được dùng cho các Host. Hình 3.9 Gói ESP trong chế độ Tunnel IP Hdr Payload Gói tin IP ban đầu New IP Hdr IP Hdr Payload New IP IP Hdr Payload Hdr ESP Hdr ESP Trl ESP Auth Mã hoá Định danh Gói tin được tạo đường hầm IP Hdr P ayload ESP Hdr ESP Trl ESP Auth Mã hoá Định danh Gói tin IP ban đầu IP Hdr Payload Gói ESP trong chế độ transport - Chế độ Tunnel: Trong chế độ này, gói IP mới được xây dựng cùng với một IP Header mới. Các IP Header bên trong mang địa chỉ nguồn và đích cuối cùng, còn IP Header bên ngoài mang địa chỉ định tuyến qua Internet. Ở chế độ này, ESP sẽ bảo vệ cả gói tin IP ban đầu bao gồm: Payload và IP header. Đối với gói IP bên ngoài thì vị trí của ESP giống như trong chế độ Transport. 3. Các thuật toán sử dụng trong ESP Các thuật toán bắt buộc bao gồm: - Các thuật toán mật mã: DES ở chế độ CBC, AES, NULL. Thuật toán mã hoá được xác định bởi SA. ESP làm việc với các thuật toán mã hoá đối xứng. Với sự có mặt của trường Padding, các thuật toán mã hoá có thể có đặc tính khối hoặc luồng. - Các thuật toán xác thực: Mã xác thực bản tin MAC sử dụng MD5, mã xác thực bản tin MAC sử dụng SHA, NULL (Không sử dụng mã xác thực) 4. Xử lý gói tin đầu ra Quá trình xử lý gói đầu ra bao gồm các bước sau: - Tìm kiếm SA: Giống như AH, ESP được thực hiện trên một gói tin chỉ khi nào bộ điều khiển IPSec đã xác định gói tin đó được liên kết với một SA. - Mã hoá gói tin: Tuỳ thuộc vào chế độ Tunnel hay Transport mà ESP thực hiện đóng gói toàn bộ gói tin hay chỉ đóng gói phần Payload. Thêm Padding nếu cần thiết, mã hoá các trường Payload Data, Padding, PadLength, Next Header theo các thuật toán đã được chỉ ra bởi SA. Nếu dịch vụ xác thực được lựa chọn thì việc mã hoá được thực hiện trước, quá trình mã hoá không bao gồm trường Authentication Data. Và quá trình xác thực được thực hiện sau. Thứ tự xử lý này cho phép nhanh chóng xác định và loại bỏ các gói lỗi hoặc lặp lại mà không cần phải giải mã gói tin, đồng thời cho phép phía thu xử lý song song cả hai việc: giải mã và xác thực. - Tạo SN: Quá trình này được thực hiện giống với AH. - Tính ICV: Nếu dịch vụ xác thực được lựa chọn thì phía phát sẽ tính các giá trị ICV trên gói dữ liệu ESP gồm các trường sau: SPI, SequenceNumber, Payload Data, Padding, PadLength và Next Header. Trong đó 4 trường cuối ở dạng đã mã hoá. ICV được tính dựa vào các thuật toán xác thực dùng hàm băm một chiều như MD5 và SHA-1. - Phân mảnh: Nếu cần thiết thì phân mảnh sẽ được thực hiện sau khi đã xử lý ESP. 5. Xử lý gói tin đầu vào Quá trình xử lý gói đầu vào gồm các bước ngược với quá trình xử lý gói tin đầu ra. - Ghép mảnh: Ghép mảnh được thực hiện trước khi xử lý ESP. Nếu một gói tin cần xử lý ESP ở dạng phân mảnh thì phía thu phải loại bỏ gói tin đó. - Tìm kiếm SA: Khi nhận được một gói tin chứa ESP Header, phía thu sẽ xác định một SA phù hợp dựa trên địa chỉ đích, giao thức bảo mật và SPI. Nếu không thể tìm thấy một SA nào phù hợp cho phiên truyền dẫn này thì phía thu sẽ loại bỏ gói tin. - Kiểm tra SN: Giống với kiểm tra SN trong AH. - Kiểm tra ICV: Nếu dịch vụ xác thực được lựa chọn phía thu sẽ tính ICV của gói ESP ngoại trừ trường Authentication Data rồi so sánh với ICV của gói tin nhận được. Nếu hai giá trị ICV này trùng nhau thì gói tin là hợp lệ, nếu không gói tin sẽ bị loại bỏ. Việc kiểm tra được tiến hành như sau: Trước tiên trường Authentication Data được tách ra khỏi ESP và lưu lại, sau đó kiểm tra độ dài gói ESP còn lại, nếu Padding đã được ngầm định thì các byte 0 được thêm vào sau trường Next Header sau đó sẽ tính ICV và so sánh với giá trị ICV được lưu trong trường Authentication Data. - Giải mã gói tin: Đầu tiên là giải mã ESP bao gồm các trường Payload Data, Padding, Padlength, NextHeader sử dụng khoá, thuật toán mật mã đã xác định bởi SA. Sau đó xử lý phần Padding theo đặc điểm của thuật toán, loại bỏ nó trước khi đưa lên các lớp trên. Cuối cùng là xây dựng lại gói tin IP ban đầu tuỳ thuộc vào chế độ Transport hay Tunnel. Nếu là Transport, xây dựng lại gói tin ban đầu từ IP Header và thông tin giao thức lớp trên trong Payload của ESP. Nếu là Tunnel, xây dựng lại gói tin ban đầu từ IP Header của gói bên ngoài và toàn bộ gói IP bên trong. 3.1.4. Các chế độ IPSec Các giao thức của IPSec có thể thực hiện các liên kết an toàn trong hai chế độ: Transport và Tunnel. Như được mô tả trong hình 3.10, cả AH và ESP đều có thể hoạt động cả trong hai chế độ Hình 3.10 Hai chế độ IPSec 3.1.4.1. Chế độ Transport Chế độ Transport bảo vệ các giao thức tầng trên và các ứng dụng. Trong chế độ này, tiêu đề IPSec được chèn vào giữa tiêu đề IP và tiêu đề của giao thức tầng trên như được minh họa trong hình 3.11 . Payload ESP Hdr ESP Trl ESP Auth SecurityParameters Index (SPI) Sequence Number Padding Pad Next 32 32 0-2 55 8 8 Bits thuật toán để tính ICV là các thuật toán hàm băm. định một SA phù hợp dựa trên địa chỉ đích, giao thức bảo mật và SPI. Nếu không thể tìm thấy một SA nào phù hợp cho phiên truyền dẫn này thì phía thu sẽ loại bỏ gói tin. - Kiểm tra SN: Giống. lần 1 byte. - Padding: Trường này được thêm vào để đoạn được mã hoá là một số nguyên lần của một khối các byte. Ngoài ra trường còn dùng để che dấu độ dài thực của Payload. - Pad Length: