概述
在商业实践中,数据是重要的生产要素。基于区块链的可信数据交换,实现了分布式场景中业务数据的隐私保护与可信共享,有效打破“数据孤岛”,最大化数据价值。可信数据共享中间件集成在Rest API插件中,可快速插拔,支持弹性伸缩。用户可通过RESTful API的方式访问区块链系统,快速集成,实现数据的发布、授权、分享、加密、解密、细粒度访问控制等能力。
功能介绍
角色定义
数据所有者Owner和数据申请者Applicants,每一个用户既可以是数据所有者角色,也可以是数据申请者角色。
模式介绍
- 申请-授权模式,授权流程图请参见图1。
- 数据所有者通过“发布数据集”接口完成用户明文数据的加密和数据描述等信息的注册发布。
- 数据申请者可通过“申请数据集”接口调用链代码触发申请-授权流程。
- 数据所有者可根据申请信息和申请者的did、vc等信息决定授权或者拒绝。
- 主动分享模式,使用流程请参见图2。
“主动分享数据集”接口相当于“发布数据集”接口和“授权数据集”接口的组合。数据所有者将数据集发布到区块链,同时授权某申请者解密数据权限,被授权者可以直接解密数据集。此时,其他参与者均可以通过“查询指定数据集”和“查询数据集列表”接口获得数据相关描述信息,并通过申请-授权模式获取数据解密权限。
接口使用方法请参考数据集管理和数据订单管理。
- 细粒度访问控制模式,使用流程请参见图3。
基于属性加密(Attribute-Based Encryption, ABE)细粒度控制的数据交换模式,通过为每个数据集配置合理的、自定义的共享策略,实现对数据申请者属性级别的访问控制,即拥有某些属性组合的申请者可以访问密文。
细粒度访问控制模式采用CP-ABE(基于密文策略的属性加密,Ciphertext-Policy ABE)方式实现。将策略嵌入到密文中,属性嵌入到用户密钥中。
- 每个数据所有者都只需初始化一次自己的主公钥和私钥。
- 数据申请者需要使用某数据所有者数据时,需要向其申请用户密钥,当属性没有变化的情况下只需申请一次。
- 当拥有用户密钥且属性满足密文访问策略时,数据申请者可以异步的,随时解密数据所有者发布的所有相应数据。
- 接口使用方法请参考属性加密的密钥管理。
基本概念介绍:
- 属性(Attribute):描述一个实体的性质与实体之间关系的统称。
- 策略(Policy):策略是属性集合与逻辑关系的组合,由数据所有者制定,将嵌入到数据密文中。例如 “age>26 && gender=man”代表策略要求年龄大于26岁且性别是男性。
- ABE主密钥包含主公钥(Master Public Key, MPK)和主私钥(Master Secret Key, MSK):数据拥有者所有,用于加密密文和生成用户(数据申请者)密钥。
- 用户密钥(User Key): 数据申请者通过提交属性列表,向数据所有者申请获得。密钥中包含用户的属性信息,用于解密密文。