-
「Internet 協議安全性 (IPSec)」是一種開放標準的框架結構,經過使用加密的
安全服務以確保在 Internet 協議 (IP) 網絡上進行保密而安全的通信。Microsoft® Windows® 2000、Windows XP 和 Windows Server 2003 家族實施 IPSec 是基於「Internet 工程任務組 (IETF)」IPSec
工做組開發的標準。
IPSec(InternetProtocolSecurity)是安全聯網的長期方向。它經過
端對端的安全性來提供主動的保護以防止
專用網絡與 Internet 的攻擊。在通訊中,只有發送方和接收方纔是惟一必須瞭解 IPSec 保護的計算機。在 Windows 2000、Windows XP 和 Windows Server 2003 家族中,IPSec 提供了一種能力,以保護
工做組、局域網計算機、域
客戶端和服務器、分支機構(物理上爲遠程機構)、Extranet 以及漫遊客戶端之間的通訊。
IPSec是IETF(Internet Engineering Task Force,Internet工程任務組)的IPSec小組創建的一組IP安全協議集。IPSec定義了在網際層使用的安全服務,其功能包括數據加密、對網絡單元的訪問控制、數據源地址驗證、數據完整性檢查和防止重放攻擊。
IPSec的安全服務要求支持共享密鑰完成認證和/或保密,而且手工輸入密鑰的方式是必需要支持的,其目的是要保證IPSec協議的互操做性。固然,手工輸入密鑰方式的擴展能力不好,所以在IPSec協議中引入了一個密鑰管理協議,稱Internet密鑰交換協議——IKE,該協議能夠動態認證IPSec對等體,協商安全服務,並自動生成共享密鑰。
-
中文名
-
Internet 協議安全性
-
外文名
-
ipsec
-
本 質
-
開放標準的框架結構
-
做 用
-
保障網絡安全
做用目標
隨着物聯網設備不斷融入人們的平常生活,物聯網設備與互聯網的鏈接就成爲不可缺乏的條件。那麼物聯網設備接入互聯網時,又如何確保網絡通信的安全呢?而早已演進成熟的IPSec(Internet Protocol Security,Internet 協議安全性)就成爲衆多物聯網設備確保網絡通信安全的選擇。IPSec有以下兩條。
1.保護 IP 數據包的內容。
這兩個目標都是經過使用基於加密的保護服務、安全協議與動態
密鑰管理來實現的。這個基礎爲專用
網絡計算機、域、站點、
遠程站點、Extranet 和撥號用戶之間的通訊提供了既有力又靈活的保護。它甚至能夠用來阻礙特定通信類型的接收和發送。
其中以接收和發送最爲重要。
安全結構
IPsec協議工做在OSI 模型的第三層,使其在單獨使用時適於保護基於
TCP或
UDP的協議(如 安全套接子層(
SSL)就不能保護UDP層的通訊流)。這就意味着,與傳輸層或更高層的協議相比,IPsec協議必須處理可靠性和分片的問題,這同時也增長了它的複雜性和處理開銷。相對而言,
SSL/
TLS依靠更高層的
TCP(OSI的第四層)來管理可靠性和分片。
安全協議
(1)AH(AuthenticationHeader) 協議。
它用來向 IP通訊提供數據完整性和身份驗證,同時能夠提供抗重播服務。
AH幀格式
在 IPv6 中協議採用 AH 後, 由於在主機端設置了一個基於算法獨立交換的祕密鑰匙, 非法潛入的現象可獲得有效防止, 祕密鑰匙由客戶和服務商共同設置。在傳送每一個數據包時,IPv6 認證根據這個祕密鑰匙和數據包產生一個檢驗項。在數據接收端從新運行該檢驗項並進行比較,從而保證了對數據包來源的確認以及數據包不被非法修改。
(2)ESP(EncapsulatedSecurityPayload) 協議。
它提供 IP層加密保證和驗證數據源以對付網絡上的監聽。由於 AH雖然能夠保護通訊免受篡改, 但並不對數據進行變形轉換, 數據對於黑客而言仍然是清晰的。爲了有效地保證數據傳輸安全, 在IPv6 中有另一個報頭 ESP,進一步提供數據保密性並防止篡改。
ESP幀格式
安全聯盟 SA
安全聯盟 SA,記錄每條 IP安全通路的策略和策略參數。安全聯盟是 IPSec 的基礎, 是通訊雙方創建的一種協定,決定了用來保護數據包的協議、轉碼方式、密鑰以及密鑰有效期等。AH和 ESP都要用到安全聯盟,IKE的一個主要功能就是創建和維護安全聯盟。
IPSec安全機制結構
密鑰管理協議
密鑰管理協議 ISAKMP, 提供共享安全信息。Internet密鑰管理協議被定義在應用層,IETF規定了 Internet安全協議和 ISAKMP(Internet Security Association and Key Management Protocol) 來實現 IPSec 的密鑰管理,爲身份認證的 SA 設置以及密鑰交換技術
封裝模式
隧道(tunnel)模式:用戶的整個IP數據包被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數據被封裝在一個新的IP數據包中。一般,隧道模式應用在兩個安全網關之間的通信。
隧道模式封裝結構
傳輸模式封裝結構
傳輸(transport)模式:只是傳輸層數據被用來計算AH或ESP頭,AH或ESP頭以及ESP加密的用戶數據被放置在原IP包頭後面。一般,傳輸模式應用在兩臺主機之間的通信,或一臺主機和一個安全網關之間的通信。定義了一個通用格式。
常見問題
IPSec 基於
端對端的安全模式,在源 IP 和目標 IP 地址之間創建信任和安全性。考慮認爲 IP 地址自己沒有必要具備標識,但 IP 地址後面的系統必須有一個經過
身份驗證程序驗證過的標識。只有發送和接收的計算機須要知道通信是安全的。每臺計算機都假定進行通信的媒體不安全,所以在各自的
終端上實施安全設置。除非兩臺計算機之間正在進行防火牆類型的數據包篩選或
網絡地址轉換,不然僅從源向目標
路由數據的計算機不要求支持 IPSec。該模式容許爲下列企業方案成功部署 IPSec:
一般,兩端都須要 IPSec 配置(稱爲 IPSec 策略)來設置選項與安全設置,以容許兩個系統對如何保護它們之間的通信達成協議。Windows 2000、Windows XP 和 Windows Server 2003 家族實施 IPSec 是基於「Internet 工程任務組 (IETF)」IPSec
工做組開發的業界標準。IPSec 相關服務部分是由 Microsoft 與 Cisco Systems, Inc. 共同開發的。
IPSec 協議不是一個單獨的協議,它給出了應用於IP層上網絡
數據安全的一整套體系結構,包括網絡認證協議 Authentication Header(AH)、封裝安全載荷協議Encapsulating Security Payload(ESP)、
密鑰管理協議Internet Key Exchange (IKE)和用於網絡認證及加密的一些算法等。這些協議用於提供數據認證、數據完整性和加密性三種保護形式。AH和ESP均可以提供認證服務,但AH提供的認證服務要強於ESP。而IKE主要是對密鑰進行交換管理,對算法、協議和密鑰3個方面進行協商。
安全特性
IPSec的安全特性主要有:
·不能否認性
"不能否認性"能夠證明消息發送方是惟一可能的發送者,發送者不可否認發送過消息。"不能否認性"是採用公鑰技術的一個特徵,當使用公鑰技術時,發送方用
私鑰產生一個
數字簽名隨消息一塊兒發送,接收方用發送者的公鑰來驗證數字簽名。因爲在理論上只有發送者才惟一擁有
私鑰,也只有發送者纔可能產生該
數字簽名,因此只要數字簽名經過驗證,發送者就不可否認曾發送過該消息。但"不能否認性"不是基於認證的共享
密鑰技術的特徵,由於在基於認證的共享密鑰技術中,發送方和接收方掌握相同的密鑰。
·反重播性
"反重播"確保每一個IP包的惟一性,保證信息萬一被截取複製後,不能再被從新利用、從新傳輸回目的地址。該特性能夠防止攻擊者截取破譯信息後,再用相同的
信息包冒取非法訪問權(即便這種冒取行爲發生在數月以後)。
·數據完整性
防止傳輸過程當中數據被篡改,確保發出數據和接收數據的一致性。IPSec利用Hash函數爲每一個數據包產生一個加密檢查和,接收方在打開包前先計算檢查和,若包遭篡改致使檢查和不相符,數據包即被丟棄。
·數據可靠性(加密)
在傳輸前,對數據進行加密,能夠保證在傳輸過程當中,即便數據包遭截取,信息也沒法被讀。該特性在IPSec中爲可選項,與IPSec策略的具體設置相關。
·認證
數據源發送信任狀,由接收方驗證信任狀的合法性,只有經過認證的系統才能夠創建通訊鏈接。
公鑰認證
一個架構良好的公鑰體系,在信任狀的傳遞中不形成任何信息外泄,能解決不少安全問題。IPSec與特定的公鑰體系相結合,能夠提供基於電子證書的認證。
公鑰證書認證在Windows 2000中,適用於對非Windows 2000
主機、獨立主機,非信任域成員的客戶機、或者不運行Kerberos v5認證協議的主機進行
身份認證。
預置共享密鑰
IPSec也可使用預置共享
密鑰進行認證。預共享意味着通訊雙方必須在IPSec策略設置中就共享的
密鑰達成一致。以後在安全協商過程當中,信息在傳輸前使用共享
密鑰加密,接收端使用一樣的密鑰解密,若是接收方可以解密,即被認爲能夠經過認證。但在Windows 2000 IPSec策略中,這種認證方式被認爲不夠安全而通常不推薦使用。
公鑰加密
IPSec的公鑰加密用於
身份認證和
密鑰交換。公鑰加密,也被稱爲"不對稱加密法",即加解密過程須要兩把不一樣的
密鑰,一把用來產生
數字簽名和加密數據,另外一把用來驗證數字簽名和對數據進行解密。
使用
公鑰加密法,每一個用戶擁有一個
密鑰對,其中
私鑰僅爲其我的所知,公鑰則可分發給任意須要與之進行加密通訊的人。例如:A想要發送加密信息給B,則A須要用B的公鑰加密信息,以後只有B才能用他的
私鑰對該加密信息進行解密。雖然
密鑰對中兩把鑰匙彼此相關,但要想從其中一把來推導出另外一把,以目前計算機的運算能力來看,這種作法幾乎徹底不現實。所以,在這種加密法中,
公鑰能夠廣爲分發,而
私鑰則須要仔細地妥善保管。
Hash函數
Hash信息驗證碼HMAC(Hash message authentication codes)驗證接收消息和發送消息的徹底一致性(完整性)。這在數據交換中很是關鍵,尤爲當傳輸媒介如公共網絡中不提供安全保證時更顯其重要性。
1)雙方必須在通訊的兩個端頭處各自執行Hash函數計算;
2)使用Hash函數很容易從消息計算出
消息摘要,但其逆向反演過程以目前計算機的運算能力幾乎不可實現。
Hash散列自己就是所謂加密檢查和或消息完整性編碼MIC(Message Integrity Code),通訊雙方必須各自執行函數計算來驗證消息。舉例來講,發送方首先使用HMAC算法和共享
密鑰計算消息檢查和,而後將計算結果A封裝進數據包中一塊兒發送;接收方再對所接收的消息執行HMAC計算得出結果B,並將B與A進行比較。若是消息在傳輸中遭篡改導致B與A不一致,接收方丟棄該數據包。
·HMAC-MD5 MD5(
消息摘要5)基於RFC1321。MD5對MD4作了改進,計算速度比MD4稍慢,但安全性能獲得了進一步改善。MD5在計算中使用了64個32位常數,最終生成一個128位的完整性檢查和。
·HMAC-SHA 安全
Hash算法定義在NIST FIPS 180-1,其算法以MD5爲原型。 SHA在計算中使用了79個32位常數,最終產生一個160位完整性檢查和。SHA檢查和長度比MD5更長,所以安全性也更高。
數據可靠性
IPSec使用的
數據加密算法是DES--Data Encryption Standard(
數據加密標準)。DES
密鑰長度爲56位,在形式上是一個64位數。DES以64位(8字節)爲分組對
數據加密,每64位明文,通過16輪置換生成64位密文,其中每字節有1位用於
奇偶校驗,因此實際有效
密鑰長度是56位。 IPSec還支持3DES算法,3DES可提供更高的安全性,但相應地,計算速度更慢。
密鑰管理
IPSec策略使用"動態密鑰更新"法來決定在一次通訊中,新密鑰產生的頻率。動態密鑰指在通訊過程當中,數據流被劃分紅一個個"數據塊",每個"數據塊"都使用不一樣的
密鑰加密,這能夠保證萬一攻擊者中途截取了部分通訊數據流和相應的密鑰後,也不會危及到全部其他的通訊信息的安全。動態
密鑰更新服務由Internet密鑰交換IKE(Internet Key Exchange)提供,詳見IKE介紹部分。
IPSec策略容許專家級用戶自定義
密鑰生命週期。若是該值沒有設置,則按缺省時間間隔自動生成新
密鑰。
密鑰長度每增長一位,可能的密鑰數就會增長一倍,相應地,破解密鑰的難度也會隨之成指數級加大。IPSec策略提供多種
加密算法,可生成多種長度不等的
密鑰,用戶可根據不一樣的安全需求加以選擇。
·Diffie-Hellman算法
要啓動安全通信,通訊兩端必須首先獲得相同的共享
密鑰(主密鑰),但共享密鑰不能經過網絡相互發送,由於這種作法極易泄密。
Diffie-Hellman算法是用於
密鑰交換的最先最安全的算法之一。DH算法的基本工做原理是:通訊雙方公開或半公開交換一些準備用來生成密鑰的"材料數據",在彼此交換過密鑰生成"材料"後,兩端能夠各自生成出徹底同樣的共享密鑰。在任什麼時候候,雙方都毫不交換真正的
密鑰。
通訊雙方交換的密鑰生成"材料",長度不等,"材料"長度越長,所生成的密鑰強度也就越高,密鑰破譯就越困難。 除進行
密鑰交換外,IPSec還使用DH算法生成全部其餘加密密鑰。
AH報頭字段包括:
·Next Header(下一個報頭): 識別下一個使用IP協議號的報頭,例如,Next Header值等於"6",表示緊接其後的是TCP報頭。
·Length(長度): AH報頭長度。
·Security Parameters Index (SPI,安全參數索引): 這是一個爲數據報識別安全關聯的 32 位僞隨機值。SPI 值 0 被保留來代表"沒有安全關聯存在"。
·Sequence Number(
序列號):從1開始的32位單增序列號,不容許重複,惟一地標識了每個發送數據包,爲安全關聯提供反重播保護。接收端校驗
序列號爲該字段值的數據包是否已經被接收過,如果,則拒收該數據包。
·Authentication Data(AD,認證數據): 包含完整性檢查和。接收端接收數據包後,首先執行hash計算,再與發送端所計算的該字段值比較,若二者相等,表示數據完整,若在傳輸過程當中數據遭修改,兩個計算結果不一致,則丟棄該數據包。
數據包
如圖二所示,AH報頭插在IP報頭以後,TCP,UDP,或者ICMP等上層協議報頭以前。通常AH爲整個
數據包提供完整性檢查,但若是IP報頭中包含"生存期(Time To Live)"或"服務類型(Type of Service)"等值可變字段,則在進行完整性檢查時應將這些值可變字段去除。
圖2 AH爲整個數據包提供完整性檢查
協議結構
ESP(Encapsulating Security Payload)爲IP
數據包提供完整性檢查、認證和加密,能夠看做是"超級 AH", 由於它提供機密性並可防止篡改。ESP服務依據創建的安全關聯(SA)是可選的。然而,也有一些限制:
·完整性檢查和認證一塊兒進行。
·僅當與完整性檢查和認證一塊兒時,"重播(Replay)"保護纔是可選的。
·"重播"保護只能由接收方選擇。
ESP的加密服務是可選的,但若是啓用加密,則也就同時選擇了完整性檢查和認證。由於若是僅使用加密,入侵者就可能僞造包以發動密碼分析攻擊。
ESP能夠單獨使用,也能夠和AH結合使用。通常ESP不對整個數據包加密,而是隻加密IP包的有效載荷部分,不包括IP頭。但在
端對端的隧道通訊中,ESP須要對整個數據包加密。
如圖三所示,ESP報頭插在IP報頭以後,TCP或UDP等
傳輸層協議報頭以前。ESP由IP協議號"50"標識。
圖3 ESP報頭、報尾和認證報尾
ESP報頭字段包括:
·Security Parameters Index (SPI,安全參數索引):爲數據包識別安全關聯。
·Sequence Number(序列號):從1開始的32位單增序列號,不容許重複,惟一地標識了每個發送數據包,爲安全關聯提供反重播保護。接收端校驗序列號爲該字段值的數據包是否已經被接收過,如果,則拒收該數據包。 ESP報尾字段包括:
·Padding(擴展位):0-255個字節。DH算法要求數據長度(以位爲單位)模512爲448,若應用數據長度不足,則用擴展位填充。
·Padding Length(擴展位長度):接收端根據該字段長度去除數據中擴展位。
·Next Header(下一個報頭):識別下一個使用IP協議號的報頭,如TCP或UDP。
ESP認證報尾字段:
·Authentication Data(AD,認證數據): 包含完整性檢查和。完整性檢查部分包括ESP報頭、有效載荷(
應用程序數據)和ESP報尾。見圖四。
圖4 ESP的加密部分和完整性檢查部分
上圖所示,ESP報頭的位置在IP報頭以後,TCP,UDP,或者ICMP等
傳輸層協議報頭以前。若是已經有其餘IPSec協議使用,則ESP報頭應插在其餘任何IPSec協議報頭以前。ESP認證報尾的完整性檢查部分包括ESP報頭、
傳輸層協議報頭,應用數據和ESP報尾,但不包括IP報頭,所以ESP不能保證IP報頭不被篡改。ESP加密部分包括上層
傳輸協議信息、數據和ESP報尾。
ESP和AH
以上介紹的是傳輸模式下的AH協議和ESP協議,ESP隧道模式和AH隧道模式與傳輸模式略有不一樣。
在
隧道模式下,整個原數據包被看成有效載荷
封裝了起來,外面附上新的IP報頭。其中"內部"IP報頭(原IP報頭)指定最終的信源和信宿地址,而"外部"IP報頭(新IP報頭)中包含的經常是作中間處理的安全
網關地址。
與傳輸模式不一樣,在
隧道模式中,原IP地址被看成有效載荷的一部分受到IPSec的安全保護,另外,經過對
數據加密,還能夠將
數據包目的地址隱藏起來,這樣更有助於保護端對端隧道通訊中數據的安全性。
ESP
隧道模式中籤名部分(完整性檢查和認證部分)和加密部分分別如圖所示。ESP的簽名不包括新IP頭。
下圖標示出了AH
隧道模式中的簽名部分。AH隧道模式爲整個
數據包提供完整性檢查和認證,認證功能優於ESP。但在
隧道技術中,AH協議不多單獨實現,一般與ESP協議組合使用。
圖6 AH隧道模式
攻擊防護
IPv6提供了更廣闊的
地址空間,但就安全性而言,IPv6並不比IPv4安全,甚至是某些攻擊手段的自然土壤,好比DDos。
攻擊方式
IPsec是IPv6引覺得傲的
安全策略,下面咱們說下這種策略帶來的問題。最直接的,IPsec是端到端的加密,中間傳輸過程是透明的,若是竊聽者沒有對應
密鑰,那麼就沒法解開數據內容;因此像路由
防火牆等基於
內容過濾的
安全策略將沒法存在;而若是經過某種方式,使得路由和防火牆可以解開數據包,那麼IPsec的安全性也就不存在了。
更廣闊的
地址空間致使更容易僞造源地址,也就更難以追蹤。
利用IPv6的自定義擴展頭,自定義路由路徑,就能夠定義複雜的路由路徑,好比環路徑等,進一步增長追蹤難度並消耗更多路由資源。自定義擴展頭,也致使更復雜的安全過濾。還可使用極大的擴展頭進行稱爲畸形炸彈的DDos攻擊。
防護策略
目前主要防護思路有基於統計特徵的防護、基於Netfilter的防護等。