IPv6下基于IPSec的VPN的研究與性能分析

相關(guān)專(zhuān)題: 中國(guó)聯(lián)通 芯片

摘要 IPv6與IPv4相比在安全方面具有很多特點(diǎn),將IPSec集成到協(xié)議內(nèi)部是IPv6的優(yōu)勢(shì)。介紹IPv6協(xié)議概念基礎(chǔ)上,重點(diǎn)研究實(shí)現(xiàn)VPN的關(guān)鍵技術(shù)——IPSec協(xié)議及其體系結(jié)構(gòu)、工作模式和相關(guān)協(xié)議。最后提出利用FreeS/WAN軟件包并通過(guò)修改Linux內(nèi)核的方式來(lái)實(shí)現(xiàn)了Linux系統(tǒng)上一種基于IPSec的VPN。

1、IPv6簡(jiǎn)介

IPv6是因特網(wǎng)協(xié)議第六版(Internet Protocol version six)的縮寫(xiě),IPv6是IETF(Internet Engineering Task Force,因特網(wǎng)工程工作小組)設(shè)計(jì)的用來(lái)替代現(xiàn)行的IPv4協(xié)議的下一代網(wǎng)絡(luò)標(biāo)準(zhǔn),IPv6是為了解決IPv4所存在的一些問(wèn)題和不足而提出的,同時(shí)它還在許多方面提出了改進(jìn)。

1.1 簡(jiǎn)化的報(bào)頭和靈活的擴(kuò)展

IPv6數(shù)據(jù)報(bào)頭由一個(gè)基本報(bào)頭和多個(gè)擴(kuò)展報(bào)頭(Extension Header)構(gòu)成,基本報(bào)頭具有固定的長(zhǎng)度40字節(jié),有助于加快路由速度、減少處理器開(kāi)銷(xiāo)并節(jié)省網(wǎng)絡(luò)帶寬。對(duì)擴(kuò)展報(bào)頭和選項(xiàng)支持的改進(jìn),可以提高轉(zhuǎn)發(fā)效率,使得對(duì)選項(xiàng)長(zhǎng)度的限制更寬松,且提供了將來(lái)引入新的選項(xiàng)的更大的靈活性。

1.2 層次化的地址結(jié)構(gòu)

IPv6將現(xiàn)有的IP地址長(zhǎng)度擴(kuò)大4倍,由當(dāng)前IPv4的32位擴(kuò)充到128位,以支持大規(guī)模量的網(wǎng)絡(luò)節(jié)點(diǎn)。這樣IPv6的地址總數(shù)就大約有3.4×10E38個(gè)。如此豐富的IP地址數(shù)目,不僅滿(mǎn)足當(dāng)前的因特網(wǎng)用戶(hù),而且還可以為將來(lái)IP地址拓展到其它各種電子設(shè)備做好準(zhǔn)備。IPv6支持更多級(jí)別的地址層次,IPv6的設(shè)計(jì)者把IPv6的地址空間按照不同的地址前綴來(lái)劃分,并采用了層次化的地址結(jié)構(gòu),以利于骨干網(wǎng)路由器對(duì)數(shù)據(jù)包的快速轉(zhuǎn)發(fā)。

1.3 即插即用的連網(wǎng)方式

只要機(jī)器一連接上網(wǎng)絡(luò)便可自動(dòng)設(shè)定地址。它有兩個(gè)優(yōu)點(diǎn)。一是最終用戶(hù)用不著花精力進(jìn)行地址設(shè)定,二是可以大大減輕網(wǎng)絡(luò)管理者的負(fù)擔(dān)。

1.4 安全性方面

在IP協(xié)議設(shè)計(jì)之初并沒(méi)有考慮安全性,原來(lái)的Internet安全機(jī)制只建立于應(yīng)用程序級(jí),如E-mail加密、SNMPv2網(wǎng)絡(luò)管理安全、接入安全等,無(wú)法從IP層來(lái)保證Internet的安全。而IPv6在網(wǎng)絡(luò)安全方面最為顯著的就是將IPSec安全協(xié)議集成到內(nèi)部,實(shí)現(xiàn)了IP級(jí)的安全,IPSec主要有3個(gè)方面的安全機(jī)制,即數(shù)據(jù)包確認(rèn)、數(shù)據(jù)包的保密和數(shù)據(jù)包的完整,安全功能具體在其擴(kuò)展數(shù)據(jù)包中實(shí)現(xiàn)。

1.5 服務(wù)質(zhì)量的滿(mǎn)足

