IPsec知識

風靈使發表於2019-04-07

(英語:Internet Protocol Security,縮寫為IPsec),是一個協議包,透過對IP協議的分組進行加密和認證來保護IP協議的網路傳輸協議族(一些相互關聯的協議的集合)。

中文名
    網際網路安全協議 
外文名
    Internet Protocol Security 
本    質
    開放標準的框架結構 
作    用
    保障網路安全 
縮    寫
    IPsec 
學    科
    通訊工程 

簡介

網際網路安全協議(英語:Internet Protocol Security,縮寫為IPsec),是一個協議包,透過對IP協議的分組進行加密和認證來保護IP協議的網路傳輸協議族(一些相互關聯的協議的集合)。

IPsec主要由以下協議組成:
一、認證頭(AH),為IP資料包提供無連線資料完整性、訊息認證以及防重放攻擊保護;
二、封裝安全載荷(ESP),提供機密性、資料來源認證、無連線完整性、防重放和有限的傳輸流(traffic-flow)機密性;
三、安全關聯(SA),提供演算法和資料包,提供AH、ESP操作所需的引數。

標準現狀

IPv6IETFIP協議分組通訊制定的新的因特網標準,IPsecRFC 6434以前是其中必選的內容,但在IPv4中的使用則一直只是可選的。這樣做的目的,是為了隨著IPv6的進一步流行,IPsec可以得到更為廣泛的使用。第一版IPsec協議在RFCs2401-2409中定義。在2005年第二版標準文件釋出,新的文件定義在RFC 4301RFC 4309中。

設計意圖

IPsec被設計用來提供
(1)入口對入口通訊安全,在此機制下,分組通訊的安全性由單個節點提供給多臺機器(甚至可以是整個區域網);
(2)端到端分組通訊安全,由作為端點的計算機完成安全操作。
上述的任意一種模式都可以用來構建虛擬專用網(VPN),而這也是IPsec最主要的用途之一。應該注意的是,上述兩種操作模式在安全的實現方面有著很大差別。
因特網範圍內端到端通訊安全的發展比預料的要緩慢,其中部分原因,是因為其不夠普遍或者說不被普遍信任。公鑰基礎設施能夠得以形成(DNSSEC最初就是為此產生的),一部分是因為許多使用者不能充分地認清他們的需求及可用的選項,導致其作為內含物強加到賣主的產品中(這也必將得到廣泛採用);另一部分可能歸因於網路響應的退化(或說預期退化),就像兜售資訊的充斥而帶來的頻寬損失一樣。

與其它安全協議的對比

IPsec協議工作在OSI模型的第三層,使其在單獨使用時適於保護基於TCPUDP的協議(如安全套接子層(SSL)就不能保護UDP層的通訊流)。這就意味著,與傳輸層或更高層的協議相比,IPsec協議必須處理可靠性和分片的問題,這同時也增加了它的複雜性和處理開銷。相對而言,SSL/TLS依靠更高層的TCP(OSI的第四層)來管理可靠性和分片。

技術細節

認證頭(AH)

認證頭(Authentication Header,AH)被用來保證被傳輸分組的完整性和可靠性。此外,它還保護不受重放攻擊。認證頭試圖保護IP資料包的所有欄位,那些在傳輸IP分組的過程中要發生變化的欄位就只能被排除在外。當認證頭使用非對稱數字簽名演算法(如RSA)時,可以提供不可否認性(RFC 1826)。
認證頭分組圖示:
在這裡插入圖片描述
欄位含義:

    下一個頭:標識被傳送資料所屬的協議。
    載荷長度:認證頭包的大小。
    保留:為將來的應用保留(目前都置為0)。
    安全引數索引:與IP地址一同用來標識安全引數。
    序列號:單調遞增的數值,用來防止重放攻擊。
    認證資料:包含了認證當前包所必須的資料。

封裝安全載荷(ESP)

封裝安全載荷(Encapsulating Security Payload,ESP)協議對分組提供了源可靠性、完整性和保密性的支援。與AH頭不同的是,IP分組頭部不被包括在內。
ESP分組圖示:
在這裡插入圖片描述欄位含義:

    安全引數索引:與IP地址一同用來標識安全引數
    序列號:單調遞增的數值,用來防止重放攻擊。
    載荷資料:實際要傳輸的資料。
    填充:某些塊加密演算法用此將資料填充至塊的長度。
    填充長度:以位為單位的填充資料的長度。
    下一個頭:標識被傳送資料所屬的協議。
    認證資料:包含了認證當前包所必須的資料。

實現

