查看原文
其他

论文分享 | 使用区块链和可信执行环境的分散化物联网数据管理

zhanjx COMPASS Lab 2022-09-24


此次分享的是发表在 2018 IEEE International Conference on Information Reuse and Integration for Data Science的题为《Decentralized IoT Data Management Using BlockChain and Trusted Execution Environment》的论文。



一 Introduction

文章提出了使用区块链和可信执行环境的分散化物联网数据管理系统,通过利用区块链(BlockChain)的去中心化的特点以及智能合约(Smart contract),来解决服务提供商对用户数据的“集权”管理,防止服务提供商对用户数据进行不合理的操作,从而解决二者的信任问题;同时在内存中单独开辟一块可信执行环境(TEE,Trusted Execution Environment),对用户敏感数据进行可信的处理(文章采用的是Intel SGX架构),提供数据隐私保障。

二 Preliminaries

区块链(BlockChain):按照时间顺序,将数据区块以顺序相连的方式组合成的链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本;如果要修改区块链中的信息,必须征得半数以上节点的同意并修改所有节点中的信息,而这些节点通常掌握在不同的主体手中,所以区块链具有“不易篡改”和“去中心化”的特点。

智能合约(Smart contract):一种旨在以信息化方式传播、验证或执行合同的计算机协议;智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。简单来讲,智能合约是一段简单的代码,这段代码里包含了双方所遵守的约定,代码执行代表约定生效且不可逆。

可信执行环境(Trusted Execution Environment,TEE):一种具有运算和储存功能,能提供安全性和完整性保护的独立处理环境。其基本思想是,在硬件中为敏感数据单独分配一块隔离的内存,所有敏感数据的计算均在这块内存中进行,并且除了经过授权的接口外,硬件中的其他部分不能访问这块隔离的内存中的信息,以此来实现敏感数据的隐私计算。

三 Challenges and Assumptions

Challenges

  • 如何在物联网服务提供者和物联网服务的用户之间建立信任。

Assumptions

  • 所有数据在传输之前都是加密的;

  • 所有的密钥交换都是使用非对称加密协议来执行的;

  • 不考虑重放攻击和拒绝服务攻击。

四  Threat Model
  • 物联网数据管理服务提供商是不受信任的实体;

  • 所有请求访问数据的第三方用户都是不受信任的;

  • 考虑对内存、硬盘和I/0系统等低级系统源的根权限访问来破坏数据存储云服务的对手。

System Architecture

物联网智能合约由三个主要组件组成,其中包括物联网客户端网络、智能合约和安全SGX模块。具体如Figure 1所示。


Figure 1:A IoTSmartContract Architecture


如算法1所示,智能合约以在区块链中执行的以太坊智能合约的形式向用户数据提供分散的访问控制策略。由于在智能合约中存储数据所需的数据存储和费用有限,智能合约只将数据的散列存储在区块链中。主数据被加密并存储在SGX模块上。智能合约包括哈希数据存储的用户注册模块、设备注册模块、设备数据写入模块和设备数据读取模块。



  • 用户注册模块:本模块利用了以太坊网络上的用户注册系统。每个用户通过生成一个唯一标识该用户的公-私密钥对来加入以太坊网络。然后,私钥可用于与智能合约交互,以执行设备注册和数据访问等功能。

  • 设备注册模块:每个经过身份验证的用户都可以通过为设备提供标识符来注册他们的物联网设备。在智能合同中,文章提供了一个哈希映射,该映射将用户拥有的设备映射到区块链上的所有者地址(address = list of owners deviceids)。

  • 设备数据写入模块:对于要将数据写入区块链的设备,该设备将提供包含要写入的数据的所有者地址和设备id。通过使用所有者地址和设备id的组合作为哈希映射中的键,我们可以唯一地存储与所有设备对应的所有数据,分别表示为((owner address,device id) = list of device data)。哈希映射的值是由设备写入的数据的散列列表。在智能合同允许将数据写入合同之前,智能合同将检查所有者地址是否与设备ID对应,以确保只有设备所有者才能执行写操作。

  • 设备数据读取模块:发出数据读取请求的第三方用户将被提供设备所有者地址和设备ID。在智能合约中,这被表示为((owner,device id,third party user address) = bool access)。在允许对该数据进行访问之前,将检查此哈希映射,以查看发出请求的第三方用户是否在被访问用户可访问列表内。

六   DataFlow2

对于写入数据,如Figure 2所示。设备首先经过步骤➂在区块链中进行注册。对于物联网网关信任的SGX平台,它执行如步骤➀所示的远程认证。为了执行数据写入,该设备在步骤➁中与物联网网关进行通信。然后,网关将在步骤➂中检索智能合约地址。然后,网关将对数据进行加密和散列。散列数据将使用智能合约中的写入数据函数写入区块链。然后在步骤➃中将原始加密数据写入SGX平台。通过使用Ecall/Ocall包装器,SGX应用程序中的不受信任模块与受信任模块进行通信,如步骤➄所示。在步骤➅中,完整性检查器模块计算数据的基于哈希的消息身份验证码(HMAC),并在步骤➆和步骤➇中将数据密封并写入磁盘之前附加数据的HMAC。

对于读取操作,如Figure 2所示。用户必须使用允许访问方法向智能合约注册第三方用户。要撤销访问权限,用户将调用撤销访问权限函数。第三方用户如步骤➊所示,与智能契约进行通信,通过提供设备Id来获取设备生成的数据的散列。智能合同检查第三方用户是否可以使用设备Id和第三方用户的地址访问来自设备的数据,如果被授予许可,则返回数据的哈希,并且可以用于访问来自SGX存储平台的数据。在步骤➍中,SGX应用程序使用读数据API复查智能合约,以确定第三方用户是否可以访问由第三方请求提供的数据哈希标识符。如果允许访问,则SGX应用程序将从安全存储步骤➎中检索数据,然后在步骤➏中打开数据,完整性检查步骤➐重新计算数据的HMAC,然后与存储的HMAC进行比较。如果HMAC未被修改,则读取数据并返回用户,如步骤➒和步骤➓所示。


 Figure 2:Illustration of the Data Flow in IoTSmartContract

七  Conclusion

随着物联网设备使用量的增加,适当的数据访问审计、数据使用透明度和数据隐私性非常重要,因为这些设备产生了大量的数据。

文章所述的方法利用区块链以分散的管理方式对物联网数据进行访问,并通过确保所有数据处理和存储都在安全的enclaves中完成,将原始加密数据存储在SGX启用的平台中。进一步保证了数据安全性和完整性。

若有理解不当之处,还请批评指正。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存