基于IPv4的Internet在設(shè)計(jì)之初,只有一種簡(jiǎn)單的服務(wù)質(zhì)量,即采用“盡最大努力”(Best effort)傳輸,從原理上講服務(wù)質(zhì)量QoS是無(wú)保證的。文本傳輸,靜態(tài)圖像等傳輸對(duì)QoS并無(wú)要求。隨著IP網(wǎng)上多媒體業(yè)務(wù)增加,如IP電話(huà)、VoD、電視會(huì)議等實(shí)時(shí)應(yīng)用,對(duì)傳輸延時(shí)和延時(shí)抖動(dòng)均有嚴(yán)格的要求。為了更好地支持實(shí)時(shí)通信(例如視頻會(huì)議),IPv6對(duì)QoS增加了一種新功能,即流標(biāo)簽機(jī)制。通過(guò)該機(jī)制,其目的是允許發(fā)送業(yè)務(wù)流的源節(jié)點(diǎn)和轉(zhuǎn)發(fā)業(yè)務(wù)流的路由器在數(shù)據(jù)包上加上標(biāo)記,并進(jìn)行除默認(rèn)處理之外的不同處理。一般來(lái)說(shuō),在所選擇的鏈路上,可以根據(jù)開(kāi)銷(xiāo)、帶寬、延時(shí)或其他特性對(duì)數(shù)據(jù)包進(jìn)行特殊的處理。一個(gè)流是以某種方式相關(guān)的一系列信息包,IP層必須以相關(guān)的方式對(duì)待它們。決定信息包屬于同一流的參數(shù)包括:源地址,目的地址,QoS,身份認(rèn)證及安全性。IPv6中流的概念的引入仍然是在無(wú)連接協(xié)議的基礎(chǔ)上的,一個(gè)流可以包含幾個(gè)TCP連接,一個(gè)流的目的地址可以是單個(gè)節(jié)點(diǎn)也可以是一組節(jié)點(diǎn)。IPv6的中間節(jié)點(diǎn)接收到一個(gè)信息包時(shí),通過(guò)驗(yàn)證他的流標(biāo)簽,就可以判斷它屬于哪個(gè)流,然后就可以知道信息包的QoS需求,進(jìn)行快速的轉(zhuǎn)發(fā)。

2、IPSec協(xié)議安全和安全機(jī)制

如圖1所示,IPSec是一組由IETF設(shè)計(jì)的RFC文檔組成,將作為網(wǎng)絡(luò)安全標(biāo)準(zhǔn)在IPv6下強(qiáng)制實(shí)施。IPSec為IP及上層協(xié)議提供了數(shù)據(jù)完整性、數(shù)據(jù)源身份認(rèn)證、抗重放攻擊、數(shù)掘內(nèi)容的機(jī)密性等安全服務(wù),是目前網(wǎng)絡(luò)層實(shí)現(xiàn)VPN(Virtul Private Network,虛擬專(zhuān)用網(wǎng))的事實(shí)上的標(biāo)準(zhǔn),它定義了一個(gè)系統(tǒng)來(lái)提供安全協(xié)議選擇、安全算法、確定服務(wù)所使用的密鑰等服務(wù),從而在IP層提供安全保障。IPSec是由認(rèn)證頭AH(Authentication Header)協(xié)議、封裝安全載荷ESP(Encapsulating Security Payload)協(xié)議、密鑰管理協(xié)議IKE(Internet Key Exchange)三部分組成。AH能提供數(shù)據(jù)源的認(rèn)證、完整性、及抗重放服務(wù)。ESP除能提供AH的功能外還提供數(shù)據(jù)保密性。

圖1 IPSec實(shí)施

2.1 IPSec體系結(jié)構(gòu)

IPSec協(xié)議包括:AH(驗(yàn)證頭)、ESP(封裝安全載荷)、IKE(因特網(wǎng)密鑰交換)。其體系結(jié)構(gòu)如圖2所示。

圖2 IPSec的結(jié)構(gòu)

——AH協(xié)議(Authentication Header Protocol)即分組頭認(rèn)證協(xié)議,在AH協(xié)議中,推薦的密碼算法是MD5算法和SHA_1密碼算法。

——ESP協(xié)議(Encapsulating Secure PagLoad Protocol)即封裝安全有效凈荷協(xié)議。該協(xié)議主要是為IP層提供加密保證及數(shù)據(jù)源的省份認(rèn)證。ESP協(xié)議主要用來(lái)處理對(duì)IP數(shù)據(jù)包的加密。該協(xié)議是一種與具體加密算法相獨(dú)立的安全協(xié)議。該協(xié)議幾乎支持所有的對(duì)稱(chēng)密鑰加密算法,例DES、3DES、IDEA、RCS等加密算法。

——IKE協(xié)議(Internet Key Exchange Protocol)即Internet密鑰交換協(xié)議。該協(xié)議主要是為通信用戶(hù)提供身份認(rèn)證方法、采用的密鑰、數(shù)據(jù)加密方式等問(wèn)題,經(jīng)過(guò)協(xié)商后達(dá)成一致意見(jiàn)的協(xié)議。

