複製鏈接
請複製以下鏈接發送給好友

ipsec

(IPsec)

鎖定
[1]  互聯網安全協議Internet Protocol Security,IPSec)是一個協議包,通過對IP協議的分組進行加密和認證來保護IP協議的網絡傳輸協議簇(一些相互關聯的協議的集合)。
中文名
互聯網安全協議
外文名
Internet Protocol Security
本    質
開放標準的框架結構
作    用
保障網絡安全
縮    寫
IPSec
學    科
通信工程

ipsec簡介

IPSec是IETF(Internet Engineering Task Force,即國際互聯網工程技術小組)提出的使用密碼學保護IP層通信的安全保密架構 [4]  ,是一個協議簇,通過對IP協議的分組進行加密和認證來保護IP協議的網絡傳輸協議簇(一些相互關聯的協議的集合)。 [1] 
IPSec可以實現以下4項功能:①數據機密性:IPSec發送方包加密後再通過網絡發送。② 數據完整性:IPSec可以驗證IPSec發送方發送的包,以確保數據傳輸時沒有被改變。③數據認證:IPSec接受方能夠鑑別IPsec包的發送起源。此服務依賴數據的完整性。④反重放:IPSec接受方能檢查並拒絕重放包。 [4] 
IPSec主要由以下協議組成:
一、認證頭(AH),為IP數據報提供無連接數據完整性消息認證以及防重放攻擊保護;
二、封裝安全載荷(ESP),提供機密性、數據源認證、無連接完整性、防重放和有限的傳輸流(traffic-flow)機密性;
三、安全關聯(SA),提供算法和數據包,提供AH、ESP操作所需的參數。
四、密鑰協議(IKE),提供對稱密碼的鑰匙的生存和交換。

ipsec歷史

從1920-70年代初開始,美國高級研究項目局贊助了一系列實驗性的ARPANET加密設備,起初用於本地ARPANET數據包加密,隨後又用於TCP/IP數據包加密。從1986年到1991年,美國國家安全局在其安全數據網絡系統(SDN)計劃下贊助了互聯網安全協議的開發,包括摩托羅拉在內的各種供應商聚集在一起,於1988年生產了一種網絡加密設備,這項工作於1988年由NIST公開發表,其中第3層的安全協議(SP3)演變為ISO標準網絡層安全協議(NLSP)。
從1992年到1995年,有三個研究小組對IP層加密分別進行了獨立研究:
1. 1992年,美國海軍研究實驗室(NRL)開始了simpleinternetprotocolplus(SIPP)項目來研究IP加密協議
2. 1993年,實驗性軟件IP加密協議(swIPe)是由 JohnIoanndis等人在哥倫比亞大學SunOS和AT&T貝爾實驗室開始研發。
3. 1994年,Trusted Information Systems(TIS)的科學家徐崇偉(Wei Xu)在白宮信息高速公路項目的支持下,開發了第一代 IPSec 協議,它是在4.1BSD內核中編碼,同時支持x86和SUNOS CPU架構,增強了刷卡安全協議,併為數據加密標準開發了設備驅動程序。到1994年12月,TIS發佈了由DARPA贊助的開放源代碼的“手銬防火牆”產品,集成了3DES硬件加密,第一次實現IPSec VPN速度超過T1的商用產品。
美國國防部高級研究計劃局(DARPA)資助的研究工作下,1996年,NRL為IPsec開發了IETF標準跟蹤規範(rfc1825到rfc1827),它是在4.4 BSD內核中編碼的,同時支持x86和SPARC CPU架構。
1992年,互聯網工程任務組(IETF)成立了IP安全工作組,以規範對IP的公開指定的安全擴展,稱為IPSec。1995年,工作組批准了NRL開發的IPSec標準,從RFC-1825到RFC-1827發佈,NRL在1996年USENIX會議論文集中,描述 NRL 的開放源代碼IPSec,由麻省理工學院在線提供,併成為大多數初始商業實現的基礎。

