作为唯一安全技术入选IEEE,机密计算为什么如此重要?

作者 | 蓝晏翔 邵乐希

出品 | IDEA研究院

大规模AI计算中的数据和模型安全

人工智能技术(AI)作为这个时代最具影响力的技术,渗透到了我们生活的方方面面。特别是2022年底,OpenAI发布的ChatGPT表现出了惊人的信息分析、整合、决策和对话能力。随着人工智能模型规模和能力的进一步增强,AI未来将帮助人们完成一系列个性化的复杂工作,诸如信息咨询、任务代办等等。

AI技术的演变离不开大数据和大模型的支撑,动辄上千亿参数的大模型的训练需要消耗上万亿的高质量数据,并在面向市场的过程中不断根据用户的反馈进行调整升级。在这里,整个AI服务涉及到数据的提供者、模型的拥有者和算力的提供者三个角色。对于数据的提供者来说,数据包含了其个人的敏感数据或者企业经过多年运营沉淀下来的数据,蕴含着巨大的商业价值;对于模型的拥有者来说,模型包含着拥有者对于AI算法以及应用行业的深刻理解,以及为了训练模型所付出的巨大开销,是企业宝贵的知识产权。

参与的各方都希望在模型的训练和应用过程中保护自身数据隐私,因为数据和模型本身被视为参与方的宝贵资产。从另一方面来说,随着《网络安全法》《数据安全法》和《个人信息保护法》的颁布和实施,对于数据隐私的保护,实现数据“可用不可见”“可控可计量”也成为法律法规的要求,数据和模型一旦泄露,将会带来严重的社会负面影响以及巨大的经济损失。

随着云计算的发展和模型训练对于超大规模算力的需求增长,绝大部分的模型训练工作已迁移到云上进行。另外,基于对服务实时性和可靠性的要求,大量的AI模型被部署在IoT设备端(例如在自动驾驶场景中)。在大多数情况下,云计算基础设施和IoT设备并不被数据和模型所有者所拥有和控制,如何在一个不可信的环境中保证数据和模型的安全隐私,成为了大规模机器学习和应用的挑战。

什么是机密计算?

为了应对上述挑战,一系列相关技术逐渐受到学术界和工业界的关注,机密计算技术便是其一。机密计算(Confidential Computing)是指在基于硬件的可信执行环境(Trusted Execution Environment, TEE)中执行计算来保护使用中的数据(data in use)的一种技术。基于硬件的可信执行环境保证了机密计算的任务和数据不会被恶意程序窃取,硬件级的安全保障使得即使高权限的操作系统甚至是虚拟机监视器(hypervisor),也无法窥探和篡改机密计算中的数据和代码。

自2002年ARM提出TrustZone技术以来,机密计算已经走过了20多个年头。2015年,Intel推出了SGX,机密计算技术进入了快速发展的阶段。2019年8月,Linux基金会联合国内外科技巨头宣布成立“机密计算联盟”(Confidential Computing Consortium),标志着机密计算在工业界的进一步发展和壮大。

2022年,NVIDIA推出的新一代GPU H100集成了机密计算模块,标志着机密计算将成为未来AI计算的基础设施之一。在2022年IEEE的技术预测中,评选了16项将在未来几年(短期)产生重大影响的技术,机密计算技术作为唯一的安全技术入选其中。如今,ARM、Intel、AMD、华为等厂商都推出了自己的机密计算技术,在服务器端和终端分别是Intel的SGX技术和ARM的TrustZone技术占据了主要的市场份额。

Intel SGX技术简介

Intel的SGX技术通过CPU的硬件扩展,允许应用程序创建一个叫Enclave的安全容器,并将敏感数据和代码放到该容器中。在Enclave中,代码和数据的机密性和完整性只依赖硬件保障,BIOS、OS等特权应用都无法直接访问到Enclave的内容。也就是说SGX技术的TCB(Trusted Computing Base, 可信计算基)仅为CPU厂商和Enclave本身,即使服务器的根权限被攻击者窃取了,也不能直接获取Enclave中的保密数据。

SGX应用的工作原理可以由下图说明。应用在实现时就需要区分可信和不可信两个部分,可信的部分需要使用EDL(Enclave-Definition Language)实现逻辑,并使用ECALL和OCALL进行可信部分和不可信部分的交互,见下图1。

图1  SGX应用模型

ARM TrustZone技术简介

ARM的TrustZone技术提供了硬件隔离区分的安全世界(Secure World)和不安全世界(Normal World)。TrustZone在处理器架构上将每个物理核虚拟成一个安全核(Secure Core)和一个非安全核(Non-Secure Core),并通过了Monitor Mode实现两个世界之间的切换。除了运算核以外,MMU、GIC、Cache等硬件都进行了两个世界的隔离操作。在安全世界中,有一个可信内核(TEE Kernel)负责多个可信应用实例的管理,如内存分配与隔离、通信管理等,也属于TCB的一部分。

TrustZone TEE的应用模型符合Global Platform(GP)规范并可以由下图2表示。一个应用需要分成运行在富执行环境和运行在TEE中的两个程序,两个世界的应用通信需通过提供的TEE API进行。

图2  TrustZone应用模型

机密计算与其他隐私计算方案的对比

机密计算作为一种基于硬件的隐私计算技术,与其他的隐私计算技术相比,在高效性和普适性上具备较大的优势。以多方安全计算(Secure Multi-Party Computation, SMPC)和联邦学习(Federated Learning, FL)为例,SMPC以密码学为基础,通过加密状态下的多轮通信共同计算一个约定好的任务,而不泄露彼此的隐私信息。FL基于分布式机器学习,在不交换各数据方本地数据的条件下,仅通过交换本地数据的模型信息构建基于全体数据样本的全局模型。从高效性上看,SMPC和FL由于涉及大量的加解密和网络通讯,其综合的运算性能与基于明文的计算相比会有数百倍以上的损失,这使其难以适应大吞吐量、低延迟的计算场景。对机密计算而言,数据和模型的机密性和完整性由底层硬件进行保证,能够获得和明文计算相接近的计算性能。在普适性方面,SMPC和FL对于计算任务的特征和结构有一定的假设,无法满足任意的计算需求。相比之下,机密计算没有这方面的约束,普适性更高。

机密计算的应用与挑战

在AI模型的训练和应用中,机密计算技术已经得到了广泛的应用。AWS、Google、微软以及国内的阿里巴巴、腾讯等厂商相继推出了自身的机密计算产品,并用于多方计算、医疗保健、药物研发等场景。同时,机密计算技术也是学术界研究的热点。举例来说,在模型训练领域,有学者基于可编程总线芯片以及安全控制实现了大规模的异构机密AI模型训练。在模型应用上,有学者利用IoT设备上的可信执行环境以及可信执行环境的加密通信,配之以相应的管理和控制模块,同时保护了IoT设备采集的数据和AI模型的安全隐私。

然而,现行的主流机密计算技术还面临着一些技术挑战。主流机密计算技术通过“标志位”“访问控制”等技术实现了可信应用和不可信应用的逻辑上的硬件隔离。然而,在主流的机密计算技术中,需要被保护的可信应用和不可信应用运行在同一个计算核心上。两类任务在物理上共享了页表(page table)、硬件缓存(cache)、分支目标缓存(Branch target buffer, BTB)等硬件组件。硬件组件的共享可能会导致侧信道攻击(side-channel attack)风险。研究表明,对于硬件缓存等组件的侧信道攻击会导致输入数据或者模型的泄露。

研究者提出了一系列方法来应对这类风险:一类方法基于不经意(oblivious)访问,即通过密码学的技术和协议来掩盖可信应用对于共享组件的访问痕迹,以防止侧信道攻击的风险;另一类方法则是对于可信应用的构建工具或运行状态进行一些定制,例如通过地址随机化、关闭超线程、中断监测等技术来发现和避免侧信道攻击;同时,对应特定的侧信道攻击,硬件厂商也会及时发布相应的补丁。除此之外,随着机密计算得到广泛而重要的应用,人们也开始致力于为可信应用设计独立的内存或计算单元。独立的内存和计算单元使得可信应用和不可信应用在硬件层面完全隔离,从根源上解决了侧信道攻击的风险。

