APP下载

关于vBRAS 内部接口安全防护的研究

2022-12-17徐伟杰肖正亚余晓颖

广东通信技术 2022年11期
关键词:服务器端报文加密

[徐伟杰 肖正亚 余晓颖]

1 引言

vBRAS 是基于网络功能虚拟化(Network Function Virtualization,NFV)和软件定义网络(Software-Defined Networking,SDN)解决方案的云化BRAS,其控制面(Control Plane,CP)软件按需部署分布在由通用服务器、交换机和存储设备组成的资源池上,与底层硬件解耦,从封闭走向开放。vBRAS 的用户面(User Plane,UP)分为运行在高性能转发硬件(ASIC、NP、FPGA 等)的实体UP 和运行在x86 服务器上的虚拟UP,与控制面之间通过系统内部转控分离接口通信[3~6]。目前,运营商倾向于将部分的现网BRAS 设备进行改造,作为实体UP 继续使用。

vBRAS 在解决传统BRAS 局限性问题同时也引入了新的安全问题。比如,UP 与CP 密切相关,当UP 不能从CP 获取转发信息时表现为离线状态,导致vBRAS 失效。现网部署vBRAS 时,虽然UP 到CP 的网络链路采取物理双路由等措施以提升可靠性,但是从网络安全方面考虑,CP 和UP 之间的内部接口仍然可能遭受攻击而导致连接中断。针对上述问题,本文研究分析了各个内部接口所用承载协议的安全机制,并且结合vBRAS 应用特点,分别给出了相应的安全防护措施建议。

2 vBRAS 接口概述

vBRAS 系统由CP 和UP 两部分网元组成,如图1 所示。CP 作为VNF,软件运行在网络功能虚拟化基础设施(NFV Infrastructure,NFVI)上,主要实现地址管理、接入管理、认证授权计费(AAA)、用户管理、UP 管理等功能。UP主要实现传统BRAS 流量转发面功能以及路由控制面功能(包括路由、组播及MPLS 等)。

图1 vBRAS 系统示意图

vBRAS 系统的接口分为外部接口和内部接口,如图1所示。外部接口是vBRAS 系统与外围系统的接口,分别是:

(1)业务系统接口:CP 与Radius 服务器、DHCP 服务器等业务系统的接口;

(2)应用系统接口:CP 与应用系统的接口,负责提供BRAS 能力开放;

中学生的自控能力比较差,喜欢玩手机的学生,习惯了手机带来的轻松愉悦的信息,对知识学习感到枯燥乏味、没兴趣,久而久之就失去了对知识的求知欲,产生厌学情绪,从而导致无心学习,成绩一天比一天差。课堂内,老师正讲得投入,少数同学在下面低头玩手机,玩的不亦乐乎;寝室内,别的同学都休息了,少数同学手机屏幕闪亮,喋喋不休。整天沉迷于手机世界里的孩子,已经把大量的本该学习的时间和精力埋葬在手机里了,导致休息不好,来到教室就犯困,有个别同学干脆伏台睡觉,从而学习效率低下,成绩必然下降。

(3)网管系统接口:CP、UP 与网管系统的接口;

(4)MANO 接口:CP 作为VNF,其部署和生命周期管理通过管理和编排(Management and Orchestration,MANO)完成,MANO 接口参考ETSI 标准,是vBRAS新增接口。

内部接口是CP 与UP 之间的接口[3~6],分别是:

(1)管理接口:CP向UP下发配置,包括UP的子接口、VLAN 配置,QoS、ACL 模板配置等,采用 NETCONF(Network Configuration Protocol)协议承载。

(2)控制接口:CP 向UP 下发业务表项以及UP 向CP 上报业务事件,采用OpenFlow 协议承载。

(3)业务接口:CP 与UP 之间基于VXLAN(Virtual eXtensible Local Area Network)隧道传递PPPoE 和IPoE拨号协议报文。

3 vBRAS 内部接口安全防护

在vBRAS 的外部接口中,BRAS 原有的业务系统接口、应用系统接口和网管系统接口可以参照运营商现网安全防护措施进行保护,vBRAS 新增的MANO 接口可以参考ETSI 标准中相关安全防护策略进行保护。

在vBRAS 的内部接口中,业务接口、控制接口和管理接口都是新增的接口,没有可以直接参考的安全防护措施。此外,转控分离还体现在CP 和UP 的部署位置上,CP 部署位置在地市的核心DC(Data Center),而为实现业务扁平化、本地化,满足高价值视频等业务需求,UP部署位置下沉到边缘DC,内部接口暴露在公网中,进一步增大暴露风险。下文针对业务接口、控制接口和管理接口的安全防护分别进行研究。

3.1 管理接口

