考虑到开题时老师给的意见和编写论文的需要,这里再分析一次场景,并选择一个合适的纳入实验。

1. 场景

已有的该方向论文所使用的场景有:Smart home1 2、Healthcare3、Smart Factory4、Supply chain5 和 Smart lock6。如果根据场景来分类,各有各的不同,但如果根据信任关系来分类,Smart home、Smart Factory、Smart lock 都属于用户与生产厂商之间的冲突,Smart Factory 又可以和 Healthcare 一起归属传统的信任域,可能出现误操作或者人员间的信任问题,Supply chain 则涉及多方之间的信任。

1.1 用户与生产厂商

Smart home、Smart factory 和 Smart lock 都涉及用户和生产厂商之间的信任问题,Smart device 产生的数据会回传给生产厂商的服务器,由厂商进行处理并提供具体的服务,用户对数据并没有完全的控制权,相关的协议仅靠用户协议规定,没有较强的约束力。

这三种中以 Smart home 最具代表性,2 中提到的架构图如下,其中涉及三种实体:IoT 设备、网关和服务器。设备有两种类型:智能手机、电视等可以通过 Wi-Fi 或 有线连接直接访问互联网,摄像头、温湿度传感器等只能通过蓝牙、Zigbee 等技术连接网关,由网关访问互联网。这两者是用户端的代表。服务器负责存储 IoT 设备产生的数据以及提供相应的服务,比如从传感器收集环境信息或发送操作命令给执行器。

Smart Factory 通常有自己的服务器,但不可避免地,会需要上传数据向设备厂商换取实时监控、维修等各种服务。而摄像头等设备,实际上并不局限于 Smart home,同样用于 Smart Factory、公共交通等各行各业,Smart Lock 除了用于酒店,当然也可以用在 Smart home,它们的界限并不那么清晰,但其共同点是:均属于 C/S 架构,有自己无法控制的数据。

Smart home 可扩展到 Smart building 场景,烟雾等火警传感器、电梯、电表、水表等,Smart building 涉及的设备和领域更多,也更具普适性。

这里举两个典型的实例。

第一个是摄像头。如今,很多家庭都选择在家里安装摄像头以提供防盗或其它功能,但是由于家用设备存储能力的不足,或者自身缺乏足够专业的能力进行远程访问,一般都是用设备厂商或第三方服务商提供的软件服务来存储摄录的内容及进行远程访问,监控的内容不可避免地需要上传到他们的服务器,近年来,第三方导致的监控内容泄露的情况频繁发生,用户缺乏对这些数据的控制能力的根本原因,另外,摄像头权限被非法获取也会造成隐私泄露及其它严重的安全问题。基于区块链对摄像头进行访问控制,可以令用户拥有对监控内容的完全控制能力,从而保证用户的隐私与安全。

第二个是智能门锁。这里指的是旅馆或公寓的短租房间的电子门锁(门锁作为一种 IoT 资源)。如果一个人想预定旅馆或公寓的房间几个晚上,可以从智能手机(客户端)向处理门锁授权请求的授权服务器(AS)发送请求,AS建立一个智能合约来接收预付款,一旦验证客户已支付,AS将向客户提供必要的凭据(数字钥匙或者称作访问令牌),在确定的时间内,客户可以通过利用手机通过蓝牙等通信手段发起请求,验证权限后可以打开门锁。尽管客户不具有智能门锁的所有权,但通过智能合约,仍然保证了自己的权益。

1.2 传统信任域

如果说单个家庭属于绝对的信任域,那么工厂、医院、公司这种只能是相对的,即使不讨论跨国公司、位处多地的工厂和医院等情况,单个的工厂、医院、公司内也存在各种信任问题,不论有意还是无意,非法的操作是可能发生的。

