一种微控制器芯片烧写器安全性的实现方法与流程

文档序号:34256244发布日期:2023-05-25 03:29阅读:68来源:国知局
一种微控制器芯片烧写器安全性的实现方法与流程

本发明涉及烧写,具体涉及一种微控制器芯片烧写器安全性的实现方法。


背景技术:

1、微控制器芯片在应用到具体的产品端的时候,都会经历一个“程序下载”过程,即将工程师编写和检验过的代码批量下载到微控制器芯片内。这时候就会使用到一个工具叫“程序烧写器”,简称“烧写器”。目前主流的微控制器芯片主要是arm cortex-m系列、risc-v系列、8051以及类似msp430等。烧写器对这些芯片进行操作的时候,主要会进行片上flash擦除、程序烧录、烧写序列号、程序校对等工作。为了适应工厂端的工人操作,一般都需要技术人员在pc端上位机设置好对应的操作项,然后将烧录文件装载到烧写器内,这样离线脱离开电脑之后,只要简单地按压烧写器上的按钮,烧写器就能按原先上位机上指定的操作项对微控制器芯片进行批量烧写下载作业。

2、现在市面上主流的微控制器芯片烧写器都存在一些与安全性相关的使用痛点问题,主要表现为以下三个方面:一是烧录文件存储的安全性,由于烧写器需要存储较大的烧录文件,一般做法都是在烧写器中主控芯片之外附带一颗大容量的nor-flash存储芯片用于存储用户烧录文件。现在市面上主流的烧写器基本就是将明文烧录文件装载到存储芯片,稍微好一点的就是用固定的密码对明文烧录文件进行一次加密,再装载到存储芯片内,明文装载程序到存储芯片的保密性最差,因为可以直接通过存储芯片的spi等接口将烧录文件复制出,再结合一定的协议分析即可得到原始烧录文件;使用单一固定的对称加密容易被暴力破解,得到明文后经过一定的协议分析同样也较容易得到原始烧录文件。二是烧录文件传递的安全性:若烧录文件所有权方或发送方怕代码泄露,不希望将烧录文件明文传递给烧录工厂或者对应的接收方时,现有做法只能将烧写器工具带回,由所有权方将代码装载到烧写器内。如果两者之间有很大的空间距离,比如海外客户,那这个传递工作是非常耗时且影响生产效率的。三是烧录次数更改的安全性:若烧录文件所有权方只规定其客户可以烧录固定数量的芯片,比如只授权给烧录工厂生产烧录一万片芯片,现有主流的烧写器工具都只能在递交烧写器给使用方之前,先固定装载烧录次数,如果需要更改烧录次数,比如烧录厂重新付费了五千片的软件授权费,需要烧录文件所有权方增加烧录次数的时候,都只能将烧写器返回给烧录文件所有权方重新设置烧录次数,同样非常耗时且影响生产效率。

3、上述的三个问题实际都是相互关联的,无法有效解决烧录文件在烧写器内存储的安全,那么即使烧录文件的传递过程再安全,烧录文件本身也很容易被窃取和破解。此外,烧录文件的存储和传递是安全的,但是如果没有次数限定,即使不去破解烧录文件的内容,始终“霸占”着这台装载了烧录文件的烧写器,任由其复制盗用里面的软件内容,也是枉然。


技术实现思路

1、本发明主要是为了解决现有主流的烧写器存在着存储安全性、传递安全性和烧写次数更改安全性的问题,提供了一种微控制器芯片烧写器安全性的实现方法,烧录文件以密文形式存储到烧写器内,保证了烧录文件在微控制器芯片烧写器端的安全性,降低了被窃取的可能性;无须将烧写器返厂,远程授权更新烧写器烧写次数和加密传递烧录文件,极大地提高了这两项替换工作的便捷性和时效性,同时保证了烧写器烧写次数更新和烧录文件传递的安全性。

2、为了实现上述目的,本发明采用以下技术方案。

3、一种微控制器芯片烧写器安全性的实现方法,所述烧写器包括主控芯片msp430fr6989,所述主控芯片通过spi接口连接存储芯片nor-flash,主控芯片包括ipe加密存储区、硬件aes128加解密引擎和随机数发生器,包括以下步骤:

