APP下载

基于区块链交易验证的设备认证方法

2021-06-04章振海虞思城蒋云杰吴珂桢顾国民

信息安全研究 2021年6期
关键词:哈希凭证网关

章振海 虞思城 蒋云杰 吴珂桢 顾国民 陈 园

1(国网浙江省电力有限公司信息通信分公司 杭州 310023) 2(国网浙江德清县供电有限公司 浙江德清 313200) 3(浙江工业大学计算机科学与技术学院 杭州 310023)

近年来,随着工业4.0、“智能制造”等技术的发展,物联网已被广泛应用于智能电网、智慧家居等各个物联网领域,推动人-机-物的全面互联与融合.自物联网概念[1]被提出以来,物联网设备数量飞速增长,产业迅猛发展.与传统互联网相比,物联网架构将网络连接扩展到更丰富的物理空间,也面临越来越多的安全问题.据预测到2020年底,物联网设备数量将增长至500亿[2].海量异构设备的接入、频繁的数据通信和信息交换为边缘设备增加额外的计算负担.传统安全防护手段主要面向计算资源丰富的云端服务,成本较高,因此无法直接应用于物联网终端设备环境.

区块链于2008年问世[3],引发全世界关注,已被广泛应用于医疗、物流等多个领域.由于物联网具备天然的分布式特性,因此物联网+区块链的模式被广泛看好.如何将区块链与设备认证结合,将其不可篡改、信任建立的机制运用于物联网终端设备,值得深入探究[4].传统物联网区块链的应用主要实现对设备数字证书及凭证的存储[5],存在交互信息泄露、区块链确认时间慢等关键问题.

本文将利用以太坊实现一种基于区块链交易验证的设备认证方法,在网关层面同步区块头,构建可信网络;利用简单支付验证(SPV)的方式对终端设备进行注册与认证,降低密钥在网络中传输的泄露风险,减少区块链交易验证的等待时间,提高设备认证的安全性和有效性.

1 相关工作

1.1 设备认证研究现状

设备接入是物联网安全的第一道防线,面临严峻挑战.常用的用户名/密码的认证方式也已经被遗弃,改而使用动态口令、特征识别以及多音字认证等方法[6].目前,设备认证主要分为以下3种:基于公钥基础设施的身份认证方法、基于身份的签名方案以及基于无证书的签名认证方法.

基于公钥基础设施的身份认证主要以PKI(public key infrastructure)为代表,方案中存在一个CA中心进行数字证书的发放和验证,数字证书中包含设备需要的公钥和签名,设备可通过自身私钥对消息进行加密,接收方可通过设备公钥对信息进行验证,保证传递消息的真实性.

基于身份的签名方案以IBC(identity-based cryptograph)为基础,通过密钥生成器进行密钥生成、分发和管理.该方案使用双线性对运算实现对签名的验证,即使在传输过程中发生密钥泄露,仍可实现身份的唯一性验证.

基于无证书的签名认证方法中,密钥分发中心通过设备的唯一区分标识为其生成部分对应私钥,设备可通过设定的secret值和部分私钥生成唯一私钥,确保设备接入认证安全.

1.2 基于区块链设备认证现状

区块链不可篡改、分布式存储、可溯源等特性可满足物联网设备可移动的应用场景安全接入需求.同时,区块链系统也能为物联网数据安全提供解决方案.

Shen等人[7]提出一种基于区块链的跨域身份管理机制,被认证设备将保持匿名状态,通过协商密钥进行安全通信.该方案实现联盟区块链不同区域之间的信任建立,并进行密钥存储以及隐私保护.Danish等人[8]提出一种应用于超长距离扩频通信(LoRaWAN)的区块链认证机制.该方案将区块链作为一种独立网络与LoRaWAN同时进行工作,利用智能合约实现LoRa终端设备中的验证信息及设备信息存证,以达到设备身份验证的目的.Mohanta等人[9]提出一种基于以太坊的物联网设备分布式认证方案,该方案主要通过智能合约进行用户ID及其关联钱包地址的存储,运用区块链解决单服务器单点故障的问题. Ourad等人[10]利用以太坊和智能合约对设备进行认证,用户向智能合约提供设备认证信息,智能合约将认证凭证分发至设备和用户,再完成设备认证.该方案中的区块链负责凭证生成管理和分发工作.

