1. 程式人生 > >安全協議——Internet安全協議(Internet Protocol Security,IPSec)工作原理

安全協議——Internet安全協議(Internet Protocol Security,IPSec)工作原理

IPSec的使用是建立在安全關聯的基礎上的,所以在講IPSec之前要先了解一下安全關聯,然後再詳細講述IPSec的工作過程。

一、安全關聯

安全關聯的定義:為了實現資料傳送者至接收者的安全傳輸,需要建立傳送者與接收者之間的關聯,可以實現源端鑑別、資料加密和完整性檢測。

安全關聯是單向的,用於確定傳送者至接收者傳輸方向的安全傳輸過程所使用的加密演算法和加密金鑰、訊息鑑別碼演算法和MAC金鑰。如果某對傳送者和接收者之間需要安全傳輸資料,必須先建立傳送者至接收者的安全關聯。安全關聯有相應的識別符號;由於同一對傳送者和接收者之間可以建立多個安全關聯,所以傳送者需要通過定義安全策略資料庫(SPD)來判別資料傳輸所使用的安全策略。

安全關聯識別符號:安全引數索引(SPI)、目的IP地址、安全協議識別符號。

IPSec協議模式目前定義了傳輸模式和隧道模式兩種。

  1. 傳輸模式用於保證資料端到端安全傳輸,並對資料來源進行鑑別,IPSec所保護的資料就是作為IP分組淨荷的上層協議資料。
  2. 隧道模式下源端和目的端的內部網路被一個公共網路分隔,由於內部網路使用的是本地IP地址,所以以本地源目的地址的IP分組不能直接在Internet中傳輸,這種情況下會將整個IP分組作為淨荷分裝在以全球IP地址為源目的地址的IP分組中。

IPSec安全目標:在網際層實現IP分組端到端安全傳輸,整個傳輸過程需要保證防止重放攻擊、實現源端鑑別、資料加密、完整性檢測。
主要要素:AH(實現源端鑑別、防重放攻擊、檢測完整性)、ESP(實現源端鑑別、防重放攻擊、檢測完整性、資料加密)、IKE(實現金鑰交換)
鑑別首部(AH)格式:下一個首部、鑑別首部長度、安全引數索引(SPI)、序號(用於防重放攻擊)、鑑別資料(用於鑑別源端身份和實現資料完整性檢測)

二、安全機制:

2.1 防止重放攻擊:

新建立源端至目的端的安全關聯時,序號初始值為0,源端在傳送AH或者ESP報文時,先將序號增加1並將該序號作為報文的序號欄位值。在安全壽命內,不允許出現相同的序號,只要目的端接收到相同序號的報文,就予以丟棄。 由於AH報文或者ESP報文經過網路傳輸後不是按序到達目的端,所以通過防重放攻擊視窗定義了一個正常的延時抖動範圍:假定防重放攻擊視窗值為W,目的端正確接收到AH或ESP報文中最大序號為N,則序號值為N-W+1~N的AH或者ESP報文傳輸時延雖然大於序號為N的AH或者ESP報文,但是時延在正常範圍內,目的端正常接收這些報文。如果某個AH或者ESP報文傳輸時延和其他AH或者ESP報文傳輸時延插值超過這個正常時延抖動範圍,就可以認為該AH或ESP報文被黑客延遲了一段時間。

2.2 AH:

IP分組封裝成AH報文可以選擇傳輸模式或者隧道模式:
在這裡插入圖片描述 在這裡插入圖片描述
計算鑑別資料時覆蓋AH報文下述欄位:
1.IP首部(隧道模式下是外層IP首部)中傳輸過程中不需要改變的欄位值。
2.AH中除鑑別資料外的其他欄位值。
3.AH報文中的淨荷,如果是隧道模式,淨荷是包含內層IP首部的整個IP分組。

下面用一個AH應用例項瞭解AH的工作過程,終端A與Web伺服器之間建立終端A至Web伺服器的安全關聯,相關資訊在圖中已經給出。
在這裡插入圖片描述
在這裡插入圖片描述在這裡插入圖片描述
傳送端終端A的操作:終端A將通過HTTP訪問Web伺服器相關的IP分組封裝成AH報文,同時採用約定的MAC演算法HMAC-MD5-96和MAC金鑰7654321計算鑑別資料,然後將AH報文和鑑別資料一起傳送給Web伺服器。

