本发明涉及计算机的数据写入,具体涉及一种dsp安全启动方法、装置及计算机可读介质。
背景技术:
1、dsp芯片是一种为高速、实时处理数字信号而设计的微处理器,广泛用于通信、图像识别、工业控制、航天、军事国防等领域。由于其应用场景复杂、涉及范围广,特别是在军工以及航天领域,而随着系统升级的需要,需要对dsp程序进行更新升级,而传统的更新方式一般是通过上位机通过以太网向dsp发送编译后的二进制更新文件;dsp通过其引导加载程序接收并暂存文件至一个临时区域;新程序在验证通过后,被dsp写入闪存或其他非易失性存储器中,最后再重启并重新启动。
2、然而,同时,设备在实际使用过程中,若flash写入错误程序会导致dsp不能正常启动,导致设备无法正常运行,设备必须暂停当前工作状态,进行维修升级。这种状态大大降低了系统的可靠性。传统的软件镜像管理以及非可信启动已经难以满足安全需求,极端情况下可能会由于镜像被篡改而导致严重的事故。
技术实现思路
1、本发明的目的在于提供一种dsp安全启动方法、装置及计算机可读介质,对接收到的镜像进行硬件校验通过后再存入片外flash中,对dsp程序进行更新时,读取镜像文件时再次验证,验证通过后,通过切换flash的控制权从falsh中读取验证通过的原始bin文件进行安全启动,采用硬件加解密芯片,提高安全性和解密效率,从而大大提高了dsp启动安全性。
2、为实现上述目的,本技术提供以下方案:
3、一方面,本技术提供一种dsp安全启动方法,mcu作为dsp安全更新启动的主控单元,执行以下过程:
4、s1、接收dsp程序更新信号,控制cpld切换模块将片外flash访问权切换到mcu;
5、s2、接收并解析带签名的完整镜像包,得到原始bin文件和文件签名内容,下发原始bin文件和文件签名内容到tpm安全模块进行验证,接收返回的验证结果,若验证通过则将原始bin文件写入片外falsh中,并将文件签名内容保存到mcu内部存储器中;
6、s3、每次接收dsp安全启动信号时,从片外flash中读取原始bin文件并从mcu内部存储器中读取对应的文件签名内容,控制tpm安全模块验证文件签名内容,接收返回的验签结果;
7、s4、若验签通过则控制cpld切换模块将片外flash访问权切换到dsp,dsp从片外flash中加载通过验签的原始bin文件安全启动。
8、本技术的构思为:
9、dsp更新重启时,一般是通过设置两个flash作为备份和固件冗余,一般一个用于存储更新的程序文件,一个用于存储dsp启动运行时的程序文件,采用两个flash的固件备份机制,可提高系统稳定性,但程序更新文件在存储时没有进行安全性验证,无法保证更新程序文件的合法性,同时启动时也没有进行安全性验证,之前已存在的通过安全验证的固件不确保是否已被暴力修改,以上漏洞在极端情况下可能会由于程序文件被非法篡改而导致dsp启动不可预期,甚至会对系统造成不可逆的破坏。
10、针对于此,本技术通过设置双重校验以及通过硬件切换实现dsp和mcu主控单元对一个片外flash的控制,确保dsp更新后的安全启动以及flash的高效应用。双重校验分别为更新时,对接收到的加密程序更新的镜像文件通过tpm硬件解密后进行校验,防止非授权程序固化,另一次校验为dsp每次启动时对需要加载到dsp中的镜像文件进行校验,判断文件是否被篡改,当验证通过时,才会将flash访问权切换给dsp,dsp从flash中读取程序文件安全启动,双重验证可以避免程序被恶意篡改、程序非法运行,确保dsp始终运行授权的程序,从而大大提高了dsp启动安全性。
11、在一种可选地实施方式中,带签名的完整镜像包的文件内容包括头部、原始bin文件、文件签名内容,所述文件签名内容包括原始bin文件大小、签名信息和公钥。
12、在一种可选地实施方式中,步骤s2中的解析验证过程为:
13、s21、解析带签名的完整镜像包,得到完整镜像包的文件内容,从文件内容中读取文件签名内容和原始bin文件;
14、s22、下发文件签名内容和原始bin文件到tpm安全模块,tpm安全模块采用sm3计算原始bin文件的第二摘要值,再根据公钥、签名信息以及第二摘要值进行sm2验证。
15、在一种可选地实施方式中,步骤s3中验证文件签名内容的过程为:
16、s31、控制cpld切换模块将片外flash访问权切换到mcu;
17、s32、从片外flash中读取原始bin文件,并从mcu内部存储器中读取该原始bin文件对应的的文件签名内容;
18、s33、将原始bin文件和文件签名内容下发到tpm安全模块,tpm安全模块采用sm3计算原始bin文件的第二摘要值,再根据公钥、签名信息以及第二摘要值进行sm2验证。
19、在一种可选地实施方式中,得到带签名的完整镜像包的过程为:
20、s11、编译生成原始bin文件,利用sm2算法生成sm2公私密钥对,公私密钥对包括公钥和私钥;
21、s12、采用sm3杂凑算法计算原始bin文件的第一摘要值;
22、s13、采用sm2利用私钥对第一摘要值进行签名,得到带有签名信息的原始bin文件;
23、s14、将带有签名信息的原始bin文件按照镜像包文件格式封装为带签名的完整镜像包。
24、第二方面,本技术提供一种dsp安全启动装置,包括mcu主控单元、tpm安全模块、cpld切换模块、片外flash和dsp,其中,tpm安全模块和cpld分别通过spi总线与mcu主控单元通信连接,mcu主控单元的i2c接口与cpld切换模块连接,片外flash和dsp分别通过spi总线与cpld切换模块通信连接。
25、在一种可选地实施方式中,mcu主控单元,用于接收并解析带签名的完整镜像包、并控制cpld切换模块切换片外flash的访问权、控制tpm安全模块对带签名的完整镜像包进行验证、并根据接收到的验证结果将原始bin文件写入片外flash中,并将文件签名内容保存到mcu内部存储器中;
26、tpm安全模块,用于对带签名的完整镜像包进行验证,并返回验证结果给mcu主控单元;
27、cpld切换模块,用于接收mcu主控单元的切换信号,在mcu主控单元和dsp之间切换对片外flash的访问权,并用于dsp上电启动控制;
28、片外flash,用于存储验证通过的原始bin文件。
29、在一种可选地实施方式中,带签名的完整镜像包的文件内容包括头部、原始bin文件、文件签名内容,所述文件签名内容包括原始bin文件大小、签名信息和公钥。
30、在一种可选地实施方式中,带签名的完整镜像包的签名采用sm3杂凑算法和sm2摘要签名算法,sm3杂凑算法用于计算原始bin文件的第一摘要值,sm2摘要签名算法用于对第一摘要值进行签名。
31、第三方面,本技术提供一种计算机可读存储介质,包括指令,当所述指令在电子设备上运行时,使得所述电子设备执行如第一方面所述的一种dsp安全启动方法。
32、本发明具有的有益效果:
33、本技术通过在存储更新程序的镜像文件时进行合法性校验,可以防止外部暴力篡改,防止非授权程序固化,同时在dsp每次读取镜像文件启动时再次进行合法性校验,确保dsp始终运行授权的程序,提高了dsp启动安全性。
34、本技术采用mcumcu主控单元控制cpld切换对片外flash的访问权,提高flash的利用率,且mcu主控单元本身具有内部存储空间可存储信息具有一定安全性,验证采用硬件验证芯片tpm完成验证过程,使用硬件可以提高安全性和解密效率,避免程序被恶意篡改、程序非法运行等问题。