医院的资产管理3为例,考虑这样一件事:医院拥有大量的资产,比如外科手术器械,这些器械会在消毒部门、手术室、实验室等区域周期性的流动,器械位于错误的位置可能危及患者生命,缺乏详细的资产记录也可能造成资产损失。如下图,假设源房间(如灭菌室)将一些资产(如外科手术器械)运送到目的房间(如0号手术室、1号手术室)。由于 $Asset_1$ 已被分配到目的房间1(例如,1号手术室),假如由于人为错误试图访问目的房间0(例如,0号手术室),其访问将被拒绝。简而言之,这一系统的目的是建立医疗资产访问控制系统,防止由于人为错误或外部安全威胁导致资产进入错误区域(如房间)。

Healthcare system
Healthcare system

论文4 所提供的 Smart Factory 下的温度采集实例是一个相似的例子,下图中一个设备节点申请存储权限,温度计发出的数据存储请求由微型计算机代为处理,设备通过一个唯一ID标识,管理中心验证存储权限后,微型计算机将数据加入缓冲池,待数据量满足一定规模或者到达某个周期时间,加密后的温度数据就上传到数据库,数据哈希和相关交易记录存储到区块链中。

The intranet flowchart
The intranet flowchart

1.3 供应链

论文5提出的木屋建造实例是一个供应链场景,主要由下图所示的几个关键流程组成

木屋建造场景
木屋建造场景

在收割阶段,传感器/执行器和其它低功耗设备将感知、收集和处理与原材料和收割过程相关的信息,这些信息将用于其它阶段。运输、制造和存储阶段的日志将会被其它阶段利用。分发阶段需要保证由正确的车辆通过正确的路线准时送达。整个过程涉及传感器/执行器、边缘设备/服务器、服务/网络提供者、其它第三方等多种角色,需要保证每个角色都只能访问需要访问的资源以及提供需要提供的必要信息。作者并没有给出一个具体的实验实例。

我们寻找了一个更加详细与具体的供应链实例说明7,是一个关于食品运输的例子,同时这里要说明的是,供应链是 IBM 区块链的一个主要场景,已投入使用,项目名为 IBM Food Trust 。如下图,假设一批香蕉从巴西里约热内卢附近的农场运往鹿特丹的超市配送中心。香蕉被打包放到托盘上,每个托盘都装有一个传感器节点。一大早,这些托盘就被卡车从农场运到港口的一个货运码头,在那里,托盘被装进集装箱,然后集装箱一路运到连锁超市的配送中心。在整个旅程中,香蕉的温度需要保持在10到15摄氏度之间,同时应该远离新鲜的咖啡豆等物品,因为这些东西产生的乙烯加速香蕉的成熟过程。

运输过程
运输过程

2. 场景选择

我们选定 Smart home 中的摄像头用例、供应链中的易腐商品运输两个场景,来设计我们的实验。

摄像头场景设计如下,初始由厂商建立一个 4 节点的区块链网络(维持最小节点数),其中一个账户设定为管理账户,以该账户部署 MC 和 RC。购买了摄像头的用户注册一个账户为管理员账户,代表的设备可能是家用电脑或者智能手机,首先注册自身,节点类型为 Validator,然后为购买的每个摄像头建立普通节点账户,部署ACC 并注册到管理员账户下,每个家庭成员注册一个普通节点账户并关联自己的智能手机或个人电脑,注册到管理员账户下,ACC 合约地址为空。由家庭管理员为所有设备设定权限,涉及的访问操作包括

  1. 摄像头申请网络存储;
  2. 家庭成员申请查看录像(历史数据或实时数据);
  3. 家庭成员申请开启或关闭摄像头;

厂商根据设备 MAC 和可用空间等决定是否授予写入数据权限,家庭成员则根据角色授予权限。

