本发明涉及通信,具体涉及一种基于国密算法的设备可信启动方法、装置、计算机设备及存储介质。
背景技术:
1、随着信息技术的飞速发展,设备的安全越来越重要,可信启动是设备安全的根基,理论上其他的安全功能都应该在可信启动的基础上建立。
2、在对相关技术进行研究和实践的过程中,本申请的发明人发现传统的可信启动方案大都是基于美国联邦政府国家标准局颁布制定的aes/des/rsa等国际通用密码算法,容易出现非自主密码算法受到攻击导致信息泄露、危及信息安全的问题,设备启动的安全性较低。
技术实现思路
1、本发明实施例提供一种基于国密算法的设备可信启动方法、装置、计算机设备及存储介质,可以提高设备启动的安全性。
2、本申请实施例提供了一种基于国密算法的设备可信启动方法,包括:
3、读取目标存储芯片的第一程序区域中预设的第一国密sm2公钥,并计算所述第一国密sm2公钥的第一国密sm3值;
4、读取数据存储芯片中预设的目标国密sm2公钥的第二国密sm3值,并对所述第一国密sm3值与所述第二国密sm3值进行匹配;
5、当所述第一国密sm3值与所述第二国密sm3值相匹配时,读取所述第一固件区域中预设的第一国密sm3签名,并通过所述第一国密sm2公钥对所述第一国密sm3签名进行验签;
6、若所述验签通过,则分别验证所述目标存储芯片中第二程序区域和第三程序区域的完整性;
7、若所述第二程序区域和所述第三程序区域均完整,启动目标设备。
8、相应的,本申请实施例提供了一种基于国密算法的设备可信启动装置,包括:
9、计算单元,用于读取目标存储芯片的第一程序区域中预设的第一国密sm2公钥,并计算所述第一国密sm2公钥的第一国密sm3值。
10、匹配单元,用于读取数据存储芯片中预设的目标国密sm2公钥的第二国密sm3值,并对所述第一国密sm3值与所述第二国密sm3值进行匹配。
11、验签单元,用于当所述第一国密sm3值与所述第二国密sm3值相匹配时,读取所述第一固件区域中预设的第一国密sm3签名,并通过所述第一国密sm2公钥对所述第一国密sm3签名进行验签。
12、验证单元,用于若所述验签通过,则分别验证所述目标存储芯片中第二程序区域和第三程序区域的完整性。
13、启动单元,用于若所述第二程序区域和所述第三程序区域均完整,则启动目标设备。
14、在一实施例中,所述计算单元,包括:
15、计算子单元,用于将所述第一国密sm2公钥输入到预设的调用函数中,以计算获得所述第一国密sm3值。
16、在一实施例中,所述验签单元,包括:
17、解密子单元,用于通过所述第一国密sm2公钥,对所述第一国密sm3签名进行解密,得到解密后第一摘要文本;
18、处理子单元,用于对所述第一国密sm3签名对应的目标明文文本进行哈希处理,得到第二摘要文本;
19、匹配子单元,用于将所述第一摘要文本与所述第二摘要文本进行匹配;
20、判定子单元,用于若所述第一摘要文本与所述第二摘要文本相匹配,则判定验签通过。在一实施例中,所述验证单元,包括:
21、第一验证子单元,用于当所述第一摘要文本与所述第二摘要文本相匹配时,验证所述目标存储芯片中第二程序区域的完整性;
22、第二验证子单元,用于当所述第二程序区域的完整性验证通过时,验证所述目标存储芯片中第三程序区域的完整性。
23、在一实施例中,所述第一验证子单元还用于读取所述目标存储芯片的第二程序区域中预设的第二国密sm2公钥,并计算所述第二国密sm2公钥的第三国密sm3值;对所述第二国密sm3值与所述第三国密sm3值进行匹配;当所述第二国密sm3值与所述第三国密sm3值相匹配时,读取所述第二程序区域中预设的第三国密sm3签名,并通过所述第二国密sm2公钥对所述第三国密sm3签名进行验签;若验签通过,则确定所述第二程序区域的完整性。
24、在一实施例中,所述第二验证子单元还用于读取所述目标存储芯片中第三程序区域中预设的第三国密sm2公钥,并计算所述第三国密sm2公钥的第四国密sm3值;对所述第二国密sm3值与所述第四国密sm3值进行匹配;当所述第二国密sm3值与所述第四国密sm3值相匹配时,读取所述第三程序区域中预设的第四国密sm3签名,并通过所述第三国密sm2公钥对所述第四国密sm3签名进行验签;若验签通过,则确定所述第三固件区域的完整性。
25、相应的,本申请实施例还提供了一种计算机设备,包括存储器,处理器及存储在储存器上并可在处理器上运行的计算机程序,其中,所述处理器执行本申请实施例任一提供的基于国密算法的设备可信启动方法中的步骤。
26、相应的,本申请实施例还提供一种存储介质,所述存储介质存储有多条指令,所述指令适用于处理器进行加载,以执行本申请实施例任一提供的基于国密算法的设备可信启动方法中的步骤。
27、本发明实施例可以读取目标存储芯片的第一程序区域中预设的第一国密sm2公钥,并计算所述第一国密sm2公钥的第一国密sm3值;读取数据存储芯片中预设的目标国密sm2公钥的第二国密sm3值,并对所述第一国密sm3值与所述第二国密sm3值进行匹配;当所述第一国密sm3值与所述第二国密sm3值相匹配时,读取所述第一固件区域中预设的第一国密sm3签名,并通过所述第一国密sm2公钥对所述第一国密sm3签名进行验签;若所述验签通过,则分别验证所述目标存储芯片中第二程序区域和第三程序区域的完整性;若所述第二程序区域和所述第三程序区域均完整,则启动目标设备。本方案可以基于国密算法,通过可信链实现设备从第一程序区域、第二程序区域、第三程序区域的逐级可信启动,可以解决非自主密码算法受到攻击导致信息泄露、危及信息安全的技术问题,提高设备启动的安全性。
1.一种基于国密算法的设备可信启动方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述通过所述第一国密sm2公钥对所述第一国密sm3签名进行验签,包括:
3.根据权利要求2所述的方法,其特征在于,所述若所述验签通过,则分别验证所述目标存储芯片中第二程序区域和第三程序区域的完整性,包括:
4.根据权利要求3所述的方法,其特征在于,所述验证所述目标存储芯片中第二程序区域的完整性,包括:
5.根据权利要求3所述的方法,其特征在于,所述验证所述目标存储芯片中第三程序区域的完整性,包括:
6.根据权利要求1所述的方法,其特征在于,所述计算所述第一国密sm2公钥的第一国密sm3值,包括:
7.根据权利要求1所述的方法,其特征在于,所述第一程序区域包括u-boot区域,所述第二程序区域包括kernel区域,所述第三程序区域包括romfs区域,所述目标存储芯片为flash芯片,所述数据存储芯片为otp芯片。
8.一种基于国密算法的可信启动装置,其特征在于,包括用于执行如权利要求1-7任一项所述的方法的单元。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序当被处理器执行时可实现如权利要求1-7中任一项所述的方法。