写点什么

TICS 端到端实践:企业积分查询作业开发

  • 2022 年 6 月 07 日
  • 本文字数:2299 字

    阅读完需:约 8 分钟

本文分享自华为云社区《基于华为隐私计算产品TICS实现端到端的企业积分查询作业【玩转华为云】》,作者:breakDawn 。


本次 TICS 端到端体验,将以一个“小微企业信用评分”的场景为例。


社保、水电气和资助金等数据统一存储在某某政务云,由不同的局进行管理,机构想单独申请进行企业相关评分的计算会非常困难。


因此可以由某市政数局出面,统一制定隐私规则,审批数据提供方的数据使用申请, 并通过华为 Tics 可信智能计算平台进行安全计算。



数据准备


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


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



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



注意以上数据和表结构是根据场景进行模拟的数据,并非真实数据。


从业务角度考虑,我安排了五个阶段,来对 TICS 系统进行验证和测试。

阶段一:数据发布


首先第一步,肯定是要做好数据准备工作。


我们通过新建连接器, 让计算节点和数据源进行连通。



接着进入数据管理,进行数据集发布。


字段分类作用如下:



然后我们以同样的方式,发布了 support 资助金数据 表和 power_data 能源表。


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

阶段二:隐私规则防护


数据集发布后, 作为数据提供方,肯定会担心数据是否可能被随意使用。


因此第一步应该先确认 tics 的隐私规则能力是如何保护大家的数据安全的。


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



select
tax_bal, id
from
league_creator.tax
复制代码


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



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



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


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


阶段三:审批防护


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


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


如下图所示,当有人直接查询我的敏感数据时,我可以在审批详情中,看到对方试图让敏感字段在结果可见,那就可以由该提供方进行识别,并进行拒绝操作。



对于两个字段相加的情况,也可以在审批中看到相加的情况, 也能看到 id 是用来做 join 碰撞的用途。



通过查看字段是否可见, 以及字段用途,能够确认该字段的应用是否符合自己的安全预期。

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


下面场景是计算各企业在 2021 年的价值评分, 以用于评估信贷能力,其中的公式并非真实公式,仅仅是一个简单的参考计算式。


其目的是为了确认 Tics 的基础计算能力



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
复制代码


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



执行结果如下:



可以看到基础的 sql 语法都能够支持。


并且从作业执行页面的提示上来看,已经支持了相当多的常用语法和 sql 函数。


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


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


再次点击刚才的作业,审批时可以看到敏感数据被进行了同态加密。


从 DAG 图上可以看到 psi + 同态的全过程流向, 基本符合业界已公开的 PSI 算法流程和同态加密流程。



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


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



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


此时我可以通过开启差分隐私开关来保护自己的敏感数据, 这类作业则都会自动应用差分隐私算法进行加噪保护计算结果, 在一定误差范围内保证数据无法被恶意偷取。


以下是第一次执行作业时得到的结果:



可以从 DAG 图看到,我们在返回最终统计结果前,增加了一个差分隐私计算的任务节点。



接着再执行一个 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:



得到新的结果如下:



经过计算,66539.583321490225131 - 66078.857559963717677 = -461


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


华为伙伴暨开发者大会 2022 火热来袭,重磅内容不容错过!


【精彩活动】

勇往直前·做全能开发者→12 场技术直播前瞻,8 大技术宝典高能输出,还有代码密室、知识竞赛等多轮神秘任务等你来挑战。即刻闯关,开启终极大奖!点击踏上全能开发者晋级之路吧!

【技术专题】

未来已来,2022 技术探秘→华为各领域的前沿技术、重磅开源项目、创新的应用实践,站在智能世界的入口,探索未来如何照进现实,干货满满点击了解


点击关注,第一时间了解华为云新鲜技术~

发布于: 刚刚阅读数: 3
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
TICS端到端实践:企业积分查询作业开发_云计算_华为云开发者联盟_InfoQ写作社区