APP下载

引入区块链的SDN-IoT网络安全:架构、方案与挑战

2022-10-15杨喜敏刘宇宸

小型微型计算机系统 2022年10期
关键词:交换机分布式控制器

唐 菀,张 艳,杨喜敏,陈 健,刘宇宸

1(中南民族大学 计算机科学学院,武汉 430074)

2(武汉大学 电子信息学院,武汉 430072)

E-mail:tangwan@scuec.edu.cn

1 引 言

1.1 基于SDN的物联网

物联网(Internet of Things,IoT)是一个代表未来计算和通信的技术革命.欧洲物联网研究项目组(European Internet of Things Research Group,IERC)定义物联网是“一个动态的全球网络基础设施,具有基于标准和可互操作通信协议的自我配置功能,其中的物理‘物’和虚拟‘物’拥有身份、物理属性和虚拟个性,使用智能接口,并无缝集成到信息网络中”.根据应用场景,物联网可分为消费型物联网和工业型物联网,车联网、无人机网络、智能家居/楼宇属于前者,而智能电网和工业物联网(Industrial IoT,IIoT)则是后者的典型应用.具有高带宽低延迟的5G/6G通信技术,以及下一代网络的发展正在为物联网提供真正的联网根基[1],但是,当前还缺少相应监管政策和规则,对不同厂家的物联网设备的安全性和连接性产生一些负面影响[2,3].此外,物联网设备的数量与性能正在迅速增长[4],物联网的风险点日益增多,用户数据在传输过程中存在被窃听、篡改、泄露等安全威胁的风险越来越大[5,6].

软件定义网络(Software-Defined Networking,SDN)架构被认为可以应对物联网的现有挑战[7],在软件而非硬件上实现网络数据传输与交换功能也是基于5G/6G 的物联网发展的主要趋势之一[8].SDN通过解耦网络的控制逻辑和数据转发逻辑,实现对网络的集中管控和业务更新,SDN控制器可以提供整个网络的全局视图[9],这些特性让基于SDN的物联网(SDN-based IoT,SDN-IoT)能动态地实施决策、流量管理、网络监控等[10].SDN可以为IIoT提供低延迟服务和大规模智能设备连接[11].随着车载自组织网络(Vehicular Ad hoc Network,VANET)的发展,大量的智能车辆将出现大量不同的通信需求,软件定义的车辆网络(Software-Defined Vehicular Network,SDVN)的新网络模式也已出现[12].

1.2 SDN-IoT安全性及区块链的引入

基于相互信任是现有网络体系架构的设计的前提,也是目前网络安全问题的本源[13].传统的外壳式防御体系和集中式防御机制无法适应高速发展的网络性能及应用需求,导致包括安全在内的网络问题[14-16].加上物联网连接的易受攻击的设备数量不断增加,以及SDN控制平面和数据平面的分离所带来的攻击面增加等,都可能会颠覆引入SDN带来的巨大好处[17,18].

虽然SDN面对某些安全威胁时更为安全,并能提供可扩展的网络监控工具,但也带来了传统网络中不存在的新漏洞,这些软件化技术可能遭受各种威胁和更多攻击[19].此外,物联网数据中心很容易受到分布式拒绝服务(Distributed Denial of Service,DDoS)攻击,并且在发生这种攻击时,所有物联网服务都可能受到集中式拓扑结构的影响与制约[20].此外,为SDN控制器提供额外的安全将进一步耗尽物联网资源,在当前物联网不增加网络资源开销的情况下,实现对攻击的实时检测非常困难[21].

近年,已有不少研究基于具有去中心化、伪非对称性、交易安全性等特性的区块链技术,来解决物联网特别是SDN-IoT面临的安全问题.区块链技术为物联网去中心架构提供了解决方案,可以解决信任和安全、高维护成本等问题[20,22].区块链的分布式体系结构使现有SDN-IoT安全解决方案具有更大的可扩展性,能够解决单点故障问题,对DDoS攻击也更具鲁棒性.此外,区块链可以在没有任何第三方参与的情况下建立信任和共识机制,保证交易记录不被伪造或修改,并为系统提供可追踪事件的审计证据[23].

1.3 相关综述

本文对涉及SDN、区块链、物联网的一些安全研究进展进行梳理,并在表1中列出近4年的一些相关综述文献.

表1 关于SDN、物联网、区块链的网络安全的研究综述Table 1 Existing surveys on network security of SDN,IoT,and blockchain

文献[9,24,25]从解决基于SDN架构的网络安全展开概述.文献[9]对物联网、区块链网络、车联网和无线传感器网络等专用网络的SDN控制器进行比较分析.针对区块链网络的大多数现有SDN控制器方案都是为了强制执行安全策略而设计,因此该文献指出攻击检测准确率、误报率、攻击缓解率,以及基于区块链功能的适应效率等是控制器的主要性能指标.基于2013年~2020年5月发表的文献,文献[24]对DDoS检测策略(如统计、SDN体系结构和机器学习)和新兴方法(如网络功能虚拟化NFV、区块链、蜜网、网络切片和移动目标防御)进行回顾,将这些策略分为统计策略、机器学习策略和区块链策略.作者深入分析了区块链技术可以防止未经授权的访问、数据泄漏、拒绝服务(Denial of Service,DoS)和数据修改等安全风险的原因.文献[25]介绍利用区块链技术对SDN体系结构进行安全保护的方法,探讨结合SDN和区块链保障网络基础设施机密性、完整性和可用性的可行性.

文献[22,26]从保证物联网安全的角度来讨论区块链技术的应用.文献[22]介绍了主要的物联网安全和隐私解决方案,首先讨论区块链和SDN等新方法在灵活性和可扩展性方面给物联网安全和隐私带来的好处,然后对现有解决方案进行通用分类和比较.文献[26]基于安全性、隐私性、信任和分布式智能、SDN、NFV、区块链、机器学习等7个方面分析物联网安全,讨论物联网范式的12个安全挑战和存在的问题.

文献[7,27-30]对在物联网引入区块链及其部署的工作进行归纳,阐述了面临的挑战及解决这些挑战的最新研究进展,并指出其中的阻碍、未来研究方向和应考虑的因素,均认为区块链是设计安全可靠物联网系统的关键技术.文献[7]分析物联网区块链、云物联网区块链和雾物联网区块链在智能城市、智能交通和其它应用背景下的最新进展,文献[27,28]阐述当前集中式物联网模式所带来的挑战.文献[29]则将重点放在集中架构物联网所呈现的几个安全漏洞的解决方案上.文献[30]指出,在物联网中部署区块链之前,应妥善解决与安全性、加密和隐私等相关的问题,并提出相关解决方案.

文献[19]归纳了对软件化无人机网络管理可能的安全攻击的分类及其对策;指出互操作性、数据安全、单点故障、智能合约安全方面待解决的问题与研究挑战.文献[31]主要综述区块链对实现分布式互联网的(1)共识算法和(2)区块链两个研究点对各种新兴互联网技术的遵从性,以及对这些技术的影响.

经过对近年相关综述文献的梳理与分析,可以看到具有去中心化、交易安全性等特性的区块链技术为解决SDN-IoT的安全问题提供了新的思路与解决方案.但据作者调研所知,目前尚未有综述文献从网络架构、解决方案、前景与挑战几方面对引入区块链技术解决SDN-IoT网络安全问题进行综合性的分析与探讨.

1.4 本文工作

本文第2节概述SDN-IoT存在的主要安全威胁以及面临的挑战,从网络架构层面分析SDN-IoT安全脆弱点及其面临的安全攻击;第3节归纳引入区块链可以解决的SDN-IoT安全问题;第4节介绍现有SDN-IoT网络架构,并基于区块链部署层面对这些架构进行分类;第5节基于SDN-IoT的网络架构,从数据、通信、SDN控制、节点、特有攻击等5个方面的安全问题进行描述,并详细介绍引入区块链解决这些问题的方案及相关研究进展;最后在第6节总结并探讨引入区块链技术对SDN-IoT安全性的发展趋势和面临的挑战.

2 SDN-IoT及其安全性

在物联网领域,理想的分布式平台要支持一些主要功能[28]:1)免信任的机对机(Machine to Machine,M2M)通信;2)去中心化的访问控制;3)私人设计文件共享;4)在多个物联网用例上提供可扩展的安全性.这些功能都需要对SDN-IoT网络架构去中心化,当引入区块链技术到SDN-IoT网络中来实现这一目标的同时,原有的和新产生的安全问题均不容忽视.

2.1 IoT存在的安全问题

物联网的特性引发了许多与物联网设备自身特点相关的安全问题.例如,物联网比传统网络更容易受到各种各样的网络攻击,这些攻击破坏了物联网的机密性、完整性、身份验证和可用性,而这些方面也是任何现代通信网络的基本要求.当前从IPv4到IPv6的网际协议(Internet Protocol,IP)发展意味着越来越多的物联网设备具有全球IP地址,并进一步导致这些设备成为安全攻击的焦点[29,32].

物联网安全涉及物理问题和逻辑问题,前者处理有限的计算能力、内存和能源使用,后者包括身份验证、安全性、针对不安全软件的保护、方法标准化和监控等[33].因此,物联网系统对新型、轻量化的安全解决方案提出了关键要求.例如,因为设备处理能力和内存资源有限,物联网需要仅消耗有限内存的轻量级加密算法和安全策略,使用限制节点之间交换信息量的标准协议.而现有用于授权和认证物联网设备的协议还没有标准化,可能允许攻击者通过对恶意节点的访问得以进入网络,新服务和设备定期更新也可能包含危险的故障或漏洞[10].

大量异构物联网设备互联是一个复杂系统,当前的网络基础设施却很难对这个系统进行持续的安全监控.物联网设备可能安装在终端用户希望的任何地方,然后这些设备无人看管且始终处于连接状态,攻击者会发起攻击进而控制这些设备,并对其恶意配置,破坏终端用户的隐私.此外,在不了解物联网服务及其设备的属性的情况下,很难正确地阻止不期望的通信.

由于物联网设备资源有限,常规网络现有的安全解决方案难以在物联网中实现,不足以满足可靠的物联网应用,而许多安全物联网系统的解决方案也不够通用[27,34].因此,物联网环境中的这些安全挑战促使必须设计新的网络和安全框架,以应对物联网面临的安全威胁与攻击.

2.2 SDN架构及SDN-IoT架构