现有大部分方案的区块链主要为设备认证提供凭证存储和管理等服务,运用区块链分布式存储的特点预防因单点故障造成的凭证丢失,同时利用智能合约不可篡改的特性确保认证凭证的唯一性和安全性[11].但是,此类方案仍然存在因设备与区块链交互造成密钥凭证泄露的风险,并且区块链通过共识机制进行信息交易,即凭证存入的确认需要耗时完成一致性验证,例如比特币一般耗时10 min、以太坊耗时15 s,无法进行实时响应.因此,本文将结合区块头同步和简单支付验证的方法,提出一种通过Merkle根路径和根哈希进行区块链交易验证的设备认证方案,为基于区块链的设备接入安全和高效认证提供新思路.

2 基于交易验证的设备认证方法

传统物联网设备通过网关接入互联网,网关可提供设备入网所需的网络服务.本文提出如图1所示的网络架构,设备通过WiFiRS-485,RJ-45,ZigBee等接口连接至网关,由网关进行数据包处理,并连接至预设的物联网,完成数据交互和设备认证等相关操作.网关具备可编程能力、计算能力以及存储能力,可作为边缘设备.网关可通过区块链对终端设备进行认证,基于交易验证的设备认证方法主要分为以下3个步骤:区块头同步、区块头验证和设备认证.

图1 一般的物联网架构图

2.1 区块头同步

目前常用的区块链系统有以太坊、超级账本等,本文采用以太坊.以太坊主要具有3种区块同步机制,分别为Full mode,Fast mode,Light mode[12].

Full mode可以从节点同步完整的区块数据,保存数据较为完整,使得全节点可追溯所有历史数据,安全性最高;Fast mode因采用Geth中的默认方法,区块同步比Full mode快;Light mode适用于计算资源有限的边缘设备,其只同步区块头信息,并依赖以太坊子协议(light Ethereum subprotocol,LES)先对区块头子集进行同步,在有需要时才获取其他数据内容[13].

网关具备较弱的计算和存储能力,因此借鉴Light mode同步机制,只对区块头进行同步,降低随着交易增多、账本体积增大后网关的存储压力.

如图2所示,此模式下同步区块头依赖于如下3个步骤:

1) 寻找公共祖先区块.利用固定间隔法或二分法查找最新的公共祖先区块.

2) 获取骨架.在找到公共祖先区块后,同步1组一定间隔的区块头,形成区块头骨架.

3) 填充骨架.以一定间隔区块头为1组,随机选择可连接的全节点,并下载区块头填充骨架,形成完整区块头账本.如无法正确下载,则同步失败,丢弃步骤2)中同步骨架并重新开始.

图2 区块头同步步骤

该同步方式可避免从同一节点获取过多区块信息,预防区块链单节点的不安全行为.如若从恶意节点同步数据,则区块头中必然存在被区块链网络不认可的信息,造成网关安全隐患.网关中维护与全节点相同的账本区块头,与区块链网络可间接构成可信联系,确保网关接入安全.而区块头信息作为设备验证的依据,为端侧提供可信安全的验证服务.

2.2 区块头交易验证

交易验证是保证区块链入链数据安全可信的基础.区块头交易验证主要分为2部分:合法性校验和简单支付验证(simplified payment verification, SPV)[14].其中通过校验函数验证区块头[15]中定义的字段是否合法.区块头中字段数据信息如表1所示.简单支付验证主要通过SPV验证交易是否存在且被区块链共识确认.

表1 以太坊区块头信息表

1) 区块头合法性校验

合法性校验首先定义父区块P(BH),通过递归长度前缀编码RLP(recursive length prefix)函数将区块结构转换为字节序列,KEC表示Keccak-256哈希函数,D0是创世区块的难度值,等于131 072.ζ2(diffculty parameter)是Homestead的难度值参数,用于影响出块时间的动态平衡.ε是难度符号,会越来越快地使难度值上升.Hnext是不包含nonce和mixHash的新区块的区块头.d是当前难度下的DAG(DAG文件在每个epoch都会生成一个DAG,并且会不断增加,以提供工作量证明),PoW是工作量证明函数.

区块头的合法性校验主要有以下8条规则:

规则1.parentHash与父区块的区块头哈希一致.正式表述为

(1)

规则2.区块高度为父区块高度加1.正式表述为

HNUM≡P(H)HNUM+1.

(2)

规则3.difficuilty难度准确.正式表达为

HD=D(H).

(3)

规则4.gasLimit的差值在合适范围之内.正式表述为

(4)

(5)

HL≥5 000.