ipsec標準現狀

隨着Internet的飛速發展,IPSec的應用領域越來越廣。與此同時,互聯網安全問題也日趨嚴重,網絡上的數據非常容易被他人惡意竊聽和篡改。IPSec協議是一個標準的網絡安全協議,也是一個開放標準的網絡架構,通過加密以確保網絡的安全通信。IPSec的作用主要包括確保IP數據安全以及抵抗網絡攻擊 [3] 
IPv6是IETF為IP協議分組通信制定的新的因特網標準,IPSec在RFC 6434以前是其中必選的內容,但在IPv4中的使用則一直只是可選的。這樣做的目的,是為了隨着IPv6的進一步流行,IPSec可以得到更為廣泛的使用。第一版IPSec協議在RFC2401-2409中定義。在2005年第二版標準文檔發佈,新的文檔定義在RFC 4301和RFC 4309中。

ipsec設計意圖

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

ipsec對比

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

ipsec技術細節

認證頭(AH)
認證頭(Authentication Header,AH)被用來保證被傳輸分組的完整性和可靠性。此外,它還保護不受重放攻擊。認證頭試圖保護IP數據報的所有字段,那些在傳輸IP分組的過程中要發生變化的字段就只能被排除在外。當認證頭使用非對稱數字簽名算法(如RSA)時,可以提供不可否認性(RFC 1826)。
認證頭分組圖示:
0
1
2
3
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7
下一個頭
載荷長度
保留
安全參數索引(SPI)
串行號
認證數據(可變長度)
字段含義:
  • 下一個頭:標識被傳送數據所屬的協議。
  • 載荷長度:認證頭包的大小。
  • 保留:為將來的應用保留(目前都置為0)。
  • 安全參數索引:與IP地址一同用來標識安全參數。
  • 串行號:單調遞增的數值,用來防止重放攻擊。
  • 認證數據:包含了認證當前包所必須的數據。
封裝安全載荷(ESP)
封裝安全載荷(Encapsulating Security Payload,ESP)協議對分組提供了源可靠性、完整性和保密性的支持。與AH頭不同的是,IP分組頭部不被包括在內。
ESP分組圖示:
0
1
2
3
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
安全參數串行(SPI)
串行號
載荷*(可變長度)

填充(0-255字節)

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

ipsec實現

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

ipsec相關RFC文檔

  • RFC 2401
  • IP協議的安全架構
  • RFC 2402
  • 認證頭
  • RFC 2406
  • 封裝安全載荷
  • RFC 2407
  • ISAKMP的IPSec解釋域(IPSec DoI)
  • RFC 2408
  • 網絡安全關係與密鑰管理協議(ISAKMP)
  • RFC 2409

ipsec安全結構

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

ipsec安全協議

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

ipsec安全聯盟 SA

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

ipsec密鑰管理協議

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

ipsec安全特性

IPSec的安全特性主要有: [2] 

ipsec不可否認性

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

ipsec反重播性

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

ipsec數據完整性

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

ipsec數據可靠性

在傳輸前,對數據進行加密,可以保證在傳輸過程中,即使數據包遭截取,信息也無法被讀。該特性在IPSec中為可選項,與IPSec策略的具體設置相關。
參考資料
  • 1.    季慶光, 馮登國. 對幾類重要網絡安全協議形式模型的分析[J]. 計算機學報, 2005, 28(7):1071-1083.
  • 2.    謝冬青, 李超, 周洲儀. 網絡安全協議的一般框架及其安全性分析[J]. 湖南大學學報(自然科學版), 2000, 27(2):90-94.
  • 3.    廖悦欣. IPSec協議實現技術研究[D]. 華南理工大學.
  • 4.    王琦, 張維勇, 靳鵬. 網絡安全協議IPSec的研究與探討[J]. 合肥工業大學學報:自然科學版, 2003, 26(3):4.