ipsec

ipsec

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

簡介

IPSec是IETF(Internet Engineering Task Force,即國際互聯網工程技術小組)提出的使用密碼學額保護IP層通信的安全保密架構 ,是一個協議簇,通過對IP協議的分組進行加密和認證來保護IP協議的網絡傳輸協議簇(一些相互關聯的協議的集合)。

IPSec可以實現以下4項功能:①數據機密性:IPSec發送方将包加密後再通過網絡發送。② 數據完整性:IPSec可以驗證IPSec發送方發送的包,以确保數據傳輸時沒有被改變。③數據認證:IPSec接受方能夠鑒别IPsec包的發送起源。此服務依賴數據的完整性。④反重放:IPSec接受方能檢查并拒絕重放包。

IPSec主要由以下協議組成:

一、認證頭(AH),為IP數據報提供無連接數據完整性、消息認證以及防重放攻擊保護;

二、封裝安全載荷(ESP),提供機密性、數據源認證、無連接完整性、防重放和有限的傳輸流(traffic-flow)機密性;

三、安全關聯(SA),提供算法和數據包,提供AH、ESP操作所需的參數。

四、密鑰協議(IKE),提供對稱密碼的鑰匙的生存和交換。

曆史

從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,由麻省理工學院在線提供,并成為大多數初始商業實現的基礎

标準現狀

随着Internet的飛速發展,IPSec的應用領域越來越廣。與此同時,互聯網安全問題也日趨嚴重,網絡上的數據非常容易被他人惡意竊聽和篡改。IPSec協議是一個标準的網絡安全協議,也是一個開放标準的網絡架構,通過加密以确保網絡的安全通信。IPSec的作用主要包括确保IP數據安全以及抵抗網絡攻擊。

IPv6是IETF為IP協議分組通信制定的新的因特網标準,IPSec在RFC 6434以前是其中必選的内容,但在IPv4中的使用則一直隻是可選的。這樣做的目的,是為了随着IPv6的進一步流行,IPSec可以得到更為廣泛的使用。第一版IPSec協議在RFC2401-2409中定義。在2005年第二版标準文檔發布,新的文檔定義在RFC 4301和RFC 4309中。

設計意圖

IPSec被設計用來提供(1)入口對入口通信安全,在此機制下,分組通信的安全性由單個節點提供給多台機器(甚至可以是整個局域網);(2)端到端分組通信安全,由作為端點的計算機完成安全操作。上述的任意一種模式都可以用來構建虛拟專用網(VPN),而這也是IPSec最主要的用途之一。應該注意的是,上述兩種操作模式在安全的實現方面有着很大差别。

因特網範圍内端到端通信安全的發展比預料的要緩慢,其中部分原因,是因為其不夠普遍或者說不被普遍信任。公鑰基礎設施能夠得以形成(DNSSEC最初就是為此産生的),一部分是因為許多用戶不能充分地認清他們的需求及可用的選項,導緻其作為内含物強加到賣主的産品中(這也必将得到廣泛采用);另一部分可能歸因于網絡響應的退化(或說預期退化),就像兜售信息的充斥而帶來的帶寬損失一樣。

對比

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

技術細節

認證頭(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)

串行号

認證數據(可變長度)

下一個頭

載荷長度

保留

安全參數索引(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地址一同用來标識安全參數

串行号:單調遞增的數值,用來防止重放攻擊。

載荷數據:實際要傳輸的數據。

填充:某些塊加密算法用此将數據填充至塊的長度。

填充長度:以位為單位的填充數據的長度。

下一個頭:标識被傳送數據所屬的協議。

認證數據:包含了認證當前包所必須的數據。

實現

FreeS/WAN項目已經開發了一個開源的GNU/Linux環境下的IPSec實現。且一個基于KAME項目的IPSec實現已經包含在NetBSD、FreeBSD以及2.6Linux内核中。從某種程度上說,也是因為這個原因,Free S/WAN項目的開發在2004年3月時被中止。Openswan和strongSwan是Free S/WAN延續。

至今已有許多IPSec協議和ISAKMP/IKE協議的實現。它們包括:

NRL IPSec,屬于原型的一種

OpenBSD,代碼源于NRL IPSec

Mac OS X,包含了Kame IPsec的代碼

Cisco IOS

Microsoft Windows

SSH Sentinel(現作為SafeNet的一部分)提供了工具包

Solaris

相關RFC文檔

RFC 2401

IP協議的安全架構

RFC 2402

認證頭

RFC 2406

封裝安全載荷

RFC 2407

ISAKMP的IPSec解釋域(IPSec DoI)

RFC 2408

網絡安全關系與密鑰管理協議(ISAKMP)

RFC 2409

因特網密鑰交換(IKE)

安全結構

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

安全協議

(1)AH(AuthenticationHeader) 協議。

它用來向 IP通信提供數據完整性和身份驗證,同時可以提供抗重播服務。

在 IPv6 中協議采用 AH 後, 因為在主機端設置了一個基于算法獨立交換的秘密鑰匙, 非法潛入的現象可得到有效防止, 秘密鑰匙由客戶和服務商共同設置。在傳送每個數據包時,IPv6 認證根據這個秘密鑰匙和數據包産生一個檢驗項。在數據接收端重新運行該檢驗項并進行比較,從而保證了對數據包來源的确認以及數據包不被非法修改。

(2)ESP(EncapsulatedSecurityPayload) 協議。

它提供 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策略的具體設置相關。

相關詞條

相關搜索

其它詞條