不信任,验证:在 Google Cloud 上构建端到端机密应用
Source: Google Developers Blog
在当今数据驱动的世界中,许多有价值的洞察依赖于敏感数据类别——无论是处理用于个性化服务的个人身份信息(PII),与合作伙伴共同处理机密数据集,还是分析敏感的金融信息。保护数据不仅要在静止状态或传输过程中做到安全,还要在 处理期间 保持安全,这已成为关键的业务需求。
虽然磁盘加密(静止数据)和网络加密(传输数据)是成熟且广为人知的问题,但 “数据在用” 的挑战常常被忽视。机密计算提供了硬件层面的保护,即使在数据被处理时也能保持安全。
本文演示了如何借助 Google Cloud 的 Confidential Space ,帮助组织构建端到端的机密服务。我们展示了终端用户如何获得密码学保证,确保其敏感数据仅由在安全、硬件隔离环境中运行的已验证代码进行处理——即使该服务采用可扩展的负载均衡架构部署。
大规模下的信任与机密性挑战
在现代可扩展的云环境中运行机密服务会带来两个挑战:
- 信任与透明度: 客户需要一种方式来验证处理其数据的代码的隐私属性。对整个应用程序进行开源往往对必须保护知识产权、专有算法或敏感 AI 模型的企业而言不可行。这就产生了根本性的矛盾:运营商如何在不泄露使其服务有价值的源代码的前提下,证明其服务是机密的?
- 可扩展性: 现代云应用为弹性和规模而构建,通常在负载均衡器后面运行多个服务实例。将 TLS 在负载均衡器处终止可以简化密钥管理,但会在负载均衡器中暴露明文数据以供检查和路由,从而破坏端到端机密性并扩大可信计算基(TCB)。如果在每个后端服务器上终止 TLS,则需要在所有实例之间安全分发和管理 TLS 私钥,使这些密钥成为工作负载攻击面的组成部分。
使用 Google Cloud Confidential Space 与 Oak Functions 构建信任锚
解决方案从坚实、硬件强制的基础开始:Google Cloud Confidential Space。它是基于最先进机密计算硬件构建的硬化可信执行环境(TEE)。它创建了一个硬件隔离的内存 enclave,代码和数据免受宿主操作系统、其他租户、云提供商,甚至云项目所有者的侵扰。它提供的关键原语是 attestation——平台签名的报告,证明环境完整性以及在其中运行的任何 Open Container Initiative(OCI)容器的身份。
当完整的源代码透明度不可行时,我们将在容器化、可验证的私有沙箱中运行应用逻辑:Oak Functions。该沙箱阻止业务逻辑代码进行日志记录、写入磁盘、创建网络连接或与不受信任的宿主交互,除非通过显式允许、受控的接口。这保证了用户的敏感数据保持私密。
用户的信任锚定在明确定义的沙箱上(该沙箱是开源的,任何人都可以可复制构建),以及沙箱开发者的背书,而不是其执行的具体业务逻辑。这简化了信任链:用户只需验证体积小、透明的开源 Oak Functions 容器镜像,而无需审计复杂的自定义应用程序。
使用 Oak Session 实现带有证明的端到端加密
为了在负载均衡路径上实现可信连接,我们在标准网络层 TLS 之上叠加 应用层加密,使用 Oak Session ——一个实现端到端加密会话协议的开源库。Oak Session 直接与 enclave 内的应用逻辑建立安全通道,即使经过像负载均衡器这样的不受信任中间人,也能保持加密。
嵌套的端到端加密通道
在外层 TLS 连接内部打开一个加密通道,直接面向机密工作负载。即使外层 TLS 在负载均衡器处被终止,内部数据仍保持受保护。虽然可以使用 TLS 来实现该嵌套通道,但 Oak Functions 选择了 Noise 框架。
Noise 提供了基于 Diffie‑Hellman 密钥交换的灵活、轻量级安全通道协议框架。其实现代码仅约 2.5 K 行(相较于 BoringSSL 的 1.2 M 行),因此拥有更小、更易审计的密码学足迹。
证明(Attestation)
机密执行平台提供签名报告,确认其完整性以及在硬件隔离 enclave 中运行的工作负载身份。Oak Session 将此证明作为可组合框架的一部分,用于交换和验证断言。在 Confidential Space 中,证明包括:
- 一个绑定验证密钥(公钥)。
- 对由嵌套加密握手衍生的会话令牌的签名,可使用绑定验证密钥进行验证。
- 由 Google Cloud Attestation 服务签发的证明 JSON Web Token(JWT)。该 JWT 在
eat_nonce字段中包含验证密钥的指纹等多项声明。
JWT 确立了平台的身份、平台参数(系统镜像、环境配置等)以及工作负载的身份。然而,仅凭 JWT 并不足以保证安全:恶意运营商可能会窃取并重放该 JWT。绑定密钥和会话令牌阻止了这种重放,完整了信任图景。
会话绑定
此关键步骤将安全通道与证明 JWT 关联起来。在握手过程中,双方… (content truncated).