4、步骤s1:结合主控芯片id、存储芯片id、随机数和二项式fa(x),生成烧录文件在本地存储的密钥keya,烧录文件以密文形式装载到烧写器内;

5、步骤s2:烧录文件所有权方在寄烧写器给烧录文件使用权方前,选择设定更改烧写次数为授权模式,将授权密码和烧写次数连同烧录文件一起装载到烧写器内;

6、步骤s3:结合接收方主控芯片id、存储芯片id、随机数和二项式fb(x),生成烧录文件远程传递的密钥keyb,烧录文件以密文形式从发送方传递到接收方;

7、步骤s4:接收方接收到密文烧录文件后,将密文烧录文件进行解密,得到明文烧录文件,并将明文烧录文件烧录至目标微控制器芯片中;

8、本发明提供了一种微控制器芯片烧写器安全性的实现方法,主控芯片msp430fr6989作为整个烧写器的主控单元,拥有着ipe(ip encapsulation)加密存储区(类似于银行卡的esam)、硬件aes128加解密引擎和随机数发生器,其中,ipe加密存储区内的代码可以访问整个主控芯片msp430fr6989的内存空间,但是ipe加密存储区之外的任何代码都无法访问读取存在于ipe加密存储区中的内容,甚至包括jtag和dma外设也不可以,因此本方法将密钥、加密算法、二项式等敏感内容全部存储于ipe加密存储区。ipe加密存储区之外的函数虽然不可以读取ipe加密存储区内的内容,但是并不妨碍它可以调用存在于ipe加密存储区内的函数api,比如aes128的加密算法和密钥都存储在于ipe加密存储区内,那么ipe加密存储区之外的函数依然可以通过这个aes128的函数首地址进行调用和参数传递。随机数发生器用于产生随机数,该随机数产生同时会被保存到主控芯片msp430fr6989的ipe加密存储区内,用于后续解密。考虑到主控芯片msp430fr6989中有现成的硬件aes128加解密引擎,本方案中使用到的所有对称算法都以aes128作为算法基础。本发明保证了烧录文件在微控制器芯片烧写器端的安全性,降低了被窃取的可能性,脱离开微控制器芯片烧写器的主控芯片唯一id、存储芯片唯一id、二项式算式、随机数等4个要素的任何一个都不可能正确地解密存储在存储芯片内的密文数据;在保证了烧录文件不泄露的前提下,实现了传统微控制器芯片烧写器不具备的烧录文件远程加密传递与烧写次数远程授权更新的功能,极大地提高了这两项替换工作的便捷性和时效性,解决了现有主流的烧写器需要返厂更新烧写次数和装载烧录文件耗时且影响生产效率的问题。

9、作为优选,所述步骤s1的具体过程为:结合烧写器主控芯片的唯一id、存储芯片的唯一id以及随机数经过一个二项式fa(x)换算得到一个16字节的密钥keya,以所述密钥keya作为烧录文件在本地存储的加密密钥,使用密钥keya通过aes128-cfb模式对烧录文件进行加密,烧录文件以密文形式存储到烧写器的存储芯片内。该密钥keya会由于存储芯片nor-flash、主控芯片msp430fr6989、二项式、随机数四个中任一元素的不同而不同,这样,即使当存储芯片nor-flash被人恶意从烧写器内拆卸下,因为脱离开烧写器的主控芯片msp430fr6989,无法得到密钥keya的组成部分,也就无法完成解密。此外由于随机数的参与,即使加载的烧录文件本身没变,但是由于每次参与加密的密钥keya都是不同的,也就无法使用暴力破解方式进行破解了。生成这样一个密钥keya之后,本方法再使用aes128-cfb模式对烧录文件进行加密,由于使用了cfb模式,即使是相同的烧录文件,由于明文分包加密次序不同,形成的密文也不同,能够保证烧录文件是以“流密文”形式保存,所以当数据包被烧写器接收后,都会以密文形态存储到烧写器内。本发明结合随机数,烧写器内器件id与二项式绑定产生的密钥keya,对烧录文件加密存储,防止拆卸和暴力破解存储芯片。

