The Cable Guy已驗證網際網路通訊協定

Joseph Davies

本專欄的部分內容討論的是 Windows Server 2008 的搶鮮版。該些詳細資訊均有可能變更。

Windows Vista 和 Windows Server 2008 (現正處於 Beta 測試) 皆支援已驗證網際網路通訊協定 (Authenticated Internet Protocol,AuthIP),此為增強版的網際網路金鑰交換 (IKE) 通訊協定。AuthIP 和 IKE 這兩種通訊協定,都是用來決定金鑰產製資料,還有用來針對使用

網際網路通訊協定安全性 (IPSec) 保護的通訊交涉安全性參數。AuthIP 在許多設定中提供簡化的 IPsec 原則設定及維護,並為 IPsec 對等驗證提供額外的彈性。本文將說明 AuthIP 的通訊協定詳細資訊,以及同時支援 AuthIP 和 IKE,或只支援 IKE 之 IPsec 對等之間共存的行為。

IKE 概觀

交涉範例

為了示範共存行為,讓我們來探討一下 Windows Vista 與 Windows XP 的 IPsec 對等在嘗試交涉 IPsec 保護時實際發生的情形。

範例 1:兩個 Windows Vista 的 IPsec 對等同處於要求模式

在本例中,Windows Vista 的 IPsec 對等 (對等 1) 是起始者,而回應者是執行 Windows Vista (對等 2)。兩個對等的輸入和輸出通訊都是設定成要求模式。在要求模式下,IPsec 對等會要求 IPsec 保護,但其實並不會用到。交換的訊息如下:

  1. 對等 1 傳送純文字 TCP 同步處理 (SYN) 區段,起始與對等 2 的 TCP 連線。
  2. 對等 2 傳送 TCP SYN 通知 (ACK) 區段。
  3. 對等 1 傳送 TCP ACK 區段。
  4. 對等 1 傳送以 AuthIP 為基礎的 ISAKMP 訊息,起始 AuthIP 主要模式交涉。
  5. 對等 1 傳送以 IKE 為基礎的 ISAKMP 訊息,起始 IKE 主要模式交涉。
  6. 對等 2 以 AuthIP 為基礎的 ISAKMP 訊息加以回應,繼續 AuthIP 主要模式交涉。
  7. 對等 1 與 2 完成 AuthIP 主要模式、快速模式和延伸模式 (選用) 交涉。
  8. 經由 TCP 連線傳送的後續區段將以 IPsec 保護。

訊息 1 至 5 的確實順序將視網路延遲而定。本文內所說明的範例都是以非常低延遲的網路為準,其中 TCP 交握 (訊息 1 至 3) 會在對等 1 傳送初始 ISAKMP 訊息 (訊息 4 至 5) 之前完成。在高延遲網路中,您會看到對等 1 傳送純文字 TCP SYN 區段,以 AuthIP 為基礎的 ISAKMP 訊息,接著是以 IKE 為基礎的 ISAKMP 訊息作為訊息交換的前三個訊息。

範例 2:Windows Vista 的 IPsec 對等處於要求模式,Windows XP 的 IPsec 對等處於要求模式

在本例中,Windows Vista 的 IPsec 對等 (對等 1) 是起始者,而回應者是執行 Windows XP (對等 2)。兩個對等的輸入和輸出通訊都是設定成要求模式。交換的訊息如下:

  1. 對等 1 傳送純文字 TCP SYN 區段,起始與對等 2 的 TCP 連線。
  2. 對等 2 傳送 TCP SYN-ACK 區段。
  3. 對等 1 傳送 TCP ACK 區段。
  4. 對等 1 傳送以 AuthIP 為基礎的 ISAKMP 訊息,起始 AuthIP 主要模式交涉。
  5. 對等 1 傳送以 IKE 為基礎的 ISAKMP 訊息,起始 IKE 主要模式交涉。
  6. 對等 2 以 IKE 為基礎的 ISAKMP 訊息加以回應,繼續 IKE 主要模式交涉。
  7. 對等 1 與 2 完成 IKE 主要模式和快速模式交涉。
  8. 經由 TCP 連線傳送的後續區段將以 IPsec 保護。