——策略是一個(gè)非常重要的問(wèn)題,因?yàn)樗鼪Q定兩個(gè)實(shí)體之間是否能夠通信;如果能,又采用哪一種轉(zhuǎn)碼方式。如果策略定義不當(dāng),可能導(dǎo)致雙方不能正常通信。策略這個(gè)組件尚未成為標(biāo)準(zhǔn)。

2.2 IPSec的工作模式

IPSec可為IP及上層協(xié)議TCP和UDP提供安全保證,分別通過(guò)IPSec的兩種不同模式,傳輸模式和隧道模式實(shí)現(xiàn)。

2.2.1 傳輸模式

在傳輸模式中,AH和ESP只對(duì)上層協(xié)議數(shù)據(jù)和IP頭中的固定字段提供認(rèn)證或加密保護(hù),在這種模式中,AH和ESP會(huì)攔截從傳輸層到網(wǎng)絡(luò)層的數(shù)據(jù)包,并根據(jù)具體的策略提供安全保護(hù),適用于在端點(diǎn)(主機(jī))之間實(shí)現(xiàn)。在傳輸模式數(shù)據(jù)包經(jīng)過(guò)AH或ESP處理之后的格式如表1所示。

表1 AH和ESP傳輸模式下的數(shù)據(jù)包格式

2.2.2 隧道模式

隧道模式封裝和加密整個(gè)IP數(shù)據(jù)包,IPSec隧道模式的數(shù)據(jù)包有兩個(gè)IP頭——內(nèi)部頭和外部頭。其中,內(nèi)部頭由主機(jī)創(chuàng)建,而外部頭由提供安全服務(wù)的安全網(wǎng)關(guān)添加。安全網(wǎng)關(guān)對(duì)收到的數(shù)據(jù)包進(jìn)行處理,去除掉明文IP報(bào)頭后,對(duì)其內(nèi)容進(jìn)行解密,并獲得最初的IP報(bào)頭。這種模式適合在數(shù)據(jù)包的最終目的地不是安全終點(diǎn)的情況,通常應(yīng)用于在外部網(wǎng)絡(luò)和安全網(wǎng)關(guān)之間,內(nèi)部網(wǎng)絡(luò)的主機(jī)不負(fù)責(zé)加密工作。在隧道模式下數(shù)據(jù)包經(jīng)過(guò)AH或ESP處理之后的格式如表2所示。

表2 AH和ESP隧道模式下的數(shù)據(jù)包格式

2.3 IPSec的密鑰管理

IPSec的密鑰管理包括密鑰的確定和分發(fā)。典型的需求是兩個(gè)應(yīng)用需要四個(gè)密鑰:發(fā)送和接收對(duì)的AH和ESP。IPSec體系結(jié)構(gòu)文檔要求支持兩種密鑰管理類(lèi)型:

(1)手動(dòng)的:系統(tǒng)管理員手動(dòng)地為每個(gè)系統(tǒng)配置自己的密鑰和其他通信系統(tǒng)密鑰管理,一般應(yīng)用于小規(guī)模、相對(duì)靜止的環(huán)境。

(2)自動(dòng)的:自動(dòng)系統(tǒng)可以在大型分布系統(tǒng)中使用可變配置為SA動(dòng)態(tài)按需創(chuàng)建密鑰。

默認(rèn)的IPSec自動(dòng)密鑰管理協(xié)議指的是ISAKMP/Oakley,它由以下元素組成:

(1)Oakley密鑰確定協(xié)議:Oakley提供增值安全性,是基于Diffie-Hellman算法的密鑰交換協(xié)議。Oakley是通用的,沒(méi)有任何特別格式。

(2)ISAKMP(互聯(lián)網(wǎng)安全關(guān)聯(lián)和密鑰管理協(xié)議):ISAKMP提供互聯(lián)網(wǎng)密鑰管理框架和特定協(xié)議支持,包括格式和安全屬性協(xié)商。

ISAKMP自身不包含特定的交換密鑰算法,而是由一系列使用各種交換密鑰算法的報(bào)文類(lèi)型集合組成。Oakley是ISAKMP的第一個(gè)版本規(guī)定使用的交換密鑰算法。

3、基于IPSec的VPN實(shí)現(xiàn)

IPSec的典型應(yīng)用是構(gòu)建VPN,它能靈活地將加密、認(rèn)證、密鑰管理和訪問(wèn)控制等結(jié)合在一起,以達(dá)到專(zhuān)用網(wǎng)絡(luò)的效果。這種方法是將IPSec代碼結(jié)合進(jìn)操作系統(tǒng)內(nèi)核的IP代碼中。這種方法將IP與IPSec緊湊結(jié)合,但是需要掌握操作系統(tǒng)內(nèi)核源代碼中關(guān)于IP包的處理流程,而有了Linux這樣一種功能強(qiáng)大且開(kāi)放源碼的網(wǎng)絡(luò)操作系統(tǒng),只要對(duì)其內(nèi)核源代碼進(jìn)行分析,加入IPSec協(xié)議處理功能,就可以實(shí)現(xiàn)VPN功能。實(shí)施這種方案的典型代表就是FreeS/WAN,