10、作为优选,所述步骤s2的具体过程为:对烧写器配置进行初始化设置,烧录文件所有权方第一次寄烧写器给烧录文件使用权方前,就选择设定更改烧写次数为授权模式authorized,将授权密码password(该密码不透露给用户,用户即烧录文件使用权方)和烧写次数连同烧录文件一起装载到烧写器内;后续只有拥有授权密码的一方,才有权限更新烧写器烧写次数。本发明设置授权模式,通过授权密码限定更新烧写器烧写次数的权限,实现安全有效地远程授权更新烧写器烧写次数。

11、作为优选,将4字节的授权密码和2字节的烧写次数尾附以10字节随机数,组成16字节的数据;将所述16字节的数据作为授权密码和烧写次数的信息帧,下发给烧写器。

12、作为优选,取烧录文件第一包数据的前16字节,以2字节的整个明文烧录文件的数据包个数和2字节的crc校验码替换这16字节数据中的特定4个字节,得到所述信息帧的加密密钥keyd,使用密钥keyd加密信息帧;烧写器接收到信息帧密文后,首先从烧录文件第一包数据中解析出密钥keyd,然后使用所述密钥keyd解密所述信息帧密文,将其中有效的授权密码和烧写次数筛选出来装载到ipe加密存储区(保护区)内。同时,立马将这帧信息帧密文从非保护区的flash内删除。后续每烧写成功一次,ipe加密存储区(保护区)内的烧写次数就会递减一次,减到0之后就不允许后续烧写操作。

13、作为优选,所述更新烧写器烧写次数的具体过程,包括以下步骤:

14、步骤a1:烧录文件使用权方向烧录文件所有权方发送烧写字符信息(又名编程字符信息);具体的,烧录文件使用权方(即用户)将烧写器与电脑连接,点击上位机procntauthorization菜单,将烧写器16字节的烧写字符信息procntrandombytes拷贝出来发送给烧录文件所有权方;

15、步骤a2:烧录文件所有权方使用烧写次数授权码流生成软件(又名编程次数授权码流生成软件),输入烧写字符信息、授权密码和烧写次数,生成烧写次数更新授权码(又名编程次数更新授权码),并将所述烧写次数更新授权码发送给烧录文件使用权方;具体的,烧录文件所有权方得到用户发送过来的烧写字符信息procntrandombyte之后,将这16字节数据复制到烧写次数授权码流生成软件内,输入授权密码passwor以及需要追加的烧写次数,点击generate按钮,它会产生一个16字节的烧写次数更新授权码authorization code,烧录文件所有权方只要将该16字节的烧写次数更新授权码发送给用户即可;

16、步骤a3:烧录文件使用权方在与烧写器连接的上位机菜单上导入烧写次数更新授权码,实现更新烧写器烧写次数;具体的,用户得到烧写次数更新授权码authorizationcode后,将这串授权码流导入上位机procnt authorization菜单内,点击ok按钮,烧写器的烧录次数就会增加指定的烧写次数。

17、作为优选,所述步骤s3的具体过程,包括以下步骤:

18、步骤s31:使用接收方烧写器主控芯片id、存储芯片id、随机数和二项式fb(x)组合成一个用于远程加解密烧录文件的密钥keyb,然后使用密钥keyc(烧写器制造商定义的根密钥)对密钥keyb进行加密得到密钥keyb',将所述密钥keyb'传递给发送方;

19、步骤s32:发送方将密钥keyb'装载到上位机内,上位机利用密钥keyc对密钥keyb'进行解密得到密钥keyb,并使用密钥keyb对烧录文件进行aes128加密,得到密文烧录文件,将所述密文烧录文件发送给接收方;在生成密文烧录文件的时候,发送方可以选择后续的烧写操作是否需要限定接收方的烧写次数;

