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