APP下载

一种基于区块链的物联网攻击防御方案

2023-02-05沈苏彬

计算机技术与发展 2023年1期
关键词:参与方身份区块

焦 洋,沈苏彬

(1.南京邮电大学 计算机学院,江苏 南京 210046;2.南京邮电大学 通信与网络技术国家工程研究中心,江苏 南京 210046)

0 引 言

物联网[1](Internet of Things,IoT)通过集成计算机通信网络与物联网领域的新型技术造就了一个万物互联的全新时代,它因其丰富的潜在应用场景成为了当下科技领域的主导课题之一。物联网技术被应用于工业、农业、安保等基础设施领域,有效地推动了这些领域的智能化发展,使得有限的资源可以更加合理地分配使用。预计到2023年全球将有500亿台物联网装置接入网络[2],如此海量的物联网装置,虽然极大地丰富了人们的生活,但同时也带来了巨大的安全隐患。物联网装置作为数据源的采集装置[3],其真实性关系到整个网络中数据的完整性,保证物联网装置合法接入网络,对于整个物联网的攻击防御有着重要的意义。

传统的物联网装置管理方案采用云中心的方式进行装置的身份信息管理和验证,可能带来单点故障等问题。另外,由于物联网装置本身的计算和存储能力有限,无法使用传统的攻击防御机制。区块链技术在比特币[4]白皮书中首次提出,随着比特币发展,其底层技术已经被应用于诸多领域。由于区块链去中心化、防篡改、可溯源的特点,使其在安全领域发挥极大的作用,有效地解决了信息领域存在的信任问题。

区块链为物联网装置身份信息的信任存储提供了一种全新的方式,借助于这种去中心化的数据管理方式,将物联网装置身份信息存储在区块链上,并通过链上身份信息对装置进行真实性验证,可以有效地防止假冒的物联网装置的非法接入,从而防御假冒的物联网装置对网络发起的虚假数据注入攻击。但将区块链技术应用于物联网装置身份标识的可信管理方案中也存在一定的技术问题,由于物联网装置的计算能力偏弱,而像比特币系统中的区块链技术对于节点设备的计算能力和存储能力有较高的要求,物联网装置无法直接采用现有的区块链应用方法进行标识的可信管理,可以考虑将物联网网关设备加入到物联网环境下的区块链应用方案设计中,物联网装置可以借助于网关设备的计算资源,将区块链应用中的部分工作交给网关设备完成,例如,节点之间达成共识的工作,以及交易信息的上链工作等。

1 相关工作分析

文献[5-7]分析了包括医疗器械、智能手表等设备可能受到的攻击,并对于具体的攻击可能造成的后果进行了分析。文献[8]比较系统地分析了物联网的安全问题,并从物理、信息、物理信息三个方面建立了一个三维的安全模型。针对物联网装置资源有限等因素造成的传统安全防护手段无法正常使用的问题,文献[9]试图在嵌入式系统中建立基于Kernel内核层的轻量级可信执行环境来保护系统的安全。文献[10-11]对于工业物联网以及物联网的安全防御现状进行了分析,并通过传输加密、身份验证等手段用于防御中间人攻击和恶意软件攻击等。

随着区块链技术研究的逐渐深入,越来越多的研究者将区块链技术引入到各个领域中,用于解决数据的信任管理问题[12]。文献[13]提出了一种通用的区块链应用方案,详细地阐述了区块链的技术特点,并基于区块链的技术特点分析了其可能存在的应用领域,最后提出了一种区块链应用的通用模型,该模型可以有效地指导区块链的应用设计和实现。针对物联网的安全防御薄弱的问题,将区块链技术引入到物联网中可以更好地解决物联网中数据的隐私问题以及数据的可信管理问题[14]。