範例 3:Windows Vista 的 IPsec 對等處於要求模式,Windows XP 的 IPsec 對等處於必要模式

在本例中,Windows Vista 的 IPsec 對等 (對等 1) 是起始者,而回應者是執行 Windows XP (對等 2)。對等 1 是設定成要求模式用於輸出通訊,而 Peer 2 則是設定成必要模式用於輸入通訊。在必要模式下,IPsec 對等會要求 IPsec 保護,並在幕後捨棄未受保護的封包。交換的訊息如下:

  1. 對等 1 傳送純文字 TCP SYN 區段,起始 TCP 連線 (對等 2 會在幕後捨棄)。
  2. 對等 1 傳送以 AuthIP 為基礎的 ISAKMP 訊息,起始 AuthIP 主要模式交涉 (對等 2 會在幕後捨棄)。
  3. 對等 1 傳送以 IKE 為基礎的 ISAKMP 訊息,起始 IKE 主要模式交涉。
  4. 對等 2 以 IKE 為基礎的 ISAKMP 訊息加以回應,繼續 IKE 主要模式交涉。
  5. 對等 1 與對等 2 完成 IKE 主要模式和快速模式交涉。
  6. 對等 1 重新傳輸 TCP SYN 區段 (以 IPsec 保護)。
  7. 對等 2 傳送 TCP SYN-ACK 區段 (以 IPsec 保護)。
  8. 對等 1 傳送 TCP ACK 區段 (以 IPsec 保護)。

IKE 是一種定義在 RFC 2409 (ietf.org/rfc/rfc2409.txt) 中的網際網路標準,用來規範建建立 IPsec 安全性關聯 (SA) 的機制。SA 是可互相同意的原則和金鑰 (定義著安全性服務和機制,幫助保護 IPsec 對等之間的通訊) 的組合。更具體的說,IKE 將 RFC 2408 中的網際網路安全性關聯和金鑰管理通訊協定 (Internet Security Association and Key Management Protocol,ISAKMP) 與 Oakley Key Determination Protocol (RFC 2412) 相結合。IKE 利用 Oakley Key Determination 通訊協定來產生受保護通訊的秘密金鑰資料。

IKE 使用 ISAKMP 來交涉 SA。ISAKMP 內含各種用來識別和驗證對等、管理 SA,以及交換金鑰資料的工具。ISAKMP 是一種用於交涉不受特定金鑰交換通訊協定、加密和整合演算法及驗證方法控制的受保護通訊的架構。

IPsec 對等使用 IKE 來執行主要模式和快速模式交涉。主要模式交涉會建立 ISAKMP SA,用來保護安全性交涉。在主要模式交涉期間,起始者和回應者會交換一系列的 ISAKMP 訊息以便交涉 ISAKMP SA 的加密和雜湊演算法、交換金鑰判斷材料,以及識別和驗證彼此。

在快速模式交涉階段,會建立兩個 IPsec SA (一個 SA 用於輸入資料,另一個 SA 用於輸出資料),用以保護兩個 IPsec 對等之間傳送的資料。在快速模式交涉期間,起始者和回應者會交換一系列加密的 ISAKMP 訊息以便交涉輸入和輸出 IPsec SA 的加密和雜湊演算法。

如需有關 IKE 主要模式和快速模式交涉的詳細資訊,請參閱《IPsec 安全性關聯的 IKE 交涉》,網址為 microsoft.com/technet/community/columns/cableguy/cg0602.mspx

AuthIP 概觀