SDN作为一种新型的网络体系结构,具有转控分离和集中控制的特点,将数据平面和控制平面解耦,通过控制平面下发流表实现灵活高效地控制网络流量.开放网络基金会(Open Networking Foundation,ONF)致力于推广基于OpenFlow南向接口协议的SDN网络架构(见图1),其中的数据平面、控制平面、应用平面又分别被称为基础设施层、控制层、应用层.数据平面和控制平面之间通过南向接口进行通信(OpenFlow协议是目前应用最广泛的SDN南向接口协议),控制平面和应用平面之间则通过北向接口进行通信.数据平面由网络转发设备如SDN交换机等组成,主要功能是根据控制层下发的流表(flow table)进行数据的转发和处理工作.控制平面由若干SDN控制器构成,控制器根据应用层的业务需求,通过下发流表项(有时也称为流表规则)对基础设施层中的网络设备进行流量管理.应用层则运行着若干SDN应用(Application,App),它们通过应用程序接口(Application Programming Interface,API)与控制平面进行通信,向控制器下发所需要的应用要求与网络行为(action).

图1 基于OpenFlow协议的SDN架构[35] Fig.1 SDN Architecture based on OpenFlow protocol

如图2所示,SDN-IoT的基本架构包括3层:1)感知层,对应物联网的感知层与边缘层,涉及边缘感知设备与边缘网络设备,如移动终端、边缘服务器与数据库、边缘数据传输;2)网络层,分为SDN数据层和SDN控制层两个子层,分别以SDN交换机和SDN控制器为主要网络设备;3)应用层,解决相应的云数据库、软件应用及其通信存在的安全问题,包括原有SDN应用层中提供的网络管理应用.

图2 SDN-IoT的基本网络架构Fig.2 Fundamental SDN-IoT network architecture

2.3 SDN-IoT存在的安全风险

网络空间绝大部分安全威胁是由外因通过与内因相互作用而形成,其中外因指人为攻击,内因则指目标对象自身存在的安全漏洞与后门等[36].网络内生安全更多强调建立完备的安全体系,从内部增强安全防御能力,从根源上降低安全风险[37].SDN在移动无线网络特别是物联网中的集成将带来更先进的功能,然而也引起了新的内生安全隐患[22].

2.3.1 数据安全性

普适边缘计算(Pervasive Edge Computing,PEC)在边缘设备间共享数据的同时,也存在一些数据安全和隐私问题.大量设备接入到网络中,网络中的数据流量极速增长,如果不妥善保护这些敏感数据而造成数据的泄露或损坏,必然会造成不可估量的损失.因此,如何在SDN架构中保护数据的安全存储和安全传输成为人们关注的话题.

2.3.2 架构内的通信安全

SDN架构缺乏完整的安全机制,除控制器以外没有其它设备能够确定流表规则(简称流规则)是否被篡改过,SDN数据平面中的转发设备只负责转发操作,不具备识别流量是否合法的功能[38].因此,无法保证流规则等重要网络信息的完整性,攻击者能够很容易插入到控制平面和数据平面之间,下发错误流表项给转发设备.

2.3.3 授权与认证机制

SDN架构中控制平面和数据平面的互不信任也给网络带来了额外的威胁.首先,数据平面只负责转发操作,恶意节点可以通过控制平面下发错误流表项而对网络造成破坏.其次,由于控制器是整个SDN架构的“大脑”,恶意节点也可以通过数据平面向控制器发送大量不必要的数据包,使控制器超额负载,从而导致网络瘫痪.

2.3.4 控制平面的可靠性与协同一致性

由于控制器在SDN中的核心地位,出现了针对控制器脆弱性的攻击.传统SDN体系结构采用单一的集中式控制器,这必然面临严重的单点失效问题.随着SDN网络的发展,单控制器无法管理庞大的网络基础设施,且交换机和控制器之间频繁的通信使得单控制器开销过高,导致其成为整个网络的瓶颈[10].部署多控制器可以解决以上单控制器所存在的问题,但随之而来的是多控制器不能协同一致带来的安全缺陷.

2.3.5 SDN各层/接口的安全

安全对策需要多层之间的交互和协作,在各层均采用网络状态和行为监控是通用的手段.除了对网络流量、访问端口、网络状态等的常规监控外,还需要对交换机与控制器间、控制器之间、应用层应用与控制器间等基于SDN的移动网络特有的消息与行为进行监控.但是,实时监控及相应的信息存储的需求对网络流量发送延迟、移动终端应用程序运行、控制器运行效率、各层的存储空间等的影响,也带来一些新的安全问题[39].

2.4 SDN-IoT面临的安全攻击

在基于区块链构建网络架构并改善网络安全性之前,先从网络分层角度来归纳与分析SDN-IoT的安全脆弱点及面临的安全攻击.

2.4.1 针对物联网的攻击

物联网体系结构一般分为3层:感知层、网络层和应用层,由于构成与功能的不同,使各层遭受的网络攻击有所差异[40].

1.感知层

感知层位于最底层,也称为传感层,通过传感网络感应来自周围环境的数据,并将这些数据传输到云服务以进行进一步处理.短距离无线通信和传感检测是该层的关键技术,攻击者主要是通过伪造和冒用受信任设备的身份凭证参与通信,发送有害信息或监听并收集机密信息,例如中继攻击和女巫攻击,还有专门针对传感网络物理层的攻击.

2.网络层

网络层处在结构的中间,负责将感知层获得的感测数据传送到应用层.攻击主要针对网络通信系统中的数据转发、路由、控制等过程进行.当网络设备被攻击者控制而成为恶意节点,通过操纵路由表和篡改流规则,选择性转发或重定向其接收的流量,如选择性转发攻击和天坑攻击;还能让其它网络设备将恶意节点误认为是可信的,通过恶意节点将数据转发到终端设备或进行机密信息窃取,如Hello洪泛攻击和射频识别克隆/欺骗.

3.应用层

最顶层被称为应用层,提供存储服务和各种工具与技术,对感测数据进行处理和应用.网络钓鱼攻击是该层应用程序容易受到的攻击.此外,物联网终端设备即是中间人(Man In The Middle,MITM)攻击和DoS/DDoS攻击的宿主也是受害者.当两台设备之间进行通信时,MITM攻击者假装是两台设备的另一方,从而获取设备之间通信的机密信息.而后者通过强制过度使用进而耗尽系统资源,让系统无法正常运行,最终导致拒绝提供服务.这两个攻击也可能发生在物联网其它层的可用设备上.

2.4.2 针对SDN的攻击

一些文献从不同的角度对SDN特有攻击进行了剖析.文献[25]讨论了阻碍SDN网络环境安全可靠的威胁向量.由于当前SDN的运行方式与传统网络不同,一些攻击与传统网络中的攻击相似,但在利用SDN独特的漏洞方面存在显著差异[41].文献[42]从网络的层面/接口切入,对 SDN 中存在的典型安全威胁和安全问题进行综述,文献[40]和[43]则讨论了不同SDN层面的攻击类型,本文采用与后者同样的讨论方式.

1.数据平面

SDN交换机是数据平面主要的网络设备,不少攻击主要基于交换机及其流表对网络安全进行破坏.插入和操纵流规则可能导致丢包或错误转发数据包,而流规则之间的不一致也可能导致不正确的数据包处理.存储流表的三态内容可寻址存储器(Ternary Content Addressable Memory,TCAM)空间有限,当流表过载攻击和DoS攻击产生大量流量时,流表空间将严重不足而溢出[44].此外,交换机具有与控制器连接的模块,如果交换机不支持访问控制和身份验证,连接端点可能会受到攻击者的攻击.

2.控制平面

控制器是控制SDN基础设施功能的逻辑集中设备,也是SDN架构安全性的最大脆弱点.MITM攻击利用SDN集中管理带来的关键漏洞而发起攻击,依赖于通过中继链路层发现协议来操纵集中式拓扑视图[45].攻击者可以创建恶意控制平面模块,向交换机中发送异常的流表项,从而完全访问SDN基础设施.拓扑中毒攻击的恶意行为则是通过传播错误信息(即注入假链接)误导控制平面的拓扑发现服务[46].

传统SDN架构没有考虑信任机制,多供应商之间、多控制器之间没有相互信任的基础,在SDN节点交互过程中存在着不确定性、不可控性和不完全性等问题.这种控制器和交换机的关联没有任何信任保证的状况,为交换机/控制器身份窃取和流/角色注入创造了条件.攻击者还可以针对SDN网络发起专门的DoS攻击[47,48].例如数据控制平面饱和攻击通过触发多个表未命中数据包,故意使控制平面过载,从而耗尽控制器的资源并延迟将消息转发到OpenFlow交换机[49,50].

3.应用平面

SDN应用平面中复杂的应用程序可靠性较低,新的应用程序可能隐藏未知漏洞.如果网络监控和决策的应用程序是恶意的或被破坏的,将导致攻击者完全控制网络,并访问通过网络共享的私有信息.SDN开放的可编程接口可能导致控制器被非法入侵,网络数据、安全日志文件都有可能被窃取或篡改.

所有SDN资源配置都通过中央控制应用被管理和进行存储,从而形成非常集中的攻击面,易遭受来自物联网设备的单点攻击[11].此外,在车联网等移动终端设备高度动态的环境中,网络拓扑频繁变化,终端设备之间交换大量消息.从底层网络收集所有这些数据更新,以集中式来实施安全策略和配置,时间开销非常大[22].

4.通信安全

SDN-IoT的部署以及任何物联网应用所需的云间通信也会带来额外的安全风险,并容易受到特定类型的攻击[10].本文主要讨论针对SDN-IoT控制平面与其它平面之间(南北向)和控制平面内(东西向)引发的攻击.

1)南向通信安全

控制器和交换机之间缺乏安全信道,仅靠传输控制协议(Transmission Control Protocol,TCP)建立连接的控制器南向接口易受窃听、伪造控制信息等攻击[51].传输层安全(Transport Layer Security,TLS)协议被OpenFlow作为可选支持,但由于其认证过程繁琐并且也面临一些安全问题,因此也不足以保证南向通信安全[52].

2)北向通信安全

在应用平面和控制平面之间缺乏身份验证和信任的情况下,通过破坏后续API消息可能会发生模拟攻击,错误的身份验证会导致攻击者向控制器应用程序发送恶意指令.

3)东西向通信安全

当API不支持安全功能时,攻击者修改控制器与交换机的通信信息,例如流表控制信息和下发的流规则等,造成流规则的合法性和一致性等方面的安全威胁.

