李志文
摘 要:DVPN(初衷就是解決如何支持地址的動態(tài)性問題,針對此問題我們設(shè)計(jì)了一個(gè)新的動態(tài)地址解析協(xié)議——VAM協(xié)議(VPN Address Management VPN地址管理協(xié)議),該協(xié)議是DVPN協(xié)議族的核心。另外,DVPN協(xié)議中Server對Client進(jìn)行認(rèn)證時(shí)采用了AAA認(rèn)證方式,在對數(shù)據(jù)報(bào)文進(jìn)行加密轉(zhuǎn)發(fā)時(shí)采用的是 IPSec協(xié)議。
關(guān)鍵詞:DVPNVAMIPSecESP
中圖分類號:TP393.1 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-098X(2012)05(b)-0029-01
1VAM協(xié)議
VAM(VPN Address Management)協(xié)議是DVPN協(xié)議的核心,它規(guī)定了Client如何從Server請求得到對端Client的公網(wǎng)地址。該協(xié)議和路由協(xié)議配合使用,適用于NBMA(Non-Broadcast Multi-Access)網(wǎng)絡(luò)或P2MP(Peer to Multi-Peer),與NHRP(NextHop Routing Protocol)[1]協(xié)議有類似之處。
DVPN組網(wǎng)主要應(yīng)用于NBMA(Non-Broadcast Multi-Access)網(wǎng)絡(luò),同時(shí)也適用于P2MP(Peer to Multi-Peer)網(wǎng)絡(luò)。在這兩種類型的網(wǎng)絡(luò)中,節(jié)點(diǎn)之間都是一對多的對應(yīng)關(guān)系,但是NBMA網(wǎng)絡(luò)中認(rèn)為任意兩個(gè)節(jié)點(diǎn)之間都可以建立鄰居關(guān)系,所以某個(gè)節(jié)點(diǎn)的下一跳地址可以指向網(wǎng)絡(luò)中任意一個(gè)節(jié)點(diǎn),而P2MP網(wǎng)絡(luò)則不是這樣。DVPN的組網(wǎng)以VPN域?yàn)閱挝?當(dāng)該VPN域?yàn)镹BMA類型的組網(wǎng)方式時(shí),任意Server和Client之間都可以建立鄰居關(guān)系,當(dāng)該VPN域?yàn)镻2MP類型的組網(wǎng)方式時(shí),Client只能和Server建立鄰居關(guān)系,而Client之間不能建立鄰居關(guān)系[2]。
VAM協(xié)議在這兩種不同的網(wǎng)絡(luò)類型中的實(shí)現(xiàn)方式不同。對于NBMA方式的組網(wǎng)環(huán)境,VPN域中的Client首先向Server注冊,主要注冊信息是自己的私網(wǎng)地址和公網(wǎng)地址。Server對所有注冊上來的Client地址信息維護(hù)一個(gè)地址信息映射表,提供了私網(wǎng)地址到公網(wǎng)地址的映射信息。同時(shí),通過運(yùn)行路由協(xié)議,各個(gè)節(jié)點(diǎn)之間建立起了鄰居關(guān)系(基于私網(wǎng)地址信息),當(dāng)某個(gè)Client有和另外一個(gè)Client通信的需求時(shí),則首先向Server請求對端Client的公網(wǎng)地址,Server通過查地址信息映射表得到結(jié)果,并將其返回給請求Client,這樣,該Client就可以和對端Client建立起一條專用通信隧道進(jìn)行通信了。而對于P2MP類型的網(wǎng)絡(luò),Client只能和Server建立鄰居關(guān)系,所以所有的數(shù)據(jù)報(bào)文都要通過Server轉(zhuǎn)發(fā),兩個(gè)Client之間無法建立通信隧道[3]。
DVPN對VAM的實(shí)現(xiàn)主要分為兩個(gè)階段:注冊階段和會話建立階段,會話建立階段的一個(gè)關(guān)鍵機(jī)制是重定向機(jī)制。
2 IPSec ESP協(xié)議
這里主要介紹一下IPSec 協(xié)議中的ESP協(xié)議。AH和ESP協(xié)議是IPSec實(shí)現(xiàn)安全協(xié)議中不同方式,在DVPN實(shí)現(xiàn)中,我們選擇了安全系數(shù)較高的ESP協(xié)議,采用ESP協(xié)議對轉(zhuǎn)發(fā)報(bào)文進(jìn)行加密。
和認(rèn)證頭(AH)協(xié)議一樣,封裝安全載荷(ESP)協(xié)議的設(shè)計(jì)目的也是用來提高IP協(xié)議的安全性。除了提供和AH協(xié)議相似的服務(wù)之外,ESP協(xié)議還增加了數(shù)據(jù)保密服務(wù)。ESP中用來加密數(shù)據(jù)報(bào)的密碼算法都毫不例外的使用對稱密鑰體制。因?yàn)閷ΨQ密鑰算法主要使用初級操作(異或、逐位與、位循環(huán)等),無論以軟件還是硬件方式執(zhí)行都非常有效。相對公鑰密碼系統(tǒng)而言,它的加解密吞吐量要大的多[4]。
ESP也使用消息認(rèn)證碼(MAC)提供認(rèn)證服務(wù),關(guān)于MAC的描述參見對AH協(xié)議的敘述。對于加密和認(rèn)證算法的選擇因IPSec的實(shí)現(xiàn)不同而不同;然而為了保證互操作性,ESP規(guī)范RFC2406規(guī)定了每個(gè)IPSec實(shí)現(xiàn)要強(qiáng)制實(shí)現(xiàn)的算法。其中,強(qiáng)制實(shí)現(xiàn)的加密算法是DES和NULL加密算法,而認(rèn)證算法是HMAC_MD5、HMAC_SHA1 和NULL認(rèn)證算法。NULL加密和認(rèn)證分別是不加密和不認(rèn)證。NULL算法選項(xiàng)是強(qiáng)制實(shí)現(xiàn)的,因?yàn)镋SP加密和認(rèn)證服務(wù)是可選的。然而,有一點(diǎn)非常重要,NULL加密和NULL認(rèn)證算法不可以同時(shí)使用,即必須選擇加密或認(rèn)證,或者加密和認(rèn)證同時(shí)使用。
ESP頭部分包括:安全參數(shù)索引域和序列號域。ESP尾部分包括:填充字節(jié)域、填充長度域和下一個(gè)頭域。
3 認(rèn)證技術(shù)
動態(tài)VPN為了保證其VPN的固有特性,提供了完善的注冊認(rèn)證機(jī)制。注冊認(rèn)證機(jī)制存在于Client與Server之間以及Client和Client之間。在Client和Server之間,如果Client要加入某個(gè)動態(tài)VPN,必須經(jīng)過Server的認(rèn)證,從而防止了非授權(quán)用戶非法登陸和人為的破壞。在Client和Client之間建立隧道也需要認(rèn)證,就是說兩個(gè)Client必須經(jīng)過一個(gè)Server的認(rèn)證才能建立隧道,這樣也可以防止公網(wǎng)上非法用戶的侵入。
動態(tài)VPN的認(rèn)證技術(shù)主要采用了AAA認(rèn)證。AAA是Authentication(認(rèn)證)、Authorization(授權(quán))和Accounting(計(jì)費(fèi))的簡稱。它提供對用戶進(jìn)行認(rèn)證、授權(quán)和計(jì)費(fèi)三種安全功能。具體如下:認(rèn)證(Authentication):認(rèn)證用戶是否可以獲得訪問權(quán),確定哪些用戶可以訪問網(wǎng)絡(luò)。 授權(quán)(Authorization):授權(quán)用戶可以使用哪些服務(wù)。計(jì)費(fèi)(Accounting):記錄用戶使用網(wǎng)絡(luò)資源的情況。AAA一般采用客戶/服務(wù)器結(jié)構(gòu),客戶端運(yùn)行于被管理的資源側(cè),服務(wù)器上則集中存放用戶信息。這種結(jié)構(gòu)既具有良好的可擴(kuò)展性,又便于用戶信息的集中管理。
AAA的Login認(rèn)證方案中可以指明三種認(rèn)證方法:local、radius和none。其中l(wèi)ocal為用本地?cái)?shù)據(jù)庫進(jìn)行認(rèn)證,radius表示由RADIUS服務(wù)器進(jìn)行認(rèn)證,none表示不認(rèn)證。另外還可以使用指定的RADIUS服務(wù)器模板進(jìn)行認(rèn)證。本地?cái)?shù)據(jù)庫由local-user命令配置。
參考文獻(xiàn)
[1] Andrew G.Mason著.Cisco安全虛擬專用網(wǎng)絡(luò).北京:人民郵電出版社,2002.
[2] Larry L.Peterson,Bruce S.Davie.Compute Networks-A systems Approach[M].China Machine Press.
[3] Russell Joy,Salamone Salvatore. New twists on secure VPNS,2007.
[4] Breaking DES.The technical newsletter of RSA Laboratories,a division of RSA Data Security,2011.