华为、中兴和SDN/NFV 联盟的技术白皮书以及RFC8772 一致采用NETCONF 协议承载管理接口。NETCONF是一种网络管理协议[7],其具有四层结构,分别为内容层、操作层、RPC(Remote Procedure Call)层及传输层,以XML 作为配置数据和协议消息的编码方式,用PRC 作为封装结构来实现获取、更新及删除等功能。NETCONF 使用YANG 语言对内容层的配置信息和状态信息以及操作层中的操作进行建模。

NETCONF 协议采用C/S 架构,网络设备或软件在NETCONF 协议体系中分为两种角色,即NETCONF 客户端和NETCONF 服务器端。在vBRAS 系统中,接受管理的UP 作为NETCONF 服务器端接收配置消息,而负责管理的CP 作为NETCONF 客户端向NETCONF 服务器端发送配置消息。

NETCONF 协议的通信流程大致分为建立会话、发送消息和关闭会话三个步骤。建立会话的请求由NETCONF客户端主动发起,根据安全传输层使用的协议要求,发送建立连接的请求给NETCONF 服务器端并且通过其认证,建立起一条加密的连接。在安全连接建立后,双方即可开始进行安全的通信。通信双方在操作期间一直保持连接状态,为上层操作提供安全可靠稳定的数据传输。RFC6241指出NETCONF 安全连接必须能够提供身份认证、数据完整性、保密性以及重放保护,连接可以采用SSH(Secure Shell)、TLS(Transport Layer Security)等安全传输协议,并且必须支持SSH。RFC6242[8]定义了NETCONF 使用SSH 的方式,RFC7589 等[9,10]定义了NETCONF 使用TLS 的方式。

SSH 协议是由IETF 制定的正式行业标准[11],提供了一个安全的远程登录服务以取代 TELNET 和其他不安全的远程登录模式。SSH 协议共有两个版本,分别是SSHV1和SSHV2。SSH 协议框架包括传输层协议、用户认证协议和连接协议,如图2(a)所示。传输层协议提供对服务器端认证、数据机密性和信息完整性功能,用户认证协议为客户端认证服务器端提供支持,连接协议把多种加密隧道复用为多个逻辑信道,提供给更高层的应用协议使用。

TLS 协议也是由IETF 制定的正式行业标准[12],主要目的是为网络中通信的双方建立一个安全的通信信道,为通信双方提供认证、机密性和完整性。TLS 协议共有四个版本,分别是TLS1.0、TLS1.1、TLS1.2 和TLS1.3。TLS1.3 协议框架主要包括握手协议和记录协议,握手协议中还包括警告协议,如图2(b)所示。握手协议在客户端和服务器端双方第一次建立连接时协商协议版本、选择密码算法、认证通信双方,协商算法所需参数,且能防篡改。记录协议用握手协议协商好的算法和参数对消息流进行分块加密。

图2 SSH/TLS 协议架构示意图

在vBRAS 系统中,管理接口NETCONF 使用TLS 能够实现客户端和服务器端双向身份验证,避免攻击者冒充,且更容易管理大规模网络,相较于使用SSH 具有优势,因此本文建议使用TLS。虽然TLS1.3 引入了一种0-RTT(Round Trip Time)的机制,在开始TLS 密钥协商的时候就能附带一部分经过加密的数据传递给对方,以减少握手延迟,但是0-RTT 使用PSK 导出的早期流密钥加密,不能保证前向安全,也不能保证不受重放攻击,除非服务器采取协议外的防范措施[12]。本文认为不宜采用0-RTT 机制,应该采用1-RTT 机制。

3.2 控制接口

华为、中兴和SDN/NFV 联盟的技术白皮书一致采用OpenFlow 协议承载控制接口,RFC8772 则提出一种新的S-CUPS 协议承载控制接口。由于华为、中兴等传统BRAS 设备厂商把持着运营商vBRAS 市场的主要份额,因此本文针对OpenFlow 协议进行分析。

OpenFlow 是SDN 控制平面和数据平面之间的多种通信协议之一,因其良好的灵活性、规范性,被视作SDN通信协议事实上的标准。OpenFlow 协议已经从1.0 版本演进到了1.5 版本,截至目前2.0 版本仍未推出。

OpenFlow协议架构由控制器、OpenFlow交换机以及安全通道组成。控制器对网络进行集中控制,实现控制层功能,OpenFlow 交换机负责数据层转发,两者之间通过安全通道进行消息交互,实现表项下发、状态上报等功能。在vBRAS 系统中,CP 是控制器,UP 是OpenFlow 交换机。安全通道的信息交互必须按照OpenFlow 协议规定的格式来执行,通常采用TLS 加密,也支持简单的TCP 直接传输[13]。在控制接口通信中,OpenFlow 安全通道必须采用TLS 连接加密,启动后通过6633 端口进行TCP 连接,双方交换证书进行认证。TLS 同样地应该采用1-RTT 机制。

