一种软件定义网络下的流规则合法性认证方法

文档序号:9352823阅读:227来源:国知局
一种软件定义网络下的流规则合法性认证方法
【技术领域】
[0001] 本发明属于计算机应用领域,具体涉及一种软件定义网络下的流规则合法性认证 方法。
【背景技术】
[0002] 软件定义网络(Software Defined Networking, SDN)是典型的流规则驱动型网 络,流规则SDN是基础设施层执行转发、数据包处理等操作的重要依据;同时,网络中的信 息流是否流经某个网络设备以及何时经过该设备,均由控制器下发的流规则决定,物理的 安全设备自身并不具有决定权。因此,在由流规则驱动的SDN网络中,对流规则的合法性和 正确性进行认证,防止恶意和非法流规则的扩散,将是保障SDN网络安全运行的关键。
[0003] SDN中的流规则通常由系统管理员、OpenFlow应用程序、安全服务类应用程序和 其他一些辅助应用程序共同参与制定,并通过控制器下发至基础设施层的网络设备中。流 规则在生成和下发的过程中,可能被恶意篡改或伪造,不同的流规则之间也可能相互冲突, 而SDN基础设施层的网络设备对控制器下发的流规则完全信任,一旦由虚假控制器或恶意 应用程序生成的非法流规则被执行,将会给SDN网络带来严重威胁。
[0004] 由于流规则是SDN基础设施层执行转发、数据包处理等操作的主要依据,攻击者 一旦能够伪造或篡改SDN中的部分流规则,将可能控制整个SDN网络;可编程性是SDN实现 统一管理、配置网络设备的重要依托,但它也降低了攻击者对SDN中流规则的攻击门槛,使 得攻击者仅通过软件编程即可实现对网络的攻击。攻击者如果能够伪装成一些具有流规则 生成权限的合法应用程序,或对合法应用程序的部分流规则生成权限加以篡改,便可能破 坏SDN中正常的流规则生成机制,使得攻击者的一些非法数据包绕开SDN中部署的各种安 全设备,从而导致SDN中预先部署的各种安全服务失效。
[0005] 此外,由于现有的大多数控制器如 NOX、POX、Floodlight、OpenDaylight、Beacon、 Onix、Ryu N0S、0N0S等,在设计和开发之初,研究人员主要关注的是网络资源的调度和控 制,如链路发现、拓扑管理、流规则下发等功能,基本没有对流规则的合法性问题详加考虑。
[0006] 针对SDN中流规则的合法性检测与认证问题,现有的研究方案主要包括两种思 路:(1)基于应用程序的角色和优先级,对流规则的等级进行划分;(2)采用形式化分析的 方法,对不同流规则之间的一致性和冲突进行匹配和分析。
[0007] 第一种研究思路首先对参与制定SDN流规则的应用程序进行角色和优先级的划 分,如将应用程序划分为系统管理员级、安全应用级和其他应用程序三类,各应用程序根据 自身的角色对其生成的流规则进行签名。当流规则被插入控制器流规则库时,控制器便根 据流规则的签名信息对其合法性进行判断。这种方法仅将生成流规则的实体划分为管理 员、安全类应用程序和其它应用程序三类角色,而实际情况中,参与流规则制定的实体角色 更为复杂。如多个同为安全类应用的程序实体,采用基于角色的流规则来源划分方法时,将 无法对生成某个流规则的具体应用程序进行识别;同时,由于同一角色的应用程序生成的 流规则优先级相同,但这些流规则之间又可能相互冲突,这些因素均给流规则的更新和认 证带来了诸多问题。因此,需要采用更细粒度的流规则认证和优先级划分机制,来对流规则 合法性进行约束。
[0008] 第二种研究思路首先对流规则进行形式化描述,并将描述信息和目标流规则一同 输入到一个指定的形式化分析工具中,依据分析工具输出的分析结果,对流规则的一致性 和冲突情况进行检验,然而,SDN的网络状态和配置信息动态变化,这种流规则检测方法虽 然可以在流规则执行的过程中对其一致性进行细粒度地检测,但却无法防止恶意应用程序 向控制器注入虚假流规则。
[0009] 因此,针对SDN中的流规则合法性问题,本发明针对SDN流规则生成机制和下发机 制的特点,结合应用程序权限管理和身份签名算法等思想,提出了一种软件定义网络下的 流规则合法性认证方法。