现有文献从攻击危害性、攻击层面、攻击方式等角度对SDN面临的攻击进行分类[40,49,53],本文则主要给出SDN-IoT架构中网络层的控制平面与数据平面主要的安全脆弱点以及对应的主要攻击(见表2).从表2可看到,通信安全、控制器单点失效与协同、节点授权与认证方面的漏洞被大多数攻击所利用和针对.

表2 SDN-IoT网络层的攻击Table 2 Attacks on the network layer of SDN-IoT architecture

3 引入区块链的SDN-IoT安全

针对SDN-IoT面临的网络安全问题,现有研究工作主要从实施安全策略、安全路由、流表管理等方面开展.但是,由于控制器就像一个完成所有的认证和授权行为的第三方信任中心,这些研究还远不足以保证访问控制、身份验证、数据与通信安全等,区块链技术的出现给这个困境带来新的思路.

3.1 区块链技术

区块链技术通过对等(Peer to Peer,P2P)计算技术构建一个去中心化的网络,使用数字签名、共识机制、智能合约等技术实现数据的安全传输与更新、不可篡改与可追溯等功能[67].尽管各区块链平台在具体细节上有所差异,但在整体的体系架构上却大同小异,通常划分为网络层、共识层、数据层、智能合约层和应用层等5层(见图3).

图3 区块链体系架构[68]Fig.3 Blockchain architecture

区块链是跨大型对等网络经验证、有效和永久的交易(transaction)记录的分布式分散集合[31].这些交易记录类似于数据库条目,被视为块或区块(Block),区块链中的所有参与者都可以访问块,但不能删除或更改.区块由区块头和交易记录组成,区块头保存块版本、父块散列、Merkle树根散列(块中所有交易的散列值)、时间戳、当前散列目标和为每次散列计算增加的随机数(Nonce),交易记录包括交易计数器和交易内容.每个块通过其父块的参考哈希值指向上一个块(如图4所示).

图4 区块链的区块结构[30]Fig.4 Block structure of blockchain

区块链具有的去中心化、持久性、匿名性、可审计性等特征,能够实现对资源的安全、共享和分布式的记录和跟踪.通过集成P2P协议、非对称加密、共识机制、链式结构等多种技术,来解决数据的可信问题,保证数据共享的安全性和可靠性[69].

3.2 区块链能解决的问题

现阶段区块链技术在保证网络安全中逐步得到应用,其在网络层主要涉及协同式网络入侵检测和域间路由安全,在应用层则主要体现在漏洞检测众包和访问控制机制[68].随着无线通信技术的发展,6G 技术将成为大规模物联网应用的关键促成因素.6G 网络的内生安全有可信增强、智能共识、智能防御和泛在协同等4个方面要求,其中的边缘节点也具有分布式和去中心化等特征,使得区块链技术能够用来提升基于6G 的SDN-IoT内生安全性能[37].

区块链内置机制的安全功能可以从多个角度加强物联网特别是SDN-IoT的安全性:

1)去中心化——采用分散的对等网络架构来实现物联网设备的自主性,显著降低热点负担和减少单点故障[28].

2)智能合约——让物联网设备可以自主进行交易和执行操作.作为一个公共分布式账本,所有用户都可以对存储的信息进行审计,为物联网业务合作提供一个信任平台[20].

3)可审计性——存储在区块链上的物联网数据和事件日志不可篡改,能保证责任和可追溯性.所有加入链的网络设备都有专用的区块地址,网络可不受虚假验证的影响[29].

4)认证与授权——用于SDN安全数据交换和信任管理,帮助跨域网络安装流规则和数据交换,防止未经授权访问、数据泄漏、网络攻击和数据修改等安全风险.区块链支持的流表及其功能有助于识别受到危害的物联网设备[24].

5)共识机制——通过基于可信区块链数据块的一致性实现多控制器协同,并生成公共的共享数据库,增强SDN控制器之间的一致性[55].

6)密钥框架——应用各种基于公钥/私钥的加密方案,一旦数据被添加到区块链中,攻击者几乎不可能更改数据,并支持向物联网设备部署安全软件更新[28].

4 基于区块链的SDN-IoT架构

在构建SDN-IoT架构时就考虑部署区块链,是促进SDN-IoT网络内生安全的有效途径,这相当于在系统设计之初就植入防御机制.首先要考虑如何在SDN-IoT网络中配置区块链及其相应模块,使其融入现有网络架构,与原有网络设备协同并有效运作[70].根据部署区块链的SDN-IoT网络层面,本文将引入区块链来支持安全的网络架构分为4种类型,前3类分别面向SDN-IoT架构(见图2)的感知层、网络层和应用层,第4类为面向综合层类型,指区块链被部署在多个架构层,或在多层网络框架中构建一个单独的区块链层.

4.1 类型1——面向感知层的架构

物联网边缘设备以及支持运算和存储的边缘云是感知层主要组成.区块链的共识机制和分类账更新过程需要大量计算,通常这些计算量相对较大的任务被转移到边缘设备.使用区块链,可以在所有感知层设备建立分布式控制机制,并通过其共识机制保持每个边缘节点的数据一致性[17].部署在SDN-IoT感知层的区块链又称为边缘区块链.

边缘区块链往往将物联网边缘节点与服务器作为区块链的一部分,有助于维护SDN的分布式、不变的流量分类账.文献[71]对基于区块链的SDN安全性定义了一个执行命令(execute-order)架构.所有服务器都是区块链的一部分,每个服务器在区块链中维护一个数据库作为开放式账本的副本,存储相关的访问策略和安全机制的信息.文献[17]提出边缘区块链辅助SDN(BlockChain-aided SDN,BC-SDN)体系结构,将区块链代理(BlockChain Agent,BCA)与边缘计算服务器一起部署,以减少物联网系统的计算负担,用于达到网络流表一致性.

此外,边缘区块链为物联网边缘设备及用户提供安全的数据传输与数据共享,从而减少对物联网边缘层的安全攻击.文献[72]给出的分布式安全框架通过基于区块链的平台即服务(Platform as a Service,PaaS)模型来实现[72],采用边缘云和SDN技术,所有漫游的物联网设备和SDN服务器通过区块链共享数据.该模型在用户移动时确认获授权用户的数据机密性,并帮助用户验证和信息加密,在云层实现安全攻击检测.一种支持SDN的PEC安全数据共享模型被提出[11],基于区块链和基于身份的代理重加密(Identity-Based Proxy Re-Encryption,IBPRE),以确保设备数据的安全性和隐私性.区块链被用来管理设备数据的加密密钥,并记录密钥的访问情况,以实现问责制.数据所有者和其他人之间能安全地共享加密文件密钥,用户可以将加密密钥上传到区块链,并与区块链进行交互,例如通过设计的智能合约来搜索和更新区块链上的记录.

4.2 类型2——面向网络层的架构

大部分SDN-IoT架构是在网络层引入区块链技术,而以控制器为核心在控制子层建立区块链又是其中最主要的方式.将物联网中所有的控制器以分布式区块链网络方式互连,由控制者扮演区块链所有者的角色,让每个物联网转发设备能够高效而安全地通信.区块链允许协同SDN控制器之间的交易,以便在检测到攻击时下达和执行适当的操作.将中央机构和可信区块链所有者的角色分配给控制器,可以从根本上实现可靠性、安全性、可追溯性和控制器同步[25].

在SDN-IoT架构的网络层引入并部署区块链,可实现不同安全等级,主要有数据存储与传输安全、网络管理安全和系统整体安全3个需求目标.

4.2.1 数据存储与传输安全需求

在点对点区块链网络层的各 SDN 控制器上分别构建一个区块链存储区,每一个存储区由一个可读取、可添加、不可篡改的分布式数据库组成,共同维护区块的记录列表[61].也有使用去中心化的星际文件系统(InterPlanetary File System,IPFS)协议,在分布式文件系统中存储和共享数据,其中区块链节点(即矿工和客户)使用IPFS与智能合约和区块链交易进行互操作[73].文献[65]将服务器分为主服务器和助理区块链服务器(Assistant Blockchain Server,ABS),它们分别对应数据库服务器与Web服务器.ABS连接到实现OpenFlow协议的智能交换机,并在信任列表中保存合法IP地址.

除了要保证数据存储的安全,还要确保数据的安全传输.DistBlockNet架构[21]中,物联网中的所有控制器以分布式区块链网络方式互连和更新流表,并对流表的版本进行安全验证,以便网络中的每个物联网转发设备能够安全高效地通信.文献[74]中,基于SDN的车联网控制平面由SDN控制器、 路边单元集中器(Roadside Unit Hub,RSUH)和区块链组成,也是通过对流规则的管理来提供一种基于信任的网络恶意行为抑制模型.在基于区块链的协同DDoS攻击缓解框架Co-IoT[75,76]中,每个自治系统(Autonomous Systems,AS)的控制器之间采用区块链的智能合约方式互联,完成针对攻击的协作,并以安全和分散的方式传输攻击信息.基于分布式安全区块链的SDN-IoT体系结构DisBlockSDN[77]和DistBlockBuilding体系结构[78]用于保证智能建筑内的安全数据传输.文献[79]为IIoT提出一个安全驱动的路由网络框架,区块链被用于在不同的SDN控制器之间创建一个信任和不可篡改的网络传输环境.为了保证东西向通信的安全,文献[80]提出一种支持区块链的安全分布式体系结构,该结构基于私有区块链(Private BlockChain,pBC)网络,用于在雾层中运行的SDN控制器.

SDN-IoT网络层的数据子层又称为数据转发层,SDN交换机是该层的核心网络转发设备.文献[81]提出转发/区块链层,该层由多个支持OpenFlow协议的SDN交换机组成,这些交换机相互连接形成一条区块链.使用基于区块链的安全框架添加新交换机,只有当交换机及其关联的流量通过流量分析器的验证并达成共识,才能被添加到区块链中.文献[82]以区块链即服务(Blockchain as a Service,BaaS)作为基础设施,将每一个BCA部署在一台SDN交换机.针对SDN交换机的资源限制,一种基于轻量级区块链的SDN架构被提出[83],交换机不使用完整的区块链账本,而是在整个网络中使用最小的账本.

4.2.2 网络管理安全需求

