本申请涉及数据安全,尤其是涉及一种固件下载链路的保护方法、装置、设备及存储介质。
背景技术:
1、在芯片固件的烧录、下载场景中,通常由芯片厂商提供专用的下载工具及上位机软件将固件下载至芯片中,下载工具通过iic/uart/spi等通信接口实现固件下载,下载链路示意图如图1所示。
2、芯片固件中可能包含重要信息,如设备配置、用户数据、算法逻辑等,这些信息如果在传输过程中被拦截或窃取,将可能导致设备被非法控制、用户隐私泄露等严重后果。芯片厂商或方案厂商为了防止产品方案被抄袭、窃取,通常会对下载链路采取密文的下载方式,使用固定密钥进行加密后传输。
3、然而,当下载链路使用固定密钥进行加密传输时,通过抓取链路上的数据内容,可以通过下载接口复制相同内容传输至芯片内,难以防止被传输的固件信息被复制,导致固件信息被窃取或抄袭,存在数据安全隐患。
技术实现思路
1、为了有助于解决下载链路使用固定密钥进行加密传输时,通过抓取链路上的数据内容,可以通过下载接口复制相同内容传输至芯片内,难以防止被传输的固件信息被复制,导致固件信息被窃取或抄袭,存在数据安全隐患的问题,本申请提供一种固件下载链路的保护方法、装置、设备及存储介质。
2、第一方面,本申请提供一种固件下载链路的保护方法,采用如下技术方案:所述方法应用于接收端设备,所述方法包括:
3、在启动上电时,生成随机数,所述随机数由所述接收端设备随机生成;
4、利用所述随机数、预设固定密钥以及预设握手确认信息与下载器完成握手操作;
5、接收动态加密固件信息,并对所述动态加密固件信息进行解密,生成明文固件数据,其中,所述动态加密固件信息为所述下载器对待传输的固件信息进行动态加密后生成,所述下载器对所述待传输的固件信息加密方式与所述接收端设备对所述动态加密固件信息解密方式相对应。
6、在一个具体的可实施方案中,所述利用所述随机数、预设固定密钥以及预设握手确认信息与下载器完成握手操作包括:
7、利用所述预设固定密钥对所述随机数进行加密,生成加密随机数,并将所述加密随机数传输至下载器;
8、接收加密握手确认信息,并对所述加密握手确认信息进行解密生成明文握手确认信息,其中,所述加密握手确认信息为所述下载器对所述加密随机数解密生成明文随机数后,根据第一加密规则对所述预设握手确认信息进行加密后生成;
9、将解密后的所述明文握手确认信息与所述预设握手确认信息进行比对;
10、若所述明文握手确认信息与所述预设握手确认信息比对一致,则与所述下载器握手完成。
11、在一个具体的可实施方案中,所述利用所述预设固定密钥对所述随机数进行加密,生成加密随机数包括:
12、将所述预设固定密钥拆分为两个数据块,生成高位固定密钥和低位固定密钥;
13、将所述随机数与所述高位固定密钥进行异或计算,生成第一中间密文;
14、将所述第一中间密文与所述低位固定密钥进行异或计算,生成加密随机数。
15、在一个具体的可实施方案中,所述第一加密规则包括:
16、将解密后的所述明文随机数、所述预设固定密钥以及0值进行拼接,生成握手确认密钥;
17、将所述握手确认密钥与所述预设握手确认信息进行异或操作。
18、在一个具体的可实施方案中,所述待传输的固件信息包括序列值、固件数据和校验信息,其中,所述序列值根据所述下载器和所述接收端设备间的通信次数确定,所述下载器和所述接收端设备每通信一次,所述序列值加一;
19、所述动态加密固件信息包括密文序列值、密文固件数据和密文校验信息,其中,所述密文序列值、所述密文固件数据和所述密文校验信息为所述下载器对所述待传输的固件信息加密生成。
20、在一个具体的可实施方案中,所述对所述动态加密固件信息进行解密,生成明文固件数据包括:
21、将所述密文固件数据按预设的数据大小进行拆分,生成若干密文固件数据块;
22、将若干所述密文固件数据块进行预设的密文校验计算,生成密文固件校验数据;
23、将所述密文固件校验数据与所述下载器发送的所述密文校验信息进行比对;
24、若比对结果一致,则对所述密文序列值进行解密,生成明文序列值;
25、判断解密后的所述明文序列值与当前处理记录的序列值是否大于1;
26、若解密后的所述明文序列值与当前处理记录的序列值不大于1,则将所述随机数、所述预设固定密钥以及所述明文序列值进行拼接,生成固件数据密钥;
27、采用所述固件数据密钥对所述密文固件数据进行解密,生成明文固件数据。
28、在一个具体的可实施方案中,所述采用所述固件数据密钥对所述密文固件数据进行解密,生成明文固件数据包括:
29、按顺序依次将相邻所述密文固件数据块进行异或计算,生成若干与所述密文固件数据块对应的明文固件数据块,其中,所述密文固件数据块中第一密文数据块与所述固件数据密钥进行异或计算,生成第一明文固件数据块;
30、将若干所述明文固件数据块进行拼接生成明文固件数据。
31、第二方面,本申请提供一种固件下载链路的保护装置,采用如下技术方案:所述对所述密文序列值进行解密,生成明文序列值包括:
32、将所述预设固定密钥拆分为两个数据块,生成高位固定密钥和低位固定密钥;
33、将所述密文序列值与所述低位固定密钥进行异或计算,生成第一中间明文;
34、将所述第一中间明文与所述高位固定密钥进行异或计算,生成明文序列值。
35、第三方面,本申请提供一种计算机设备,采用如下技术方案:包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如上述任一种固件下载链路的保护方法的计算机程序。
36、第四方面,本申请提供一种计算机可读存储介质,采用如下技术方案:存储有能够被处理器加载并执行上述任一种固件下载链路的保护方法的计算机程序。
37、综上所述,本申请具有以下有益技术效果:
38、通过接收端设备,如芯片等产生一个随机数,利用该随机数实现下载器与接收端设备的握手通信,以确保下载器和芯片端之间可以正常通信和传输数据;在下载器和接收端设备握手完成之后,通过动态加密的方式对固件信息进行加密并传输,芯片端根据对应的加密方式进行解密,从而可以尽可能避免下载链路上的数据内容被复制,以及密钥被暴力破解,提高数据链路传输数据过程时的安全性。
1.一种固件下载链路的保护方法,其特征在于:所述方法应用于接收端设备,所述方法包括:
2.根据权利要求1所述的方法,其特征在于:所述利用所述随机数、预设固定密钥以及预设握手确认信息与下载器完成握手操作包括:
3.根据权利要求2所述的方法,其特征在于:所述利用所述预设固定密钥对所述随机数进行加密,生成加密随机数包括:
4.根据权利要求2所述的方法,其特征在于:所述第一加密规则包括:
5.根据权利要求1所述的方法,其特征在于:所述采用所述固件数据密钥对所述密文固件数据进行解密,生成明文固件数据包括:
6.根据权利要求1所述的方法,其特征在于:所述对所述密文序列值进行解密,生成明文序列值包括:
7.一种固件下载链路的保护装置,应用于权利要求1至6中任一项所述的固件下载链路的保护方法,其特征在于:所述装置应用于接收端设备,所述装置包括:
8.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至6中任一种所述方法的计算机程序。
9.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至6中任一种所述方法的计算机程序。