對(duì)于數(shù)據(jù)包的接收,F(xiàn)reeS/WAN使用注冊(cè)“協(xié)議開(kāi)關(guān)表”的方法在協(xié)議開(kāi)關(guān)表中加入對(duì)IPSec包的判斷和處理,Linux系統(tǒng)提供標(biāo)準(zhǔn)接口函數(shù)inet_add_protocol(struct inet_protocol*prot)實(shí)現(xiàn)協(xié)議開(kāi)關(guān)表中協(xié)議類(lèi)型的加入和刪除。這里,ESP和AH作為兩種協(xié)議類(lèi)型都注冊(cè)到協(xié)議開(kāi)關(guān)表中,其中的參數(shù)為inet_protocol_ah_protocol或inet_protocol esp_protocol,結(jié)構(gòu)定義如下:

ipsec_rcv()函數(shù)完成對(duì)接收到的IPSec數(shù)據(jù)包的處理,首先根據(jù)AH或ESP頭中的信息(目的IP地址、安全參數(shù)索引SPI和協(xié)議類(lèi)型等)確定相應(yīng)的SA,再根據(jù)SA查找安全關(guān)聯(lián)數(shù)據(jù)庫(kù),得到相應(yīng)的安全關(guān)聯(lián),再根據(jù)安全關(guān)聯(lián)對(duì)數(shù)據(jù)包實(shí)行具體的認(rèn)證解密工作。具體接收流程如圖3所示。

圖3 接受數(shù)據(jù)包處理流程

對(duì)于數(shù)據(jù)包的發(fā)送,它通過(guò)注冊(cè)“虛擬設(shè)備”的方案實(shí)現(xiàn)數(shù)據(jù)包的“重定向”。首先由函數(shù)ipsec_tunnel_in it_evices()向內(nèi)核登記虛接口,再由ipsec_tunnelattach()將虛接口綁定到指定的物理接口上,此時(shí)虛接口和物理接口被視為一致的,當(dāng)要發(fā)送的包需要經(jīng)過(guò)IPSec處理時(shí),就將包送到虛擬設(shè)備中處理。ipsec_tunnel_start_xmit()為IPSec的發(fā)送處理程序,放在虛擬設(shè)備的驅(qū)動(dòng)程序中,完成數(shù)據(jù)包的加密和認(rèn)證。數(shù)據(jù)包在IPSec處理完畢后被送往已與虛擬接口綁定的實(shí)際的網(wǎng)絡(luò)接口中。具體的發(fā)送流程如圖4所示。

圖4 發(fā)送數(shù)據(jù)包處理流程

4、結(jié)束語(yǔ)

除了上述軟件方法實(shí)現(xiàn)IPSec外,還用兩種方法可實(shí)現(xiàn)IPSec。一種是做一個(gè)模塊插到協(xié)議棧中,這種方式一般是在主機(jī)實(shí)施時(shí)采用。這種模塊往往是驅(qū)動(dòng)程序級(jí)的代碼,編寫(xiě)這樣的代碼需要對(duì)內(nèi)核中的網(wǎng)絡(luò)接口非常熟悉,相對(duì)于一般的編程有一定的難度。優(yōu)點(diǎn)是安裝加載都非常方便,但可能有一定的效率損失;另外一種是通過(guò)硬件實(shí)現(xiàn)。將IPSec功能集成到網(wǎng)絡(luò)設(shè)備上去。如網(wǎng)卡、或其它的一些網(wǎng)絡(luò)設(shè)備的接口上去。在IPSec的應(yīng)用中需要執(zhí)行許多的加密解密運(yùn)算,特別是在ESP模式下,DES或3DES一類(lèi)的對(duì)稱(chēng)加密算法要消耗大量的CPU時(shí)間,即便是現(xiàn)在的上GHz的CPU也不能滿(mǎn)足高速加解密的需要。使用硬件實(shí)現(xiàn)IPSec就有可能集成將一些專(zhuān)用的加解密芯片。但這樣會(huì)增加一些硬件上的成本。

來(lái)源:中國(guó)聯(lián)通網(wǎng)站


微信掃描分享本文到朋友圈
掃碼關(guān)注5G通信官方公眾號(hào),免費(fèi)領(lǐng)取以下5G精品資料

本周熱點(diǎn)本月熱點(diǎn)

 

  最熱通信招聘

業(yè)界最新資訊


  最新招聘信息