IPsec

出自Local Chinese Wikipedia
(重新導向自IPSEC
跳至導覽 跳至搜尋

Template:NoteTA 腳本錯誤:沒有「sidebar」這個模塊。

File:Internetprotocolsecurity.JPG
位於網絡層中的IPsec

網際網路安全協定Template:Langx,縮寫:IPsec)是一個協議套件,透過對IP協議分組進行加密認證來保護IP協議的網絡傳輸協議族(一些相互關聯的協議的集合)。

IPsec主要由以下協議組成[1][2]

  1. 認證頭(AH),為IP數據報提供無連接數據完整性腳本錯誤:沒有「ilh」這個模塊。以及防重放攻擊保護[3][4]
  2. 封裝安全載荷(ESP),提供機密性、數據源認證、無連接完整性、防重放和有限的傳輸流(traffic-flow)機密性[5]
  3. 網際網路金鑰交換(英語: Internet Key Exchange ,簡稱IKE或IKEv2),為AH、ESP操作所需的安全關聯(SA)提供算法、數據包和金鑰參數[6]

Template:Internet security protocols

標準現狀[編輯]

IPsec的源始編碼是在IPv4的環境中於1994年開發,第一版IPsec協議在RFC 2401-2409中定義。在2005年第二版標準文檔發布,新的文檔定義在RFC 4301和RFC 4309中[7][8]。在IPv4中IPsec的使用是一個可選項,在IPv6 RFC 6434中為必選的內容 [9],這樣做的目的,是為了隨著 IPv6的進一步流行,IPsec可以得到更為廣泛的使用。

歷史概要[編輯]

從1920-70年代初開始,美國高級研究項目局贊助了一系列實驗性的ARPANET加密設備,起初用於本地ARPANET數據包加密,隨後又用於TCP/IP數據包加密。

從1986年到1991年,美國國家安全局在其安全數據網絡系統(SDN)計劃下贊助了網際網路安全協議的開發,包括摩托羅拉在內的各種供應商聚集在一起,於1988年生產了一種網絡加密設備,這項工作於1988年由NIST公開發表,其中第3層的安全協議(SP3)演變為ISO標準的網絡層安全協議(NLSP)。[10]

從1992年到1995年,有三個研究小組對IP層加密分別進行了獨立研究:

  • 1. 1992年,美國海軍研究實驗室(NRL)開始了Simple Internet Protocol Plus(SIPP)項目來進行IP加密協議的研究。
  • 2. 1993年,哥倫比亞大學SunOSAT&T貝爾實驗室,開始由 JohnIoanndis等人研發實驗性軟體IP加密協議 (swIPe)。
  • 3. 1993年,在白宮信息高速公路項目的支持下,Trusted Information Systems(TIS)科學家徐崇偉(Wei Xu)[11]研究和開發了第一代軟體 IPSEC 協議,它的編碼是在BSD 4.1內核中完成的,支持x86和SUNOS CPU架構,同時開發了硬體安全3DES的加密技術,並為數據加密標準開發了設備驅動程序。到1994年12月,TIS發布了由DARPA贊助的開放原始碼的「手銬防火牆」產品,其VPN速度超過T1,首次用 IPSec VPN 實現了美國東西海岸安全連結,也是歷史上第一個 IPSec 商用產品。[12]
  • 4. 在美國國防部高級研究計劃局(DARPA)資助的研究工作下,1996年,NRL為IPsec開發了IETF標準跟蹤規範(rfc1825到rfc1827),它的編碼是在BSD 4.4內核中,同時支持x86和SPARC CPU架構[13]

網際網路工程任務組(IETF)於1992年成立了IP安全工作組,以規範對 IPsec 的公開協議,1995年工作組成員有 TIS、Cisco、FTP、Checkpoint 等五個企業組成,首次合作協商改進了 NRL 起草的 IPsec 協議標準,以及規範了 Cisco 和 TIS 提供的 IPsec 開放原始碼,此後,發布了RFC-1825和RFC-1827,NRL在1996年 USENIX 會議論文集中進行了描述了,由麻省理工學院在線提供,並成為大多數初始商業實現的基礎。[14]

設計意圖[編輯]

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

