2.2.3.1 Giao thức màođầu xác thực (AH)
Mào đầu xác thực IP (AH) thường dùng để cung cấp toàn vẹn phi kết nối, xác thực dữ liệu gốc cho các dữ liệu IP (ở đây chỉ đề cập tới vấn đề xác thực) và bảo vệ chống lặp. Bộ thu có thể chọn các dịch vụ không bắt buộc khi một SA được thiết lập. AH cung cấp xác thực cho nhiều mào đầu IP đến mức có thể, như là cho dữ liệu giao thức tầng cao hơn. Tuy nhiên, một vài trường mào đầu IP có thể thay đổi khi truyền và bộ phát không dự đoán giá trị của các trường khi bộ thu nhận gói tin. AH không bảo vệ
giá trị của các trường như vậy. Do đó việc bảo vệ mào đầu IP do AH cung cấp là theo từng phần.
AH có thể áp dụng riêng, hay kết hợp với dữ liệu an toàn đóng gói IP (ESP), hay lồng nhau bằng việc sử dụng chế độ đường hầm. Các dịch vụ an toàn có thể cung cấp giữa hai trạm, hai gateway an toàn, hoặc có thể giữa một trạm và một gateway an toàn. ESP có thể dùng để cung cấp các dịch vụ tương tự, và nó cũng cung cấp dịch vụ bảo mật (mã hoá). Điểm khác biệt chính giữa việc xác thực giữa AH và ESP là phạm vi thực hiện, ESP không bảo vệ các trường mào đầu IP, trừ khi các trường đó được đóng gói bằng ESP (trong chế độ đường hầm).
a) Định dạng mào đầu xác thực
Mào đầu giao thức đặt ngay trước mào đầu AH sẽ chứa giá trị 51 trong trường mào đầu kế tiếp.
Trường màođầu kế tiếp (Next Header)
Mào đầu kế tiếp là một trường 8 bit để xác định kiểu của dữ liệu tiếp sau mào đầu xác thực. Giá trị này được chọn từ tập các số giao thức IP được định nghĩa trong RFC “các số được đăng kí”.
Đây là một trường 8 bit chỉ ra độ dài của AH theo đơn vị từ 32 bit, trừ “2”. (Tất cả các mào đầu mở rộng IPv6, theo RFC 1883, mã hoá trường độ dài mào đầu mở rộng bằng cách trừ đi 1 từ 64 bít từ độ dài của mào đầu. AH là một mào đầu mở rộng IPv6. Tuy nhiên, khi độ dài được tính bằng đơn vị 32 bit, thì nó sẽ trừ đi 2 (từ 32 bit)). Trong trường hợp thêm giá trị xác thực 96 bit, độ dài trường này sẽ là 4. Thuật toán xác thực NULL có thể sử dụng với mục đích bắt lỗi. Trường này có giá trị “2” với IPv6, không tương ứng với trường dữ liệu xác thực.
Trường chưa dùng (Reserved)
Trường 16 bit chưa dùng để dành cho tương lai. Nó phải có giá trị “0”. (giá trị này vẫn được tính trong dữ liệu xác thực nhưng bị bỏ qua ở nơi nhận).
Trường chỉ số các tham biến an toàn (SPI)
SPI là một giá trị 32 bit, kết hợp với địa chỉ IP đích và giao thức an toàn (AH), xác định duy nhất SA cho dữ liệu này. Tập các giá trị SPI trong khoảng 1…255 được dành riêng theo tài liệu các số đăng kí Internet dung cho tương lai; IANA sẽ không đăng kí một giá trị dành riêng SPI, trừ khi một RFC chỉ rõ việc sử dụng nó. Nó thông thường được chọn bởi hệ thống đích dựa vào việc thiết lập SA.
Giá trị SPI bằng 0 được dành riêng. Ví dụ, việc quản lý khoá có thể sử dụng SPI 0 với ý nghĩa không có SA tồn tại trong giai đoạn việc thực hiện IPSec yêu cầu thực thể quản lý khoá thiết lập một SA mới, nhưng SA chưa được thiết lập.
Trường số tuần tự (Sequence Number)
Đây là trường 32 bit chứa giá trị đếm tăng từng bước. Nó bắt buộc và luôn có thậm chí cả khi, bộ thu không quyết định sử dụng dịch vụ chống lặp cho một SA.
Bộ đếm của bên phát và bộ đếm của bộ thu cùng được khởi tạo bằng 0 khi SA được thiết lập. Nếu sử dụng dịch vụ chống lặp (ngầm định), số tuần tự truyền đi không bao giờ được phép quay vòng. Do đó, bộ đếm của bên thu và phát phải được xoá (bằng việc thiết lập SA mới và do đó là khoá mới) trước khi số gói truyền trên SA đạt giá trị 2^32.
Trường dữ liệu xác thực (Authentication Data)
Đây là một trường có độ dài biến đổi, dùng chứa giá trị kiểm tra toàn vẹn cho gói tin. Trường phải có độ dài là bội số 32 bit. Trường này có thể bao có phần độn để đảm bảo độ dài của AH là bội số của 64 bit (IPv6).
b) Quá trình xử lý mào đầu xác thực Tìm màođầu xác thực
Giống như ESP, AH có thể thực hiện theo hai cách: chế độ truyền tải hoặc chế độ đường hầm. Chế độ đầu chỉ dùng với các thực thi trên trạm để bảo vệ cho các giao thức tầng cao hơn, bằng việc thêm vào các trường mào đầu IP được lựa chọn. Trong chế độ truyền tải, AH được chèn sau mào đầu IP và trước giao thức tầng cao hơn TCP, UDP… hay trước bất kì mào đầu IPSec được chèn vào. Với IPv6, AH được xem như là dữ liệu đầu cuối - đầu cuối, và do đó nó xuất hiện sau các mào đầu mở rộng hop-by-hop, định tuyến, và phân đoạn. Các mào đầu mở rộng tuỳ chọn đích có thể xuất hiện trước hoặc sau mào đầu AH tuỳ thuộc vào ngữ cảnh yêu cầu. Dưới đây là hình minh hoạ cho vị trí trong chế độ truyền tải với gói IPv6 thông thường:
* Nếu có, có thể trước hoặc sau AH, hoặc cả hai.
AH chế độ đường hầm có thể thực hiện tại trạm hoặc gateway an toàn. Khi một gateway an toàn thực hiện AH (để bảo vệ lưu lượng truyền), thì chế độ đường hầm được sử dụng. Trong chế độ đường hầm, mào đầu IP bên trong mang các địa chỉ nguồn đích cuối cùng, trong khi mào đầu IP bên ngoài có thể chứa các địa chỉ IP khác nhau, đó có thể là địa chỉ của các gateway an toàn an toàn. Trong chế độ đường hầm, AH bảo vệ toàn bộ gói tin IP bên trong, bao gồm cả mào đầu bên trong.
* Nếu có, có thể trước AH, sau AH, hoặc cả hai.
Các thuật toán xác thực
SA chỉ ra thuật toán xác thực dùng tính toán ICV. Với truyền thông điểm - điểm, các thuật toán xác thực phù hợp bao gồm các mã xác thực thông báo được khoá (MACs) trên cơ sở các thuật toán mã hoá đối xứng (như DES) hoặc trên các hàm băm một đường (MD5 hoặc SHA-1). Với truyền thông đa hướng, các thuật toán băm một đường tổ hợp thuật toán chữ kí bất đối xứng là phù hợp, mặc dù sự cân nhắc về hiệu suất và không gian hiện tại làm hạn chế các thuật toán này. Các thuật toán xác thực bắt buộc là:
- HMAC với MD5. - HMAC với SHA-1.
Ngoài ra, các thuật toán khác cũng có thể được hỗ trợ.
Xử lý gói đi ra
Trong chế độ truyền tải, bên phát chèn mào đầu AH sau mào đầu IP và trước mào đầu giao thức tầng trên. Trong chế độ đường hầm, mào đầu các mở rộng IP trong và ngoài có thể liên kết với nhau theo nhiều cách. Việc xây dựng mào đầu các mở rộng IP trong và ngoài trong quá trình đóng gói đã được nếu trong tài liệu kiến trúc an toàn. Nếu sử dụng nhiều hơn một mào đầu mở rộng IP, trình tự áp dụng của các mào đầu an toàn phải được định nghĩa bởi chính sách an toàn. Với quá trình xử lý đơn giản, mỗi mào đầu IP nên bỏ qua sự tồn tại của mào đầu IPSec được áp dụng sau đó.
AH được áp dụng cho gói tin đi ra chỉ sau một thực thi IPSec quyết định rằng gói tin được kết hợp với một SA gọi quá trình xử lý AH. Tiến trình quyết định việc xử lý IPSec nào áp dụng cho lưu lượng đi ra đã được mô tả trong tài liệu kiến trúc an toàn.
Sinh số tuần tự
Bộ đếm của bên phát được khởi tạo bằng 0 khi thiết lập SA. Bộ phát tăng số tuần tự cho SA này và đưa giá trị mới vào trường số tuần tự. Nếu dịch vụ chống lặp được dùng (ngầm định), bộ phát sẽ kiểm tra để đảm bảo rằng bộ đếm không bị quay vòng trước khi giá trị mới được chèn vào trường số tuần tự. Bộ phát không phải gửi một gói trên SA nếu việc đó là nguyên nhân làm số tuần tự quay vòng. Cố gắng gửi một gói tin làm tràn số tuần tự là một sự kiện bị theo dõi.
Bộ phát giả sử rằng dịch vụ được dùng là ngầm định, trừ khi có thông báo khác từ bộ thu. Do đó, nếu bộ đếm bị xoay vòng, bộ phát sẽ thiết lập một SA mới và khóa (trừ trường hợp, SA được cấu hình với quản lý khoá nhân công). Nếu dịch vụ chống lặp bị cấm, bộ phát không cần giám sát hoặc xoá bộ đếm, như trong trường hợp quản lý khoá nhân công. Tuy nhiên, bộ phát vẫn tăng bộ đếm và khi đạt đến giá trị cực đại, bộ đếm sẽ quay lại giá trị 0.
Việc tính toán giá trị kiểm tra toàn
ICV AH được tính toán thông qua:
Các trường mào đầu IP không thay đổi trong quá trình truyền hoặc dự đoán trước được giá trị dựa vào điểm đến của AH SA. Mào đầu AH (mào đầu kế tiếp, độ dài dữ liệu, phần dành riêng, SPI, số tuần tự và dữ liệu xác thực (nó được đặt bằng 0 với tính toán này) và các byte độn rõ ràng nếu có. Dữ liệu giao thức mức trên, mà nó được giả sử là không thay đổi trong quá trình truyền.
Phân mảnh dữ liệu
Nếu cần thiết, việc phân mảnh IP xảy ra sau khi xử lý AH trong khi thực hiện IPSec. Do đó, AH chế độ truyền tải được áp dụng chỉ cho cả dữ liệu IP (chứ không phải các mảnh). Một gói IP áp dụng AH được áp dụng có thể bị phân mảnh bởi các router trên đường đi, và các phân mảnh này phải được tập hợp lại trước quá trình xử lý AH tại bộ thu. Trong chế độ đường hầm, AH được áp dụng cho cả gói IP, mà dữ liệu của nó có thể là một gói IP bị phân mảnh.
Nếu có nhiều hơn một mào đầu mở rộng IP , quá trình xử lý cho mỗi mào đầu sẽ bỏ qua các mào đầu IPSec áp dụng tiếp theo mào đầu đang được xử lý.
Tập hợp
Nếu cần thiết, việc tập hợp được thực hiện trước khi xử lý AH. Nếu một gói xử lý AH là phân đoạn IP, trường Offset là khác 0 hoặc cờ nhiều phân đoạn được đặt, bộ thu phải bỏ qua gói tin; đây là sự kiện theo dõi. bản ghi theo dõi cho sự kiện nên bao gồm giá trị SPI, ngày giờ, địa chỉ nguồn, địa chỉ đích và ID luồng (trong IPv6).
Tìm SA
Khi nhận gói tin chứa mào đầu xác thực IP, bộ thu sẽ quyết định SA tương ứng dựa trên cơ sở địa chỉ IP đích, giao thức an toàn (AH), và SPI. (Quá trình xử lý này được mô tả rõ hơn trong tài liệu kiến trúc an toàn). SA này chỉ ra trường số tuần tự sẽ được kiểm tra, chỉ ra thuật toán thực hiện tính ICV, và chỉ ra khoá yêu cầu để đảm bảo ICV. Nếu không tồn tại SA phù hợp cho phiên làm việc này (hoặc bộ thu không có khoá), bộ thu phải loại bỏ gói tin; đây là một sự kiện theo dõi. Bản ghi theo dõi nên bao gồm các thông tin SPI, ngày giờ, địa chỉ nguồn, địa chỉ đích và ID luồng (IPv6).
Xác minh số tuần tự
Tất cả mọi thực thi AH phải hỗ trợ dịch vụ chống lặp, mặc dù bộ thu có thể cho phép dùng hoặc cấm với mỗi SA. Nếu bộ thu không cho phép dịch vụ chống lặp cho SA, thì không có kiểm tra đi vào được thực hiện với số tuần tự. Tuy nhiên, từ mỗi bộ phát từ xa luôn ngầm định là dịch vụ chống lặp được sử dụng tại bộ thu. Để tránh việc bộ phát giám sát số tuần tự và thiết lập SA không cần thiết, bộ thu nên thông báo cho bộ phát trong quá trình thiết lập SA, nếu như bộ thu không sử dụng dịch vụ bảo vệ chống lặp. Nếu bộ thu sử dụng dịch vụ chống lặp với SA này, bộ đếm gói nhận của SA phải được khởi tạo bằng 0 khi SA được thiết lập. Khi nhận một gói tin, bộ thu phải xác minh rằng gói tin chứa số tuần tự không bị lặp với bất kì gói tin khác trong quá trình tồn tại của SA. Sau khi gói tin đã phù hợp SA, việc kiểm tra AH được thực hiện trước để tăng tốc độ loại bỏ gói tin lặp. Các gói lặp bị từ chối qua việc sử dụng cửa sổ nhận trượt. Kích thước cửa sổ tối thiểu 32 phải được hỗ trợ; nhưng của sổ kích cỡ 64 được ưa dung và nên sử dụng như giá trị ngầm định. Bộ thu có thể lựa chọn các kích thước cửa sổ khác lớn hơn giá trị tối thiểu.
Phía bên phải cửa sổ biểu diễn giá trị số tuần tự cao nhất đúng mà bộ thu nhận được trên SA. Các gói tin chứa số tuần tự thấp hơn ở biên trái của cửa sổ bị từ chối. Các gói trong cửa sổ được kiểm tra với các gói trong danh sách nhận được nằm trong cửa sổ.
Nếu gói tin nhận nằm trong cửa sổ và là mới, hoặc nếu gói tin ở bên phải của cửa sổ, thì bộ thu tiến hành xác minh ICV. Nếu kiểm tra ICV không thành công, bộ thu phải loại bỏ dữ liệu IP nhận được; đây là sự kiện theo dõi. Bản ghi theo dõi nên bao gồm giá trị SPI, ngày/giờ , địa chỉ nguồn, địa chỉ đích, số tuần tự , và ID luồng (IPv6). Cửa sổ nhận được cập nhật chỉ khi ICV xác minh thành công.
Xác minh giá trị kiểm tra toàn vẹn
Bộ thu tính toán ICV thông qua các trường tương ứng của gói tin, sử dụng các thuật toán xác thực cụ thể, và xác minh rằng nó bằng giá trị ICV trong trường dữ liệu xác thực của gói tin.
Nếu ICV tính toán và nhận được là phù hợp, thì dữ liệu là đúng, và nó được chấp nhận. Nếu kiểm tra thất bại, bộ thu phải loại bỏ gói tin; đây là sự kiện phải theo dõi. ản ghi theo dõi nên bao gồm giá trị SPI, ngày giờ , địa chỉ nguồn, địa chỉ đích, số tuần tự, và ID luồng (IPv6).
2.2.3.2. Giao thức dữ liệu an toàn đóng gói (ESP)
Mào đầu dữ liệu an toàn đóng gói(ESP ) được thiết kế để cung cấp các dịch vụ an toàn hỗn hợp. ESP có thể áp dụng riêng, kết hợp với mào đầu xác thực IP (AH), hoặc lồng nhau, qua việc sử dụng trong chế độ đường hầm. Các dịch vụ an toàn có thể cung cấp giữa hai trạm, hai gateway an toàn hoặc giữa trạm và gateway an toàn. Mào đầu ESP được chèn sau mào đầu mào đầu IP và trước mào đầu giao thức tầng trên (chế độ truyền tải) hoặc mào đầu IP được đóng gói (chế độ đường hầm). Các chế độ này sẽ được mô tả kĩ hơn ở phần sau. ESP thường được dùng để cung cấp bảo mật, xác thực dữ liệu gốc, toàn vẹn phi kết nối, và dịch vụ chống lặp, và bảo mật luồng lưu lượng bị giới hạn. Tập các dịch vụ được cung cấp phụ thuộc vào việc lựa chọn lúc thiết lập SA và sắp đặt việc thực hiện. Bảo mật có thể được lựa chọn độc lập với mọi dịch vụ khác. Tuy nhiên, việc sử dụng bảo mật không có toàn vẹn xác thực có thể đưa lưu lượng tới khả năng bị các cuộc tấn công, mà chúng có thể làm hỏng dịch vụ bảo mật. Xác thực dữ liệu gốc và toàn vẹn dữ liệu phi kết nối là các dịch vụ chung (cùng hiểu là “xác thực”) và cho phép như một lựa chọn cùng với bảo mật (tuỳ chọn). Dịch vụ chống lặp có thể được chọn chỉ khi việc xác thực dữ liệu gốc được lựa chọn, và có yêu cầu của bộ thu. (Mặc dù, mặc định bộ phát tăng số tuần tự dùng cho dịch vụ chống lặp, dịch vụ này chỉ hiệu quả nếu bộ thu kiểm tra số tuần tự). Bảo mật luồng lưu lượng yêu cầu chọn chế độ đường hầm, và nó hiệu quả nhất nếu được thực thi tại gateway an toàn, nơi thực hiện việc thoả thuận lưu lượng mà có thể là che giấu các cặp nguồn đích thực sự. Lưu ý, mặc dù cả bảo mật và xác thực là tuỳ chọn, nhưng tối thiểu một trong số chúng phải được