3.3 业务接口

华为、中兴和SDN/NFV 联盟的技术白皮书以及RFC8772 一致采用VXLAN 隧道来传递PPPoE 和IPoE 拨号协议报文。VXLAN 是一种隧道协议,其原理是引入UDP 格式的外层隧道(MAC in UDP)作为数据的链路层,将原有二层数据报文作为隧道净荷,在三层网络中通过路由转发,实现大二层互联。VXLAN 使用24 位的VNI标识符以解决VLAN ID 的数量限制限制问题。VXLAN本身缺乏安全保障机制[14],体现在VXLAN 隧道终点(VXLAN Tunnel Endpoint,VTEP)设备之间不进行身份认证,VXLAN 隧道不对承载的流量进行加密保护等方面。

本文建议业务接口按需选择以下两种安全防护措施:

(1)互联网络层安全(Internet Protocol Security,IPsec)

IPSec 协议簇是通过认证头(Authentication Header,AH)协议和封装安全载荷(Encapsulating Security Payload,ESP)协议以及互联网密钥交换(Internet Key Exchange,IKE) 协议来实现的。由于AH 只提供数据源验证和数据完整性校验功能,而ESP 负责提供数据源验证、完整性校验以及IP 报文加密功能,因此建议使用ESP 对VXLAN 通信进行安全认证和加密保护。

IPSec 协议有传输模式和隧道两种封装模式。如图3所示,在传输模式下,ESP 头插在原始IP 头之后、传输层协议之前;在隧道模式下,ESP 头插在原始IP 头之前,并生成一个新IP 头插在ESP 之前。传输模式适用于主机之间进行通信,隧道模式适用于网关之间进行通信。UP和CP 通过业务接口直接进行通信,因此选择传输模式。

图3 IPsec ESP 两种不同模式示意图

(2)VTEP 身份认证+VXLAN 隧道内层信息加密

UP 和CP 定制开发VTEP 身份认证功能。通过扩展VXLAN 头,在指定字段中提供接收端VTEP 的身份标识信息。发送端VTEP 在发送VXLAN 报文时,在指定字段中填入接收端VTEP 的身份标识信息。接收端VTEP 在接收到VXLAN 报文后,从指定字段中提取出身份标识信息,与本地存储的身份标识信息进行比较,当两者一致时继续对VXLAN 报文进行处理,反之将VXLAN 报文丢弃[15]。

UP 和CP 定制开发VXLAN 隧道内层信息加密功能。通过扩展VXLAN 头,对VXLAN 报文的内层信息进行加密处理,加密密钥是根据各自的初始密钥与VXLAN 报文外层IP 头的网络标识字段逻辑运算后再进行MD5 运算生成的动态密钥[16]。

第一种安全防护措施的优点是IPsec 能同时实现认证和加密,技术很成熟,并且UP 设备已经支持,缺点是要对整个VXLAN 报文进行加密,封装新的报文头,消耗计算资源和带宽资源较多。第二种安全防护措施的优点是只需对VXLAN 报文的内容进行加密和封装,消耗计算资源和带宽资源较少,缺点是可用技术较不成熟,UP 与CP 设备开发工作量较大。综合分析后,建议优先采用第一种安全防护措施。

3.4 整体安全防护措施

vBRAS 内部接口整体安全防护措施如图4 所示。此外,承载UP 和CP 内部接口的设备物理接口是暴露在公网上的,攻击者很容易通过发送大量伪造的内部接口报文和非内部接口报文发起饱和攻击,导致设备一直忙于处理伪造报文,耗尽设备资源,严重影响正常内部接口通信。针对这类攻击,建议设备上开启基于五元组的访问控制列表(Access Control List,ACL),对伪造报文行过滤;分别给三个内部接口分配独立硬件资源,避免其中某个接口遭受到非正常流量拥塞时影响其他接口工作;每个内部接口配备限速能力,当检测到流量异常时,将每秒处理报文的最大数量降低至预设值。

图4 vBRAS 内部接口安全防护示意图

4 结语

本文从网络安全角度出发,针对vBRAS 内部接口安全防护问题进行研究,提出了安全防护措施建议。研究结果既填补了现有vBRAS 技术白皮书在安全方面的空白,也能为运营商提升vBRAS 安全性提供借鉴。考虑到vBRAS 引入的新的安全问题还包括CP 虚拟化网元内部的安全防护等问题,需要进一步研究解决。

猜你喜欢

服务器端报文加密
基于J1939 协议多包报文的时序研究及应用
一种新型离散忆阻混沌系统及其图像加密应用
Linux环境下基于Socket的数据传输软件设计
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
一种基于熵的混沌加密小波变换水印算法
加密与解密
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
ATS与列车通信报文分析