基于SDN的组播安全机制

2020-10-28 01:48李旭阳国兴昌刘宁春
计算机技术与发展 2020年10期
关键词:接收者数字证书报文

李旭阳,郜 帅,国兴昌,刘宁春

(北京交通大学 电子信息工程学院 下一代互联网互联设备国家工程实验室,北京 100044)

0 引 言

组播是一种相对于单播的通信方式,它的主要用途是解决单播方式在一对多的通信场景下产生的资源消耗和占用大的问题。尽管组播在视频直播、多媒体会议、股市行情流等场景下有重要的作用,但它在安全方面有较大的缺陷,容易遭到窃听、盗用、拒绝服务等安全攻击,导致了使用场景受限。

在目前的IP组播安全领域中,主要的研究方向是组播的消息保护。为了加密组播信息,组播源和接收者需要拥有会话密钥。此外,在组播场景中,接收者的数量和状态处于动态变化中,为保证组播数据的前、后向保密性,需要动态地更新密钥。目前密钥的管理方案主要分为三大类:集中式、分散集中式和分布式。集中式方案只存在唯一的一个管理节点,统一进行密钥的分配和更新,LKH是其中最为著名的方案[1],该方案通过建立一台组控制器维护一棵逻辑密钥树,通过树形的路径向叶子节点上的成员分发密钥。分散集中式通过建立多台子控制器将组成员进行分组管理,典型代表是Iolus[2],它将一个名为GSC(组安全控制器)的实体设置为安全根节点,并将多个GSI(组安全中介)设置为中间管理节点,密钥由GSC生成,并沿着GSI传递给每个接收者。分布式方案不建立额外的管理实体,密钥由所有成员共同协商生成,这种方法实现较为困难,对成员和网络的要求较高。

从这些方案可以看出,IP组播与单播不同,在密钥管理方面更为复杂。目前比较成熟的IP组播密钥管理方案都是集中式的分层体系,这种集中化、层次化的思想与SDN(软件定义网络,software defined network)[3]网络架构相似,又因为SDN控制器掌握着完整的网络拓扑信息,因此更在建立组播树方面更有优势[4],使得近些年出现了一批基于SDN的组播安全机制的研究[5]。这些方案提出将组播安全策略部署在SDN控制器上,利用SDN控制器在资源调度和拓扑发现的优势,来更好地实现安全组播通信的相关功能。

SDN组播安全主要分为三个部分。第一部分是身份认证和访问控制,目前国内外出现了几种不同的SDN组播认证方案。例如,Kici′nski模型[6]构建了一个三层的SDN组播安全架构,用户向高层组播应用发送入组请求。与此方案的三层结构不同,邹剑锋提出了一个两层的SDN组播模型[7],通过IGMP实现组播接收者的入组,控制器负责用户的认证和管理。此外,Leu提出了一种组播接收者的访问控制方案[8],由组播源对接收者进行身份认证,然后提供身份认证令牌。田金川提出了一种基于端口的身份认证机制[9],通过向SDN控制器发送专用的挑战/应答报文,实现对该成员的访问控制。根据这些方案的特点,可以发现它们都存在一些共同的缺点,即并不支持组播源的身份认证。第二部分是安全的路由协议,SDN控制器使用OpenFlow[10]或类似南向接口协议与交换机进行通信,根据OpenFlow规范,可以部署TLS[11]来保护控制器与交换机之间的信道。第三部分是组播数据的保护,在目前的SDN组播领域中还没有涉及组播数据加密和密钥管理方面的研究。

综合现有的SDN组播安全研究方案[12-13],认为其中存在以下两方面缺陷:

(1)身份认证方案不完善。一方面,现有的研究中缺少对于组播源的认证方案,这可能导致组播接收者收到来自虚假组播源的恶意消息。另一方面,大多数现有的认证方案需要多次握手来传递认证信息,认证过程复杂且导致了额外的延迟。

(2)缺少消息加密机制。现有的SDN组播安全机制研究中鲜有涉及组播消息的保护内容,组播消息未加密会导致信息的泄漏,不符合一些安全性要求较高场景的需求。

基于这两方面的原因,该文提出了一种新的基于SDN的安全组播架构,以满足特定场景下的高安全性组播需求。该方案对比现有SDN组播机制有以下方面的改进:基于数字证书的身份认证方法;同时支持组播源和组播接收者的身份认证;支持组播消息加密;集中式的密钥管理机制,包括组播会话密钥的生成、分配和更新。

为了实现更快速的身份认证方法,该方案引入了数字证书机制,以降低组播源/接收者与SDN控制器之间因认证而产生的握手次数。在该方案中,每一个组播源/接收者都需要提前向SDN控制器申请一个数字证书,该证书可以区分申请者的身份类型,即组播源或接收者。拥有该证书之后,该组播源/接收者加入一个组播组时仅需要向SDN控制器发送其证书摘要,以完成身份认证。同时,该方案参考了IGMPv3协议[14]的组播加入方式,构建了一种用于SDN组播的组播加入报文,用来承载身份认证信息和入组请求,使得认证和入组只需通过一个报文即可完成。