(6)

规则5.gasUsed应低于或等于gasLimit.正式表述为

HU≤HL.

(7)

规则6.timestamp时间戳需在上一区块之后.正式表述为

HT>P(H)HT.

(8)

规则7.mixHash和nonce需满足工作量证明机制.正式表述为

(9)

(n,m)=PoW(Hnext,HN,d).

(10)

规则8.extraData长度正确.正式表述为

(11)

若满足以上8条规则,则表示同步的区块头合法.

2) 简单支付验证

简单支付验证主要通过Merkle树验证某笔交易在账本中是否存在.如图3所示,Merkle树是由交易两两哈希构造的一棵哈希树.交易的验证生效需要满足2个条件:一是区块已经存在于某个区块并得到验证;二是在该区块高度之上又进行区块同步,并得到共识机制的验证,且高度在5个以上.简单支付验证的过程如下:

① 根据交易对象计算待验证交易的哈希;

② 获取最长链所有区块头并存储在本地;

③ 通过步骤①的交易哈希向全节点请求得到Merkle树哈希认证路径,如交易TxA的路径即为[Hash0-1,Hash1];

④ 根据上一步中的路径,计算Merkle根哈希值并与本地区块头中的Merkle根哈希值遍历比较,获取交易存在的区块;

⑤ 获取该区块高度,校验该区块是否存在于最长链中,且确认5次以上,无法篡改.

该验证方法可使网关无需同步完全的区块链账本,仅依靠凭证存储的交易哈希进行完全确认,减少空间存储和验证等待时间.

图3 Merkle根哈希构造图

2.3 基于交易验证的设备认证方法

基于上述区块头同步以及交易验证,本文提出通过网关构建基于交易验证的设备认证机制.设备认证主要分为注册和认证2部分.当网关接入网络后,网关便开始同步区块链账本区块头信息,并对区块头信息进行合法性校验.如图4所示,在注册阶段,设备提交注册信息至网关,信息中主要包含设备基本参数,如设备注册时间、设备编号等.网关进行区块链交易对象构造,并获取交易的哈希值下发至设备进行保存.同时,交易信息将提交至区块链进行注册.区块链接收到交易信息后,由节点共识机制进行挖矿,验证交易的合法性后记入账本.入账后,区块链返回网关交易回执,告知网关设备注册信息已成功入账.至此,设备注册完成.

图4 设备注册时序图

在认证阶段,设备提交认证请求,在请求中携带由网关下发的交易哈希值.如图5所示,网关对设备认证请求进行处理,使用简单支付验证对注册信息是否存在于区块链进行认证.首先,网关通过交易哈希值向区块链索取该交易所在区块的Merkle树路径,并通过两两哈希计算获取Merkle树根哈希值,然后与网关本地存储的区块头中的Merkle根哈希值进行一一比对,若存在,且最长链中已经被确认5次以上,则证明该设备已处于注册状态,并已被区块链多次确认,无法篡改,符合要求且认证成功,否则认证失败.

图5 设备认证时序图

图6 凭证更新时序图(忽略网络时延)

为保证注册交易哈希唯一性,设置时刻t1和t2,由网关进行管理.其中时刻t1网关更新注册信息,时刻t2设备更新凭证.如图6所示,因为以太坊出块时间为15 s,而简单支付验证需区块持续共识打包5块以上才可被确认为不可篡改,所以t2将比t1延迟75 s.当网关重新提交设备注册信息75 s后,网关将对设备认证进行更新,新哈希凭证开始生效.

3 实验与分析

本节将对基于区块链交易验证的设备认证方案进行性能对比分析实验.

在硬件方面,网关分别采用工控机以及树莓派进行对比实验,其中工控机处理器为Intel Core i3-4005,内存为4 GB,硬盘容量为64 GB,操作系统为ubuntu 18.04;树莓派采用Raspberry Pi 3B+,处理器为1.4 GHz ARM Cortex-A53,内存为1 GB,存储空间为8 GB的SSD卡,操作系统为Raspbian.

在软件方面,与区块链交互端使用Node.js编写,实现DApp功能,交易验证端使用Golang语言实现.为便于分析与统计,网关将日志打印到文件,对日志文件分析获取最终结果.

3.1 区块头同步性能分析

为验证本文提出的网关接入区块链网络,同步区块头确保网关可信的合理性与可行性,本文设计2种实验方案,并对比在不同性能的网关下,同步需要的时间消耗.

