基于区块链技术的智能家居物联网模型设计
2023-12-01李维峰
李维峰
(中国飞行试验研究院,陕西 西安 710089)
0 引 言
物联网是近几十年来重要的技术之一,这得益于互联网与嵌入式系统的结合。虽然这些简单的嵌入式设备看起来并不像家用电脑,但它的内部确实有计算机。它们借助廉价传感器和互联网可以以更微小的细粒度收集有关人们所处世界或置身环境的信息。事实上,整合这些琐碎的信息能够提高效率,并在更广泛的应用领域提供先进的服务,例如智慧医疗[1]、智能城市[2]或者是智能家居[3]。但是,由于这些信息来自于人们的私生活,因此数据收集、处理和传播是否安全就引起了普遍关注[4-5]。从有利的方面考虑,将这些数据整合在一起可以为用户提供一系列复杂而个性化的服务;但从有害的方面考虑,这些数据记录的是人们的虚拟活动,通过算法可以揭示私人行为和生活模式。
市场上许多早期的物联网产品缺乏基本的安全保障措施,使得物联网在隐私保护方面存在很大的风险,从智能锁[6]到智能车[7]的连接设备中就发现了许多安全漏洞。同时,物联网的几个内在特征又进一步放大了这些风险,例如:访问控制能力弱、设备的异构性大、攻击面多、风险感知慢等。
由于上述原因,物联网的安全性和隐私性也在学术界受到了很多关注。有学者提出了一种基于分布式能力的访问控制方法来控制对敏感信息的访问[8],但该方法带来的延迟和开销过大。也有人使用IP-sec 和TLS来提供身份验证和隐私保护[9],但这些方法计算成本高昂,因此可能不适合应用在资源受限的物联网中。文献[10]中提到了一种隐私管理方法,该方法可以衡量物联网中向他人披露数据的风险,不过在一些情况下,物联网服务的感知收益大于隐私丢失的风险。因此,如果能够在不向他人泄露用户隐私的情况下在设备之间共享用户隐私,物联网就能够提供更先进的服务。
比特币[11]作为世界上第一个去中心化的数字货币,于2008 年问世,由于其去中心化、匿名化以及不可篡改等特点为世人带来了一种全新的交易方式。比特币背后的主要技术称之为区块链,这是一种分布式记账技术,账单就是“块”,而这些“块”通过加密哈希安全链接在一起,形成一条链。区块链正在迅速发展,并被用于许多其他的应用程序,包括智能合约、分布式云存储和数字资产等。区块链由点对点网络支撑,网络中的任何节点都可以成为矿工,矿工负责记账,但谁有权记账需要通过解决加密难题来分高下(以比特币为例),只有获得记账权的矿工能够在区块链中添加新的块。当发生新的交易时,交易会被广播到整个网络。所有收到交易的矿工都通过验证交易中的签名来验证交易,矿工将经过验证的交易附加到自己待处理的块中,这些交易正在等待开采。多个矿工都能够处理交易就保证了区块链的健壮性,当然,这也是有代价的,因为多个矿工必须花费他们的资源来处理同一笔交易,这会增加延迟。受到区块链技术的启发,要解决物联网中安全和隐私的问题也许能借鉴区块链技术的以下特点:
1)去中心化。通过使用所有参与节点的资源消除多对一流量确保可扩展性和稳健性,从而减少延迟并克服单点故障问题。
2)匿名性。区块链自带的匿名性非常适合大多数必须保持用户身份私密的物联网用例。
3)安全性。区块链能够在不受信任的各方之间实现网络安全,这也适用于具有众多异构设备的物联网。
然而,要在物联网中采用区块链还需解决以下问题:
1)挖矿的计算量特别大,大多数物联网设备难以满足;
2)挖矿非常耗时,但高延迟在大多数物联网应用中是不可取的;
3)底层区块链协议会产生大量流量开销,在某些带宽受限的物联网中会产生高延迟。
本文提出一种基于区块链的物联网架构,该架构试图在物联网安全性和隐私性之间找到一个平衡,既保留区块链的技术优势,又能够克服将区块链集成到物联网中的挑战。为了方便说明,下文以智能家居为例进行描述。
1 模型结构
本文提出的模型架构包括三层:本地层、共享层以及云存储,如图1 所示。以智能家居为例,本地层主要指单个家庭中各种物联网设备通过区块链链接在一起形成的网络;共享层指多个家庭之间的网络;云存储则是一些更智能服务的基础。
图1 模型架构示意图
1.1 本地层
本地层由三部分组成:物联网设备、私有区块链以及本地存储。
1)物联网设备
在智能家居的应用场景里物联网设备就是指智能扫地机、智能音响、智能空调、智能门禁等家用电器。
2)私有区块链
一个家庭中至少有一台资源充沛到可以支持挖矿和存储的设备,该设备要始终处于联网状态,而且该设备中还存储有一张公钥列表,用于授予其他人访问智能家居数据的权限,例如,智能路由器或者家用计算机。私有区块链就存储在该设备中,这与去中心化管理的比特币区块链不同,私有区块链是由其所有者集中管理,与特定设备相关的所有交易都链接在一起。所有者通过创建起始交易来添加新设备,这类似在比特币中创建新的硬币。所有者还可以通过删除现有设备的账本来实现删除设备的功能。私有区块链中包含一个策略头,这是访问控制列表,允许所有者控制其家中发生的所有交易。设备之间的通信必须经所有者允许并取得共享密钥,密钥的安全性由Diffie-Hellman[12]算法保证。虽然区块链中的所有块都包含一个策略头,但最新块中的策略头用于检查和更新策略。与比特币一样,交易被打包在一起并以块为单位进行挖掘,不同的是每个区块都被开采并添加到区块链中,不需要消耗资源计算数学难题来争取记账权,因而降低了开销。矿工在块中添加一个指向前一个块的指针,将前一个块中的策略复制到新区块中,再将块链接到区块链中。这种方式与比特币的另一个区别是,当交易被添加到块中时,无论该块是否被开采,它都被视为合法交易,因为在私有区块链中交易的有效性是由设备所有者集中管理的。
3)本地存储
本地存储是用于在每个家庭本地存储数据。
1.2 共享层
共享层类似于比特币中的点对点网络,组成的节点可以是本地层中的矿工、家中的其他高资源设备、智能手机或个人电脑。由于共享层已经不是家庭中的局域网,为了在IP 层获得匿名性,共享层中的节点可以使用Tor[13]连接。为减少挖矿带来的开销和延迟,将共享层中的节点分组到集群中,每个集群选择一个集群头。如果节点遇到过多的延迟,可以自由更改其集群。另外,集群中的节点可以随时选择新的集群头。每个集群头需要维护以下三个列表:
1)请求者的公钥列表。允许访问该集群内智能家居数据的群外设备的公钥列表。
2)被请求者的公钥列表。允许被访问的集群内设备的公钥列表。
3)转发列表。相当于网络设备中的路由表,为共享层中的集群头指明相关交易应该发送给谁。
共享层中的集群头都保存有该层中的区块链,其中保存着来自云存储的多重签名交易和准入交易。在这些区块链中添加新的块不需要像比特币那样采取挖矿的形式,而是由集群头独立决定是否保留新块或是丢弃它,这取决于集群头中的转发列表。这种机制会导致不同集群头中保存的区块链不一样。例如,在图1 中集群头1 的区块链拥有1、2、4 以及6 号块,而在集群头4 中区块链则拥有1、3、6 以及8 号块。由于这些区块链之间不需要同步,所以开销减少。
1.3 云存储
在某些情况下,智能家居中的设备需要将数据存储到云存储中,以便第三方服务提供商(SP)可以整合这些数据并提供更智能的服务。用户使用存储数据的块号和哈希值进行身份验证。如果云存储可以成功找到具有给定块号和哈希值的数据,则用户通过身份验证。存储数据后,使用从广义Diffie-Hellman 算法派生的共享密钥对新块号进行加密。这确保拥有密钥的人是唯一知道块号的人。每个用户可以为其每个设备分别创建分类账,也可以为其所有设备创建共同的分类账。如果用户希望向SP 提供对特定设备所有数据的访问权限,则前者特别有用。
2 交易处理
上一节中讨论了模型的三层结构,以及每一层的用途,本节将介绍交易的处理方式。
2.1 存储交易
根据模型的设计,每个设备可以将数据存储在本地层、共享层以及云存储中。以智能恒温器为例,它需要将数据存储在云存储中供SP 使用,以便为用户提供某些智能服务。假设用户在云存储中创建了一个账户,并设置权限允许恒温器将数据上传。云存储会向本地层区块链返回一个指向第一个数据块的指针。当智能恒温器需要向云存储上传数据时,它会将其数据发送给本地层的矿工,本地层矿工检查权限并提取块号和哈希值,随后创建一个随机ID,将数据和ID 一起发给云存储,如图2 所示。云存储检查交易的有效性,计算接收数据包的哈希值,并与发送来的哈希值比对,如果匹配则存储数据并加密新的块号,再发送给共享层矿工。数据的签名哈希最后由云存储生成,发送到共享层进行挖掘,最终添加到区块链。这保证了用户数据任何更改都能被所有人看到。
图2 存储交易流程
本地存储由房屋拥有者管理,是可信任的,因此不需要进行挖矿,存储操作时矿工不需要发送当前数据的哈希值。此外,本地存储也不需要向共享层发送数据的哈希值。其他过程均与云存储相同。唯一的不同之处在于不需要使用ID,因为所有通信都在智能家居内部进行。
2.2 接入交易
SP 可能需要访问一段时间之内存储的数据(例如过去24 h)或特定设备的整个数据链,以便提供某些服务。为了访问数据,SP 创建并签名多重签名交易,该交易需要由请求者(SP)和被请求者(智能家居的矿工)签名,并发送到自己的集群头。集群头检查两张公钥列表,如果签名匹配,则它将交易广播到自己的集群;否则,该交易将广播到其他集群中,并将请求者的公钥放入转发列表。当智能家居的矿工收到多重签名交易时,它必须检查本地区块链中的策略,以验证SP 是否具有访问数据的权限,该权限应该先前由用户授予。如果有,矿工从存储中获取数据包,并使用请求者的公钥加密它们,然后发送给请求者,如图3所示。在发送数据之前,矿工可以使用安全答案或引入噪声等方法,以提供额外的隐私[14]。多重签名交易的输出可以由矿工设置为“1”或“0”,表示请求者是否有访问数据的权限。矿工在发送数据给请求者后,应该将多重签名交易存储在本地区块链中。此外,矿工将多重签名交易发送到一组随机的集群头中,以便交易存储在共享层中。这些存储的多重签名交易可以被视为用户发送数据的证明。如果矿工不向共享层区块链发送多重签名交易时,就能够更好地保护隐私,防止攻击者将不同交易与现实世界身份相关联。
图3 接入交易流程
在智能家居中,主人或SP需要访问设备数据的情况有几种。为了减少网络开销,定义了以下不同级别的策略:
1)如果请求者是用户或已被授权访问整个数据链的SP,那么矿工将发送存储数据的块编号和哈希值。
2)否则,矿工会通过在数据中添加噪声或提供安全答案等方法,只发送满足请求者请求所必需的最少数据。
在该模型中,所有转发交易的集群头都必须将交易存储在其区块链中。此外,请求者和被请求者的集群头也会记录此交易。其他节点是否存储此交易,取决于它们是否参与了与此交易相关的任何中间通信。
2.3 监视交易
在某些情况下,智能家居主人可能希望实时访问其从智能家居设备获得的某些信息,例如检查他们智能恒温器的当前配置。为此,引入了监视交易,如图4 所示。其中矿工从设备中获取实时数据并将其发送给请求者。首先,请求者会向家庭矿工发送多重签名交易;然后矿工会在本地层区块链中验证交易的合法性,如果一切顺利,矿工会从设备获取数据并发送给请求者;最后,交易被记录到本地层区块链中。
3 定性分析
本节将定性评估所提出的模型架构在安全和隐私威胁下的代价与效率。威胁可能来自于智能家居物联网设备、集群头或者存储。它们可能会嗅探通信、丢弃交易、创建虚假交易和区块、修改或删除存储中的数据,将用户的交易相互链接并签署虚假交易,使得合谋节点变得合法,然而,它们无法破解加密。主要威胁类别包括:
1)可访问性威胁:攻击者试图阻止合法用户访问其数据或服务。
2)匿名性威胁:目标是通过分析匿名交易和其他公开信息来识别用户的真实身份。
3)身份验证和访问控制威胁:攻击者试图假冒合法用户身份,以获取对数据的访问权限。
主要的攻击手段如下:
1)拒绝服务攻击(DOS)
在DOS 攻击中,攻击者试图阻止真正用户访问服务或数据。提出的架构在集群头中使用请求者和被请求者的公钥列表进行身份验证,可以减轻攻击效果。如果接收到多个不成功的请求,集群头可以阻止特定公钥并丢弃请求。但是,如果攻击者使用不同的公钥,DOS攻击仍然可以成功。
2)修改攻击
进行该攻击需要入侵云存储的安全性。攻击者可能会试图修改或删除某些用户的存储数据。用户可以通过对比云端数据的哈希值与本地存储的哈希值来检测数据是否发生改变。如果用户发现数据泄露,则会创建两个交易:一个由用户和云存储签名,包含真实数据的哈希值;另一个由本地存储和用户签名,包含无效数据的哈希值。这两个交易被发送到一组集群头用于验证。如果哈希值不同,集群头将通知云存储发现恶意活动。在该攻击中,用户无法恢复数据。
3)抛弃攻击
想要发起此攻击,攻击者必须控制一个或多个集群头。在攻击者控制的集群头上,应该删除所有接收到的交易和区块。然而,这种攻击会被检测到,因为所属集群的节点不会收到任何交易。在提出的架构中,如果检测到此类情况,则同一集群内的所有节点都会被通知,并选出一个新的集群头。
还有一种威胁是针对身份验证和访问控制,其目的是侵入家中的已有设备。这种威胁可以被用户发现,因为所有的交易都在本地区块链上进行挖掘。另一种可能性是攻击者试图向智能家居中添加新设备。这种攻击的可能性很低,因为所有设备都必须由用户事先定义,并且交易应该在本地区块链上进行挖掘。
总之,本文提出的模型架构在三层结构中都兼顾到了安全性和隐私性,结果如表1 所示。
表1 三层架构中实现安全性和隐私性的实体和方法
4 结 论
物联网的安全性和隐私性是促进它普及的基础。本文介绍的基于区块链技术的物联网架构既可以应对一定程度的安全和隐私威胁,又兼顾物联网设备的资源限制。虽然本文以智能家居为例说明了模型,但它同样适用于其他多层物联网网络拓扑。本文在定性分析部分指出了该模型存在的一些不足,例如在面对DOS 攻击和修改攻击时可能表现不佳。但该模型是一种轻量级的、兼顾安全和隐私的架构,保留了区块链技术的大部分优势,也是物联网领域中的一种创新尝试。