基于联盟链的物联网设备身份认证方法
2023-01-08宋晴晴杨冬蕾
宋晴晴,徐 辉,杨冬蕾,佟 宁
(大连交通大学软件学院,辽宁 大连 116028)
0 引言
物联网作为21 世纪的新兴战略,是互联网的技术延伸,也是互联网之后一场更大的技术革命。物联网的一个关键应用场景在于结合工业场景,这二者的结合也被称为工业4.0[1]。然而,随着物联网互通互联程度的进一步加深,其虽然给生产和制造业带来了更多机会,但也为各种类型的网络攻击创造了环境。因此,有必要对物联网设备层所采集的特殊数据进行身份认证,以高效、安全地维护物联网安全。机构和组织联合会在分布式数据库中集体记录其物联网身份和运营信息,同时将这些信息提供给联合会所有成员是一种保障物联网安全的有效手段。本文设计了由联盟链主体、低层设备节点及高层设备节点组成的联盟链。低层设备节点为物联网设备节点,高层设备节点为机构或组织所代表的节点。联盟链对这些节点信息进行去中心化存储,并对身份认证结果进行存储,每个组织利用智能合约认证物联网节点的身份标识和物联网设备的使用功能。联盟链有义务管理物联网节点信息,物联网节点向多个组织申请加入联盟链,以完成初始化。物联网节点必须在联盟链中完成物联网设备注册,上传节点信息,并在再次申请加入网络时向联盟链提交身份信息。第二次加入网络时,需要向构建好的联盟链提交主要认证信息,高层节点需要接受该请求,之后创建钱包。低层设备节点同时将需认证设备与已认证设备节点进行关联,以方便后续操作。
1 研究背景
随着物联网技术的发展,从零散的设备接入到万物互联,实现了对社会沟通范围、模式、渠道和效率的全方位改变。然而,物联网在给人们工作、生活带来便利的同时,也引发了一系列新的技术和社会问题[2]。无处不在的连接将导致严重的安全隐患,因此物联网设备的身份认证极其重要[3]。近年来,身份认证技术解决了物联网的部分安全问题,为保障物联网安全提供了一个有效思路。基于生物识别技术的身份认证策略相比传统的身份鉴别技术具有安全性高、存在唯一性特征等优点,但该方法无法进行M2M 身份验证,不适用于普遍的工业环境;Li等[4-5]提出一种将生物信息与密码相结合的双因素识别方法;Deebak等[6]提出将智能卡与生物信息结合进行认证,但该方法需要某些特殊硬件来达到识别认证目的;Beltran 等[7]提出一种基于令牌的联合身份认证方法,以解决在物联网某些场景中低功耗设备的能量限制问题。
以上研究成果均基于传统的身份认证方法,其所具备的中心化结构很难满足如今的物联网体系。而区块链作为一个去中心化技术,其具有的不可篡改、可追溯、公开透明等特性可作为网络安全的一个保障。Bartolomeu 等[8]提出基于物联网的自我主权身份(SSI)技术,该技术以区块链技术为基础提供去中心化身份标识符(DID),以此构建一个无需集中信任的模型;Yu 等[9]提出一种基于区块链的智能工业应用选择性撤销匿名身份验证方法,以解决智能工业环境中的凭证撤销问题;Shen 等[10]提出一种区块链辅助安全设备认证机制BASA,以解决不同域之间设备的认证问题;Zhang 等[11]构建一个大规模异构WSNs 协作身份验证协议,以确保物联网环境中数据来源的可靠性;Wang 等[12]设计一个协作验证协议,包括一个内存效率高且快速的验证人定位器、一个评估设备可信度的信任模型,以及一个用于动态更新和撤销验证的协议套件,以高效地验证物联网设备。
以上方法虽然在某种程度上解决了物联网终端设备的可信性问题,但是基于集中式的身份认证方法存在若服务端遭受攻击将导致整个系统无法使用的问题,基于区块链的身份认证方法存在适用范围受限的问题。由于联盟链大多基于多个组织或机构集体背书产生的信用,因此可很大程度上提高传统区块链的效率与成本优势。因此,本文提出基于联盟链的物联网设备身份认证方法,很好地解决了多个节点之间相互不信任的问题,对推进物联网技术的大范围安全应用具有重要意义。
2 相关技术概述
2.1 联盟链
联盟链是几个私有链的集合,是由几个机构控制的区块链,每个组织或机构控制一个或多个节点[13]。其数据只允许系统中的不同机构读取、写入或传输。通常情况下,联盟链中的每个节点都有一个相应的实体组织,允许其加入和离开网络。各个机构组织形成一个利益相关者联盟,以维护区块链安全。
2.2 物联网
物联网(IoT)是目前的研究热点,广泛应用于网络产品、系统和传感器中,但全球对于物联网尚没有统一标准[14-15]。目前物联网的整体系统架构主要分为6 层:数据层、网络层、共识层、激励层、合约层和应用层。
2.3 智能合约
智能合约可被视为区块链技术的一大进步。在20 世纪90 年代,智能合约作为一种计算机化的交易协议被提出,其是一种执行协议的合同条款[16]。智能合约中嵌入的合同条款将在满足特定条件时自动执行。智能合约是在区块链上执行的,经批准的合同条款被转换成可执行的计算机程序,合同条款之间的逻辑联系也以程序中逻辑流的形式被保留。每个合同语句的执行都被记录为存储在区块链中的不可变交易。而且,开发人员可为合同中的每个功能分配访问权限,一旦智能合约中的任何条件得到满足,被触发的语句将以可预测的方式自动执行相应功能。
3 分布式身份认证设计与实现
3.1 研究问题分析
本文研究目的是在实现物联网设备身份认证的同时,将认证结果存储在联盟链中。在需要使用物联网设备时,设备的所有者可将用户信息,例如用户名和密码存储在服务器中。该服务器一般由中心化机构统一代理,一旦当用户或设备需要登录时,可使用该用户已存储的信息通过中心化服务器进行对比。如果对比成功,则允许该用户设备登录。本文研究一个基于联盟链或产业链网络的分布式服务器物联网认证系统,该系统中不同物联网设备之间或物联网设备与联盟链组织之间进行一对一通信。同时,这些物联网节点的信息是通过使用公共密钥的非对称加密算法来识别的,因为在具体通信过程中,物联网设备的身份信息及区块链节点信息验证的安全过程需要得到保护。
3.2 总体设计
通过区块链的去中心化特性,将物联网设备的身份认证信息进行去中心化存储,以此降低认证过程的不安全因素。物联网身份认证信息分布式存储系统整体架构如图1所示。物联网节点的第一个请求被发送到联盟链,联盟链处理发送来的信息,共识根据算法生成一个新区块。联盟链利用信息处理模块对物联网节点信息进行处理,同时将处理结果发送给对外接口层。如果该设备第一次没有请求认证,联盟链则会由现有数据,主要包括本地存储或之前维护的数据对此节点进行验证。
Fig.1 Systematic entirety structure图1 系统整体架构
3.3 物联网设备注册
联盟链中最主要的节点就是低层设备,也即物联网设备,因为物联网设备所提供的信息是构成此网络的核心要素。物联网设备通过各种通信协议,如WiFi、4G、Lorea 和NB-ITT 等与联盟链交换与传输信息。在初始化设备时,首先需要启动注册请求,通过调用机构提供的API 将设备添加到联盟链网络中。一旦设备注册完成,联盟链会为该设备创建一个钱包,钱包的私钥将被存储在设备上。设备注册联盟链流程如下:①初始化设备,之后物联网设备向联盟链发起注册请求;②联盟链通过使用设备请求注册的信息,借此得到物联网设备ID 等唯一标识信息;③联盟链调用安全控制功能向机构发出注册申请;④如果注册成功,机构或组织获取设备信息来获取相应权限;⑤注册成功后,联盟链会为该节点创建一个钱包,之后将私钥发送给节点。具体流程如图2所示。
3.4 联盟链验证物联网设备过程
物联网设备身份认证功能的认证过程主要由4 个步骤构成:首先通过SHA 256 算法将公钥转化为自有特殊ID;当ID 生成后,物理设备发出加入联盟链的请求;接下来需要在当前区块中存储该节点身份ID 的公钥,同时将信息存储在当前区块链网络中;最后利用智能合约技术设置低层节点的具体操作过程与操作权限。然后,此设备的用户可通过区块链交易的形式远程操作设备、查询设备信息,或将物联网设备加入网络等。
Fig.2 Device registration federated chain process图2 设备注册联盟链流程
在安全性方面,为提高整个区块链网络的安全性,该系统会对物联网设备的操作预先进行检查。为防止恶意或危险节点发送错误请求,联盟链在执行智能合约之后确定设备所能够拥有的功能。联盟链验证设备过程如图3所示。
Fig.3 Federated chain verification equipment process图3 联盟链验证设备过程
智能合约执行过程如下:
4 实验与分析
4.1 实验步骤设计
在本研究中,数据层的交互信息是测试标准。当信息从互联网设备上传时,在物联网设备中创建一个钱包,因为区块链记录的运行直接影响到设备响应时间。如果设备不及时向区块发送和确认信息,就不可能正确调查设备数据或用户操作设备时的意图。因此,在这项研究中需要作进一步功能测试。
在此项研究中,区块链在每次产生操作信息时,以及要产生新区块即主区块时,都会在区块中记录这些操作信息。假设节点生成了区块,每个区块都被认为是等价的。为该流程构建具体测试程序,首先在模拟构建的系统中,在所模拟的终端第一次请求加入网络的过程中,根据系统整体设计,在拥有该设备的机构确认之后,才可以成功加入。一旦组织或机构确定加入,联盟链则需要为该终端设备创建钱包,同时检验钱包是否生成,还需要检查设备信息上传过程是否成功。信息上传完成后,该设备则需要每间隔2min 向联盟链网络发送身份验证请求。该节点设备还需在联盟链网络中测试区块是否成功生成以及其他具体信息。然后查看所模拟的终端设备,通过人为手段更改此设备信息后,再次每间隔2min 向联盟链发送身份认证请求,并查看身份认证是否通过。
为该方案设计一个测试场景,检查物联网设备是否能在不同实验环境下实现对设备的具体操作。所选4 台设备的基本配置信息分别为:1 台CPU 为英特尔i7、GPU 为英伟达MX50、RAM 为8G 的电脑;2 台CPU 为因特尔i5、GPU分别为英特尔Graphics620 与英伟达MX150、RAM 均为4GB 的电脑;1 台CPU 为英特尔八代i5,GPU 为英特尔UHD Graphics620、RAM 为4GB 的电脑。分别从不同设备生成钱包所需时间、区块生成时间以及整体身份认证所花费时间来实验本方法的可靠性。同时,为使设备节点能够在大规模物联网场景下有效地进行身份认证,将上述4 台设备对应模拟成4 个组织机构,其上安装Linux 系统,并配置Java PairingBased Cryptography 相关环境。使用MATLAB R2020a 模拟此次方案,并使用Hyperledger Fabric 创建大规模交易,模拟海量请求下的使用场景。
4.2 实验结果分析
根据钱包创建实验结果分析,联盟链设备创建钱包的过程与物联网设备创建过程十分相似,都是使用密码学相关技术为用户创建钱包,同时将私钥存放在节点中,通过创建的公钥对联盟链组织或机构进行广播。通过实验,不同机构或组织生成钱包的速度如图4所示。
Fig.4 Speed of wallets generated by different devices图4 不同设备生成钱包的速度
由图4 可知,生成钱包的数量不受设备因素影响,但随着物联网节点数量的增加,钱包生成的速度会略有提高。当一个节点需要生成一个新钱包时,会有一个新区块来存储具体交易信息。钱包生成速度会随着节点的增加缓慢提高,这是因为存储交易信息区块的增长。
上述实验数据表明,基于联盟链的物联网节点身份认证方案会伴随着新区块的产生,同时区块中还可存储具体信息操作过程。根据区块生成实验结果分析,本文还研究了创建区块所需时间,并比较了在4 个不同物理平台上更快地创建新字段所需时间。4 台设备生成区块所需时间如图5所示。
Fig.5 Time required for four devices to generate blocks图5 4台设备生成区块所需时间
从以上实验结果可以看到,4 台物联网设备节点的生成时间都在一个适当、合理的范围内,并且随着物联网设备节点生成变多,其增长速度会变慢。这是由于当区块数量相对较多时,拜占庭算法的速度较慢,因为网络通信很重要,节点必须协调生成新区块。
本文的研究重点在于物联网设备的身份认证。当物联网节点将钱包创建完成后,这些设备需要加入联盟链网路,在此过程中需要设备身份验证以保证物联网安全。实验主要测试这些物联网设备能否成功加入联盟链,身份认证结果分析如图6所示。
Fig.6 Analysis of identity authentication results图6 身份认证结果分析
根据实验结果,可看到认证成功和不成功的所需时间有所差异。时间上的差异在于认证后的操作,如果认证成功,组织会对每个设备进行访问控制,如果认证失败则不会进行。
5 总结与展望
本文在区块链基础上构建一个基于联盟链的物联网身份认证方案,实现去中心化的身份认证系统以及区块与区块之间的点对点通信。每个区块除包含区块头的信息外,还包含关于物联网身份认证的交易输入和交易输出。一旦记录在区块中,则这些数据不可逆。当区块链系统建成后,通过对此平台的分析及测试,使得此平台更加符合物联网特定场景,从而促进物联网和区块链技术的发展,这对于物联网与区块链在安全方面的技术融合具有重大意义。
使用区块链技术来认证物联网设备,实现物联网设备的安全认证,对于保障物联网安全具有重要意义。但是,从整个物联网安全身份认证体系来看,还有很大的发展空间,很多问题需要作进一步研究。首先,物联网设备节点本身,即使是轻量级节点,其处理速度和存储空间也是有限的,随着物联网的发展,区块创建数量的增加给设备存储带来了挑战。此外,设备在联盟链中上传与广播交易信息的频繁操作对设备的存储容量和计算能力提出了较高要求,难以满足大规模物联网场景下的需求,因此后续将在现有工作基础上,围绕大规模应用展开研究。其次,在区块链共识算法下,随着物联网设备中节点数量的增加,系统的吞吐量会成倍增加,无疑对网络性能提出了更高要求。同时,在区块之间不选择主节点,而是任何人都可以成为主节点来生成区块,导致了区块生成过程中联盟链的性能浪费。最后,本文主要关注区块链数据层的安全,缺乏从网络层到应用层的物联网完整认证系统。