麻省理工的Conner[15]在互联网应用中提出了基于区块链的身份验证系统,将用户的身份证书存储在区块链上进行可信管理。相对于互联网,物联网存在着更多互不信任节点之间达成信任的需求,引入区块链以解决物联网的数据可信问题已经成为了很多区块链研究者关注的研究方向。文献[16]提出了一种基于边缘计算和区块链的检测防御架构,利用边缘节点上的疑似分布式拒绝服务攻击(Distributed Denial Service,DDoS)异常检测方法进行DDoS检测并将检测的结果存储在区块链上用以共享分析检测结果,并以此防御利用物联网装置发起的分布式拒绝服务攻击。当前的IoT架构主要采用集中式模式,所有IoT装置几乎都依托中心服务器进行数据的存储和管理,一旦中心服务器的安全得不到保障,一些关键的数据就会存在被泄露的可能[17]。文献[18]提出了一种基于区块链技术的物联网架构作为去信任网络的基础平台,为物联网提供信息安全的网络服务。文献[19]针对现有物联网装置的身份验证所依赖的中心机构可能存在的单点故障问题,提出了一种基于区块链的物联网装置身份验证方法,并利用区块链技术对关键数据进行可信存储,避免了单点故障问题的发生。

2 问题分析

在第1节中,对相关工作进行了梳理和研究,物联网装置作为物联网数据的采集装置,其在设计之初主要是用来采集相关的数据,并没有考虑装置联网之后的安全问题,尤其是物联网装置的安全接入问题,这就导致物联网容易遭受到假冒的物联网装置攻击。恶意物联网装置将虚假数据注入到网络中,破坏了网络中数据的完整性,不仅浪费了网络资源,而且会对网络的安全性造成持续的威胁。

现有的研究工作中,基于中心服务器的身份验证方案旨在通过身份验证服务器为物联网装置提供身份信息的验证功能,对网络中的物联网装置身份信息进行管理和验证。虽然该方案可以保证接入网络的装置的真实性,但是也会带来单点故障和身份信息的信任管理问题。利用区块链的去中心化、匿名信任管理等技术特点,无需将装置身份信息传送到中心服务器进行身份信息的验证。基于去中心化的身份真实性验证方案主要存在两个问题,其一,物联网装置身份标识大多采用装置的MAC地址,这类身份标识方法没有将网络实体标识与该装置实体特征进行绑定,且装置的MAC地址可以通过相关软件接口重新设置,导致该类标识没有验证装置实体真实性的能力。其二,对于物联网装置的接入只是被动验证,并没有对恶意物联网装置的非法接入进行主动拉黑操作。

针对上述研究中存在的问题,对物联网装置身份信息进行相关研究及设计,采用装置生产厂商提供的装置本身的硬件标识及装置公钥作为其主要身份信息,利用区块链技术的去中心化、交易可信、防止篡改等特点,提出一种基于区块链技术的攻击防御方案。将区块链融入到去中心化的物联网装置的身份信息的可信管理方案中,通过区块链中的交易将装置的身份信息进行链上存储,并采用区块链上的装置身份信息对联网装置的身份信息进行真实性验证,当装置真实性验证失败后,假冒的物联网装置身份信息被记录在区块链上,防止假冒装置非法接入网络。

3 研究内容

在本节中,根据第2节的问题分析进行了相关技术研究,主要包括采用区块链技术防御攻击类型的研究、防御方案中区块链应用参与方设定的研究、装置身份信息的研究。

基于区块链技术的安全防护手段可以防止物联网装置身份被假冒而发起的攻击。物联网的安全问题一直是一个值得探讨的技术问题,物联网装置低防护能力是由于两个方面导致的,一是有限的计算、存储资源,二是物联网装置的设计之初是为了感知环境的数据,并没有考虑到其安全性设计,因此物联网装置的安全防御性较为薄弱。物联网装置在接入网络时没有任何的身份验证,可能存在假冒物联网装置非法接入到网络中,攻击者进而利用恶意的物联网装置向网络中注入虚假数据、篡改数据、中间人攻击,这些攻击均会妨碍网络的基本安全要求,从而导致发生在物联网中的攻击事件比互联网数量多。区块链技术可以对网络中的数据以去中心化的方式进行可信管理,区块链的技术特点为实现在去中心化模式下的物联网装置的安全防护提供了技术基础。

