数据库里存储了大量个人信息,包括一些非常敏感的资料,让必须管理数据库的公司十分头痛。如今,运用各种高级工具和技术,数据库开发人员可以在保持信息私密的状态下放心执行各种操作。
这些解决方案靠的是数学的巧妙应用。其中一些最简单的机制不过是密码的现代版本,本质上就是经典解码轮的数字版。其他方案是更为复杂的扩展,利用数学交付更多灵活性与可靠性。大部分解决方案的创意已在实验室里流传了几十年,变得足够稳定,值得信任,最终形成实用版本。
这些算法正成为巩固业务关系并确保准确可信工作流的基础,方便企业在保护自身秘密的同时向客户提供个性化服务。而且,此类方法还能方便公司在不阻碍服务交付的情况下监管数据流,实现更好的合规。
下面我们就列出便于企业更放心信任数据库的11种工具和技术。
1. 基本加密
有时候,最简单的解决方案就足够了。现代加密算法用一个密钥给数据上锁,只有持有该密钥的人才能读取数据。很多数据库都可以采用AES等标准加密数据。这些解决方案能够有效对抗可能由盗窃等造成硬件遗失情况。没拿到正确的加密密钥,数据就依然是不可窥探的黑匣。
不过,这种方法存在局限,对称加密算法对攻击者潜入运行中计算机的情况防护有限。攻击者可能会找出数据库用来处理合法操作的同一密钥。很多数据库提供加密“静态”信息的选项。比如说,Oracle就将其此类选项称为“透明数据加密”,用以强调数据库开发人员不用为此多费心思。
2. 差分隐私
这项技术以另一种方式利用数学,不是将信息锁在数字保险柜里,而是添加精心构造的噪声,让人难以确定哪条记录对应哪个人。只要噪声添加正确,就不会导致许多统计数据失真,比如平均值。即使在数据集中随机抽取记录给年龄字段增加或减少几岁,平均年龄也会保持不变,但就难以通过年龄来找到特定的人。
这类解决方案的效用各不相同,最适用于向希望通过计算平均值和集群大小来研究数据的不可信合作伙伴发布数据集。很多算法都能很好地往数据集中添加噪声,同时不会造成太多聚合统计数据失真。业界目前仍在探索哪种机器学习算法能够有效处理经扭曲的数据。
微软和谷歌推出了将此类算法与数据存储和机器学习算法集成的工具。例如,谷歌的Privacy-On-Beam,就将噪声添加机制与Apache Beam管道处理整合到了一起。
3. 散列函数
此类计算有时候也称为“消息认证码”或“单向函数”,以基本上无法逆向的方式将大文件缩减为一个较小的数字。给定一个特定的结果或认证码,想借此找出生成这个认证码的文件是很难的,要花费大量的时间。
此类函数是区块链的重要组成部分,区块链将这些函数应用到数据的所有更改上,以便跟踪数据变更和识别篡改。可以运用此类技术防止加密货币交易欺诈,或者应用到需要保证数据一致的其他数据库上。而且,加入这些函数还有助于满足合规要求。
美国国家标准与技术研究所(NIST)提出的安全散列算法(SHA)就是广泛使用的一组标准。早期版本,比如SHA-0和SHA-1,存在已知缺陷;但更新的版本,比如SHA-2和SHA-3,就非常安全了。
4. 数字签名
RSA或DSA等数字签名算法将散列函数的酸钙检测属性与证明此信息的特定人员或机构结合起来,是更加复杂的计算形式。数字签名依赖仅责任方知晓的秘密密钥。比如说,加密货币就将财务所有权与知晓正确密钥的人绑定到一起。跟踪个人责任的数据库可以纳入数字签名,以之验证特定交易的有效性。
5. SNARK
简洁非交互式知情证明(SNARK)是高级版数字签名,可以在不泄露信息本身的情况下证明复杂个人信息。这种手法依赖名为“零知识证明”(ZKP)的复杂数学方法。
引入SNARK和其他类似证明的数据库可以保护用户的隐私,同时确保合规。举个最简单的例子,一张数字驾驶证就能在不透露年龄的情况下,证明某个人达到饮酒年龄了。还有人在探索将此技术应用到疫苗护照上。
SNARK和其他非交互式证明是该领域较活跃的研究方向。多支研究团队采用不同编程语言形成了此类算法的数十个实现,为新项目打下了良好基础。
6. 同态加密
处理用传统加密算法锁定的数据只能先解密之,但解密过程可能将数据暴露在能接触解密计算机的任何人面前。同态加密算法旨在不用解密就能对加密信息执行计算操作。最简单的算法可以执行两数相加等算术运算。更复杂一些的算法可以进行任意计算,但速度通常会非常慢。目前业界正在找寻特定问题的最高效解决办法。
IBM是该领域的研究先行者,已推出将其同态加密与iOS和MacOS应用集成的工具集。
7. 联合处理
一些开发人员会将数据集划分成小块,有时候非常非常小,然后分发到许多独立计算机上。这些位置可能很散乱,所以无法预测哪台计算机持有哪条记录。此类解决方案常依赖各种软件包,旨在通过并行执行搜索或分析算法来加速处理所谓的大数据。其初衷是速度,但增强了抗攻击性倒是个意外之喜。
8. 完全分布式数据库
如果将数据集划分成几块能够保护隐私,那为什么不直接划分成几十上百亿块?更常见的解决方案是直接在数据创建和使用的地方存储数据。用户的智能手机通常拥有大量额外算力和存储空间。如果对集中分析和处理的要求极低,那避免将数据传到云端服务器的做法就相当省时省力省钱了。
比如说,很多浏览器都支持本地存储复杂数据结构。W3C标准包含具有键和值的文档样式模型的本地存储,以及适用于关系模型的索引版本。
9. 合成数据
一些研究人员正在创建完全合成的数据集,这些数据集通过随机生成新值构建,但遵循相同的模式,且在统计上基本相同。例如,名为RTI的研究智库创建了一版2010年美国人口普查数据,其中包含居住地址随机的随机人员。这些人完全是虚构的,但其家庭住址和个人信息经过挑选,具有与真值相同的基本统计特征。在许多情况下,研究人员可以测试算法并生成与处理真实数据一样精确的解决方案。
10. 中介与代理
一些研究人员构建的工具可以限制数据集并在存储前先预处理数据。比如说,Mozilla的Rally就可为希望研究互联网信息流的研究人员跟踪浏览习惯。该工具会在研究期间安装一个特殊的插件,然后在结束时再卸载掉。该工具形式化描述关系,并强制执行有关收集和聚合的规则。
11. 无数据
无状态计算是网上诸多事项的基础,且大多推动了尽可能减少记录保存的效率提升。一些极端案例中,如果合规要求允许无状态计算,用户也愿意接受不那么个性化的服务,那么删除数据库可以最大限度地保护隐私。