本申请涉及信息安全领域,具体涉及一种软件安全校验方法、装置、电子设备及存储介质。
背景技术:
1、随着“软件定义汽车”时代的来临,软件在汽车上的应用比例越来越高,伴随着车联网的普及,汽车不再是一个与网络世界隔离的个体,因此网络攻击不再局限于pc、服务器等常规对象,汽车亦成为网络攻击的对象。若汽车上的ecu(electronic controlunit,车载电脑)遭受攻击,则攻击者可以影响ecu软件的正常运行,轻则导致一些信号的丢失或出错,重则直接使整个ecu停止工作使得汽车不受控制,严重威胁车主的人身安全。
2、mcu(microcontrollerunit,微控制单元)作为车载ecu的核心控制芯片,mcu上运行的应用软件往往是可更新的,若攻击者以应用软件更新的方式或者调试工具线刷的方式攻击mcu,则mcu上的应用软件会被篡改,若mcu运行了被篡改的软件则可能带来不良后果,因此,亟需一种能够校验软件安全状态的方案。
技术实现思路
1、鉴于以上所述现有技术的缺点,本申请提供一种软件安全校验方法、装置、电子设备及存储介质,以解决上述muc上运行的软件被篡改的技术问题。
2、本申请提供的一种软件安全校验方法,包括获取所述软件的运行启动文件和运行应用文件,所述运行启动文件包括原始启动文件和启动签名,所述运行应用文件包括原始应用文件和应用签名,所述启动签名基于所述原始启动文件的原始启动摘要生成,所述应用签名基于所述原始应用文件的原始应用摘要生成;基于所述运行动摘要与所述原始启动摘要匹配通过,则所述运行启动文件校验通过;若所述运行启动文件校验通过,基于所述运行应用文件得到运行应用摘要,计算所述应用签名得到原始应用摘要;若所述运行应用摘要和所述原始应用摘要匹配通过,则所述运行应用文件校验通过,所述软件的安全校验通过。
3、于本发明的一实施例中,所述软件安全校验方法还包括:若所述运行启动摘要与所述原始启动摘要匹配不通过,则所述软件的安全校验不通过;若所述运行启动摘要与所述原始启动摘要匹配通过,校验所述运行应用文件;若所述运行应用文件校验不通过,则所述软件的安全校验不通过。
4、于本发明的一实施例中,其特征在于,获取所述软件的运行启动文件和运行应用文件之前,还包括:计算所述软件的所述原始启动文件得到所述原始启动摘要,基于启动公钥计算所述原始启动摘要,生成所述启动签名;将所述启动签名添加到所述原始启动文件中的预设启动校验地址,得到运行启动文件;计算所述软件的所述原始应用文件得到所述原始应用摘要,基于应用公钥计算所述原始应用摘要,生成所述应用签名;将所述应用签名添加到所述原始应用文件中的预设应用校验地址,得到运行应用文件。
5、于本发明的一实施例中,计算所述启动签名得到原始启动摘要包括:基于启动私钥计算所述启动校验地址中的启动签名得到所述原始启动摘要,所述启动私钥与所述启动公钥配对。
6、于本发明的一实施例中,计算所述应用签名得到原始应用摘要包括:基于应用私钥计算所述应用校验地址中的应用签名得到所述原始应用摘要,所述应用私钥与所述应用公钥配对。
7、于本发明的一实施例中,将所述启动签名添加到所述原始启动文件中的预设启动校验地址,得到运行启动文件包括:将所述原始启动文件中的预设地址设置为所述预设启动校验地址;将所述启动签名添加到所述原始启动文件中的预设启动校验地址,添加所述启动签名后,所述原始启动文件的所述原始启动摘要与添加所述启动签名前一致。
8、于本发明的一实施例中,基于所述运行启动文件得到运行启动摘要、基于所述运行应用文件得到运行应用摘要包括:调用安全散列算法对所述运行启动文件进行计算,得到所述运行启动摘要;调用安全散列算法对所述运行应用文件进行计算,得到所述运行应用摘要。
9、本发明的实施例还提供一种软件安全校验装置,所述软件安全校验装置包括:获取模块,用于每次车载电脑启动软件之前,获取所述软件的运行启动文件和运行应用文件,所述运行启动文件包括原始启动文件和启动签名,所述运行应用文件包括原始应用文件和应用签名,所述启动签名基于所述原始启动文件的原始启动摘要生成,所述应用签名基于所述原始应用文件的原始应用摘要生成;启动计算模块,用于基于所述运行启动文件得到运行启动摘要,计算所述启动签名得到原始启动摘要;启动校验模块,用于若所述运行启动摘要与所述原始启动摘要匹配通过,则所述运行启动文件校验通过;应用计算模块,用于若所述运行启动文件校验通过,基于所述运行应用文件得到运行应用摘要,计算所述应用签名得到原始应用摘要;应用校验模块,用于若所述运行应用摘要和所述原始应用摘要匹配通过,则所述运行应用文件校验通过,所述软件的安全校验通过。
10、本发明的实施例还提供一种电子设备,所述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如上述各实施例中任一所述的软件安全校验方法。
11、本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行如上述各实施例中任一所述的软件安全校验方法。
12、本申请的有益效果:本申请中的一种软件安全校验方法、装置、电子设备及存储介质,该方法通过获取软件的运行启动文件和运行应用文件并对该运行启动文件和运行应用文件进行校验,从而防止mcu上运行的软件被篡改带来的不良后果,基于启动签名和应用签名对运行启动文件和运行应用文件进行校验,快速校验结果准确。
13、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
1.一种软件安全校验方法,其特征在于,所述软件安全校验方法包括:
2.根据权利要求1所述的软件安全校验方法,其特征在于,所述软件安全校验方法还包括:
3.根据权利要求1或2任一项所述的软件安全校验方法,其特征在于,获取所述软件的运行启动文件和运行应用文件之前,还包括:
4.根据权利要求3所述的软件安全校验方法,其特征在于,计算所述启动签名得到原始启动摘要包括:
5.根据权利要求3所述的软件安全校验方法,其特征在于,计算所述应用签名得到原始应用摘要包括:
6.根据权利要求3所述的软件安全校验方法,其特征在于,将所述启动签名添加到所述原始启动文件中的预设启动校验地址,得到运行启动文件包括:
7.根据权利要求1或2任一项所述的软件安全校验方法,其特征在于,基于所述运行启动文件得到运行启动摘要、基于所述运行应用文件得到运行应用摘要包括:
8.一种软件安全校验装置,其特征在于,所述软件安全校验装置包括:
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行权利要求1至7中任一项所述的软件安全校验方法。