装置身份信息可以唯一代表装置实体本身。在传统的身份信息验证方案中,中心服务器负责该区域中的所有装置的身份信息管理工作。装置若要验证某一身份信息的真实性,需要向身份信息服务器发起身份验证请求,服务器根据请求响应验证的结果给请求装置。这种身份信息的管理方式的可靠性完全取决于中心服务器的可靠性,一旦出现服务器故障问题或者服务器被攻击,就会给装置之间的通信安全带来巨大的威胁。身份信息的管理及验证工作能否以去中心化的方式完成。区块链的技术特点完全可以实现装置身份信息的去中心化可信管理,在智能合约中编写参与方身份信息的结构体定义和身份信息注册、验证逻辑,参与方可以根据共识协议规则选举出合法的记账节点,并由记账节点负责身份信息的上链操作,区块链上的身份信息能够唯一标识一个装置实体。

参与方的设定取决于攻击防御的应用需求。物联网装置资源受限、安全功能较弱,并且物联网装置之间的通信是通过网关实现的,而网络通信系统中的网关在计算资源和存储资源方面较强于物联网装置。让网关设备承担较多的区块链应用工作,比如交易信息的验证及上链工作,维护着完整的区块链账本,而装置仅仅维护着和自己身份信息相关的链上信息。因此,参与方的设计可以将资源相对有限的采集器和执行器装置作为区块链网络的轻节点,物联网装置可以通过向网关节点发送查询请求,以获取通信装置的身份信息,从而有效地避免恶意节点的非法接入,使得网络能够防御恶意装置的虚假数据注入攻击。

4 基于区块链的物联网攻击防御方案设计

在本节中,根据第3节的研究内容完成了方案参与方的设计、区块链的数据结构设计、方案功能的设计等。

4.1 方案总体设计

基于区块链的攻击防御方案的总体架构设计如图1所示。该方案基于现有的区块链开发平台进行设计,采用的两条私有区块链分别为装置身份信息链和黑名单链,装置身份信息的注册交易和拉黑交易在上链之前都需要经过交易的真实性验证,验证成功后分别上链到对应的身份信息链和黑名单链上。在本攻击防御方案中,主要设计了两个功能模块,分别为装置注册功能和装置身份信息验证功能,确保了网络中物联网装置的真实性与合法性,防止恶意的物联网装置接入到网络,提高了物联网的安全性。装置通过注册功能将身份信息存储上链,已上链的装置身份信息可以被参与方查询用于身份信息验证,没有通过身份验证的装置会被拉黑操作记录在黑名单链上。

图1 方案总体架构

4.2 参与方的设定

任何区块链应用中的参与方设定都取决于具体应用的需求。在本方案中,考虑由于大部分的物联网装置资源受限、功能较弱,且物联网装置之间的通信是通过网关实现的,因此该方案中借助于网关进行攻击防御。将物联网装置和网络中的网关作为P2P网络的参与实体;网关对于装置之间的通信起着重要的作用,在该防御方案中引入网关作为P2P网络的应用实体。资源相对有限的物联网装置作为P2P网络的轻节点,仅负责传输数据,不参与网络节点之间的共识。网关作为全节点参与P2P网络节点的共识达成工作,并且提供产生区块、验证区块的功能。

4.3 装置身份信息的数据结构设计

方案中装置身份信息使用键值对类型的数据结构类型保存装置每一项的身份信息。为了保证装置身份信息能够表示唯一的装置实体和合法的P2P网络节点,在身份信息中增加Identity字段和Public Key字段用来确保身份信息的唯一性和合法性,其中Identity为物联网装置本身的标识,使用装置内部的识别码作为身份信息中的Identity值,装置内部的识别码由生产装置的厂商提供,可以用来标识唯一的一个装置;Public Key作为区块链网节点的身份信息,可以表示装置为P2P网络中的合法节点。为了保证装置的身份信息可以被全网节点查询且不可被篡改,将身份信息上链并存储在P2P网络中的公共账本,P2P网络中的节点可以查询装置的身份信息并且不可篡改账本中的身份信息。物联网装置的身份信息有四个特征:装置的身份信息是全网唯一的;身份信息可以表示装置实体本身;身份信息可以被全网的装置查询;身份信息的存储不可被篡改。

4.4 区块链的数据结构设计

