合作机构:阿里云 / 腾讯云 / 亚马逊云 / DreamHost / NameSilo / INWX / GODADDY / 百度统计
工业互联网系统安全首先要求介入网络的任何设备自身是安全的,即任何工业互联网设备必须是以工业用途为使用目的,不是以获取信息或黑客行为需求,所有介入设备必须进行高级别的安全认证。其次是网络本身的安全,工业互联网时代的信息不仅分布在云端,也遍布于各地的超级计算终端、移动终端、传感器或其他万物互联设备上,既要保证互联网万物互联中各接口的安全,还要保证传输网络的安全,特别是无线传输的安全,所以网络安全监测技术非常重要。其三是完备的包括冗余和恢复机制的系统安全应急措施,当系统受到攻击或因攻击崩溃时,系统有强大和快速的应急方案,保证系统在不间断情况下正常工作。
一、区块链简介
区块链是一种分布式数据库,通过保存不断增加的记录,也就是区块,以至于不会被篡改。其分布式特性意味着没有控制整个链的主计算机,每个参与节点保存一份记录,数据记录可以无限制新增,如果想要在链上添加交易记录,必须获得网络中所有参与者的认可,用一种算法验证其有效性。区块链系统决定有效的定义,并因系统而有所差异,然后由大多数参与者决定其是否有效。所有有效交易集合到一个区块中,发送给所有网络节点,由他们验证新的区块,每个新的区块对应一个哈希值,也就是前一个区块的独特指纹。区块链的一大优势是其公开性,每个参与者可以看到存储的交易和区块。当然交易的具体内容受到私钥保护,并不是任何人随意查看的。区块链是去中心化的,因此单个机构不可以授权交易或者规则,也就是说在交易验证方面达成共识,形成极大共识。最重要的还是安全性,该数据库只可以扩充,不可以变更,至少变更的成本是极大的。
随着互联网和区块链技术的发展以及各行业对互联网的依赖,区块链技术将得到更广泛的应用。区块链的去中心化能提供安全的环境,实现真正意义上的分布式系统;去信任化以及智能合约增强了互联网中的互信机制,降低了成本;时序数据和数据加密保障了互联网中的数据安全。总之,区块链能够加强互联网应用层、网络层、感知层的安全性。互联网增强了物和物之间的联系,区块链给这种联系提供了安全保障。对于区块链对互联网安全的更多作用,需要未来更深层次的研究与探索。
二、 区块链的工作原理
区块链是由有序区块连接形成的长链结构。区块是包含相关信息和交易记录等全体数据的容器,每一种区块链的区块结构设计可能不完全相同,但一般区块主要由包含元数据的区块头部和记录交易过程的区块主体组成,它是形成区块链的基本单元。区块的结构如图1所示。其中区块头部除版本号元数据外,其余部分可以分成三个部分:
(1)链接到前一个区块的哈希值:用于和上一个区块链接起来,是区块形成“链”的关键;
(2)与产生交易相关的目标哈希函数、时间戳和随机数,其中时间戳记录本区块生成的时间,随机数是用于工作量证明算法的计算器;
(3)用来总结区块中所有交易并快速检验交易数据存在性和完整性的Merkle根。区块体保存区块创建过程中所有发生的经过验证的交易记录。区块与区块之间通过哈希的值建立对应的链接关系,一条完整的区块链就产生了。
图1 区块的结构
区块链的工作原理见图2。在比特网中,若A要发送比特币给B,其过程如下:
①创建交易单。A用B的公钥加密上一次交易,算出哈希值;再用自己的私钥对该哈希值进行加密得到A的数字签名后,将该数字签名附加到比特币的末尾,制成交易单。
②传播交易单。A将交易单广播至网络告诉其他结点有关交易的信息,每个结点将收到的交易单纳入一个区块中。
③验证交易有效性。全体参与者通过验证哈希值验证交易的有效性,即每个结点反复尝试寻找一个数值,使得该数值、区块链最后一个区块的哈希值以及交易单三个数值经过Hash256算法后能计算出散列值X,满足一定条件(如前20位均为0),就认为找到解,从而获得创建新区块的权利的同时也得到比特币的奖励。
④传递验证结果。第一个算出结果的结点,得到系统给予的比特币奖励,也向全网广播这个消息。网络中其他节点收到消息后,对区块进行验证,如果得到全部参与者一致认可后,加盖时间戳后被添加到区块链中形成一条永久的记录。
⑤完成交易。在分布式记账本中对A、B资产分别进行增加,完成交易。
图2 区块链的工作原理
相应地,在工业互联网领域,很多专家认为区块链技术可以弥补工业互联网的隐私性、可靠性不足等缺陷。它可以追踪几十亿互联的设备,支持交易处理、设备对接,为该产业制造商节省大量成本。这种去中心化方式可以消除单点故障,为设备营造良好的运行环境。区块链使用的加密算法可以使用户数据更加安全,区块链账本可以防止恶意篡改,因为它不存在于任何单一地点;中间人攻击也无法奏效,因为任何通讯都会被拦截。区块链可以实现去信任的点对点通信,并且已经通过比特币等加密货币证明了它在金融服务行业的价值,提供了无需第三方的安全点对点支付服务,完全颠覆了我们对金融科技的概念。
去中心化、自治、去信任化等区块链特性使其成为工业联网解决方案的基本元素。因此工业互联网领域采用区块链技术就并不稀奇了,区块链可以保存不可篡改的互联网智能设备历史记录,可以保证智能设备的自主性,不需要中心化机构。因此可以说区块链开启了前所未有的工业互联网模式,比如利用区块链技术的工业互联网解决方案可以保证网络的通信安全。区块链最惊人的功能是在网络中实现完全去中心化、可信任的交易账本,这对于工业互联网应用独立于中心化机构,独立实现合规性要求具有不可替代性意义。区块链对工业互联网的意义可总结为三点:搭建信任、减少成本和加速交易。
三、基于区块链的工业互联网安全应用案例
1.面向M2M安全的区块链总体设计
区块链技术的特征和工业互联网中M2M的技术要求在一定程度上是相融的,具体体现在:
(1)区块链技术和M2M都体现了分布式,去中心化思想。区块链技术中,不存在中心化的数据库,每个节点都保存了区块链的全部信息。机器设备之间(M2M)的互联互通是工业互联网中的关键技术,它可以是机器对机器、机器对机器集群、机器集群对机器集群。不管是哪种形式的M2M,或者是点对点、或者是点对多点、或者是多点对多点的通信,无不体现分布式,去中心化。
(2)区块链和M2M都对安全要求较高。区块链技术建立的是一种无需任何信任或依赖的系统,采用数字签名、加密技术等确保信息的安全。M2M系统中,信息在传输和存储过程中的机密性、完整性、可用性、真实性及不可否认性的要求也很高。每个应用领域有其自身的特殊性,如军事系统、电力系统、医疗系统及制造系统,对信息安全的要求也有些差别,就整体而言,信息的安全还是第一要素。
(3)区块链和M2M在信息的可溯与共享上高度一致。区块链技术中可以通过连接到上一个区块的哈希值查看整个区块链交易过程的信息,历史信息得到有效共享。M2M系统中,特别是在制造领域,追溯历史数据找到可能影响产品质量的关键因素,通过改进工艺提高产品质量;筛选历史数据发现容易出现机器故障的生产环节,通过优化机器保养方法降低机器故障;共享供应链上的相关数据找出可以减少投入的环节以降低生产成本。
因此,在保证数据吞吐量和数据可扩展的基础上,要做到数据可靠,即数据可用、可信赖、完整、安全和可维护等,则要求数据发送方发送的数据真实、合法、规范,数据发送要保密且发送过程可记录、可查询、可追溯;接收方只能接收从发送方发送的数据不能再转发,接收数据过程可记录、可查询。针对工业互联网的M2M通信系统,提出如图3所示的区块链设计。
图3 面向M2M安全的区块链的总体设计
在图3中,公共网络区是以工业物联网为基础,搭建设备通信平台以保证各类设备正常通信;审核设备注册与访问认证,实现设备之间连接与通信;规范数据格式和通信规则;维护公共网络区块,查询通信记录。若因设备故障无法正常工作须停机更换设备,或因生产需要更新设备时,新设备以注册新成员的方式接入到生产线中。新设备将一个标识自己身份的信息(如数字证书)发送给公共网络区,申请注册。新设备的申请被审核通过后,其注册获得成功。公共网络区将新设备的数字证书与其身份建立对应关系,并将该设备的公钥放入公共网络区的公钥池,同时将该设备作为一个新的区块链接到机器设备区块链(machine & equipment blockchain, M-EB)中;设备区是连接公共网络区和私有区的通道,接收来自公共网络区的消息,传递来自私有区查询要求和查询结果。公共网络区接受新设备注册后,用其公钥对加密数字证书进行验证,确认该设备身份后,接受其访问公共网络区,此时,新设备便可参与M2M通信;在私有区中可建立记录机器设备间通信过程的区块,保存通信过程的数据,接受对外部的查询或者对外发起查询以获取外部的相关数据。
2.公共网络区的机器设备区块链设计
在CPS中,若因设备故障无法正常工作须停机更换设备,或因生产需要更新设备时,新设备以注册新成员的方式接入到生产线中。新设备将一个标识自己身份的信息(如数字证书)发送给公共网络区,申请注册。新设备的申请被审核通过后,其注册获得成功。公共网络区将新设备的数字证书与其身份建立对应关系,并将该设备的公钥放入公共网络区的公钥池,同时将该设备作为一个新的区块链接到机器设备区块链(Machine & Equipment Blockchain, M-EB)中。机器设备区块链的结构图如图4所示。公共网络区接受新设备注册后,用其公钥对加密数字证书进行验证,确认该设备身份后,接受其访问公共网络区。此时,新设备便可参与M2M通信。
图4 机器设备区块链结构图
M2M技术实现的是一种通信机制,其目标是使所有机器设备具通信能力,旨在实现机器和系统三者之间的智能化、交互式的无缝连接。为了保持数据的完整性和减少数据冗余,公共网络区对CPS中的任意M2M终端的通信数据格式进行规范化定义;同时对M2M间的通信数据类型也有相关的约定:上传信息是指采集本地机器的数据,下行信息是指通信协议、网络的指令和相关参数的设置。
3.私有区的通信区块链设计
私有区负责建立记录机器设备间通信过程的区块、保存数据以及查询相关信息。通信过程的信息是可以被共享的,这就保证它很难被篡改。
通信区块链(communication blockchain,BC)的区块主要有头部信息和通信信息组成,其中头部信息是由①连接到前一个区块的哈希值;②目标哈希;③Merkle根节点;④随机数;⑤时间戳等组成。通信信息部分有:①通信发送方ID:识别通信发起方;②通信接收方ID:识别通信接收方;③信息类型:体现机器设备之间的通信数据类型约定,是上传数据还是下行数据;④数据大小:用以规定数据单元的总字节数;⑤数据:具体要通信数据,需要被保存的;⑥数据加密类型;⑦数据检验:检验经传输后数据的准确性。通信区块链的结构图如图5所示。
图5 通信区块链结构图
通信区块链主要记录设备间互通的过程。一次互通过程作为一个区块被链接到通信区块链中。互通过程中的数据,包括通信双方的ID、信息类型、数据大小、加密方式等内容被保存到区块中。
假设设备M1要查询其与某个设备M2通信记录,则可发送如图6所示格式的查询包到公共网络区,若查询成功,M2通过公共网络区将查询结果的信息包返回给M1,信息包的格式如图7所示;若查询失败,公共网络区返回查询失败消息给M1。
图6 查询包的数据格式
图7 信息包的数据格式
整个查询通信过程如图8所示,具体步骤如下:
步骤1:M1将查询包发到公共网络区;
步骤2:公共网络区接收到查询包后,解析查询包,根据数据检验信息检验查询包数据是否完整。若不完整,则要求M1重新发送查询包,重新进入步骤1;若查询包数据完整,则进入步骤3;
步骤3:公共网络区根据查询包中M2的ID,在机器设备区块链上查看M2是否存在。若不存在,则返回给查询发送方一个空值,查询失败;若M2存在,则进入步骤4;
步骤4:公共网络区通过M2的设备区,将M1的查询包发送到M2的私有区。
步骤5:M2私有区解析查询包,鉴别M1的数字签名是否合法。如果不合法,拒绝服务,并通过公共网络区返回一个拒绝服务信息给M1,重新进入步骤1;如果合法,则进入步骤6;
步骤6:M2的私有区根据查询包中要查询的内容,用M1的公钥加密数据并封装相关数据成信息包,通过设备区将信息包发送到公共网络区;
步骤7:公共网络区接收到信息包后,根据信息包中的检验信息检查信息包数据是否完整性。如果不完整,则要求M2重新发送,进入步骤6;如果信息包数据完整,则进入步骤8。
步骤8:信息包通过M1设备区发送到M1的私有区;
步骤9:私有区解析信息包检查M2的数字签名,鉴别其合法性。如果不合法,通过公共网络区发送消息给M2,要求重新发送数据,进入步骤6;如果合法,M1的私有区则用M1的私钥解密信息包获取数据,查询完成。
图8 查询通信过程
TOP