黨楠
(商洛學(xué)院 物理與電子信息工程系,陜西商洛 726000)
MPLS最初是在Cisco公司所提出的TagS witching技術(shù)基礎(chǔ)上發(fā)展起來的,主要技術(shù)就是引入了基于標(biāo)簽的機(jī)制,從而把選路和轉(zhuǎn)發(fā)分開,由標(biāo)簽來規(guī)定一個(gè)分組通過網(wǎng)絡(luò)的路徑,數(shù)據(jù)傳輸通過分層服務(wù)提供商(Layered Service Provider,LSP)完成。MPLS最重要的優(yōu)勢(shì)在于允許因特網(wǎng)服務(wù)提供商提供傳統(tǒng)IP路由技術(shù)所不能支持的新型業(yè)務(wù),因此得到了很多運(yùn)營商和廠家的青睞。
MPLS技術(shù)非常適合于組建VPN?;贛PLS的VPN,不像傳統(tǒng)的VPN依賴封裝和加密機(jī)制,而是利用巧妙的轉(zhuǎn)發(fā)和包標(biāo)記來隔離客戶信息并創(chuàng)建安全信道。MPLS VPN包含的所有能力都能在MPLS骨干網(wǎng)中體現(xiàn),并且描繪出一種在IP網(wǎng)絡(luò)上構(gòu)造高性能VPN的全新方法[1]。MPLS VPN的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,整個(gè)網(wǎng)絡(luò)包括三種設(shè)備:用戶邊緣 (CE:Customer Edge)路由器、提供商邊緣 (PE:Provider Edge)路由器和提供商(P:Provider)路由器[2]。在MPLS VPN中,ISP為每個(gè)VPN都分配了一個(gè)標(biāo)識(shí)符,稱作路由標(biāo)識(shí)符(RD),這個(gè)標(biāo)識(shí)符在服務(wù)提供商的網(wǎng)絡(luò)中是獨(dú)一無二的。由RD和用戶的IP地址連接形成VPN-IP地址,VPN-IP地址在轉(zhuǎn)發(fā)表中是唯一的,在網(wǎng)絡(luò)中也是獨(dú)一無二的。
MPLS VPN的具體實(shí)現(xiàn)過程為:MPLS網(wǎng)絡(luò)形成由網(wǎng)絡(luò)入口到出口的MPLS域,所有的VPN功能是在MPLS域邊緣的PE中實(shí)現(xiàn)的,對(duì)MPLS域內(nèi)的P路由器和域外的CE路由器而言是透明的。數(shù)據(jù)分組在網(wǎng)絡(luò)PE處由LER按照特定的映射規(guī)則映射為短標(biāo)簽,映射規(guī)則考慮了目的地信息和QoS信息;標(biāo)簽分發(fā)過程通過特定的控制協(xié)議(LDP或資源預(yù)留協(xié)議)進(jìn)行,各個(gè)LSR根據(jù)標(biāo)簽在LSP上對(duì)數(shù)據(jù)進(jìn)行交換式轉(zhuǎn)發(fā),可以使用現(xiàn)有的路由協(xié)議進(jìn)行選路機(jī)制。
圖1 MPLS VPN網(wǎng)絡(luò)體系結(jié)構(gòu)
AAA[3]是認(rèn)證、授權(quán)和計(jì)費(fèi)(Authentication,Authorization,Accounting)的簡稱,它提供了一種用來對(duì)認(rèn)證、授權(quán)和計(jì)費(fèi)這三種安全功能進(jìn)行一致性配置的網(wǎng)絡(luò)安全管理框架。主要是通過AAA服務(wù)器端程序與運(yùn)行于網(wǎng)絡(luò)訪問服務(wù)器(Network Access Server,NAS)的客戶端程序相互配合來完成工作的。
在MPLS VPN的通信過程中,認(rèn)為CE與PE之間的通信是安全的,為了保證在MPLS內(nèi)傳送的安全性,本文中定義一個(gè)新的頭標(biāo)—AAA認(rèn)證頭標(biāo),如圖2,并且提出了支持AAA的
圖2 AAA認(rèn)證頭標(biāo)
在圖3的網(wǎng)絡(luò)結(jié)構(gòu)圖中,由于業(yè)務(wù)的需要VPN1要和VPN2進(jìn)行數(shù)據(jù)的傳輸,為了保證該數(shù)據(jù)確實(shí)是從VPN1發(fā)來的包,在MPLS的標(biāo)簽中增加了一個(gè)擴(kuò)展頭標(biāo),即AAA認(rèn)證頭標(biāo),VPN2中的AAAserver對(duì)該包進(jìn)行認(rèn)證,保證它確實(shí)是 VPN1中發(fā)來的包,這樣,VPN2中的AAAserver允許該包進(jìn)入,剝?nèi)AA認(rèn)證頭標(biāo)后,再把這個(gè)數(shù)據(jù)交給VPN2局域網(wǎng)。
AAA認(rèn)證頭標(biāo)主要起一個(gè)簽名認(rèn)證的作用,此簽名認(rèn)證的具體過程如下:
1)對(duì)簽名前的整個(gè)報(bào)文做運(yùn)算,用VPN1中AAAserver的私鑰對(duì)其加密,形成一個(gè)數(shù)字簽名,加入到AAA認(rèn)證頭標(biāo)中,VPN2中的AAAserver接到該包后,用其對(duì)應(yīng)的公鑰對(duì)其應(yīng)用BLS簽名體制進(jìn)行數(shù)字簽名認(rèn)證,如果匹配,則允許該包進(jìn)入,否則丟棄該包。
圖3 AAA的MPLS-VPN網(wǎng)絡(luò)結(jié)構(gòu)圖
2)當(dāng)VPN2要對(duì)VPN1發(fā)送響應(yīng)信息時(shí),先對(duì)簽名前的整個(gè)報(bào)文做運(yùn)算,再用VPN2中的AAAserver的私鑰對(duì)其加密形成一個(gè)數(shù)字簽名,加入到AAA認(rèn)證頭標(biāo)中,VPN1中的AAAserver接到該包后,用其對(duì)應(yīng)的公鑰對(duì)其進(jìn)行數(shù)字簽名認(rèn)證,如果匹配,則允許該包進(jìn)入,否則丟棄該包。
在這里,認(rèn)為存在一個(gè)被圖3中所有的AAAserver都信任的證書簽發(fā)機(jī)構(gòu)(CA),CA可能是ISP、NSP或者其他的服務(wù)提供商,它的主要任務(wù)就是向所有的AAAserver分配證書,從而確保將證書中生成的公鑰分配給未指定的用戶。因此只要AAAserver向CA進(jìn)行注冊(cè),它就能夠得到證書進(jìn)行認(rèn)證。
這樣,當(dāng)每一個(gè)AAAserver向CA注冊(cè)后,它們都能獲得一個(gè)證書,在這個(gè)證書中包括了AAAserver的標(biāo)識(shí)符,公鑰,證書的有效時(shí)間和CA的簽名。
設(shè)G1是生成元為P階為q的加法群,G2是階為q的乘法群映射e:G1×G1→G2稱為是雙線性映射。H1:{0,1}*→Zq,H2:{0,1}*→G1,是兩個(gè)密碼hash函數(shù)假設(shè)G1和G2上的DLP(離散對(duì)數(shù)問題:給定兩個(gè)元素P、Q∈G,找到使得Q=nP成立的整數(shù)n)問題是難解的[4]。
1.2.1 密鑰產(chǎn)生算法
1)系統(tǒng)私鑰的產(chǎn)生:任意選擇s∈Zq*PM=H2(M)∈G1,SM=sPM作為系統(tǒng)私鑰;
2)Ppub=sP 作為系統(tǒng)公鑰,其中{G1,G2,q,P,Ppub,H2}為公開參量。
1.2.2 簽名算法
對(duì)M={0,1}*,簽名人計(jì)算PM=H2(M)∈G1,SM=sPM,則對(duì)消息M的簽名就是SM。
1.2.3 驗(yàn)證算法
驗(yàn)證等式e(SM,P)=e(H2(M),Ppub)成立,則接受簽名;否則,拒絕。
1)認(rèn)證和密鑰的建立
現(xiàn)規(guī)定幾個(gè)術(shù)語為:
VPN1中的AAAserver——簡稱為AAAserver1;
VPN2中的AAAserver——簡稱為AAAserver2;
VPN3中的AAAserver——簡稱為AAAserver3;
VPN4中的AAAserver——簡稱為AAAserver4;
AAAserver1和AAAserver2的證書描述
在上面的方程中:
h()代表一個(gè)單向的hash函數(shù);
date表明了證書的有效時(shí)間;
PAAAserver1——PAAAserver2的公鑰;
PAAAserver2——PAAAserver2的公鑰;
[…]SCA——對(duì)[…]里的內(nèi)容用CA中的私鑰進(jìn)行簽名。
AAAserver1中證書的更新取決于對(duì)VPN2而言,VPN1是否是VPN2的合法的用戶。通常情況下,先由AAAserver1向VPN2發(fā)出更新請(qǐng)求,VPN2在AAAserver1注冊(cè)的過程中就能更新AAAserver1的證書。
2)基于安全協(xié)議的公鑰證書的描述
由VPN2廣播其公鑰證書——certAAAserver2,當(dāng)VPN1想要向VPN2注冊(cè)時(shí),它就會(huì)檢查AAAserver1證書中CA的公鑰的有效性,從而得到
AAAserver1產(chǎn)生一個(gè)隨機(jī)數(shù)ks作為會(huì)話密鑰,并且用PAAAserver2(AAAserver2的公鑰)加密ks與certAAAserver1和消息的簽名一起發(fā)送給AAAserver2。
因此通過這樣一個(gè)安全協(xié)議,VPN1和VPN2就能夠通過它們各自的AAAserver彼此認(rèn)證以及共享會(huì)話密鑰,從而保護(hù)了它們之間通信過程中的安全性。其具體的流程圖如圖4所示。
郵戳是獨(dú)一無二的一個(gè)值,其目的是為了阻止重播攻擊。在接受到由VPN1發(fā)送的消息后,VPN2中首先用CA中的公鑰來檢查其有效性,如果有效,則用certAAAserver1中的PAAAserver1來驗(yàn)證簽名。這樣,VPN2就能夠確認(rèn)數(shù)據(jù)流確實(shí)是VPN1發(fā)送的,因?yàn)橹挥蠽PN1中的AAAserver1擁有私鑰 SAAAserver1,即使有惡意攻擊者能夠得到AAAserver1的證書,它也不能夠假冒VPN1,因?yàn)橹挥蠥AAserver2的私鑰能以與PAAAserver2相配,也就是說,只有VPN2中的AAAserver2能對(duì)消息解密得到ks。
在這里給出當(dāng)與1024 bit的RSA相同的安全等級(jí)時(shí),DSA體制和BLS體制的通信代價(jià)如表1。從表1可以看出,BLS簽名的通信代價(jià)較小,簽名時(shí)間較短,但相對(duì)驗(yàn)證時(shí)間較長。
表1 三種簽名算法體制的通信代價(jià)
文獻(xiàn)[4]及表1表明一個(gè)簽名長度大約近為170 bit的BLS簽名與一個(gè)簽名長度為1024 bit的基于離散對(duì)數(shù)的數(shù)字簽名(如DSA)的安全性能相等。所以它能夠產(chǎn)生非常短的簽名,更有助于減少通信過程中通信代價(jià),更適合于在低帶寬的信道中傳輸。在隨機(jī)預(yù)言模型下BLS短簽名方案是能夠抵御適應(yīng)性選擇消息攻擊的[5]。
應(yīng)用AAA認(rèn)證頭標(biāo)可以有效解決上述MPLS VPN中的安全問題,確保了信息傳輸?shù)陌踩?。但目前已有的?shù)字簽名算法在計(jì)算上是昂貴的,當(dāng)要對(duì)每個(gè)數(shù)據(jù)包進(jìn)行獨(dú)立的簽名和認(rèn)證時(shí),就會(huì)加大傳輸?shù)男畔⒘髁?,從而加大了引起丟包現(xiàn)象的發(fā)生,由此可以采取批認(rèn)證方案(Batch Verification)來解決其效率和數(shù)據(jù)丟包現(xiàn)象的發(fā)生。文獻(xiàn)[5-7]已經(jīng)證明了該方法的可行性。
圖4 AAAserver1與AAAserver2認(rèn)證流程圖
表2中,為了保證MPLS VPN中PE到PE之間信息的安全傳輸,方案1為原基礎(chǔ)MPLS VPN模式;方案2是在方案1的基礎(chǔ)上加了IPsec封裝和GBE封裝。
表2 PE-PE性能技術(shù)分析比較
從表2可以看出,基礎(chǔ)MPLS VPN的方案1實(shí)現(xiàn)費(fèi)用低,包的平均延遲時(shí)間小,但其安全性較弱,當(dāng)需要傳送安全性需求不高的報(bào)文時(shí),可以采取方案1的方法。方案2和本文的方案相對(duì)安全性比較高,尤其本文采用的新方案既有加密又有認(rèn)證,非常適合傳輸高機(jī)密的報(bào)文。
根據(jù)文獻(xiàn)[9-10]可大概估算出表2中方案1的平均延遲時(shí)間為0.28526437 ms;方案2中的平均延遲時(shí)間≤0.9 ms;新方案的平均延遲時(shí)間為:基礎(chǔ)MPLS VPN延遲時(shí)間+BLS簽名時(shí)間+BLS驗(yàn)證時(shí)間=0.28526437 ms+2.75 ms+81 ms=84.03526437 ms。三種方案的認(rèn)證延遲時(shí)間如表3。
表3 三種比較方案的認(rèn)證延遲
這完全符合以上的分析??傊梢钥吹饺粜枰^高的安全級(jí)別,那么傳送包的延遲就會(huì)大一些,丟包率會(huì)高一些。
近年來,MPLS VPN無論在理論研究還是在實(shí)際應(yīng)用上均取得了很大進(jìn)展,但是MPLS VPN的安全性問題尚未得到解決。本文針對(duì)互聯(lián)網(wǎng)情況下,MPLS VPN網(wǎng)絡(luò)中的MPLS主干網(wǎng)絡(luò)中數(shù)據(jù)包的發(fā)送未經(jīng)任何安全處理,引入AAA認(rèn)證頭標(biāo),提出了引入AAA的MPLS VPN安全認(rèn)證方案并給出了相應(yīng)的安全性分析和性能分析。
[1]倪劍虹,呂光虹.基于VPN的不同實(shí)現(xiàn)方式的技術(shù)研究[J].計(jì)算機(jī)應(yīng)用研究,2005,22(7):257-260.
[2]王曉寧.基于AAA的BGP/MPLS VPN的設(shè)計(jì)與實(shí)現(xiàn)[D].天津大學(xué),2007.
[3]Farrell S,Vollbrecht J,Calhoun P,et al.AAA authorization requirements[R].RFC 2906,2000.
[4]李曉輝,顧華熙,黨嵐君.移動(dòng)IP技術(shù)與網(wǎng)絡(luò)移動(dòng)性[M].北京:國防工業(yè)出版社,2009.
[5]王育民,劉建偉.通信網(wǎng)的安全——理論與技術(shù)[M].西安:西安電子科技大學(xué),2003.
[6]朱曉妍.無線網(wǎng)絡(luò)中的幾個(gè)關(guān)鍵問題研究[D].西安電子科技大學(xué),2009.
[7]任祥穎,翁 睿,凌 力.AAA系統(tǒng)中Diameter協(xié)議故障恢復(fù)算法的改進(jìn)和實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2007,24(5):139-142.
[8]Boneh D,Lynn B,Shacham H.Short signatures from the weil pairing [M].Advances in Cryptology-asiacrypt,Berlin:Pringer-Verlag,2001:514-532.
[9]Barreto P,Kim H,Lynn B,et al.Efficient Algorithms for Pairing-Based Cryptosystems[J].Advances in Cryptology-CRYPTO 2002,2442:354-369.
[10]Zhou Y,Fang Y.Multimedia Broadcast anthentication based on batch signature [J].IEEE Communication Magazine,2007,45(8):72-77.
[11]Syed Noor-ul-Hassan Shirazi,Muhammad Asim,Muhammad Irfan,and Nassar Ikram.MPLS Unleashed:RemedyUsingIPSEC overMPLSVPN[J].Communications in Computer and Information Science,2010,76:241-248.