更新时间:2023-03-27 GMT+08:00

概述

在商业实践中,数据是重要的生产要素。基于区块链的可信数据交换,实现了分布式场景中业务数据的隐私保护与可信共享,有效打破“数据孤岛”,最大化数据价值。可信数据共享中间件集成在Rest API插件中,可快速插拔,支持弹性伸缩。用户可通过RESTful API的方式访问区块链系统,快速集成,实现数据的发布、授权、分享、加密、解密、细粒度访问控制等能力。

功能介绍

  • 可信数据交换基于分布式身份实现,参与数据交换的用户需要注册分布式身份,详细方法请参见分布式身份(公测)
  • 可信数据涉及两个主要数据结构:数据集和数据订单。数据集包括数据描述信息、访问控制信息(属性加密中的策略)等。数据订单包括数据申请、审核信息等。
  • 可信数据交换支持三种模式:申请-授权、主动分享和细粒度访问控制。详细请参见模式介绍

    可信交换中的数据加密后支持多种存储服务,用户可以根据业务需要自己选择。调用者负责将密文数据存储到公开可访问的存储设备中。

角色定义

数据所有者Owner和数据申请者Applicants,每一个用户既可以是数据所有者角色,也可以是数据申请者角色。

模式介绍

  • 申请-授权模式,授权流程图请参见图1
    • 数据所有者通过“发布数据集”接口完成用户明文数据的加密和数据描述等信息的注册发布。
    • 数据申请者可通过“申请数据集”接口调用链代码触发申请-授权流程。
    • 数据所有者可根据申请信息和申请者的did、vc等信息决定授权或者拒绝。
    图1 申请-授权模式使用流程
  • 主动分享模式,使用流程请参见图2

    “主动分享数据集”接口相当于“发布数据集”接口和“授权数据集”接口的组合。数据所有者将数据集发布到区块链,同时授权某申请者解密数据权限,被授权者可以直接解密数据集。此时,其他参与者均可以通过“查询指定数据集”和“查询数据集列表”接口获得数据相关描述信息,并通过申请-授权模式获取数据解密权限。

    接口使用方法请参考数据集管理和数据订单管理。

    图2 主动分享模式使用流程
  • 细粒度访问控制模式,使用流程请参见图3

    基于属性加密(Attribute-Based Encryption, ABE)细粒度控制的数据交换模式,通过为每个数据集配置合理的、自定义的共享策略,实现对数据申请者属性级别的访问控制,即拥有某些属性组合的申请者可以访问密文。

    细粒度访问控制模式采用CP-ABE(基于密文策略的属性加密,Ciphertext-Policy ABE)方式实现。将策略嵌入到密文中,属性嵌入到用户密钥中。

    • 每个数据所有者都只需初始化一次自己的主公钥和私钥。
    • 数据申请者需要使用某数据所有者数据时,需要向其申请用户密钥,当属性没有变化的情况下只需申请一次。
    • 当拥有用户密钥且属性满足密文访问策略时,数据申请者可以异步的,随时解密数据所有者发布的所有相应数据。
    • 接口使用方法请参考属性加密的密钥管理。
    图3 细粒度访问控制模式使用流程

    基本概念介绍:

    • 属性(Attribute):描述一个实体的性质与实体之间关系的统称。
    • 策略(Policy):策略是属性集合与逻辑关系的组合,由数据所有者制定,将嵌入到数据密文中。例如 “age>26 && gender=man”代表策略要求年龄大于26岁且性别是男性。
    • ABE主密钥包含主公钥(Master Public Key, MPK)和主私钥(Master Secret Key, MSK):数据拥有者所有,用于加密密文和生成用户(数据申请者)密钥。
    • 用户密钥(User Key): 数据申请者通过提交属性列表,向数据所有者申请获得。密钥中包含用户的属性信息,用于解密密文。