还有的方案基于区块链技术对SDN-IoT网络层进行分布式安全管理.文献[14]提出一种基于区块链的集群架构,使用基于区块链的SDN控制器为物联网设备提供分布式网络管理.引入区块链技术的物联网SDN框架BS-IoT[84]中,所有控制器协同维护用于网络管理的区块链系统.考虑到传统的单链区块链的低效率,BS-IoT利用主链和子链两种类型的链来支持协同网络管理,采用区块链分区(sharding),使每组控制器能够并行处理不同的管理任务.B-SDN是基于区块链的分布式控制器域SDN体系结构[85],控制器分层为一般控制器和主域控制器,而一个网络域由一组控制器管理.利用区块链不可篡改和不可否认性的特点,每个域内,高级的控制器作为生成区块的主域控制器,所有控制器维护记录流表信息的区块链,在这个域中只有唯一一个具有交叉连接访问能力的控制器,用来支持跨域流量转发.

4.2.3 整体安全需求

一些基于区块链的SDN-IoT架构中,虽然区块链技术主要在网络层实施,但其并不局限于满足单一的安全需求,而是希望能保证架构的整体安全.结合区块链、雾计算和移动边缘计算,文献[86]提出基于SDN的智能城市物联网的去中心化安全架构.架构中雾层雾节点的SDN控制器由流分析器、基于机器学习的流分类器、基于区块链的攻击检测、攻击缓解(流管理)模块等4个组件组成,每个SDN控制器向云层发布其数据处理结果,用来监测大规模和长期异常行为并进行数据分析.

针对用于软件定义车联网SDVN的安全性问题,一种基于联盟区块链的3层分布式信任管理体系结构被提出[12],其中的3层分别指:1)云区层,其中的主要实体是可信的证书授权机构(Certificate Authority,CA);2)区块链基础设施层,包括运行区块链客户和参与共识过程的路边单元(Roadside Unit,RSU),RSU在SDVN中充当控制器,负责根据底层需求将物理网络映射到虚拟网络;3)评级生成层,该层的主要实体是智能车辆.

4.3 类型3——面向应用层的架构

在SDN-IoT架构应用层部署的区块链主要通过身份验证与执行安全策略等措施,保证应用层的安全.应用层部署区块链后,所有主机之间就可以实现共享保护[63]:借助智能合约,规则在所有主机之间分发;SDN主机之间使用区块链实现的共识协议;区块链应用程序提供附加的安全服务.

所有参与节点以智能合约的形式共享相同的流程,在验证请求时,如果业务流程处于相同状态,就可以使用分布式账本实现该流程.处理白名单或黑名单IP地址的任何系统还可以将区块链应用用作辅助的安全功能[63].在SDN网络架构基础上,文献[87]在智能工厂的工业现场侧提出一种多中心部分去中心化的物联网系统架构.这个架构在工业现场侧服务器部署相应的区块链应用,提供对于节点访问记录以及数据特征信息的区块,监测每个底层设备节点的行为并将监测数据实现上链保护,还能减少单节点带来的安全问题.

网络中获得的威胁信息记录可以保存在区块链提供的区块中,利用区块链技术的可审计性来防止这些记录被篡改,智能合约则保证这些记录逻辑的不变.文献[88]提出一个基于私有区块链的网络威胁情报(Cyber Threat Intelligence,CTI)共享平台,解决常见的CTI协作问题.这个平台允许不同成员通过通道和认证访问来共享敏感信息,其中每个网络域表示不同的AS,每个AS使用智能合约,并通过区块链提供包括非法IP黑名单在内的CTI.该文献给出的案例中,区块链架构由两个组织组成,每个组织代表一个AS,其中的CA通过各种加密方案注册CTI应用,以向区块链网络验证应用,然后应用向认可的对等节点提交交易提案.

此外,有的SDN-IoT架构在应用层将区块链技术与常规网络安全策略结合,加强网络的安全性.文献[89]在SDN环境中使用分布式Snort 入侵检测系统(Intrusion Detection System,IDS)的区块链实现.区块链中的每个Snort ID节点都通过散列值与其前一个区块链接,从而形成一个直接连接到唯一创世块的链.此过程提供与所有Snort ID的安全通信,以接收来自控制平面的规则集.文献[73]设计一种虚拟化网络功能(Virtualized Network Functions,VNF)形式的IDS,通过一种区块链应用DApp来加强SDN-IoT交易的安全性,该应用可以监听矿工节点、报告可疑IP地址和验证未知包.

区块链的大部分好处可以通过在物联网边缘部署区块链来实现,但是区块链的交易延迟、能耗以及网络开销限制了其在物联网设备上的使用[29,73].因此,采用这种类型架构的SDN-IoT网络相对不普遍.

4.4 类型4——面向多层的架构

为了提高SDN-IoT的网络内生安全,区块链技术除了可以在单一层面上被引入,还可被部署在网络多个层面,或者是构建相对独立的区块链层来为网络多个层面提供安全服务,本文将这类归为面向多层的SDN-IoT架构.

4.4.1 区块链部署在多层

基于区块链、雾计算和云计算的特性,一些研究工作提出用于管理物联网数据的新型体系结构,搭建由云层、雾层和感知层(又称设备层)组成的3层SDN-IoT架构[2,90].云层和雾层都基于区块链,通过区块链分解为分布式云,托管区块链交易并执行区块链操作.雾层采用区块链管理的SDN-NFV技术,每个雾节点由分布式SDN控制器组成.区块链以安全的方式更新SDN交换机流表,并将计算资源带到物联网的边缘,使核心网络中的流量安全而合理,物联网设备与计算资源之间的交互延迟最小.DecOp做为一种新的基于节点的网络操作和资源分配方法被提出[91],它也在物理交换机上部署SDN和区块链的集成,在应用层,使用区块链取代集中式算法,对于许可区块链可以通过使用链码(chaincode)来定制共识策略.

一种采用这种类型架构的电动汽车安全能源交易方案BEST在文献[57]中给出.在BEST中,区块链用于以分布式方式验证电动汽车的请求,确保对单点故障的恢复能力.区块链联盟由矿工节点、普通节点、控制器节点和分布式模型形式的交易服务可控制器(Transaction Server Controller,TSC)共4个实体组成,通信节点负责区块链和能量币的维护.参与通信的电动汽车向全局SDN控制器节点发送服务请求,本地SDN控制器则提供本地电力需求的统计信息,以存储所有交易记录的本地网络状态.

4.4.2 独立的区块链层

还有的架构基于区块链构建可信SDN网络中相对独立的一或两层,根据不同作用范围,分别称为区块链层、区块链安全层或区块链中间层等.面向云架构,文献[92]提出一个基于区块链的支持SDN的网络基础设施,其中定义了基于区块链的安全和自治管理层与多控制器的SDN网络层之间的集成.在文献[93]中,除了维护区块链的基本设施和功能的区块链设施层外,还有区块链服务层,将不同区块链服务进行打包,向上为SDN网络层提供接口.一个基于区块链的无人机安全通信和网络管理软件的框架中[19],区块链层充当基础设施层和控制层之间的安全层,也称为区块链中间件层.有的SDN-IoT架构则使用区块链作为主要分布式存档来构建安全层,各个安全网关以区块链成员的身份加入到区块链系统中[94].

4.4.3 区块链即服务

在一些SDN-IoT架构中,区块链层把分布式的安全性作为服务来提供,以增强网络的信任与弹性.文献[95]中的区块链层由4个模块组成:1)标识模块,使用私钥和公钥管理用户/节点访问,在区块链内实现了另一个认证、授权和计费(Authentication,Authorization,and Accounting,AAA)模块;2)可追溯性模块,能够追踪交易的整个过程,即从其原始节点到区块链基础设施上的每个处理过程;3)智能合约部署模块,允许合约函数和物联网节点之间从创建到部署的交互;4)访问控制模块,通过监听矿工节点以及报告可疑IP地址来实现交易信任.另一个架构Block-SDoTCloud[96]中构建了一个区块链层,在需要较少算力的情况下,在网络内加强保密和维持信任,以增强云存储网络的安全性,也保证云应用的安全性、隐私性以及数据机密性.

文献[49]提出的SDN-IoT 框架包括感知层(物联网环境)、边缘层(SDN环境)、云层(区块链环境).云层包括区块链环境和数据中心,数据通过云网络传输.具体而言,云计算提供实时共享数据库,而区块链有助于与网络系统中每个数据块进行通信,同时在数据块之间提供额外的安全性、隐私性和机密性.一种基于区块链的SDN服务框架BlockSDN在文献[56]中提出,也是为了在不同层面内及层面之间的互连上确保基于SDN的网络架构的安全.

在以上归纳的4类基于区块链的SDN-IoT架构中,类型2(即面向网络层部署区块链)被多数研究者采用.在这类SDN-IoT架构中,控制器或交换机的互连是基于区块链的共识机制与智能合约实现的,控制器之间能完成对攻击的协作,并以安全和分散的方式传输攻击信息和流规则等网络管理信息,实现流规则一致性[75].区块链的可审计性则防止区块被篡改,提供安全的资源共享[74],即使当部分控制器被攻击者控制,关键信息也不能被篡改[79].区块链的分布式账本提供的记录,还可以在突发故障时将SDN控制器恢复到先前已知的状态[83].区块链的这些特性为SDN-IoT网络安全提供了可行的措施与有效的保障.

5 基于区块链的SDN-IoT的安全

数据可信、通信可靠、控制安全、身份真实是涉及6G内生安全网络协议和组网机制的4 个安全目标[8],而区块链的去中心化、伪非对称性、交易安全性等特性能够促进SDN-IoT网络达到这些安全目标,为其内生安全体系构建与实现奠定技术基础[22,97].在分析部署区块链的SDN-IoT网络架构的基础上,对应上面4个安全目标,本文分别从数据安全、通信安全、SDN控制安全和节点安全,以及特有安全攻击等5个方面展开探讨.

5.1 数据安全

到目前为止,物联网的安全研究还没有集中在物联网的数据提供及其多功能性上.通过区块链实现安全的数据来源可以在解决决策、可靠性、不可侵犯性、数据一致性等问题方面发挥至关重要的作用[30].本文将涉及数据的可用性、完整性和机密性等都归为数据安全问题,其中包括可信、加密和隐私保护.

5.1.1 问题描述

物联网设备拥有对安全和安保应用程序的运行至关重要的数据.目前支持物联网通信的安全模型,如基于云的集中式安全基础设施,由于缺乏资源和灵活性,无法很好解决物联网的安全和隐私问题,这使得物联网设备容易遭受特权提升攻击和欺骗攻击.由于集中式基础设施不可用,数据的完整性只能由设备本身确定.

CTI共享是支持分布式网络协同安全情报的关键过程,在实施内生安全的主动防御中起着至关重要的作用,而且让协作防御能降低潜在攻击的效力.但有的网络运营商在面临网络安全攻击时,严重依赖第三方(即CTI提供商)将情报输入其防御机制,导致违反服务等级协议(Service Level Agreements,SLA),使SDN可靠可信流程处理框架的SLA结合力降低[91].

