IP安全加密——IPSec使用了網(wǎng)絡(luò)通信加密技術(shù)。雖然不能加密數(shù)據(jù)包的頭部和尾部信息(如源/目的IP地址、端口號、CRC校驗值等),但可對數(shù)據(jù)包數(shù)據(jù)進行加密。由于加密過程發(fā)生在IP 層,因此可在不改變POP/WWW等協(xié)議的情況下進行網(wǎng)絡(luò)協(xié)議的安全加密。同時它也可以用于實現(xiàn)局域網(wǎng)間(通過互聯(lián)網(wǎng))的安全連接。
IP協(xié)議的安全體系結(jié)構(gòu)
IPv4 的包本身沒有提供任何安全保護,黑客可以通過信息包探測、IP電子欺騙、連接截獲、replay攻擊(是一種不斷發(fā)相同序列號的包使系統(tǒng)崩潰的攻擊方法) 等方法來攻擊。因此,我們收到的數(shù)據(jù)包存在著以下危險:并非來自合法的發(fā)送者; 數(shù)據(jù)在傳輸過程中被人修改; 數(shù)據(jù)內(nèi)容已被人竊取(例如軍事機密等重要信息的對話)。IPsec的目的就是為了實現(xiàn)數(shù)據(jù)傳輸?shù)耐暾裕ㄔ吹刂夫炞C和保證數(shù)據(jù)沒有被修改)和機密性(沒有被人看過)以及提供一定程度的對replay攻擊的保護。IPsec可用它為IP及其上層協(xié)議(TCP和UDP等)提供安全保護。
IPsec的基本結(jié)構(gòu),它是利用認證頭標(AH)和封裝化安全凈荷(ESP)來實現(xiàn)數(shù)據(jù)的認證和加密。前者用來實現(xiàn)數(shù)據(jù)的完整性,后者用來實現(xiàn)數(shù)據(jù)的機密性。同時對數(shù)據(jù)的傳輸規(guī)定了兩種模式:傳送模式和通道模式。在傳送模式中,IP頭與上層協(xié)議頭之間嵌入一個新的IPsec頭(AH或ESP); 在通道模式中,要保護的整個IP包都封裝到另一個IP數(shù)據(jù)包里,同時在外部與內(nèi)部IP頭之間嵌入一個新的IPsec頭。兩種IPsec頭都可以同時以傳送模式和通道模式工作。
原始的數(shù)據(jù)包
傳送模式受保護的數(shù)據(jù)包
通道模式受保護的數(shù)據(jù)包
IPsec數(shù)據(jù)包的保護機制
IPsec是由四大組件組成,它們是因特網(wǎng)密鑰交換進程、IPsec進程本身、安全聯(lián)盟數(shù)據(jù)庫和安全策略數(shù)據(jù)庫。
IPsec 中有兩個重要的數(shù)據(jù)庫,分別是安全聯(lián)盟數(shù)據(jù)庫SAD和安全策略數(shù)據(jù)庫SPD.SAD中的每一個元組是一個安全聯(lián)盟SA,它是構(gòu)成IPsec的基礎(chǔ),是兩個通信實體經(jīng)協(xié)商建立起來的一種協(xié)定,它決定了用來保護數(shù)據(jù)包安全的IPsec協(xié)議、轉(zhuǎn)碼方式、密鑰以及密鑰的有效存在時間等。SPD中的每一個元組是一條策略,策略是指應(yīng)用于數(shù)據(jù)包的安全服務(wù)以及如何對數(shù)據(jù)包進行處理,是人機之間的安全接口,包括策略定義、表示、管理以及策略與IPsec系統(tǒng)各組件間的交互。兩個數(shù)據(jù)庫聯(lián)合使用。對于發(fā)送方,每個SPD的元組都有指針指向相關(guān)的SAD的元組。如果一個SPD的元組沒有指向適合發(fā)送包的SA,那么將會創(chuàng)建新的SA或SA束,并將SPD的元組和新的SA元組鏈接起來。對于接收方,通過包頭信息包含的IP目的地址、IP安全協(xié)議類型(AH或ESP)和SPI(安全參數(shù)索引)在SAD中查找對應(yīng)的SA.SA中其他字段為序列號、序列號溢出標志、Anti-replay 窗口、AH認證算法和密鑰、ESP加密算法和密鑰及初始化矩陣、ESP認證算法及密鑰等等。
因特網(wǎng)密鑰交換(IKE)是IPsec最為重要的部分,在用IPsec保護一個IP包之前,必須先建立一個SA,IKE用于動態(tài)建立SA.IKE代表IPsec對SA進行協(xié)商,并對SAD數(shù)據(jù)庫進行填充。 IKE是一個混合型的協(xié)議,它建立在由Internet安全聯(lián)盟和密鑰管理協(xié)議(ISAKMP)定義的一個框架上。IKE使用了兩個階段的ISAKMP.第一階段建立IKE安全聯(lián)盟,第二階段利用這個既定的安全聯(lián)盟,為IPsec協(xié)商具體的安全聯(lián)盟。
IPsec進程本身就是用來實現(xiàn)整個IPsec 的守護進程,用戶可以通過和這個進程打交道來管理自己的安全策略,實現(xiàn)適合自己需要的網(wǎng)絡(luò)安全。當然,每個開發(fā)組織的源代碼不一樣,但是它們都必須遵守 RFC的規(guī)范,最終的目的都應(yīng)該是差不多的。通常,IPsec的源代碼是嵌入到內(nèi)核IP層源代碼中的,也有人提出在其層次在IP之上,TCP之下,兩種方式都可以。
基于IPsec的虛擬專用網(wǎng)
當IPsec用于路由器時,就可以建立虛擬專用網(wǎng)。路由器連入內(nèi)部網(wǎng)的一端,是一個受保護的網(wǎng)絡(luò),另一端則是不安全的公共網(wǎng)絡(luò)。兩個這樣的路由器建立 起一個安全通道,通信就可以通過這個通道從一個本地的保護子網(wǎng)發(fā)送到一個遠程的保護子網(wǎng),這就形成了一個VPN.
在這個VPN中,每一個具有IPsec的路由器都是一個網(wǎng)絡(luò)聚合點,試圖對VPN進行通信分析將會失敗。目的地是VPN的所有通信都經(jīng)過路由器上的SA來定義加密或認證的算法和密鑰等參數(shù),即從VPN的一個路由器出來的數(shù)據(jù)包只要符合安全策略,就會用相應(yīng)的SA來加密或認證(加上AH或ESP報頭)。整個安全傳輸過程由IKE控制,密鑰自動生成,保護子網(wǎng)內(nèi)的用戶根本不需要考慮安全,所有的加密和解密由兩端的路由器全權(quán)代理。