- Cung cấp tính toàn vẹn dữ liệu và bảo vệ chống phát lại - Sử dụng mã xác thực thông điệp được bămHMAC, dựa trên chia sẻ bí mật - Nội dung các gói tin không được mã hoá - Không sử dụng
Trang 1- Cung cấp tính toàn vẹn dữ liệu và bảo vệ chống phát lại
- Sử dụng mã xác thực thông điệp được băm(HMAC), dựa trên chia sẻ bí mật
- Nội dung các gói tin không được mã hoá
- Không sử dụng các trường changeable IP header để tính toán giá trị kiểm tra tính toàn vẹn(IVC)
1 Khuôn dạng gói tin
Khuông dạng của gói tin theo giao thức AH được minh hoạ như trong hình 3.4 Các trường trong AH header đều là bắt buộc
- Next Header: Trường này nhận biết giao thức bảo mật, có độ dài 8 bít để
xác định kiểu dữ liệu của phần Payload phía sau AH Giá trị của trường này được chọn từ các giá trị của IP Protocol number được định nghĩa bởi IANA (Internet Assigned Numbers Authority)
- Payload Length: Trường này chỉ định độ dài của thông điệp gắn sau tiêu đề
AH
- Reserved: Trường 16 bit dự trữ để sử dụng cho tương lai, giá trị của trường
này bằng 0
- SPI: Là một số 32 bit bất kì, cùng với địa chỉ IP đích và giao thức an ninh
mạng cho phép nhận dạng một thiết lập an toàn duy nhất cho gói dữ liệu SPI thường được lựa chọn bởi phía thu
Authentication Data (Integrity Check Value)
Next Header PayloadLength Reserved
Security Parameter Index(SPI) Sequence Number
IP Header AH Header Payload
Trang 2- Sequence Number(SN): Trường gồm 32 bit không dấu đếm tăng dần để sử
dụng cho việc chống trùng lặp Chống trùng lặp là một lựa chọn nhưng trường này
là bắt buộc đối với phía phát Bộ đếm của phía phát và thu khởi tạo 0 khi một liên kết an toàn (SA) được thiết lập, giá trị SN mỗi gói trong một SA phải hoàn toàn khác nhau để tránh trùng lặp Nếu số gói vượt quá con số 232 thì một SA khác phải được thiết lập
- Authentication Data: Trường có độ dài biến đổi chứa một giá trị kiểm tra
tính toàn vẹn (ICV) cho gói tin, ICV được tính bằng thuật toán đã được chọn khi thiết lập SA Độ dài của trường này là số nguyên lần của 32 bit, chứa một phần dữ liệu đệm để đảm bảo độ dài của AH là n*32 bit Giao thức AH sử dụng một hàm băm và băm toàn bộ gói tin trừ trường Authentication Data để tính ICV
2 Chế độ hoạt động
AH có thể sử dụng ở hai chế độ: Chế độ truyền tải (Transport) và chế độ đường hầm(Tunnel)
- Chế độ Transport: Chế độ Transport cho phép bảo vệ các giao thức lớp
trên cùng với một số trường trong IP Header Trong chế độ này, AH được chèn vào sau IP Header và trước một giao thức lớp trên như TCP hoặc UDP Chế độ Transport thường được sử dụng bởi các Host chứ không được sử dụng bởi Gateway Ưu điểm của chế độ này là đỡ tốn kém chi phí xử lý nhưng nó có khuyết điểm là các trường có thể thay đổi không được xác thực
Hình 3.5 Gói tin IP trước và sau khi xử lý AH trong chế độ Transport
- Chế độ Tunnel: Trong chế độ Tunnel, một gói tin IP khác được thiết lập
dựa trên các gói tin IP cũ Header của gói IP cũ (bên trong) mang địa chỉ nguồn và
IP Hdr Payload
Hdr Gói tin IP ban đầu
Gói tin với tiêu đề AH trong chế độ transport
Trang 3đích cuối cùng, còn Header của gói IP mới (bên ngoài) mang địa chỉ để định tuyến trên Internet Trong chế độ này, AH bảo vệ toàn bộ gói tin bên trong bao gồm cả Header Đối với gói tin IP bên ngoài thì vị trí của AH như là trong chế độ transport
Hình 3.6: Khuôn dạng gói tin AH trong chế độ Tunnel
Ưu điểm của chế độ Tunnel là bảo vệ toàn bộ gói IP và các địa chỉ cá nhân trong IP Header, tuy nhiên có nhược điểm là tốn chi phí hơn nhiều để xử lý các gói tin
3 Các thuật toán xác thực
Các thuật toán xác thực để tính ICV được xác định bởi các liên kết bảo mật (SA) Các thuật toán xác thực thích hợp là các thuật toán hàm băm một chiều MD5
và SHA1 (Các thuật toán này bắt buộc một ứng dụng AH phải hỗ trợ) MD5 là chữ viết tắt của Message Digest #5 do Ron Rivest thuộc RSA Security Inc phát minh, tính giá trị Hash 128 bit từ một bản tin nhị phân có độ dài tuỳ ý SHA được phát triển bởi NIST và NSA, SHA-1 tính giá trị Hash 160 bit từ một bản tin nhị phân có
độ dài tuỳ ý SHA-1 tương tự như MD5 nhưng an toàn hơn do kích thước băm lớn hơn
4 Xử lý gói đầu vào
Quá trình xử lý gói đầu vào được thực hiện ngược với quá trình xử lý gói đầu
ra
- Ghép mảnh: Nếu cần thiết, sẽ tiến hành ghép mảnh trước khi xử lý AH
IP Hdr Payload
OuterIP Hdr
AH
Inner IP Hdr Gói tin IP ban đầu
Gói tin AH trong chế độ Tunnel
Trang 4- Tìm kiếm SA: Khi đã nhận được một gói tin chứa AH Header, phía thu sẽ
xác định một SA phù hợp với địa chỉ IP đích, AH và SPI Thông tin trong SA sẽ cho biết có cần kiểm tra trường Sequence Number(SN) hay không, có cần thêm trường Authentication Data hay không, các thuật toán và khoá để giải mã ICV Nếu không có SA nào phù hợp thì phía thu sẽ loại bỏ gói tin
- Kiểm tra SN: Nếu bên thu không chọn dịch vụ chống lặp thì không cần
kiểm tra trường SN Nếu phía thu có sử dụng dịch vụ chống lặp cho một SA thì bộ đếm gói thu phải được khởi tạo = 0 khi thiết lập SA Với mỗi gói tin vào khi phía thu tiếp nhận, sẽ kiểm tra có chứa số SN không lặp lại của bất kỳ gói nào trong thời gian tồn tại của SA đó Nếu bị lặp, gói tin đó sẽ bị loại bỏ
5 Xử lý gói đầu ra
- Tìm SA: AH được thực hiện trên một gói tin khi đã xác định gói tin đó được
liên kết với một SA, SA đó sẽ yêu cầu xử lý gói tin
- Tạo SN: Bộ đếm phía phát khởi tạo giá trị 0 khi một SA được thiết lập Khi
truyền một gói tin, bộ đếm sẽ tăng lên 1 và chèn giá trị này vào trường SN Nếu phía phát lựa chọn dịch vụ AntiReplay sẽ kiểm tra để đảm bảo không bị lặp trước khi chèn một giá trị mới vào trường SN
- Tính ICV: AH ICV được tính dựa trên các dữ liệu sau:
+ Các trường trong IP Header có giá trị không đổi hoặc có giá trị không dự đoán được trong quá trình truyền tới điểm cuối
+ Bản thân AH Header: Next Header, Payload, Length, Reserved, SPI, SN, Authentication Data (được đặt bằng 0), và explicit padding (nếu có)
+ Dữ liệu của các giao thức lớp trên
+ Các trường có giá trị thay đổi sẽ được coi bằng 0 trong phép tính ICV các trường có giá trị thay đổi nhưng có thể dự đoán được thì sẽ giữ nguyên giá trị
- Padding: Có hai loại chèn padding là Authenticaiton Data và Implicit
Packet Padding (chèn dữ liệu ngầm định)
Trang 5+ Authenticaiton Data Padding: Nếu đầu ra của thuật toán xác thực là 96 bit thì không cần chèn thêm dữ liệu Nhưng nếu ICV có kích thước khác thì phải chèn thêm, nội dung của phần chèn thêm là tuỳ chọn và được đặt sau Authentication Data
+ Implicit Packet Padding: Đối với một số thuật toán xác thực, chuỗi byte để tính ICV phải là một số nguyên lần của khối n byte Nếu độ dài gói IP không thoả mãn điều kiện đó thì Implicit Packet Padding sẽ được thêm vào phía cuối của gói Các byte này bằng 0 và không được truyền đi cùng gói
- Phân mảnh: Khi cần thiết, phân mảnh sẽ được thực hiện
3.1.3.1 Giao thức đóng gói tải bảo mật(ESP)
Mục đích chính của ESP là cung cấp sự tin cậy thêm vào xác thực người gửi
và xác minh tính toàn vẹn của dữ liệu trong khi truyền ESP mã hoá nội dung của gói dữ liệu bằng cách dùng các thuật toán mã hoá, như đã xác định bởi SA Một số thuật toán được sử dụng bởi ESP bao gồm: DES-CBG, NULL, CAST-128, IDEA
và 3DES Các thuật toán xác thực thường được dùng tương tự như trong AH là HMAC-MD5 và HMAC-SHA
Như đã so sánh với AH, AH mang lại tính xác thực và toàn vẹn dữ liệu đối với gói dữ liệu IP ESP không bảo vệ toàn bộ gói dữ liệu Chỉ có payload được bảo
vệ, như trong hình 3.7 Tuy nhiên, ESP rất mạnh trong nhóm mã hoá Nó cũng không chiếm dụng nhiều CPU Kết quả là nó nhanh hơn AH Nhưng 24 byte mà nó thêm vào gói dữ liệu có thể làm chậm xuống việc phân đoạn và tính toán thông lượng
IP H e a d e r E S P H e a d e r P a y L o a d E S P T ra ile r E S P A u th e n tic a tio n
Hình 3.7 Gói IP sau khi tiêu đề ESP và Trailer ESP được thêm vào
1 Khuông dạng gói dữ liệu dựa trên ESP
Khuôn dạng của gói ESP phức tạp hơn so với khuôn dạng của AH, nó không chỉ gồm ESP header mà còn ESP trailer và ESP Authentication data Dữ liệu tải(Payload) được định vị giữa header và trailer