定义A2A VPN是Any to Any VPN的简称,是利用组解释域GDOI(Group Domain of Interpretation)协议来集中管理密钥和GDOI安全策略的VPN的一种解决方案。A2A VPN主要用于保护广域网的企业内部业务流量。
目的随着网络的发展,企业不仅有数据业务,而且对于语音和视频等智能业务的诉求也越来越多,这些诉求加速了企业对分支机构间即时互联的需求。企业通常部署专线网络,如MPLS VPN网络,实现分支间的互联。
虽然专线网络为企业的通信提供了一定的安全,但是近年来政府法规,如健康保险流通与责任法案HIPAA(Health Insurance Portability and Accountability Act)、行业标准PCIDSS(Payment Card Industry Data Security Standard)等,在专线网络也强制要求加密传输。
目前,以IPSec通道为基础的加密解决方案,可以部署在专线网络中。IPSec是IETF制定的三层隧道加密协议,一直被广泛应用于广域互联分支间的数据加密。它提供了高质量的、可互操作的、基于密码学的安全保证,是一种传统的实现三层VPN的安全技术,特定的通信方之间通过建立IPSec隧道来传输用户的私有数据。
但是,IPSec VPN是一种点到点的隧道技术,主要关注的是数据安全加密,存在如下缺点:企业大量分支间的数据IPSec加密面临N2隧道配置的问题,配置管理复杂,网络扩容能力差。
IPSec VPN需改变原有路由部署、无法提供更好的QoS处理。
IPSec VPN无法独立支持组播业务、对智能业务的支持能力差。
综上所述,A2A VPN解决方案应运而生。A2A VPN利用原报文的IP头封装新增的IP头,实现分支间无隧道连接。其通过对密钥和GDOI安全策略的集中管理,简化了网络部署,分布式的分支机构网络既能够大规模扩展,也支持能够确保语音和视频质量的QoS和组播功能。
A2A VPN基本组网A2A VPN的基本组网如图6-1所示,主要包括两类设备,密钥服务器KS(Key Server)和组成员GM(Group Member)。A2A VPN提供了一种基于组的IPSec安全模型。组是一个GDOI安全策略的集合,属于同一个组的所有成员共享相同的GDOI安全策略及密钥。
图6-1 A2A VPN基本组网
GMGM是一组共享相同GDOI安全策略且有安全通信需求的网络设备,通常是分支的出口路由器。它在KS上注册,并利用从KS上获取的GDOI安全策略与属于同一个组的其它GM通信。GM在KS上注册时提供一个组ID(Group Identifier),KS根据这个组ID将对应组的GDOI安全策略和密钥下发给该GM。
KSKS是一个创建和维护GDOI安全策略、密钥信息的网络设备,一般部署在广域数据中心出口路由器旁,通常由路由器担当KS。它有两个责任:响应GM的注册请求,以及发送密钥更新消息。当一个GM向KS进行注册时,KS会将GDOI安全策略和密钥下发给这个GM。这些密钥将被周期性的更新,在密钥生存周期超时前,KS会通过密钥更新消息通知所有GM更新密钥。
KS下发的密钥包括两种类型:A2A VPN工作机制
GM数据保护GM完成注册之后,将使用获取的TEK SA对符合GDOI安全策略的报文进行保护,保护的数据包括单播数据和组播数据两种。
A2A VPN的数据封装与传统的IPSec类似,但A2A VPN只支持使用ESP(Encapsulating Security Payload)协议对报文进行加密,数据的封装模式也只支持隧道模式,该模式由KS决定并下发给GM。
在隧道模式下,首先在原有IP报文外部封装安全协议头ESP,然后在最外层封装一个与原有报文IP头完全相同的IP头,这样经过加密后的报文仍保留了原报文IP头的重要信息,包括源/目的地址,协议标识等。以TCP为例,经过封装后的IP报文如图6-2所示。
图6-2 A2A VPN隧道模式
可以看出,A2A VPN的报文封装,保留了原报文的IP头信息,使得加密后的报文仍能利用已有的路由架构转发,能够充分利用现有网络基础架构。
除了报文的安全封装,A2A VPN对数据处理的方式也非常重要。A2A VPN允许有三种SA模式:Receive_Only模式:已经注册成功的GM只发送明文报文,既能接收明文报文也能接收密文报文。
Receive_Option模式:已经注册成功的GM只发送密文报文,既能接收明文报文也能接收密文报文。
Normal模式:已经注册成功的GM只发送密文报文,只接收密文报文。
在现有网络(例如MPLS VPN)部署A2A VPN时,某台GM加入组后,只接收和发送密文,如果其他的GM还没有加入到组中,就会导致网络业务的中断。此时,可以通过SA模式实现A2A VPN分阶段部署来解决这问题。具体过程如下:
部署KS,并在KS上设置SA的模式为Receive_Only模式。SA模式会被KS下发给GM。
逐台部署GM加入A2A VPN网络,因为已注册的GM的SA模式处于Receive_Only模式,所以与还没有完成注册的GM通讯就不会中断。
待所有的GM部署完成,在GM上设置SA的模式为Receive_Option模式,与还处于Receive_Only模式下GM通讯不会中断。
待所有的GM都切换到Receive_Option模式后,在KS上设置SA的模式为Normal模式。
密钥更新如上面所提到的,KS不仅负责创建加密策略和密钥,而且还负责刷新密钥,并将其分配给GM。为了提高安全性,GM向KS注册后,KS将通过密钥更新消息(也称为Rekey消息,消息中会携带保护的数据流信息、加密算法、认证算法、封装模式、密钥以及SA的生存周期等参数信息)定期向GM发送新的TEK SA或KEK SA,该Rekey消息使用当前的KEK SA保护。所有GM会周期性地收到来自KS的Rekey消息,如果GM在TEK SA或KEK SA生命周期里一直没有收到任何Rekey消息,超时后将会重新向KS发起一次注册,将GDOI安全策略和密钥下载到本地。
密钥更新有两种类型:组播Rekey和单播Rekey。
组播Rekey在组播Rekey模式,KS以组播的方式发送Rekey消息给组播组成员。成功注册后,GM加入到特定的组播组,所有加入到该组的GM都会接收到这个Rekey消息。如果KS上GDOI安全策略被改变,Rekey消息会被发送给所有的组成员。
单播Rekey在单播Rekey模式,KS以单播的方式发送Rekey消息给每个GM。KS将会确保在旧的SA过期前所有GM都收到相同的带有新TEK SA或KEK SA的Rekey消息。在接收到Rekey消息后,GM会发送一个应答(ACK)消息给KS。当KS接收到这个ACK消息时,KS会更新当前活跃GM的列表,同时只向活跃的GM发送Rekey消息。
另外,在单播Rekey模式,如果KS连续三次没有收到Rekey的ACK消息,它将会把此GM移除活跃列表并停止向此GM发送Rekey消息。若这GM想继续收到Rekey消息,只能等GM重新向KS完成注册。