DVPN关键技术浅析
2012-04-29李志文
李志文
摘 要: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.