CN109598105B - 一种微控制器安全加载固件的方法、装置、计算机设备及存储介质 - Google Patents

一种微控制器安全加载固件的方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN109598105B
CN109598105B CN201811467203.6A CN201811467203A CN109598105B CN 109598105 B CN109598105 B CN 109598105B CN 201811467203 A CN201811467203 A CN 201811467203A CN 109598105 B CN109598105 B CN 109598105B
Authority
CN
China
Prior art keywords
boot loader
firmware
secret key
microcontroller
module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811467203.6A
Other languages
English (en)
Other versions
CN109598105A (zh
Inventor
杨志佳
冯元元
冷志源
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN201811467203.6A priority Critical patent/CN109598105B/zh
Publication of CN109598105A publication Critical patent/CN109598105A/zh
Application granted granted Critical
Publication of CN109598105B publication Critical patent/CN109598105B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种微控制器安全加载固件的方法、装置、计算机设备及存储介质,其中方法包括:打包引导加载程序和合法固件,并采用第一秘钥对其进行第一次加密,以生成密文的引导加载程序和合法固件;将密文的引导加载程序和合法固件下载至微控制器;获取第一秘钥,对密文的引导加载程序和合法固件进行第一次解密,得到明文的引导加载程序和合法固件;采用生成的第二秘钥对明文的引导加载程序和合法固件进行第二次加密,并写入Nor Flash中;读取第二秘钥,对第二次加密的引导加载程序和合法固件进行第二次解密;运行第二次解密后的合法固件。本发明保证提高了微控制器加载固件的安全性。

Description

一种微控制器安全加载固件的方法、装置、计算机设备及存储 介质
技术领域
本发明涉及微控制器的固件加载,更具体地说是一种微控制器安全加载固件的方法、装置、计算机设备及存储介质。
背景技术
目前微控制器安全加载固件的过程中,秘钥在打包固件时需要使用,加载进程运行时也需要使用,多人使用秘钥很容易造成泄露,一旦秘钥被泄露,芯片很容易被破解。另外,如果不法人员通过暴力破解的方式将可编程存储器中秘钥读取到的话,那么同批次的微控制器同样会被破解,微控制器同样会被运行非法的固件。
发明内容
本发明的目的在于克服现有技术的不足,提供一种微控制器安全加载固件的方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:一种微控制器安全加载固件的方法,所述方法包括:
打包引导加载程序和合法固件,并采用第一秘钥对其进行第一次加密,以生成密文的引导加载程序和合法固件;
将密文的引导加载程序和合法固件下载至微控制器;
获取第一秘钥,对密文的引导加载程序和合法固件进行第一次解密,得到明文的引导加载程序和合法固件;
采用生成的第二秘钥对明文的引导加载程序和合法固件进行第二次加密,并写入Nor Flash中;
读取第二秘钥,对第二次加密的引导加载程序和合法固件进行第二次解密;
运行第二次解密后的合法固件;
所述采用生成的第二秘钥对明文的引导加载程序和合法固件进行第二次加密,并写入Nor Flash中的步骤中,所述第二秘钥为随机生成的。
其进一步技术方案为:所述将密文的引导加载程序和合法固件下载至微控制器的步骤,具体包括以下步骤:
将启动代码配置在串口下载模式;
芯片上电,并运行启动代码;
启动代码下载用于储引导加载程序和合法固件的加载进程至微控制器的运行指令存储区;
微控制器的运行指针调转至运行指令存储区的零地址,使加载进程运行。
其进一步技术方案为:所述读取第二秘钥,对第二次加密的引导加载程序和合法固件进行第二次解密的步骤,具体包括以下步骤:
启动代码配置在Nor Flash加载模式;
芯片上电,并运行启动代码;
启动代码从Nor Flash中加载密文的引导加载程序至微控制器的运行指令存储区;
读取可编程储存器中的第二秘钥;
获取第二秘钥对密文的引导加载程序进行解密,以生成明文的引导加载程序;
微控制器的运行指针调转至运行指令储存区的零地址,以运行引导加载程序;
引导加载程序从Nor Flash中加载密文的合法固件至微控制器的存储区域;
再次读取可编程储存器中的第二秘钥;
获取第二秘钥对合法固件进行解密,以生成明文合法固件。
一种微控制器安全加载固件的装置,所述装置包括打包单元、下载单元、获取单元、加密单元、解密单元以及运行单元;
所述打包单元,打包引导加载程序和合法固件,并采用第一秘钥对其进行第一次加密,以生成密文的引导加载程序和合法固件;
所述下载单元,用于将密文的引导加载程序和合法固件下载至微控制器;
所述获取单元,用于获取第一秘钥,对密文的引导加载程序和合法固件进行第一次解密,得到明文的引导加载程序和合法固件;
所述加密单元,用于采用生成的第二秘钥对明文的引导加载程序和合法固件进行第二次加密,并写入Nor Flash中;
所述解密单元,用于读取第二秘钥,对第二次加密的引导加载程序和合法固件进行第二次解密;
所述运行单元,用于运行第二次解密后的合法固件。
其进一步技术方案为:所述下载单元包括第一配置模块、第一运行模块、第一启动模块以及第一调转模块;
所述第一配置模块,用于将启动代码配置在串口下载模式;
所述第一运行模块,用于芯片上电,并运行启动代码;
所述第一启动模块,用于启动代码下载用于存储引导加载程序和合法固件的加载进程至微控制器的运行指令存储区;
所述调转模块,用于微控制器的运行指针调转至运行指令存储区的零地址,使加载进程运行。
其进一步技术方案为:所述解密单元包括第二配置模块、第二运行模块、第二启动模块、第一读取模块、第一获取模块、第二调转模块、加载模块、第二读取模块以及第二获取模块;
所述第二配置模块,用于启动代码配置在Nor Flash加载模式;
第二运行模块,用于芯片上电,并运行启动代码;
第二启动模块,用于启动代码从Nor Flash中加载密文的引导加载程序至微控制器的运行指令存储区;
第一读取模块,用于读取可编程储存器中的第二秘钥;
第一获取模块,用于获取第二秘钥对密文的引导加载程序进行解密,以生成明文的引导加载程序;
第二调转模块,用于微控制器的运行指针调转至运行指令储存区的零地址,以运行引导加载程序;
加载模块,用于引导加载程序从Nor Flash中加载密文的合法固件至微控制器的存储区域;
第二读取模块,用于再次读取可编程储存器中的第二秘钥;
第二获取模块,用于获取第二秘钥对合法固件进行解密,以生成明文合法固件。
一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的微控制器安全加载固件的方法步骤。
一种存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,使得所述处理器执行如上述的微控制器安全加载固件的方法步骤。
本发明与现有技术相比的有益效果是:本发明一种微控制器安全加载固件的方法通过在合法固件打包和下载时使用第一秘钥,写入微控制器可编程存储器中的第二秘钥为随机生产的秘钥,所以保证了在每个微控制器中的第二秘钥都是不同的,即使某一块微控制器中的第二秘钥被暴力破解读取,也无法破解其它的微控制器。而且,微控制器正常运行合法固件时只需要使用第二秘钥,与第一秘钥无关系,即使第一秘钥被泄漏,对微控制器正常运行合法固件也没有影响。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征及优点能够更明显易懂,以下特举较佳实施例,详细说明如下。
附图说明
图1为本发明一种微控制器安全加载固件的方法具体实施例的流程图一;
图2为本发明一种微控制器安全加载固件的方法具体实施例的流程图二;
图3为本发明一种微控制器安全加载固件的方法具体实施例的流程图三;
图4为本发明一种微控制器安全加载固件的装置具体实施例的结构示意图;
图5为本发明一种微控制器安全加载固件的装置具体实施例中加载单元的结构示意图;
图6为本发明一种微控制器安全加载固件的装置具体实施例中解密单元的结构示意图;
图7为本发明一种计算机设备具体实施例的示意性框图。
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
应当理解,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体/操作/对象与另一个实体/操作/对象区分开来,而不一定要求或者暗示这些实体/操作/对象之间存在任何这种实际的关系或者顺序。
还应当理解,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
如图1-3所示,本发明提供了一种微控制器安全加载固件的方法,该方法步骤包括:
S10、打包引导加载程序和合法固件,并采用第一秘钥对其进行第一次加密,以生成密文的引导加载程序和合法固件;
S20、将密文的引导加载程序和合法固件下载至微控制器;
S30、获取第一秘钥,对密文的引导加载程序和合法固件进行第一次解密,得到明文的引导加载程序和合法固件;
S40、采用生成的第二秘钥对明文的引导加载程序和合法固件进行第二次加密,并写入Nor Flash中;
S50、读取第二秘钥,对第二次加密的引导加载程序和合法固件进行第二次解密;
S60、运行第二次解密后的合法固件。
具体的,打包引导加载程序和合法固件是在电脑端打包的,使用打包工具将Bootloader(引导加载程序)和FW(合法固件)使用第一秘钥(AES KEY1)经过AES(高级加密标准)加密,生成密文的Bootloader和FW组成的二进制镜像文件。第一次解密密文的引导加载程序和合法固件是在微控制器中解密,而且是采用第一秘钥进行解密的,第二次解密是采用第二秘钥进行解密的,而且第二秘钥是通过为随机生成的。因此,保证了在每个微控制器中的第二秘钥都是不同的,即使某一块微控制器中的第二秘钥被暴力破解读取,也无法破解其它的微控制器。而且,微控制器正常运行合法固件时只需要使用第二秘钥,与第一秘钥无关系,即使第一秘钥被泄漏,对微控制器正常运行合法固件也没有影响。
进一步的,步骤S20具体包括以下步骤:
S201、将启动代码配置在串口下载模式;
S202、芯片上电,并运行启动代码;
S203、启动代码下载用于存储引导加载程序和合法固件的加载进程至微控制器的运行指令存储区;
S204、微控制器的运行指针调转至运行指令存储区的零地址,使加载进程运行。
进一步的,步骤S50具体包括以下步骤:
S501、启动代码配置在Nor Flash加载模式;
S502、芯片上电,并运行启动代码;
S503、启动代码从Nor Flash中加载密文的引导加载程序至微控制器的运行指令存储区;
S504、读取可编程储存器中的第二秘钥;
S505、获取第二秘钥对密文的引导加载程序进行解密,以生成明文的引导加载程序;
S506、微控制器的运行指针调转至运行指令储存区的零地址,以运行引导加载程序;
S507、引导加载程序从Nor Flash中加载密文的合法固件至微控制器的存储区域;
S508、再次读取可编程储存器中的第二秘钥;
S509、获取第二秘钥对合法固件进行解密,以生成明文合法固件。
上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
对应于上述实施例所述的一种微控制器安全加载固件的方法,本发明提供了一种微控制器安全加载固件的装置。如图4-6所示,该装置包括打包单元1、下载单元2、获取单元3、加密单元4、解密单元5以及运行单元6;
打包单元1,打包引导加载程序和合法固件,并采用第一秘钥对其进行第一次加密,以生成密文的引导加载程序和合法固件;
下载单元2,用于将密文的引导加载程序和合法固件下载至微控制器;
获取单元3,用于获取第一秘钥,对密文的引导加载程序和合法固件进行第一次解密,得到明文的引导加载程序和合法固件;
加密单元4,用于采用生成的第二秘钥对明文的引导加载程序和合法固件进行第二次加密,并写入Nor Flash中;
解密单元5,用于读取第二秘钥,对第二次加密的引导加载程序和合法固件进行第二次解密;
运行单元6,用于运行第二次解密后的合法固件。
具体的,打包引导加载程序和合法固件是在电脑端打包的,使用打包工具将Bootloader(引导加载程序)和FW(合法固件)使用第一秘钥(AESKEY1)经过AES(高级加密标准)加密,生成密文的Bootloader和FW组成的二进制镜像文件。第一次解密密文的引导加载程序和合法固件是在微控制器中解密,而且是采用第一秘钥进行解密的,第二次解密是采用第二秘钥进行解密的,而且第二秘钥是通过为随机生成的。因此,保证了在每个微控制器中的第二秘钥都是不同的,即使某一块微控制器中的第二秘钥被暴力破解读取,也无法破解其它的微控制器。而且,微控制器正常运行合法固件时只需要使用第二秘钥,与第一秘钥无关系,即使第一秘钥被泄漏,对微控制器正常运行合法固件也没有影响。
进一步的,下载单元2包括第一配置模块21、第一运行模块22、第一启动模块23以及第一调转模块24;
第一配置模块21,用于将启动代码配置在串口下载模式;
第一运行模块22,用于芯片上电,并运行启动代码;
第一启动模块23,用于启动代码下载用于存储引导加载程序和合法固件的加载进程至微控制器的运行指令存储区;
调转模块24,用于微控制器的运行指针调转至运行指令存储区的零地址,使加载进程运行。
进一步的,解密单元5包括第二配置模块51、第二运行模块52、第二启动模块53、第一读取模块54、第一获取模块55、第二调转模块56、加载模块57、第二读取模块58以及第二获取模块59;
第二配置模块51,用于启动代码配置在Nor Flash加载模式;
第二运行模块52,用于芯片上电,并运行启动代码;
第二启动模块53,用于启动代码从Nor Flash中加载密文的引导加载程序至微控制器的运行指令存储区;
第一读取模块54,用于读取可编程储存器中的第二秘钥;
第一获取模块55,用于获取第二秘钥对密文的引导加载程序进行解密,以生成明文的引导加载程序;
第二调转模块56,用于微控制器的运行指针调转至运行指令储存区的零地址,以运行引导加载程序;
加载模块57,用于引导加载程序从Nor Flash中加载密文的合法固件至微控制器的存储区域;
第二读取模块58,用于再次读取可编程储存器中的第二秘钥;
第二获取模块59,用于获取第二秘钥对合法固件进行解密,以生成明文合法固件。
如图7所示,本发明还提供了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述的微控制器安全加载固件的方法步骤。
该计算机设备700可以是终端或服务器。该计算机设备700包括通过系统总线710连接的处理器720、存储器和网络接口750,其中,存储器可以包括非易失性存储介质730和内存储器740。
该非易失性存储介质730可存储操作系统731和计算机程序732。该计算机程序732被执行时,可使得处理器720执行任意一种SSD的数据储存方法。
该处理器720用于提供计算和控制能力,支撑整个计算机设备700的运行。
该内存储器740为非易失性存储介质730中的计算机程序732的运行提供环境,该计算机程序732被处理器720执行时,可使得处理器720执行任意一种SSD的数据储存方法。
该网络接口750用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,所述处理器720用于运行存储在存储器中的程序代码,以实现以下步骤:
打包引导加载程序和合法固件,并采用第一秘钥对其进行第一次加密,以生成密文的引导加载程序和合法固件;
将密文的引导加载程序和合法固件下载至微控制器;
获取第一秘钥,对密文的引导加载程序和合法固件进行第一次解密,得到明文的引导加载程序和合法固件;
采用生成的第二秘钥对明文的引导加载程序和合法固件进行第二次加密,并写入Nor Flash中;
读取第二秘钥,对第二次加密的引导加载程序和合法固件进行第二次解密;
运行第二次解密后的合法固件。
在某些实施例中,将密文的引导加载程序和合法固件下载至微控制器的步骤,具体包括以下步骤:
将启动代码配置在串口下载模式;
芯片上电,并运行启动代码;
启动代码下载用于存储引导加载程序和合法固件的加载进程至微控制器的运行指令存储区;
微控制器的运行指针调转至运行指令存储区的零地址,使加载进程运行。
在某些实施例中,所述读取第二秘钥,对第二次加密的引导加载程序和合法固件进行第二次解密的步骤,具体包括以下步骤:
启动代码配置在Nor Flash加载模式;
芯片上电,并运行启动代码;
启动代码从Nor Flash中加载密文的引导加载程序至微控制器的运行指令存储区;
读取可编程储存器中的第二秘钥;
获取第二秘钥对密文的引导加载程序进行解密,以生成明文的引导加载程序;
微控制器的运行指针调转至运行指令储存区的零地址,以运行引导加载程序;
引导加载程序从Nor Flash中加载密文的合法固件至微控制器的存储区域;
再次读取可编程储存器中的第二秘钥;
获取第二秘钥对合法固件进行解密,以生成明文合法固件。
应当理解,在本申请实施例中,处理器720可以是中央处理单元(CentralProcessing Unit,CPU),该处理器720还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域技术人员可以理解,图7中示出的计算机设备700结构并不构成对计算机设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明中各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。

Claims (8)

1.一种微控制器安全加载固件的方法,其特征在于,所述方法包括:
打包引导加载程序和合法固件,并采用第一秘钥对其进行第一次加密,以生成密文的引导加载程序和合法固件;
将密文的引导加载程序和合法固件下载至微控制器;
获取第一秘钥,对密文的引导加载程序和合法固件进行第一次解密,得到明文的引导加载程序和合法固件;
采用生成的第二秘钥对明文的引导加载程序和合法固件进行第二次加密,并写入NorFlash中;
读取第二秘钥,对第二次加密的引导加载程序和合法固件进行第二次解密;
运行第二次解密后的合法固件;
所述采用生成的第二秘钥对明文的引导加载程序和合法固件进行第二次加密,并写入Nor Flash中的步骤中,所述第二秘钥为随机生成的。
2.根据权利要求1所述的一种微控制器安全加载固件的方法,其特征在于,所述将密文的引导加载程序和合法固件下载至微控制器的步骤,具体包括以下步骤:
将启动代码配置在串口下载模式;
芯片上电,并运行启动代码;
启动代码下载用于存储引导加载程序和合法固件的加载进程至微控制器的运行指令存储区;
微控制器的运行指针调转至运行指令存储区的零地址,使加载进程运行。
3.根据权利要求2所述的一种微控制器安全加载固件的方法,其特征在于,所述读取第二秘钥,对第二次加密的引导加载程序和合法固件进行第二次解密的步骤,具体包括以下步骤:
启动代码配置在Nor Flash加载模式;
芯片上电,并运行启动代码;
启动代码从Nor Flash中加载密文的引导加载程序至微控制器的运行指令存储区;
读取可编程储存器中的第二秘钥;
获取第二秘钥对密文的引导加载程序进行解密,以生成明文的引导加载程序;
微控制器的运行指针调转至运行指令储存区的零地址,以运行引导加载程序;
引导加载程序从Nor Flash中加载密文的合法固件至微控制器的存储区域;
再次读取可编程储存器中的第二秘钥;
获取第二秘钥对合法固件进行解密,以生成明文合法固件。
4.一种微控制器安全加载固件的装置,其特征在于,所述装置包括打包单元、下载单元、获取单元、加密单元、解密单元以及运行单元;
所述打包单元,打包引导加载程序和合法固件,并采用第一秘钥对其进行第一次加密,以生成密文的引导加载程序和合法固件;
所述下载单元,用于将密文的引导加载程序和合法固件下载至微控制器;
所述获取单元,用于获取第一秘钥,对密文的引导加载程序和合法固件进行第一次解密,得到明文的引导加载程序和合法固件;
所述加密单元,用于采用生成的第二秘钥对明文的引导加载程序和合法固件进行第二次加密,并写入Nor Flash中;
所述解密单元,用于读取第二秘钥,对第二次加密的引导加载程序和合法固件进行第二次解密;
所述运行单元,用于运行第二次解密后的合法固件;
所述采用生成的第二秘钥对明文的引导加载程序和合法固件进行第二次加密,并写入Nor Flash中的步骤中,所述第二秘钥为随机生成的。
5.根据权利要求4所述的一种微控制器安全加载固件的装置,其特征在于,所述下载单元包括第一配置模块、第一运行模块、第一启动模块以及第一调转模块;
所述第一配置模块,用于将启动代码配置在串口下载模式;
所述第一运行模块,用于芯片上电,并运行启动代码;
所述第一启动模块,用于启动代码下载用于存储引导加载程序和合法固件的加载进程至微控制器的运行指令存储区;
所述调转模块,用于微控制器的运行指针调转至运行指令存储区的零地址,使加载进程运行。
6.根据权利要求5所述的一种微控制器安全加载固件的装置,其特征在于,所述解密单元包括第二配置模块、第二运行模块、第二启动模块、第一读取模块、第一获取模块、第二调转模块、加载模块、第二读取模块以及第二获取模块;
所述第二配置模块,用于启动代码配置在Nor Flash加载模式;
第二运行模块,用于芯片上电,并运行启动代码;
第二启动模块,用于启动代码从Nor Flash中加载密文的引导加载程序至微控制器的运行指令存储区;
第一读取模块,用于读取可编程储存器中的第二秘钥;
第一获取模块,用于获取第二秘钥对密文的引导加载程序进行解密,以生成明文的引导加载程序;
第二调转模块,用于微控制器的运行指针调转至运行指令储存区的零地址,以运行引导加载程序;
加载模块,用于引导加载程序从Nor Flash中加载密文的合法固件至微控制器的存储区域;
第二读取模块,用于再次读取可编程储存器中的第二秘钥;
第二获取模块,用于获取第二秘钥对合法固件进行解密,以生成明文合法固件。
7.一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~3中任意一项所述的微控制器安全加载固件的方法步骤。
8.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,使得所述处理器执行如权利要求1~3任意一项所述的微控制器安全加载固件的方法步骤。
CN201811467203.6A 2018-12-03 2018-12-03 一种微控制器安全加载固件的方法、装置、计算机设备及存储介质 Active CN109598105B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811467203.6A CN109598105B (zh) 2018-12-03 2018-12-03 一种微控制器安全加载固件的方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811467203.6A CN109598105B (zh) 2018-12-03 2018-12-03 一种微控制器安全加载固件的方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN109598105A CN109598105A (zh) 2019-04-09
CN109598105B true CN109598105B (zh) 2020-09-29

Family

ID=65959518

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811467203.6A Active CN109598105B (zh) 2018-12-03 2018-12-03 一种微控制器安全加载固件的方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN109598105B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110109714B (zh) * 2019-04-25 2022-03-29 深圳忆联信息系统有限公司 提升固件加载效率的方法、装置、计算机设备及存储介质
CN110321317B (zh) * 2019-06-28 2021-10-01 兆讯恒达科技股份有限公司 一种多接口和多协处理器的芯片
CN117610089B (zh) * 2024-01-23 2024-03-26 上海励驰半导体有限公司 多核异构芯片的加密方法、系统、设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106779699A (zh) * 2016-11-18 2017-05-31 北京红马传媒文化发展有限公司 一种基于随机更新秘钥加密的网络购票交易方法
CN108491289A (zh) * 2018-03-22 2018-09-04 北京顶象技术有限公司 固件保护方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10476883B2 (en) * 2012-03-02 2019-11-12 Inside Secure Signaling conditional access system switching and key derivation
CN102404068A (zh) * 2010-09-09 2012-04-04 张华轩 二次加密/解密的方法
CN103440209B (zh) * 2013-07-19 2016-08-17 记忆科技(深圳)有限公司 一种固态硬盘数据加解密方法及固态硬盘系统
CN106055932A (zh) * 2016-05-26 2016-10-26 东莞博力威电池有限公司 带Boot loader功能的MCU程序防抄袭方法和系统
CN106503494A (zh) * 2016-11-05 2017-03-15 福建省北峰电讯科技有限公司 一种带有片上闪存微控制器的固件保护单元及保护方法
CN107273150B (zh) * 2017-05-10 2020-10-02 深圳市金百锐通信科技有限公司 预加载固件下载写入方法及装置
CN108418893A (zh) * 2018-03-20 2018-08-17 深圳市闪联信息技术有限公司 一种智能设备固件安全升级的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106779699A (zh) * 2016-11-18 2017-05-31 北京红马传媒文化发展有限公司 一种基于随机更新秘钥加密的网络购票交易方法
CN108491289A (zh) * 2018-03-22 2018-09-04 北京顶象技术有限公司 固件保护方法及装置

Also Published As

Publication number Publication date
CN109598105A (zh) 2019-04-09

Similar Documents

Publication Publication Date Title
AU2012337403B2 (en) Cryptographic system and methodology for securing software cryptography
CN100578473C (zh) 嵌入式系统和增加嵌入式系统安全性的方法
EP3190543A1 (en) Method of dynamically encrypting fingerprint data and related fingerprint sensor
CN111552931A (zh) java代码的加壳方法与系统
CN109784007B (zh) 一种字节码加密的方法、字节码解密的方法及终端
CN102163268B (zh) 在执行期间验证软件代码的完整性的方法和设备
CN109598105B (zh) 一种微控制器安全加载固件的方法、装置、计算机设备及存储介质
CN111262910B (zh) 一种无线设备固件保护方法及系统
US10565381B2 (en) Method and apparatus for performing firmware programming on microcontroller chip, and associated microcontroller chip
US8745407B2 (en) Virtual machine or hardware processor for IC-card portable electronic devices
EP3844647B1 (en) System and method for providing protected data storage in data memory
US20230325516A1 (en) Method for file encryption, terminal, electronic device and computer-readable storage medium
CN112966227A (zh) 代码加密解密方法和装置、存储介质
CN111159726B (zh) 一种基于uefi环境变量的全盘加解密方法及系统
CN111209572A (zh) 一种基于加解密的Linux系统安全启动方法及系统
US10892890B2 (en) Hash offset based key version embedding
CN116070293A (zh) 一种通过芯片加密进行固件保护的处理方法和装置
US20210143978A1 (en) Method to secure a software code performing accesses to look-up tables
US20150058612A1 (en) Decryption key management system
CN104866740A (zh) 一种防静态分析文件的方法及装置
US9218484B2 (en) Control method and information processing apparatus
CN111125791A (zh) 一种内存数据的加密方法、装置、cpu芯片及服务器
US11061996B2 (en) Intrinsic authentication of program code
CN115994370B (zh) 一种软件加密处理方法、装置、设备及介质
CN111357003A (zh) 预操作系统环境中的数据保护

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant