匿名的算力

在动态临时ID的框架内,我们已经可以避免数据的滥用和隐私保护。但是为了更大范围的将数据进行关联,创造新的商业,我们还需要在IDFA这类通用ID的使用上,进一步匿名化。数据可以流通和计算,但是需要限制在某种“安全区”的范围内。并在计算完毕之后,原始数据自动解体,只将计算结果脱敏后返回给用户。这种匿名计算流程,简称为安全多方计算secure MPC,非常适合在区块链的智能合约 虚拟机环境里实施。但虚拟机通用计算的复杂度高,软件的解决方案需要包括保密数据分享和零知识证明等等,即使看似简单的计算,也需要定制化设计。

与算法层并列配合的,是底层设备的计算与通信安全。从独立IC芯片的Trusted Platform Module (TPM) 到在基本芯片上的隔离分区Trusted Execution Environment (TEE) ,技术在不断普及。目前低cache的应用场景主要是保存硬件的私钥,用来做安全隔离的签名验证,比如指纹登录。之后隔离区的内存逐渐扩大,可以在服务器上做更加复杂的封装式安全计算。目前主流芯片厂商都已推出对应的产品线:

目前匿名算力还是一个很新的领域,虽然发展了不少应用,但也有很多评论者认为存在漏洞。匿名算力和计算机安全一样,在攻防之间共同进步,简单的移植应用会带来很大风险。这里我们简单讨论一些攻击的可能,以优化配套的防御措施。

黑盒攻击

即使将算力保护在黑盒之内,也仍然存在从外部输出反推保密数据的破解方式。比如有一个黑盒子可以根据不同性别、年龄的组合来推荐书籍。这里性别和年龄的组合只有10多种,但是可选的书籍有上百本,不论盒子里的算法如何,最后都可以简化为10多个输入和输出的一一对应关系。破解方只需要穷举所有可能的输入,并记录下输出,就可以很简单的得到这种关系。当某个用户使用这个黑盒时,破解方不需要知道用户的输入,只根据输出就可以反推该用户的性别的年龄。当然我们可以通过安全通信保护用户和输入和输出,但如果这个黑盒还可以直接从第三方下单买书的话,等于用户的性别年龄已经泄露给了书商。为了保护这种算力层的隐私泄露,第一种方法和隐私交易所一样,针对每一个算力黑盒使用动态虚拟ID。破解方即使知道了隐私字段,但也无法和用户本身建立关联。第二种方法必须保证盒子输入的参数空间要远远大于输出的变量空间,使得反函数有并列多解。比如个人信用服务,通过上百个纬度的参数,推出10个等级的信用分级。这种压缩后的变量输出就很难反推具体的信用参数。当然进攻方也会发展出一些新的应对,在各大电商平台,为了预测用户账户的人口属性,可以说不遗余力。

当攻击方执行的查询权限增大时,还有一种特殊的差分攻击。比如黑盒里面储存了用户是否参与某次促销购物的记录,参与者记为1,没参与的记为0。我知道昨天晚上有一个人去活动现场了,但我不知道她是不是买了东西。那我就查询昨天晚上以后的参与者合计,减去晚上以前的参与者合计,就可以推断这个人的参与值。为了避免这个问题,可以在输入层或者统计输出时加入干扰噪声,类似通信和反编译领域的扰码,这种保护叫做差分隐私(Differential Privacy)。干扰的大小在保持查询精确性和隐私保密性之前平衡,优化的目标就是在增加一条记录,和减少一条记录两种情况下,查询结果的误差足够小。假设我们得出分析结论,年轻女性更愿意参加这类促销。不论昨天晚上去现场的那个人有没有被记录下来,下一次的促销还是会根据规律推送她。而即使她的行为被记录下来了,差分查询的结果也是接近的,无法准确得知她的原始行为。这样该知道的规律总是会知道,而不该知道的细节都不知道,就同时保证了实用性和安全性。Oasislabs就曾和uber合作类似开源项目。

另一个需要保护的还有程序本身。以信用模型为例,在开放的比特人信用体系里,面对相同的基础数据,可以使用多个评分模型。最后经过市场竞争来对模型服务定价,所以模型原理在这里作为资产是需要保护起来的。区块链虚拟机运行的是二进制码,面对反编译的保护有一些现成方法。但是随着神经网络技术的发展,不需要反编代码,直接通过Black-Box Attacks就可以建立和黑盒模型无限接近的等效神经网络模型。这里黑盒内如果也是神经网络模型的话,这种方法甚至能找到原模型设计者都难以发现的对抗样本,使模型在特定输入下失效。虽然在区块链上实施攻击要消耗很大的手续费并且容易暴露,但攻击者可以伪装为矿工,直接获得程序二进制码在本地进行破解测试。面对这种情况可以先通过Black box Gradient masking来降低输出的变量空间,在图像识别里特指隐藏分类置信度的数值信息。另外也可以对输出结果进行动态ID的映射保护,将映射服务放在自控中心化平台,避免被线下暴力测试。

results matching ""

    No results matching ""