食品运输的场景设计如下,假设一批香蕉被采摘后打包装箱,贴好 RFID 标签/条形码,然后通过扫描枪和人工输入将采摘时间、采摘位置、所属农场、商品类型、重量、状态、采摘者、记录者等属性记录上链。这批香蕉已经被预定送往某个超市,且有一个大致的运输计划,包括这批货物在什么时间应当位于什么地点,被什么交通工具运输。早晨,这批香蕉被装运到货车上,装运时需要通过扫描枪扫描,然后通过货物ID查询相关信息与运输计划匹配,确保装运到了正确的货车上,同时采集并更新装运时间、装运地点、货物状态等信息。这批香蕉被送到港口的货运码头,卸货时在码头继续被扫描,更新卸货时间、地点、货物状态,确认到达了正确的码头,符合运输计划。紧接着,这批香蕉又被装入集装箱,相关的信息随之更新,当货物到达超市后,更新状态并确认目的地。

整个过程中发生的访问控制包括,一开始管理者根据运输计划设置访问控制策略,确保途中涉及的所有实体,包括运输的货车、港口、集装箱、超市等在规定的时间或位置有权访问这批香蕉的相关信息,在运输过程的每个阶段,这些实体扫描 RFID 标签/条形码时都会同步发起访问请求,只有符合要求的实体才能获得相关信息并更新当前环境属性。诸如购买订单、交付记录以及其它的法律文档或相关协定,不希望被第三方访问的,可以使用 Quorum 的私有交易功能,保证只被交易双方看到。

关于访问操作的说明

谈到访问控制,指的是什么样的操作,我们通常所谈及的,是对传感器数据的访问和对执行器的控制。Dorri 的论文1是该基于区块链完成物联网访问控制领域起始的几篇论文之一,也是引用最多的论文之一,他的应用场景是 Smart home。在这篇论文中,他将对数据的操作分为了如下三类

首先是存储数据。每个设备都有数据存储的需求,以一个智能恒温器为例,假设 Alice 在云中有一个账户并设置了上传数据的权限,当恒温器有存储数据的请求时,需要首先将数据发送到本地矿工,矿工根据已定义的策略对恒温器的权限进行验证,验证通过后将数据、数据哈希一起发送到云存储,云存储检查是否有剩余空间并匹配数据哈希,在存储完成后,将数据 Hash 和区块号返回,相关的交易收集到区块链中。

存储数据
存储数据

然后是访问数据。服务提供者可能需要周期性的访问存储的数据或某个设备的全部数据,请求交易经过 Smart home 的矿工验证权限后,矿工从存储中获取数据,最后用请求者的公钥加密数据后将数据发给请求者。

访问数据
访问数据

最后是监控数据。某些时候,智能家庭的所有者可能需要实时地访问家里某些设备的信息,比如恒温器当前配置。矿工收到用户请求后,验证用户权限然后返回设备的实时数据。

监控数据
监控数据

我们应当证明我们所实现的系统能够完成这些操作,不过实际的测试需要添加存储系统比如 IPFS,然后编写一个存储合约与现有系统关联,由于涉及的东西比较多,可以作为下一步的工作。

3. 供应链场景分析

这部分是 2020.09.09 写的,位于中期答辩以前,主要是以 IBM 的一个项目:IBM Food Trust 为参考,进一步分析供应链(更具体一点是食物供应链)场景,指出区块链的作用和我们工作的必要性。

需要说明的是,这部分场景可以用于论文中的实验说明及答辩的时候向老师们介绍,但实际上,设计系统的时候并没有严格和场景相关,理论上只要物联网和区块链可结合的场景都适用。所以,Introduction 从供应链的角度分析可以,从传统访问控制系统的问题这一角度分析也可以。

3.1 供应链的问题

对消费者而言, 当前购买商品消费者的选择不断增多,导致品牌效应明显,消费者更倾向选择听过的品牌。另外,由于环保意识和可持续发展意识的形成,市场环境的恶化,当前消费者购买商品不仅想知道营养成分,还想知道如何种植、如何制作以及经历了哪些运输过程到达消费者手中的,对这一系列过程的透明化有助于消费者形成对品牌安全和质量的信心,培养用户忠诚度。

