1 做什么?
基于SGX设计一个密态数据库存储引擎,包括一个B+树索引结构和表存储系统。
contributions:
- 将TEE下的密态数据库设计分为五个维度(加密粒度,Enclave内的执行逻辑,内存访问粒度,EPC内存使用,数据记录信息(rid)保护)并讨论了各维度选项的trade-off.
- 加密存储引擎Enclage的实现
- 分析索引节点大小的cost模型,delta decryption protocol用来快速的访问在数据页中的数据记录
- 实验证明enclage比别人强
2 TEE
2.1 为什么选SGX?
AMD SEV缺乏完整性保护和经过安全验证的远程认证
2.2 SGX Limitation
- 有限的EPC。页面置换的时间消耗高达40000CPU时钟周期。
- ECALL/OCALL开销。高达8000 CPU Cycles
- Enclave的代码大小。任何有漏洞的代码都会降低Enclave的安全性
3 密态存储引擎设计与威胁模型
3.1 抽象数据模型
3.1.1 密态存储引擎
密态存储引擎应当支持的操作:
- P u t ( r ) : Put(r): Put(r): insert a row to T T T if its key k k k does not exist.
- G e t ( E ( k ) ) → r : Get(E(k)) → r : Get(E(k))→r: get the row from T T T given a key k k k.
- U p d a t e ( r ) : Update(r): Update(r): update the row from T T T given a key k k k.
- D e l e t e ( E ( k ) ) : Delete(E(k)): Delete(E(k)): delete the row from T T T given a key k k k.
- R a n g e S c a n ( E ( k 1 ) , E ( k 2 ) ) → r i , . . . , r j : RangeScan(E(k_1),E(k_2)) → {r_i ,...,r_j }: RangeScan(E(k1),E(k