而在工程落地层面,主流的机密计算技术给出了一个新的编程范式。开发者需要自行将应用分为可信部分和不可信部分,并将可信部分显示放入机密计算框架中,并自行管理可信部分和外界的交互,这大大增加了软件迁移的成本。虽然有一些基于开发者标注的自动划分工具,也有人提出了库操作系统(LibOS)来简化现有应用的迁移,但是这些方案有着各自的局限性:自动化划分工具方案中,目前已有的自动划分工具只支持C/C++和Java,无法支持更多的语言(例如Python)。库操作系统的方案中,有的方案需要重编译程序,这对于商业场景的落地是一个较大挑战,因为代码作为程序所有者的重要知识产权,往往无法基于部署环境进行重编译;有的方案虽然做到了部分二进制兼容,但在性能上仍然需要做出较大牺牲。

最后,在安全层面,现行的主流机密计算技术的POSIX系统调用(system call)是交由不可信操作系统来完成的,为了应对接口层的Iago攻击,库操作系统需要实现相应的防范机制。然而,由于POSIX接口众多且复杂,如何在库操作系统上完备地防范接口攻击也是一个需要继续研究的课题。

IDEA研究院在机密计算领域的探索

IDEA研究院在机密计算领域也做了一些探索,为了应对机密计算领域的侧信道攻击和工程落地的挑战,我们将机密计算任务完全卸载到一个独立的协处理器(Secure Processing Unit, SPU,详情见:https://spu.idea.edu.cn)上,物理级别的硬件隔离使得机密计算任务避免了侧信道攻击的风险。

SPU仅通过高速总线和主机通信,硬件级别的安全访问围栏(Secure Enforcement Barrier)防止了非授权和非认证的数据通信。在系统层面,SPU内定制安全启动、安全设备抽象和安全容器技术使得原有代码无需重新编译即可运行,POSIX系统调用由SPU自行处理以避免Iago攻击,这些技术进一步保证了可信应用的机密性和完整性。

总结

在AI技术如火如荼发展的今天,数据作为人工智能的“石油”,模型作为人工智能的最终产品,都蕴含着巨大的商业价值。对于数据和模型的机密性的保护,实现数据和模型的“可用不可见”“可控可计量”不仅是法律法规的要求,也是数字经济发展的需要。

机密计算提供了一种高效普适的解决方案,并随着人工智能、大数据、云计算技术的发展而快速发展,成为安全隐私计算的一条主流的技术路线。在未来,机密计算技术还将在可信、安全以及工程化落地和可扩展性方面不断演进,最终成为安全、普适、高性能、可扩展、易部署的AI数据和模型“安全的守护者”。

作者简介

蓝晏翔博士,IDEA研究院AI安全普惠系统研究中心首席科学家,深圳市高层次人才 ,SPU(Secure Processing Unit)机密计算协处理器项目负责人,全面负责项目技术研发、团队管理、市场转化等工作,曾任金融科技独角兽公司CTO和高级副总裁。蓝晏翔在清华大学获得学士和博士学位,在ACM ToG等顶级期刊上发表过多篇论文,并持有多项发明专利。

邵乐希,IDEA研究院AI安全普惠系统研究中心工程师,负责SPU项目系统软件开发。邵乐希在剑桥大学获得本科和硕士学位,曾任华为Linux内核工程师。

参考资料

 1、Everest Group. Confidential Computing——The Next Frontier in Data Security[DB/OL]. https://confidentialcomputing.io/wp-content/uploads/sites/85/2021/10/Everest_Group_-_Confidential_Computing_-_The_Next_Frontier_in_Data_Security_-_2021-10-19.pdf

2、IEEE, IEEE Technology Predictions, https://cmte.ieee.org/futuredirections/2022/01/17/2022-technology-predictions/

3、J. Zhu et al., "Enabling Rack-scale Confidential Computing using Heterogeneous Trusted Execution Environment," 2020 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, USA, 2020, pp. 1450-1465, doi: 10.1109/SP40000.2020.00054.

4、L. Hanzlik et al., "MLCapsule: Guarded Offline Deployment of Machine Learning as a Service," 2021 IEEE/CVF Conference on Computer Vision and Pattern Recognition Workshops (CVPRW), Nashville, TN, USA, 2021, pp. 3295-3304, doi: 10.1109/CVPRW53098.2021.00368. 

5、K. Grover et al. “Privado:Practical and Secure DNN Inference with Enclaves”, https://arxiv.org/abs/1810.00602

 6、Yuntao Liu and Ankur Srivastava. 2020. GANRED: GAN-based Reverse Engineering of DNNs via Cache Side-Channel. In Proceedings of the 2020 ACM SIGSAC Conference on Cloud Computing Security Workshop  (CCSW'20). Association for Computing Machinery, New York, NY, USA, 41–52. https://doi.org/10.1145/3411495.3421356

7、 S. Sasy, S. Gorbunov, and C. W. Fletcher, “ZeroTrace: Oblivious Memory Primitives from Intel SGX,” in Proc. 2018 Netw. Distrib. Syst. Secur. Symp., Reston, VA: Internet Society, 2018, ISBN: 1-891562-49-5. DOI:10.14722/ndss.2018.23239.

8、 J. Seo, B. Lee, S. Kim, M.-W. Shih, I. Shin, D. Han, and T. Kim, “SGX-Shield: Enabling Address Space Layout Randomization for SGX Programs,” in Proc. 2017 Netw. Distrib. Syst. Secur. Symp., Reston, VA: Internet Society, 2017, ISBN: 1-891562-46-0. DOI: 10.14722/ndss.2017.23037.

9、G. Chen, W. Wang, T. Chen, S. Chen, Y. Zhang, X.Wang, T.-H. Lai, and D. Lin, “Racing in Hyperspace: Closing Hyper-Threading Side Channels on SGX with Contrived Data Races,” in 2018 IEEE Symp. Secur. Priv., vol. 2018-May, IEEE, 2018, pp. 178–194, ISBN: 978-1-5386-4353-2. DOI: 10 . 1109 / SP. 2018 . 00024.

10、 M.-W. Shih, S. Lee, T. Kim, and M. Peinado, “TSGX: Eradicating Controlled-Channel Attacks Against Enclave Programs,” March, 2017. DOI: 10.14722/ndss.2017.23193.

11、Hyunyoung Oh, Adil Ahmad, Seonghyun Park, Byoungyoung Lee, and Yunheung Paek. 2020. TRUSTORE: Side-Channel Resistant Storage for SGX using Intel Hybrid CPU-FPGA. In Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security (CCS '20). Association for Computing Machinery, New York, NY, USA, 1903–1918.https://doi.org/10.1145/3372297.3417265

12、H. Oh, K. Nam, S. Jeon, Y. Cho and Y. Paek, "MeetGo: A Trusted Execution Environment for Remote Applications on FPGA," in IEEE Access, vol. 9, pp. 51313-51324, 2021, doi: 10.1109/ACCESS.2021.3069223.

13、Joshua Lind, Christian Priebe, Divya Muthukumaran, Dan O'Keeffe, Pierre-Louis Aublin, Florian Kelbert, Tobias Reiher, David Goltzsche, David Eyers, Rüdiger Kapitza, Christof Fetzer, and Peter Pietzuch. 2017. Glamdring: automatic application partitioning for intel SGX. In Proceedings of the 2017 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC '17). USENIX Association, USA, 285–298.

14、Chia-Che Tsai, Jeongseok Son, Bhushan Jain, John McAvey, Raluca Ada Popa, and Donald E. Porter. 2020. Civet: an efficient Java partitioning framework for hardware enclaves. In Proceedings of the 29th USENIX Conference on Security Symposium (SEC'20). USENIX Association, USA, Article 29, 505–522.

15、 Youren Shen, Hongliang Tian, Yu Chen, Kang Chen, Runji Wang, Yi Xu, Yubin Xia, and Shoumeng Yan. 2020. Occlum: Secure and Efficient Multitasking Inside a Single Enclave of Intel SGX. In Proceedings of the Twenty-Fifth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '20). Association for Computing Machinery, New York, NY, USA, 955–970. https://doi.org/10.1145/3373376.3378469

16、Chia-Che Tsai, Donald E. Porter, and Mona Vij. 2017. Graphene-SGX: a practical library OS for unmodified applications on SGX. In Proceedings of the 2017 USENIX Conference on Usenix Annual Technical Conference (USENIX ATC '17). USENIX Association, USA, 645–658.

17、Shweta Shinde, Shengyi Wang, Pinghai Yuan, Aquinas Hobor, Abhik Roychoudhury, and Prateek Saxena. 2020. BesFS: a POSIX filesystem for enclaves with a mechanized safety proof. In Proceedings of the 29th USENIX Conference on Security Symposium (SEC'20). USENIX Association, USA, Article 30, 523–540.