5.1.2 解决方式

根据SDN-IoT架构类型及区块链所处位置不同,表3给出面向数据安全的研究进展.此外,本文还从为数据安全所采取措施的角度,将这些研究工作分为交易安全、常规安全策略结合、网络配置与资源分配可追溯性3个方面.

表3 引入区块链的SDN-IoT数据安全Table 3 SDN-IoT data security by leveraging blockchain

1.交易安全

当区块链部署在应用层并负责信息时,SDN控制平面负责快速地动态启用服务和安全策略,从而缩短缓解网络攻击的时间.传统解决违反SLA的方案主要通过使用算法和额外的硬件来改进,文献[88]则引入区块链解决CTI用户与提供商协作问题,促进不同参与者间网络威胁情报共享.基于区块链技术存储敏感信息并保持其逻辑一致性,即减少了威胁事件的风险,还让参与者从可靠的商业模式中获益,这是基于智能合约成功为安全协作提供可靠SLA的必要前提.

文献[63]使用基于OpenFlow协议的服务作为监控框架,在网关中提供流量分析.智能合约部署在私有区块链中,区块链应用程序被用作附加的安全服务,所有主机之间实现共享保护,任何处理白名单或黑名单IP地址的系统都可以使用区块链应用程序作为次要安全功能.文献[102]提出一个基于分布式区块链的SDN安全架构DistB-Condo,在智能公寓应用中提供建筑物内的安全性和隐私性以及社区之间的数据保密性.

文献[72]强调区块链、SDN和边缘云的集成对于物联网生态系统中实现数据机密性的重要性,提出一个检测安全攻击的框架,使用区块链技术集成一个高度可编程的物联网监控网络,授权识别攻击,并帮助用户验证和信息加密.支持SDN的网关提供动态网络流量管理,通过确定可疑网络流量来帮助安全攻击识别,阻止可疑流从而减少安全攻击.文献[95]中设计了一个基于区块链的体系结构,通过实现一个支持SDN的去中心化应用(Decentralized Application,DApp)来加强大规模物联网交易的安全性,该应用程序监听矿工节点,报告可疑IP地址,并验证未知数据包.

在支持SDN的5G-VANET环境下,文献[98]提出一个使用区块链的车载物联网安全框架,其中包括基于去中心化区块链的信任管理系统.将车辆之间的消息共享处理为区块链中的交易,这意味着所有消息都可以在区块链中找到并追踪到源车辆,而所有记录都是不可变的.路边单元RSU在包含当前道路信息的车辆上实施交通状况标签,防止受损车辆实时向其相邻车辆注入错误的交通相关数据,根据对标签评分来计算标签信任值,并将信任值打包成块.在为VANET设计的一个基于信任的网络恶意行为抑制模型中[74],控制平面由SDN控制器、RSU集中器和区块链组成,区块链提供防篡改的区块生成,实现分布式的网络配置同步和复制,促进网络一致性和诊断,从而实现安全的资源共享.

在以SDN作为底层架构的车联网(Vehicle-to-Grid,V2G)中,区块链技术被用于实现安全的能源交易[57,103].文献[57]提出一个基于区块链的能源交易方案BEST,区块链用于以分散的方式对电动汽车的请求进行验证,SDN则通过提高网络QoS来使区块链更完善.SURVIVOR是一个基于区块链的边缘服务框架[103],电动汽车能源交易的计算在边缘节点执行,这些边缘节点根据区块链效用函数(utility function)被选择,并通过一致性算法得到安全保护.

2.常规安全策略结合

对于数据安全,在区块链控制平面上,可利用基于传统的加密系统来提高数据管理的安全性,克服现有的垂直模型和基于SDN的水平模型的局限性,解决端到端安全管理中的冲突[101].针对SDN-IIoT的新兴范式PEC在边缘设备间共享数据时存在的数据安全和隐私问题,文献[11]和文献[99]提出基于区块链的PEC安全数据共享模型,将加密设备数据外包给第三方云服务器,采用IBPRE方案在数据所有者和其他人之间安全共享加密文件密钥.该模型中,用户可以将加密密钥上传到区块链,并与区块链进行交互.

为了监控特定数据证据上发生的活动,文献[100]开发了一个基于云的SDN框架,该框架包括用户注册和身份验证、数据加密和存储、区块链证据收集、证据信息挖掘等系统模块.在移动IoT设备节点中,采用椭圆曲线综合加密( Elliptic Curve Integrated Encryption Scheme,ECIES)算法对数据包进行加密,并传输到云服务器.SDN控制器基于SHA-256加密哈希算法维护区块链,以保存从数据收集模块获得的证据和用户签名.被授权的调查员则执行鉴定、收集与分析证据,并基于证据逻辑图(Logical Graph of Evidences,LGoE)生成报告.

基于区块链的安全管理方案BSM[101]利用基于分组密钥的系统来提高安全管理的性能,并将安全管理的范围从本地扩展到端到端的安全服务范围.不同的分组数据流能够使用完全不同的安全参数进行安全管理,即使是盲值也不能暴露给可能的攻击者,因此保证了端到端数据的安全传输.由于pBC中的数据可供具有相同创世文件(genesis file)的所有候选对象访问,也让恶意用户很容易获得这些数据.为此,文献[80]建议在将数据插入区块之前先进行加密,以此改善pBC缺乏访问控制的状况,避免数据的非法访问.

除了加密技术,改进的访问控制也在区块链运作中发挥作用.DistBlockNet架构[21]中的所有控制器以分布式区块链网络方式互连,每个本地网络视图包括控制器、OrchApp和Shelter模块,Shelter和OrchApp模块在不同级别处理安全攻击.OrchApp在移动设备上以基于主机高性能软件方式实现,并在适当的应用层实施点执行.OrchApp还提供以编程为特征的防御措施,所采取的安全策略包括访问控制、数据保护和CTI等.文献[53]提出了一种切换认证方法,利用区块链和SDN技术来消除异构小区间重复切换中不必要的重认证.用户在异构单元(cell)以最小延迟切换时,系统使用区块链组件提供的公钥和私钥保护他们的隐私.

3.网络配置与资源分配的可追溯性

为了创建一个在没有复杂算法的情况下就能为用户提供信任的平台,文献[91]提出一个结合SDN和区块链技术的网络管理方法.DecOp作为实现该方法的分布式应用程序,利用设计的安全服务合约链码、安全网络运营商链码和模块化通信中间件,将网络状态的变化存储在一个不可变的区块链账本,防止不期望的网络配置和简单的配置日志.文献[92]开发了一个基于区块链的支持SDN的网络基础设施,其中基于区块链的安全和自治管理层用来确保多控制器网络层的可用性和自治性,以增强控制和管理消息的完整性.此外,还支持自主带宽配置(autonomous bandwidth provisioning),提高云架构的可用性.

5.2 通信安全

这里的通信安全指确保控制器和各种集成网络设备(如交换机)之间的网络通信和信息得到保护,即网络基础设施能够为数据流提供安全可靠的通信信道.针对SDN架构给SDN-IoT网络带来的通信安全风险,目前的研究大多从南北向通信协议角度出发,而区块链技术的引入能为问题的解决提供有力支持.

5.2.1 问题描述

SDN-IoT除了存在常规网络的通信安全问题外,软件定义的特性也带来一些SDN网络特有的问题.

首先,SDN的灵活性带来许多安全威胁.当转发设备由于可编程接口被非法使用而无法与SDN控制器通信时,获得控制器提供的路由信息,并隐藏了复杂系统的新漏洞.此外,还有由于采用软件定义的技术而暴露出来的错误命令路由,例如,通过注入欺诈性流规则,阻止控制命令和信息的正确路由[105].攻击者还可利用SDN控制平面应用中存在的一些非特定的安全漏洞,在交换机中插入与网络策略不匹配的恶意流规则,通过流量转移进行恶意检测,或阻止服务来达到拒绝服务目的等[82].

此外,在控制器与控制器之间、控制器与交换机之间的关联没有任何信任保证的状况下,识别信任域、寻找信任源和量化信任是实现信任感知端到端QoS路由的主要挑战[106].在检查流规则是否符合某种外部策略的安全方案中,SDN机制的应用还不完善,在更新交换机流表时没有进行流一致性测试,这些会让攻击者能篡改控制器和交换机之间的消息,最终严重破坏SDN的控制平面与数据平面的通信[82].

最后,目前地址解析协议(Address Resolution Protocol,ARP)在SDN中的实现是不安全的,容易受到相关ARP攻击[25].ARP协议是将网络地址映射到相应硬件MAC地址并填充ARP缓存的协议,攻击者很容易用虚假信息侵害ARP缓存,从而发起DoS攻击或MITM攻击.

5.2.2 解决方式

区块链技术主要从SDN-IoT网络层设备去中心化、设备之间可信保证、控制信息一致性等方面入手,解决SDN给网络带来的通信安全问题.由于涉及流量级和数据包级的通信主要集中在SDN-IoT的网络层,所以为了解决通信安全,区块链主要被部署在网络层,特别是控制子层的控制器与数据子层的交换机.

在具有多控制器的分布式SDN体系结构中,通常使用区块链数据结构来保护控制器和交换机之间的域间和域内通信,并保持网络状态一致和同步.在SDN中部署区块链,可缓解由于SDN提供的完整网络拓扑视图带来的潜在链路伪造攻击.同时,基于名单(如黑白名单或可信IP地址名单)的流量融合和过滤,一定程度上能建立设备之间的基本可信保证,区块链则帮助分发通过身份验证的数据包[30].

区块链的引入允许网络之间的协作以安全、可验证的方式来共享恶意节点和攻击的信息,抢先采取措施从而避免攻击.此外,对于ARP攻击,可以基于区块链技术在SDN主机之间分发ARP数据包的认证,而不是进行集中处理[25].

当前对于SDN-IoT通信安全,研究工作主要从路由安全、流规则验证、信任地址表和流量监测4方面展开(见表4).

表4 引入区块链的SDN-IoT通信安全Table 4 SDN-IoT communication security by leveraging blockchain

1.路由安全

文献[14]提出一个基于区块链的SDN-IoT集群架构,使用公共区块链和私有区块链在物联网设备和SDN控制器之间进行P2P通信.设计适用于该集群架构的新路由协议,为SDN域中的物联网设备之间的文件传输提供安全且节能的机制,并规避物联网设备的计算限制.

