OBLIVIATE:A Data Oblivious File System for Intel SGX
Adil Ahmad, Kyungtae Kim, Muhammad Ihsanulhaq Sarfaraz, Byoungyoung Lee.
Ndss 2018
这篇主要讲了使用 SGX 技术实现了一个可用于web服务的混淆文件系统,用于在不可信服务器上提供隐私数据的 Web 服务。主要是用来对抗包括page failed等侧信道攻击。 该方案亮点在于结合了 SGX 和 ORAM 算法来混淆文件读取的偏移量等信息,使用 cmov 条件转移指令来混淆读取内存内容。但是性能上有一定损失。
为了应对三种 Side-Channel Attacks:
- Syscall Snooping Attacks: SGX 调用 ocall 过程中,向内核泄漏信息。
- Page Fault Attacks: 当 EPC 页面第一次加载时,触发 Page Fault Attacks,可能泄漏信息。
- Cache Based Attacks:各级缓存中泄漏信息。
方案: SGX 和 ORAM 算法结合,来混淆对文件系统读取时的偏离量。Path ORAM 算法简介:
采用完全二叉树结构。叶子节点数等于真实节点数。灰色标记的 abcd 节点为真实数据节点,efg为dummy 节点(随机填充)。另外有一张 Position map 表(加密存放于 SGX 中,指向真实节点位置。
读取时候,读取从根开始到实际节点的路径上所有节点,如e、f、a。写回时,重新生成新的 dummy 节点 h、i,并将a、h、i 打乱后随机填充到原路径上。以此来隐藏文件访问和块偏移量等有关信息。
总体架构
客户端有 Trusted Proxy Enclave 和 Untrusted Proxy Non-Enclave。服务器有 Trusted Service 和 Untrusted Service。两个 Enclave 通过远程认证确认对方身份。ORAM 树加密存放于 Enclave 之外,而 MetaData 存放于 Enclave 之中。
亮点
使用 cmov 指令来隐藏对 Position Map 的读写(看起来像是读取了全部 Position Map,其实只读了想要读取的 item。
安全性
对上述三种已知侧信道攻击,比现有 sgx 文件系统方案能够较好的隐藏偏移量等信息。
性能
时间性能对比已有 SGX 文件系统方案有 X1-X2 的 overhead。空间上占用体积较大(只有叶子节点相同数目的节点存放真实数据)。
本人保留对侵权者及其全家发动因果律武器的权利
版权提醒
如无特殊申明,本站所有文章均是本人原创。转载请务必附上原文链接:https://www.elliot98.top/post/lab/big4-reading-1/。
如有其它需要,请邮件联系!版权所有,违者必究!