【发明内容】

[0010] 本发明旨在至少解决上述技术问题之一。
[0011] 为此,本发明的一个目的在于提出一种软件定义网络下的流规则合法性认证方 法。
[0012] 为了实现上述目的,本发明的实施例公开了一种软件定义网络下的流规则合法性 认证方法,包括以下步骤:S1 :构造应用程序的流规则生成权限集,对应用程序的流规则生 成权限进行细化,所述步骤S1进一步包括:S11 :为应用程序的各项流规则生成权限设定权 限值,所述权限值的大小用于表示应用程序是否具有该项权限;S12 :构造所述应用程序的 有效流规则生成权限集合,当所述应用程序某项流规则生成权限值为最大值时,所述应用 程序的该项流规则生成权限有效;S13 :构造所述应用程序的待分配流规则生成权限集合, 当所述应用程序某项流规则生成权限的权限值为最小值时,所述应用程序的该项流规则生 成权限待分配;S14 :构造所述应用程序的流规则生成权限全集,所述流规则生成权限全集 包括所述权限值为所述最大值或所述最小值时所对应的流规则生成权限的总和,包括读取 状态信息方面的流规则生成权限、信息变动提示方面的流规则生成权限和写入信息方面的 流规则生成权限;S2 :新应用程序在参与流规则生成服务前,应向可信第三方私钥生成中 心获取用于流规则生成服务的合法身份标识,并通过SDN控制器的App认证模块对所述合 法身份标识和所述有效流规则生成权限集合进行注册;S3 :采用基于身份的签名算法对所 述新应用程序生成的流规则信息进行签名,所述SDN控制器接收到具有签名的所述流规则 之后,由所述App认证模块对所述流规则和生成所述流规则的应用程序的有效流规则生成 权限进行验证;若通过验证,则判定所述流规则合法,所述SDN控制器接受所述流规则。
[0013] 根据本发明实施例的一种软件定义网络下的流规则合法性认证方法,可对合法应 用程序生成的越权流规则进行及时过滤,并能够防止合法应用程序在被恶意攻击者非法使 用时,给控制器带来的流表条目污染和内存耗尽问题;采用基于身份的签名算法对应用程 序生成的各项流规则进行签名,在流规则插入控制器时,控制器可根据流规则的签名信息 及其来源应用程序的流规则生成权限,对流规则的合法性进行认证,拒绝非法应用程序提 供的虚假流规则生成服务,从而有效防止虚假流规则对SDN控制器的恶意攻击。
[0014] 另外,根据本发明上述实施例的一种软件定义网络下的流规则合法性认证方法, 还具有如下附加的技术特征:
[0015] 进一步地,所述步骤S2进一步包括:S21 :当新应用程序加入系统时,所述新应用 程序向可信第三方私钥生成中心发送基本信息申请用于流规则生成服务的所述合法身份 标示,所述基本信息包括开发者、名称、大小和开发日期;S22 :所述可信第三方私钥生成中 心对所述新应用程序的基本信息进行审核,若审核通过,所述可信第三方私钥生成中心为 所述新应用程序颁发所述合法身份标示;
[0016] S23 :在所述新应用程序首次向所述SDN控制器提供流规则生成服务时,所述新应 用程序向所述App认证模块提供所述合法身份标示和所述有效流规则生成权限集合,由所 述App认证模块对所述应用程序的所述合法身份标示和所述有效流规则生成权限集合进 行审核;S24 :若通过审核,所述App认证模块会将权限登记结果返回给所述新应用程序;若 未通过审核,所述App认证模块将拒绝接受所述新应用程序的流规则服务。
[0017] 进一步地,所述步骤S3进一步包括:S31 :可信第三方私钥生成中心生成系统的公 开参数params和主密钥;S32 :新应用程序向所述可信第三方私钥生成中心发送所述合法 身份标识,所述可信第三方私钥生成中心为所述新应用程序生成对应的私钥;S33 :所述新 应用程序根据所述私钥和所述的合法身份标识,采用基于身份的签名算法对所述流规则进 行签名;S34 :所述App认证模块根据所述新应用程序的所述身份标识,对所述流规则的签 名信息进行验证,若签名合法,则接受所述流规则,并将所述流规则更新至系统流规则库。
[0
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1