本技术涉及信息安全领域,尤其涉及一种软件启动的验证方法、软件启动方法、装置、设备及介质。
背景技术:
1、节能减排是汽车产业可持续发展的关键,电动车辆由于其节能环保的优势成为汽车产业可持续发展的重要组成部分。对于电动车辆而言,电池技术又是关乎其发展的一项重要因素。
2、对于包含电池的用电装置而言,为了确保系统装载的软件运行安全,在软件启动前往往需要对其进行完整性和安全性校验,以识别软件是否存在非授权的篡改,然而由于软件通常包括多个程序模块,校验时需要耗费较多的时间,使得用户等待时间增加。
技术实现思路
1、本技术旨在至少解决背景技术中存在的技术问题之一。为此,本技术的一个目的在于提供一种软件启动的验证方法、软件启动方法、装置、设备及介质,以改善软件启动耗时较长的问题。
2、本技术第一方面的实施例提供一种软件启动的验证方法,软件包括至少一个程序模块,该方法包括:运行软件的启动头文件,启动头文件为软件开发编译阶段、基于至少一个程序模块生成的数据结构;基于第一密码学算法确定启动头文件的校验结果;响应于启动头文件的校验结果为通过,输出用于指示启动软件的第一指令;基于第二密码学算法确定至少一个程序模块的校验结果;响应于至少一个程序模块的校验结果为不通过,输出用于指示禁止运行未通过校验的程序模块的第二指令。
3、根据本技术的一些实施例,验证方法完全依靠软件实现,无需依赖hsm,可以简化硬件布置和硬件成本,由于启动头文件是在软件开发编译阶段生成的,并且包含了软件程序模块关联的信息,可信度较高,而且文件较小,校验所需的时间较短、对于计算能力要求也较小,可以缩短启动校验的等待时间。另外,在启动软件以后仍然继续对软件中的程序模块进行校验,从而确保软件校验的完整性和可靠性。
4、在一些实施例中,基于第一密码学算法确定启动头文件的校验结果包括:基于第一密码学算法和启动头文件确定第一验证信息,第一验证信息用于验证启动头文件;响应于第一验证信息与第一预设信息一致,确定启动头文件的校验结果为通过;其中,第一预设信息是软件开发编译阶段、基于第一密码学算法和启动头文件生成的验证信息。采用基于密码学算法计算得到的第一验证信息与软件开发阶段生成的第一预设信息进行比对校验,能够更准确的判断软件是否被篡改,从而提高软件启动校验的准确性和可靠性。
5、在一些实施例中,基于第一密码学算法和启动头文件确定第一验证信息;第一验证信息用于验证启动头文件包括:调用预设密钥;预设密钥是基于第一密码学算法确定、在软件开发编译阶段预置的密钥;基于第一密码学算法、启动头文件和预设密钥,确定第一验证信息。预设密钥的生成是在软件开发编译阶段,具有随机性和不可预测性,选用预设密钥用于加密过程,可以确保了验证信息的唯一性和安全性,从而更可靠地验证启动头文件的完整性和来源,提高校验结果的可信度。
6、在一些实施例中,基于第二密码学算法确定至少一个程序模块的校验结果包括:对于至少一个程序模块中的任意一个程序模块,基于第二密码学算法确定该程序模块的第二验证信息;响应于第二验证信息与启动头文件中的第二预设信息不一致,判定至少一个程序模块的校验结果为不通过;其中,第二预设信息是在该软件开发编译阶段基于第二密码学算法生成的、与该程序模块对应的验证信息。在软件启动之后继续对软件中的每个程序模块进行校验,可以在不影响软件的等待时间的基础上,完成对软件的每个程序模块进行校验,从而实现对整个软件校验的完整性和可靠性。
7、在一些实施例中,第二密码学算法与第一密码学算法为不同的加密算法。根据启动头文件和程序模块各自的特点和安全需求,使用不同的密码学算法可以更好地适应这些不同的需求,从而兼顾完整性校验的可靠性和检验效率。
8、在一些实施例中,运行软件的启动头文件,启动头文件是在软件开发编译阶段、基于至少一个程序模块生成的数据结构之前还包括:运行预设的启动校验程序,预设的启动校验程序是在软件开发编译阶段生成、并置于写保护存储区域中的程序。启动校验程序在软件开发编译阶段预置可以尽早确定信任锚点,有助于形成可信度较高的信任链,提高校验的可靠性,而且也有利于进一步简化校验方式、提高校验效率。
9、本技术第二方面的实施例提供一种软件启动方法,软件包括至少一个程序模块,该方法包括:响应于接收到指示启动软件的唤醒指令;执行上述软件启动的验证方法。通过在接收到指示启动软件的唤醒指令后执行软件启动的验证方法,能够确保软件的完整性和安全性,降低未经授权的修改导致系统性能下降或安全问题的风险,提高软件运行的可靠性。
10、在一些实施例中,软件启动方法还包括:响应于接收到用于指示启动该软件的第一指令,启动该软件。在启动头文件验证通过后即可启动软件,可以节省启动时间,提高校验效率。
11、在一些实施例中,软件启动方法还包括:响应于接收到用于指示禁止运行未通过校验的程序模块的第二指令,禁止运行该程序模块。在出现校验不通过的情况下,及时禁止运行该程序模块,可以有效降低软件运行可能导致的风险和隐患,提高软件启动的安全性和可靠性。
12、本技术第三方面的实施例提供一种软件启动的验证装置,其包括运行单元、第一校验单元、第一输出单元、第二校验单元和第二输出单元:运行单元被配置用于运行软件的启动头文件,启动头文件为软件开发编译阶段、基于至少一个程序模块生成的数据结构;第一校验单元被配置用于确定启动头文件的校验结果;第一输出单元被配置用于响应于启动头文件的校验结果为通过,输出用于指示启动该软件的第一指令;第二校验单元被配置用于确定至少一个程序模块的校验结果;第二输出单元被配置用于响应于至少一个程序模块的校验结果为不通过,输出用于指示禁止运行未通过校验的程序模块的第二指令。
13、本技术第四方面的实施例提供一种软件启动装置,其包括接收单元和软件启动验证单元,接收单元被配置用于接收指示启动软件的唤醒指令;软件启动验证单元被配置用于响应于接收单元接收到唤醒指令,执行上述软件启动的验证方法。
14、本技术第五方面的实施例提供一种计算设备,其包括:至少一个处理器;以及与至少一个处理器通信连接的至少一个存储器,至少一个存储器存储有指令,该指令当被至少一个处理器单独或共同执行时,使计算设备执行上述软件启动的验证方法或软件启动方法。
15、本技术第六方面的实施例提供一种计算机可读存储介质,存储有指令,该指令当被计算设备的一个或多个处理器单独或共同执行时,使计算设备执行上述软件启动的验证方法或软件启动方法。
16、本技术第七方面的实施例提供一种计算机程序产品,其包括指令,该指令当被计算设备的一个或多个处理器单独或共同执行时,使计算设备执行上述软件启动的验证方法或软件启动方法。
17、本技术第八方面的实施例提供一种电池管理系统,其包括上述软件启动的验证装置、上述软件启动装置、上述计算设备、上述计算机可读存储介质或上述计算机程序产品。
18、本技术第九方面的实施例提供一种电池装置,其包括上述软件启动的验证装置、软件启动装置、计算设备、计算机可读存储介质、计算机程序产品或上述电池管理系统。
19、本技术第十方面的实施例提供一种车辆,其包括上述软件启动的验证装置、软件启动装置、计算设备、计算机可读存储介质、计算机程序产品、电池管理系统或电池装置。
20、上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。