交換受保護的資料之前,兩台電腦之間必須先建立契約。在這項名為安全性關聯 (SA) 的契約中,兩者都同意交換及保護資訊的方式。

金鑰是用來讀取、修改或驗證安全資料所需的秘密程式碼或數字。金鑰是與演算法 (數學運算過程) 一起用來保護資料。在 IPsec 中,有兩個使用金鑰的階段或模式。主要模式會先發生並產生共用的主要金鑰,讓雙方可透過安全的方法來交換金鑰設定資訊。快速模式則會使用主要金鑰來保護一或多個工作階段金鑰的建立,而那些工作階段金鑰是用於資料完整性或加密。

Windows 會自動處理金鑰的產生,並執行下列可將保護最大化的金鑰設定內容:

重要

IP 安全性原則嵌入式管理單元可用來建立套用至執行 Windows Windows Vista 和更新版本之電腦的 IPsec 原則,但是這個嵌入式管理單元不會在那些執行較新版本 Windows 之電腦中,使用那些電腦提供的新安全性演算法和其他的新功能。如果要為這些電腦建立 IPsec 原則,請使用 具有進階安全性的 Windows 防火牆 嵌入式管理單元。具有進階安全性的 Windows 防火牆 嵌入式管理單元不會建立可套用至舊版 Windows 的原則。

動態重設金鑰

IPsec 會使用名為動態重設金鑰 (dynamic rekeying) 的方法,來控制通訊期間產生新金鑰的頻率。通訊是以資料區塊傳送,而每個區塊都會以不同的金鑰來保護。這可避免已取得部分通訊及對應的工作階段金鑰的攻擊者取得剩下的通訊。使用網際網路金鑰交換 (IKE,如 RFC 2409 中所定義),可以得到這項指定的安全性交涉及自動金鑰管理服務。

IPsec 可讓您控制新金鑰產生的頻率。如果未設定任何值,將會依據預設間隔自動產生金鑰。

金鑰長度

每次金鑰長度增加一個位元,可能的金鑰數目會加倍,而使得判斷金鑰越來越困難。IPsec 提供多個演算法,以允許短或長的金鑰長度。

產生金鑰材料:Diffie-Hellman 演算法

如果要啟用安全性通訊,兩台電腦必須能建立相同的共用金鑰 (快速模式或工作階段金鑰),才不用跨網路互相傳送金鑰而洩漏密碼。

Diffie-Hellman 演算法 (DH) 是用於金鑰交換的最早及最安全的演算法之一。雙方公開地交換金鑰處理資訊,且 Windows 會另以雜湊函數簽章來保護此資訊。任一方都從未交換過實際的金鑰;不過,在它們交換金鑰內容之後,每一方都會產生相同的共用金鑰。

由雙方所交換的 DH 金鑰處理內容是以金鑰設定內容的 768、1024 或 2048 位元為依據,即一般所知的 DH 群組。DH 群組的強度與從 DH 交換所計算之金鑰的強度成正比。結合長度較長之金鑰的強力 DH 群組會增加涉及判斷金鑰時計算的困難程度。

附註

[IKE 安全性演算法] 對話方塊中,768 位元會對應至 [低 (1)] 設定,而 1024 位元會對應至 [中 (2)] 設定。

IPsec 使用 DH 演算法來提供所有其他加密金鑰的金鑰處理內容。DH 不提供驗證。Microsoft Windows 執行 IPsec 的方式,是在發生 DH 交換之後驗證身分,以提供抵禦攔截式攻擊的保護。

金鑰保護

下列功能可加強主要金鑰及工作階段金鑰的基本主要數 (金鑰內容) 及強度。

金鑰存留期

金鑰存留期會決定何時 (而不是如何) 產生新的金鑰。亦即一般所知的動態重設金鑰或金鑰重新產生,金鑰的存留期可讓您在指定的間隔之後強迫重新產生金鑰。例如,如果通訊需要花上 10,000 秒,而您指定了金鑰存留期為 1,000 秒時,則會產生 10 個金鑰以完成通訊。如此可以確保即使攻擊者能將部分通訊解碼,剩下的通訊仍是受到保護的。可以同時為主要金鑰與工作階段金鑰設定金鑰存留期。無論何時,只要金鑰存留期到期,就會重新交涉 SA。此外,還會重新整理或再製金鑰。單一金鑰所處理的資料數不應超過 100 MB。

