本发明属于国密算法和嵌入式电子,尤其涉及一种基于国密算法的固件烧录保护方法及系统。
背景技术:
1、本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
2、如今各式各样的嵌入式电子产品的出货量与日俱增,一些不法分子总是想方设法通过各种破解方法来获取嵌入式电子产品的固件进行盗版,脱机下载器中保存着嵌入式电子产品的固件,脱机下载器的安全至关重要,一旦脱机下载器被盗走,则意味着用户的产品有着极大可能性被盗版;脱机下载器的用户需要脱机下载器配合实现更多的固件加密功能,来防止固件被破解后运行在其他非正版的产品之上,而目前的脱机下载器提供的简单软件加密方式无法满足用户的需求,容易被反汇编、反编译等手段逆向破解。
技术实现思路
1、为克服上述现有技术的不足,本发明提供了一种基于国密算法的固件烧录保护方法及系统,利用安全下载器与上位软件的唯一识别信息,对固件进行多种加密保护,特别是基于国产密码算法和加密芯片对关键信息进行加密,保证上位软件与单片机之间固件传输和烧录的效率和安全性。
2、基于以安全下载器为载体,对上位软件与单片机之间的固件脱机传输过程进行加密保护,将上位软件制作的固件安全烧录到单片机上。
3、为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:
4、本发明第一方面提供了一种基于国密算法的固件烧录保护方法。
5、一种基于国密算法的固件烧录保护方法,以安全下载器为载体,将上位软件制作的固件安全烧录到单片机上,具体步骤为:
6、安全下载器与上位软件连接后,基于双方的唯一识别信息,经过密钥协商,共同建立会话密钥;
7、基于会话密钥,在上位软件和安全下载器之间进行固件的加密传输;
8、安全下载器对收到的固件进行加密,将加密后的固件存储在安全下载器的flash中;
9、安全下载器与单片机连接后,对加密后的固件进行解密,并将解密后的固件发送到引导加载程序bsl中,通过引导加载程序bsl将固件烧录到单片机中;
10、其中,所述加密,是基于安全下载器的唯一识别信息,使用国密算法sm4对固件一次加密;再利用加密芯片,使用国密算法sm2对固件二次加密。
11、进一步的,所述安全下载器,包括:
12、用作控制器的主控mcu;
13、用来存储固件的flash;
14、内置国密算法的加密芯片;
15、用于和上位软件进行通信的配置usb;
16、用于进行烧录的终端bsl。
17、进一步的,所述flash,采用zd25wq16,主控mcu通过spi接口连接到flash进行读取和保存固件。
18、进一步的,所述安全下载器的唯一识别信息,包括:单片机的唯一标识、flash唯一标识和加密芯片的唯一标识;
19、所述上位软件的唯一识别信息,包括:固件版本号和上位软件唯一标识号;
20、安全下载器和上位软件相互预存对方的唯一识别信息。
21、进一步的,所述会话密钥,是利用双方的唯一识别信息,执行sm3哈希运算生成的。
22、进一步的,所述会话密钥的具体生成步骤为:
23、读取安全下载器和上位软件的唯一识别信息;
24、对读取的信息执行sm3哈希运算,得到32字节密钥种子;
25、生成64字节随机数,并和32字节密钥种子,按预设规则生成会话密钥。
26、进一步的,所述使用国密算法sm4对固件一次加密,具体为:
27、读取固件数据内容和长度,用国密算法sm4的ctr模式对固件进行加密。
28、进一步的,所述加密芯片采用rjmu401,主控mcu通过spi接口连接到rjmu401,具体加密过程为:
29、读取一次加密后的固件;
30、向rjmu401加密芯片发送sm2加密指令,生成二次加密后的固件。
31、进一步的,所述生成二次加密后的固件,是将一次加密后的固件与sm2加密指令产生的crc校验和4个字节相加后,进行加密得到的。
32、本发明第二方面提供了一种基于国密算法的固件烧录保护系统。
33、一种基于国密算法的固件烧录保护系统,用于以安全下载器为载体,将上位软件制作的固件安全烧录到单片机上,具体包括密钥协商模块、固件传输模块、固件存储模块和固件烧录模块:
34、密钥协商模块,被配置为:安全下载器与上位软件连接后,基于双方的唯一识别信息,经过密钥协商,共同建立会话密钥;
35、固件传输模块,被配置为:基于会话密钥,在上位软件和安全下载器之间进行固件的加密传输;
36、固件存储模块,被配置为:安全下载器对收到的固件进行加密,将加密后的固件存储在安全下载器的flash中;
37、固件烧录模块,被配置为:安全下载器与单片机连接后,对加密后的固件进行解密,并将解密后的固件发送到bsl中,通过bsl将固件烧录到单片机中;
38、其中,所述加密,是基于安全下载器的唯一识别信息,使用国密算法sm4对固件一次加密,再利用加密芯片,使用国密算法sm2对固件二次加密。
39、以上一个或多个技术方案存在以下有益效果:
40、本发明提出了一种利用安全下载器与上位软件的唯一识别信息对固件进行多种加密保护的方法与系统,该方法固件和唯一标识绑定,基于国产密码算法对关键信息进行一次加密,且使用加密芯片进行二次加密,与以往的技术相比,本发明是一种通用性好、效率高且安全性高的固件烧录保护方法。
41、本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
1.一种基于国密算法的固件烧录保护方法,其特征在于,以安全下载器为载体,将上位软件制作的固件安全烧录到单片机上,具体步骤为:
2.如权利要求1所述的一种基于国密算法的固件烧录保护方法,其特征在于,所述安全下载器,包括:
3.如权利要求1所述的一种基于国密算法的固件烧录保护方法,其特征在于,所述flash,采用zd25wq16,主控mcu通过spi接口连接到flash进行读取和保存固件。
4.如权利要求1所述的一种基于国密算法的固件烧录保护方法,其特征在于,所述安全下载器的唯一识别信息,包括:单片机的唯一标识、flash唯一标识和加密芯片的唯一标识;
5.如权利要求1所述的一种基于国密算法的固件烧录保护方法,其特征在于,所述会话密钥,是利用双方的唯一识别信息,执行sm3哈希运算生成的。
6.如权利要求5所述的一种基于国密算法的固件烧录保护方法,其特征在于,所述会话密钥的具体生成步骤为:
7.如权利要求1所述的一种基于国密算法的固件烧录保护方法,其特征在于,所述使用国密算法sm4对固件一次加密,具体为:
8.如权利要求1所述的一种基于国密算法的固件烧录保护方法,其特征在于,所述加密芯片采用rjmu401,主控mcu通过spi接口连接到rjmu401,具体加密过程为:
9.如权利要求8所述的一种基于国密算法的固件烧录保护方法,其特征在于,所述生成二次加密后的固件,是将一次加密后的固件与sm2加密指令产生的crc校验和4个字节相加后,进行加密得到的。
10.一种基于国密算法的固件烧录保护系统,其特征在于,用于以安全下载器为载体,将上位软件制作的固件安全烧录到单片机上,具体包括密钥协商模块、固件传输模块、固件存储模块和固件烧录模块: