当前位置: 首页 > news >正文

【技术教程】TrustFlow 授权策略是怎么实现的?

打开链接即可点亮社区Star,照亮技术的前进之路。

Github 地址:https://github.com/secretflow/trustflow/

TrustFlow提供了一套简洁易懂的语法帮助用户对数据使用行为的授权进行描述。接下来我们会详细描述这套语法,并结合示例进行讲解。

授权策略概览

  • constraint:约束表达式,描述了具体的数据使用行为约束。
  • rule: 指具体的策略规则,rule本质上由一条或者多条约束表达式组成。
  • policy:指作用于具体数据的授权策略,policy由一条或者多条rule组成。

constraint

constraint本质上是描述“访问控制”这件事,比如允许对数据进行什么样的计算。

可限制的元信息

constraint支持对以下元信息进行限制。具体语法上,每一条constraint的元素都是以r.作为开头。(TrustFlow采用了casbin作为底层的访问控制实现)

platform

在global_constraints下设置。
限制代码运行的TEE平台。目前可选sim/sgx/tdx/csv

r.env.tee.platform=="tee platform type"
mr_enclave

在global_constraints下设置。
限制代码的MRENCLAVE,关于MRENCLAVE的说明参见 Enclave 。

r.env.tee.sgx.mr_encalve=="mrenclave of the enclave"
mr_signer

在global_constraints下设置。
限制代码的MRSIGNER,关于MRSIGNER的说明参见 Enclave 。

r.env.tee.sgx.mr_signer=="mrsigner of the enclave"
(暂不可用) execution_time

在global_constraints下设置。
限制执行时间。

r.execution_time<="2023-10-01 23:59:59"
(暂不可用) op参数

在op_constraints下设置。
限制可信app的参数。具体参数名可以在可信APP中找到对应的app查询。
例如限制回归类型为逻辑回归:

r.op.params.reg_type=="logistic"

元素之间支持的操作符

用户可以根据需要对元信息进行操作,TrustFlow支持的操符作如下。

rule

成员说明

rule包含以下信息。

rule_id

每一条rule都会有一个ID用于标识它。

grantee_party_ids

列表形式,由被授权方的机构ID组成。

op_constraints

op_constraints表示作用于特定算法的约束,由一条或者多条op_constraint组成。op_constraint表示针对具体算子的约束,包含算子名称和一条或者多条constraint。
如果没有填写op_constraints,则表示不允许进行任何计算。

global_constraints

作用于全局的约束,由一条或者多条constraint组成。

(可选)columns

对于结构化数据,可以限定数据的哪些列可以被使用。

使用示例

下列rule描述了以下限制

  1. 被授权方为bob和carol
  2. 允许使用数据列f1、f2和f3
  3. 允许xgb_train组件使用数据
  4. 允许lr_train组件进行逻辑回归时使用数据
  5. 限制组件运行平台为sgx
  6. 限制代码的mr_enclave为MRENCLAVE
{"rule_id":"test_rule_id","grantee_party_ids":["bob","carol"],"columns":["f1","f2","f3"],"op_constraints":[{"op_name":"xgb_train","constraints":[]},{"op_name":"lr_train","constraints":["r.op.params.reg_type==\"logistic\""]}],"global_constraints":["r.env.tee.platform==\"sgx\"","r.env.tee.sgx.mr_enclave==\"MRENCLAVE\""]}

policy

policy描述了完整的授权策略。

成员说明

data_uuid

策略所作用于的数据id。

rules

由一条或者多条rule组成的列表。

示例

我们继续以上面rule的使用示例为例,一个完整的policy如下。

{"data_uuid":"data id","rules":[{"rule_id":"test_rule_id","grantee_party_ids":["bob","carol"],"columns":["f1","f2","f3"],"op_constraints":[{"op_name":"xgb_train","constraints":[]},{"op_name":"lr_train","constraints":["r.op.params.reg_type==\"logistic\""]}],"global_constraints":["r.env.tee.platform==\"sgx\"","r.env.tee.sgx.mr_enclave==\"MRENCLAVE\""]}]}
http://www.cnnetsun.cn/news/114758.html

相关文章:

  • 基于Vue.js和Spring Boot的新能源汽车充电站管理系统的设计与实现文献综述
  • 【Matlab】代码库:RGB三通道图像←互转→RGB次序平铺二维
  • 使用 html2canvas + jsPDF 生成PDF 的简单示例(含文字下沉修复)
  • Vue3+Monaco Editor封装及SQL编辑器实现
  • MiniCPM-V 4.5
  • Flutter工程化与协作实践指南
  • Excel技巧:提取身份证号码中的出生年月日
  • 软工毕业设计创新的开题分享
  • Oracle数据库物理备份与恢复实战指南
  • 告别“养死”魔咒!AI+知识库+物联网,打造零失败智能种植系统(附架构图+实操指南)
  • 安卓基础之《(4)—Activity组件(2)》
  • 打破数据堵点:6 大主流CRM厂商全链路数据流转能力横评与选型指南
  • 小程序毕设项目:基于springboot+微信小程序的校园活动管理系统设计与实现(源码+文档,讲解、 调试运行,定制等)
  • 小程序毕设项目:基于springboot+微信小程序的DIY电脑推荐与交流平台(源码+文档,讲解、 调试运行,定制等)
  • 小程序毕设项目:基于springboot+微信小程序的在线复习小程序(源码+文档,讲解、 调试运行,定制等)
  • 安徽做SCARA机器人的公司有哪些?
  • 【JavaWeb】MVC模式_理论简介
  • 【JavaWeb】日程管理01——登录页及数据校验功能
  • springboot中File默认路径
  • 【2025年AI 编程时代的热点】
  • 【C++ 笔记】从 C 到 C++:核心过渡 (中)
  • SQL约束解析
  • 地铁调研12-17
  • 现代软件测试工具全景对比与选型指南
  • 基于 Apache POI 的体检报告 Word 生成实战文档
  • org.jetbrains.annotations的@Nullable 学习
  • 计算机毕业设计springboot计算机硬件自配系统 基于Spring Boot的计算机硬件配置管理系统设计与实现 Spring Boot架构下的计算机硬件自选系统开发
  • 【信创】中间件对比
  • 傅里叶变换小波变换
  • 智能桑拿房首选:水管家集成系统如何提升体验?