工作階段金鑰限制

因為來自快速模式工作階段金鑰之重複的重設金鑰處理會洩漏 Diffie-Hellman 的共用密碼,所以會使用快速模式工作階段金鑰重新整理限制。

例如,電腦 A 上的 Alice 傳送了一個訊息給電腦 B 上的 Bob,接著在幾分鐘之後傳送了另一個訊息給 Bob。因為 SA 是最近建立的,所以可能會重新使用相同的工作階段金鑰內容。如果您要限制此事件的發生次數,請將工作階段金鑰重新整理限制設定為較小的數字。

如果您已啟用主要金鑰完全正向加密 (PFS),就無法使用快速模式工作階段金鑰重新整理限制。將工作階段金鑰重新整理限制設定為 1,與啟用主要金鑰 PFS 是相同的。如果同時指定主要模式的主要金鑰存留期及快速模式工作階段金鑰重新整理限制,則先到達的限制將導致後續的重設金鑰。依預設,IPsec 原則不會指定工作階段金鑰重新整理限制。

Diffie-Hellman 群組

Diffie-Hellman (DH) 群組是用來判斷在 DH 交換所使用之基本質數 (金鑰內容) 的長度。任何從 DH 交換所衍生的金鑰效力有部分是根據 DH 群組 (質數以此為根據) 的效力而定。

每個 DH 群組都會定義要使用之金鑰處理內容的長度。群組 1 會保護 768 位元的金鑰處理內容:群組 2 會保護 1024 位元;群組 3 則會保護 2,048 位元。使用較大的群組時,從 DH 交換所決定的結果金鑰會更大,並使攻擊者更難判斷。

IKE 會交涉要使用哪個群組,是根據您在 [IKE 安全性演算法] 對話方塊中的設定,以確定兩個對等電腦間不相符之 DH 群組所產生的結果不會有任何的交涉失敗。

如果啟用工作階段金鑰 PFS,則在第一個快速模式 SA 交涉中會交涉新的 DH 金鑰。這個新的 DH 金鑰會移除為主要金鑰執行之 DH 交換上的工作階段金鑰相依性。

即使初始端正在使用工作階段金鑰 PFS,回應端也不需要使用工作階段金鑰 PFS。不過,如果初始端並未使用工作階段金鑰 PFS,而回應端正在使用工作階段金鑰 PFS,則交涉會失敗。

主要模式與快速模式 SA 交涉這兩者的 DH 群組是相同的。當啟用工作階段金鑰 PFS 時,即使 DH 群組是設定為主要模式 SA 交涉的一部分,它還是會影響快速模式工作階段金鑰建立期間的任何重設金鑰。

完整轉寄密碼

不像金鑰存留期,PFS 會決定如何 (而不是何時) 產生新的金鑰。尤其特別的是,PFS 可確保洩露的單一金鑰只能存取它所保護的資料而非整個通訊。如果要達成此目標,PFS 可確保用於保護傳輸 (以另一個模式) 的金鑰都無法用來產生額外的金鑰。此外,如果使用的金鑰是衍生自特定的金鑰設定內容,則該內容就不能用來產生其他金鑰。

主要模式的主要金鑰 PFS 需要重新驗證且需要大量的資源。當它啟用時,IKE 必須重新驗證識別身分,使用 Kerberos V5 驗證通訊協定來進行驗證會增加網域控制站的負擔。它需要一個針對每個快速模式交涉的新主要模式交涉。

使用快速模式工作階段金鑰 PFS 不需要重新驗證且不需大量的資源。在 DH 交換中所產生的工作階段金鑰 PFS 會建立新的金鑰處理內容。它只需要四項訊息,不需要驗證。