对于整个供应链整个上下游 ,包括生产商、加工方、运输公司、零售商等,参与者众多,各企业数字化程度不一致,协作与交接不密切,交接甚至有时候还在使用纸质文件,产生的问题包括

  1. 效率低下,整个过程发生产品损失、交付延期的概率增加,碳足迹也大幅增加,尤其是对于时间要求较高的食品而言,还会影响食品的新鲜程度,甚至造成食物浪费,其它商品类似;
  2. 发生食品安全问题时,在整个供应链中寻找发生问题的地方要花费大量的时间;
  3. 过程不透明,某些环节黑箱运作,是食品腐败和欺诈产生的重要原因之一。

3.2 区块链的作用

依赖行业龙头企业或政府建立一个统一的平台是行不通的,供应链各参与者之间的信任难以达成,区块链的主要作用就是利用透明、不可篡改的特性提供信任,并通过智能合约尽量实现自动化,从而提高效率。具体的好处可以总结如下

  1. 所有参与者实时的知道货物来源、位置、状态,整个过程完全透明,消费者更放心,便于建立品牌信任;
  2. 知道所有的信息还便于保证产品质量,以及发现问题时快速确认责任方,以及消除欺诈风险;
  3. 便于供应链参与者根据货物情况建立更好的供需模型;
  4. 自动化的处理和即时的同步可以提升效率,减少运输成本和浪费,从而节省成本。

3.3 访问控制系统

对于权限的控制是一个两级的机制。

首先,使用联盟链,企业想要加入需要得到监管委员会的认可。

其次,使用访问控制系统,保证每条供应链的隔离,确保数据只能被该条供应链的参与者看到。我们可以理解,一个访问控制系统是必不可少的,而且是核心功能。

另外,还使用隐私合约和隐私交易机制,进一步保证隐私,因为区块链本身是完全透明的。

为了应对物联网复杂的环境,我们决定实现一个基于属性的访问控制系统来完成细粒度的访问控制,要解决的问题包括

  1. 应该包含什么样的功能;
  2. 以什么样的架构来组织这些功能

对于问题1,核心的功能应该包括:用户及设备的管理、属性的管理、策略的管理及核心的访问控制逻辑。这里的管理包括增删查改四个基本功能。

对于问题2,我们参考了其它的论文,并做了一定的改动,具体查看前面的系列文章,有详细的思考和设计的过程。

4. 未来工作

基于属性的访问控制引入了对海量属性和策略的维护问题,如何自动化的根据设备实时状态更新这些信息,可以是下一步研究的问题(比如预言机);

物联网设备数量和通信活动的频繁,必然导致数据的快速增长,考虑区块链存储数据的昂贵,必须考虑如何解决这一点,可以考虑两种方案

  1. 使用分布式存储系统将数据存储在链下,虽然损失了区块链的安全性;
  2. 由于大量的数据具有时效性,可以考虑对这些数据进行压缩;

注意,这些工作是在恶意行为检测部分完成后可以继续进行的工作,我们书写本篇文章这部分内容时,恶意行为检测部分已经接近完成。

5. 背景再分析

Blockchain, IoT, Access Control 是核心的三个关键词。该领域的研究中,大部分论文介绍背景从 IoT+Access Control 起步,介绍区块链能带来的好处,少部分从 Blockchain+IoT 起步,介绍访问控制对场景的必要性,事实上,我们研一开始的研究路径就是这样,先考虑 Blockchain 用于 IoT 有哪些好处,然后才选择了 Acccess Control 子方向。

前者可以参考之前写好的论文,或者该博客的另外一篇文章 区块链用于物联网访问控制;后者可以参考 IBM Food Trust 项目的介绍,或者查看本系列上一篇文章 实验场景的分析与选择 的第三部分。

