探索中国CIO人才现状 | 第四季调研报告
MPLS VPN 核心网的邻居保护方案
2013-12-10  作者:万方数据 

  在经济全球化的今天,越来越多的企业在全球各地开办分支机构,同时随着企业信息化进程的加快,网络中的各种应用,如电子商务、视频会议等在各行各业中不断普及。为了保证信息传递的实时性与安全性,企业纷纷组建自己的VPN(虚拟专用网)。


  通常VPN用户对网络的基本要求是保证数据的安全性、网络操作的简便性和网络的可扩展性。传统的VPN采用隧道技术为用户在公网上传递私有数据存在很多缺陷,已经很难满足用户对VPN的需求。MPLS(多协议标签交换)VPN是基于MPLS协议构建的一种站点到站点的VPN技术,它继承了MPLS网络的优势,具有扩展性强、易于实现服务质量、服务等级和流量工程等特点。但是在安全性方面,尽管MPLSVPN采用了严格的路由隔离,依然有受到内网和外网攻击的可能。本文提出一种方案,在控制层面上对MPLSVPN核心网络的安全性进行了加强改进。


  1.MPLSVPN的安全性分析


  1.1MPLSVPN自身安全保障分析


  MPLSVPN采用地址隔离、路由隔离和核心隐藏等手段,提供防范攻击和抗标记欺骗的安全保障。


  (1)地址空间和路由隔离


  MPLSVPN在不同VPN的IP地址前添加了不同的RD(路径区分符),可以确保VPN用户的IP地址在全网唯一,即不同的VPN可以使用相同的地址空间。同时,PE(服务提供商边缘路由器)为每个VPN维护一个独立的VRF(VPN路由转发表),控制每个VPN的流量,使其只会在本VRF内转发。


  (2)核心信息隐藏


  由于只有PE上包含了VPN的信息,MPLSVPN不需要暴露任何有关核心网的信息给用户。由于不知道网络拓扑,攻击者只能通过猜测IP地址进行攻击,使得攻击变得艰难。


  (3)抗标记欺骗


  在MPLS网络中交换是基于标签的,标签交换不会在通向CE(用户边缘路由器)的PE接口上出现,同样任何一个从CE到达PE上标记过的分组将被丢弃。因此,通过标记欺骗来实施攻击是不可能的。


  1.2可能遇到的安全威胁


  从前面的分析可知,攻击者无法从一个VPN攻击另一个VPN。因此,他们可能会通过攻击MPLS核心网络来攻击VPN。


  核心网络中,PE之间交换MP-BGP(多协议扩展BGP-4)路由信息建立VPN路由表,P(服务商路由器)之间交换公网路由信息建立公网传输路径。因此,攻击者通常伪装成PE与运营商网络的PE建立连接并交换路由信息,获取VPN的内部路由,篡改或伪造路由信息,使用户数据流入自己的PE设备。除此之外,攻击者对PE或P的DoS(拒绝服务)攻击会影响和破坏路由信息的正常交换,妨碍路由表的建立和维护,导致VPN数据包的转发丢失或错误。


  2.安全改进方案


  2.1改进思路


  为防御攻击,需要在路由器间加强邻居安全,如增加MD5(信息摘要算法第五版)鉴权机制。如果MPLS域内所有的设备都配置同一MD5密钥,则密钥的泄漏会导致整个域内认证失效。但是为每一对路由器单独配置一个密钥,则会大大增加管理配置的复杂度。因此,考虑使用另一种简单有效的保护机制GTSM(通用TTL安全机制)。


  GTSM是一种基于TTL(生存周期)的安全保护机制,通过检查协议报文中的TTL值是否在一个预先定义好的特定范围内,来确定与自己建立连接的对端路由器是否合法。攻击者经过简单的调试即可知道与目标路由器的距离,然后设置相应的TTL值,靠路径上路由器的递减,使得包到达目标路由器时TTL值正好为指定值,即可以进行DoS攻击。在MPLS域内,P之间建立基于LDP(标签分发协议)的直连邻居关系,如果事先设置GTSM,使得路由器只发出TTL为255的LDP包,且只接收邻居发来的TTL为255的LDP包,则攻击者除非是直接连在目标路由器上,否则目标路由器收到的攻击包必然是TTL小于255的,因此很容易分辨出对端路由器是否合法。同时,GTSM仅仅依靠对每个IP包都会携带的TTL字段进行处理,不会增加带宽消耗,也不需要经过复杂的加解密程,可以实现迅速而有效的保护。


  2.2方案流程


  根据以上分析,方案设计在PE之间采用基于MP-BGP的MD5鉴权机制,将所有PE划分为不同区域,为每个区域配置不同的MD5密钥,由于PE的数量较少,对网络管理影响不大。而在P直连邻居间采用基于LDP的GTSM机制。


  (1)基于MP-BGP的MD5鉴权


  在PE上为BGP邻居配置一致的MD5认证密钥后,发送BGP消息之前,PE将BGP消息与设置的认证密钥一起进行MD5计算,将计算出的信息摘要填充在TCP(传输控制协议)头部后面,然后再将消息发送出去。


  当接收端路由器收到BGP消息后,先取得相关信息段与本地密钥进行MD5计算,将结果与收到的消息中的信息摘要相对比,若一致则接收,若不一致则说明报文被篡改过或密钥不一致,直接丢弃。


  (2)基于LDP的GTSM机制


  LDP会话时两端路由器发送Hello消息进行邻居发现,为使双方协商并使用GTSM,需要在Hello消息中使用一个标志位来表示自己是否使能GTSM。为了不影响MPLS基础功能,取Hello消息中CommonHelloTLV保留字段的第一个bit位作为G标志位。G为1,表示本路由器使能GTSM;G为0,表示本路由器未使能GTSM。只有双方都使能,才能协商成功。


  T:是否为远端连接G:是否使能GTSMR:是否发送目标Hello包


  协商成功后,路由器发送与接收LDP消息都会经过如下处理流程:


  (1)发送LDP消息时,路由器首先判断该协议是否注册了GTSM机制。若没有注册,则直接发送消息;若已注册,则路由器先将TTL字段设为255,然后通过数据发送模块发送出去。


  (2)在接收方,路由器收到LDP消息后先判断该协议是否注册了GTSM机制。若没有注册,则直接送交LDP模块处理;若已注册,检查TTL字段,如果TTL=255,则接收并交给LDP模块进行处理,如果TTL≠255,则直接丢弃。由此可见,在LDP上增加GTSM,协商时只使用了Hello消息的一个保留位,在处理LDP消息前只需对TTL作简单处理,因此这一功能模块的添加对MPLSVPN基本功能和网络性能的影响不大。


  3.实验及结果分析


  (1)在PE上使用基于BGP的MD5


  由实验结果可以看出,当攻击者无法获取正确密钥或无密钥配置时,PE1上不会出现攻击者发布的路由信息,此时攻击者无法对BGP进行路由信息的攻击,因此在BGP上配置MD5密钥可以保证PE间的邻居安全。


  (2)在P上使用基于LDP的GTSM


  在P与攻击者PE上使能GTSM,从攻击者PE发送标签信息攻击P,P的标签转发表如图4所示。


  由图4可以看出,由于不能与目标路由器直接相连,攻击者发往目标路由器的LDP包会因为TTL<255而被丢弃,无法对目标路由器的LDP发动攻击。而为LDP增加GTSM,只需为每个路由器增加一条相同的使能命令,配置与管理都十分简单。


  4.结束语


  MPLSVPN能为用户提供灵活、安全和实时的传输需求,它将是未来构建VPN技术发展的方向,具有广阔的应用前景。而是否具有良好的安全性,是MPLSVPN能否大规模商用的关键。本文提出的安全改进方案,根据MPLSVPN的特点,在BGP邻居和LDP邻居间分别采用MD5和GTSM邻居保护机制,可以有效防范非法用户的侵入、DoS攻击等安全威胁,为MPLSVPN提供更强的安全保障,与此同时却并不增加网络管理和程序处理的复杂度,可以很好地满足用户及运营商的需求。