如何安全开放 API 数据?

本期 Eotalk 我们来聊聊安全。最近网络安全事故频发,比如前段时间的公民数据泄露、美的受到攻击勒索千万等事件。我们邀请到 奇安信 负责数据安全的子公司技术负责人—简川力,一起来聊聊怎么安全地开放数据、使用数据、使用接口等等。👏👏

image.png

刘昊臻: 我们 Eolink 在跟用户沟通时发现, API 开放数据的需求是非常旺盛的。从企业希望搭建数字中台快速通过内部 API 搭建应用,到银行和政府希望通过开放 API 促进企业间合作的效率,如今 API 开放无处不在。

川力,你所了解到 API 开放的场景有哪些呢?

简川力: 政府单位可能会跟银行合作,银行就会用到政府的数据。以前可能直接去采或者直接去拿,这种方式都是不规范或违规的,现在基本上是不允许了。所以,一般中间会做一些服务,通过模型、通过 API、或者通过一些其他的方式给银行开放,银行就可以拿到这些数据,比如咱们贷款相关的、你的征信数据或者你的社保数据之类的,这是一类场景。

还有一类,在公安里面其实也会有类似的情况。公安跟公安内部,其中有一些部门,比如说像刑侦部门或者网安部门,数据是非常保密的,不能因为你也是公安内部其他部门的人,就让你直接来去访问,因此要留痕、审计之类,就需要用 API 去做开放。

刘昊臻: 你讲的两个场景,其实我们都有遇到过。数据开放它经过了好几个阶段,以前最早的时候,我们可能直接连数据库,给你一个相对安全的账号,或者很多年前会要求必须带 U 盘或者是硬盘,去现场拷数据才能带走。这种方式效率是很低的,同时它其实并不安全。

第二个,后期出现了远程调用,它其实也是在数据库的基础上做的远程调用。就安全性而言,很多鉴权和操作过程的监控等方面都做得不是很好。现在比较常见的做法,其实是通过 API 的方式去开放接口。像银行跟政府之间、一些企业跟供应商之间、企业与合作企业之间,有些时候是企业内部的敏感数据,不好直接开放,就可以通过接口来控制哪些供应商或哪些合作方,它能够各自用哪些数据、用哪些字段、用什么访问方式、有效期等等。

包括像刚刚聊到的公安部门,我们也有一些类似的客户。因为公安内部很多部门之间,它会通过一个类似于叫 API 的开放平台,或叫能力开放平台,所有系统的东西都在上面。如果要用的话需要先申请,审批通过之后才能调用。其实 API 的开放和调用已经是非常普及的场景了。

现在我们再去看所谓的 API 开放,怎么样去把接口开放出来,它可能不是一个很难的事情。最简单的就是后面是一些微服务,前面搭一个网关。但即使如此还是会有很多数据泄露的问题。像银行或政府,他们其实还是会对于数据开放上有很多深度的要求的。

川力,在你们所接触到的场景里面,大家会在 API 开放过程中面临什么样的挑战呢?

简川力: 现在大家可能说的比较多的是,API 服务申请个权限、限制一下时间段,或者限制一些字段数据。但是像国家的数据,安全保护好以后还要分类分级,有数据安全的治理规范。而且有些数据跟国家机密还有关系,不只是影响社会关系这么简单,所以他们的要求就更高了。
用户通过 API 访问了数据,虽然通过了鉴权,但是没有办法限制二次分发,或者再去做一次倒卖。他们更希望数据不出去,并且还能够给别人提供 API 的服务或者是数据的服务,所以现在多了一些隐私计算等新的解决方案。

很多时候不管是银行、企业,还是政府单位,他们更多想的是在我的可控环境里面用数据,用完了只是把结果拿走,而不是把我的数据拿到你那去做计算。

刘昊臻: 就是你可以拿结果,或者在不拿数据的情况下,去把你想要的结果给算出来。

简川力: 没错。其实开放 API 给别人,他真正去用 API 无非也就是要在它的应用上去用你的数据。不管是做机器学习、深度学习,或者是去做一些加减乘除、规则匹配,实际上它的过程也是这样子的。只不过现在可能更多的希望可以把这个过程再提前,能够在小范围将数据保存起来,这是最好的。

image.png

刘昊臻: 刚刚聊到隐私计算,对于一般开发者的应用场景下,大家可能比较少接触这个概念或者没有听过这个词,能否把隐私计算再展开讲讲?什么场景下面会用的比较多?

简川力: 其实这个概念很早就有了,但是在这个过程之中可能有很多不同的实现方式。比如我可以通过加密算法,把数据加密然后再做加密计算,这是其中一种方式。

还有就是我可以用差分隐私算法把数据查出来,可能它中间插入的一些值,让数据跟原来的不一样,但是让它跟我的原始数据的分布保持一致。

还有就是我们知道的联邦学习,比如在 2018 年以前,上海有很多的黑产专卖数据,银行什么的都去买这些数据,拿着这些个人数据去做风控的提升,或者贷款信用的提升,一些保险行业可能也会去买这些数据。
https://www.xiaohongshu.com/discovery/item/6310bd780000000008021382
https://www.xiaohongshu.com/discovery/item/6310b1ae00000000080211d1
https://www.xiaohongshu.com/discovery/item/630e0962000000001203a7d3
https://www.xiaohongshu.com/discovery/item/6310afd8000000001203a758

但是现在不可以这样做了。这些数据被归还到了上海大数据局,上海大数据是事业单位,是不可能卖数据的。这个时候,如果银行要用这些数据,又不能直接给,你单独运用他的数据是不行的,你还得结合自己的数据去做,两个还不能够数据交互,只能去做计算的交互。

目前比较多的使用方式是用同态加密做安全多方计算,还有就是联邦学习,我们只是交互中间的一些参数去优化我的算法,不要去交互真实的数据。