Blockchain in Internet of Things:Challenges and Solutions

警告
本文最后更新于 2019-01-09,文中内容可能已过时。

Author:Ali Dorri, Salil S. Kanhere, and Raja Jurdak

arXiv预印(非正式发表)

2016.08

Abstract

物联网产业在快速发展,但安全和隐私的问题始终没有解决。由于物联网分布式的拓扑结构和资源有限的设备,传统的安全和隐私方法不适用于物联网。区块链能用于保证和物联网具有相同拓扑的P2P网络的安全与隐私,因此应也能用于物联网,然后,BC是计算密集型的,需要较高带宽且延迟较高,并不适合物联网。本文提出一种基于BC技术的安全、私有和轻量级的架构,去除了BC的缺点,同时保留了其安全和隐私特性,使其适用于物联网。利用智能家居场景为例做了描述,整个架构分为智能家居层、覆盖网络层、云存储层三层。在各层使用了不同类型的BC,并对常见的安全威胁做了定性分析,证明了其保证物联网安全与隐私的有效性。

I. Introduction

物联网设备收集的信息一方面为我们提供了实用的个性化的服务,一方面也被算法分析从而揭示了我们的行为和生活方式,一定意义上泄露了隐私。另外,不成熟情况下出厂使用的第一代物联网设备安全和隐私风险更加严重。现有的一些方案存在各种问题,比如提升了安全性但隐私风险增加等等。

本文致力于用BC技术解决区块链的安全和隐私问题。是因为BC技术具有以下特性:

  • 去中心化:通过使用所有已参与节点的资源并消除多对一的流量,去除中心化的控制,提高了架构可扩展性和鲁棒性,减少延迟并克服了单点故障问题
  • 匿名:区块链中参与者固有的匿名特性适用于物联网
  • 安全:BC能达成没有信任基础的各方之间的信任,这在异构设备普遍的物联网中很适用

然而,BC技术并不能直接用于物联网,还需要解决一些问题:

  • 挖矿是计算密集型的行为,而多数物联网设备资源有限
  • 挖矿耗费时间,而物联网要求低延迟
  • 随着节点数量的增加,BC的可扩展性慢慢变差,但物联网的设备数量超乎想象
  • BC的通信协议开销显然很大,物联网设备的带宽有限

本文提出的架构消除了BC的缺点,保留了其安全和隐私特性,使其适用于物联网,并用智能家居场景为例做描述,并声明了该架构是场景无关的,可以用于各种物联网场景。


II. Block-based IoT Architecture

以一个典型的智能家居场景为例,屋主为Alice,屋内设备有智能恒温器,智能灯泡,IP摄像头,一些传感器。整个架构分三层:智能家居层(也即本地网络层),覆盖网络层,云存储层。如图1所示

考虑两个情况:

  1. 数据访问:Alice远程访问其卧室的当前温度
  2. 数据存储:智能设备能将数据存起来供第三方使用以提供某些服务,如智能恒温器供应商

先介绍各层

A. Smart Home

由以下几部分组成

  1. 设备:屋里的智能设备
  2. 本地BC:一个部署在本地的私链,由一个或多个具有足够计算资源的设备(比如家里的计算机)维持,总是在线。不像比特币管理是分布式的,本地BC的管理由其属主完成。与特定设备相关的所有交易都链在一起,所以新设备的添加实际上就是由属主创建一个起始交易从而创建该设备的链,设备的删除也就是把该设备的这条链删掉。本地BC拥有一个策略头,被属主用来控制屋里发生的所有交易。设备间通信只有当属主为它们分配了共享密钥才能完成。BC中所有的块都有策略头,但最新的块中的策略头是特殊的,因为它用于检查策略是否有更改,当然,策略的更改也是通过修改最新的策略头实现。和比特币相同,交易被聚集在一起放到块里,但与比特币不同的是,没有求解PoW谜题的过程,矿工直接将指针添加到前一个块,并把前一个块的策略头复制到新块,从而将块链到BC上。另一个不同是,比特币中交易需要随块被全网验证才能生效,但该方案中交易只要被打包的块里就生效了,无论块是否上链。
  3. 本地存储:可选的,用于在本地存数据

除上述三部分,miner还拥有一个公钥列表用于授权访问屋里设备的数据。

B. Overlay Network

覆盖网络和比特币的P2P网络相似,其节点可以是智能家居的矿工,其它屋里的高资源设备,用户智能手机或个人电脑。每个节点通过洋葱路由器连到覆盖网络,以此提供额外的匿名性。可能多个节点属于同一个人,这样网络开销和延迟就是不必要的,所以可以把多个节点聚集成簇,然后选个簇头CH,节点可以根据延迟大小自由切换所属的簇。同样,簇中节点也可以随时选举一个新的CH。每个CH维持下列三个列表:

  • 请求者公钥列表
  • 被请求者公钥列表
  • 转发列表:为网络中其它CH转发的交易列表

overlay BC由所有CH维护,包含访问交易和云存储发送的多签名交易。与比特币不同,每个CH根据与收到的交易的参与者的通信,独立决定是保留新块还是丢弃它,这会导致每个CH中存储的BC版本不同,因为不比协调CH中的BC版本,减少了同步开销,但在某些情况下寻找一个特定的块或交易则会拥有更高的延迟。用户拥有多个家庭并希望一起管理时,可以将多个家庭的高资源设备组成一个共享覆盖,使用共享的矿工和共享的存储。每个设备的起始交易都链到它自己所在家庭的起始交易上,这样就可能造成共享BC的分叉。比特币中分叉不允许存在,但我们的方案中可以。当一个共享覆盖存在时,其成员维护一个表,该表包含最新交易的块号和数据的哈希值。

C. Cloud Storage