无论从哪一个角度,亦或者从更直观的现象看(该方向论文超过 200 篇),都能得出一个结论:这三者的结合是必要的,至少是益处更多的。

5.1 结合方式

我们之前遵循的分类是史锦山等在一篇综述8中提出的,该论文将这三种的结合分为两类:

  1. 区块链与已有的物联网访问控制模型结合,区块链充当可信实体;
  2. 新的完全基于区块链的物联网访问控制模型,该分类又包括两种
    • 基于区块链交易或脚本机制实现的访问控制
    • 基于智能合约实现的访问控制

然而我们在研究中逐渐意识到,第二种并不能作为一个单独的分类。基于区块链交易或脚本实现的访问控制本质是基于 token 在区块链中的实现,基于智能合约实现的访问控制,多数依然采用了传统 ACL、RBAC、ABAC、UCON、CapBAC 等的思想,仅仅是利用智能合约重新做了实现,是实现手段的变更,实现的手段从传统的 XACML、UMA 等变到了智能合约,只不过这种实现手段附带了区块链的优点。因此研究者们所做的工作,是探索传统访问控制思想与现有实现手段(区块链、智能合约)之间的高效结合方式,探索如何充分利用区块链的优点,以及尽可能消除区块链所引入的困难。

明白这一点对我们主要有如下帮助

  1. 区块链和传统访问控制模型的简单结合并不能看作一个创新型的工作,即不能在用智能合约实现了 UCON 模型就声称自己提出了一种新的方案,重点在于你的结合和其它结合的区别,如何更高效的利用了区块链的优点,或者如何更有力的消除了区块链的缺点;
  2. 如果之前没有人在区块链中实现传统访问控制模型,而你做了,可以算创新,因为要真正实现这一点需要做很多的工作(尤其是没有前人的经验借鉴是比较难的),但是这一点现在基本不太可能,因为传统模型只有几种,现在基本都有了区块链的实现;
  3. 大家所做的更多的是系统设计性的工作,而非算法改进,因为采用一种新的手段实现已有模型很少涉及算法,更多的是通过合约结构或合约功能的某种设计和实现,做了一定的优化;
  4. 应当充分吸收传统访问控制的优点。传统访问控制经历了多年的发展,在某些实现细节上有很多值得借鉴的设计,当换了一种新的实现手段,这些设计都可以移用过来。目前该方向的研究者大部分都是从区块链入手,考虑访问控制的实现,少有专业的访问控制方向的研究者转向区块链的实现,因此大部分的方案在功能完整性方面甚至都存在一定的不足,无法做全局的考虑。

下一小节我们描述区块链这种手段为物联网访问控制带来的优点和引入的困难,这将是我们进行方案优化和性能评估的凭借。

5.2 好处和困难

区块链的引入解决的核心问题是信任。链式结构和共识算法带来的不可篡改、透明、便于审计等特性,从而提高了系统的安全性,最终帮助我们搭建了协作实体之间的信任关系。基于这种信任关系,我们可以搭建一个统一的平台,从而又带来效率的提高。

安全性又包含两个方面,一个是系统运行过程中对各种攻击的抵御,这是现有物联网系统急缺的能力,这部分的研究主要就是区块链能抵御哪些攻击,添加某些设计又可以抵御哪些新的攻击,逐步完善它的能力;另一个是系统出问题后快速追查出问题的地方,这一点从供应链角度更好理解,建立了统一的平台后,各参与者直接的交接完全数字化和透明,减少了欺诈风险,同时由于数字记录不可篡改,出现问题时可以快速追查到出问题的环节。

区块链还引入了两个优点:自动化分布式。自动化是智能合约带来的,基于智能合约图灵完备的能力提高各参与者之间的交接效率,推进数字化进程;分布式是区块链的实现方式带来的,解决了传统集中式方案的单点故障问题。尽管这两个优点是解决信任问题附带的产物,但如果充分利用这两个优点,同样可以是我们考虑的问题。

