论文部分内容阅读
随着软件定义网络(Software Defined Networking,SDN)的应用部署逐渐广泛,SDN所面临的安全问题也日渐突出,现如今,SDN的安全问题已经成为制约其发展的关键因素。在应用层,SDN主要的安全问题在于应用程序认证机制和权限管理的不完善;在控制层,由于控制器作为控制全网的核心节点,其主要的安全问题控制器的单点故障;在数据转发层,主要的问题在于控制器所下发的流规则信息的完整性没有良好的保障机制,而SDN中除控制器之外的设备都不具备判断识别流规则是否被攻击者篡改的能力,从而导致攻击者可以篡改交换机的流表信息,使得SDN的流量按照攻击者的意图流动,从而引起网络功能故障。本文针对上述SDN所面临的主要安全问题,基于区块链这一分布式数据库的去中心化、可信任以及存储数据不可篡改等特性,从信息完整性保障、分布式认证及其权限管理以及控制层单点安全性保障等几个方面进行解决,主要工作如下:⑴针对SDN网络信息完整性保障、完善的节点身份验证及权限管理机制的问题,本文基于区块链技术不可篡改的性质以及去中心化的特点,提出了基于区块链的SDN安全保障模型,对SDN流规则、节点的身份和权限信息以及控制器的全局信息等进行上链存储,保证了网络信息的完整性,并通过区块链网络建立了分布式的认证机制,缓解了传统集中式认证容易受到单点攻击的问题,此外,在数据上链存储和分布式认证的基础上进行了基于角色密钥的权限管理,最后采用马尔可夫模型对基于区块链的SDN模型的安全性能进行分析,在此基础上进行仿真,分析和仿真结果表明,该模型能够有效防止攻击者恶意篡改SDN网络信息,并能显著提高SDN在认证和权限管理等方面的鲁棒性。⑵针对控制器单点故障的问题:本文提出了一种基于区块链的分布式SDN控制模型,在本模型中,将单点控制器改为控制器组,通过区块链的共识机制保证各个控制器信息同步,防止控制器容易受到单点攻击的威胁。除此之外,模型具备保证业务连续性的高效故障恢复策略,并通过引入边缘节点,大大降低了时延。仿真结果表明,基于区块链的分布式SDN控制模型在对SDN控制器单点攻击的抗性显著提高。⑶本文基于Ryu控制器、mininet以及python flask框架搭建了SDN网络管理平台,通过对Ryu控制器的开发实现自学习交换机、最短路径等路由算法以及其他SDN的控制功能,平台可基于mininet创建的仿真网络也可基于支持Openflow协议的交换机实现的物理网络,通过基于python flask框架实现的前端平台,可以对SDN的拓扑、流量状况、链路带宽等网络信息实时监控。此外,本文基于以太坊搭建私有链系统,用户可以创建账户并交易,系统通过挖矿不断产生新区块,保存用户交易信息等。