基于华为隐私计算产品TICS实现端到端的企业积分查询作业【玩转华为云】

举报
breakDawn 发表于 2022/06/06 17:35:58 2022/06/06
【摘要】 本次TICS端到端体验,将以一个“小微企业信用评分”的场景为例。 社保、水电气和资助金等数据统一存储在某某政务云,由不同的局进行管理,机构想单独申请进行企业相关评分的计算会非常困难。 因此可以由某市政数局出面,统一制定隐私规则,审批数据提供方的数据使用申请, 并通过**华为Tics可信智能计算平台**进行安全计算。

本次TICS端到端体验,将以一个“小微企业信用评分”的场景为例。
社保、水电气和资助金等数据统一存储在某某政务云,由不同的局进行管理,机构想单独申请进行企业相关评分的计算会非常困难。
因此可以由某市政数局出面,统一制定隐私规则,审批数据提供方的数据使用申请, 并通过华为Tics可信智能计算平台进行安全计算。

Tics服务官网链接

image.png

数据准备

企业税收和资助金情况表tax(partner_gov,属于政府信息提供方,部署在用户计算节点agent_gov上)

列名 含义 字段分类
Id 企业id 唯一标识
tax_bal 税收 敏感
Industry 行业类型 不敏感

企业政府资助金数据表support(partner_gov, 属于政府信息提供方,部署在用户计算节点agent_gov上)

列名 含义 字段分类
Id 企业id 唯一标识
supp_bal 资助金金额 敏感
Industry 行业类型 不敏感

企业水电情况表power(partner_power,能源信息提供方,部署在用户计算节点agent_pow上)

列名 含义 字段分类
Id 企业id 唯一标识
electric_bal 电费 敏感
water_bal 水费 敏感

注意以上数据和表结构是根据场景进行模拟的数据,并非真实数据,样例数据和表结构文件都已在附件中给出。

上述数据需要提前存导入到Mysql\Hive\Oracle等用户所属数据源中,Tics本身不会持有这些数据,这些数据会通过用户购买的计算节点进行加密计算,保障数据安全

从业务角度考虑,我安排了五个阶段,来对TICS系统进行验证和测试。
这里不讲述联盟创建、代理创建等内容,只重点讲述如何端到端实现一个该场景下的隐私计算作业完整执行流程。

阶段一:数据发布

