一种利用英特尔QuickAssist技术加速启动时间的方法与流程

文档序号:23877643发布日期:2021-02-05 18:30阅读:72来源:国知局
一种利用英特尔QuickAssist技术加速启动时间的方法与流程
一种利用英特尔quickassist技术加速启动时间的方法
技术领域
[0001]
本发明属于uefi固件的安全启动技术领域,具体涉及一种利用英特尔quickassist技术加速启动时间的方法。


背景技术:

[0002]
uefi固件启用了越来越多的功能来增强启动的安全性。这样,启动性能就成为windows操作系统快速启动要求的一个严峻挑战。安全启动需要测量所有固件映像并将计算好的哈希值保存到tpm设备中。这个步骤通常需要200~300ms,约占整个快速启动时间的10%。
[0003]
通常的解决方案是在快速启动时执行最少的启动步骤,只初始化必要的芯片组和启动设备。完整的启动流程则负责把必要的启动设备信息缓存下来,用于之后的快速启动。这样,快速启动可以只运行第一个引导选项直接进入操作系统,不需要初始化其他设备和提供系统配置,从而加速启动时间。现有的快速启动虽然优化了启动步骤,但是不能删除关键的启动步骤,它仍然需要测量所有的固件映像以满足安全启动的要求。


技术实现要素:

