Flicker:一种实现最小化可信计算基(TCB)的执行架构
作者及机构
本文由Jonathan M. McCune、Bryan Parno、Adrian Perrig、Michael K. Reiter和Hiroshi Isozaki共同完成,作者单位包括卡内基梅隆大学(Carnegie Mellon University)、北卡罗来纳大学教堂山分校(University of North Carolina at Chapel Hill)以及东芝公司(Toshiba Corporation)。该研究发表于2008年的ACM EuroSys会议。
学术背景
Flicker的研究属于计算机安全领域,特别是可信计算(Trusted Computing)和隔离执行(Secure Execution)方向。当前操作系统在CPU最高特权模式下运行大量代码,这些代码中的漏洞使得系统易受攻击,恶意软件可能继承这些特权,威胁所有应用程序的完整性和机密性。为解决这一问题,Flicker提出了一种架构,能够在完全隔离的环境中执行安全敏感代码,同时仅需信任极少量(约250行)的额外代码。研究目标是通过硬件支持(如AMD的SVM和Intel的TXT技术)实现最小化TCB,并提供细粒度的远程证明(Attestation)。
研究流程
1. 硬件基础与背景技术
- Flicker利用了AMD的SVM(Secure Virtual Machine)和Intel的TXT(Trusted Execution Technology)技术,这些技术支持“延迟启动”(Late Launch)和动态证明。
- 研究还基于可信平台模块(TPM,Trusted Platform Module)的密封存储(Sealed Storage)和平台配置寄存器(PCR,Platform Configuration Register)功能,确保代码执行的完整性和可验证性。
Flicker架构设计
实现与优化
主要结果
1. 性能评估
- SKINIT指令的执行时间与SLB大小线性相关,64KB SLB的加载耗时约177.5毫秒,但通过优化(如减少SLB大小)可降至14毫秒。
- TPM操作(如密封存储和证明生成)是主要性能瓶颈,例如生成TPM证明(Quote)耗时约972毫秒。
结论与价值
Flicker通过硬件支持的隔离执行和最小化TCB,显著提升了安全敏感代码的可靠性和可验证性。其科学价值在于提出了一种新的可信计算范式,将TCB从传统操作系统的数百万行代码减少至数百行;应用价值则体现在多种实际场景(如密码处理、CA签名、分布式计算)中,为高安全性需求提供了可行解决方案。
研究亮点
1. 最小化TCB:Flicker的TCB仅需250行代码,远小于传统虚拟化方案(如Xen的5万行代码)。
2. 细粒度证明:支持对代码、输入和输出的精确证明,避免了传统可信启动(如IMA)的全系统测量。
3. 硬件兼容性:基于AMD和Intel的商用处理器,无需修改操作系统或虚拟机监控程序(VMM)。
4. 灵活开发支持:提供模块化工具链,简化PAL的开发和集成。
其他有价值内容
- Flicker对系统性能的影响较小(如Rootkit检测器的定期运行对内核编译时间无显著影响)。
- 研究者提出了未来硬件改进方向(如多核隔离执行),可进一步提升性能(参考作者同期工作[19])。
- 开源实现和工具链为后续研究提供了基础。