数据泄露和暴露如今已非常普遍,很难跟踪所有的泄露事件,更难有时间仔细考虑周全的解决方案。但或许是出于必要性考虑,数据库巨头 MongoDB 花费两年时间开发出一套全新的数据库加密机制,直接指向减少这些破坏性事件。他们的秘密武器到底是什么呢?回归本源,大道至简。
以各种方式加密数据库的思路并不新鲜。但实际操作中,数据能受到保护的时间和位置,却有着诸多限制。数据库往往在 “服务器端” 加密,不是随便哪个陌生人都能访问数据库并查询其中信息的,但经过授权的用户就可以访问其中部分或全部信息。不过,这也意味着只要具备对数据的完整访问权,比如数据库操作员和管理员,就可以解密并获取库中所有数据。这样一来,盗取了凭证的外部黑客和被赋予过多权限的恶意内部人便都会对数据形成威胁了。
其他类型的加密方案通常既复杂又花费颇多,所以 MongoDB 这样的公司花了很长时间来提供既好用又安全的数据库加密机制。而鉴于 Adobe 和谷歌这种体量的大公司依赖 MongoDB 数据库架构,该解决方案可能会产生巨大影响。
MongoDB 信任与数字伦理副总裁 Davi Ottenheimer 称:之前没人那么做,是因为当时不像今天那么容易察觉用户的需求。
如今频频曝光的数据库泄露事件,最终开始让公司企业意识到了坚实加密的价值所在。
MongoDB 将该新功能命名为 “字段级加密” (Field Level Encryption)。其运行机制有点像端到端加密消息传输——互联网传输过程中混淆数据,只向发家和收家揭示数据真身。这种 “客户端” 加密方式下,运用字段级加密的数据库不仅要求系统登录,还额外要求持有特定密钥才可以在用户设备本地处理和解密相应的数据块。这意味着 MongoDB 本身和云提供商都不能访问客户数据,数据库管理员或远程经理也无需拥有可访问所有数据的权限。
而对普通用户而言,一切看起来并没有什么太大区别。如果凭证被盗,且未启用多因子身份验证,那攻击者便仍然能够访问受害用户所能访问的全部内容。但该新功能的主要目的是要杜绝单点故障。部署了字段级加密后,黑客即便盗取了管理员用户名和密码,或者找到了可获取系统权限的软件漏洞,也无法使用这些漏洞获取可读数据。
新机制的重点在于以客户会实际采用的方式提供安全。即便有安全机制也不愿意实际采用可算是网络安全领域的经典症结了。Ottenheimer 表示:
我们非常注重便于开发人员部署到其发布中,想让开发人员能够尽快发布新产品和代码。
字段级加密基于久经检验的公钥加密标准,而且是开源的,可接受加密分析社区的广泛审查。这一审计过程其实已经开始了,只是将于下周开始的贝塔测试阶段中会大幅扩大审计范围。布朗大学密码学家 Seny Kamara 一直在进行字段级加密的评估工作。他表示,MongoDB 已经根据他研究团队的反馈做出了一些修改。
该加密技术还很新,与多数密码技术一样在效率和安全性方面也做了取舍。MongoDB 让加密社区参与进来的举动堪称突破,广受好评。主动让新加密方式接受分析绝对是无比正确的做事方法。
作为防御机制,字段级加密也有一些限制与注意事项。最重要的是,MongoDB 数据库是所谓的 “非关系型” 数据库,可容纳各种非结构性数据,并随数据库增大扇出到多个服务器上。但尽管 MongoDB 提供了最流行的非关系型数据库,所谓的 SQL 数据库,也就是关系型数据库,总体上却仍更为普遍。这意味着字段级加密和其它类似的东西不会很快应用到每一个数据库上。另外,该新功能也给跨云提供商管理不同系统的加密密钥造成了挑战,还让数据库系统执行特定类型的信息分类与查询动作制造了麻烦——因为数据经过了混淆,是不可读的。
尽管如此,根据 MongoDB 的研究,字段级加密是数据库加密的重要一步——重要到该公司希望其他数据库供应商也开始积极迈出的一步。MongoDB 产品安全主管 Kenn White 表示,该公司将在贝塔测试员及其他相关人士的帮助下突破更多限制,进一步提升字段级加密方法的可用性。重点是,该新防御方法旨在尽可能地限制对数据的访问。这一功能就好像是将贵重物品装进保险箱,然后再将保险箱放到上锁的仓库里,双重保险。即便有人迫使仓库提供商绞断锁链,也还有保险箱等着他们费工夫解/切开。
不过,真正意义上的安全万灵药是不存在的。White 称:
如果你把保险箱连同断线钳和便利贴一起放到办公室外的地板上,那好吧,我无话可说。但如果你有机密工作负载,如今你就无需信任 MongoDB 了。如果你有个放在云存储桶中的备份——没人能读取加密的字段。你可以进行高度敏感的工作,同时还能防止内部人攻击或内部数据泄露。这种情况真是好太多了。