祝 剑,杨珍娜,庞 龙,丁 瑾
(1.西安邮电大学 学报编辑部,陕西 西安 710121;2.西安邮电大学 网络空间安全学院,陕西 西安 710121)
工业互联网[1]是将互联网技术延伸到工业领域,利用智能技术提升网络性能,以物联网的形式帮助企业实现工业自动化,现已广泛应用在数字化管理、智能化制造和网络化协同等领域。随着越来越多的产品由工业互联网加工生产,工业生产效率得到有效提高,但是在数据溯源过程中,存在信息数据泄露、篡改和仿冒等安全问题。
数据溯源是指对产品的全生产周期进行跟踪与追溯,即对产品的生产、加工、运输和销售过程进行“统一化管理”,是对信息数据“从产地到市场”监控的有效途径。因此,数据溯源技术[2]可改善工业互联网中信息数据安全问题。在当前大数据背景下,利用数据溯源技术分析非法数据的相关特性,可保证数据溯源信息的可靠性,但其安全性并未得到提高[3]。基于属性加密的数据溯源方案[4]通过属性加密使信息数据更加安全,但所消耗的计算资源较大。文献[5]将区块链技术融入数据溯源技术中,提高了信息数据的安全性,但基于区块链的云储存方式,需要更大的云存储空间[6]。基于区块链的数据溯源可信查询方法[7]通过建立Merkle树动态追加性能的数据结构,实现了溯源数据的可信存储,但延长了数据查询时间。基于双区块链的防伪溯源系统[8]改善了传统溯源系统存在的安全性问题,但该系统的信息数据传输速率较低。基于区块链技术的射频识别(Radio Frequency Identification,RFID)大数据溯源安全模型[9]实现了对RFID大数据的溯源管理,但信息数据安全性较低。基于区块链和RFID结合的数据采集溯源系统[10]提高了信息数据的安全性,但数据传输速率仍较低。
针对工业互联网数据溯源过程中存在的信息数据安全性较低、传输速率慢的问题,拟提出一种基于区块链的工业互联网数据溯源方案。通过建立产品信息存储和共享模型,实现产品信息上传、查询、防伪和溯源等功能。在贴有RFID标签的产品生产、加工、仓储、运输和销售等多环节建立区块链账本,使“账本-环节”相互对应,将产品供应链各环节数据分别存储在不同的账本上,降低产品信息存储结构,提升信息数据传输速率。同时,建立基于区块链的工业互联网数据溯源系统,保证上传前产品信息的真实、透明、不可篡改并验证二维码的真实性,利用星际文件系统[11](Interplanetary File System,IPFS)存储产品信息减少存储开销。
区块链[12-14]是比特币最底层的技术,具有去中心化、不可篡改、公开透明和可追溯等特点。区块链中的每个区块由区块头和区块体构成,区块头包含前一个区块的Hash值、版本号、随机数、时间戳、Merkle根和难度目标等,区块体包含此区块的交易信息,包括交易数量和数据。具体结构如图1所示。
图1 区块链结构
区块链可分为公有链、私有链和联盟链,其特征如表1所示。
表1 公有链、私有链和联盟链特征
RFID技术[15]是自动识别技术的一种,通过无线射频方式进行非接触双向数据通信,并对电子标签或射频卡等记录媒体进行读写,从而达到识别目标和数据交换的目的。RFID主要由电子标签、阅读器、天线和应用系统软件等4部分构成。电子标签由耦合元件及芯片组成,每个标签具有唯一的电子编码,附着在物体上标识目标对象。阅读器是读取标签信息的设备,可设计为手持式RFID读写器(如C5000W)或固定式读写器。天线是在标签和读取器间传递射频信号的途径。RFID系统结构如图2所示。
图2 RFID系统结构
二维码[16]即二维条形码,是在一维条形码的基础上发展起来的一种二维条码。在功能方面,二维码比一维条形码安全性更好、存储信息量更大,QR码[17](Quick Response Code)是目前应用最广泛的二维条码之一。二维码识别信息的方法是通过图像行读码,通过专门的扫码器和扫码软件,自动辨别读取信息,从而实现信息处理自动化。该方法的图形编译规则和条码技术具有一些共性,但同时又具有对不同领域的信息自动识别功能和处理图形旋转变化点。二维码和条形码的优势对比如表2所示。
表2 二维码和条形码的优势对比
智能合约[18-20]是一种无需中介、自我验证和自动执行合约条款的计算机交易协议。一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。用户在区块链上可通过交易执行智能合约。智能合约的运用减少了用户在区块链上交易的成本,同时,区块链又为智能合约的发展提供了机会。智能合约运行机制如图3所示。
图3 智能合约运行机制
为保障工业产品质量,近几年来我国工业互联网产业增速飞快,国家层面也出台了各项政策给予支持,国际上对工业互联网的关注度也不断提高。大多数的传统工业互联网系统由生产部门、仓储部门、加工部门、运输部门、销售部门、监管部门以及中心数据库构成,模型如图4所示。
图4 传统工业互联网模型
结合传统工业互联网模型,基于区块链的工业互联网数据溯源方案在其基础上加入区块链以及IPFS,采用数据采集层、数据存储层、数据传输层和数据应用层等4层进行数据溯源,模型架构如图5所示。
图5 模型架构
1)数据采集层。工业产品信息由产品生产商、加工商、仓储商、运输商和销售商等各个节点采集并上传,配合监控设备、RFID标签以及一些物联网中间件等设备,对产品供应链各环节的信息进行采集,保证数据的真实性。
2)数据存储层。工业产品信息(Industry Produce Information,IPI)存储由超级账本Hyperledger与IPFS组成。其中,Hyperledger存储IPI的哈希值HIPI和哈希地址AIPI,IPFS存储IPI。供应链参与节点P{P1,P2,…,Pn}在对应账本中均有其特定身份标识,从源头确保数据的不可抵赖性。
3)数据传输层。IPI通过网络传输到计算机系统及IPFS中存储。
4)数据应用层主要由消费者、企业和监管部门构成,实现对IPI监管和溯源。
工业互联网数据溯源系统主要包含监管部门、供应链各参与方、IPFS和区块链网络等4个实体,如图6所示。
图6 工业互联网数据溯源系统
1)监管部门负责供应链中各参与方P{P1,P2,…,Pn}首次进入区块链时信息的注册以及证书的颁发,信息注册获得用于识别身份信息的身份标识号和进行IPI加密的公私钥对(KP,KS),同时对工业产品信息的存储和数据共享过程进行监督和管理。
2)供应链上各参与方P{P1,P2,…,Pn},即工业互联网数据的拥有者,主要包括生产部门、加工部门、仓储部门、运输部门和销售部门。P{P1,P2,…,Pn}各自拥有一个账本,负责将各自拥有的公开工业产品信息IPub直接上传至IPFS,隐私工业产品信息IPri调用智能合约自动进行加密并将工业产品加密信息Enc(IPri)存储在账本中,P{P1,P2,…,Pn}也可对IPI进行溯源。
3)IPFS负责存储工业产品信息IPI,生成IPI的HIPI和AIPI,并将其上传至区块链。
4)区块链网络负责存储查询节点的键值对(KP,K′)以及IPI的哈希值HIPI和哈希地址AIPI,其中,K′是由公钥KP加密K生成。
P{P1,P2,…,Pn}在监管部门注册后加入工业互联网产品信息溯源链,IPFS将HIPI和AIPI上传至区块链中,当消费者进行IPI溯源时,向区块链发送请求,即查询公开工业产品信息IPub,区块链返回公开的哈希值HPub和哈希地址APub,根据APub从IPFS下载进行查看,并根据HPub判断IPub是否被篡改。当授权查看节点需要查询隐私工业产品信息IPri时,向区块链发送请求,区块链返回加密的哈希值HE和哈希地址AE以及(KP,K′),授权节点根据AE和(KP,K′)在IPFS中下载并解密Enc(IPri)。工业产品信息存储和共享模型如图7所示。
图7 工业产品信息存储和共享模型
基于区块链的工业互联网数据溯源方案实现主要分为IPI信息采集和加密存储过程、IPI生成和上传存储过程,以及IPI防伪和溯源查询过程。通过物联网设备实时采集信息,结合密码学相关加密算法加密隐私数据,调用智能合约进行存储,利用二维码技术实现防伪,从而实现工业互联网数据溯源。
3.1.1 采集过程
通过物联网设备,结合RFID与二维码技术,对IPI进行采集。在工业产品的生产、加工、仓储、运输和销售过程均采用监控设备进行实时监控,利用自动化机械设备实时上传产品信息获取IPI,保证数据源头的真实性。
将RFID信息采集系统安装在工业产品供应链每个环节,通过13.56 MHz高频的RFID实时采集供应链每个环节IPI,将采集到的IPI信息存储在RFID内的电子码编码(Electronic Product Code,EPC)的射频识别电子标签中,并将EPC存储的IPI上传至计算机系统,再转为二维码形式存储IPI,作为工业产品的唯一标识码。工业产品信息二维码生成过程如图8所示。
图8 二维码生成过程
IPI分为公开工业产品信息IPub和隐私工业产品信息IPri。IPub主要包含工业产品溯源信息的公开信息,如生产方式、加工时间、仓储时间、地点和质检结果等,直接上传至IPFS。IPri主要包含工业产品溯源链中的一些企业信息,如仓储数量、加工成本、进货价格和交易信息等。在工业产品隐私信息保护上,P{P1,P2,…,Pn}的IPri通过智能合约校验后,采用高级加密标准(Advanced Encryption Standard,AES)加密算法随机生成对称密钥K加密,并将Enc(IPri)上传至IPFS中,由最优非对称加密(RSA-Optimal Asymmetric Encryption Padding,RSA-OAEP)算法对K进行加密保证其安全性。IPri的查询需要经过授权,通过查询节点的公钥KP加密K生成K′,KP和K′构成键值对(KP,K′),并将其存入区块链中。供应链IPI加密存储的具体步骤如下。
步骤1生产部门通过自动化设备实时上传工业产品零件的数据、加工设施和负责人签名等IPub1至IPFS,将成本价格和生产方式等IPri1通过智能合约自动加密后上传至IPFS。当仓储部门查看IPri1时,智能合约随机生成密钥K1加密IPri1生成Enc(IPri1),并采用仓储部门的KP1作为RSA算法的公钥加密K1生成K′1,即
步骤2加工部门将工业产品区块号、加工过程的时间、方式、地点和负责人签名等IPub2直接上传至IPFS,将订单价格、加工成本和商品成本等IPri2通过智能合约自动加密后上传至IPFS。当运输部门查看IPri2时,智能合约随机生成密钥K2加密生成Enc(IPri2),并采用运输部门的KP2作为RSA算法的公钥加密K2生成K′2,即
步骤3仓储部门对产品进行仓储并标识RFID溯源码,将产品区块号、仓储地点、时间、仓储环境和负责人签名等IPub3直接上传至IPFS,将仓储数量和剩余产品数量等IPri3通过智能合约自动加密后上传至IPFS。当加工部门查看IPri3时,智能合约随机生成密钥K3加密生IPri3成Enc(IPri3),并采用加工部门的KP3作为RSA算法的公钥加密K3生成K′3,即
“借钱变贵了。”在某省一家新能源公司做财务的李英,明显感觉到这几年企业融资成本在上涨。“2016年以前,银行贷款利率在基准利率上打九折,2017年还能打九五折,今年则回到基准利率。”
步骤4运输部门将工业产品区块号、运输时间、运输方式、装卸信息和负责人签名等IPub4直接上传至IPFS,将运输成本和物流客户等IPri4通过智能合约自动加密后上传至IPFS。当销售部门查看IPri4时,智能合约随机生成密钥K4加密生成Enc(IPri4),并采用销售部门的KP4作为RSA算法的公钥加密K4生成K′4,即
步骤5销售部门将工业产品身份标识号(Identity Document,ID)、区块号、产品名、销售时间、销售数量和负责人签名等IPub5直接上传至IPFS,将销售价格和进货价格等IPri5通过智能合约自动加密后上传至IPFS。当生产部门查看IPri5时,智能合约随机生成密钥K5加密生成Enc(IPri5),并采用生产部门的KP5作为RSA算法的公钥加密K5生成K′5,即
IPI存储形式如图9所示。
图9 IPI存储形式
值得注意的是,上述IPrii(i=1,2,3,4,5)授权查看节点是按照供应链顺序授权。实际上,任何授权查看节点均可以在其他节点授权后,通过智能合约获取键值对(KPi,K′i),通过KSi解密键值对查看IPrii,授权过程与上述一致,在此不再叙述。
3.2.1 IPI生成过程
P{P1,P2,…,Pn}由自动化设备上传IPI后,通过KSi对IPI进行签名并生成HIPI,将其发送给监管部门,由监管部门进行审核,审核通过后进行上传。
3.2.2 IPI上传储存过程
工业产品供应链中的P{P1,P2,…,Pn}将IPI上传至IPFS。对于IPri处理时,IPFS先调用智能合约自动加密IPri生成Enc(IPri),然后将Enc(IPri)存储至IPFS中,最后将HIPI和AIPI上传至区块链中。IPI存储流程如图10所示。
图10 IPI上传存储流程
消费者购买产品后,扫描工业产品包装上的二维码进行溯源。消费者进行工业产品溯源时,首先要验证二维码是否被篡改,通过在客户端查询,使用手机端应用程序或小程序扫描产品的二维码。若二维码被多次扫描,则返回客户端信息异常,正常则直接从IPFS中获取IPub,通过哈希函数计算得到HPub′,当HPub=HPub′时,IPub未经篡改,否则,IPub被篡改。防伪流程如图11所示。
图11 消费者验证二维码产品信息流程
3.4.1 IPI查询合约
当P{P1,P2,…,Pn}需要查看IPri时,向区块链提出查询节点请求,当验证身份且符合查询要求后,区块链返回(KPi,K′i)、HE和AE,授权查询节点Pi根据AE在IPFS中获得Enc(IPri),使用KSi解密键值中的K′得到原始K值,利用K值解密IPri查看,并计算所获IPri的HE′,当HE≠HE′时,证明IPri未经篡改,否则,IPri被篡改。IPI查询流程如图12所示。
图12 IPI查询流程
3.4.2 溯源过程
溯源信息按照时间顺序从工业产品的生产开始记录一直到产品销售给消费者,使产品信息正向记录,逆向追溯。同时,产品在流通的过程中一旦发现存在产品质量问题,可以通过溯源信息追踪流向、及时召回。当用户查询到IPI被篡改后,根据区块链上生产、加工、仓储、运输和销售环节的数据账本,判断是供应链哪一环节的IPI账本被篡改,并及时向监管部门进行反应。
4.1.1 不可篡改性和不可抵赖性
基于区块链的工业互联网数据溯源方案将IPI的HIPI和AIPI存储于区块链中,P{P1,P2,…,Pn}在IPFS获得IPI后计算其哈希值HIPI′与区块链上存储的HIPI进行对比。当HIPI=HIPI′,证明IPI未被篡改,当HIPI≠HIPI′,证明IPI被篡改,从而保证了IPI的不可篡改性。同时,P{P1,P2,…,Pn}在IPI上传前用自己的KSi进行签名,保证IPI来自P{P1,P2,…,Pn},数字签名保证了不可抵赖性。
4.1.2 抗伪造性
假设攻击者γ能够通过某种手段得到IPri,当γ查看IPri时,首先要通过各P{P1,P2,…,Pn}的KSi解密K′获得对称密钥K。然而,γ获取P{P1,P2,…,Pn}的KSi几乎是不可能的,即想要在没有P{P1,P2,…,Pn}的KSi下解密Enc(IPri)是困难的。假设γ用Enc(IPri)′替换掉IPFS中存储的Enc(IPri),而Enc(IPri)在上传至IPFS时需要将HE与IPFS中其他HE′对比。当HE≠HE′时,HE′无法覆盖Enc(IPri),从而保证了IPri的安全性。
4.1.3 机密性
该方案使用对称加密算法对IPri加密,进行隐私信息的处理。为了确保对称加密算法的安全性,保证K的安全性至关重要。而传统的RSA算法存在着“小明文攻击”,K容易被破解,因此,采用最优非对称填充RSA-OAEP算法对密钥K进行加密生成K′,以授权查看节点的公钥KPi作为加密的公钥,由KPi和K′组成键值对(KPi,K′)存放在区块链中。对于IPri的共享上,只有经过授权后的节点才可以查看,当多个参与节点同时需要查询IPri时,只需要多次调用智能合约即可,并不会影响已授权的节点查看IPri,从而保证了IPri的机密性。
4.2.1 工业产品信息加解密
基于区块链的工业互联网数据溯源方案先使用AES加密IPri,再通过RSA-OAEP加密算法加密对称密钥K,利用两次加密确保IPri的安全性。采用英特尔i5-8250U 1.60 GHz处理器、8 GB内存、Ubuntu 18.04.1搭配环境、64位系统与Python 3.8编译器,对IPri进行加解密的仿真实验。当IPri从2 048条到32 768条时,所提方案、文献[4]方案和文献[6]方案对IPri加解密时间对比如图13所示,每次测试增量为2 048条信息。
图13 3种方案不同数量IPri加解密时间对比
由图13仿真结果可知,随着IPri条数的增加,加解密的时间也随之增加,对于32 768条IPri加解密,所提方案消耗的时间分别为1 156.28 s和1 221.04 s,时间消耗不超过15 min,优于文献[4]方案和文献[6]方案。这是因为,所提方案在数据溯源方面采取了AES-OAPE的加解密方式,相比文献[4]算法所采取的属性加密在加解密效率方面有所提高。同时,采取区块链的去中心化技术,较文献[6]方案对于云存储数据溯源方面更加安全。
由此可见,所提方案对于产品供应链中的所有IPri,可以容纳大规模产品正常生产时的信息,并及时将IPri上传至IPFS。
4.2.2 吞吐量
在实验环境为Inter® CoreTMi7-7700HQ CPU @280 GHz的CPU,RAM为8 GB的服务器上对IPri的吞吐量进行分析。固定时间内向IPFS上传IPri数量如表3所示。可以看出,吞吐量能够稳定在2 365条/s,因此,所提方案可以应对大规模产品供应链上产品信息的产生和存储。
表3 上传产品隐私信息数量
4.2.3 性能分析对比
分别对比文献[4]方案、文献[6]方案和所提方案的性能,结果如表4所示。
表4 各方案性能对比
从表4可以看出,所提方案相比于文献[6]方案,在数据存储方面采用去中心化的方式,安全性得到了较大的提升,加密速度较其他两个方案也存在一定的优势。同时,在资源消耗以及系统开销方面,所提方案的算法优化较高,所消耗的资源较少。
基于区块链的工业互联网数据溯源方案包含工业互联网数据溯源全周期的各个模型。通过RFID中的阅读器对产品生产、仓储、加工、运输和销售全过程进行信息采集,存储于电子标签中并转为二维码,方便溯源。通过对称加密算法对产品隐私信息进行加密,采用公钥加密算法加密对称密钥后存储于区块链网络中,调用智能合约实现信息存储和共享,提高了信息存储和共享效率,在IPFS存储加密后的产品信息,节省了存储产品信息开销。安全性分析和性能分析表明,所提方案在计算资源消耗以及加解密速度方面较其他方案存在一定的优势。同时,采取区块链以链上链下的方式存储数据,提高了产品信息的安全性和溯源过程的可靠性,且数据传输速率有所提升。