某些情况下,智能家庭里的设备可能希望把数据存在云里(比如恒温器),这样第三方SP就可以访问这些数据并依此提供服务(比如智能温度调节)。云存储会把数据打包放在以块号为唯一识别的相同的块中。块号和存的数据的哈希值被用户用来认证。来自用户的数据和数据的哈希值在块中以FIFO顺序存储。存完后,新块块号用共享密钥加密,确保拥有密钥的人是唯一知道块号的人。从而保证除真正用户外任何人都不能访问它的数据,也不能将新数据链到现有的分类账。另外,用户是给自己的所有设备各建一个分类账还是共用一个分类账是自由的。如果用户想提供数据的访问权限给SP,这种格式很合适。


III. Transaction Handling

讨论架构拓扑,把注意力放在交易如何处理上

A. storing

基于已定义的策略,每个设备都可以将其数据存在本地存储、共享存储和云存储。以恒温器数据送到云存储为例,如图2

图2.

共享存储和本地存储的过程要简单很多

B. Accessing

SP可能访问确定时间段内的数据或确定设备的数据。为例访问信息,SP会生成一个SP和智能家庭矿工一起签名的交易,也就是请求者和被请求者一起签名。交易发给SP自己所在簇的CH。CH检查所维护的公钥列表,请求者列表或被请求者列表匹配,就广播到自己的簇,否则转发到别的簇,并且请求者公钥放到转发列表中(这里没明白为什么两个签名任一个匹配就可以)。当智能家庭矿工收到交易时,检查策略头看SP是否有访问权限,这个权限必须在请求发送前由用户授予。如果有权限,矿工从存储里拿数据,然后用请求者公钥加密,发给请求者,如图3所示。发给请求者之前可能会设置安全问题或添加噪声等来增加隐私性。发完数据后,矿工要把双方签名的这个交易存在本地BC。然后送给覆盖网络其它一些随机的CH存储。

该方案中,通信涉及的所有CH都要存该交易。

C. Monitoring

用户可能想访问自己屋里一些实时信息,比如向恒温器请求当前温度。为这种操作设立了Monitoring交易


IV. Distributed Trust

现在来讨论覆盖网络中保证分布式信任的机制。覆盖网络中每个CH维持一个对别的CH的信用评分。这个评分基于一个依赖某些直接或间接证据的信用系统。架构中,如果CH A验证了块由CH B挖掘,则拥有一个CH B的直接证据,如果是从C收到的B的块,则拥有一个B的间接证据。当一个CH生成一个新块,它应创建一个多签名的交易用于评估信用,然后把新块和交易一起发给相邻CH。当一个CH收到了一个块,它就会验证与之相关的交易,如果它对块矿工或签署了多重事务的其他CH有直接的证据,那么它会通过检查他们的签名来随机验证块中的部分事务。CH的验证交易数量取决于其拥有的块矿工的直接证据的程度及其对提供间接证据的CH的信任评估,其中更可信赖的证据需要更少的随机交易进行检查。如果CH对块生成者或那些签名了块的参与者没有直接证据,那么它会检查所有事务。

很明显,本文架构和比特币的BC有差异,总结如表1

表1.


V. Evalution

分析开销、性能和常见安全和隐私威胁下的表现,攻击可能来自CH,家庭中的设备,覆盖网络中的节点以及存储。攻击方可能欺骗通信,丢弃交易,创建错误交易和区块,改变或删除存储中的数据,通过分析用户交易得到用户身份,或签名虚假交易使串通节点合法化。然而它们无法破解加密,主要的威胁类别有:

  • 可访问性:攻击方目标是阻止合法用户访问数据或获取服务
  • 匿名性:攻击方目标是通过分析匿名交易和其它可见信息找到用户真实身份
  • 身份验证和访问控制:为了能访问数据,攻击方尝试将自己的身份合法化

考虑下列攻击可威胁可访问性:

  • DoS Attack:CH会匹配公钥,从而阻止这种攻击,但攻击者使用不同的公钥,DoS攻击可以达成
  • Modification Attack:攻击者更改或删除云中特定用户的数据,用户可以检测到改变,识别攻击,但无法恢复数据
  • Dropping Attack:攻击者控制超过一个CH,丢弃收到的所有请求,但这种情况会被设备检测到,如果一直没收到请求,这种情况同一个簇中的设备会重新选择CH
  • Mining Attack:即多个CH协作构造一个假块,但架构中的信用系统会对块中交易进行验证,即使一个CH无法识别假块,其它CH也会检测到,只要有一个检测到,就会广播给全体。

为了避免攻击者分析可见信息找到用户真实身份,允许用户将任意交易发到覆盖网络,并且每个交易的ID和公钥都可变。

最后一类威胁是针对身份验证和访问控制,其中攻击者可以攻击家中的现有设备。这是可由用户检测到的,因为所有交易都在本地BC中开采。另一种可能性是对手试图在智能家居中添加新设备。这种攻击是不可能的,因为所有设备都应该由用户预先定义,并且应该在本地BC中挖掘起始交易。攻击者可以将其作为SP。然后,当它从user接收到块号和哈希值时,它可以使用这两个参数来验证自己是存储和操作存储的真实用户,使得用户不再能够访问它。在提议的架构中,存储中的每个块可以链接到另一个块。在给出这两个参数之前,矿工存储一些数据,甚至是一个空的块,并指向一个将被提供给请求者的数据。通过这样做,请求者无法将其数据链接到用户的数据,因为给定的块已经被链接

总之,所提出的方案通过适当的方法在每层中都确保了安全和隐私。表二简单的总结了它们。

表2.

表3评估了各种交易及操作在各方面的性能度量

表3.

实际上,即使最坏情况,交易数量也只和簇的数量成正比,而不是和节点数量。

支付宝
微信
0%