方案中区块数据结构的设计借鉴了比特币应用的区块设计,但是考虑到POW共识中的nonce的计算会浪费较大的计算资源,于是在区块结构中舍弃了随机数nonce字段。其中本方案的“可信操作[13]”是装置身份信息的上链存储。在区块链的数据结构设计中,每一个区块可以分为区块头和区块体。其中区块头中包括前一区块的哈希值数据,用于链接到前一区块,时间戳用于记录区块上链的时间,区块体中Merkle树的根节点。区块体中存储着已通过验证的交易数据,具体是以Merkle树的形式进行存储的,最终的Merkle树根值存储在区块头中,区块链数据结构如图2所示。

4.5 方案的功能设计

4.5.1 装置身份信息注册功能

装置注册功能为网络中的物联网装置提供身份信息的注册上链功能,能够使装置在去中心化的环境下完成身份信息的安全注册。在注册功能模块中,根据参与方是否已完成身份信息注册及其在P2P网络中角色的不同,将申请身份信息注册的装置称为申请节点(Application Node,AN),将已完成身份信息注册的全节点(网关实体)称为P2P网络中的原始节点(Original Node,ON)。身份信息注册交易流程主要包括申请节点发送注册请求过程和原始节点验证注册请求的过程。申请节点发起注册交易请求,原始节点收到注册交易请求后,验证注册交易的真实性并将经过验证的注册交易信息作为申请节点的身份信息上链记录。

图2 区块链数据结构

(1)申请节点发布注册交易请求。

在加入P2P网络后,申请节点主动发起注册请求,将其身份信息安全记录上链,同时将区块链上的其他装置的身份信息同步到本地,以便装置的身份信息验证功能查验。注册交易中包含了装置的身份信息和产生交易的相关信息,申请节点将交易信息以广播的形式发送给网络中的原始节点验证,申请节点发布注册交易请求的时序过程如图3所示。

图3 注册交易请求时序

第一步,申请节点AN通过密码学算法计算得出自身的私钥SKA和公钥PKA,将公钥作为身份信息之一放在交易中,并将私钥保存在本地用于数据的加密通信;

第二步,申请节点AN通过密钥模块生成交易的数字签名和交易Hash存放在交易中,用于验证交易的真实性和完整性;

第三步,申请节点向P2P网络发送注册交易请求,注册交易信息Info中包含申请节点的身份信息。

(2)原始节点验证注册交易请求。

原始节点通过区块链中的非对称加密技术和哈希算法对交易进行真实性的验证。P2P网络中的全节点在收到注册交易请求信息后,会对申请节点发起的注册交易进行真实性验证,交易的真实性验证完成后,注册节点的身份信息将会被上链存储到区块链公共账本中。原始节点验证注册交易请求的时序如图4所示。

图4 注册交易验证时序

首先,原始节点收到申请节点发送的注册交易请求后,根据共识协议在原始节点中选出记账节点;其次,由记账节点负责进行身份信息的上链,记账节点通过密钥模块对收到的注册交易进行验证,验证通过后将装置的身份信息进行上链存储;最后,记账节点将交易验证通过的结果通过广播的方式告知网络中的其他原始节点和申请节点。

原始节点收到的消息M是由申请节点A用其私钥SKA将注册交易信息Info签名所得到的,如公式(1)所示。记账节点B接收到消息M后,使用A节点的公钥PKA对M进行解密操作,如公式(2)所示,若能解密成功得到交易信息Info,则验证了交易信息Info的真实性。

M=signSKA(Info)

(1)

Info=DecryptPKA(M)

(2)

验证交易信息的时效性。交易信息Info中包含了交易发布的时间戳记为T1,T1表示为申请节点发起注册交易申请的时间,原始节点解密出Info后,获取当前的系统时间记为T2,判断T2-T1

验证交易信息的完整性。区块链中的哈希算法可用于验证交易的完整性,交易信息Info中包含了交易的完整哈希值,验证节点也可通过哈希算法计算出其收到的交易Info的哈希值,比较Info信息中的哈希值是否等于通过计算所得到的哈希值。若相等,则验证了交易信息的完整性;若不相等,则表明交易信息完整性验证失败。

(3)交易验证过程的正确性逻辑证明。

区块链应用中交易的验证是通过非对称加密技术完成的,其验证逻辑的正确性值得推敲。谓词逻辑是一种重要的知识的形式化表示方法,可以用来证明定理、结论的正确性。谓词逻辑推理可以保证其演绎推理结果的正确性,可以较为准确地表示推理结论。

