基于硬件虚拟化的Enclave安全能力增强
作者单位:上海交通大学
学位级别:硕士
导师姓名:夏虞斌
授予年度:2020年
学科分类:0839[工学-网络空间安全] 08[工学] 081201[工学-计算机系统结构] 0812[工学-计算机科学与技术(可授工学、理学学位)]
摘 要:信息化平台给人们带来便利的同时,用户的隐私数据遭到泄露、盗用的问题也开始显现出来。随着信息化的普及,隐私保护也受到了越来越多的重视,研究者们提出了大量提升系统安全的方案。由于软件复杂度和攻击手段的不断提升,平台面临的安全问题日益严峻,对于可信执行环境的需求十分迫切。除了传统的基于软件的安全方案,基于安全硬件如Intel SGX、ARM Trust Zone的安全保护措施也正逐渐成为主流。其中,Intel SGX是以保护隐私数据为目的英特尔指令集架构扩展。它为安全应用提供基于硬件的保护,将系统的可信计算基从传统的整个特权级软件(如操作系统)缩小到了处理器硬件。SGX允许用户创建被称为enclave的可信执行环境,运行在其中的关键代码和数据受到SGX提供的机密性与完整性保护。由于其优越的安全特性,基于SGX的安全方案已经成为了学术界与工业界瞩目的一个研究方向。但当前的SGX在设计上仍然存在一些不足与限制,例如无法监控程序运行状态,以及运行过程中较高的性能开销。本文的研究目的是针对SGX的限制探讨解决方案,扩展enclave的能力,使其能够适用于更多场景。基于对SGX与虚拟化安全系统的分析,本文提出了一种基于虚拟化的enclave安全能力增强系统,旨在利用虚拟化方案为SGX的设计缺陷提供补足与扩展。该系统首先包含一个轻量的虚拟机监控器,称为enclave辅助层,并将普通计算机系统运行在虚拟机中,利用虚拟化技术的事件拦截、内存虚拟化等能力为虚拟机中的enclave程序提供辅助支持。基于该enclave辅助层,本文针对SGX目前存在的两项不足设计了具体的解决方案。(1)SGX存在无法在保障enclave应用程序安全性的同时,监控其运行状态并部署其它安全方案的功能缺陷。对此,本论文基于SGX的开发者模式enclave,提出并实现了能够在保障安全性的同时监控其运行状态的安全开发者模式enclave。(2)SGX存在不同enclave间交互开销高昂的性能缺陷。为了解决这一问题,本论文设计并实现了enclave安全交互通道,为enclave间交互提供高效且安全的渠道。在实现enclave安全交互通道的过程中,本论文还提出了一种对enclave进行二次隔离的方法,利用虚拟化技术实现了enclave的二次隔离。本文基于KVM实现了上述enclave安全能力扩展系统的实例,并对其基础架构与两个具体方案进行了测试,验证了本系统能够以较好的性能实现预期功能。其中,本系统的基础架构与安全开发者模式enclave仅会带来5%左右的性能开销;enclave安全交互通道在enclave交互上的性能提升随交互数据增大而愈发显著,对于16K的数据交互可以达到两倍以上的性能提升。