提高数据库安全性的技术
2021-09-30高枫
高枫
数据库中含有大量个人信息,甚至包含一些敏感信息,为管理这些数据的公司带来了不少麻烦。现在,复杂的工具和技术使得数据库开发人员可以通过保持信息的私密性来整体提升数据库的安全性。
这些解决方案主要取决于对数学的巧妙应用。例如,一些最简单的机制看起来只是现代版本的密码,本质上是经典解码论的数字版本。其他更复杂的扩展,也进一步推动数学提供更多的灵活性和功能性。许多在实验室中试验了几十年的技术想法最终得到了研发和应用,成为现实。
这些算法正在成为巩固业务关系和确保准确“无欺诈”工作流程的基础。这些方法使公司可以更轻松地向客户提供个性化服务,同时保护他们的隐私。此外,这些方法还能够在不妨碍服务交付的情况下更好地遵守管理数据流的法规。数据库不应成为危及安全和隐私的切入口,以下技术可以帮助降低数据库安全风险并确保合规性。
基础加密
现代加密算法用一把钥匙加密数据,因此只有拥有钥匙的人才能读取数据。许多数据库可以使用AES等标准加密数据。这些解决方案最能防止硬件丢失(也可能是被盗)的情况,因为如果没有正确的加密密钥,数据仍然是安全的。
但是,这种基础加密并非一劳永逸的方法。如果攻击者能够侵入计算机,对称加密算法对运行中的计算机保护程度也是有限的。攻击者可以找到允许数据库处理合法操作的相同密钥。许多数据库提供了对“静止”信息进行加密的选项。例如,Oracle将其选项称为“透明数据加密(TDE)”,TDE可以对数据和日志文件进行实时I/O加密和解密。
差分隐私
这种技术以不同的方式部署数学。它没有将信息锁定在数字保险箱中,而是添加了精心调整的噪音量,以使其难以确定哪条记录对应哪个特定的数据个体。如果噪声数值正常,那么便不会影响整体统计数据,如平均值。也就是说,如果您从数据集中的年龄随机增加或减少几年,平均年龄将保持不变,但这样一来可能很难通过年龄寻找到特定个人。
该解决方案的效用各不相同。最好将数据集发布给想要研究数据的不受信任的合作伙伴,通常是通过计算数据平均值和数据集的大小。某种程度上来说,许多算法添加噪声做得很好,因为他们不会扭曲统计数据,了解哪些机器学习算法可以很好地处理失真位,是一个非常活跃的研究领域。
微软和谷歌提供将算法与数据存储的机器学习算法集成工具。例如,谷歌的Privacy-On-Beam将噪声添加机制与Apache Beam管道处理相结合。
哈希函数
这些计算有时被称为“消息验证代码”或“单向函数”,它将大文件归结为较小的数字,从而使其几乎无法逆转。给定一个特定的结果或代码,找到生成该特定代码的文件将花费很长时间。
哈希函数是区块链的重要组成部分,它以一种可跟踪和识别篡改的方式应用于数据的所有更新中,可以防止加密货币交易中的欺诈行为,许多人正在将这些技术应用于需要确保数据一致的数据库。添加哈希函数可以帮助企业应对数据合规性挑战。
美国国家标准与技术研究院(NIST)的安全散列算法(SHA)是广泛使用的标准集合。一些早期版本(如SHA-0和SHA-1)具有已知的漏洞,但较新的版本(如SHA-2和SHA-3)则被认为非常安全。
数字签名
像RSA或DSA这样的数字签名算法算是更为复杂的计算,它将散列函数的篡改检测特性与带有认证信息的特定个人或机构相结合。它们依赖一个只有责任方知道的秘密密钥,例如,加密货币将财富的所有权与知道正确密钥的人联系起来,跟踪的数据库可以包括验证特定交易的数字签名。
SNARK
简明的非交互式知识论证(SNARK)是一种更为复杂的数字签名版本,可以证明复杂的个人信息而不会泄露信息本身。这种技术依赖于更复杂的数学,有时被称为“零知识证明”(ZKP)。
包含SNARK和其他类似证明的数据库可以保护用户的隐私,同时确保自己合规性。例如,一个非常简单的例子可能就是数字驾驶执照,它可以证明一个人的年龄能够饮酒而又不会透露他们具体的出生日期。一些人正在研究将该技术应用于疫苗护照。
SNARK和其他非交互式证明同样属于研究热门。使用各种编程语言的数十种算法为新项目奠定了良好的基础。
同态加密
处理使用传统加密算法锁定的数据的唯一方法是对其进行解密,这个过程可以将其暴露给任何有权访问计算机的人。同态加密算法旨在对加密信息进行计算而无需对其进行解密。最简单的算法允许进行一次运算,例如将2个加密数字相加,更复杂的算法可以进行任意计算,但速度通常要慢得多。为特定问题寻找最有效的方法也是一个热门的研究领域。
作為该领域研究的先驱之一,IBM发布了一个工具包,用于将同态加密与适用于iOS和MacOS的应用程序集成。
“联邦”处理
一些开发人员将他们的数据集拆分成更小的部分,有时甚至出奇得小,然后将它们分发到许多独立的计算机中。有时这些位置会被打乱,因此无法预测哪台计算机将保存哪条记录。该解决方案主要用于软件包,这些软件包旨在通过并行运行搜索或分析算法来加速所谓的大数据工作。最初的目的是速度,但也可能导致增加攻击的副作用。
全分布式数据库
如果将一个数据集拆分成几块可以保护隐私,那么为什么不是十亿块或更多块呢?更常见的解决方案是将数据直接存储在创建和使用的位置,用户的智能手机通常具有大量额外的计算力和存储空间。如果几乎不需要集中分析和处理功能,那么避免将其传送到云服务器处理速度会更快、更具成本效益。
例如,许多浏览器支持复杂数据结构的本地存储。W3C标准包括用于具有键和值的文档样式模型的本地存储,以及用于更多关系模型的索引版本。
合成数据
一些研究人员正在通过随机生成新值来创建纯合成的数据集,但其方式遵循相同的模式并且在统计上基本相同。例如,一个名为RTI的研究智囊团创建了2010年美国人口普查数据的一个副本,其中包含随机住址的随机人群。这些人完全是虚构的,但他们的家庭住址和个人信息被选择为具有与真实值相同的基本统计资料。在许多情况下,研究人员可以用测试算法生成与处理真实数据一样准确的解决方案。
中介和代理人
一些研究人员正在构建工具来限制数据收集,并在存储数据之前对数据进行预处理。例如,Mozilla的Rally会跟踪想要研究互联网信息流的研究人员的浏览习惯。它会在调查期间安装一个特殊的插件,并在最后将其删除,该工具将人群的关系正式化并强制执行收集和聚合的规则。
无数据
无状态计算是大部分网络的基础,当以尽可能少的记录保存方式重新构建工作时,许多高效驱动器都能够发挥效用。在某些极端情况下,如果合规性允许,并且用户愿意接受极少(甚至没有)的个性化服务时,删除数据库可以最大程度地保护用户隐私。