本文首先对IOT设备访问控制进行了总结,然后翻译了两篇物联网与IOT设备访问控制相结合的论文。
本文的ppt可以从[此处]获取(注:打开软件为keynote)。
前言
IOT访问控制的重要性
- 物联网(IOT)几乎涉及我们日常生活中包括工业、农业、智慧交通、医疗健康等所有领域。由于物联网的理念是将世界用各种IOT设备连接起来,使它们能够相互交流和合作,以提供广泛的服务,因此,未来会有大量的物联网设备被部署。根据Gartner在2016年的一项研究显示,预计到2020年,全世界将部署500亿台物联网设备。
- 目前,物联网已经实现了物与物、物与人、人与人之间在任何时候、任何地点的有效连接。物联网中会产生海量的数据,其中具有大量的个人隐私。这些隐私信息一旦泄露,会带来巨大的损失。因此,应当通过访问控制技术,保障数据仅能够被拥有相应权限的用户访问。
传统访问控制技术
传统的访问控制技术是由一个集中式的授权决策实体依据访问控制策略和其他属性信息进行访问控制决策,即通过引入中央可信实体的概念来构建的。
然而,由中央可信实体保存所有信息,并依据所保存的信息完成所有决策,在技术层面本身就不安全(例如,信息被篡改),需要依赖技术之外的法律层面来保障安全。
此外,由于物联网设备数量多,在拥有大量物联网节点的环境下,会给中心化服务器造成较大的压力。
区块链 + 访问控制
区块链是一种去中心化的分布式技术,是一种以密码学算法为基础的点对点分布式账本技术,是一种互联网上的共享数据库技术。从技术上解决了基于信任的中心化模型带来的安全问题。它基于密码学算法保证价值的安全转移,基于哈希链及时间戳机制保证数据的可追溯、不可篡改特性,基于共识算法保证节点间区块数据的一致性,基于自动化的脚本代码和图灵完备的虚拟机保证可编程的智能合约。
目前,区块链与访问控制主要有两种结合方式:
(1) 种是区块链技术与现有的物联网访问控制模型结合,区块链充当现有访问控制模型的可信实体。
(2) 种是提出一种新的完全基于区块链的物联网访问控制模型,区块链作为可信实体的同时,基于区块链的特性设计了基于交易或者智能合约的访问控制方法。
解决方案 - 1
文章题目
Bubbles of Trust: A decentralized blockchain-based authentication system for IoT 原文获取
信任泡:基于区块链的去中心化认证系统
简要介绍
提出了一种叫做信任泡的有效的分布式认证机制,其主要目标是在物联网环境中创建安全的虚拟区域,使该区域内的成员能够进行通信,而区域外的成员无法进行访问。实施环境为以太坊。
基本原理
基本知识
一个信任泡中,有两类角色:一个Master和n个follower,它们各自拥有自己的公/私钥对。
Master设备首先选择信任泡标识符groupID,然后,Master向每一个follower颁发ticket,标识为
ticket:{groupID||followerID||PubKey_F}_SignedWith(PriKey_M)
:其中,groupID表示信任泡标识符,objectID表示follower的ID,pubAddr表示follower的公钥,Signature代表Master节点使用其私钥利用椭圆曲线数字签名算法对groupID、objectID、pubAddr信息的哈希的签名。然后,Master向区块链发送包含MasterID、Master公钥以及它想要创建的groupID的一笔交易,正式创建一个信任泡。具体算法如下:智能合约检查groupID、Master公钥和MasterID的唯一性,如果区块链中MasterID、Master公钥或groupID已经存在,则不创建。如果创建成功,此时区块链将把groupID、MasterID、Master公钥进行绑定。
之后,follower依次发送包含followerID和ticket的交易
transaction_1:{ticket}_signedWith(PriKey_F)
,与信任泡相关联。具体算法如下:智能合约利用follower交易中携带的公钥验证完整性,利用Master公钥检查ticket的有效性,再验证follower信息的唯一性,如果区块链中已经存在followerID、addrID,或者groupID不存在,或者Ticket验证不通过,则该follower不会被关联至该信任泡。而一旦follower的关联请求成功,则区块链将会把groupID、followerID和follower公钥向绑定,以后不再需要使用ticket来验证。未来,follower发送交易时,只需要发送
transacation_n:{data||groupID||followerID}_signedWith(PriKeyF)
,当区块链收到交易时,通过follower的公钥验证签名来验证其完整性,如果验证通过,区块链将验证交易中groupID、followerID是否与存储的信息一致,如果一致,则设备认证成功。数据通信规则的算法如下:如果区块链中发送者的id不存在或者接收者的id不存在,则禁止通信;如果发送者的groupID与接收者的groupID不同,则禁止通信;如果对发送者新的的验证失败,则禁止通信。因此,Master 5E可以创建39组,而Master BB不能创建0A组;0A组的1B与DE可以相互通信,而F9组的50不能与0A组的6F通信;未经授权的F9组79不能与已经授权的F9组41进行通信。
优势
- 使物联网系统的认证体系从中心化系统转变为有弹性的分散系统。
- 由于公链是由参与记账的节点共同维护,通过共识机制等确保其自主运行,因此,具备可追溯、可抵抗恶意攻击等特性。
- 一旦部署了智能合约,用户就无法对其进行修改。
缺点
- 限制信任泡之间的通信。这是因为如果信任泡之前的通信被授权,同时又有一个恶意的用户创建了一个新的信任泡,试图与一个特定的信任泡进行通信,那么他将成功。
- 以太坊中,验证一个区块需要14秒,因此设备发送的消息需要在14s后进行验证,许多物联网方案对此是无法容忍的。但是,可以通过搭建私链解决该问题。
- 需要初始化阶段,这需要服务供应商的干预。
- 加密货币利率的演变:该方法依赖于公共区块链,涉及的成本取决于区块链系统使用的加密货币。然而,作者认为所提供的每项安全服务都应该需要成本,而且加密货币利率的变化正随着时间的推移变得更加稳定。
安全性评估
- 相互身份验证和消息完整性:每个设备都使用一个ticket,且只在初始阶段使用。此外通过使用ECDSA算法使用与这些票证关联的私钥对所有交互信息进行签名,因此可以保证设备的身份认证以及消息的完整性。
- 认证:每个设备都拥有一个身份(ID,groupID,公钥)。且通过Master的私钥对ticket进行签名,其私钥对每条消息进行签名,因此可以轻松的进行识别。
- 不可否认性:由于消息是使用私钥进行签名的,而私钥只有所有者自己知道,所以所有者不能否认签署消息的事实。
- 可扩展性:该系统依赖于公链,公链又依赖于p2p网络,而p2p网络是满足大规模扩展性的最佳解决方案之一。
- 女巫攻击:每个对象只能有一个身份,而每个身份在给定时间只能有一个密钥对。每条通信消息必须由与此标识关联的私钥签名。此外,所有身份必须得到系统的批准,因此,攻击者不能使用虚假身份。
- 欺骗攻击:如女巫攻击,攻击者因为没有私钥,所以无法欺骗其他对象。
- 消息替换:由于所有消息已经签名,如果攻击者更改或替换消息,则必须使用有效的私钥进行签名,而在初始化阶段,只有可信的对象被赋予Ticket。
- 消息重放:所有的消息都被视为交易,而每个交易都有一个时间戳,而且需要经过共识机制的确认后才能生效,因此,攻击者无法获得回复信息,因为共识机制会拒绝它。
- DDos攻击:完全分散的区块链架构能够抵御DDos攻击,这是因为区块链服务是分布在不同的网络节点上。因此,攻击者无法阻塞。
解决方案 - 2
文章题目
A Novel IoT Authorization Architecture on Hyperledger Fabric with Optimal Consensus using Genetic Algorithm 原文获取
简要介绍
传统架构中的授权服务器是集中式的,而本文则在Fabric上搭建了一套分布式的IOT认证架构,并通过遗传算法对Kafka共识组件的参数进行了优化。
基本原理
认证流程
- 用户使用用户名和密码向peer进行身份验证,以请求访问令牌
- 身份认证通过后,创建访问令牌。
- peer创建一个交易并将令牌发送至order节点,使用共识组件进行排序。
- 之后,orderer生成一个块,该块将发送至所有的peer节点,peer节点将把该交易加入本地账本中。
- 之后,特定的peer将令牌发送回请求的用户。
- 用户将令牌嵌入到设备中,以便进一步访问。
- 以访问MQTT服务为例,用户持该令牌访问MQTT broker(代理)时,需要使用令牌进行授权。
- MQTT broker向fabric授权服务发送请求,并接收返回结果。
- 授权完成后,设备最终能够使用broker的服务。
优势
- 可以防止单点故障