
1.2.1 隐私防护
隐私防护技术通过加密、安全计算、访问控制等技术,保护隐私信息不被未经授权获取的实体访问,且具有可逆性。
1.加密
加密是最常用的隐私防护技术。个人信息经过加密后传输、存储和共享,只有拥有解密密钥才能解密并访问。加密虽然保护了数据的安全性,但是对数据不能直接进行统计、处理、加工,会增加数据使用的复杂度。针对加密数据处理,当前学术界和产业界广泛关注的两条技术路线是同态加密和基于可信计算环境的机密计算。
同态加密指对密文进行函数计算f(E(x)),解密后等价于对明文x进行相应的函数计算,即加密函数E(x)和函数计算f(x)可以交换顺序,D(f(E(x)))=f(x)。有了同态加密的支持,用户可以先将数据加密后交给云计算或者其他合作方,合作方对密文进行相应操作后,用户对密文解密得到对明文的计算结果。RSA[3]和Pailiar算法[4]分别具有乘法和加法同态的性质,但是通用的计算需要对加法和乘法同时具有同态性质。2009年,Gentry[5]提出了第一个全同态算法,引起了人们的广泛关注,激发了大量的后续研究。然而目前全同态算法的复杂度仍非常高,距离实际应用还存在较大的距离。
基于可信计算环境的机密计算聚焦计算过程中的数据保护。系统维护一个安全的空间,加密数据导入安全的内存空间后解密,对明文进行计算,调出空间时再加密。其他用户无法访问该安全的内存空间,这样就降低了数据在系统其他部分泄露的风险,同时保持对用户的透明性。特别是在多租户的公有云环境中,机密计算可保证敏感数据与系统堆栈的其他授权部分隔离。Intel SGX(Software Guard Extensions)是目前实现机密计算的主要方法,其在内存中生成一个隔离环境Enclave。SGX使用强加密和硬件级隔离确保数据和代码的机密性以防攻击,即使在操作系统、BIOS固件被攻陷的情况下仍然可以保护应用和代码的安全。
2.安全多方计算
安全多方计算(Multi-Party Computation,MPC)最早源自Yao[6]提出的安全两方计算协议“百万富翁问题”。计算参与方在不泄露自身敏感信息的条件下合作完成一个计算问题。随着研究进展,安全多方计算已经有一些实用案例。波士顿妇女劳动力委员会于2017年使用MPC来计算114家公司166 705名员工的薪酬统计数据[7]。出于隐私考虑,公司不会提供其原始数据,计算结果显示,波士顿地区的性别差距甚至比美国劳工统计局先前估计的差距还要大。为了计算从广告到实际购买的准确转换率,Google计算了在线浏览商品广告的人员列表与实际购买商品的人员列表之间的交集大小。为了在不公开列表具体数据的情况下计算出该值,Google使用了一种隐私保护求交集的协议[8]。尽管该协议效率还不理想,但其简单并且可以满足Google的计算要求。
3.访问控制
访问控制是实现隐私保护最重要手段。隐私保护的本质是将隐私信息在适当的时间、以适当的方式分享给被授权的实体。传统的访问控制系统中,权限是由系统管理者制定并实施,常用的访问控制策略包括自主访问控制、强制访问控制、基于角色的访问控制等。在隐私保护场景中,权限和访问控制策略基本是由数据所有者来设置。在社交网络、因特网服务等应用环境中,隐私信息往往会被好友转发,在不同服务商间跨系统、跨生态圈传播,因此延伸控制成为隐私保护场景中面临的最大问题。2016年,李凤华等[9]提出了面向网络空间的访问控制模型和延伸控制模型。
加密也可以与访问控制相结合,基于属性的加密(Attribute Based Encryption,ABE)是一种有效地实现访问控制的加密方法[10]。在ABE中,用户拥有若干属性,每个属性分配一个公私钥对。当加密一个明文时,加密方根据访问控制策略,选取相应属性的公钥构造加密密钥,此加密密钥可对明文直接加密,或对明文的加密密钥进行加密;如果用户拥有符合访问控制策略对应的属性私钥时,选取相应属性的私钥构造解密密钥,类似地,就可以解密相应的密文。ABE本质上是一个公钥加密体制,加解密速度比较慢。