因為 PFS 並非 SA 交涉的一部分,所以不需在這兩個對等端上加以啟用。如果回應端要求 PFS 且傳送端的快速模式 SA 已到期,則它只會拒絕傳送者的訊息並要求新的交涉。傳送端會造成主要模式 SA 到期,然後重新交涉。可以設定主要金鑰 (主要模式) 與工作階段 (快速模式) 金鑰兩者各別的 PFS。

金鑰交換

交換受保護的資料之前,兩台電腦之間必須先建立契約。在這項契約 (SA) 中,兩者都同意交換及保護資訊的方式。

為了在兩台電腦間建立這項契約,網際網路工程任務推動小組 (IETF) 已建立了安全性關聯及金鑰交換解析的 IKE 方法,具備下列特性:

  • 將安全性關聯管理集中以減少連線時間。

  • 產生及管理用來保護資訊的共用私密金鑰。

這項處理不僅可以保護電腦間的通訊,也可以保護要求安全存取公司網路的遠端電腦。此外,每當安全性閘道執行最終目標電腦的交涉時,這項處理就會運作。

安全性關聯定義

SA 是交涉的金鑰、安全性通訊協定及安全性參數索引 (SPI) 的組合,它定義了用來保護傳送者對接收者之通訊的安全性。安全性參數索引 (SPI) 是在 SA 中唯一可辨識的數值,用來區別現存於接收端電腦上的多重安全性關聯。例如,如果一台電腦與多台電腦同時安全地通訊時,多重關聯便可能存在。這個狀況大部分發生在電腦是檔案伺服器,或為多重用戶端提供服務的遠端存取伺服器時。在這些狀況下,接收端電腦會使用 SPI 以判定使用哪個 SA 來處理連入封包。

主要模式 SA

為了確保成功、安全的通訊,IKE 會執行兩階段的操作。它使用兩台電腦在安全性交涉期間都同意的加密及驗證演算法,以保證每個階段的機密性及驗證。藉由使用分割成兩階段的任務,金鑰可以很快完成建立。

在第一階段期間,兩台電腦建立了安全、已驗證的通道。這稱為主要模式 SA。IKE 在此交換期間會自動提供所需的識別身分保護。

下列步驟會描述主要模式交涉。

  1. 原則交涉。下列四個用於交涉的強制參數是主要模式 SA 的一部分:

    • 加密演算法 (DES 或 3DES)。

    • 雜湊演算法 (MD5 或 SHA1)。

    • 驗證方法 (Kerberos V5 驗證通訊協定、憑證或預先共用金鑰驗證)。

    • 用於基本金鑰處理內容 (768 位元低 (群組 1)、1024 位元中 (群組 2) 或 2048 位元高 (群組 3)) 的 Diffie-Hellman (DH) 群組。

    • 如果將憑證或預先共用金鑰作為驗證使用,那麼電腦的身分識別仍是受保護的。不過,如果使用 Kerberos V5 驗證通訊協定,則電腦識別身分的加密要等到驗證期間整個識別身分內容都加密時才能進行。

  2. (公用值的) DH 交換沒有實際上的金鑰交換。只有交換 DH 金鑰判別演算法以產生共用、私密金鑰所需的資訊。此交換後,每台電腦上的 IKE 服務都會產生用來保護驗證的主要金鑰。

  3. 驗證。電腦會嘗試驗證 DH 金鑰交換。若未驗證 DH 金鑰交換,通訊便容易受到攔截式攻擊。若驗證未成功,就無法繼續通訊。主要金鑰會與交涉演算法及方法一起使用,以驗證身分。會使用在步驟 2 中從 DH 交換所產生的金鑰,來雜湊及加密整個身分內容 (包括身分類型、連接埠及通訊協定)。無論使用哪種驗證方法,識別內容均不會被修改及解譯。

    傳送者會提供接收者一項潛在的安全性關聯。回應端無法修改提供的資訊。若修改提供的資訊,初始端將會拒絕回應端的訊息。回應端會傳送接受提供的回覆或其他替代的回覆。

    訊息會在這個階段期間重複進行五次自動重試循環。如果在重試循環結束之前收到回應,就會開始進行標準的 SA 交涉。如果 IPsec 原則允許,無安全性的通訊會在短暫的間隔之後開始。這個行為也稱為「回復以清除」。即使通訊回復以清除,安全的通訊交涉會嘗試以五分鐘的間隔重試。

    對於可發生的交換數目並沒有限制。建立的 SA 數目僅受系統資源所限制。

