李小娟 臧义华 吴楫捷
1(华北计算技术研究所 北京 100083)2(地理信息工程国家重点实验室 西安 710054)
随着信息技术的发展,互联网与传统产业不断融合,数据采集、网络通信、信息处理和控制的需求不断向末端延伸,承担最后一公里信息服务的边缘服务设备[1-2]发挥着越来越重要的作用.国内外提供边缘服务的设备主要是各种感知设备、通信终端和单兵系统[3-5]等.感知设备主要用于为制造流程中的各个过程提供感知、操作和管理手段,通信终端主要用于提供通信服务;以通信功能为基础的单兵系统具备导航定位、态势感知、信息处理等多种功能领域,具备多样化保障能力.但实用中也逐步暴露出以下一系列问题:
1)工业领域网络化进程加快,边缘设备的可靠接入能力受限,身份识别、设备管理成为工业安全隐患;
2)现有边缘设备大多采用单节点访问控制措施,一旦安全网关被攻破或某个设备被控制,整个网络系统也被控制,网络中的所有数据和设备面临安全威胁;
3)现有边缘设备提供的信息真实性无法验证,一旦有设备发布伪造的控制指令,可能会导致设备损坏或系统瘫痪的严重后果,同时没有经过验证的信息也难以满足事后分析的需要;
4)现有边缘设备之间缺乏安全的信息共享手段,无法实现安全的设计协同、生产协同和服务协同.
因此在生产、制造及供应链等多个工业应用场景中,如何保证数据的安全、服务的安全、控制的安全和设备的自主可靠协同成为边缘服务亟待解决的问题.
区块链技术作为一种新的分布式基础机构与计算方式,具备信息透明、不可篡改的特点,能够解决复杂环境中不平等信任模式下的信任构建问题[6-7],能够在节点不可信、信道不可靠的环境中确保信息一致性,可以通过缜密的程序和算法构建一套完善的机制,为边缘节点提供安全、高效的服务支撑手段,主要包括以下几个方面:
1)共识机制确保安全性.
随着工业的网络化和智能化发展,工业边缘设备如果通信过程中没有有效的加密措施容易被攻击者截获信息、篡改数据,并且缺乏有效手段进行识别.在区块链网络中,新节点加入时,需要高于一定比例的节点背书方能成功,对入侵与侦测构筑了堡垒.此外,在区块链中执行任何操作均会留下痕迹并能够被溯源,对反侦测与事后追踪提供了便利.
整个边缘服务系统效能的充分发挥都依赖可信的数据,数据的安全性主要体现在数据的一致性、机密性和完整性.在区块链网络中数据以分布式方式记录,整个网络的每个节点都保存有1份完整的数据副本,数据的验证和维护工作通过共识机制自动完成[8-9],数据一旦存储就不可更改,数据的安全性可以得到有效保证.
2)智能合约提升边缘节点自治能力.
区块链中智能合约的执行基于“事件触发”机制,可以针对不同任务制定智能合约,实现任务的自动触发和自动执行,各个边缘节点互相对等,同时又互相协作,提升边缘节点的自治能力,使每个边缘节点都成为智能的自治个体,能独立自主地完成一定的任务,一方面提升了通信联络的鲁棒性,另一方面提升了任务执行的效率.
3)去中心化特征提升边缘服务的鲁棒性.
区块链系统是一种分布式的开放系统,节点之间通过P2P网络协议通信,每个节点即充当服务器的角色又充当客户端的角色,彼此地位平等,以对等工作模式存在,每一个节点都具有平等的数据权限.在复杂边缘服务环境下,即使部分边缘节点遭受攻击也不会影响其他节点的正常工作,可以有效提升服务的鲁棒性[10-11].
本文根据边缘服务的特点基于区块链技术设计安全的网络架构,为边缘节点提供安全的通信联络、信息共享能力.
区块链本质是一个不可篡改的分布式数据账本,现有区块链系统多为单链系统,单链系统中1个账本维护区块链网络中所有节点的数据,账本数据十分复杂,且存在大量冗余,每个成员都可以看到所有数据,不利于边缘服务环境下的隐私保护.为了满足复杂环境下的边缘节点通信需求,本文提出一种由1个主链、1个安全密钥链和多个业务单链组成的多链系统,将原有内容复杂、规模庞大的账本数据拆分成一个个功能细化的小账本,由不同的子链进行维护.
区块链是由包含交易信息的区块从后向前有序链接起来的数据结构,每个区块都指向前一个区块,最终组成区块链[12-14].本文在已有区块链数据结构的基础上采用有向无环图(directed acyclic graph, DAG)数据结构完成链结构的搭建.
DAG是指任意一条边有方向且不存在环路的图[15].本文基于DAG数据结构搭建区块链网络,链网络的子链需要不断将子链的区块哈希信息锚定到主链上,不断锚定的哈希信息相当于主链联系到子链的关联关系,多个子链与主链间不断创建的关系组合成一个规则的DAG,如图1所示:
图1 链网络示意图
在边缘节点通信过程中,节点的身份授权、准入校验机制非常重要,影响着整个系统的信息安全等级.本文采用P2P对等网络的网络运行环境,基于拜占庭容错共识算法[16-18]和智能合约执行引擎,设计了一个独立运行的区块链应用,即安全密钥链,用于存储节点预设密钥和密钥更新信息,同时作为网络中节点间身份认证的唯一凭证,负责整个边缘服务网络的节点管理,包括节点的加入、退出等.安全密钥链结构如图2所示,每一个区块由区块头和区块体组成,区块头数据包括:前一区块的哈希值、时间戳、Merkle根、节点签名、黑名单、候选人名单.区块体数据包括:工作人员编号、公钥地址、生成时间、存储保护密钥、密钥加密密钥、有效期.
图2 安全密钥链结构
工业环境中,为了确保安全性,密钥初始化会在边缘节点设备下发之后、网络体系触发之前进行。边缘节点设备加入区块链网络时,利用内嵌密码芯片生成初始的公私钥对.其中,公钥信息包含节点设备编号、密码芯片产生公钥、签发时间和有效起止时间.私钥用来对信息进行加密.
链网络创建时,多个原始边缘节点的公钥自动加入安全密钥链.链网络创建后新的边缘节点加入链网络时,需要由已有链网络的成员节点使用其私钥对新节点的公钥和主链标识进行签名,签名信息由密钥链验证通过后才能正式加入链网络.
如节点A加入链网络,需要由链网络成员的节点B对节点A的公钥和主链标识进行签名,即签名信息SignInfo:
SignInfo=Privatekey(B)
(PubLlickey(A)+chainId)+B.
安全密钥链通过节点成员公钥列表的公钥对签名信息SignInfo进行验证,验证通过后节点A加入到链网络,并将节点A的公钥加入到对应成员公钥列表.某个边缘节点退出时,销毁节点设备中存储的全部密钥,当节点需要再次接入到网络时利用密码芯片生成新的密钥,然后重新验证通过方可加入网络.
在工业生产和服务环境当中,设备之间为了更好地进行协同工作,会比较频繁地进行信息交互,为了实现设备安全、数据安全、控制安全和事后总结分析,需要将节点设备的业务数据信息进行实时链上存证.区块链具有大众共识、不可篡改、安全透明等技术特性,可帮助边缘服务系统实现实时数据的存证,为事后数据梳理、总结分析提供可信的数据源[16].数据上链之前首先进行数据哈希,然后按照图3所示过程进行上链存证:
图3 数据链存证流程
每个边缘服务设备包含1个区块链节点,区块链节点在区块链网络中进行信息传输时使用非对称加密算法,确保信息传输安全.非对称加密算法中包含1对密钥,即公钥和私钥,其中公钥由安全密钥链进行维护管理,私钥保存在硬件私钥存储模块中,私钥存储的流程如图4所示:
图4 私钥存储流程
当用户向区块链节点发送数据获取请求或其他服务请求时,会向私钥存储设备请求签名,等到签名的结果返回之后才能进行业务交互,并与其他边缘节点进行区块链信息同步,在整个区块链达成共识后,节点将最终结果返回给用户.
在工业环境下,硬件存储设备的电子攻击主要包括侵入式攻击和非侵入式攻击.典型的非侵入式攻击是电子探测攻击,攻击方式包括SPA和DPA攻击,使用安全模块的硬件私钥存储设备由于不提供调试接口,无法绕开芯片系统读取存储器数据,比普通ARM芯片更能有效抵御攻击,对于各种形式的电子探测攻击都能作出针对性的防护.
因此本文针对私钥的安全存储和计算需求,采用内置ARM SC000安全核的安全私钥存储设备,支持硬件真随机数、国密算法、USB/7816接口,可以实现私钥生成、签名,公钥导出、PIN码验证、恢复词导入导出等功能.存储结构如图5所示:
图5 硬件私钥存储结构
复杂的工业环境下,节点设备除了基本的通信功能,还具备丰富的信息感知和处理能力,对节点设备上敏感数据、处理服务及其结果进行有效的权限控制至关重要,本文采用链上动态审计技术对边缘节点设备的数据使用和服务调用提供审计管理手段.
首先将每个边缘节点的公钥作为其安全属性标识,节点存储的数据和安装服务均通过数据存证链进行记录,并具备唯一的标识.然后定义访问控制规则,规定边缘节点对数据和服务的访问权限,通过智能合约实现访问控制规则的执行,实现安全访问控制.如图6所示,动态审计流程如下:
图6 动态审计流程
1)应用层向服务管理模块发起服务调用请求;
2)服务管理模块向区块链发起验证请求,验证是否符合安全访问控制规则;
3)区块链验证是否符合安全访问控制规则后,返回对应的审批信息给服务管理模块;
4)服务管理模块向应用层返回审批信息;
5)服务管理模块向链上审计分析系统上报审批信息;
6)服务管理模块同意后,应用层向服务方发起请求,请求流经请求方和服务方动态审计模块;
7)请求方动态审计模块进行合规性检查,向链上动态审计分析模块上报日志;
8)服务方动态审计模块进行合规性检查,向链上动态审计分析模块上报日志.
为了保证边缘节点之间的通信效率和机密性,同时避免资源消耗过高,本文采用对称加密和非对称加密相结合的方法进行数据传输.图7是边缘节点A给边缘节点B发送信息的主要流程.
图7 数据发送流程
首先采用SM3[19]对信息数据进行求取摘要,然后使用SM2[20]和发送方私钥对信息摘要签名得到信息的数字签名.
采用对称加密算法SM1,利用密钥加密密钥对信息数据及数字签名进行加密得到密文.同时对密钥加密密钥用B的公钥进行加密得到数字信封.
将密文和数字信封通过区块链网络发送给节点B.
数据接收流程如图8所示.B端收到传过来的信息后,首先利用私钥对数字信封进行解密得到密钥加密密钥.然后利用密钥加密密钥对密文进行解密,解密后得到数据信息和数字签名.
图8 数据接收流程
之后将得到的数据信息利用哈希算法求得哈希值,同时利用A的公钥对数字签名进行验证得到发送过来的信息摘要.对比计算所得和接收的2个信息摘要,若相同则信息完整,若不同则信息受损.
为了更好地完成边缘服务任务,需要根据任务执行情况和节点的状态变化,动态调整边缘服务网络架构和拓扑.
新的边缘节点加入时,将自己的信息发送至网络中,经过安全密钥链许可校验方加入网络,其公钥加入节点成员的公钥列表.
当某边缘节点失效时,其他单一节点可以发起对该节点身份失效的声明,并将声明写到区块链上,供整个区块链网络中其他节点进行审核,其他节点如果认为该声明可信,可以为该声明签名背书,如果认为该声明不可信,则可在链上写入撤销该声明的声明.若失效声明收集到足够多的签名背书(阈值事前确定,如全网节点数量的2/3),则可通过智能合约自动将失效设备的公钥进行失效处理,并将该节点从网络中删除.
为了验证本文安全机制的有效性,构建边缘服务系统,并基于软硬件实验环境开展实验验证工作.
基于本文安全机制设计的边缘服务系统组成如图9所示,从下至上分别为硬件层、操作系统、区块链层、服务框架层、服务层.区块链层由账本数据、跨链算法、共识算法、密码学算法、智能合约、区块链网络、数据安全访问控制、服务注册与发现模块组成;服务框架层包括服务注册、路由管理与弹性服务,日志系统,集中配置管理和监控系统等模块组成;服务层包括网络与通信管理、数据存证、数据传输审计、服务信息管理等模块组成.
图9 边缘服务系统组成
其中硬件层包括区块链节点、私钥存储设备、计算机终端和通信网络;软件由区块链层、服务框架层和服务层组成.此外,为了开展实验,还需使用的软件包括:边缘配置软件、Iperf网络测试工具、Docker、网络仿真软件等.
本实验构建3个区块链子网,3个子网组成一个区块链网络,基于该网络对区块链网络的管理、数据存证和数据安全传输等多方面进行实验验证.表1所示为典型的实验内容及结果.
表1 典型实验内容及结果
实验结果表明,基于多策略安全机制构建的边缘服务系统能够支持可用网络规模不小于32个独立节点,支持不小于3个独立子网协同,支持节点的身份认证功能,具备信息防篡改、可恢复能力,能够提升边缘节点的抗攻击能力,能够提供数据的可信存证手段,可以为边缘节点执行各类任务时提供安全的通信联络、数据存储和传输等综合保障能力.
万物互联的信息时代,数据安全、服务安全、控制安全和设备安全至关重要.本文基于区块链技术设计了安全网络架构,结合硬件私钥存储机制、链上动态审计技术、数据安全传输技术等建立了完备的安全机制,既可保证数据传输的安全,又能够保证控制访问的安全,同时可以确保数据的一致性,能够建立从设备连接、数据采集、存储分析到设计生产的全流程安全控制体系,实现工业数据的协作共享和防伪溯源,同时实现工业链中所有节点的自治化管理,为打破行业壁垒、形成资源共享的服务体系奠定坚实的基础.