论文部分内容阅读
计算机的启动过程是终端系统运行过程中的关键环节之一,如果该过程受到攻击,那么在内核层和虚拟层中的各种安全机制也将失效。因此,开展系统启动过程的安全防护研究具有十分重要的现实意义。 本文在分析研究可信计算理论、UEFI BIOS架构和运行机制、终端启动过程及其脆弱性的基础上,设计实现了基于USB Key的可信启动系统,并对该系统的功能和性能进行了测试。 论文的主要工作和贡献包括: 1.设计了基于USB Key的可信启动系统框架,并提出了一种高效的混合信任链构建过程。在深入研究UEFI BIOS架构和运行机制及其脆弱性的基础上,依据可信计算理论提出了基于USB Key可信启动的系统框架。然后,根据启动过程中各个阶段的运行特点,提出了一种混合信任链传递过程:在UEFI BIOS运行阶段采用链式信任链构建方式,以实现细粒度安全度量,保证密切联系的UEFI BIOS各运行阶段的完整性;在操作系统引导阶段则采用星形结构的信任链构建方式,以降低信任损耗,提高系统可信性。 2.设计实现了基于UEFI驱动模式的USB Key驱动。通过对UEFI BIOS驱动模式的研究以及对USB驱动栈的分析,分别实现了EFI_DRIVER_BINDING_PROTOCOL协议中的Supported()、Start()和Stop()三个函数以及其他相关协议,实现了UEFI BIOS环境下的USB Key驱动,并利用中断传输和控制传输,实现了UEFI环境下USB Key设备的I/O抽象。 3.设计实现了基于USB Key的完整性度量和认证功能。通过对USB Key命令系统的研究,尤其是命令应答机制和命令处理流程,实现了基于USB Key的完整性度量模块和双因子身份认证模块,分别用以完成系统的完整性度量、用户的合法性验证以及USB Key的唯一性验证功能。 4.提出了一种基于白名单的硬件检测机制。白名单中存储了已知的硬件的设备名,和其相应硬件接口的hash标准值。在启动过程中,当系统检测到有硬件设备连接在系统上时,首先检测该硬件设备是否在白名单中;然后利用UEFI中的硬件驱动收集连接在主机上的硬件设备接口信息,并对该信息进行hash运算;最后,通过将这些hash值与白名单中的标准值比较,检测该硬件是否为可信硬件。硬件白名单存储于基准库中,并通过USB Key设备确保基准库的安全性。 5.构建了基于USB Key的可信启动系统。首先,为了确保系统的完整性,建立了基于UEFI Capsule机制的恢复更新模块,用于在系统检测出现问题时对系统进行恢复。然后,联合驱动模块、度量模块以及认证模块构建了基于USB Key的可信启动系统。测试结果表明,本系统能有效阻止对启动过程的篡改和非法用户的入侵,并具有较小的时间开销。