实验1.网关模拟Light mode模式,通过区块链接口和智能合约连接以太坊全节点,获取区块头进行账本同步.

实验2.网关部署以太坊节点,并设置Light mode模式,依赖LES协议请求全节点同步区块头.

图7 区块头同步方案对比图

实验结果如图7所示,实验1在计算能力相差较大的设备上都可运行,且时间消耗也在可接受范围内.且由于网络传输和延迟的原因,实验1的耗时比实验2高,但相较于庞大的区块数据同步,该时延差距可忽略不计.

实验2需运行区块链节点程序,大约需400 MB的存储空间,利用Light mode同步区块头信息.虽然多数物联网边缘设备可以满足该硬件需求,但是随着时间的增长,节点通过PoW进行共识会消耗较多的性能,且节点的各种功能无法关闭,影响整体性能.因此综合时间消耗、空间存储等方面考虑,方案1更优.

3.2 交易验证性能分析

为验证利用Merkle树路径进行设备认证的优势,并分析不同性能网关对验证效率的影响,分别设计如下实验进行分析.

实验3.随着交易次数增加,对比全节点和轻节点存储数据量大小,其中全节点存储完整的账本信息,轻节点只存储账本区块头信息.

实验4.在不同性能的网关上,对单位时间内可执行的简单支付验证次数进行实验,对比随着账本数据量增大可执行的最大验证运算次数.

实验结果如图8和图9所示.在图8中,全节点在交易次数增加时,消耗更多的存储空间,轻节点的存储优势更加明显.图9中,随着交易次数增多,每秒运算次数相应减小,但从实验中可以看出,在包含16笔交易的情况下,性能相对较弱的树莓派仍然可以进行每秒128次运算.由此可见树莓派性能完全可以支持轻节点区块同步.

图8 全节点与轻节点数据量对比图

图9 简单支付验证性能对比图

3.3 安全性分析

在该方案中,主要通过2方面维护设备认证安全,分别为网关安全以及设备认证安全.

1) 网关安全.网关通过模拟轻节点同步区块头信息,并进行合法性验证,间接维护区块链网络.实时更新的区块头保障网关接入的是当下可信区块链,为终端设备认证提供安全可信的网络环境.同时,确保物联网环境下网关作为可信设备,不可被替换和篡改.

2) 设备认证安全.设备通过构建的交易哈希和由网关获取的Merkle树路径进行认证.哈希通过网关生成,并下发设备存储.网关作为物理设备隔离云端网络和物理设备网络,哈希作为有效凭证无需上传至云端进行交互,避免凭证泄露.同时,设备注册与认证异步进行,间隔75 s为区块链确认凭证提供时间,无需对凭证存入区块链进行确认等待,保证凭证信息不可篡改.

网关安全以及设备认证安全相互作用,为物联网设备提供安全、可靠、高效的接入以及认证方法,降低凭证交互过程中的泄露风险,减少区块链确认交易的等待时间,保证凭证真实唯一,不可篡改.

4 结束语

设备作为物联网的重要组成部分,在安全接入方面面临严峻挑战[16].本文将区块链运用于物联网设备认证,区别于将凭证存储于区块链的传统应用方式,提出一种基于区块链交易验证的物联网设备认证方案.该方案通过同步账本区块头,将网关间接接入区块链,通过验证信息合法性,实现网关的安全可信接入.其次,将简单支付验证应用于设备注册和认证,减少因区块链共识验证机制无法确保凭证可信造成的弊端.同时,通过哈希的交易进行注册认证,降低设备与云端交互造成密钥泄露的风险.

此外,该方案将设备认证交给网关,将云端和终端物理环境进行隔离,设备无法直接访问云端服务,降低云端安全风险.基于区块链交易验证的设备认证方法为区块链应用于物联网设备安全领域提供新思路,但在跨域验证、网关间消息安全传递等方面仍可改进扩展.下一步将重点研究如何通过区块链及网关构建边缘设备认证以及探究如何对网关进行安全加固,实现云边端协同安全防护,增强物联网安全性.

猜你喜欢

哈希凭证网关
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
文件哈希值处理一条龙
2021年《理财》《财经审计法规选编》征订单
《中国农业会计》(月刊)收款凭证
《中国农业会计》(月刊)收款凭证
信号系统网关设备的优化
畅捷通T3凭证处理常见问题解析
巧用哈希数值传递文件
LTE Small Cell网关及虚拟网关技术研究