AuthIP 是增強版的 IKE,透過支援以使用者為主的驗證、以多重認證進行驗證、改進的驗證方法交涉,以及非對稱驗證等提供額外的彈性。跟 IKE 一樣,AuthIP 也支援主要模式和快速模式交涉。AuthIP 另外還支援延伸模式,這是 IPsec 對等交涉期間可執行二度驗證的一部分。延伸模式是選用的,可用於多重驗證。例如,透過延伸模式,您可以執行個別以電腦為主和以使用者為主的驗證。

多重驗證支援是 IPsec 強化網路存取保護 (NAP) 平台的一部分,其中 IPsec 對等會使用電腦認證進行驗證,也會使用健康情況憑證來證明他們符合系統健康需求。如需有關網路存取保護的詳細資訊,請參閱 microsoft.com/nap。而關於 AuthIP 功能的進一步資訊,請參閱《Windows Vista 中的 AuthIP》,網址是 microsoft.com/technet/community/columns/cableguy/cg0806.mspx

AuthIP 訊息

IKE 和 AuthIP 兩者都是使用 ISAKMP 作為它們的金鑰交換和 SA 交涉通訊協定。ISAKMP 訊息是經由使用者資料包通訊協定 (User Datagram Protocol,UDP) 傳送,並且是由 ISAKMP 標頭和一或多個 ISAKMP 裝載組成。ISAKMP 標頭包含訊息的相關資訊,包括訊息類型。[圖 1] 顯示 ISAKMP 標頭的格式。

[圖 1] ISAKMP 標頭的格式

[圖 1]** ISAKMP 標頭的格式 **

在 ISAKMP 標頭中,起始者 Cookie 和回應者 Cookie 都是設定為由 IPsec 對等所選的非零亂數。[下一裝載] 欄位指出 ISAKMP 訊息中 ISAKMP 標頭隨後的第一個裝載。RFC 2408 列出了 [下一裝載] 欄位的定義值。裝載類型 128-255 是留作私用。[主要版本] 和 [次要版本] 欄位指明 IPsec 對等上傳送 ISAKMP 訊息的 ISAKMP 版本。對於 IKE 和 AuthIP,主要版本是 1,而次要版本是 0。

[交換類型] 欄位指出執行的 ISAKMP 交換的類型。交換的類型指示 ISAKMP 裝載的結構和順序。RFC 2408 定義著 [交換類型] 欄位的值。交換類型 128-255 是留作私用。

[旗標] 欄位包含 RFC 2408 中定義的三個旗標。低位元 (Bit 0) 是加密位元,指出 ISAKMP 裝載有加密 (當設為 1 時) 還是沒有加密 (當設為 0 時)。加密是使用針對 ISAKMP SA 交涉的演算法 (由 [起始者 Cookie] 和 [回應者 Cookie] 欄位的組合判斷得來) 來完成。下一個低位元 (Bit 1) 是認可位元,指明金鑰交換已同步處理 (當設為 1 時),還是沒有同步處理 (當設為 0 時)。認可位元是用來確保 SA 在加密資料送出之前完成它的交涉作業。下一個低位元 (Bit 2) 是僅驗證位元,它是用來表示訊息有包含 (當設為 1 時),還是沒有包含 (當設為 0 時) 資訊交換類型整個「通知」裝載,並且它已經過驗證但尚未加密。

[訊息識別碼] 欄位包含訊息的唯一識別元。訊息識別碼是用來防止當兩個 IPsec 對等同時試圖建立 IPsec SA 時產生衝突。[長度] 欄位指出整個 ISAKMP 訊息的長度。

對 IKE 而言,ISAKMP 訊息包含一系列 ISAKMP 裝載。第一個裝載是由 ISAKMP 標頭的 [下一裝載] 欄位來表示。每個 ISAKMP 裝載都有自己的 [下一裝載] 欄位來表示下一個裝載。最後一個裝載的 [下一裝載] 欄位是設為 0。[圖 2] 顯示 IKE 訊息的格式。

[圖 2] IKE 訊息的格式

[圖 2]** IKE 訊息的格式 **