頁面Template:Mark I/styles.css沒有內容。網際網路範圍內端到端通信安全的發展比預料的要緩慢[來源請求],其中部分原因,是因為其不夠普遍或者說不被普遍信任。公鑰基礎設施能夠得以形成(DNSSEC最初就是為此產生的),一部分是因為許多用戶不能充分地認清他們的需求及可用的選項,導致其作為內含物強加到賣主的產品中(這也必將得到廣泛採用);另一部分可能歸因於網絡響應的退化(或說預期退化),就像兜售信息的充斥而帶來的帶寬損失一樣。

IPsec與其它網際網路安全協議的對比[編輯]

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

技術細節[編輯]

腳本錯誤:沒有「Message box」這個模塊。

認證頭(AH)[編輯]

認證頭(Authentication Header,AH)被用來保證被傳輸分組的完整性和可靠性。此外,它還保護不受重放攻擊。認證頭試圖保護IP數據報的所有欄位,那些在傳輸IP分組的過程中要發生變化的欄位就只能被排除在外。當認證頭使用非對稱數字簽名算法(如RSA)時,可以提供不可否認性(RFC 1826)[15]

認證頭分組圖示:

位偏移 字節 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
0 下一個頭 載荷長度 保留
32 安全參數索引(SPI)
64 序列號
96+ 認證數據(可變長度)

欄位含義:

下一個頭:標識被傳送數據所屬的協議。
載荷長度:認證頭包的大小。
保留:為將來的應用保留(目前都置為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
0 安全參數序列(SPI)
32 序列號
64+ 載荷*(可變長度)
  填充(0-255位元組)
    填充長度 下一個頭
認證數據(可變長度)

欄位含義:

安全參數索引:與IP位址一同用來標識安全參數
序列號:單調遞增的數值,用來防止重放攻擊。
載荷數據:如果沒使用ESP的加密功能,則載荷數據域的內容是「下一個頭」所指示的數據;如果使用了ESP的加密功能,則使用加密載荷數據和ESP尾部數據所得的密文作為payload data.
填充:某些塊加密算法用此將數據填充至塊的長度。
填充長度:以位為單位的填充數據的長度。
下一個頭:標識載荷中封裝的數據所屬的協議。
認證數據:又叫做完整性校驗值(ICV)。包含了認證當前包所必須的數據。

安全關聯(SA)[編輯]

腳本錯誤:沒有「main」這個模塊。

實現[編輯]

FreeS/WAN項目已經開發了一個開源GNU/Linux作業系統下的IPsec實現。Free S/WAN項目的開發在2004年時被中止。OpenswanstrongSwanlibreswan是Free S/WAN延續。

至今已有許多IPsec協議和ISAKMPIKE協議的實現。它們包括:

參見[編輯]

參考文獻[編輯]

  1. Thayer, R.; Doraswamy, N.; Glenn, R.. IP Security Document Roadmap. IETF. November 1998.
    1. REDIRECT Template:Noprint. RFC 2411. 
  2. Hoffman, P.. Cryptographic Suites for IPsec. IETF. December 2005.
    1. REDIRECT Template:Noprint. RFC 4308. 
  3. Kent, S.; Atkinson, R.. IP Authentication Header. IETF. November 1998.
    1. REDIRECT Template:Noprint. RFC 2402. 
  4. Kent, S.. IP Authentication Header. IETF. December 2005.
    1. REDIRECT Template:Noprint. RFC 4302. 
  5. Kent, S.; Atkinson, R.. IP Encapsulating Security Payload (ESP). IETF. November 1998.
    1. REDIRECT Template:Noprint. RFC 2406. 
  6. The Internet Key Exchange (IKE), RFC 2409, §1 Abstract
  7. RFC 4301
  8. RFC 4309
  9. "IPv6 Node Requirements", E. Jankiewicz, J. Loughney, T. Narten (December 2011)
  10. Template:Cite web
  11. Template:Cite web
  12. Template:Cite web
  13. "https://www.usenix.org/legacy/publications/library/proceedings/sd96/atkinson.html頁面存檔備份,存於網際網路檔案館)"
  14. Template:Cite web
  15. RFC 1826

外部連結[編輯]

IPsec相關RFC文檔[編輯]

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

腳本錯誤:沒有「Navbox」這個模塊。 Template:TLS和SSL

腳本錯誤:沒有「Authority control」這個模塊。腳本錯誤:沒有「Check for unknown parameters」這個模塊。