[0004]
针对现有技术中存在的问题,本发明要解决的技术问题在于提供一种利用英特尔quickassist技术加速启动时间的方法,把英特尔quickassist技术扩展到uefi固件领域,利用quickassist技术把uefi安全启动过程中的固件映像哈希计算从顺序执行变成并行执行,从而节省安全启动时间。
[0005]
为了解决上述问题,本发明所采用的技术方案如下:
[0006]
一种利用英特尔quickassist技术加速启动时间的方法,将英特尔quickassist技术扩展到uefi固件领域,利用quickassist技术把uefi安全启动过程中的固件映像哈希计算从顺序执行变成并行执行,从而节省安全启动时间。具体包括以下步骤:
[0007]
(1)uefi固件进行efi预初始化,然后立即查询设备资源;接下来判断quickassist硬件是否存在,若存在,进入步骤(2),否则按照常规程序完成系统启动;
[0008]
(2)打通访问硬件的pci通道,分配pci系统资源和dma内存资源,然后发送相关命令,设置匹配的哈希算法,启动quickassist硬件,查询flash上需要执行的fv映像,并把它们在flash上的地址依次报给quickassist硬件进行哈希计算;
[0009]
(3)uefi固件继续执行pei和dxe,在dxe阶段结束的时候,查询quickassist硬件的状态,如果哈希值已经计算完成,直接进入步骤(4);如果哈希值没有计算完成,通过定时轮询的方式查询quickassist硬件的状态,直到完成哈希值计算,然后进入步骤(4);
[0010]
(4)uefi固件获取哈希值,并写入tpm设备,完成系统启动工作。
[0011]
所述利用英特尔quickassist技术加速启动时间的方法,在uefi固件启动结束之前,哈希值还没有完成计算,uefi固件将进入空闲模式,持续等待,直到获取哈希值。
[0012]
所述利用英特尔quickassist技术加速启动时间的方法,系统启动的常规程序:按
照依次进行dxe运行阶段和bds运行阶段,然后获取哈希值,并将哈希值写入tpm,完成操作系统的启动工作。
[0013]
所述利用英特尔quickassist技术加速启动时间的方法,英特尔quickassist技术支持的对称密码函数包括:哈希/身份验证操作,分别为sha-1,md5,sha-224,sha-256,sha-384,sha-512。
[0014]
所述利用英特尔quickassist技术加速启动时间的方法,所述uefi固件使用sha-1或sha-256来计算固件映像的哈希值。
[0015]
所述利用英特尔quickassist技术加速启动时间的方法,所述uefi固件运行在1:1映射的连续物理内存中,并支持pci设备和dma操作。
[0016]
所述利用英特尔quickassist技术加速启动时间的方法,定时轮询的时长为10毫秒。
[0017]
有益效果:与现有的技术相比,本发明的优点包括:
[0018]
(1)本发明方法在uefi固件中使用英特尔的quickassist技术,将固件映像的哈希计算交给quickassist硬件负责,uefi固件启动时跳过固件映像的测量,这样就把顺序的启动流程变成并行的启动流程,从而节省启动时间。
[0019]
(2)本发明应用了英特尔quickassist技术并行计算固件映像哈希值,可以完全省去固件映像测量所需要的启动时间,达到提升整个安全启动时间10%的目标。
附图说明
[0020]
图1为利用quickassist硬件的启动流程流程图;
[0021]
图2为未利用quickassist硬件的启动流程流程图。
具体实施方式
[0022]
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合具体实施例对本发明的具体实施方式做详细的说明。
[0023]
实施例1
[0024]
一种利用英特尔quickassist技术加速启动时间的方法,英特尔quickassist技术扩展到uefi固件领域,利用quickassist技术把uefi安全启动过程中的固件映像哈希计算从顺序执行变成并行执行,从而节省安全启动时间。
[0025]
英特尔quickassist技术为高效加密和压缩性能提供硬件加速服务。支持的对称密码函数包括:哈希/身份验证操作(sha-1,md5,sha-224,sha-256,sha-384,sha-512)。硬件接口本质上是异步的,并由多个并行引擎(12个对称加密的英特尔通信芯片组8955)组成,支持并行计算。计算过程中需要使用dma直接访问dram中的数据,而且发送到加速器的数据必须在物理内存上是连续存储的。
[0026]
uefi固件使用sha-1或sha-256来计算固件映像的哈希值。uefi固件运行在1:1映射的连续物理内存中,并支持pci设备和dma操作。因此,quickassist硬件可以在uefi固件环境中工作。一旦启用quickassist硬件,uefi固件在启动过程中发现的固件映像可以立即报告给它。因为quickassist的硬件接口是异步的,所以uefi固件可以继续执行启动流程,最后在加载操作系统之前,从quickassist硬件中获取计算出的哈希值,并写入tpm设备。在
大多数情况下,所有需要测量的固件映像的总个数小于10个,这些固件映像可以被quickassist多引擎并行处理,进一步的缩短了启动时间。具体操作步骤包括以下步骤:
[0027]
(1)uefi固件进行efi预初始化,然后立即查询设备资源;接下来判断quickassist硬件是否存在,若存在,进入步骤(2),否则按照常规程序完成系统启动;
[0028]
(2)打通访问硬件的pci通道,分配pci系统资源和dma内存资源,然后发送相关命令,设置匹配的哈希算法,启动quickassist硬件,最后查询flash上需要执行的fv映像,并把它们在flash上的地址依次报给quickassist硬件进行哈希计算;
[0029]
(3)uefi固件继续执行pei和dxe,在dxe阶段结束的时候,查询quickassist硬件的状态,如果哈希值已经计算完成,直接进入步骤(4);如果哈希值没有计算完成,通过,每隔10毫秒定时轮询的方式查询quickassist硬件的状态,直到完成哈希值计算,然后进入步骤(4);
[0030]
(4)uefi固件就会获取哈希值,并写入tpm设备,完成系统启动工作。在uefi固件启动结束之前,哈希值还没有完成计算,uefi固件将进入空闲模式,持续等待,直到获取哈希值。
[0031]
图1和图2的流程图显示了在没有quickassist和有quickassist的情况下的安全启动流程,图2是正常的启动流程,也就是没有利用quickassist硬件,它需要等待每个固件映像哈希值的计算,然后再进行接下来的启动。图1是利用quickassist硬件的启动流程图,固件映像的哈希计算由quickassist硬件负责,从而启动过程中跳过此步骤。基于操作系统层的应用,英特尔提供了相关库函数,应用程序可以直接调用。但uefi固件需要重新实现相关的调用和设备初始化,以及dma内存资源的分配,并且需要保持和quickassist硬件的实时同步,确保在启动结束之前,可以从quickassist硬件获取固件映像哈希值。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1