谓词逻辑的推理理论中主要包括以下基本规则,前提引入规则(Prerequisite Introduction Rule)又称P规则,直接利用推理中给出的前提。推理规则又称T规则,由一个或多个前提通过等价、蕴含等得到其他命题公式。存在量词指定规则(Exstential Specify Rule)又称ES规则,其含义为如果个体域存在有性质A的个体,则个体域中必有某个个体具有性质A。全称量词指定规则(Universal Specify Rule)又称US规则,其含义为如果个体域的所有个体都具有性质A,则个体域中的任一个体都具有性质A。

谓词逻辑证明中的符号定义如下:K(x,y)表示x,y分别为一对对应的公钥和私钥;S(y,m)表示使用私钥y对信息m签名;V(x,m)表示使用公钥x对信息m进行验证;Q(x)表示信息验证成功;I(x)表示发送信息的节点身份确认。已知前提如下:∃x∃y(K(x,y)⟺V(x,S(y,m)))为私钥签名的信息只有公钥能够验证;∀mT(m)为信息m在网络中无差错传输;∀x(Q(x)⟹I(x))为信息验证成功则节点身份确认。

证明过程如下:

(1) ∃x∃y(K(x,y)⟺V(x,S(y,m))) P原则

(2)K(p,s)⟺V(p,S(s,m)) ES原则(1)

(3)V(p,S(s,m)) P原则

(4)K(p,s) T原则(2)(3)

(5) ∀x(Q(x)⟹I(x)) P原则

(6)Q(n)⟹I(n) US原则(5)

(7) ∀mT(m) P原则

(8)Q(n) P原则

(9)I(n) T原则(6)(7)(8)

(10)K(p,s)∧Q(n) T原则(4)(8)

通过上述谓词逻辑的推理得出,在已知前提的条件下可以推导出以下结论:交易的发布者拥有该交易数字签名所对应的公钥且身份确定,交易验证过程是正确的。

4.5.2 装置身份信息验证功能

为了验证通信装置的真实性,方案中设计了装置身份信息的验证功能。身份信息验证功能可以保证网络装置之间的安全通信,避免恶意装置接入到网络中,可以防御恶意装置对网络发起的虚假数据注入等类型的攻击。物联网装置完成了身份信息注册后,该装置的身份信息就会存储在P2P网络中的区块链中,网络中的任一装置均可通过链上的身份信息对发起通信请求的装置进行身份的真实性验证。

当节点B在接收到A节点发来的消息M后,对节点A进行身份验证操作,根据消息M中所包含的节点A的公钥及装置标识对装置身份信息进行验证,身份信息的验证流程如图5所示。

图5 装置身份信息验证流程

首先,在黑名单链中查找装置A的标识IDA,若找到,则验证失败,直接结束;否则在本地的身份信息链上查找IDA,如果找到装置A的身份信息IDA,则通过对装置A的身份验证。若在本地没找到,则在全节点中查找,若在全节点中查找到IDA,则通过对装置A的身份验证;若在全节点中仍然没有查找到,则表示装置A没有在区块链系统中注册,拒绝装置A的通信请求,并调用身份信息加入黑名单操作将A装置身份信息加入到黑名单链上。

5 仿真实现与测试

在本节中对方案进行了仿真实现与测试。在Ubantu系统中搭建了以太坊平台及Truffle开发框架,并安装了Truffle框架的开发套件Ganache图形化工具,用于在本地创建私有的测试区块链。采用Remix在线编辑器编写智能合约,智能合约成功编译和部署后,通过Truffle框架启动整个实验项目,在浏览器前端页面中进行相关的测试工作。

5.1 仿真实验方案的设计

方案仿真实验的设计基于以太坊平台,主要工作包括搭建实验环境和编写智能合约等,通过参与方发布的智能合约进行相关功能调用。智能合约中规定了装置身份信息注册和身份信息验证的执行逻辑,并且为已定义的参与方与区块链进行交互提供了功能调用接口。参与方在区块链上部署智能合约,部署完成的智能合约代码会作为一个合约账户存储在区块链的特定地址,并且参与方的合法账户能够通过智能合约账户开放的接口调用智能合约,在各个节点验证交易签名后,按照交易的类型执行智能合约,对参与方的身份和交易进行验证,并根据验证的结果对链上身份信息进行维护。