针对SDN自身安全性低的问题,文献[107]中,SDN控制器采用区块链技术对SDN信息进行核查和记录,只有经过身份验证的控制器才能使用现有的协议,并且所有协议在使用之前都应该经过安全身份验证.利用P2P网络的分布式存储特性提出一种路由恢复策略,在网络发生部分故障时全节点(指存储整个区块链和所有交易信息的节点)临时发布流表,并在转发设备验证相关信息未被篡改后恢复通信.

在文献[79]设计的安全驱动的路由网络框架中,区块链被应用于不同的SDN控制器之间.首先从身份和行为两个方面建立物理节点(终端设备和路由器)的信任模型,再通过计算一个节点的时间序列信任值来判断该节点是否可信.将这些信任值作为权重参数,采用最短路径优先算法计算安全路由路径,最终获得最优路由策略.

文献[105]研究IIoT中网络命令的安全问题,防范伪造命令和错误路由.所提出的安全体系结构集成区块链和SDN技术,包括一个防御针对工业控制过程的伪造命令的IDS和一个基于区块链的完整性校验系统(Blockchain-based Integrity Checking System,BICS).BICS利用区块链技术来比较源自vSwitch与SDN控制器发送的OpenFlow流规则,从而防止错误路由攻击.

2.流规则验证

文献[80]通过pBC中的块共享SDN控制器的流规则,这些规则不能被攻击者修改.当pBC的矿工识别出错误的流规则时,表示SDN控制器被破坏,则允许SDN设备(即雾节点)恢复为先前的流规则,同时对相应的控制器生成一个标记.此外还设计控制器与相关云服务器的通信,以便在矿工无法识别错误规则时能检测异常.文献[21]将SDN假定为一个相对封闭的系统,消除对未知外部通信的限制,将分析集中于OpenFlow控制包或消息.由SDN控制器对流表的版本进行安全验证,识别网络上出现的攻击.

文献[3]中,区块链连接的控制器除了通过验证流表的版本来更新流规则,还将所有连接的物联网设备的最新流表下载到交换机,使用区块链特性防止物联网设备被僵尸网络控制.除了进行流规则检测外,识别对系统数据计划所做的安全策略更改和对网络所做的拓扑更改,有助于检测发送到任何可疑目的地的物联网流量.为了维护网络系统在遭受饱和攻击期间的安全,文献[108]在每个SDN控制器中建立流规则分析模块和数据包迁移模块,由管理员指定的策略标记出已知攻击,即使是随着时间推移执行的最特定的流活动,也能用于检测潜在的恶意活动.

基于区块链的流规则双备份机制在文献[54]中提出,私有区块链网络由SDN控制器和可信设备构成,后者负责与SDN控制器和SDN网元(数据子层的交换机)通信.当控制器向SDN网元发送流规则时,该流规则的副本通过区块链也发送给可信节点.在SDN网元接收到从控制器发送的规则后也将其发送给可信节点,可信节点将从网元接收到的规则与区块链中的规则进行对比,从而实现控制器的身份验证,避免错误流规则注入.但是,该流规则双备份机制无法应用于大规模网络中.

基于边缘区块链,文献[17,82]使用智能合约进行流验证,允许开发独立的可验证代码,确保流插入的安全性和流表一致性.交换机上部署的BCA将SDN流验证应用程序作为外部服务运行,也就是区块链即服务.智能合约还提供了一个开发环境,允许技术部署人员选择范围广泛的流验证策略.例如通过使用区块链提供的流不可变分类账功能,在无法更改或测试异常的情况下,可以使用机器学习方法对其进行审计.

3.信任地址表

区块链的共识机制为存储受信任IP地址列表提供了一种健壮的安全机制.文献[65]使用区块链共识机制,由辅助区块链服务器(即Web服务器)提供基于信任IP地址列表的信息,说明哪些设备应该访问母服务器(即数据库服务器).SDN控制器协议的工作方式是过滤和认证IP地址,创建可信的散列表,以及在路由器上分发标志,以保护网络免受内部和外部攻击.

文献[75,76]则使用智能合约来促进基于SDN的域之间对攻击的协作,允许沿正在进行的攻击路径和在DDoS攻击源附近进行有效的DDoS缓解.为了报告和接收攻击信息,每个域运行一个以太坊客户端实例,所有基于SDN的域协同创建并维护生成攻击的恶意物联网设备的可疑IP地址列表,并以安全、高效和分散的方式发送攻击信息.

4.流量监测

文献[94]在SDN-IoT架构中加入一个基于区块链的安全层,各个安全网关以区块链成员的身份加入提供分布式存档的区块链系统,记录授权节点信息,可立即跟踪和验证由物联网设备生成的数据.安全网关节点确认并验证入口流量,只要是通过安全网关节点的消息流就能被完全信任,并能在整个部署架构中通信.为了物联网中智能建筑层面之间、单元之间的安全和分布式通信,文献[78]提出一个分布式安全区块链楼宇架构,应用区块链技术实现楼宇自动化控制和安全控制,专用的控制器提供更多安全保证,增强可伸缩性,并提高所需应用程序生存期.

文献[109]中的区块链客户端以软件形式部署在雾节点,用于将实时敏感的物联网数据同步到区块链,并让SDN控制器在区块链中安全地存储流规则,防止规则丢失和被伪造.来自SDN交换机的所有网络流量数据都发送到实时报告工具sFlow,通过命令向控制器安全应用程序提供网络攻击的实时通知(包括攻击者和目标信息).SDN控制器与交换机通信时丢弃DDoS流量,让合法流量通过.SDN控制器还可以根据雾节点检测到的流量异常情况,更新其特定交换机中的流规则,并训练它们在较低延迟内识别攻击.

虚拟控制器在文献[62]中被提出,用于检查区块链交易或流表项,最终在有效交换机中找到正确的流表项时,由实际控制器更新相同项.来自实际控制器的更新流表项被发送回交换机,以便更新其流表.区块链负责在每个交换机上生成的块,以根据由此生成的流规则来更新控制器下发的OpenFlow流表.整个过程有助于识别真正的交换机和受感染的交换机,从而创建一个新的区块并将其发送给控制器.文献[86]提出基于区块链的SDN安全架构,并作为安全检测组件与物联网生态系统一起部署,通过监测和分析整个物联网生态系统的流量数据来检测和缓解潜在攻击.

5.3 SDN控制安全

控制平面的控制器安全性对SDN-IoT至关重要,区块链技术的引入可解决控制器单点失效、多控制器协同与一致性等与SDN控制安全相关的问题.

5.3.1 问题描述

对于SDN-IoT这样有大量终端设备的网络,控制器与交换机之间数据与控制信息交互频繁,会导致单控制器的开销过高,使之成为整个网络的瓶颈.一旦所有网络管理和配置的聚合在一个集中的SDN控制器,造成的单点失效会使整个网络受到威胁与攻击[110].加上SDN容错容灾机制不够健全,当遇到数据灾难时,与SDN控制器失去联系的节点完全瘫痪,最终导致网络服务能力下降甚至崩溃.

采用多控制器的控制平面能够避免传统SDN架构的单点故障和可扩展性问题,但又带来控制器协同一致性问题,即多个控制器之间如何高效地共享网络视图以实现快速的主备切换或有效集中式控制[111,112].分布式SDN的分区机制中,控制器只管理辖内区域中的流表,然而仍存在一些无法解决的问题,如流表的状态一致性和控制器的容错性等.

此外,大多数SDN框架只是利用区块链将所有的控制器组织在一起以提高安全性,通常吞吐量较低,无法支持大规模的网络管理.而实际的SDN可能会被不同的网络运营商所部署,这导致不同网络运营商之间的数据安全与协作网络管理之间的冲突[84].

5.3.2 解决方式

区块链被视为各种物联网应用的核心基础,可为SDN-IoT部署分布式的基础架构来抵御针对控制器的分布式攻击,消除单点故障风险.针对现有的方案不能很好地支持多个控制器之间的协同网络管理,基于可信区块链进行多控制器的协作,并生成公共共享数据库,将有助于增强SDN控制器之间的一致性[55].还可以在调整控制层中多控制器组织结构后再部署区块链,例如对控制器进行分域分层,由域内控制器维护区块链,而主域控制器进行跨域连接访问[85].

许可区块链技术已被用于SDN-IoT,例如分布式软件定义的工业物联网(Software-Defined IIoT,SDIIoT),以实现网络范围内的可信和同步视图,并确保分布式设备之间的可靠性、安全性和可追溯性[113].本文主要介绍解决单点失效和多控制器协同这两方面的SDN控制安全问题,并在表5中给出相关研究.

表5 引入区块链的SDN-IoT控制安全Table 5 SDN-IoT control security by leveraging blockchain

1.单点失效

在不同的节点上,采用基于分布式区块链的方式来存储控制器的决策数据,当任何节点发生故障后,决策数据也可以送达.文献[83]中,分布式区块链在交换机之间构建,包含所有控制器事件元数据,用于在突发故障时将SDN控制器恢复到先前已知的状态.如果一个控制器突然发生故障,它将从各个交换机接收流规则,并用区块链保存的其先前的控制器事件元数据来验证从交换机接收到的流表信息,交换机共同合作将控制器恢复到先前已知的状态.这种方案的前提是交换机和链路完好无损.

在控制平面部署多个物理控制器,可以避免单点故障.区块链联盟在文献[57]中被选用,主要由矿工节点、普通节点、控制器节点和分布式模型形式的交易服务控制器(Transaction Server Controller,TSC)等实体组成.区块链用于分布式地验证电动汽车的请求,矿工节点负责验证所有网络交易事务,确保对单点故障的恢复能力.但是增加更多的冗余控制器也意味着体系结构的实现成本的增加,因此在SDN-IoT网络中最优控制器数目的选择值得进一步研究[19].

还可以将攻击检测作为SDN控制器的功能组件之一,以缓解现有架构固有的单点故障问题.文献[86,114]的研究工作中,SDN控制器包括流量分析器、流量分类器、基于区块链的攻击识别器和攻击缓解器共4个组件.基于前两个组件检测出的恶意流量信息,攻击识别器采用智能合约,通过指定输入/输出准确性和交易来启动攻击识别,并采用深度学习方法为每个雾节点创建攻击识别模式.攻击缓解器的所有组件(即管理器和代理)之间通过以太坊区块链的交易进行交互,根据攻击识别模式设置合适的网络流协议以防止恶意操作的执行.