FreeS/WAN專案已經開發了一個開源的GNU/Linux環境下的IPsec實現。且一個基於KAME專案的IPsec實現已經包含在NetBSD、FreeBSD以及2.6Linux核心中。從某種程度上說,也是因為這個原因,Free S/WAN專案的開發在2004年3月時被中止。OpenswanstrongSwanFree S/WAN延續。
至今已有許多IPsec協議和ISAKMP/IKE協議的實現。它們包括:

  • NRL IPsec,屬於原型的一種
  • OpenBSD,程式碼源於NRL IPsec
  • Mac OS X,包含了Kame IPsec的程式碼
  • Cisco IOS
  • Microsoft Windows
  • SSH Sentinel(現作為SafeNet的一部分)提供了工具包
  • Solaris

IPsec相關RFC文件

    RFC 2401
    IP協議的安全架構
    RFC 2402
    認證頭
    RFC 2406
    封裝安全載荷
    RFC 2407
    ISAKMP的IPsec解釋域(IPsec DoI)
    RFC 2408
    網路安全關係與金鑰管理協議(ISAKMP)
    RFC 2409
    因特網金鑰交換(IKE)

安全結構

IPsec協議工作在OSI 模型的第三層,使其在單獨使用時適於保護基於TCPUDP的協議(如 安全套接子層(SSL)就不能保護UDP層的通訊流)。這就意味著,與傳輸層或更高層的協議相比,IPsec協議必須處理可靠性和分片的問題,這同時也增加了它的複雜性和處理開銷。相對而言,SSL/TLS依靠更高層的TCPOSI的第四層)來管理可靠性和分片。

安全協議

(1)AH(Authentication Header) 協議。
它用來向 IP通訊提供資料完整性和身份驗證,同時可以提供抗重播服務。
在 IPv6 中協議採用 AH 後, 因為在主機端設定了一個基於演算法獨立交換的祕金鑰匙, 非法潛入的現象可得到有效防止, 祕金鑰匙由客戶和服務商共同設定。在傳送每個資料包時,IPv6 認證根據這個祕金鑰匙和資料包產生一個檢驗項。在資料接收端重新執行該檢驗項並進行比較,從而保證了對資料包來源的確認以及資料包不被非法修改。
(2)ESP(Encapsulated Security Payload) 協議。
它提供 IP層加密保證和驗證資料來源以對付網路上的監聽。因為 AH雖然可以保護通訊免受篡改, 但並不對資料進行變形轉換, 資料對於黑客而言仍然是清晰的。為了有效地保證資料傳輸安全, 在IPv6 中有另外一個報頭 ESP,進一步提供資料保密性並防止篡改。

安全聯盟 SA

安全聯盟 SA,記錄每條 IP安全通路的策略和策略引數。安全聯盟是 IPSec 的基礎, 是通訊雙方建立的一種協定,決定了用來保護資料包的協議、轉碼方式、金鑰以及金鑰有效期等。AH和 ESP都要用到安全聯盟,IKE的一個主要功能就是建立和維護安全聯盟。

金鑰管理協議

金鑰管理協議 ISAKMP, 提供共享安全資訊。Internet金鑰管理協議被定義在應用層,IETF規定了 Internet安全協議和 ISAKMP(Internet Security Association and Key Management Protocol) 來實現 IPSec 的金鑰管理,為身份認證的 SA 設定以及金鑰交換技術

安全特性

IPSec的安全特性主要有:

不可否認性

"不可否認性"可以證實訊息傳送方是唯一可能的傳送者,傳送者不能否認傳送過訊息。"不可否認性"是採用公鑰技術的一個特徵,當使用公鑰技術時,傳送方用私鑰產生一個數字簽名隨訊息一起傳送,接收方用傳送者的公鑰來驗證數字簽名。由於在理論上只有傳送者才唯一擁有私鑰,也只有傳送者才可能產生該數字簽名,所以只要數字簽名通過驗證,傳送者就不能否認曾傳送過該訊息。但"不可否認性"不是基於認證的共享金鑰技術的特徵,因為在基於認證的共享金鑰技術中,傳送方和接收方掌握相同的金鑰。

反重播性

"反重播"確保每個IP包的唯一性,保證資訊萬一被擷取複製後,不能再被重新利用、重新傳輸回目的地址。該特性可以防止攻擊者擷取破譯資訊後,再用相同的資訊包冒取非法訪問權(即使這種冒取行為發生在數月之後)。

資料完整性

防止傳輸過程中資料被篡改,確保發出資料和接收資料的一致性。IPSec利用Hash函式為每個資料包產生一個加密檢查和,接收方在開啟包前先計算檢查和,若包遭篡改導致檢查和不相符,資料包即被丟棄。

資料可靠性

在傳輸前,對資料進行加密,可以保證在傳輸過程中,即使資料包遭擷取,資訊也無法被讀。該特性在IPSec中為可選項,與IPSec策略的具體設定相關。