快速模式 SA

在此階段中,由 SA 代表 IP 安全性驅動程式進行交涉。

下列步驟會描述快速模式交涉。

  1. 發生原則交涉。IPsec 電腦會交換下列需求來保護資料轉送:

    • IPsec 通訊協定 (AH 或 ESP)

    • 雜湊演算法 (MD5 或 SHA1) 所提供的完整性及驗證

    • 若有要求,則會使用加密演算法 (DES 或 3DES)

    達成共同的協議,並且建立兩個 SA:其中一個 SA 用於輸入的通訊,另一個則用於輸出的通訊。

  2. 重新整理或交換工作階段金鑰內容。IKE 重新整理金鑰內容,並為封包完整性、驗證及可能的加密產生新增、共用的金鑰。如果需要重設金鑰,則進行第二次的 DH 交換 (如主要模式交涉中所說明),或重新整理原始的 DH 金鑰。

  3. SA 及金鑰會連同 SPI 一起傳送到 IP 安全性驅動程式。主要模式 SA 會保護安全性設定及金鑰產製原料的快速模式交涉 (為了保護資料)。如同第一階段提供識別身分保護,第二、快速模式階段會在傳送資料前重新整理金鑰產製原料來提供保護。IKE 可以適用其他 DH 交換的金鑰交換內容 (若是需要重設金鑰的話);亦即,會啟用主要金鑰 PFS。否則,IKE 會從在主要模式中完成的 DH 交換重新整理金鑰產製原料。

    快速模式會產生一對安全性關聯,每一方都有自己的 SPI 及金鑰。其中一個 SA 用於輸入的通訊,另一個則用於輸出的通訊。

    訊息的重試演算法類似主要模式交涉中所描述的處理。不過,如果這項處理在第二次或更高的交涉期間因某些原因逾時,而與相同的主要模式 SA 斷線,則會嘗試重新交涉主要模式 SA。如果沒有建立主要模式的 SA 而接收到此階段的訊息時,則該訊息會被拒絕。

    使用單一的主要模式 SA 進行多項快速模式 SA 交涉會增加處理的速度。只要主要模式 SA 不過期,便不需要重新交涉及重新驗證。IPsec 原則設定可決定能夠執行之快速模式 SA 交涉的數目。

    附註

    過多來自相同主要模式 SA 的重設金鑰可能會使共用、秘密金鑰容易受到已知的純文字攻擊。已知的純文字攻擊是一項 Sniffer 攻擊,攻擊者會嘗試使用以已知的純文字為基礎的加密資料來判定加密金鑰。

SA 存留期

主要模式 SA 會被快取,以執行多項快速模式 SA 交涉 (除非啟用主要金鑰 PFS)。當主要金鑰或工作階段金鑰的存留期已到時,相關的 SA 會重新交涉。此外,還會重新整理或再製金鑰。

當主要模式 SA 的預設逾時已到時,或是主要金鑰或工作階段金鑰的存留期已到期時,會將刪除訊息傳送給回應者。IKE 刪除訊息時會告知回應程式,以導致主要模式 SA 到期。這可以避免從過期的主要模式 SA 中,建立其他新的快速模式 SA。IKE 無法使快速模式 SA 過期,因為只有 IPsec 驅動程式才會包含已傳送以到達金鑰存留期的秒數或位元組數。

在設定非常不同的主要金鑰及工作階段金鑰的存留期時,請特別小心。例如,將主要模式的主要金鑰存留期設定為八小時,而將快速模式工作階段金鑰存留期設定為兩小時,可能會使快速模式 SA 在主要模式 SA 過期之後,保留在原處近兩小時。在主要模式 SA 快到期之前建立快速模式 SA,便會發生這種情況。