转发设备中的动态路由协议在单点失效时选择其它可到达的路由是传统网络体系结构的容灾机制之一.为了保证网络的健壮性,文献[107]提出一种路由恢复策略,利用P2P网络的分布式存储特性,当网络发生部分故障时,全节点临时发布流表,并在转发设备验证信息未被篡改后恢复通信.

2.多控制器协同

可通过区块链的整合及其共识机制的部署,达成和维护网络全局视图的共识来解决多控制器协同问题.文献[33,113,115]设计了一个区块链共识协议来简化和保护不同SDN控制器之间网络视图的收集和同步,还提出一种双深度Q学习方法来学习最优策略,对视图更改、访问选择和计算资源分配进行联合优化.在文献[116,117]中,区块链的加密操作和非加密计算任务都可以访问移动边缘云(Mobile Edge Cloud,MEC)的同一计算资源池.综合考虑了区块链节点和控制器的信任特性以及区块链系统的计算能力,却未关注SDN-IoT中区块节点和控制器的信任度.

文献[49]通过识别和隔离恶意交换机,确保高效的簇头选择和安全的网络通信.该研究为控制层和数据层提出了两种不同的区块链:控制层的区块链包含分布式流规则,维护每个集群流规则的一致性;数据层中的区块链工作方式不同,所有交换机都会按顺序在链中转储其流规则,并验证它们是否维护相同的规则集.基于区块链的物联网SDN框架BS-IoT[84]在区块链中引入安全多方计算(Secure Multi-Party Computation,SMPC),利用主链和子链两种类型的链来支持协同网络管理,同时保证不同网络运营商的数据安全.

5.4 节点安全

SDN-IoT网络设备节点之间的信任问题同样带来安全威胁,而无线网络低效的认证切换也增加了发生用户隐私和安全问题的可能性.

5.4.1 问题描述

SDN控制器及其从属数据层设备节点构成一个管理域,它们之间通过域内或跨域协作来实现特定的需求.因此,域管理员需要建立、评估和更新彼此之间的信任关系,而网络中的设备还需要动态调整和更新与其它设备的信任关系[118].SDN网络通常依赖于固有的信任,随着攻击方式和威胁多样化,攻击者可以利用这种信任进行入侵,基于网络地址进行节点身份验证的传统接入方式也有很大的局限性[5].针对网络节点(如交换机、控制器、边缘节点等设备)存在身份窃取与伪造、越权操作等安全漏洞,现有的方案由于集中取证导致安全性差,获得的证据完整性和可靠性不足,所采用的弱身份验证准确性低[100].

还有的方案是结合IDS,例如在SDN中的协同入侵检测系统(Collaborative IDS,CIDS),但检测相关信息(如检测特征码)的实时安全交换仍然是一个严峻挑战[119].特别是面对向其它控制器传输不真实和恶意检测签名的内部攻击时,缺乏对SDN控制器的健壮信任管理和协同防御信息的完整性保护.

5.4.2 解决方式

SDN-IoT网络节点安全问题目前仍主要通过实施身份认证、访问控制等安全策略来解决.区块链的去中心化、防篡改和可追溯,使它非常适合为物联网中的SDN的节点提供分布式信任的有效证明,为解决这个问题提供更多新方案.基于架构类型及区块链部署位置,在表6中对SDN-IoT架构节点安全的研究进展进行了梳理,并探讨如何将区块链技术与身份认证和访问控制等安全策略集成与融合,以保证节点安全.

表6 引入区块链的SDN-IoT节点安全Table 6 SDN-IoT node security by leveraging blockchain

1.身份验证

文献[71]中的所有服务器都是区块链一部分,每个服务器在区块链中维护一个数据库(开放式账本的副本),用于存储有关访问策略和安全机制的信息.此外,每项变更都将被视为区块链交易,这些交易添加到区块链之前需要通过服务器的验证.DPSec是一种基于区块链的SDN数据平面认证协议[64],它采用联合区块链方式,在域内和跨域设置中验证SDN数据平面组件,这些组件包括SDN交换机和请求加入SDN网络的主机在内.

基于区块链和信息分类策略也可以用于身份验证.文献[107]采用区块链技术对SDN信息进行检查和记录,只有经过身份验证的控制器才能使用现有的协议,并且所有协议在使用之前都应该经过安全身份验证,避免人为因素对验证结果的影响.此外,还为不同级别的信息分配不同权限的用户组,在一定程度上探索SDN领域公链与私链的融合.

2.信任评级

采用联盟区块链的3层分布式信任管理体系结构在文献[12]中被提出,包括评级生成层、区块链基础设施层和云层.评级生成层的主要实体是智能车辆,向最近的RSU上传评级.区块链基础设施层由运行区块链代理并参与共识过程的RSU组成,每个RSU都可以收集和处理信息,从车辆上传并定期更新分类账.与以往的研究侧重于设计信任值评估方法不同,RSU通过预测模型估计车辆在下一阶段的信任值.

解决方案STewARD[120]基于区块链技术实施众包设备信任评估,使用简单的风险评估为设备分配所需的信任级别.网络控制器在评估网络中设备的恶意可能性后,仅与那些满足预期信任级别的设备进行连接.TrustBlock方法[118]基于区块链计算SDN网络节点信任值,使用熵方法确定各评价属性的权重,区块链则用于存储和共享信任值.该方法利用共识机制过滤恶意的推荐节点,减少恶意节点对信任评估的影响,并通过增加硬件来避免额外的开销.

3.信任名单

文献[87]在工业现场侧服务器部署相应的区块链应用,提供对节点访问记录以及数据特征信息的区块,对每个底层设备节点的行为进行监测.在叶边缘计算层部署白名单机制,信任名单中定义允许/拒绝访问的节点,由 SDN 控制器下发,可以快速对访问流量的权限进行验证,从而排除恶意流量.

在基于协作签名的IDS模型[89]中,使用分布式Snort IDS的区块链,创建受信任的Snort签名规则共享通道.区块链应用程序可以与所有集成的Snort节点安全地共享Snort签名规则,确保来自相关域已通过验证的签名规则的安全.SDN控制器仅更新NIDS Snort签名规则,所有集成的HIDS Snort节点由区块链的受信任通道自动更新.

此外,SDN-IoT的应用服务提供商、开发人员和网络运营商应验证并了解物联网服务、设备及其通信的真实性,防止物联网设备产生不需要的流量,在边缘网络上降低物联网部署的风险.文献[121]中的信任列表表示物联网利益相关者之间的信任分布,并通过集成区块链和SDN在边缘网络上提供物联网流量管理的自主实施.区块链节点可以直接在控制器上运行,也可以是由多个控制器访问的独立主机.边缘网络的SDN控制器通过区块链节点检索服务配置文件,只有在检测到从物联网设备到受信任服务的流量时,才向边缘交换机插入具有合理的短到期时间(short expiry)而且特定于设备的流规则.

4.可信协作

为突破SDN多设备厂商的壁垒,建立SDN网络的可信连接,文献[122]引入区块链技术,基于信任列表解决身份认证和授权管理.区块链节点接收有关受信任服务和设备的信息,控制器将该信息转换为提供给交换机的流规则.新控制器需要与初始控制器交换密钥才能加入网络,控制器和交换机使用流表作为密钥信息进行相互认证.

EDISON是一个基于区块链的身份验证和访问控制框架[123],用于基于零信任的多供应商多租户网络.通过使用由租户和供应商节点组成的P2P网络实现去中心化编排(orchestration),允许SDN客户和供应商通过可审核和零信任的解决方案创建、管理和执行服务.研究人员期望使用确保前向保密的加密密钥交换,再加上基于身份验证方法,EDISON能在冲突环境下为多个供应商运营的网络的最终租户提供控制.

文献[119]构建了基于区块链的协同入侵检测方案(称为检测签名链或DS链)和分布式公钥基础设施(Public Key Infrastructure,PKI)方案(称为证书链或C链),分别用于跨P2P网络的共享、更新和证明检测签名,以及在参与节点上建立信任.此外,还提出一种基于智能合约的实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)分布式共识,以支持针对内部攻击的“n-妥协抵抗”.

5.5 特有攻击

有一些攻击是专门针对伴随SDN-IoT网络特性存在的安全漏洞而发起的.例如表2中列出的攻击中,流表过载攻击故意占用SDN交换机的流表空间,让交换机无法提供正常的网络服务[44].拓扑中毒攻击传播错误信息,即注入假链接,导致分组丢失率的显著增加[46].饱和攻击则故意使控制平面过载,从而耗尽控制器的资源并延迟将消息转发到OpenFlow交换机[50].

文献[56]提出一种应用于智慧城市的基于许可区块链的SDN服务框架BlockSDN,区块链被作为服务提供,用于缓解数据平面上由恶意软件入侵交换机攻击(malware-compromised switch attack)和控制平面上的DDoS攻击.一个支持SDN的分布式应用程序DApp[73]可以加强物联网交易的安全性,在分布式物联网网络中防止去中心化自治组织(Decentralized Autonomous Organization,DAO)诱导攻击.在Kubernetes上提供区块链作为代码基础设施,应用程序在多个物理主机的Docker容器中维护.

入侵检测系统RSL-KNN在文献[105]中给出,它结合了随机子空间学习(Subspace Learning,RSL)和K近邻(K-Nearest Neighbor,KNN)来防御针对工业控制过程的伪造命令.此外,作者还提出了一个基于区块链的完整性检查系统BICS,来防止破坏SDIIoT网络流规则的错误路由攻击.文献[66]则结合IDS机制来改善基于区块链的SDN-IoT的网络安全问题,使用基于列表的流量融合和过滤方法来减少恶意流量,并保护基于区块链的SDN免受洪泛攻击.在真实的测试环境中,这种方案能够实现比类似方法更好的过滤性能,但由于验证过程可能会导致一些延迟,还需要安全管理员帮助配置白名单.

为增强SDN-IoT的安全性,在受到危害的网络设备对网络产生负面影响之前,应自动检测和隔离这些设备.实施可用性服务,包括集成传统的安全应用,以提高应用程序在系统和网络故障下的性能.文献[49]提出的攻击缓解系统(Attack Mitigation System,AMS)可以集成不同的先进方法,用来检测和缓解针对SDN的攻击,如流表过载类攻击、拓扑投毒攻击、控制信道饱和攻击、DDoS攻击等.

6 结论与挑战

