开放标准赋能通用硬件零信任

0 阅读7分钟

文章探讨了机密计算因依赖昂贵硬件而面临的挑战。通过 SPIFFE 和 SPIRE 等开放标准,结合 Edera 系统利用轻量级虚拟机和管理程序实现隔离,可在通用硬件上构建零信任架构和强大的工作负载身份验证。这种方案在不牺牲成本和复杂性的前提下,为现代分布式系统提供了机密计算的诸多好处,对企业安全至关重要。

译自:How open standards enable zero trust on commodity hardware

作者:Marina Moore

机密计算一直以来都充满希望。工作负载可以处理敏感数据,同时即使与运行它们的基础设施隔离,这一理念重塑了许多企业安全团队对信任的看法。多年来,我们一直认为数据在静态和传输中应加密,但使用中的数据仍然暴露给底层平台。机密计算旨在弥合这一差距。

阻碍其普及的并非缺乏兴趣,而是对专业且昂贵硬件的依赖。可信执行环境需要特定的CPU、受限的实例类型以及操作上的权衡,这使得它们超出了许多实际部署的范围。结果是,企业关注的威胁模型与它们实际能够部署的工具之间存在日益增长的不匹配。

与此同时,开源领域正在发生一些重要的事情。一组身份和隔离原语正在悄然成熟,演变为一个基础设施层,与支撑现代网络的公钥基础设施非常相似。这些系统不再加密浏览器和服务器之间的会话,而是为工作负载本身建立加密身份。

让我们看看这些构建块是如何结合的,为什么工作负载身份正在成为零信任架构的核心,以及像 Edera 这样的系统如何利用开放标准,在不需要新硬件的情况下,提供机密计算的诸多好处。

SPIFFE 和工作负载身份的含义

为了理解其发展方向,有必要定义几个术语。工作负载身份是指软件应能够证明其自身是什么以及运行在哪里,而不依赖于网络位置或静态凭证。

工作负载证明是在授予身份之前验证这些属性的过程。零信任是假设基于网络位置不存在隐式信任,并且每次交互都必须经过认证和授权。机密计算,从最严格的意义上讲,旨在确保工作负载即使在宿主平台之外也能保持隔离和可验证。

SPIFFE,即面向所有人的安全生产身份框架,是一个直接解决工作负载身份问题的规范。它定义了工作负载如何被识别、这些身份如何表示以及它们如何在分布式系统中进行验证。SPIFFE ID 是一个结构化标识符,绑定到一个信任域和特定工作负载。它不是秘密,也不与 IP 地址或长期凭证绑定。相反,它只有在与称为 SVID(SPIFFE 可验证身份文档)的加密文档配对时才变得有意义。

SVID 将 SPIFFE ID 绑定到密钥对和签名机构。这使得工作负载可以使用短生命周期的凭证相互认证,这些凭证可以自动轮换。从开发人员或操作员的角度来看,这看起来很熟悉。它类似于证书在网络上的工作方式,但主体是工作负载而不是域名。

重要的区别在于 SPIFFE 不规定如何建立信任。它定义了接口和格式,将证明留给底层平台。正是这种灵活性使其如此强大。SPIFFE 可以位于云提供商元数据、操作系统信号之上,或者,在我们的案例中,位于基于管理程序的信任模型之上。

SPIRE 作为信任的运行时

SPIRE 是 SPIFFE 规范的参考实现。SPIFFE 定义了工作负载身份的形态,而 SPIRE 则定义了它在实践中如何颁发和管理。它引入了两个主要组件:SPIRE Server 和 SPIRE Agents。

SPIRE Server 充当信任根。它持有信任域的签名密钥,并执行注册策略,定义哪些工作负载被允许接收哪些身份。SPIRE Agent 运行在每个节点上,执行两个相关任务。首先,它通过节点证明来证明节点本身的身份。然后,它代表在该节点上运行的进程执行工作负载证明。

节点证明决定了一台机器是否首先应被信任来托管工作负载。工作负载证明则回答了特定进程是否符合接收给定身份的标准。至关重要的是,工作负载从不随身携带秘密。它们在运行时从本地代理请求身份,并且只有在证明成功时才收到 SVID。这些身份是短生命周期的,并且会自动轮换,从而显著减小了泄露的影响范围。

正是这种分离使得 SPIRE 能够完美融入零信任模型。信任是明确地、持续地建立的,并且基于可验证的属性,而不是基于对环境的假设。

结合区域和隔离

Edera 从不同的起点着手隔离。Edera 不在工作负载之间共享内核,而是在行为类似于轻量级虚拟机的区域(zones)内运行应用程序。每个区域都有自己的内核,并通过具有小型可信计算基的类型-1 管理程序进行隔离。这从信任边界中移除了共享内核,并消除了整类容器逃逸攻击。

在这种模型中,区域成为自然的信任单元。区域不仅仅是一个调度结构,更是一个安全边界。这使其成为工作负载身份的理想基础。挑战在于向远程方证明工作负载确实在这样的区域内运行。

这就是 SPIFFE 和 SPIRE 的用武之地。通过将节点证明根植于管理程序本身,Edera 可以使用管理程序作为底层平台授权。管理程序可以担保区域的存在和完整性,而标准的工作负载证明机制在这些区域内部运行,无需修改。密钥材料和像 SPIRE Server 这样的敏感服务本身可以在强化的区域内运行,进一步减少暴露。

结果是一个系统,其中工作负载只有在经过验证的隔离环境中运行时才能接收加密身份。数据可以直接加密到这些身份,并且可以根据代码的执行位置和方式来强制执行策略,而不仅仅是根据代码的作者。

验证

这种架构提供了一些微妙但重要的东西。它在不依赖专业硬件飞地的情况下,提供了隔离属性的远程证明。这些保证来自于强大的隔离和可验证的身份,而非不透明的硬件特性。实际上,这涵盖了当今企业关注的大量实际威胁模型。

为什么现在如此重要

企业安全团队越来越被迫考虑工作负载而不是主机。微服务、多租户集群以及处理敏感数据的 AI 系统不断侵蚀传统边界。与此同时,基于硬件的机密计算的成本和复杂性仍然是一个障碍。

像 SPIFFE 这样的开放标准和像 SPIRE 这样的实现提供了渐进式的前进道路。它们允许组织在工作负载层面采用零信任原则,建立加密身份,并围绕可验证的执行上下文构建策略。像 Edera 这样的系统展示了强大的隔离和身份如何协同工作,利用通用基础设施实现机密计算的诸多好处。

这并非反对硬件飞地。这些技术对于最敏感的威胁模型仍将至关重要。但这强调了关注工作负载身份更广泛演变的重要性。正如它悄然成为网络的基础一样,工作负载身份也正在成为现代分布式系统的基础

理解证明、区域、零信任和身份如何交叉将是未来几年中的关键。这些要素已经存在。现在的机会是学习它们如何结合,并构建能够赢得信任而非假设信任的系统。