组播消息加密需要一个组播组的所有组播源和接收者共享一个由SDN控制器生成并分发的会话密钥。为了实现会话密钥的安全分发,SDN控制器分别使用组播源/接收者在申请数字证书过程中生成的公钥对会话密钥进行加密,通过单播进行分配。表1总结了该方案和前文提到的几种SDN组播安全模型的基本特征,通过对比可以看出,该方案在安全性和方案的完整性上有明显优势。

表1 几种SDN组播安全模型与该方案的对比

1 基于SDN的安全组播机制设计

1.1 系统拓扑

根据SDN的体系结构,该方案的网络体系结构主要由两部分组成。在控制平面上,SDN控制器负责身份认证、发放数字证书、管理密钥和构建组播路径。在转发平面上,SDN交换机负责根据SDN控制器发送的流表转发数据包。控制器和交换机之间的通信基于OpenFlow协议。方案拓扑如图1所示。

图1 基于SDN的安全组播方案拓扑

1.2 方案流程

根据该方案的思路,一个完整的SDN安全组播流程需要包括以下几个步骤:

·组播源/接收者向SDN控制器申请数字证书;

·组播源/接收者向SDN控制器构建并发送组播加入和身份认证报文;

·SDN控制器处理报文的同时进行身份认证;

·SDN控制器向SDN交换机生成并下发流表,向组播源和接收者生成和分配组播会话密钥;

·组播源和接收者通过组播会话密钥进行加密组播通信;

·当组播组发生变化时,SDN控制器更新流表和组播会话密钥。

下面对上述步骤进行具体描述。

(1)数字证书申请。

在该方案中,所有的组播源和组播接收者都需要向SDN控制器申请数字证书,申请时需要提供身份信息、代表组播源/接收者的标识以及自身的公钥。

SDN控制器收到此申请后会对身份信息进行审核,同时记录其组播源/接收者身份,若审核通过则为其生成数字证书。随后控制器对证书做摘要计算并用私钥签名,将证书与签名一起颁发给相应组播源和接收者,并将证书与摘要存入本地证书库。

组播源和接收者收到数字证书和证书摘要后首先用控制器公钥对证书摘要进行解密,得到一个摘要值Hash1,然后使用证书中指定的签名算法对证书进行摘要计算得到Hash2,若有Hash1=Hash2,则认为该证书真实可信并用作后续身份认证的凭证。

(2)组播源/接收者入组。

当一个组播源或组播接收者要加入到一个组播组时,需要向SDN控制器发送组播加入和身份认证报文,报文格式如图2所示。其中,加入/退出标识为0x11,当此标识为0x22时表示组播离开报文;组播源/组播接收者类型标识表示主机加入组播组后要成为的角色,0x11表示组播源,0x22表示接收者,此字段应与证书中的组播源/接收者标识符相对应。当前主机需要将自己的数字证书摘要值用SDN控制器的公钥加密,放入加密的数字证书摘要字段,并将其长度写入加密的数字摘要长度字段。该组播源/接收者将构建好的报文发送给SDN控制器。

图2 组播加入和身份认证报文格式

(3)身份认证和组播加入确认。

SDN控制器收到组播加入和身份认证报文后,解析各个字段,确定报文类型、组播源/接收者类型、组播地址、组播源地址等信息,取出加密的数字证书摘要用私钥解密,与证书库中的摘要进行比较,若存在该记录并且组播源/接收者类型无误,则通过身份认证,确认该组播源/接收者加入。

(4)流表下发和密钥分配。

当一个组播组中同时存在至少一个组播源和接收者时,SDN控制器为该组播组计算和建立组播路径,并向SDN交换机下发组播流表。同时,控制器为该组播组生成一个组播会话密钥用来加、解密组播消息,分别用该组播组的组播源、接收者公钥加密,以单播发送。组播源和接收者收到加密的组播会话密钥,用自身私钥解密。至此该组播组可以开始进行加密的组播通信,即组播源向组播地址发送用组播会话密钥加密的组播消息,组播接收者向组播地址接收消息,用组播会话密钥解密。

一个组播组在进行组播通信的过程中,组播接收者会发生以下形式的变化:

·新的组播接收者加入;

·组播组内的组播接收者离开。

当组播接收者需要进行上述操作时,需要向SDN控制器发送请求报文;SDN控制器需要验证报文并更新组播路径、下发新流表并更新组播会话密钥,以保证前后向保密性。

(5)组播组变化时的组播路径与密钥更新。

当一个正在进行组播通信的组播组有新的接收者加入或组内接收者离开时,该接收者应按照步骤2中所示方法构建和发送组播加入(离开)和身份认证报文,其中加入/退出标识分别填写0x11(加入)或0x22(离开),由SDN控制器接收并解析审核相应信息。确认无误后,SDN控制器会重新计算组播路径,向SDN交换机下发新流表,并生成新的组播会话密钥,加密分配给当前组播组内的组播源和接收者。相应组播源和接收者解密获得新的组播会话密钥,使用此密钥进行接下来的加密组播通信。