AuthIP 在 ISAKMP 標頭的 [交換類型] 欄位中使用 ISAKMP 訊息與交換類型 243 (主要模式)、244 (快速模式)、245 (延伸模式),以及 246 (通知)。以 AuthIP 為基礎的 ISAKMP 訊息有項重要的差別,就是它們只包含一個 ISAKMP 裝載: 不是「加密」裝載,就是「通知」裝載。加密裝載包含用於主要模式、快速模式或延伸模式交涉的內嵌裝載。加密裝載可以包含一組純文字或加密裝載,端視 ISAKMP 標頭的 [旗標] 欄位中的加密位元而定。[圖 3] 顯示包含加密裝載的 AuthIP 訊息格式。

[圖 3] 包含加密裝載的 AuthIP 訊息格式

[圖 3]** 包含加密裝載的 AuthIP 訊息格式 **

AuthIP 和 IKE 共存

Windows Vista® 及 Windows Server® 2008 都同時支援 IKE 和 AuthIP。而 Windows® XP 和 Windows Server 2003 則只支援 IKE。若起始 IPsec 對等同時支援 AuthIP 及 IKE 並且具有使用 AuthIP 和 IKE 兩者的連線安全性原則,它就必須確定回應 IPsec 對等是否支援 AuthIP 或 IKE。它接著必須使用最適當的通訊協定來交涉 IPsec 保護,AuthIP 和 IKE 兩者比起來,比較偏好使用 AuthIP。

為了決定回應 IPsec 對等的交涉通訊協定,使用 AuthIP 和 IKE 兩者的起始 IPsec 對等必須同時傳送下列訊息:

  • 訊息 1 ─ 起始主要模式交涉的 AuthIP 訊息。
  • 訊息 2 ─ 起始主要模式交涉的 IKE 訊息。

假若回應節點支援 AuthIP,它便必須以進行主要模式交涉的 AuthIP 訊息來回應訊息 1,並在幕後捨棄訊息 2。不支援 AuthIP 的回應節點會在幕後捨棄訊息 1,因為 [交換類型] 欄位包含一個它不支援的值,並且會回應訊息 2。

為了避免當訊息 1 從網路捨棄或訊息 2 之後抵達時,在兩個執行 Windows Vista 或 Windows Server 2008 的 IPsec 對等之間進行以 IKE 為基礎的交涉,執行 Windows Vista 或 Windows Server 2008 的 IPsec 對等會傳送訊息 2 並附上 AuthIP 支援的廠商識別碼 ISAKMP 裝載。AuthIP 支援的廠商識別碼裝載會指出 IPsec 對等支援 AuthIP。

因此,若是執行 Windows Vista 或 Windows Server 2008 的 IPsec 對等收到含 AuthIP 支援的廠商識別碼裝載的訊息 2,它便會等候起始 IPsec 對等重新傳輸訊息 1 和 2,然後回應訊息 1。

起始 IPsec 對等會一直重新傳輸訊息 1 和 2,直到它收到回應或逾時為止。當起始者收到回應時,它會從回應的 ISAKMP 標頭來判斷回應者的能力。如果 [交換類型] 是設定為 243 (即 AuthIP 主要模式交涉的交換類型),則回應者便支援 AuthIP。如果 [交換類型] 是設定為 2 (即識別保護和 IKE 主要模式交涉的交換類型),則回應者便支援 IKE。

根據回應,起始者會以適用於 AuthIP 主要模式交涉的下一個 AuthIP 訊息,或適用於 IKE 主要模式交涉的下一個 IKE 訊息來進行回應。IPsec 對等在 SA 的存留期必須使用交涉 ISAKMP SA 所用的同一個通訊協定。

Joseph Davies 是 Microsoft 的技術文件作家,同時也是每個月線上 TechNet Cable Guy 專欄的作家,專欄網址為 Microsoft.com/technet/community/columns/cableguy

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.