SGX1的曙光——Flexible Launch Control内核特性回顾
2023-11-08 14:11:18
谁来拯救存量SGX1平台?
2017年9月2日,Intel内核开发人员Jarkko Sakkinen在intel-sgx@lists.01.org邮件列表中发表了一封邮件,正式启动了Flexible Launch Control (FLC)内核特性的开发。这个特性旨在为SGX1平台带来更灵活的启动控制,增强Enclave的安全性。
SGX(Software Guard Extensions)是一项由Intel推出的安全技术,它允许应用程序创建称为Enclave的受保护内存区域,以便在Enclave中运行的代码和数据受到硬件级别的保护,免受其他进程和恶意软件的攻击。SGX1是SGX技术的第一个版本,它在2015年随Intel Skylake处理器一同发布。
FLC特性之所以重要,是因为它可以解决SGX1平台的一个关键问题:Enclave启动控制过于严格。在SGX1平台中,Enclave只能在系统启动时加载,并且只能由操作系统加载。这使得Enclave的使用受到很大限制,因为它无法在系统运行时动态加载或卸载。
FLC特性通过引入一种新的Enclave启动机制来解决这个问题。这种新的机制允许Enclave在系统运行时动态加载和卸载,并且可以由任何进程加载。这大大增强了Enclave的灵活性,使其可以用于更广泛的应用程序。
FLC特性的开发历程
FLC特性的开发历程并不顺利。在最初的几个月里,Sakkinen和他的同事们遇到了许多挑战。其中一个挑战是,FLC特性需要修改Linux内核的许多部分,包括内存管理、进程管理和安全子系统。这使得FLC特性的开发变得非常复杂和耗时。
另一个挑战是,FLC特性需要与其他内核特性兼容。例如,FLC特性需要与Intel的Supervisor Mode Access Prevention (SMAP)特性兼容。SMAP特性可以防止用户态进程访问内核态内存,而FLC特性需要在内核态和用户态之间动态切换。这使得FLC特性的开发变得更加困难。
尽管遇到了这些挑战,Sakkinen和他的同事们最终还是克服了困难,并于2018年12月将FLC特性合并入了Linux内核主线。这标志着FLC特性的开发取得了重大进展,为SGX1平台带来了更灵活的启动控制,增强了Enclave的安全性。
FLC特性的意义
FLC特性的合并对Linux内核和SGX1平台来说都是一件大事。对于Linux内核来说,FLC特性是第一个由Intel开发并合并入内核主线的安全特性。这表明Linux内核社区正在积极拥抱新的安全技术,并致力于为用户提供更安全的系统。
对于SGX1平台来说,FLC特性是一个关键的特性。它解决了SGX1平台的一个关键问题,使Enclave的使用变得更加灵活。这使得SGX1平台可以用于更广泛的应用程序,并进一步推动了SGX技术的发展。
结语
FLC特性的合并是一个重要的里程碑,它标志着Linux内核社区和Intel在安全领域合作取得了重大进展。FLC特性为SGX1平台带来了更灵活的启动控制,增强了Enclave的安全性,对操作系统和虚拟化技术的发展具有重要意义。