区块链技术在网络安全方面拥有巨大潜力,它的引入为SDN-IoT安全性提供了更为坚实而有效的保障.本文对SDN-IoT安全问题及基于区块链技术解决这些问题的相关研究进行了归纳,梳理针对SDN-IoT各网络层面的安全攻击,并从部署区块链层面的角度对现有SDN-IoT网络架构进行分类,最后基于SDN-IoT的安全脆弱点,从5个方面分析探讨了现有基于区块链的SDN-IoT 安全防护方案的主要研究思路和最新进展,为区块链对网络安全特别是SDN-IoT的安全性研究工作提供参考.

当前,随着各类基于区块链的安全架构及安全方案的不断出现,基于SDN的物联网系统面临的安全问题在一定程度上得到了改善与缓解.但是,对于一些仍然存在的关键安全问题,在技术融合、区块链安全、架构完善等方面还可以有新的研究思路与突破,以应对发展迅猛的基于SDN的下一代物联网安全的需求与挑战.

6.1 技术融合

6.1.1 传统安全策略

促进传统网络安全技术和策略与SDN技术和区块链技术结合,仍然是提高基于区块链在SDN-IoT网络安全性的有效途径.传统的基于加密技术的解决方案通常在存储和计算方面是高效的,依旧适用于当前的物联网应用.通过基于OpenFlow的防火墙包含一些SDN功能来保护区块链节点,确保对攻击进行隔离以便进一步调查,并且不会影响整个网络基础设施.对于合法节点数量有限的许可区块链或公共区块链,继续引入白名单机制,能快速对访问流量的权限进行验证,提供快捷方便的安全性和隐私性.此外,基于IDS,通过流量融合来构建基于信任的过滤机制,可以减少基于区块链的SDN-IoT网络中的恶意流量.

6.1.2 人工智能技术

人工智能在一些网络安全领域的特定问题中已得到较好的应用[124],不少结合区块链的SDN-IoT安全性研究也将人工智能技术的融合作为未来工作方向,并给出一些新的研究思路.例如,探索基于人工智能的安全路由算法[79],使用机器学习技术检测交换机和控制器的错误行为[43],用联邦机器学习改进SDN区块链[95],在控制平面上部署基于深度Boltzmann机的流量分析仪来识别异常的交换请求[81]等.还有的研究人员希望通过引入深度学习技术提高入侵检测的准确性[105,114],使用分布式智能来允许实例决策,减少不必要的数据传输到云端等[26].

将人工智能技术进一步应用到SDN-IoT网络体系之中,可以弥补一些传统网络安全技术无法解决的问题,为网络管理者及用户提供高智能化、高灵活性、高安全性的应用与服务,但从实践过程和结果来看,还存在巨大的挑战.

6.2 区块链安全

区块链自身安全特性产生的安全脆弱点给网络带来新的安全风险与威胁,要使区块链技术在建设安全SDN-IoT体系得到应用,仍然在计算和存储、时间延迟、可扩展性、带宽消耗、匿名性等方面存在亟待解决的挑战.国内外许多学者对区块链技术进行了理论研究,其中我国处于全球领先水平[37].这里总结一些改进区块链自身来提高SDN-IoT安全性的研究思路及挑战.

6.2.1 区块链的选择及完善

部署的区块链必须全面且值得信任,节点不易受篡改和攻击,能针对组合攻击提供安全解决方案[30].去SDN中心化的有许可区块链可能比无许可区块链更具优势.开放存取会导致本质上的中心化控制,但有许可的系统反而会更好地支持去中心化控制[125].此外,还需要研究部署区块链的SDN-IoT网络层(即SDN控制平面和数据平面)上处理区块链数据的新算法,优化现有区块链搜索算法[126].在保持区块链去中心化特性和不牺牲安全性能同时,需要在网络广播机制、存储、数据访问和安全机制等方面重新设计区块链基本协议.

6.2.2 智能合约和共识机制的设计与优化

在区块链体系中,共识机制和智能合约保证了数据的真实性和合约执行力,它们自身的安全性也是基于区块链的SDN-IoT安全机制面临的关键技术挑战之一[37].尽管区块链具有固有的安全特性,但事实证明智能合约存在可利用的漏洞是其薄弱环节,区块链与SDN-IoT集成的一个研究方向就是制定智能合约脚本的安全标准,避免危及物联网网络中设备安全的漏洞存在[28].

对于实现安全可信的基于区块链SDN-IoT架构,多个分布式SDN控制器的协同(即一致性和同步性)依旧非常重要和迫切.但当前用于实现SDN控制器间数据共享的共识机制运行开销巨大、共识网络部署不灵活[93],依赖如PoW、PoS、BFT等现有共识算法不能直接用于解决这些问题.重新审视区块链本身和共识机制的结构,优化和改善现有共识算法性能,测试更多的共识算法,能为物联网提供临时解决方案.

6.2.3 区块链特有攻击

随着区块链技术应用越来越广泛深入,一些针对区块链自身安全漏洞的新攻击随之出现.例如,重放攻击主要是在有区块链发生分叉之后发生[59,127];攻击者发起日蚀攻击垄断交易节点(表现为受害者)的所有下行链路和上行链路连接,从而将受害者与网络的其余部分隔离;随机节点攻击的攻击者随机垄断某些功能节点,导致功能节点无法与任何交易节点通信[23].

如何应对这些攻击是基于区块链的SDN-IoT网络安全必须解决的问题.智能合约容易受到中间人、窃听、伪造和欺骗等方式的攻击,在将携带既有安全漏洞的智能合约部署到区块链网络之前,需要设计合适的测试机制来验证这些安全漏洞.针对区块链节点的DNS放大攻击[128],需要在不增加网络资源额外负载的情况下,基于SDN来提高区块链节点的安全性.

6.3 架构完善

SDN-IoT内生安全的保证需要一个更实用、更安全、更可靠的网络架构,现有的基于区块链的SDN-IoT架构还有很多地方需要改进与完善.例如:对于物联网设备和区块链节点之间的资源容量不平衡[7,22],如何将新技术融合;对于不同服务需求和真实场景,如何能实现网络性能、系统开销、可扩展性等与安全性之间的平衡[93,7,56,129].针对这个挑战,可从6.3.1完善SDN-IoT网络结构和6.3.2消除引入区块链带来的新问题这两个方面展开研究.

6.3.1 完善网络结构

完善SDN-IoT网络结构,首先是如何更好地集成区块链与SDN这两个新技术,使区块链适用于资源受限的物联网设备,并设计一个适应性强、动态的安全框架来为物联网架构工作[30,14].由于大多数物联网设备在计算和存储资源方面的能力有限,区块链在作为物联网安全解决方案应用之前需要进行定制.例如,为了解决适应性问题,可以添加一个隐藏区块链实施细节的新应用层,允许资源受限的物联网设备在不计算PoW的情况下参与系统[22].Swessi等人认为通过集成人工智能、信任管理、雾计算、SDN等多种机制,可以利用每一部分的优势并克服局限性,从而显示出更好的性能[130].此外,在区块链等技术与SDN-IoT整合后,还需要对各种基于物联网的攻击进行区块链渗透测试.

6.3.2 消除区块链带来的新问题

区块链存在的既有缺陷,给基于区块链的SDN-IoT带来不少新问题,但目前解决方案还很难在规模、成本和效率方面进行扩展[24].从通信系统、安全机制和区块链技术等3方面进行改进与完善,不失为现阶段实现网络安全性与网络性能和能耗之间平衡的有效方案.在尽可能减少对网络架构的改造的前提下,软性地提高SDN-IoT的安全性[61].

1) 适用的通信系统及协议

文献[20]给出了通信机制及协议方面的挑战与建议.在通信网络物理层,分析信号干扰加噪声比和通信吞吐量等基本指标,考虑区块链中的交易吞吐量限制,部署能够最佳满足该限制的物联网设备;在网络层启用高效的路由协议,使用资源丰富的物联网设备来传播交易信息.文献[14]提出通过适用于集群结构的新路由协议,为SDN域中的物联网设备之间的文件传输提供安全且节能的机制.还可以为SDN域中的物联网设备之间的文件传输提供安全且节能的机制,并规避物联网设备的计算限制.

2) 轻量级的安全机制

对于安全机制方面,选择轻量级的安全协议来适应有限功率、计算和资源的物联网设备需求是有效可行的[131].或设计基于区块链的轻量级框架和轻量级加密算法,减少可能会造成大量开销的公钥操作[130,132].还可以改进访问控制框架,例如将SDN-IoT应用的授权和调用过程分离[133],缓解区块链和加密算法的延迟和复杂性问题.

3) 区块链技术的改进与突破

现有共识算法不能直接用于基于区块链的物联网系统的长期、可靠和可扩展的解决方案.针对区块链的共识机制对资源的需求非常大的情况,设计并使用更高效、更轻量级的共识算法,节省共识成本并提高效率,以适用于资源受限的物联网设备[129].例如,文献[134]为联盟链部署轻节点和全节点,将身份识别与资源信息分离,构建链上身份识别与链外信息的应用模式,实现资源内生信任管理.

采用适用于SDN-IoT的区块链结构与运行机制则是更直接的解决方式.文献[133]重新设计了区块链交易、令牌的加密/初始化/更新方案,以实现跨域、细粒度和灵活的SDN-IoT应用权限管理.为了解决区块链固有的时间效率低下问题,文献[135]提出一种区块链分片策略来减少系统时间延迟.此外,一种开放、分散、无许可的分布式账本技术IOTA(Internet of Things Application),专为资源受限的物联网设备而构建,可以提供实时微交易.IOTA高效可靠、轻量级、免费等特点,为解决在SDN-IoT中引入区块链后带来的新问题提供了新的启发与思路[29,30,130],正在被越来越多的研究人员关注.

物联网中的较多设备对资源和功耗敏感,而将区块链技术应用到SDN-IoT网络中解决现有安全问题也将带来大量的计算与存储开销.因此,在面对技术融合、区块链安全和网络架构完善等方面的挑战时,无论是对现有架构、机制与协议的改进,还是重新设计区块链的共识算法、基本协议、区块与链的构建方式等,都要考虑网络性能、系统能耗、安全需求等方面的平衡.

猜你喜欢

交换机分布式控制器
三转子式比例控制器设计与内泄漏分析
多四旋翼无人机系统分布式分层编队合围控制
南京溧水电子3款控制器产品
居民分布式储能系统对电网削峰填谷效果分析
基于Paxos的分布式一致性算法的实现与优化
基于NFV的分布式SDN控制器节能机制
浅谈交换机CAN基本配置
罗克韦尔发布Strat ix 5410分布式交换机
智能液位控制器在排水系统中的应用
信息网络中交换机的分类和功能