安全多方计算在SQL场景下的限制
随着MPC、隐私计算等概念的流行, 诸多政府机构、金融企业开始考虑参与到多方计算的场景中, 扩展数据的应用价值。
以下面这个场景为例, 银行可能希望获取水电局和税务局的数据,来综合计算得到各公司的信贷评分等级。
通过TEE、MPC等策略,可防止中间数据在计算过程中发生泄漏。
但计算结果最终会返回给作业发起方, 例如发起方试图查询 [企业id, 用水量+ 用电量]时 , 隐私计算平台只能保证用电量、用水量单独不泄露, 无法保证用水量和用电量的相加值不被泄露,毕竟这个相加值是作为计算结果呈现的。
因此对于“计算结果是否会泄露敏感数据”这个问题,是TEE、MPC等策略所无法解决的。
常见解决策略
一、默认的隐私策略
隐私计算平台通过设置复杂的隐私策略,指定少数sql场景, 来强行限制敏感数据的使用。
例如直接拒绝id字段、敏感数据字段被明文暴露等。
二、使用隐私算法对敏感数据的聚合结果进行保护
此类算法可以保护敏感数据的聚合结果无法被逆推, 但仅限于敏感数据的聚合结果,如果作业发起方有算法应用之外的需求,则需要依赖其他更为人工的方式来预防。
三、基于审批的作业共识
但由于业务场景复杂,如果规则限制过强,可能导致阻止了正常逻辑的作业, 如果限制过弱,则可能导致敏感数据被恶意套取丢失。
因此在多方SQL计算时,各数据提供方和作业发起方应该能够针对作业内容达成共识,确认该作业对数据的使用是正常的,合理的。
TICS作业审批功能,达成计算共识
华为tics可信智能计算服务支持作业审批功能,当试图发起某SQL多方作业时,数据提供方可进行审批,确认是否允许这种数据的用法。
具体操作步骤如下:
- 联盟管理员登录TICS控制台。
- 进入TICS控制台后,单击页面左侧 。进入联盟管理页面后,单击联盟名称进入联盟详情页。
- 联盟管理员在联盟详情页右上角单击“开启作业审批”。开启之后,所有作业就都需要通过审批后,才能执行。
- 作业发起方进入自己所属的代理,编写完作业之后,单击“提交审批”。在页面下方可查看审批方和审批进度。 图1 提交审批
此时TICS执行分析作业的SQL语句时,将不再受隐私规则的语法限制,此时必须由提供方确认字段用途后才能继续执行SQL语句。审批中或者审批通过后, 如果进行了修改SQL和保存操作,那么就需要重新提交审批。
提交完成后,在页面下方可查看审批方和审批进度。
图2 审批进度
- 数据提供方进入数据集所在代理,单击页面左侧的“审批管理”,查找待处理的审批项。点击“查看详情”。 图3 审批管理
详情页可以看到审批报告,报告内容包括作业发起方、会在该代理连接器上执行的SQL语句、各字段作用描述、是否在结果中可见(即明文显示)等。
图4 详情
说明:- 处于保护作业发起方的业务机密性, 这里会屏蔽所有和该审批者无关的字段信息,例如ID字段的描述中, 会屏蔽该字段具体和哪个字段做Join。
- 审批报告中的“字段是否在结果中可见”直接决定了该字段数值是否会明文显示,请根据字段业务类型慎重判断是否可见。
- 数据提供方确认风险后,在详情页填写审批意见,单击“同意”。
- 作业发起者执行作业,执行完成后,可在页面下方查看执行结果。 图5 执行作业
华为可信智能计算服务 TICS 官网链接:
https://www.huaweicloud.com/product/tics.html
欢迎参与最新版的体验。
tics服务交流社区:
https://bbs.huaweicloud.com/forum/forum-1348-1.html