区块链带来的困难包括

  1. 实时性。某些场景下可能对实时性有一定的要求,但是,一个合法的交易在区块链中得到确认,需要经历被收集到区块、广播到区块链网络、经由大多数节点验证等过程,与传统方案相比,区块链方案显然有一定的差距;
  2. 吞吐量。同样的原因,区块链的吞吐量相比于传统方案有一定的差距,但影响吞吐量的决定性因素是区块链平台和共识算法的选择,架构设计产生的影响不大;
  3. IoT 设备的资源(能力)限制。运行共识算法需要一定的计算能力,不是所有的 IoT 设备都有这样的能力;
  4. IoT 环境的异构性。IoT 设备种类、软件平台、网络环境等千差万别,不是所有 IoT 设备都可以实用区块链客户端,并且可以实时地持续接入区块链网络;
  5. 区块链存储的昂贵性。在区块链中存储大量数据会导致区块链快速增长,对成员节点设备的存储性能是一个考验,因此应当尽量避免这一点;
  6. 成本问题。例如 Ethereum 中部署合约及与合约交互都需要以太币,更少的 Gas 消耗保证了更低的成本。

我们的解决思路

  1. 实时性和吞吐量:平台和共识选择;
  2. 设备资源限制和环境异构性:分层管理;
  3. 存储问题:调整合约架构

  1. A. Dorri, S. S. Kanhere, and R. Jurdak, “Blockchain in internet of things: Challenges and Solutions,” arXiv:1608.05187 [cs], Aug. 2016. Available: http://arxiv.org/abs/1608.05187. ↩︎

  2. P. Wang, Y. Yue, W. Sun, and J. Liu, “An Attribute-Based Distributed Access Control for Blockchain-enabled IoT,” in 2019 International Conference on WiMob, Barcelona, Spain, Oct. 2019, pp. 1–6, doi: 10.1109/WiMOB.2019.8923232. ↩︎

  3. Figueroa, Añorga, and Arrizabalaga, An Attribute-Based Access Control Model in RFID Systems Based on Blockchain Decentralized Applications for Healthcare Environments, Computers, vol. 8, no. 3, p. 57, Jul. 2019, doi: 10.3390/computers8030057. ↩︎

  4. J. Wan, J. Li, M. Imran, D. Li, and Fazal-e-Amin, “A Blockchain-Based Solution for Enhancing Security and Privacy in Smart Factory,” IEEE Trans. Ind. Inf., vol. 15, no. 6, pp. 3652–3660, Jun. 2019, doi: 10.1109/TII.2019.2894573. ↩︎

  5. T. Kumar, A. Braeken, V. Ramani, I. Ahmad, E. Harjula, and M. Ylianttila, “SEC-BlockEdge: Security Threats in Blockchain-Edge based Industrial IoT Networks,” presented at the 2019 11th International Workshop on RNDM, Nicosia, Cyprus, Oct. 2019, p. 7. ↩︎

  6. V. A. Siris, D. Dimopoulos, N. Fotiou, S. Voulgaris, and G. C. Polyzos, “Trusted D2D-Based IoT Resource Access Using Smart Contracts,” in 2019 IEEE 20th International Symposium on WoWMoM, Washington, DC, USA, Jun. 2019, pp. 1–9, [Online]. Available: https://ieeexplore.ieee.org/document/8793041/. ↩︎

  7. L. Evers and P. Havinga, “Supply Chain Management Automation using Wireless Sensor Networks,” in 2007 IEEE Internatonal Conference on Mobile Adhoc and Sensor Systems, Pisa, Italy, Oct. 2007, pp. 1–3, doi: 10.1109/MOBHOC.2007.4428689. ↩︎

  8. 史锦山,李茹,等.物联网下的区块链访问控制综述J.软件学报,2019,Vol.30Issue(6):1632–1648. ↩︎