接收端伺服器的操作:Web伺服器接收到終端A傳送的AH報文之後,根據安全關聯識別符號找到對應的安全關聯,然後重新對AH報文用HMAC-MD5-96演算法和MAC金鑰計算鑑別資料,將計算結果和AH報文懈怠的鑑別資料進行對比,如果兩者相同,則通過源端鑑別和資料完整性檢測。

2.2 ESP:

IP分組封裝成ESP報文同樣可以選擇傳輸模式或者隧道模式。
在這裡插入圖片描述在這裡插入圖片描述
ESP尾部包含填充資料、8bit的填充長度欄位和8bit的下一個首部。填充長度欄位值以位元組為單位給出填充資料長度、下一個首部欄位給出淨荷的協議型別;填充資料有三個作用
1.為了保證對淨荷+尾部進行加密運算時其資料長度是加密演算法要求資料長度的整數倍,
2.淨荷+ESP尾部必須是32bit的整數倍,
3.隱藏實際淨荷有利於資料傳輸的安全性。

計算鑑別資料的時候覆蓋ESP報文的欄位包含ESP首部+淨荷+ESP尾部,並不包括外層IP首部中不變欄位。

ESP加密運算時覆蓋的欄位是淨荷(隧道模式下是包括內層IP首部在內的整個IP分組)+ESP尾部。

ESP的工作過程和AH類似。

2.3 IKE:

建立安全關聯的機制有兩種,第一種是靜態安全關聯建立機制,第二種是動態安全關聯建立機制。Internet金鑰交換協議(Internet Key Exchange Protocol,IKE)就是一種動態建立安全關聯並完成引數協商的協議。

IKE動態建立安全關聯可以分為兩個階段,第一個階段是建立安全傳輸通道,也成為建立IKE安全關聯過程,該過程需要約定加密演算法和MAC演算法、加密金鑰和MAC金鑰,因為在建立安全傳輸通道之前,需要相互鑑別對方身份,所以還要約定鑑別方式;第二個階段是建立安全關聯,也叫建立IPSec安全關聯過程,該過程需要約定安全協議AH、MAC演算法HMAC-MD5-96和MAC金鑰。
在這裡插入圖片描述

  1. 終端A想Web伺服器B傳送的資訊包含加密演算法DES、報文摘要演算法MD5、用於生成金鑰種子KS的YA(YA=ɑ^XA mod p,其中XA是隨機數、ɑ和p是組號為2的Diffie-Hellman引數指定的值)和隨機數NA。

  2. 伺服器B傳送給A的訊息和A發給B的類似,但是如果雙方約定的是證書+私鑰的身份鑑別機制,Web伺服器還要向終端A傳送證書請求。

終端A和Web伺服器根據YB和YA生成相同的金鑰種子KS,根據金鑰種子KS和隨機數NA和NB計算所有需要的金鑰。

  1. 建立安全傳輸通道之後,終端A向Web伺服器傳送IPSec安全關聯指定的安全協議AH和MAC演算法HMAC-MD5,還有終端A和Web伺服器的識別符號IDA和IDB,以及用於證明終端A的公鑰是PKA的證書,證書請求、數字簽名D_SKA(MD5(DES||MD5||YA||NA||IDA))。

  2. Web伺服器通過終端A傳送的數字簽名驗證其身份,確認終端A傳送訊息的完整性之後,向終端A傳送:IPSec安全關聯指定的安全協議AH和MAC演算法HMAC-MD5,Web伺服器的SPI、終端A和伺服器的識別符號IDA和IDB,以及用於證明Web伺服器的公鑰是PKB的證書、數字簽名D_SKB。

數字簽名的兩個驗證作用:1.驗證對方發過來的訊息是否受到中間人攻擊;2.驗證訊息傳送方的身份。

傳送端啟動IKE的過程如下:
在這裡插入圖片描述
當傳送端需要輸出某個IP分組時,用該IP分組檢索安全策略資料庫(SPD),每一條安全策略包含IP分組分類依據和對該類IP分組實施的動作兩部分,根據匹配到的安全策略指定的動作處理該IP分組。