5.2 方案实现及测试

为了验证所提出的基于区块链的攻击防御方案的可行性,需要对方案进行相关功能的测试。测试实验需要证明合法的参与方可以根据其需求通过接口输入自身的身份信息、验证装置的身份信息的功能。并且还要在装置注册时,能够以去中心化的方式进行身份信息的发布和验证,同时可以在无第三方监管的情况下实现身份信息的验证,从而完成对于身份信息的可信管理。方案设计的业务逻辑主要通过编写智能合约代码实现,首先在智能合约中分别定义了Device和Gateway两类结构体,所定义的两类结构体分别表示不同的参与方。同时,为了实现设计的注册功能和身份验证功能,智能合约中也分别提供了register和verify两个功能函数供参与方调用。

在智能合约部署到区块链上时,以太坊客户端首先会调用合约编译器对合约进行编译,将合约源码编译成EVM字节码,然后通过RPC接口将编译之后的字节码文件发送到以太坊网络,网络中的参与节点对合约部署交易进行验证,验证通过后合约字节码会被写入到区块链账本中。当智能合约部署部署完成后,可以在终端中查看部署完成的提示,如图6所示。

图6 合约部署完成

5.2.1 装置身份信息注册功能测试

注册功能为网络中的装置提供身份信息的注册,智能合约中的身份信息注册函数为该功能的核心实现方法。合法的参与方在对应的装置序列号输入框中输入装置的产品序列号,并在装置类型号中输入对应的类型号用以区分不同的参与方。点击注册按钮,浏览器会弹出注册交易的确认框,点击确定后,记账节点完成交易的验证后,会将验证通过的结果广播给网络中的合法节点,交易中的身份信息成功上链。注册详情显示出交易的详细信息,装置身份信息注册成功,成功上链的结果如图7所示。而当身份信息非法上链时,页面中将会出现注册失败的提示信息。

图7 装置身份信息注册测试

5.2.2 装置身份信息验证功能测试

装置身份信息的验证功能旨在防止恶意装置与合法装置进行通信,同时能够将恶意的物联网装置加入到黑名单中,起到将合法装置与恶意装置隔离的作用。身份信息验证功能主要是通过身份信息查询函数实现的。在测试时,查询交易信息输入框中输入待查询的交易Hash值,点击查询按钮,便能查询出交易所在的区块等相关信息,此时表示该装置通过了身份验证且为合法装置,测试结果如图8所示。若装置的身份信息没有在区块链上查询到,页面中将出现身份验证失败提示信息。

图8 装置身份信息查询验证测试

仿真实验验证了该攻击防御方案的可行性,可以将装置的身份信息存储在区块链上,对装置的身份信息进行可信的存储,保证了装置身份信息的唯一性和合法性。对于恶意物联网装置的攻击能够起到一定的防御作用。

6 结束语

针对物联网可能遭受恶意物联网装置攻击的安全问题,以及现有的中心服务器防御方案可能存在的单节点故障和信任问题,提出了一种基于区块链的去中心化攻击防御方案。并对方案中区块数据结构、区块链结构进行了设计,详细地阐明了装置注册交易的功能及交易的验证过程,并通过查验装置身份信息功能将恶意物联网装置加入黑名单中,确保了网络中所有装置的合法性,可以有效防御恶意装置发起的攻击。并且在以太坊平台上搭建了私有链进行了仿真实验,最终验证了所提防御方案的可行性。在未来的研究计划中,将进一步对可以应用与物联网领域的共识算法进行深入研究,选择一种适用于物联网领域的高效共识算法,以优化该文所设计的攻击防御方案。

猜你喜欢

参与方身份区块
基于秘密分享的高效隐私保护四方机器学习方案
区块链:一个改变未来的幽灵
区块链:主要角色和衍生应用
区块链+媒体业的N种可能
读懂区块链
跟踪导练(三)(5)
身份案(下)
绿色农房建设伙伴关系模式初探
涉及多参与方的系统及方法权利要求的撰写
基于IPD模式的项目参与方利益分配研究