5.7 机密计算
5.7.1 机密计算平台技术
机密计算是一种依赖于硬件的使用中数据保护技术,芯片厂商通过提供特殊的硬件指令、受保护的加密内存区域等手段,辅以基于硬件的密钥管理和密码学操作,为使用中的数据提供了一个受保护的受保护的可信区域。通常称之为可信执行环境(Trusted Execution Environment,简称TEE).
利用最底层硬件所能提供的安全性,在保持最小信任依赖的情况下,机密计算技术可以将操作系统和设备驱动程序供应商、平台和设备供应商、服务提供商及系统管理员从需要信任的实体列表中移除,从而大大降低了可信计算基(TCB,Trusted Computing Base)的大小。OpenAnolis社区为推动机密计算技术的应用,衍生出若干基于机密计算的平台技术项目,其目的是不断降低机密计算的高使用门槛。
技术方案
JavaEnclave
JavaEnclave(Teaclave Java TEE SDK)是一个面向Java生态的Host-Enclave机密计算编程框架,与Intel SGX SDK和OpenEnclave具有相同的编程模型。它提供了一个Pure Java的机密计算开发界面和构建工具链;创新性的采用Java静态编译技术,将Enclave模块Java敏感代码编译成native包并在SGX环境下运行。在保证机密计算极致安全的同时,将机密计算开发生态从C/C++ 扩展到Java,极大降低了机密计算应用的开发与编译构建门槛,提升了开发效率与用户体验。
目前JavaEnclave已经在Apache开源社区开源并更名为Teaclave Java TEE SDK,作为ApacheTeaclave孵化项目的一个子项目继续 发展。JavaEnclave将立足龙蜥社区云原生机密计算SIG生态,支持更多操作系统和TEE硬件平台,吸收社区广大开发者的反馈意见 和贡献,持续改进并不断完善功能特性。
Occlum
Occlum是基于Intel SGX实现的一套轻量级的具有内存安全的LibOS,大大简化了SGX应用开发的难度。使用Occlum后,用户的工 作负载只需要修改极少量(甚至无需修改)源代码即可在Intel SGX上运行,以高度透明的方式保护了用户数据的机密性和完整性:
今年年底即将发布的Occlum的v1.0版本采用了协程和异步架构用于提升Occlum在线程创建/切换、时钟获取和IO操作等方面的 性能。
RATS-TLS
RATS-TLS设计了一种支持异构硬件机密计算技术的双向传输层安全协议,它在TLS的基础上增加了将TLS中的公钥与TEE远程证明 Evidence绑定的能力,解决了不同TEE之间难以通过安全可信的方式传输数据的问题:
“从RATS-TLS项目衍生出的新项目librats已经支持多家主流芯片厂商的远程证明认证机制,并允许异构TEE之间进行双向远程证 明认证。librats将支持最新定义的TCG DICE Evidence格式,并计划捐赠给CCC社区。
SGX虚拟化
SGX虚拟化允许将SGX硬件能力透传给虚拟机和容器,以允许用户将敏感工作负载运行在基于Intel SGX Enclave的TEE中。
目前SGX虚拟化已支持Anolis OS 8,可为云上用户提供基于Intel SGX Enclave技术的应用级安全防护能力。
CCZoo
Intel发起并开源了Confidential Computing Zoo (CCZoo)。CCZoo提供了不同场景下各种典型端到端安全解决方案的参考案例, 增强用户在机密计算方案实现上的开发体验,并引导用户结合参考案例快速设计满足自己需求的机密计算解决方案:
CCZoo目前提供了基于LibOS Gramine + Intel SGX + OpenAnolis容器的E2E安全解决方案参考案例,其中包括在线推理服务和横向 联邦学习等。后续,CCZoo计划基于OpenAnolis ,提供更多的机密计算参考案例,为用户提供相应的容器镜像,实现敏捷部署。
Intel HE
Intel提供了对于同态加密技术的全栈式支持,包括一系列工具套件和加速库,如Intel HE Toolkit、Intel HE Acceleration Library (Intel HEXL) 、Intel Paillier Cryptosystem Library (IPCL),以及公允且标准的性能测试基准Homomorphic Encryption Benchmarking Framework (HEBench):