本发明涉及计算机 ,尤其涉及一种程序加载方法、装置、电子设备及存储介质。
背景技术:
1、现有技术中的电子信息设备和系统,在启动前都需要载入启动程序,通过执行启动程序去启动操作系统,随后才可以正常工作,因此载入启动程序往往是设备启动的第一环。
2、现有技术中为了保证安全启动,通过hash(哈希)算法为软件程序生成一组专有的摘要值,再将该摘要值通过非对称加密的方式存储在flash(闪存)等存储器件中,当系统启动时,bmc(基板管理控制器,baseboard management controller)会对存储器中待启动的软件程序进行hash运算得出该程序的摘要值,再用公钥解密flash等存储器中的摘要值。将两个摘要值进行对比验证,如果一模一样则说明系统中的软件程序是安全可信的,可以用该程序进行正常启动,否则停止启动。
3、现有技术的启动方法仍然存在一定的安全隐患,例如,攻击者可以篡改软件程序及存储器内的摘要值,从而导致载入恶意程序。
技术实现思路
1、
2、本发明提供一种程序加载方法、装置、电子设备及存储介质,保证了启动程序的数据安全性,提升了安全启动的安全性能。
3、本发明提供一种程序加载方法,包括如下步骤:获取乱序数据和加密数据,所述乱序数据依据随机数和启动校验值生成,所述加密数据为使用加密密钥和所述随机数对启动程序进行加密得到的数据,所述启动校验值为所述启动程序的校验值,所述随机数为写入所述加密数据时随机生成的数值;使用所述随机数对乱序数据进行解码,得到所述启动校验值;获取所述加密数据的校验值,得到实时校验值;若所述启动校验值和所述实时校验值相同,则依据解密密钥和所述随机数对所述加密数据进行解密,得到所述启动程序;加载所述启动程序。
4、根据本发明提供的一种程序加载方法,所述使用所述随机数对乱序数据进行解码,得到所述启动校验值,包括:使用所述随机数对所述乱序数据进行重建,得到所述启动校验值。
5、根据本发明提供的一种程序加载方法, 所述使用所述随机数对所述乱序数据进行重建,得到所述启动校验值,包括:使用所述随机数对所述乱序数据进行重建,得到重建数据;使用预设密钥对所述重建数据进行解密,得到所述启动校验值。
6、根据本发明提供的一种程序加载方法,所述依据解密密钥和所述随机数对所述加密数据进行解密,得到所述启动程序,包括:依据所述解密密钥和所述随机数进行密钥增强,生成增强密钥;依据所述增强密钥对所述加密数据进行解密,得到所述启动程序。
7、根据本发明提供的一种程序加载方法,所述方法还包括:接收程序摘要值,所述程序摘要值为写入程序的摘要值,所述写入程序用于将所述加密数据写入存储器中;将所述程序摘要值与校验摘要值进行比较;若所述程序摘要值与所述校验摘要值相同,与所述写入程序建立可信链路,所述可信链路用于接收所述加密数据。
8、根据本发明提供的一种程序加载方法, 所述密钥增强,包括:异或操作、密钥派生函数、椭圆曲线运算。
9、本发明还提供一种程序加载装置,包括如下模块:获取模块,用于获取乱序数据和加密数据,所述乱序数据依据随机数和启动校验值生成,所述加密数据为使用加密密钥和所述随机数对启动程序进行加密得到的数据,所述启动校验值为所述启动程序的校验值,所述随机数为写入所述启动程序时控制器随机生成的数值,所述控制器用于加载所述启动程序;解码模块,用于使用所述随机数对乱序数据进行解码,得到所述启动校验值;计算模块,用于获取所述加密数据的校验值,得到实时校验值;校验模块,用于若所述启动校验值和所述实时校验值相同,则依据解密密钥和所述随机数对所述加密数据进行解密,得到所述启动程序;启动模块,用于加载所述启动程序。
10、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述任一种所述程序加载方法。
11、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述程序加载方法。
12、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述程序加载方法。
13、本发明提供的程序加载方法、装置、电子设备及存储介质,引入控制器的随机数对启动程序的本体和校验值进行加密,最大限度保证了乱序数据和加密数据只能由指定的数据写入方发送,也最大限度保证了乱序数据和加密数据只能被控制器获取,保证了启动程序的数据安全性,提升了安全启动的安全性能。
1.一种程序加载方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述使用所述随机数对乱序数据进行解码,得到所述启动校验值,包括:
3.根据权利要求2所述的方法,其特征在于,所述使用所述随机数对所述乱序数据进行重建,得到所述启动校验值,包括:
4.根据权利要求1所述的方法,其特征在于,所述依据解密密钥和所述随机数对所述加密数据进行解密,得到所述启动程序,包括:
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
6.根据权利要求4所述的方法,其特征在于,所述密钥增强,包括:异或操作、密钥派生函数、椭圆曲线运算。
7.一种程序加载装置,其特征在于, 所述装置包括:
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述程序加载方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述程序加载方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述程序加载方法。