多方SQL计算场景下,如何达成双方共识,确认多方计算作业的安全性

安全多方计算在SQL场景下的限制

随着MPC、隐私计算等概念的流行, 诸多政府机构、金融企业开始考虑参与到多方计算的场景中, 扩展数据的应用价值。

以下面这个场景为例,  银行可能希望获取水电局和税务局的数据,来综合计算得到各公司的信贷评分等级。

通过TEE、MPC等策略,可防止中间数据在计算过程中发生泄漏。

但计算结果最终会返回给作业发起方, 例如发起方试图查询 [企业id, 用水量+ 用电量]时 ,   隐私计算平台只能保证用电量、用水量单独不泄露, 无法保证用水量和用电量的相加值不被泄露,毕竟这个相加值是作为计算结果呈现的。 

因此对于“计算结果是否会泄露敏感数据”这个问题,是TEE、MPC等策略所无法解决的。


常见解决策略

一、默认的隐私策略

隐私计算平台通过设置复杂的隐私策略,指定少数sql场景, 来强行限制敏感数据的使用。

例如直接拒绝id字段、敏感数据字段被明文暴露等。

二、使用隐私算法对敏感数据的聚合结果进行保护

此类算法可以保护敏感数据的聚合结果无法被逆推, 但仅限于敏感数据的聚合结果,如果作业发起方有算法应用之外的需求,则需要依赖其他更为人工的方式来预防。

三、基于审批的作业共识

但由于业务场景复杂,如果规则限制过强,可能导致阻止了正常逻辑的作业,  如果限制过弱,则可能导致敏感数据被恶意套取丢失。

因此在多方SQL计算时,各数据提供方和作业发起方应该能够针对作业内容达成共识,确认该作业对数据的使用是正常的,合理的。

TICS作业审批功能,达成计算共识

华为tics可信智能计算服务支持作业审批功能,当试图发起某SQL多方作业时,数据提供方可进行审批,确认是否允许这种数据的用法。

具体操作步骤如下:

  1. 联盟管理员登录TICS控制台。
  2. 进入TICS控制台后,单击页面左侧联盟管理。进入联盟管理页面后,单击联盟名称进入联盟详情页。
  3. 联盟管理员在联盟详情页右上角单击“开启作业审批”。开启之后,所有作业就都需要通过审批后,才能执行。
  4. 作业发起方进入自己所属的代理,编写完作业之后,单击“提交审批”。在页面下方可查看审批方和审批进度。


    图1 提交审批

    此时TICS执行分析作业的SQL语句时,将不再受隐私规则的语法限制,此时必须由提供方确认字段用途后才能继续执行SQL语句。审批中或者审批通过后, 如果进行了修改SQL和保存操作,那么就需要重新提交审批。

    提交完成后,在页面下方可查看审批方和审批进度。

    图2 审批进度


  5. 数据提供方进入数据集所在代理,单击页面左侧的“审批管理”,查找待处理的审批项。点击“查看详情”


    图3 审批管理

    详情页可以看到审批报告,报告内容包括作业发起方、会在该代理连接器上执行的SQL语句、各字段作用描述、是否在结果中可见(即明文显示)等。

    图4 详情
    说明:
    • 处于保护作业发起方的业务机密性, 这里会屏蔽所有和该审批者无关的字段信息,例如ID字段的描述中, 会屏蔽该字段具体和哪个字段做Join。
    • 审批报告中的“字段是否在结果中可见”直接决定了该字段数值是否会明文显示,请根据字段业务类型慎重判断是否可见。


  6. 数据提供方确认风险后,在详情页填写审批意见,单击“同意”
  7. 作业发起者执行作业,执行完成后,可在页面下方查看执行结果。


    图5 执行作业

华为可信智能计算服务 TICS 官网链接:

https://www.huaweicloud.com/product/tics.html

欢迎参与最新版的体验。

tics服务交流社区:

https://bbs.huaweicloud.com/forum/forum-1348-1.html


(完)