默认情况下,网站不够安全。寻找一个仅以“http://...”开头的网站在过去几年变得越来越难,这既是因为业界终于意识到网络安全“是一回事”,也是因为客户端和客户端之间建立和使用https连接服务器变得更容易了。类似的转变可能以不同的方式发生在云计算、边缘计算、物联网、区块链、人工智能、机器学习等领域。我们早就知道我们应该在存储和传输时对静态数据进行加密网络,但在使用和处理数据时对其进行加密既困难又昂贵。可信计算(使用可信执行环境(TEE)等硬件功能为数据和算法提供此类保护)可以保护主机系统或易受攻击环境中的数据。我写过好几篇关于TEE的文章,当然还有我与NathanielMcCallum共同创立的Enarx项目(见《给每个人的 Enarx(一个任务)》和《Enarx 迈向多平台》)。Enarx使用TEEs提供独立于平台和语言的部署平台,以便您可以在不信任的主机上安全地部署敏感应用程序或敏感组件(例如微服务)。当然,Enarx是完全开源的(顺便说一句,我们使用Apache2.0许可证)。能够在您不信任的主机上运行工作负载是可信计算的承诺,它扩展了使用静态敏感数据和传输中数据的通常做法:存储:您对静态数据进行加密,因为您不完全信任它是您的基本存储架构。网络:您需要对传输中的数据进行加密,因为您并不完全信任您的底层网络基础设施。计算:您需要加密您正在使用的数据,因为您不完全信任您的底层计算基础设施。关于信任我有很多话要说,上面陈述中的“完全”这个词很重要(我在重新阅读我写的这篇文章时添加了这个词)。在任何一种情况下,你都必须在某种程度上信任你的基础设施,无论是传送你的数据包还是存储你的块,例如,对于计算基础设施,你必须信任CPU和与之相关的固件,因为如果你不这样做相信他们,你不能真正计算(有像同态加密这样的技术开始提供一些可能性,但它们仍然有限,它们还不够成熟)。鉴于已发现的一些CPU安全问题,有时自然会质疑CPU是否应该完全信任,以及它们是否完全安全,不会受到对其所在主机的物理攻击。这两个问题的答案都是“否”,但考虑到大规模可用性和普遍部署的成本,这已经是我们目前拥有的一项比较好的技术。为了解决第二个问题,没有人假装这项技术(或任何其他技术)是完全安全的:我们需要做的是考虑我们的威胁模型并确定TEE在这种情况下是否满足我们的特定需求。足够的安全保护。关于第一个问题,Enarx采用的模型是在部署时决定是否信任某个特定的CPU组。例如,如果发现供应商Q的R代芯片存在漏洞,很容易说“我拒绝将我的工作部署到Q的R代芯片,但仍然可以部署到Q的S型号、T型号和U型号模型芯片和来自任何P、M和N供应商的任何芯片。”我认为这里发生的三个变化导致了现在对机密计算的兴趣和采用。硬件可用性:仅在过去6-12个月内,支持TEE的硬件才开始广泛可用,目前市场上主要有Intel的SGX和AMD的SEV。我们希望在未来看到其他支持TEE的硬件示例。行业准备:正如越来越多的人将上云作为应用程序部署模型所接受的那样,监管机构和立法者正在提高对所有类型组织保护其管理的数据的要求。组织开始寻求在不受信任的主机上运行敏感程序(或处理敏感数据的应用程序)的方法,更具体地说,是具有不能完全信任的敏感数据的主机。这并不奇怪:如果芯片制造商看不到这项技术的市场,他们就不会在上面花很多钱。Linux基金会机密计算联盟(CCC)的成立是业界对如何找到使用加密计算的通用模型并鼓励开源项目使用这些技术感兴趣的一个例子。(红帽发起的Enarx是CCC项目。)开源:和区块链一样,机密计算是绝对明智使用开源的技术之一。如果您要运行敏感程序,则需要信任为您运行的程序。不仅是CPU和固件,还有在TEE内执行工作负载的框架。可以说,“我不信任主机及其上的软件堆栈,所以我打算使用TEE”,但如果您对TEE软件环境了解不够,那么您就是在交易一种软件对另一种不透明。对TEE的开源支持将允许您或社区(实际上是您和社区)以专有软件无法实现的方式检查和审核您运行的程序。这就是为什么CCC是Linux基金会(致力于开放开发模式)的一部分,并鼓励与TEE相关的软件项目加入并成为开源项目(如果它们尚未开源)的原因。我认为在过去的15到20年里,硬件可用性、行业准备和开源一直是技术变革的驱动力。区块链、人工智能、云计算、大规模计算、网络规模计算、大数据、互联网商务,都是这三点同时发挥作用的例子,给行业带来了巨大的变革。总的来说,安全是我们几十年来听到的承诺,但至今仍未兑现。老实说,我不确定将来是否会发生这种情况。但随着新技术的出现,用例特定的安全性变得越来越实用和无处不在,也越来越受到业界的期待。那么,机密计算似乎有望成为下一个重大变革—而您,我亲爱的读者,可以加入这场革命(毕竟它是开源的)。
