OBLIVIATE:A Data Oblivious File System for Intel SGX

2019-03-26 119 Words 论文 S g x

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:

  1. Syscall Snooping Attacks: SGX 调用 ocall 过程中,向内核泄漏信息。
  2. Page Fault Attacks: 当 EPC 页面第一次加载时,触发 Page Fault Attacks,可能泄漏信息。
  3. Cache Based Attacks:各级缓存中泄漏信息。

方案: SGX 和 ORAM 算法结合,来混淆对文件系统读取时的偏离量。Path ORAM 算法简介:

/images/sgx1.png

采用完全二叉树结构。叶子节点数等于真实节点数。灰色标记的 abcd 节点为真实数据节点,efg为dummy 节点(随机填充)。另外有一张 Position map 表(加密存放于 SGX 中,指向真实节点位置。

读取时候,读取从根开始到实际节点的路径上所有节点,如e、f、a。写回时,重新生成新的 dummy 节点 h、i,并将a、h、i 打乱后随机填充到原路径上。以此来隐藏文件访问和块偏移量等有关信息。

总体架构

/images/sgx2.png

客户端有 Trusted Proxy Enclave 和 Untrusted Proxy Non-Enclave。服务器有 Trusted Service 和 Untrusted Service。两个 Enclave 通过远程认证确认对方身份。ORAM 树加密存放于 Enclave 之外,而 MetaData 存放于 Enclave 之中。

亮点

使用 cmov 指令来隐藏对 Position Map 的读写(看起来像是读取了全部 Position Map,其实只读了想要读取的 item。

/images/sgx3.png

安全性

对上述三种已知侧信道攻击,比现有 sgx 文件系统方案能够较好的隐藏偏移量等信息。

性能

时间性能对比已有 SGX 文件系统方案有 X1-X2 的 overhead。空间上占用体积较大(只有叶子节点相同数目的节点存放真实数据)。