【TEE】Intel SGX的不足和解决方案

  1. 1 计算能力弱
  2. 2 侧信道攻击
  3. 3 Function Privacy(远程认证需要证明代码)
  4. 4 Memory Safety
  5. 5 运行时状态
  6. 6 编程和易用性

[基于硬件可信执行环境的隐私计算(2021)阅读记录
https://heartever.github.io/files/ConfidentialComputing-tianjin.pdf
https://heartever.github.io/files/ConfidentialComputing-Guilin.pdf
https://heartever.github.io/files/HETEE_slides.pdf

@

1 计算能力弱

计算能力弱:CPU至多8核,128/256MB加密内存

解决方法:可以扩展到GPU(Graviton,HIX)、 FPGA(SGX-FPGA,shEF)、 AI加速器(TNPU,TACC)等架构,提高计算能力

缺点:

  • 需要更改GPU(Graviton)或者CPU(HIX)
  • GPU runtime等heavy software stack需要在可信环境内(Graviton)
  • 频繁通信的加解密开销
  • GPU runtime和GPU的通信可能泄露侧信道信息(Telekine)

相关解决方案:HETEE,极简TCB,物理强隔离

2 侧信道攻击

解决方案

3 Function Privacy(远程认证需要证明代码)

为证明自身,service provider需 要向remote user展示自己的代码

保证代码安全的认证:

  • 在SGX内实现一个binary loader + checker
  • 在SGX外提供编译器
  • Checker检查代码,并向remote user提供证据
  • 思路来源于proof carrying code(PCC)
    硬 成S 1

4 Memory Safety


若代码存在漏洞,则用户数据可能被泄露
思路:代码具备某些属性,即使 control flow被任意redirect,仍能保证数据不被泄露

5 运行时状态

如何保证运行时状态的正确性?

6 编程和易用性

  • LibOS:Haven(Windows[BPH,OSDI’14])、Graphene-SGX(linux[TPV,ATC’17])、
    SCONE[ATG+,OSDI’16]、Occlum(蚂蚁金服)
  • 程序自动分割:Glamdring(c/c++[LPM+,ATC’17]),Civet(Java[TSJ+,Security’20])
  • 编程语言支持:python(MesaPy,百度), Javascript[GWM+,Eurosec’17],GO
  • 微容器:Panoply[STT+,NDSS’17]
  • 中间件:Open Enclave(微软)、Asylo(Google)、SOFAEnclave(蚂蚁金服)

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以在下面评论区评论

×

喜欢就点赞,疼爱就打赏