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