20、所谓传递是指烧录文件通过各种外媒介质,比如u盘、微信等,从一方传递给另外一方,为了安全起见,发送方发出的烧录文件属于密文形式,且该密文烧录文件在别的烧写器(这里“别的烧写器”是指同款但不同个体的烧写器)上不可以使用,它具有独占性,这就要求发送方对烧录文件进行加密的时候,要事先获取接收方烧写器的id特征信息。密钥keyb'作为烧写器的一种id特征数据,是一种工具指纹信息,对收发双方都是以明文形式呈现的。keyb、keyc是在烧写器生产阶段就已经存储于主控芯片msp430fr6989的ipe加密存储区内,烧录文件的收发双方作为烧写器的使用者均无法知道这两个密钥的存在、使用的具体加密算法,以及工作机理。本发明结合随机数,烧写器内器件id与二项式绑定产生的密钥keyb,对烧录文件加密传递,降低了烧录代码泄露的可能性。

21、作为优选,步骤a3中,基于烧写次数更新授权码实现更新烧写器烧写次数的具体过程,包括以下步骤:

22、步骤b1:烧写器获得烧写次数更新授权码authorization code后,利用烧写器存储的pincode和烧录文件所有权方设定的授权密码password将主控芯片id、存储芯片id、随机数及异或上位机设定下发的烧写次数信息进行解析;

23、步骤b2:由于“主控芯片id、存储芯片id、随机数”本身就是烧写器上传给上位机的,它在上传的同时也会将此信息备份到自己的ipe加密存储区中,所以烧写器反向解析authorization code之后,会将解析信息与存储在ipe加密存储区内的主控芯片id、存储芯片id和随机数进行比对,若一致,说明所述烧写次数更新授权码就是授权给当前烧写器的,且是当下这次更新需求的,然后烧写器通过异或操作提取出烧写次数信息,并将所述烧写次数信息追加到ipe加密存储区中用于存储烧写次数的变量内;若不一致,说明该帧authorization code是非法无效的,自然也不会去更改烧写器内存储烧写次数的变量的值。很显然这种方式,即使相隔万里,双方只需要通过即时交互工具沟通3分钟就可以解决烧写次数更改的问题。

24、password是上位机和烧写器在初始化阶段同步的;pincode是在烧写器生产阶段就植入到烧写器内,编程次数授权码流生成软件也早早集成了pincode。

25、作为优选,烧录文件数据包以密文形式存储到烧写器内,烧写器在对目标微控制器芯片烧录的过程中使用密钥keya实时解密数据包(此处解密是指针对存储加密的解密),并根据数据包内的地址信息将代码数据烧录在正确位置。每个分包段内都包含着这个数据包会被放置的地址信息,烧写器会在对目标芯片下载烧写的过程中实时解密,并根据数据包内的地址信息将代码数据准确地烧录在它本应该被放置的位置,不会因为分包次序不同导致代码被下载到错误地址区域。

26、作为优选,步骤s4中,使用存储于ipe加密存储区内的密钥keyb对密文烧录文件进行解密(此处解密是指针对传递加密的解密)。keyb在烧写器生产阶段就已经存储于主控芯片msp430fr6989的ipe加密存储区内。

27、因此,本发明的优点是:

28、(1)保证了烧录文件在微控制器芯片烧写器端的安全性,降低了被窃取的可能性,脱离开微控制器芯片烧写器的主控芯片唯一id、存储芯片唯一id、二项式算式、随机数等4个要素的任何一个都不可能正确地解密存储在存储芯片内的密文数据;

29、(2)在保证了烧录文件不泄露的前提下,实现了传统微控制器芯片烧写器不具备的烧录文件远程加密传递与烧写次数远程授权更新的功能,极大地提高了这两项替换工作的便捷性和时效性,解决了现有主流的烧写器需要返厂更新烧写次数和装载烧录文件耗时且影响生产效率的问题;

30、(3)结合随机数,烧写器内器件id与二项式绑定产生的密钥keya,对烧录文件加密存储,防止拆卸和暴力破解存储芯片;

31、(4)设置授权模式,通过授权密码限定更新烧写器烧写次数的权限,实现安全有效地远程授权更新烧写器烧写次数;

32、(5)结合随机数,烧写器内器件id与二项式绑定产生的密钥keyb,对烧录文件加密传递,降低了烧录代码泄露的可能性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1