上述流程示意如图3所示。

图3 SDN组播安全方案流程示意图

2 仿真实验和分析

2.1 环境设置

实验在一台服务器上安装了开源SDN控制器软件ONOS[15]作为SDN控制器,另一台服务器安装了Mininet软件[16]通过Open vSwitch[17]虚拟出了四台SDN交换机,连接拓扑如图4所示,交换机与控制器之间通过OpenFlow协议通信,并开启TLS选项。

一台主机作为组播源,与一台SDN交换机相连,两台主机A和B作为组播接收者分别连接至另外两台不同的交换机,其中组播源和组播接收者A已取得SDN控制器颁发的数字证书,组播接收者B还未申请证书。此外,该方案在所有组播源和接收者上安装了开源播放器软件VLC作为组播数据流的输入/输出工具进行组播通信。

2.2 功能测试

2.2.1 组播源/接收者认证的实现

在本测试环境中,已经向SDN控制器申请过证书,并通过了身份认证的组播源和接收者A的信息保存在SDN控制器的身份信息数据库中,如图5所示,组播源B未向SDN控制器申请过数字证书。

图5 身份信息数据库内容

此时,组播源、接收者A、接收者B构建和发送组播加入和身份认证报文,由于接收者B未取得数字证书,因此报文中的数字证书摘要字段为空。SDN控制器接收请求后即建立组播路径,其中包括了主机与交换机之间建立的接口。从图6(a)中可见,SDN控制器为该组播组建立了以组播源为来源的入端口以及以接收者A为目的的出端口,与组播接收者B相连的端口未在其中。同时,通过图6(b)的SDN交换机的状态可以看出,SDN控制器已下发了组播流表,同样转发至组播接收者A所在端口,未向接收者B所在端口转发。因此,该方案在测试环境下实现了SDN组播接收者的访问控制。

(a)SDN控制器端口状态

2.2.2 加密组播通信的实现

组播源、组播接收者A和B都通过SDN控制器认证加入组播组,他们会收到SDN控制器发送的加密组播会话密钥。组播源使用VLC播放器配置组播流输出视频源,并输入解密后的会话密钥,以生成加密的组播流。组播接收者A和B使用VLC播放器配置输入流的组播地址和源地址,此时组播通信开始,但因接收者未输入密钥导致组播视频无法正常播放。组播接收者A向VLC输入解密过的组播会话密钥后,组播视频即可正常播放,接收者B仍然不能播放,反之亦然。以此证明该方案在实验环境下实现了安全的加密通信。

2.3 性能测试

2.3.1 身份认证时延

为测试身份认证对SDN组播造成的时延影响,本测试使用Mininet软件虚拟出大量的主机当作组播接收者,并逐渐增加接收者的数量,分别测量从组播接收者发出组播加入和身份认证报文到接收者收到组播流的时间间隔。作为对照,本测试在同等条件下测量了一般的SDN组播环境下从组播接收者发送IGMP报文到收到组播流的时间间隔。

将两种情况下的数据汇总起来得到如图7(a)的结果。从图中可以看出,认证过程的加入额外造成了少量的时延,但未对整体性能产生较大的影响。

2.3.2 加解密时延

为测试组播消息加密对SDN组播造成的时延影响,本测试选取了不同清晰度的视频文件作为组播流,测量从组播源开始输出加密组播视频流到组播接收者正常播放解密视频之间的时间间隔,结果如图7(b)所示。由图可见,即使是播放清晰度为1 080 P的高清视频,整个过程也只需要2秒左右,加密对组播造成的时延对实际使用的影响有限。

图7 性能测试结果

3 结束语

提出了一种基于SDN的安全组播方案,其中包括了组播源/接收者的身份认证和组播消息的加密传输两大方面内容。针对现有SDN组播安全方案中组播接收者的认证过程复杂,并且不对组播源进行身份认证的问题,提出了一种基于数字证书的身份认证机制,通过一种新的组播加入和身份认证报文实现组播源和接收者的入组请求和身份认证,保证组播源和接收者身份的真实性。为了实现组播消息的加密传输,该方案为SDN控制器加入了密钥管理的功能,包括组播会话密钥的生成、分配、更新,保证了组播消息的机密性。仿真结果表明,该方案可以实现有效拒绝非法组播源/接收者入组,并实现加密组播功能,性能测试结果显示,因安全机制造成的时延对实际使用的影响有限,该方案对解决组播安全问题有一定实用价值。

猜你喜欢
接收者数字证书报文
基于J1939 协议多包报文的时序研究及应用
以太网QoS技术研究及实践
网络表情符号的作用
基于Python的汽车CAN总线报文格式转换系统的设计与实现
基于报文类型的限速值动态调整
功能翻译理论视角下英语翻译技巧探讨
可撤销用户动态更新广播加密方法的研究
口碑传播中影响因素作用机制研究及应用
PKI技术在SSLVPN中的应用
数字签名保护Word文档