公开/公告号CN114816549A
专利类型发明专利
公开/公告日2022-07-29
原文格式PDF
申请/专利号CN202210583967.1
申请日2022-05-27
分类号G06F9/4401;G06F21/60;
代理机构南京纵横知识产权代理有限公司;
代理人钟昕宇
地址 211106 江苏省南京市南京江宁经济技术开发区诚信大道19号
入库时间 2023-06-19 16:11:11
法律状态公告日
法律状态信息
法律状态
2022-07-29
公开
发明专利申请公布
技术领域
本发明涉及一种基于TPCM保护bootloader及其环境变量的方法,属于信息安全技术领域。
背景技术
目前,嵌入式设备一般都使用bootloader(引导加载程序)来进行系统加载,为了使用上的方便,bootloader在设计时还会引入环境变量来指导其运行。
环境变量的明文暴露以及环境变量设置查看接口的暴露,使得攻击者可以方便地对嵌入式设备进行分析和修改,从而增加了嵌入式设备的安全风险。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种保护bootloader(引导加载程序)及其环境变量的方法,可保证安全性,保护bootloader及其环境变量不被篡改。
为达到上述目的,本发明是采用下述技术方案实现的:
第一方面,本发明提供了一种保护bootloader及其环境变量的方法,包括以下步骤:
获取加密后的bootloader的镜像;所述加密后的bootloader内存储有加密后的内部环境变量;
对加密后的bootloader的镜像进行验签;
若验签失败,阻止系统启动;
若验签成功,则在bootloader运行时对内部环境变量进行解密。
进一步的,所述加密后的bootloader的镜像的生成方法包括:
修改bootloader代码,移除查看、修改、保存外部环境变量的相关入口;
将bootloader运行时需要用到的环境变量使用对称加密算法加密后嵌入到bootloader的内部环境变量中;
使用非对称加密算法对修改后的bootloader镜像进行签名,并将签名值嵌入到bootloader镜像中。
进一步的,对加密后的bootloader的镜像进行验签的方法包括:
使用预存储的非对称密钥的公钥对加密后的bootloader的镜像进行验签;
所述非对称密钥的公钥与所述非对称加密算法相对应。
进一步的,在bootloader运行时对内部环境变量进行解密的方法包括:
使用预存储的对称密钥对加密后的bootloader的镜像进行解密,得到bootloader运行时需要用到的环境变量;
所述对称密钥与所述对称加密算法相对应。
进一步的,所述对称加密算法,可为DES算法,也可为国密SM4算法;
所述非对称加密算法,可为RSA算法,也可为国密SM2算法。
第二方面,本发明提供一种基于TPCM保护bootloader及其环境变量的系统,包括:
CPU,存在于电路板上;
存储芯片,存在于电路板上,存储有加密后的bootloader,所述加密后的bootloader需要运行于CPU上;
TPCM芯片,存在于电路板上,分别通过硬件接口连接CPU和存储芯片;所述TPCM芯片内预存储有对称密钥和非对称密钥的公钥;
所述TPCM芯片通过硬件接口控制CPU是否上电,通过硬件接口访问存储芯片中的bootloader;且通过硬件接口作为一个密码模块被CPU访问;
电路板上电时TPCM先上电,CPU没有上电,所述TPCM芯片使用非对称密钥的公钥对加密后的bootloader镜像进行验签;若验签失败,TPCM芯片阻止系统启动;
若验签成功,TPCM芯片控制CPU上电;
CPU上电后,bootloader开始执行,CPU接入TPCM芯片作为密码模块使用,bootloader使用对称密钥解密加密的内部环境变量,得到内部环境变量,使用内部环境变量进行bootloader的正常运行。
进一步的,TPCM(可信平台控制模块)芯片的开发方法包括:
通过特定接口并经过授权认证后进入TPCM的密钥导入模式;
将对称密钥导入到TPCM芯片的指定位置;
将非对称密钥的公钥导入到TPCM芯片的指定位置。
进一步的,所述bootloader,包括PMON、UBOOT加载引导程序。
进一步的,所述TPCM芯片,包含了国密密码模块,可对bootloader进行度量并控制bootloader的执行。
与现有技术相比,本发明所达到的有益效果:
1、本发明提出了一种基于TPCM保护bootloader及其环境变量的方法,通过对bootloader的修改以及通过TPCM对bootloader的校验来解决上述问题,从而增加嵌入式设备的安全性。
2、本发明的bootloader的环境变量被加密存储在bootloader镜像中,黑客无法通过分析bootloader镜像而获得其环境变量;由于移除了bootloader中查看及修改环境变量的相关入口,黑客无法通过设置或修改bootloader的环境变量来改变bootloader运行时的数据和特性;由于使用了TPCM对bootloader镜像进行校验,就阻止了被非法修改的bootloader的运行,大大提高了系统运行的安全性。
3、由于采用非对称加密算法进行验签,对于使用者来说,只能够使用公钥验签,无法得到私钥修改,大大增加了bootloader的环境变量的安全性。
附图说明
图1为bootloader处理前后对比图;
图2为在开发环境中处理bootloader和TPCM的流程;
图3为在运行环境中对bootloader的处理流程。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
本发明中TPCM:可信平台控制模块;Bootloader:引导加载程序。
实施例一:
如图2、3所示,一种保护bootloader及其环境变量的方法,包括以下步骤:
步骤一、在开发环境中对bootloader的处理流程:
修改bootloader代码,移除查看、修改、保存外部环境变量的相关入口;
将bootloader运行时需要用到的环境变量使用对称加密算法加密后嵌入到bootloader的内部环境变量中;需要使用的环境变量由运行的硬件板子所决定,在bootloader代码中可以得到。修改后的bootloader不再包含外部环境变量。
使用非对称加密算法对bootloader镜像进行签名,并将签名值嵌入到bootloader镜像中。
步骤二、在开发环境中对TPCM芯片的处理流程:
通过特定接口并经过授权认证后进入TPCM的密钥导入模式;其中,特定接口为TPCM芯片的密钥管理接口,通过密钥进行认证。
将对称密钥导入到TPCM芯片的指定位置;对称密钥用于后面运行时对环境变量进行对称加密。
将非对称密钥的公钥导入到TPCM芯片的指定位置。非对称密钥的公钥用于对bootloader镜像进行验签。
步骤三、在运行环境中对bootloader的处理流程:
上电后,TPCM首先使用非对称密钥的公钥对bootloader镜像进行验签,若验签成功进入下一步,否则阻止系统启动;
bootloader运行时,调用TPCM提供的解密接口使用上面的对称密钥解密内部环境变量。
所述bootloader,包括PMON、UBOOT等加载引导程序。
所述环境变量,是bootloader运行时所需要用到的变量。包括内部环境变量和外部环境变量。
所述外部环境变量,是指固化在外部存储介质上的环境变量,如nand flash、mmc等。
所述内部环境变量,是指固化在bootloader镜像中的环境变量。
所述TPCM芯片,包含了国密密码模块,与存储bootloader固件的芯片相连接,可对bootloader固件进行度量并控制bootloader的执行。国密密码模块为常用的密码模块。
所述对称加密算法,可为DES算法,也可为国密SM4算法。
所述非对称加密算法,可为RSA算法,也可为国密SM2算法。
本发明中,开发环境包括:普通PC机,其可以修改bootloader代码和编译其镜像,也包含对bootloader进行签名的工具。
采用本方法,在保证安全性的前提下,可以保护bootloader及其环境变量不被篡改。由于bootloader的环境变量被加密存储在bootloader镜像中,黑客无法通过分析bootloader镜像而获得其环境变量;由于移除了bootloader中查看及修改环境变量的相关入口,黑客无法通过修改bootloader的环境变量来改变bootloader运行时的数据和特性;由于使用了TPCM对bootloader镜像进行校验,就阻止了被非法修改的bootloader的运行。
实施例二:
本实施例提供一种基于TPCM保护bootloader及其环境变量的系统,包括:
CPU,存在于电路板上;
存储芯片,存在于电路板上,存储有加密后的bootloader,所述加密后的bootloader需要运行于CPU上;
TPCM芯片,存在于电路板上,分别通过硬件接口连接CPU和存储芯片;所述TPCM芯片内预存储有对称密钥和非对称密钥的公钥;
所述TPCM芯片通过硬件接口控制CPU是否上电,通过硬件接口访问存储芯片中的bootloader;且通过硬件接口作为一个密码模块被CPU访问;
电路板上电时TPCM先上电,CPU没有上电,所述TPCM芯片使用非对称密钥的公钥对加密后的bootloader镜像进行验签;若验签失败,TPCM芯片阻止系统启动;
若验签成功,TPCM芯片校验bootloader成功后才控制CPU上电;
CPU上电后,bootloader开始执行,CPU接入TPCM芯片作为密码模块使用,bootloader使用对称密钥解密加密的内部环境变量,使用内部环境变量进行bootloader的正常运行。
所述TPCM芯片,包含了国密密码模块,与存储bootloader固件的芯片相连接,可对bootloader固件进行度量并控制bootloader的执行。国密密码模块为常用的密码模块。
在开发环境中对bootloader的处理流程:
修改bootloader代码,移除查看、修改、保存外部环境变量的相关入口;
将bootloader运行时需要用到的环境变量使用对称加密算法加密后嵌入到bootloader的内部环境变量中;需要使用的环境变量由运行的硬件板子所决定,在bootloader代码中可以得到。修改后的bootloader不再包含外部环境变量。
使用非对称加密算法对bootloader镜像进行签名,并将签名值嵌入到bootloader镜像中。
在开发环境中对TPCM芯片的处理流程:
通过特定接口并经过授权认证后进入TPCM的密钥导入模式;其中,特定接口为TPCM芯片的密钥管理接口,通过密钥进行认证。将对称密钥导入到TPCM芯片的指定位置;对称密钥用于后面运行时对环境变量进行对称加密。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
机译: 提供关于虚拟卷的连续数据保护的方法,一种生成关于虚拟卷的即时数据的方法以及一种提供关于虚拟卷的连续数据保护的系统,该系统能够通过使用分配分配来保护连续数据
机译: 一种用于在车辆乘员保护系统中释放至少两个可单独点燃的雷管级的可燃性的方法,以及一种用于车辆乘员保护系统的电控制装置
机译: 生产水泥砂浆以保护自然生态系统的一种环保方法。如何通过其混凝土砂浆为防止冻结的行动铺平道路,如何配置挡土墙,一种用于生态生态系统恢复的人工礁石结合阶梯式砌块的制造方法,一种生态友好的砌块方法,人造霍巴克多使用