论文部分内容阅读
微代码存储在中央处理器(CPU,Central Processing Unit)的解码单元中,通常是由类似汇编语言所编写的代码。处理器将变长的x86指令翻译成一系列微操作,以便于由CPU内部以类似精简指令集的形式进行执行。微代码主要用于降低CPU硬件设计的复杂度、提升CPU的总体性能、增强设计的灵活性等目的。 微代码的灵活性主要体现在可以通过特有的补丁更新机制实现动态修改,降低芯片更新及修复的成本,但是微代码补丁保护机制缺失或者不完备,可能会出现微代码补丁被篡改与泄露的风险,给恶意微代码补丁的形成提供机会,构成严重的安全威胁。目前只有笼统的专利介绍主流的处理器厂商(AMD/Intel)采用加密与数字签名技术解决被篡改与被泄露的问题,但是采用的具体安全策略属于核心机密,没有对外公开。 针对微代码补丁防护机制不完备的问题,本文重点关注微代码补丁加载过程中所涉及到的处理器微代码架构中的微代码控制器[3,10]、缓存系统提出安全方案,设计微代码安全框架保证微代码补丁的稳定性、完整性、机密性。 安全方案如下: 自动化生成微代码/微代码补丁相关的微操作序列,并辅以建模的方式模拟微操作执行,通过验证模型与参考模型执行结果的一致性来保证微代码/微代码补丁的正确性与稳定性。 采用自主设计微操作格式与对称加密算法相结合的方式保证机密性,并采用数字签名技术保证完整性; 在缓存系统中引入缓存的补丁模式实现微代码补丁的解密操作,因为缓存系统属于内部存储,可以降低被篡改的风险,保证完整性。 基于微代码补丁机制的安全方案,本文设计和实现了相应的安全防护工具,该工具支持用户可配置的微编译功能、模拟验证功能与加密数字签名功能。该具与硬件系统配合保证微代码补丁数据可控与加载流程安全可控。