Cryptology Academy · 课时

云存储与安全处理器中的 ORAM

探索 ORAM 在可信执行环境(SGX、TrustZone)和加密云数据库中的应用。

第 4 / 4 课13 个步骤

云存储与安全处理器中的 ORAM 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。

英特尔 SGX 与访问模式泄露

英特尔 SGX(软件防护扩展)提供硬件隔离的安全区,其中的代码和数据都会经过加密与身份验证。然而,操作系统仍可通过监控页表项来观察安全区访问了哪些内存页面。这种页面级访问模式可能被用于侧信道攻击。一个经典攻击是 Xu、Cui 和 Peinado(2015)提出的“受控信道攻击”,该攻击从 SGX 的内存访问模式中重建了 RSA 密钥。

SGX 中的缓存计时侧信道

除了页面级访问模式之外,SGX 还容易受到缓存计时侧信道攻击。与安全区共享处理器的攻击者可以观察安全区造成的缓存命中和未命中,从而推断细粒度的(缓存行级)访问模式。这些攻击之所以可行,是因为安全区与不可信代码共享 CPU 缓存。缓解措施包括常数时间编程,以及使用 ORAM 随机化内存访问模式。

ZeroTrace:SGX 内部的 ORAM

ZeroTrace(Sasy、Jha、Kerschbaum,2018)在英特尔 SGX 安全区内实现了路径 ORAM,以提供不经意内存访问。不可信的主机操作系统提供 ORAM 服务器(由桶组成的二叉树),而 SGX 安全区充当 ORAM 客户端。ZeroTrace 增加了一项针对 SGX 的优化:将位置映射保存在安全区内部(可信内存中),从而消除了针对位置映射的递归 ORAM。

Graphene-SGX 与 SCONE 的 ORAM 集成

Graphene-SGX(现称 Gramine)和 SCONE 是 SGX 容器框架,允许在安全区内运行未经修改的 Linux 应用。两个框架都已扩展支持 ORAM,以隐藏操作系统所能看到的访问模式。集成 ORAM 的 SCONE 允许 Python、Go 和 Java 程序在 SGX 中执行不经意计算而无需修改代码,使应用无需手动集成即可使用 ORAM。

Shroud:面向 SGX 的不经意数据结构

Shroud(Volos、Jaleel、Emer、Burtscher、Forlin,2018)为在 SGX 安全区内部使用,实现了基本数据结构(数组、栈、队列、映射)的不经意版本。Shroud 结合使用 ORAM 和数据无关算法,确保安全区的内存访问模式不依赖于数据值。与对整个应用内存应用 ORAM 相比,这种方法效率更高,因为它只针对敏感数据结构。

AWS Nitro 隔离环境与内存机密性

AWS Nitro 隔离环境提供隔离的计算环境,用于处理高度敏感的数据(支付卡号、医疗记录)。与 SGX 不同,Nitro 隔离环境是在虚拟机级别而不是进程级别进行隔离。AWS 默认不会在 Nitro 隔离环境中提供 ORAM,但其机密性保证涵盖内存内容。若要保护访问模式隐私,在 Nitro 隔离环境中运行的应用必须在需要时自行实现 ORAM。

ARM TrustZone 的 ORAM 应用

ARM TrustZone 提供与普通操作系统隔离的可信执行环境(安全世界)。与 SGX 一样,TrustZone 本身不会隐藏内存访问模式。TrustORAM(Brasser、Dmitrienko、Sadeghi、Crane、Larsen、Franz)等研究系统在 TrustZone 内实现 ORAM,以保护移动设备和物联网中的敏感数据访问。所有现代 ARM 处理器都配备 TrustZone,因此支持 ORAM 的 TrustZone 可以广泛部署。

ObliDB 与 Opaque:不经意数据库

ObliDB(Eskandarian 和 Boneh,2017)是一种不经意数据库,可以隐藏标准 SQL 查询的访问模式。它使用 ORAM 处理点查询,使用不经意排序处理范围查询。Opaque(Zheng、Dave、Beekman、Popa、Hellerstein、Stoica,2017)结合英特尔 SGX 和 ORAM,通过 Apache Spark 不经意地执行 SQL 查询。Opaque 证明了在 ORAM 开销下进行生产规模的数据分析(数百万条记录)是可行的。

私有信息检索

私有信息检索(PIR)是一种相关的原语,用于隐藏只读访问模式。PIR 允许客户端检索数据库中的一个元素,同时不让服务器知道检索的是哪个元素。计算型 PIR(cPIR)可以实现 O(1) 的服务器存储开销,以及 O(sqrt(n)) 或 O(polylog n) 的通信开销。对于只读工作负载,PIR 比 ORAM 更高效,但不支持不经意写入。

ORAM 与 PIR 的权衡

对于只读访问,PIR 的通信效率高于 ORAM:单服务器 cPIR 需要 O(n^epsilon) 的通信,而 ORAM 每次访问需要 O(log n) 个数据块。不过,PIR 要求服务器执行计算(对于单服务器 PIR,计算量与数据库大小呈线性关系),而 ORAM 将全部计算放在客户端。多服务器 PIR(使用 2 个不串通服务器时可实现信息论安全)效率很高,适合部署在 CDN 中。

ORAM 的未来方向

ORAM 的研究方向包括:将通信开销降低到理论上的 O(log n) 下界附近(OptORAMa 在渐近意义下达到了这一目标)、用于量子 RAM(QRAM)的 ORAM、差分隐私 ORAM(隐藏同一数据块是否被访问了两次),以及同态加密中的 ORAM(用于外包计算的 FHE-ORAM)。将 ORAM 与硬件可信执行环境集成,仍然是最具实际影响力的研究方向。

SGX 访问模式测验

为什么单独使用英特尔 SGX 仍无法完全防止访问模式泄露?

云存储与安全处理器中的 ORAM 总结

英特尔 SGX 会泄露页面级和缓存级访问模式,从而可能遭受受控信道攻击和缓存计时攻击。ZeroTrace 在 SGX 内实现路径 ORAM,以消除这些泄露。Graphene-SGX 和 SCONE 提供容器级 ORAM 集成。ObliDB 和 Opaque 证明了在生产规模上通过 ORAM 对 SQL 执行不经意处理是可行的。对于只读访问,PIR 是一种高效替代方案。ORAM 研究仍在向 log n 通信下界推进,并探索与同态加密的集成。

免费开始

用 AI 导师学习 Cryptology Academy — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
67
课程
261

常见问题解答

「云存储与安全处理器中的 ORAM」课时是免费的吗?

是的 — 「云存储与安全处理器中的 ORAM」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。

「云存储与安全处理器中的 ORAM」这节课中我会学到什么?

探索 ORAM 在可信执行环境(SGX、TrustZone)和加密云数据库中的应用。 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Cryptology Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。

「云存储与安全处理器中的 ORAM」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Cryptology Academy 课中编写并运行代码吗?

能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 访问模式泄露威胁
  2. Path ORAM:隐藏内存访问
  3. Circuit ORAM 与实际性能
  4. 云存储与安全处理器中的 ORAM
← 返回 Cryptology Academy