什麼是認證報頭 (AH) 格式?
認證報頭 (AH) 用於為 IP 資料報提供完整性和認證。它也支援重放保護。這些服務是無連線的,這意味著它們基於每個資料包工作。
AH 以以下兩種模式使用:
- 傳輸模式
- 隧道模式
AH 認證與 IP 資料報相同。在傳輸模式下,IP 報頭中的一些欄位在傳輸過程中會發生變化,接收方無法預測其值。這些欄位稱為可變欄位,AH 不保護它們。
可變 IPv4 欄位
可變 IPv4 欄位如下:
- 服務型別 (TOS)
- 標誌
- 分片偏移
- 生存時間 (TTL)
- 報頭校驗和
為了保護這些欄位,必須使用隧道模式。IP 資料包的有效負載被認為是不可變的,並且始終受 AH 保護。
AH 處理僅應用於非分段的 IP 資料包。而應用了 AH 的 IP 資料包可以被中間路由器分段。
在這種情況下,目標主機首先重新組裝資料包,然後對其應用 AH 處理。
如果輸入到 AH 處理的 IP 資料包似乎是分片,則將其丟棄。
這可以防止重疊分片攻擊,這種攻擊濫用分片重組演算法來建立偽造的資料包並強制它們透過防火牆。
未能透過身份驗證的資料包將被丟棄,並且永遠不會傳遞到上層。
這種操作模式大大降低了成功拒絕服務攻擊的可能性。
AH 格式
AH 格式在 RFC 2402 中有描述。下圖顯示了 IP 資料包中認證報頭欄位的位置。
欄位如下:
下一個報頭
這是一個 8 位欄位,用於標識後續內容的型別。此欄位的值從 IP 報頭協議欄位集合中選擇,設定為 51,協議欄位中的值將進入 AH 下一個報頭欄位。
有效負載長度
這是一個 8 位長欄位,包含以 32 位字表示的 AH 報頭長度減 2。它與 IP 資料包的實際有效負載長度無關。例如,如果使用預設選項,則值為 4(三個 32 位固定字加上三個 32 位的認證資料減去二)。
保留
保留供將來使用。其長度為 16 位,設定為零。
安全引數索引 (SPI)
長度為 32 位。
序列號
這個 32 位欄位是一個單調遞增的計數器,用於重放保護。這是一個可選欄位。傳送方始終包含此欄位,接收方是否處理它則由接收方決定。序列號的起始值初始化為零。使用 SA 傳輸的第一個資料包的序列號為 1。序列號不允許重複。
認證資料
這是一個可變長度欄位,包含完整性校驗值 (ICV),併為 IPv4 填充到 32 位或為 IPv6 填充到 64 位。