使用 Intel SGX 保护 DDS:第 3 部分 – 强化 DDS 服务
这是该主题六篇博客系列的第 3 部分。如果您是新读者,请先阅读前几篇博客 here。
在第 2 部分中,我演示了如何使用 RTI Connext DDS Micro + Security、SCONE 和 Intel SGX 创建强化端点。虽然引人注目,但我们尚未探索原生集成 SGX 的实用解决方案。第 1 部分指出 DDS + SGX 更可能出现在服务器机房而非传统工业物联网(IIoT)端点。在本期中,我们通过 DDS 服务的视角,聚焦 SGX 强化 DDS 应用的现实部署。
许多 DDS 服务是安全强化的主要目标。它们订阅多个主题,意味着必须持有更多用于加密的临时密钥。这些密钥驻留在应用内存中,熟练攻击者可提取它们,或更有效地在解密前后读取或修改明文数据。仅靠加密无法防止内存中数据暴露。
图 1:DDS 环境中的攻击面
我们在第 1 部分引入的架构允许 DDS 保护的数据包到达线路,被路由到 SGX 保护空间后再解密,并安全处理。由于 CPU 仅在飞地内以明文查看数据,无需同态加密等奇异操作。这种设计产生明显优势:加密数据跨网络传输,进入受保护飞地,解密、处理,再加密用于出站流量。
因为 DDS 已保护线路流量,同一方法可实现异构网络,其中非 SGX 应用可与 SGX 启用的应用(包括 DDS 服务)通信,而不妥协安全性。
考虑 RTI 路由服务。OMG DDS 安全规范要求路由服务在明文上操作,哪怕片刻,并保留其通信过的每个端点的所有临时密钥。当位于网络边缘时,它成为攻击者的高价值目标。

图 2:RTI 路由服务为在 SGX 环境中运行的应用提供受保护空间
SCONE 提供内置的透明加密文件存储和认证支持。利用这些特性,我们可将用于身份的私钥存储在根用户或任何其他用户无法访问的受保护空间中。此方法延伸至应用写入磁盘的所有数据。

图 3:DDS 和 RTI 路由服务在 SCONE 环境中受保护
例如,我们可为授权回放安全存储 DDS 通信。SCONE 还为授权 SCONE 容器(如 SQLite)间的安全通信提供原生 TLS 支持。
有了这些工具,我们能构建基础设施,使数据始终受保护——即使面对恶意系统管理员或外部攻击者。然而,应用必须先验证自身完整性,才能访问受信服务、网络连接或安全存储。这就是认证服务的目的。
认证服务执行远程验证,确认应用未被篡改、真实且运行在真正的 SGX CPU 上。虽然最初仅由 Intel 提供,但生态系统正在演进。远程认证看似艰巨,实则是一次性操作,跨重启持久化。它使用带有加密完整性保证的 ISA 指令,将结果值密封到磁盘,并允许复用它们向远程合作伙伴证明应用的真实性。这种能力在分布式系统中远程组件间信任至关重要时尤为宝贵。
SCONE 提供自己的认证服务。企业许可证持有者可本地管理;非企业用户可依赖 SCONE 的全球认证服务,将在后续文章探讨。
下一篇文章中,我将评估在 DDS-SGX 环境中实施安全的成本。
物联网技术