首先第一步,肯定是要做好数据准备工作。
我们首先进入Tics服务控制台(Tics服务控制台链接
在计算节点管理中,找到我们购买的计算节点,通过登录地址,进入计算节点控制台
image.png

登录计算节点后,在下图所述位置进行连接器的新建
image.png

输入正确的连接信息,以建立数据源和计算节点之间的安全连接:
image.png

建立完成后,看到连接器显示正常说明连接正常。
image.png
接着进入数据管理,进行数据集发布:
image.png
数据集发布动作参考如下:
image.png
然后我们以同样的方式,发布了 support资助金数据 表和power_data能源表。

这个过程并不会直接从数据源中导出用户数据,仅仅是从数据源处获取了数据集相关的元数据信息,用于任务的解析、验证等。

阶段二:隐私规则防护

数据集发布后, 作为数据提供方,肯定会担心数据是否可能被随意使用。
因此第一步应该先确认tics的隐私规则能力是如何保护大家的数据安全的。

我们首先进入联邦分析的作业执行界面,点击作业创建
image.png
可看到如下的作业框,我们可按照下文提供的案例和sql语句进行作业测试。
image.png

假设有人试图直接查询敏感数据:

select
  tax_bal, id
from
  league_creator.tax

则可以看到被提示不支持进行敏感数据的SELECT操作。
image.png

如果有人试图拿敏感数据加上自己的数据, 从结果倒推敏感数据,如下所示:

Select
  tax_bal + electric_bal
from
  LEAGUE_CREATOR.tax a
  join ZZZZZZ.power_data b on a.id = b.id

这个操作等同于求原数据, 这个操作也会被tics识别并提示出来。
image.png

阶段三:审批防护

上述隐私规则,都是tics系统提供的默认规则。

但规则的完善总是有一个过程的,在规则未完全完善之前, 作为用户,可能更愿意支持开启审批功能, 来进行更“灵活”的作业合法性确认。

审批功能可以由联盟管理员在联盟界面进行开启:
image.png

开启后,如下图所示,当有人直接查询我的敏感数据时,我可以在审批详情中,看到对方试图让敏感字段在结果可见,那就可以由该提供方进行识别,并进行拒绝操作。
image.png
对于两个字段相加的情况,也可以在审批中看到相加的情况, 也能看到id是用来做join碰撞的用途。
image.png
通过查看字段是否可见, 以及字段用途,能够确认该字段的应用是否符合自己的安全预期。

阶段四:基本计算能力验证

下面场景是计算各企业在2021年的价值评分, 以用于评估信贷能力,其中的公式并非真实公式,仅仅是一个简单的参考计算式。
其目的是为了确认Tics的基础计算能力。
我们执行如下的sql作业:

select
  c.id as `企业id`,
  0.5 * a.tax_bal + 0.8 * b.supp_bal + (0.05 * c.electric_bal + 0.05 * c.water_bal) * 0.1  as `企业评分`
from
  Partner1.TAX a,
  Partner1SUPPORT b,
  Partner2.POWER_DATA c
where
  b.id = c.id
  and a.id = b.id

审批时可以看到如下的情况,涉及关联字段较多,其使用方式都能够在审批界面中展示出来。
image.png
执行结果如下:
image.png

可以看到基础的sql语法都能够支持。
并且从作业执行页面的提示上来看,已经支持了相当多的常用语法和sql函数。
image.png

阶段五:基于MPC算法的高安全级别计算

如果我度过了前期的demo验证阶段, 准备接入更高安全级别的数据, 就可能会希望提升数据保护级别, 以纯密文的状态做计算, 则我可以通过让开启高隐私级别开关,将联盟安全级别默认提升一个等级。
image.png

再次点击刚才的作业,审批时可以看到敏感数据被进行了同态加密。
从DAG图上可以看到 psi + 同态的全过程流向, 基本符合业界已公开的PSI算法流程和同态加密流程。
image.png
image.png

阶段六:统计型作业的差分隐私保护

假设有以下作业,试图统计各行业的企业税收总和 和用电量总和, 进行统计分析

Select
  industry,
  sum(tax_bal),
  sum(electric_bal)
from
  LEAGUE_CREATOR.tax a join
  dayu002.power_data b
  on a.id = b.id
group by
  industry

但是这种统计分析型的作业, 有可能被作业执行方通过增删某个碰撞的id, 得到两次作业之间的差值,从而推算出实际taxpay和water_fee。

此时我可以通过开启联盟中的差分隐私开关来保护自己的敏感数据。
开启后,符合差分隐私条件的这类统计作业,都会自动应用差分隐私算法进行加噪保护计算结果, 在一定误差范围内保证数据无法被恶意偷取。开启方式如下:
image.png
以下是第一次执行作业时得到的结果:
image.png
可以从DAG图看到,我们在返回最终统计结果前,增加了一个差分隐私计算的任务节点。
image.png
接着再执行一个sql,这个sql中过滤掉了某个企业,试图用差值去计算这个企业的税收值。

Select
  industry,
  sum(tax_bal),
  sum(electric_bal)
from
  LEAGUE_CREATOR.tax a join
  dayu002.power_data b
  on a.id = b.id
  where a.id <> '123400558' 
group by
  industry

这个企业的实际tax为274:
image.png
得到新的结果如下:
image.png

经过计算,66539.583321490225131 - 66078.857559963717677 = -461
可以看到并不会像使用者预期的那样直接得到实际的274差值,因此通过差分隐私算法保护了聚合操作的安全性。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。