一种UEFI映像文件完整性保护方法、装置、设备及介质与流程
未命名
08-05
阅读:136
评论:0

技术领域:
:1.本发明涉及信息
技术领域:
:,特别涉及一种uefi映像文件完整性保护方法、装置、设备及介质。
背景技术:
::2.uefi(即unifiedextensiblefirmwareinterface,统一的可扩展固件接口)为一种详细描述类型接口的标准。这种接口用于操作系统从预启动的操作环境,加载到一种操作系统上。可扩展固件接口(即extensiblefirmwareinterface,efi)是intel为pc(即personalcomputer,个人计算机)固件的体系结构、接口和服务提出的建议标准。其主要目的是为了提供一组在操作系统加载之前在所有平台上一致的、正确指定的启动服务,被看作是有近20多年历史的bios(即basicinputoutputsystem,基本输入输出系统)的继任者。uefi是由efi1.10为基础发展起来的,它的所有者已不再是intel,而是一个称作unifiedefiform的国际组织。uefi安全启动是uefi标准引入的一项安全功能,旨在确保电脑仅使oem(即originalequipmentmanufacturer,原始设备制造商)信任的软件启动,它可以帮助计算机抵御病毒攻击和恶意软件感染。当pc启动时,安全启动验证启动软件的签名,包括uefi固件驱动程序、uefi应用程序和操作系统。如果签名有效,加载相应uefi映像文件,pc启动,固件将控制权交给操作系统。uefi安全启动的核心就是利用数字签名来确认uefi驱动程序、uefi固件程序或者应用程序是否被篡改,是否被信任。目前在uefi标准中采用authenticode技术,使用md5、sha256等散列算法以及rsa数字签名算法。然而,一方面,使用md5、sha256等散列算法以及rsa数字签名算法,不满足国家密码管理局商用密码标准;另一方面,散列算法、rsa数字签名算法运行在主机内存中,存在安全隐患;再者,使用公钥密码体制的消息认证,需要部署公钥基础设施,部署复杂,成本较高。综上,如何能够在保证满足国家密码管理局商用密码标准的前提下进行uefi启动时提高uefi映像文件验证过程的安全性和性能并降低部署复杂度的问题有待进一步解决。技术实现要素:3.有鉴于此,本发明的目的在于提供一种uefi映像文件完整性保护方法、装置、设备及介质,能够在保证满足国家密码管理局商用密码标准的前提下进行uefi启动时提高uefi映像文件验证过程的安全性和性能并降低部署复杂度。其具体方案如下:4.第一方面,本技术公开了一种uefi映像文件完整性保护方法,包括:5.获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件;6.解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值;7.利用预先保存在龙芯安全处理器内部的预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法,并基于所述目标关键段调用初始化后的hmac-sm3算法得到第二完整性校验值;8.将所述第一完整性校验值与所述第二完整性校验值进行比较,如果所述第一完整性校验值与所述第二完整性校验值一致,则判定完整性校验成功并运行加载所述目标uefi映像文件。9.可选的,还包括:10.根据初始uefi映像文件中的所述目标关键段基于所述龙芯安全处理器中的所述hmac-sm3算法确定所述第一完整性校验值;11.将所述第一完整性校验值写入至所述初始uefi映像文件中并重组所述初始uefi映像文件,以得到所述目标uefi映像文件。12.可选的,所述解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值,包括:13.解析所述目标uefi映像文件得到所述目标uefi映像文件的目标关键段,并从所述目标uefi映像文件中确定出第一完整性校验值缓冲区数据;14.根据预设校验值隐藏规则将所述第一完整性校验值缓冲区数据进行重组,以得到第一完整性校验值。15.可选的,所述利用预先保存在龙芯安全处理器内部的预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法,包括:16.获取预先保存在龙芯安全处理器内部的hmac-sm3密钥缓冲区数据;17.根据预设密钥隐藏规则将所述hmac-sm3密钥缓冲区数据进行重组以得到hmac-sm3密钥,并利用所述hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法。18.可选的,所述获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件,包括:19.获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件,然后对所述目标uefi映像文件的文件格式与所述目标uefi映像文件的文件头校验值进行验证。20.可选的,所述解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值,包括:21.如果所述文件格式与所述文件头校验值均正确,则解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值。22.可选的,所述利用预先保存在龙芯安全处理器内部的预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法,并基于所述目标关键段调用初始化后的hmac-sm3算法得到第二完整性校验值之后,还包括:23.将所述第一完整性校验值与所述第二完整性校验值进行比较,如果所述第一完整性校验值与所述第二完整性校验值不一致,则判定完整性校验失败并禁止加载所述目标uefi映像文件。24.第二方面,本技术公开了一种uefi映像文件完整性保护装置,包括:25.映像文件读取模块,用于获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件;26.映像文件解析模块,用于解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值;27.第二完整性校验值获取模块,用于利用预先保存在龙芯安全处理器内部的预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法,并基于所述目标关键段调用初始化后的hmac-sm3算法得到第二完整性校验值;28.映像文件运行模块,用于将所述第一完整性校验值与所述第二完整性校验值进行比较,当所述第一完整性校验值与所述第二完整性校验值一致时,则判定完整性校验成功并运行加载所述目标uefi映像文件。29.第三方面,本技术公开了一种电子设备,包括:30.存储器,用于保存计算机程序;31.处理器,用于执行所述计算机程序,以实现前述公开的所述的uefi映像文件完整性保护方法的步骤。32.第四方面,本技术公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的所述的uefi映像文件完整性保护方法的步骤。33.本技术在进行uefi映像文件完整性保护时,先获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件,解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值,利用预先保存在龙芯安全处理器内部的预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法,并基于所述目标关键段调用初始化后的hmac-sm3算法得到第二完整性校验值,最后将所述第一完整性校验值与所述第二完整性校验值进行比较,如果所述第一完整性校验值与所述第二完整性校验值一致,则判定完整性校验成功并运行加载所述目标uefi映像文件。可见,本技术在进行uefi映像文件完整性保护时,首先获取针对目标uefi映像文件的完整性校验指令,进一步读取并解析所述目标uefi映像文件,以得到所述目标uefi映像文件的目标关键段与第一完整性校验值,利用hmac-sm3密钥将所述龙芯安全处理器进行初始化后,进一步将所述目标关键段输入至所述龙芯安全处理器中的hmac-sm3算法中,并得到第二完整性校验值,最后将所述第一完整性校验值与所述第二完整性校验值进行比较,如果所述第一完整性校验值与所述第二完整性校验值一致,则判定完整性校验成功并执行加载所述目标uefi映像文件。由此可见,本技术在进行uefi映像文件完整性保护时,利用hmac-sm3密钥将所述龙芯安全处理器进行初始化后,进一步将所述目标关键段输入至所述龙芯安全处理器中的hmac-sm3算法中并得到第二完整性校验值,使用基于国家密码管理局商密sm3算法的hmac算法,在保证密码强度的情况下显著提高uefi映像文件验证过程的安全性和性能;另一方面,hmac-sm3密钥保存在龙芯安全处理器内部,同时hmac-sm3算法运行在龙芯安全处理器器内部,避免了使用运行在主机内存中的散列算法、rsa数字签名算法导致存在安全隐患的问题;再者,使用hmac-sm3算法不需要部署公钥基础设施运行速度快且易于维护和部署,抵抗密码分析的强度等同于散列函数强度。综上,本技术能够在保证满足国家密码管理局商用密码标准的前提下进行uefi启动时提高uefi映像文件验证过程的安全性和性能并降低部署复杂度。附图说明34.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。35.图1为本技术提供的一种uefi映像文件完整性保护方法流程图;36.图2为本技术提供的pe文件结构示意图;37.图3为本技术提供的龙芯安全处理器调用结构示意图;38.图4为本技术提供的一种具体的uefi映像文件完整性保护方法流程图;39.图5为本技术提供的一种具体的uefi映像文件完整性保护方法流程图;40.图6为本技术提供的目标uefi映像文件生成流程示意图;41.图7为本技术提供的第一完整性校验值嵌入至pe文件示意图;42.图8为本技术提供的目标uefi映像文件完整性校验流程示意图;43.图9为本技术提供的一种uefi映像文件完整性保护装置结构示意图;44.图10为本技术提供的一种电子设备结构图。具体实施方式45.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。46.目前在uefi标准中采用authenticode技术,使用md5、sha256等散列算法以及rsa数字签名算法。然而,一方面,使用md5、sha256等散列算法以及rsa数字签名算法,不满足国家密码管理局商用密码标准;另一方面,散列算法、rsa数字签名算法运行在主机内存中,存在安全隐患;再者,使用公钥密码体制的消息认证,需要部署公钥基础设施,部署复杂,成本较高。为此,本技术提供了一种uefi映像文件完整性保护方法能够在保证满足国家密码管理局商用密码标准的前提下进行uefi启动时提高uefi映像文件验证过程的安全性和性能并降低部署复杂度。47.本发明实施例公开了一种uefi映像文件完整性保护方法,参见图1所示,该方法包括:48.步骤s11:获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件。49.在本实施例中,首先获取针对目标uefi映像文件的完整性校验指令,并根据所述完整性校验指令读取对应的目标uefi映像文件。其中,所述目标uefi映像文件使用pe文件格式(即portableexecutablefileformat,可移植的执行文件格式),pe文件由若干的结构体组成的,程序在运行时就会通过这些结构快速定位到pe文件的各种资源,如代码段、数据段,资源段等,pe文件结构示意图如图2所示,从上到下依次是dos头、pe头、节表头、节区和调试信息。pe文件头保存着整个pe文件的索引信息,可以帮助pe装载器定位资源,而节则保存着整个pe文件的所有资源。通过上述技术方案,获取针对目标uefi映像文件的完整性校验指令并将所述目标uefi映像文件加载到内存,以便于进一步对所述目标uefi映像文件进行解析并获取所述目标uefi映像文件中的数据信息从而对所述目标uefi映像文件的完整性进行验证。50.步骤s12:解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值。51.在本实施例中,通过对所述目标uefi映像文件的解析,获取所述目标uefi文件的目标关键段与第一完整性校验值。其中,所述目标uefi映像文件的目标关键段包括但不限于代码段与数据段;所述第一完整性校验值为在所述目标ufei映像文件发布前使用管理程序写入至所述目标uefi映像文件中的完整性校验值。可以理解的是,在所述目标ufei映像文件发布前,根据所述目标uefi映像文件的目标关键段确定所述第一完整性校验值并将所述第一完整性校验值写入至所述目标uefi映像文件中,以便于当获取到针对所述目标uefi映像文件的完整性校验指令后对所述目标uefi映像文件进行读取并解析得到所述目标关键段与所述第一完整性校验值。通过上述技术方案,解析所述目标uefi映像文件获取对应的目标关键段与第一完整性校验值,预先将所述第一完整性校验值直接写入至所述目标uefi映像文件中,无需单独管理完整性校验值,从而降低部署复杂度。52.步骤s13:利用预先保存在龙芯安全处理器内部的预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法,并基于所述目标关键段调用初始化后的hmac-sm3算法得到第二完整性校验值。53.在本实施例中,利用预先保存在龙芯安全处理器内部的hmac-sm3密钥对所述龙芯安全处理器内部的hmac-sm3算法进行初始化,进一步将所述目标关键段输入至所述龙芯安全处理器的hmac-sm3算法中,以得到第二完整性校验值。其中,龙芯安全处理器调用结构如图3所示,基于龙芯自主cpu(即centralprocessingunit,中央处理器)与商用密码融合,在cpu核内部嵌入安全模块,将密码计算和通用计算技术进行芯片级一体化融合设计,使其具有硬件级的密码算法处理能力和芯片级的安全防护能力,构建了以cpu+商用密码为基础的安全体系。以龙芯安全处理器为基础,研制了基础sdk(即softwaredevelopmentkit,软件开发工具包)、通用密码中间件、商用密码ssl(即securesocketlayer,安全套接层)协议等产品,为上层的固件、操作系统、数据库、浏览器及应用软件与系统等提供统一、完整、安全、合规的商用密码功能。上层应用可通过sdk快速、规范、灵活的使用处理器的内嵌密码功能,构建自身基于密码的安全机制。54.需要指出的是,为保障商用密码应用的安全性,国家密码管理局制订了一系列商用密码算法,包括但不限于商密sm3算法。hmac算法是一个消息鉴别码算法,hmac-sm3算法基于sm3信息摘要算法和一个密钥实现,用于高安全的数据完整性保护。hmac-sm3算法的安全性不仅依赖于sm3算法,还依赖于所使用的密钥,该密钥是由双方事先协商或约定,第三方不可能知道,所以使用hmac算法对数据进行完整性保护的安全性高于sm3算法。通过上述技术方案,使用基于国家密码管理局商密sm3算法的hmac算法,在保证密码强度的情况下显著提高uefi映像文件验证过程的安全性和性能;进一步地,预设hmac-sm3密钥保存在龙芯安全处理器内部,同时hmac-sm3算法运行在龙芯安全处理器器内部,避免了使用运行在主机内存中的散列算法、rsa数字签名算法导致存在安全隐患的问题,基于所述目标关键段调用初始化后的hmac-sm3算法得到第二完整性校验值,以便于后续根据所述第一完整性校验值与所述第二完整性校验值进行比对以得到完整性校验的结果。55.步骤s14:将所述第一完整性校验值与所述第二完整性校验值进行比较,如果所述第一完整性校验值与所述第二完整性校验值一致,则判定完整性校验成功并运行加载所述目标uefi映像文件。56.在本实施例中,将所述第一完整性校验值与所述第二完整性校验值进行比较,并确定比较结果,当所述第一完整性校验值与所述第二完整性校验值一致时,则判定完整性校验成功,并运行加载所述目标uefi映像文件。通过上述技术方案,将所述第一完整性校验值与第二完整性校验值进行比对,当所述第一完整性校验值与所述第二完整性校验值一致时,则运行加载所述目标uefi映像文件,以完成针对所述目标uefi映像文件的完整性校验。57.可见,本实施例在进行uefi映像文件完整性保护时,首先获取针对目标uefi映像文件的完整性校验指令,进一步读取并解析所述目标uefi映像文件,以得到所述目标uefi映像文件的目标关键段与第一完整性校验值,利用hmac-sm3密钥对所述龙芯安全处理器内部的hmac-sm3算法进行初始化后,进一步将所述目标关键段输入至所述龙芯安全处理器中的hmac-sm3算法中,并得到第二完整性校验值,最后将所述第一完整性校验值与所述第二完整性校验值进行比较,如果所述第一完整性校验值与所述第二完整性校验值一致,则判定完整性校验成功并执行加载所述目标uefi映像文件。由此可见,本技术在进行uefi映像文件完整性保护时,利用hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法后,进一步将所述目标关键段输入至所述龙芯安全处理器中的hmac-sm3算法中并得到第二完整性校验值,使用基于国家密码管理局商密sm3算法的hmac算法,在保证密码强度的情况下显著提高uefi映像文件验证过程的安全性和性能;另一方面,预设hmac-sm3密钥保存在龙芯安全处理器内部,同时hmac-sm3算法运行在龙芯安全处理器器内部,避免了使用运行在主机内存中的散列算法、rsa数字签名算法导致存在安全隐患的问题;再者,使用hmac-sm3算法不需要部署公钥基础设施运行速度快且易于维护和部署,抵抗密码分析的强度等同于散列函数强度。综上,本技术能够在保证满足国家密码管理局商用密码标准的前提下进行uefi启动时提高uefi映像文件验证过程的安全性和性能并降低部署复杂度。58.参见图4所示,本发明实施例公开了一种具体的uefi映像文件完整性保护方法,相对于上一实施例,本实施例对技术方案作了进一步说明和优化。59.步骤s21:获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件。60.步骤s22:解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值。61.步骤s23:利用预先保存在龙芯安全处理器内部的预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法,并基于所述目标关键段调用初始化后的hmac-sm3算法得到第二完整性校验值。62.步骤s24:将所述第一完整性校验值与所述第二完整性校验值进行比较,如果所述第一完整性校验值与所述第二完整性校验值一致,则判定完整性校验成功并运行加载所述目标uefi映像文件;如果所述第一完整性校验值与所述第二完整性校验值不一致,则判定完整性校验失败并禁止加载所述目标uefi映像文件。63.在本实施例中,将所述第一完整性校验值与所述第二完整性校验值进行比较,当所述第一完整性校验值与所述第二完整性校验值一致时,则判定针对所述目标uefi的完整性校验成功,运行并加载所述目标uefi映像文件;反之,当所述第一完整性校验值与所述第二完整性校验值不一致时,则判定针对所述目标uefi的完整性校验失败,则拒绝加载所述目标uefi映像文件。通过上述技术方案,将预先保存在所述目标uefi映像文件中的第一完整性校验值与利用目标关键段基于所述龙芯安全处理器中的hmac-sm3算法得到第二完整性校验值进行比对,并根据不同的比对结果执行对应的指令,以完成针对所述目标uefi映像文件的完整性校验。64.参见图5所示,本发明实施例公开了一种具体的uefi映像文件完整性保护方法,相对于上一实施例,本实施例对技术方案作了进一步说明和优化。65.步骤s31:获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件,然后对所述目标uefi映像文件的文件格式与所述目标uefi映像文件的文件头校验值进行验证。66.在本实施例中,uefi映像文件完整性保护采用基于国家密码管理局商密sm3算法的hmac算法,使用的密钥为sm3key(即预设hmac-sm3密钥),在平台出厂使用管理程序根据预设校验值隐藏规则将所述预设hmac-sm3密钥分散隐藏于龙芯安全处理器中的sm3keybuf(即hmac-sm3密钥缓冲区)。进一步地,获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件之前,还包括:根据初始uefi映像文件中的所述目标关键段基于所述龙芯安全处理器中的所述hmac-sm3算法确定所述第一完整性校验值;将所述第一完整性校验值写入至所述初始uefi映像文件中并重组所述初始uefi映像文件,以得到所述目标uefi映像文件。67.具体地,目标uefi映像文件生成流程示意图如图6所示,在平台出厂前,输入预设hmac-sm3密钥授权,将所述龙芯安全处理器进行初始化,将初始uefi映像文件加载到内存,验证初始uefi映像文件格式是否正确,pe文件头校验值是否正确,当所述初始uefi映像文件格式与pe文件头校验值均正确时,解析初始uefi映像文件的文件格式,取出对应的目标关键段,进一步调用龙芯安全处理器hmac-sm3算法,计算初始uefi映像文件的目标关键段对应的第一完整性校验值;根据预设第一校验值隐藏规则,将所述第一完整性校验值分散隐藏于sm3valuebuf区(即第一完整性校验值缓冲区),并在初始uefi映像文件中插入一个新节表,把sm3valuebuf数据写入节表中,第一完整性校验值嵌入至pe文件示意图如图7所示,并重构uefi映像文件的pe头与节表头,以得到所述目标uefi映像文件。其中,所述sm3keybuf与sm3valuebuf的字节长度可根据安全性要求进行确定。通过上述技术方案,将所述sm3keybuf与sm3valuebuf分别按照预设隐藏规则隐藏于对应的缓冲区,以保护对应的数据提高安全性。68.在本实施例中,对所述目标uefi映像文件的文件格式与所述目标uefi映像文件的文件头校验值进行验证。具体地,将目标uefi映像文件加载到内存,验证目标uefi映像文件格式是否正确,pe文件头校验值是否正确。通过上述技术方案,读取所述目标uefi映像文件并进一步验证对应的文件格式与文件头是否正确,以便于后续当所述文件格式与文件头正确时对所述目标uefi映像文件进行解析。69.步骤s32:如果所述文件格式与所述文件头校验值均正确,则解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值。70.在本实施例中,解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值。具体地,解析所述目标uefi映像文件得到所述目标uefi映像文件的目标关键段,并从所述目标uefi映像文件中确定出第一完整性校验值缓冲区数据;根据预设校验值隐藏规则将所述第一完整性校验值缓冲区数据进行重组,以得到第一完整性校验值。通过上述技术方案,从第一完整性校验值缓冲区数据中得到第一完整性校验值,以便完成后续对所述目标uefi映像文件的完整性校验。71.步骤s33:利用预先保存在龙芯安全处理器内部的预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法,并基于所述目标关键段调用初始化后的hmac-sm3算法得到第二完整性校验值。72.在本实施例中,目标uefi映像文件完整性校验流程示意图如图8所示,获取预先保存在龙芯安全处理器内部的预设hmac-sm3密钥缓冲区数据;根据预设密钥隐藏规则将所述预设hmac-sm3密钥缓冲区数据进行重组以得到预设hmac-sm3密钥,并利用所述hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法。具体地,输入sm3key授权取得sm3keybuf数据,根据预设密钥隐藏规则将所述预设hmac-sm3密钥缓冲区数据进行重组以得到预设hmac-sm3密钥,进一步初始化龙芯安全处理器。通过上述技术方案,根据预设密钥隐藏规则从所述预设hmac-sm3密钥缓冲区中获取到对应的预设hmac-sm3密钥,以便于进一步调用所述龙芯安全处理器中的hmac-sm3算法确定所述第二完整性校验值,以便于通过所述第一完整性校验值与所述第二完整性校验值的对比结果判定完整性校验的结果。73.步骤s34:将所述第一完整性校验值与所述第二完整性校验值进行比较,如果所述第一完整性校验值与所述第二完整性校验值一致,则判定完整性校验成功并运行加载所述目标uefi映像文件;如果所述第一完整性校验值与所述第二完整性校验值不一致,则判定完整性校验失败并禁止加载所述目标uefi映像文件。74.可见,在本实施例中,将所述sm3keybuf与sm3valuebuf分别按照预设隐藏规则隐藏于对应的缓冲区,并在获取目标uefi文件完整性校验时将第一完整性校验值与预设hmac-sm3密钥时从对应区域中进行重组,将第一完整性校验值直接嵌入至目标uefi映像文件中,后续再对文件进行重组,无需单独管理完整性校验值,以保护对应的数据提高安全性并降低部署难度。75.参见图9所示,本技术实施例公开了一种uefi映像文件完整性保护装置,包括:76.映像文件读取模块11,用于获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件;77.映像文件解析模块12,用于解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值;78.第二完整性校验值获取模块13,用于利用预先保存在龙芯安全处理器内部的预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法,并基于所述目标关键段调用初始化后的hmac-sm3算法得到第二完整性校验值;79.映像文件运行模块14,用于将所述第一完整性校验值与所述第二完整性校验值进行比较,当所述第一完整性校验值与所述第二完整性校验值一致时,则判定完整性校验成功并运行加载所述目标uefi映像文件。80.可见,本实施例在进行uefi映像文件完整性保护时,首先获取针对目标uefi映像文件的完整性校验指令,进一步读取并解析所述目标uefi映像文件,以得到所述目标uefi映像文件的目标关键段与第一完整性校验值,利用预设hmac-sm3密钥对所述龙芯安全处理器内部的hmac-sm3算法进行初始化后,进一步将所述目标关键段输入至所述龙芯安全处理器中的hmac-sm3算法中,并得到第二完整性校验值,最后将所述第一完整性校验值与所述第二完整性校验值进行比较,如果所述第一完整性校验值与所述第二完整性校验值一致,则判定完整性校验成功并执行加载所述目标uefi映像文件。由此可见,本技术在进行uefi映像文件完整性保护时,利用预设hmac-sm3密钥对所述龙芯安全处理器内部的hmac-sm3算法进行初始化后,进一步将所述目标关键段输入至所述龙芯安全处理器中的hmac-sm3算法中并得到第二完整性校验值,使用基于国家密码管理局商密sm3算法的hmac的算法,在保证密码强度的情况下显著提高uefi映像文件验证过程的安全性和性能;另一方面,预设hmac-sm3密钥保存在龙芯安全处理器内部,同时hmac-sm3算法运行在龙芯安全处理器器内部,避免了使用运行在主机内存中的散列算法、rsa数字签名算法导致存在安全隐患的问题;再者,使用hmac-sm3算法不需要部署公钥基础设施运行速度快且易于维护和部署,抵抗密码分析的强度等同于散列函数强度。综上,本技术能够在保证满足国家密码管理局商用密码标准的前提下进行uefi启动时提高uefi映像文件验证过程的安全性和性能并降低部署复杂度。81.在一些具体实施例中,所述uefi映像文件完整性保护装置还包括:82.第一完整性校验值获取模块,用于根据初始uefi映像文件中的所述目标关键段基于所述龙芯安全处理器中的所述hmac-sm3算法确定所述第一完整性校验值;83.uefi映像文件重组模块,用于将所述第一完整性校验值写入至所述初始uefi映像文件中并重组所述初始uefi映像文件,以得到所述目标uefi映像文件。84.在一些具体实施例中,所述映像文件解析模块12,具体包括:85.数据解析单元,用于解析所述目标uefi映像文件得到所述目标uefi映像文件的目标关键段,并从所述目标uefi映像文件中确定出第一完整性校验值缓冲区数据;86.校验值数据重组单元,用于根据预设校验值隐藏规则将所述第一完整性校验值缓冲区数据进行重组,以得到第一完整性校验值。87.在一些具体实施例中,所述第二完整性校验值获取模块13,具体包括:88.密钥数据获取单元,用于获取预先保存在龙芯安全处理器内部的hmac-sm3密钥缓冲区数据;89.密钥数据重组单元,用于根据预设密钥隐藏规则将所述预设hmac-sm3密钥缓冲区数据进行重组以得到预设hmac-sm3密钥,并利用所述预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法。90.在一些具体实施例中,所述映像文件读取模块11,具体用于:获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件,然后对所述目标uefi映像文件的文件格式与所述目标uefi映像文件的文件头校验值进行验证。91.在一些具体实施例中,所述映像文件解析模块12,具体用于:如果所述文件格式与所述文件头校验值均正确,则解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值。92.在一些具体实施例中,所述uefi映像文件完整性保护装置还包括:93.映像文件禁止加载模块14,,用于将所述第一完整性校验值与所述第二完整性校验值进行比较,当所述第一完整性校验值与所述第二完整性校验值不一致时,则判定完整性校验失败并禁止加载所述目标uefi映像文件。94.图10所示为本技术实施例提供的一种电子设备20。该电子设备20,具体还可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的uefi映像文件完整性保护方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。95.本实施例中,电源23用于为电子设备20上的各硬件设备提供电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本技术技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。96.另外,存储器22作为资源储存的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221,计算机程序222等,存储方式可以是短暂存储或者永久存储。97.其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222其可以是windowsserver、netware、unix、linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的uefi映像文件完整性保护方法的计算机程序外,还可以进一步包括能够用于完成其他特定工作的计算机程序。98.进一步的,本技术还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的uefi映像文件完整性保护方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。99.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。100.以上对本发明所提供的一种uefi映像文件完整性保护方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。当前第1页12当前第1页12
技术特征:
1.一种uefi映像文件完整性保护方法,其特征在于,包括:获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件;解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值;利用预先保存在龙芯安全处理器内部的预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法,并基于所述目标关键段调用初始化后的hmac-sm3算法得到第二完整性校验值;将所述第一完整性校验值与所述第二完整性校验值进行比较,如果所述第一完整性校验值与所述第二完整性校验值一致,则判定完整性校验成功并运行加载所述目标uefi映像文件。2.根据权利要求1所述的uefi映像文件完整性保护方法,其特征在于,还包括:根据初始uefi映像文件中的所述目标关键段基于所述龙芯安全处理器中的所述hmac-sm3算法确定所述第一完整性校验值;将所述第一完整性校验值写入至所述初始uefi映像文件中并重组所述初始uefi映像文件,以得到所述目标uefi映像文件。3.根据权利要求1所述的uefi映像文件完整性保护方法,其特征在于,所述解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值,包括:解析所述目标uefi映像文件得到所述目标uefi映像文件的目标关键段,并从所述目标uefi映像文件中确定出第一完整性校验值缓冲区数据;根据预设校验值隐藏规则将所述第一完整性校验值缓冲区数据进行重组,以得到第一完整性校验值。4.根据权利要求1所述的uefi映像文件完整性保护方法,其特征在于,所述利用预先保存在龙芯安全处理器内部的预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法,包括:获取预先保存在龙芯安全处理器内部的hmac-sm3密钥缓冲区数据;根据预设密钥隐藏规则将所述hmac-sm3密钥缓冲区数据进行重组以得到hmac-sm3密钥,并利用所述hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法。5.根据权利要求1所述的uefi映像文件完整性保护方法,其特征在于,所述获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件,包括:获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件,然后对所述目标uefi映像文件的文件格式与所述目标uefi映像文件的文件头校验值进行验证。6.根据权利要求5所述的uefi映像文件完整性保护方法,其特征在于,所述解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值,包括:如果所述文件格式与所述文件头校验值均正确,则解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值。7.根据权利要求1至6中任一项所述的uefi映像文件完整性保护方法,其特征在于,所述利用预先保存在龙芯安全处理器内部的预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法,并基于所述目标关键段调用初始化后的hmac-sm3算法得到第二完整性校验值之后,还包括:
将所述第一完整性校验值与所述第二完整性校验值进行比较,如果所述第一完整性校验值与所述第二完整性校验值不一致,则判定完整性校验失败并禁止加载所述目标uefi映像文件。8.一种uefi映像文件完整性保护装置,其特征在于,包括:映像文件读取模块,用于获取针对目标uefi映像文件的完整性校验指令并读取所述目标uefi映像文件;映像文件解析模块,用于解析所述目标uefi映像文件并得到所述目标uefi映像文件的目标关键段与第一完整性校验值;第二完整性校验值获取模块,用于利用预先保存在龙芯安全处理器内部的预设hmac-sm3密钥初始化所述龙芯安全处理器内部的hmac-sm3算法,并基于所述目标关键段调用初始化后的hmac-sm3算法得到第二完整性校验值;映像文件运行模块,用于将所述第一完整性校验值与所述第二完整性校验值进行比较,当所述第一完整性校验值与所述第二完整性校验值一致时,则判定完整性校验成功并运行加载所述目标uefi映像文件。9.一种电子设备,其特征在于,包括:存储器,用于保存计算机程序;处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的uefi映像文件完整性保护方法的步骤。10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的uefi映像文件完整性保护方法的步骤。
技术总结
本申请公开了一种UEFI映像文件完整性保护方法、装置、设备及介质,涉及信息技术领域。该方法包括:获取针对目标UEFI映像文件的完整性校验指令并读取目标UEFI映像文件;解析目标UEFI映像文件并得到目标UEFI映像文件的目标关键段与第一完整性校验值;利用预先保存在龙芯安全处理器内部的预设HMAC-SM3密钥初始化龙芯安全处理器内部的HMAC-SM3算法,并基于目标关键段调用初始化后的HMAC-SM3算法得到第二完整性校验值;将第一完整性校验值与第二完整性校验值进行比较,如果第一完整性校验值与第二完整性校验值一致,则判定完整性校验成功并运行加载目标UEFI映像文件。通过上述方案,能够在进行UEFI安全启动时提高UEFI映像文件验证过程的安全性和性能。验证过程的安全性和性能。验证过程的安全性和性能。
技术研发人员:胡蓬 黄锦 潘利华
受保护的技术使用者:中电科网络安全科技股份有限公司
技术研发日:2023.05.11
技术公布日:2023/8/4
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/