CN110737448B - 一种包含有微控制器的固件加密系统及其固件保护和升级方法 - Google Patents
一种包含有微控制器的固件加密系统及其固件保护和升级方法 Download PDFInfo
- Publication number
- CN110737448B CN110737448B CN201811031615.5A CN201811031615A CN110737448B CN 110737448 B CN110737448 B CN 110737448B CN 201811031615 A CN201811031615 A CN 201811031615A CN 110737448 B CN110737448 B CN 110737448B
- Authority
- CN
- China
- Prior art keywords
- central control
- control system
- firmware
- subsystem
- program
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000012795 verification Methods 0.000 claims abstract description 10
- 239000003550 marker Substances 0.000 claims description 40
- 238000001514 detection method Methods 0.000 claims description 36
- 230000009191 jumping Effects 0.000 claims description 10
- 239000000284 extract Substances 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 4
- 238000005245 sintering Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005336 cracking Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
一种包含有微控制器的固件加密系统及其固件保护和升级方法,其固件加密系统包括通过数据线相连的中央控制系统和子系统集,中央控制系统和子系统都包括一个公开发布的用户应用程序和不公开发布的系统引导程序,中央控制系统和子系统在运行时都进行自身系统内部固件校验,并进行系统间固件校验,只有通过校验后系统引导程序才释放用户应用程序的关键数据到指定的RAM区并继续执行用户应用程序。中央控制系统及其子系统之间的固件校验信息在远程服务器登记注册,并用于升级验证,子系统和中央控制系统的用户应用程序的升级都通过中央控制系统统一进行,密钥管理比较简单,固件的升级通过网络自动进行,避免手工下载,也增加了固件系统安全性。固件加密仅加密少量的关键数据,硬件资源消耗低。
Description
技术领域
本发明涉及仪器设备的固件保护技术,尤其涉及一种包含有微控制器的固件加密系统及其固件保护和升级方法。
背景技术
现在科技技术的发展日新月异,为满足市场的快速变化,企业的产品也快速更新换代,但是在这背后是公司对研发大投入的需求,每当一个产品进入市场,企业非常担心的是设计被不法商家直接抄袭硬件设计,并盗用已发布的固件,迅速推出盗版克隆仿造产品,严重损害研发公司的经济利益。现在电路板的设计已经高度集成化,获取主要芯片的信息后就很容易被仿制,所以硬件的仿造难度不高,那么公司保护电路板的途径就需要从软件和固件中着手。
管控电路板的固件虽然可以通过禁止固件的流传得以保护,但是每次固件都需要用户通过公司服务渠道进行也是行不通的,一方面影响用户体验,第二增加公司不必要的额外运营开支,所以在固件加密保护上需要进行管控,一方面把固件升级开放给用户,同时还需要保护固件,即使被不法分子获取也无法被克隆到仿制产品上。
发明内容
为解决上面问题,本发明提出了一种包含有微控制器的固件加密系统及其固件保护和升级方法,系统在联网的情况下自动更新固件,给与合法用户最佳的体检,同时可以有效的防止固件被非法的使用到仿制品上。
本发明的包含有微控制器的固件加密系统,包括通过数据线相连的中央控制系统和子系统集;所述子系统集至少包括一个子系统;
所述中央控制系统包括公开发布的中央控制系统的用户应用程序和不公开发布的中央控制系统的系统引导程序(BootLoader),所述公开发布的中央控制系统的用户应用程序在发布前是经过加密的而在升级时由中央控制系统的系统引导程序进行解密并替换原来的用户应用程序;
所述子系统包括公开发布的子系统的用户应用程序和不公开发布的子系统的系统引导程序(BootLoader),所述公开发布的子系统的用户应用程序在发布前是经过加密的而在升级时由所述中央控制系统的系统引导程序进行解密并通过数据线传输给所述子系统;
所述中央控制系统的系统引导程序包括固件匹配有效性检测模块、和外部远程服务器建立数据链接的模块、加密解密模块、以及和所述子系统进行数据交换用的数据交换模块;
所述子系统的系统引导程序包括固件匹配有效性检测模块、加密解密模块、以及和所述中央控制系统进行数据交换的数据交换模块;
所述中央控制系统和所述子系统的系统引导程序中分别包括一块经过加密的数据,所述加密的数据包含固件匹配有效性检测以及用户应用程序正常运行不可缺少的关键数据;
所述用户应用程序正常运行不可缺少的关键数据在所述系统引导程序通过固件有效性检测后被释放到指定的内存区;
所述固件匹配有效性检测包括检测固件是否和硬件相匹配,以及检测所述中央控制系统和所述子系统之间是否匹配;
所述的中央控制系统及其子系统的用户应用程序区分别包括一个版本信息区,用于记录所述用户应用程序的版本信息。
进一步地,所述中央控制系统的系统引导程序包括的所述固件匹配有效性检测所需要的匹配信息包括中央控制系统的硬件唯一标记符、中央控制系统的系统引导程序的版本号、以及每一个与之配对的子系统的硬件唯一标记符;
所述子系统的系统引导程序包括的所述固件匹配有效性检测所需要的匹配信息包括所述子系统的硬件唯一标记符、子系统的系统引导程序的版本号以及与之匹配的中央控制系统的硬件唯一标记符。
进一步地,所述关键数据是经过加密后写到系统引导区;所述中央控制系统加密使用的密钥和中央控制系统的系统引导程序的版本号一一对应;所述子系统加密使用的密钥和该子系统的系统引导程序的版本号一一对应;所述加密算法是对称算法;所述中央控制系统加密使用的密钥和所述子系统加密使用的密钥是系统引导程序的固件程序的一部分,在出厂的时候就已经确定。
一种包含有微控制器的固件加密系统的固件保护和升级方法,具体如下:
在设备出厂前进行固件烧结的时候建立中央控制系统和子系统的相互关联关系,并在外部服务器中注册登记匹配信息,然后在之后的设备启动时中央控制系统及其子系统分别进行系统内固件匹配有效性检测和系统间的固件匹配有效性检测;
所述中央控制系统和子系统分别包括系统引导程序和用户应用程序,所述中央控制系统和子系统的系统引导程序分别对存储在系统引导程序区里的一块加密数据进行解密后获得所述系统内固件匹配有效性检测需要的数据和用户应用程序正常执行不可缺少的关键数据;
中央控制系统在完成所述固件匹配有效性检测跳转到用户应用程序前自动连接外部的远程服务器,如果服务器连接上,中央控制系统向服务器发送所述该系统的匹配信息,服务器根据接收的所述匹配信息查询该系统是否注册过,并查询是否存在新的固件程序,如果存在新的固件程序,服务器对固件程序并附带系统的硬件唯一标记符进行打包并进行加密,发送给中央控制系统,中央控制系统根据预先设定的密钥进行解密,从中提取包含在数据包里的硬件唯一标记符,根据记载的匹配信息找到对应的系统,如果新的固件程序属于中央控制系统,那么写入中央控制系统的用户应用程序区,如果属于子系统,那么通过中央控制系统的数据交换模块把解密后的固件传送给子系统进行更新,并向服务器发送指令要求更新记录信息;如果中央控制系统没有发现有新的固件程序则跳转到现有的用户应用程序继续执行;
中央控制系统及其子系统在系统启动期间完成匹配验证后分别向指定的内存区写入关键数据并跳转到用户应用程序区,并继续执行用户应用程序;
所述远程服务器端加密需要的密钥和所述中央控制系统的系统引导程序的版本号一一对应,在出厂的时候服务器为每一个版本的中央控制器系统的系统引导程序指定一个密钥;
所述写入关键数据的内存区在系统引导程序和用户应用程序编译的时候被排除在可用范围之外,避免固件程序在执行的时候覆盖该内存区产生程序故障。
进一步地,所述的建立中央控制系统的和子系统的相互关联关系的具体方法为:
中央控制系统及其子系统在第一次启动的时候互相发送系统的硬件唯一标记符以及系统引导程序的版本号,并建立匹配信息,然后中央控制系统及其子系统分别对该匹配信息进行加密,将该匹配信息分别保存在指定的安全区域;中央控制系统在进行信息匹配时连接外部远程服务器并对硬件进行注册,记录匹配信息到外部远程服务器中;所述注册在服务器的信息包括中央控制系统的硬件唯一标记符、中央控制系统的版本号、中央控制系统的用户应用程序的版本号、所连接的所有子系统的硬件唯一标记符、子系统的用户应用程序的版本号和系统引导程序的版本号。
进一步地,所述的固件匹配有效性检测,其方法如下:
所述中央控制系统及子系统在系统启动时分别读取其系统的硬件唯一标记符,接着分别读取保存在系统引导程序区的一块经过加密的数据并对它进行解密,根据解密出来的匹配信息和实时读取的所述硬件唯一标记符判断固件和系统硬件是否匹配,如果中央控制系统或者子系统的匹配检查不通过,那么程序停止执行,如果中央控制系统及子系统匹配检查都通过,那么继续进行下一步匹配检查;
所述子系统向中央控制系统发送解密后的匹配信息,中央控制系统在解密后的自身的匹配信息里查找是否有该子系统的匹配记录,如果查到对应的匹配信息,那么认定子系统和中央控制系统是匹配的,系统合法,并继续执行后续的程序。
进一步地,所述中央控制系统在检查固件更新时向服务器发送所述匹配信息包括:加密过的中央控制系统的硬件唯一标记符、中央控制系统的系统引导程序的版本号、中央控制系统的用户应用程序的版本号、以及所有与之相连的子系统的硬件唯一标记符和用户应用程序的版本号,和明文发送的中央控制系统的系统引导程序的版本号;所述远程外部服务器根据明文接收到的系统引导程序的版本号确定密钥,解密并提取系统信息。
本发明与现有技术相比较,本发明的包含有微控制器的固件加密系统及其固件保护及升级方法具有如下优点:
1.子系统和中央控制系统使用多重保护机制,子系统和中央控制系统必须分别通过自身系统的固件校验,然后子系统和中央控制系统之间还必须互相经过校验,最后固件程序的升级必须通过远程服务器的校验后才能进行。
2.中央控制系统通过网络自动下载更新程序,用户没有机会直接接触固件程序,减小固件泄露的机会,服务器发布固件程序是经过加密的,即使获得固件程序仿制者也无从使用。
3.用于硬件校验用的仪器唯一标记符在保存前经过加密后才写入存储器,这样增加了硬件标记符校验方法被破解的难度。
4.用户应用程序在更新的时候由中央控制器预先进行解密,其程序保护通过加密非常少量的关键数据进行,每次固件程序仅仅对这些关键数据进行解密,这样避免了每次执行程序都需要对整个或者大部分用户应用程序进行解密,从而极大节省机器资源。
5.解密的密钥和中央控制系统的系统引导程序的版本号一一对应,维护比较简单,同时保障固件得到加密保护。
附图说明
图1是包含有微控制器的固件加密系统的系统架构图。
图2是包含有微控制器的固件加密系统中的子系统的系统框架结构图。
图3是包含有微控制器的固件加密系统中的中央控制系统的系统框架结构图。
具体实施方式
如图1所示,本发明的一种包含有微控制器的固件加密系统,包括通过数据线相连的中央控制系统和子系统集,其子系统集至少包括一个子系统,图1所示的子系统集包括4个子系统A、B、C、D。子系统根据需要可进行扩展或者替换。在一般的系统设计中,子系统和中央系统都是相对独立的能完成一定独立功能的系统,但是中央控制系统和子系统是相互配合组成的完整系统。
进一步地,中央控制系统和子系统间通过保存在各自系统里的匹配校验信息进行固件检测,如果发现不匹配,那么系统进入停止状态。
图2所示的是子系统的系统框架结构图。子系统的固件系统包括一个不公开发布的系统引导程序(Bootloader)区和公开发布的用户应用程序。系统引导程序(Bootloader)是系统在加电后首先执行的程序,一个最基本的系统引导程序是设置固件程序的中断变量和程序入口,并且跳转到用户应用程序入口。公开发布的用户应用程序在发布的时候是经过加密的。
进一步的,子系统的系统引导程序包括程序功能区100和加密数据保存区101。系统引导程序功能区100包括但不限于:固件匹配有效性检测模块、加密解密模块、以及和所述中央控制系统进行数据交换的数据交换模块。加密数据保存区101包含固件匹配有效性检测以及用户应用程序正常运行不可缺少的关键数据。所述固件匹配有效性检测所需要的匹配信息包括所述子系统的硬件唯一标记符、子系统的系统引导程序的版本号以及与之匹配的中央控制系统的硬件唯一标记符。硬件唯一标记符的产生来源可以是微处理器的硬件编号,也可以是网卡的MAC地址或者对其他硬件地址进行计算而产生的标记符等。STM32微处理器都具有全球唯一的96位比特的ID,这是可作为硬件唯一标记符的一个典型例子。加密数据保存区的另外一块内容是用户应用程序必不可少的关键数据,缺少该数据用户程序就无法正常使用。该数据的典型例子是用户程序的中断向量,那么缺少该数据就无法执行用户程序。该数据也可以其他关键性参数,比如某些关键的全局变量赋值,没有正确设置这些变量就会导致程序无法正常执行。
进一步地,保存在所述加密区101包含的硬件唯一标记符是经过加密的,采用和系统引导程序的版本号一一对应的密钥加密,该密钥是在出厂的时候就确定。即使硬件唯一标记符可以通过其他方法获取,而且存储器被恶意拷贝,因为对保存在加密区的唯一标记符进行了加密,所以还是可以防止恶意破解匹配信息。
进一步地,用户应用程序区包括程序功能区110和版本信息区111。版本信息区111是记录当前固件程序的版本号,用于判断是否进行更新。
在一个实施例中,子系统的随机读写区RAM包括普通RAM区120和用于存储关键数据的RAM区121,如图2所示。如果所述系统引导程序在匹配校验中通过校验,那么向RAM区的关键数据区121写入关键性数据,所述关键性数据是用户应用程序正确执行必不可少的数据,该数据的典型例子似乎关键性函数的入口地址,执行参数比如某个关键数据的计算因子以及某些关键性全局变量赋值。跳转到用户应用程序后由用户应用程序通过绝对地址访问方式访问关键数据区121的数据并进行相应的设置。
图3所示的是中央控制系统的系统框架结构图。中央控制系统的固件系统包括一个不公开发布的系统引导程序(Bootloader)和公开发布的用户应用程序。系统引导程序是系统在加电后首先执行的程序,一个最基本的系统引导程序是设置固件程序的中断变量和程序入口,并且跳转到固件程序入口。
进一步的,中央控制系统的系统引导程序包括程序功能区200和加密数据保存区201。系统引导程序功能区200包括但不限于:固件匹配有效性检测模块、和外部远程服务器建立数据链接的模块、加密解密模块、以及和所述子系统进行数据交换用的数据交换模块。加密数据保存区201包括但不限于中央控制系统的硬件唯一标记符,与中央控制系统配对的子系统的硬件唯一标记符和系统引导程序的版本信息,以及和所有子系统的匹配信息。固件匹配有效性检测模块读取硬件的唯一标记符,并且和保存在加密数据保存区201记录的硬件唯一标记符进行比较,如果两者不匹配程序停止。如果中央控制系统内部的固件匹配校验通过,那么系统引导程序和子系统建立链接,并和子系统交互硬件唯一标记符,并和保存在加密数据保存区201里记录的信息进行匹配校验。
所述中央控制系统的加密区201包含的匹配信息记录着和每一个子系统的匹配信息,如图3所示,该中央控制系统和4个子系统建立连接关系,每条匹配信息记录包括中央控制系统的硬件唯一标记符、和与之关联的子系统的硬件唯一标记符、子系统的系统引导程序的版本号,子系统的用户应用程序版本号。
进一步地,保存在所述加密数据保存区201的硬件唯一标记符是经过加密的,采用和系统引导程序的版本号一一对应的密钥加密,该密钥是在出厂的时候就确定。即使硬件唯一标记符可以通过其他方法获取,而且存储器被恶意拷贝,因为对保存在加密区的唯一标记符进行了加密,所以还是可以防止恶意破解匹配信息。
进一步地,用户应用程序区包括程序功能区210和版本信息区211。版本信息区211是记录当前用户应用程序的版本号,用于判断是否需要更新。
在一个实施例中,如图3所示,中央控制系统的随机读写区RAM包括普通RAM区220和用于存储关键数据的RAM区221,如图3所示。如果所述系统引导程序在匹配校验中通过校验,那么向RAM区的关键数据区221写入关键性数据,所述关键性数据是用户应用程序210正确执行必不可少的数据,该数据可以是关键性函数的入口地址,也可以是其他执行参数比如某个关键数据的计算因子或者某些关键性全局变量赋值。跳转到用户应用程序后由用户应用程序通过绝对地址访问方式访问关键数据区221的数据并进行相应的设置。
在一个最佳实施例中,本发明的包含有微控制器的固件加密系统,包括通过数据线相连的中央控制系统和子系统集;所述子系统集包括多个子系统;
所述中央控制系统包括公开发布的中央控制系统的用户应用程序和不公开发布的中央控制系统的系统引导程序(BootLoader),所述公开发布的中央控制系统的用户应用程序在发布前是经过加密的而在升级时由中央控制系统的系统引导程序进行解密并替换原来的用户应用程序;
所述子系统包括公开发布的子系统的用户应用程序和不公开发布的子系统的系统引导程序(BootLoader),所述公开发布的子系统的用户应用程序在发布前是经过加密的而在升级时由所述中央控制系统的系统引导程序进行解密并通过数据线传输给所述子系统;
所述中央控制系统的系统引导程序包括固件匹配有效性检测模块、和外部远程服务器建立数据链接的模块、加密解密模块、以及和所述子系统进行数据交换用的数据交换模块;
所述子系统的系统引导程序包括固件匹配有效性检测模块、加密解密模块、以及和所述中央控制系统进行数据交换的数据交换模块;
所述中央控制系统和所述子系统的系统引导程序中分别包括一块经过加密的数据区201和101,所述加密的数据包含固件匹配有效性检测以及用户应用程序正常运行不可缺少的关键数据;
所述用户应用程序正常运行不可缺少的关键数据在所述系统引导程序通过固件有效性检测后被释放到指定的内存区;
所述固件匹配有效性检测包括检测固件是否和硬件相匹配,以及检测所述中央控制系统和所述子系统之间是否匹配;
所述的中央控制系统及其子系统的用户应用程序区分别包括一个版本信息区211和111,用于记录所述用户应用程序的版本信息。
进一步地,所述中央控制系统的系统引导程序包括的所述固件匹配有效性检测所需要的匹配信息包括中央控制系统的硬件唯一标记符、中央控制系统的系统引导程序的版本号、以及每一个与之配对的子系统的硬件唯一标记符;
所述子系统的系统引导程序包括的所述固件匹配有效性检测所需要的匹配信息包括所述子系统的硬件唯一标记符、子系统的系统引导程序的版本号以及与之匹配的中央控制系统的硬件唯一标记符。
进一步地,所述关键数据是经过加密后写到系统引导区;所述中央控制系统加密使用的密钥和中央控制系统的系统引导程序的版本号一一对应;所述子系统加密使用的密钥和该子系统的系统引导程序的版本号一一对应;所述加密算法是对称算法;所述中央控制系统加密使用的密钥和所述子系统加密使用的密钥是系统引导程序的固件程序的一部分,在出厂的时候就已经确定。
一种包含有微控制器的固件加密系统的固件保护和升级方法,具体如下:
在设备出厂前进行固件烧结的时候建立中央控制系统和子系统的相互关联关系,并在外部服务器中注册登记匹配信息,然后在之后的设备启动时中央控制系统及其子系统分别进行系统内固件匹配有效性检测和系统间的固件匹配有效性检测;
所述中央控制系统和子系统分别包括系统引导程序和用户应用程序,所述中央控制系统和子系统的所述系统引导程序对存储在系统引导程序区里的一段加密数据(201和101)进行解密后获得所述系统内固件匹配有效性检测需要的数据和用户应用程序正常执行不可缺少的关键数据;
中央控制系统在完成所述固件匹配有效性检测跳转到用户应用程序前自动连接外部的远程服务器,如果服务器连接上,中央控制系统向服务器发送所述该系统的匹配信息,服务器根据接收的所述匹配信息查询该系统是否注册过,并查询是否存在新的固件程序,如果存在新的固件程序,服务器对固件程序并附带系统的硬件唯一标记符进行打包并进行加密,发送给中央控制系统,中央控制系统根据预先设定的密钥进行解密,从中提取包含在数据包里的硬件唯一标记符,根据记载的匹配信息找到对应的系统,如果新的固件程序属于中央控制系统,那么写入中央控制系统的用户应用程序区,如果属于子系统,那么通过中央控制系统的数
据交换模块把解密后的固件传送给子系统进行更新,并向服务器发送指令用于更新记录信息;如果中央控制系统没有发现有新的固件程序则跳转到现有的用户应用程序继续执行;
中央控制系统及其子系统在系统启动期间完成匹配验证后分别向指定的内存区(221和121)写入关键数据并跳转到用户应用程序区,并继续执行用户应用程序;
所述远程服务器端加密需要的密钥和所述中央控制系统的系统引导程序的版本号一一对应,在出厂的时候服务器为每一个版本的中央控制器系统的系统引导程序指定一个密钥;
所述写入关键数据的内存区在系统引导程序和用户应用程序编译的时候被排除在可用范围之外,避免固件程序在执行的时候覆盖该内存区产生程序故障。
所述中央控制系统及其子系统的用户应用程序的更新通过网络自动进行,杜绝用户直接接触固件程序,减小固件程序被破解的可能性。
进一步地,所述的建立中央控制系统的和子系统的相互关联关系的具体方法为:
中央控制系统及其子系统在第一次启动的时候互相发送系统的硬件唯一标记符以及系统引导程序的版本号,并建立匹配信息,然后中央控制系统及其子系统分别对该匹配信息进行加密,将该匹配信息分别保存在指定的安全区域;中央控制系统在进行信息匹配时连接外部远程服务器并对硬件进行注册,记录匹配信息到外部远程服务器中;所述外部远程服务器的匹配信息包括中央控制系统的硬件唯一标记符、中央控制系统的版本号、中央控制系统的用户应用程序的版本号、所连接的所有子系统的硬件唯一标记符、子系统的用户应用程序的版本号和系统引导程序的版本号。
进一步地,所述的固件匹配有效性检测,其方法具体如下:
所述中央控制系统及子系统在系统启动时分别读取其系统的硬件唯一标记符,接着分别读取保存在系统引导程序区的一块经过加密的数据并对它进行解密,根据解密出来的匹配信息和实时读取的所述硬件唯一标记符判断固件和系统硬件是否匹配,如果中央控制系统或者子系统的匹配检查不通过,那么程序停止执行,如果中央控制系统及子系统匹配检查都通过,那么继续进行下一步匹配检查;
所述子系统向中央控制系统发送解密后的匹配信息,中央控制系统在解密后的自身的匹配信息里查找是否有该子系统的匹配记录,如果查到对应的匹配信息,那么认定子系统和中央控制系统是匹配的,系统合法,并继续执行后续的程序。
进一步的,所述中央控制系统在检查固件更新时向服务器发送所述匹配信息包括:加密过的中央控制系统的硬件唯一标记符、中央控制系统的系统引导程序的版本号、中央控制系统的用户应用程序的版本号、以及所有与之相连的子系统的硬件唯一标记符和用户应用程序的版本号,和明文发送的中央控制系统的系统引导程序的版本号;所述外部远程服务器根据明文接收到的系统引导程序的版本号确定密钥,解密并提取系统信息。
本发明与现有技术相比较,本发明的包含有微控制器的固件加密系统的固件保护及其升级方法,固件仅仅对及其少量的关键数据(它们包括硬件唯一标记符)进行加密,解密的软件资源开销相当低,硬件唯一标记符在加密后保存在安全存储区,即使被暴力破解,但是硬件唯一标记符也是经过加密后才写入存储区,也就无法轻易破解。固件匹配信息也保存在外部远程服务器,通过外部服务器对固件更新进行管控,增加了安全系数。更新程序是通过网络自动进行,减小了固件被泄露的风险,而且也能保证合法用户能够得到最新的固件。
以上述依据本发明的理想实施例为启示,通过上述的说明内容,相关工作人员完全可以在不偏离本项发明技术思想的范围内,进行多样的变更以及修改。本项发明的技术性范围并不局限于说明书上的内容,必须要根据权利要求范围来确定其技术性范围。
Claims (7)
1.一种包含有微控制器的固件加密系统,其特征在于:包括通过数据线相连的中央控制系统和子系统集;
所述子系统集至少包括一个子系统;
所述中央控制系统包括公开发布的中央控制系统的用户应用程序和不公开发布的中央控制系统的系统引导程序(BootLoader),所述公开发布的中央控制系统的用户应用程序在发布前是经过加密的而在升级时由中央控制系统的系统引导程序进行解密并替换原来的用户应用程序;
所述子系统包括公开发布的子系统的用户应用程序和不公开发布的子系统的系统引导程序(BootLoader),所述公开发布的子系统的用户应用程序在发布前是经过加密的而在升级时由所述中央控制系统的系统引导程序进行解密并通过数据线传输给所述子系统;
所述中央控制系统的系统引导程序包括固件匹配有效性检测模块、和外部远程服务器建立数据链接的模块、加密解密模块、以及和所述子系统进行数据交换用的数据交换模块;
所述子系统的系统引导程序包括固件匹配有效性检测模块、加密解密模块、以及和所述中央控制系统进行数据交换的数据交换模块;
所述中央控制系统和所述子系统的系统引导程序中分别包括一块经过加密的数据保存区,所述加密的数据包含固件匹配有效性检测以及用户应用程序正常运行不可缺少的关键数据;
所述用户应用程序正常运行不可缺少的关键数据在所述系统引导程序通过固件有效性检测后被释放到指定的内存区;
所述固件匹配有效性检测包括检测固件是否和硬件相匹配,以及检测所述中央控制系统和所述子系统之间是否匹配;
所述的中央控制系统及其子系统的用户应用程序区分别包括一个版本信息区,用于记录所述用户应用程序的版本信息。
2.根据权利要求1所述的包含有微控制器的固件加密系统,其特征在于:
所述中央控制系统的系统引导程序包括的所述固件匹配有效性检测所需要的匹配信息包括中央控制系统的硬件唯一标记符、中央控制系统的系统引导程序的版本号、以及每一个与之配对的子系统的硬件唯一标记符;
所述子系统的系统引导程序包括的所述固件匹配有效性检测所需要的匹配信息包括所述子系统的硬件唯一标记符、子系统的系统引导程序的版本号以及与之匹配的中央控制系统的硬件唯一标记符。
3.根据权利要求1所述的包含有微控制器的固件加密系统,其特征在于:
所述关键数据是经过加密后写到系统引导区;
所述中央控制系统加密使用的密钥和中央控制系统的系统引导程序的版本号一一对应;
所述子系统加密使用的密钥和该子系统的系统引导程序的版本号一一对应;
加密算法是对称算法;
所述中央控制系统加密使用的密钥和所述子系统加密使用的密钥是系统引导程序的固件程序的一部分,在出厂的时候就已经确定。
4.一种包含有微控制器的固件加密系统的固件保护和升级方法,其特征在于:
其方法具体如下:
在设备出厂前进行固件烧结的时候建立中央控制系统和子系统的相互关联关系,并在外部服务器中注册登记匹配信息,然后在之后的设备启动时中央控制系统及其子系统分别进行系统内固件匹配有效性检测和系统间的固件匹配有效性检测;
所述中央控制系统和子系统分别包括系统引导程序和用户应用程序,所述中央控制系统和子系统的系统引导程序分别对存储在系统引导程序区里的一块加密的数据进行解密后获得所述系统内固件匹配有效性检测需要的数据和用户应用程序正常执行不可缺少的关键数据;
中央控制系统在完成所述固件匹配有效性检测跳转到用户应用程序前自动连接外部的远程服务器,如果服务器连接上,中央控制系统向服务器发送所述系统的匹配信息,服务器根据接收的所述匹配信息查询该系统是否注册过,并查询是否存在新的固件程序,如果存在新的固件程序,服务器对固件程序并附带系统的硬件唯一标记符进行打包并进行加密,发送给中央控制系统,中央控制系统根据预先设定的密钥进行解密,从中提取包含在数据包里的硬件唯一标记符,根据记载的匹配信息找到对应的系统,如果新的固件程序属于中央控制系统,那么写入中央控制系统的用户应用程序区,如果属于子系统,那么通过中央控制系统的数据交换模块把解密后的固件传送给子系统进行更新,并向服务器发送指令用于更新记录信息;如果中央控制系统没有发现有新的固件程序则跳转到现有的用户应用程序继续执行;
中央控制系统及其子系统在系统启动期间完成匹配验证后分别向指定的内存区写入关键数据并跳转到用户应用程序区,并继续执行用户应用程序;
所述远程服务器端加密需要的密钥和所述中央控制系统的系统引导程序的版本号一一对应,在出厂的时候服务器为每一个版本的中央控制器系统的系统引导程序指定一个密钥;
所述写入关键数据的内存区在系统引导程序和用户应用程序编译的时候被排除在可用范围之外,避免固件程序在执行的时候覆盖该内存区产生程序故障。
5.根据权利要求4所述的包含有微控制器的固件加密系统的固件保护和升级方法,其特征在于:
所述的建立中央控制系统的和子系统的相互关联关系的具体方法为:
中央控制系统及其子系统在第一次启动的时候互相发送系统的硬件唯一标记符以及系统引导程序的版本号,并建立匹配信息,然后中央控制系统及其子系统分别对该匹配信息进行加密,将该匹配信息分别保存在指定的安全区域;中央控制系统在进行信息匹配时连接外部远程服务器并对硬件进行注册,记录匹配信息到外部远程服务器中;所述外部远程服务器的匹配信息包括中央控制系统的硬件唯一标记符、中央控制系统的版本号、中央控制系统的用户应用程序的版本号、所连接的所有子系统的硬件唯一标记符、子系统的用户应用程序的版本号和系统引导程序的版本号。
6.根据权利要求4所述的包含有微控制器的固件加密系统的固件保护和升级方法,其特征在于:所述的固件匹配有效性检测,其方法如下:
所述中央控制系统及子系统在系统启动时分别读取其系统的硬件唯一标记符,接着分别读取保存在系统引导程序区的一块经过加密的数据并对它进行解密,根据解密出来的匹配信息和实时读取的所述硬件唯一标记符判断固件和系统硬件是否匹配,如果中央控制系统或者子系统的匹配检查不通过,那么程序停止执行,如果中央控制系统及子系统匹配检查都通过,那么继续进行下一步匹配检查;
所述子系统向中央控制系统发送解密后的匹配信息,中央控制系统在解密后的自身的匹配信息里查找是否有该子系统的匹配记录,如果查到对应的匹配信息,那么认定子系统和中央控制系统是匹配的,系统合法,并继续执行后续的程序。
7.根据权利要求4所述的包含有微控制器的固件加密系统的固件保护和升级方法,其特征在于:
所述中央控制系统在检查固件更新时向服务器发送所述匹配信息包括:加密过的中央控制系统的硬件唯一标记符、中央控制系统的系统引导程序的版本号、中央控制系统的用户应用程序的版本号、以及所有与之相连的子系统的硬件唯一标记符和用户应用程序的版本号,和明文发送的中央控制系统的系统引导程序的版本号;
所述外部远程服务器根据明文接收到的系统引导程序的版本号确定密钥,解密并提取系统信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811031615.5A CN110737448B (zh) | 2018-09-05 | 2018-09-05 | 一种包含有微控制器的固件加密系统及其固件保护和升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811031615.5A CN110737448B (zh) | 2018-09-05 | 2018-09-05 | 一种包含有微控制器的固件加密系统及其固件保护和升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110737448A CN110737448A (zh) | 2020-01-31 |
CN110737448B true CN110737448B (zh) | 2023-08-11 |
Family
ID=69236609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811031615.5A Active CN110737448B (zh) | 2018-09-05 | 2018-09-05 | 一种包含有微控制器的固件加密系统及其固件保护和升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110737448B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001045414A2 (en) * | 1999-12-15 | 2001-06-21 | Conexant Systems, Inc. | System of and method for secure firmware update and loading of cable modem |
CA2530107A1 (en) * | 2001-05-10 | 2002-11-10 | Ranco Incorporated Of Delaware | System and method for securely upgrading firmware |
JP2009230399A (ja) * | 2008-03-21 | 2009-10-08 | Fuji Xerox Co Ltd | ファームウェア更新システムおよびファームウェア更新プログラム |
CN103207800A (zh) * | 2013-04-24 | 2013-07-17 | 厦门亿联网络技术股份有限公司 | 一种安全灵活的固件升级方法 |
CN103942075A (zh) * | 2014-04-09 | 2014-07-23 | 苏州汇川技术有限公司 | 一种电梯控制器固件烧录系统及方法 |
CN105608345A (zh) * | 2015-12-21 | 2016-05-25 | 上海华测导航技术股份有限公司 | 一种Stm32引导程序加密的方法 |
WO2017013134A1 (de) * | 2015-07-23 | 2017-01-26 | Phoenix Contact Gmbh & Co.Kg | Verfahren und system zur firmware-aktualisierung einer steuereinrichtung zur prozesssteuerung |
CN107395389A (zh) * | 2017-03-28 | 2017-11-24 | 厦门亚锝电子科技有限公司 | 一种基于蓝牙Mesh网络的调光器固件升级方法 |
WO2018138789A1 (ja) * | 2017-01-25 | 2018-08-02 | 三菱電機株式会社 | 組み込み装置及びファームウェア更新方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020188934A1 (en) * | 2001-06-12 | 2002-12-12 | Nortel Networks Limited | Method and system for upgrading existing firmware on third party hardware |
JP4903071B2 (ja) * | 2007-03-15 | 2012-03-21 | 株式会社リコー | 情報処理装置、ソフトウェア更新方法及び画像処理装置 |
CN101924607B (zh) * | 2010-08-27 | 2013-01-23 | 华为终端有限公司 | 基于固件空中传输技术的固件处理方法、装置及系统 |
EP2757499B1 (en) * | 2013-01-18 | 2018-07-18 | Neopost Technologies | System and method for massive controlled and secured update of devices firmware |
US9965632B2 (en) * | 2014-12-22 | 2018-05-08 | Capital One Services, Llc | System and methods for secure firmware validation |
-
2018
- 2018-09-05 CN CN201811031615.5A patent/CN110737448B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001045414A2 (en) * | 1999-12-15 | 2001-06-21 | Conexant Systems, Inc. | System of and method for secure firmware update and loading of cable modem |
CA2530107A1 (en) * | 2001-05-10 | 2002-11-10 | Ranco Incorporated Of Delaware | System and method for securely upgrading firmware |
JP2009230399A (ja) * | 2008-03-21 | 2009-10-08 | Fuji Xerox Co Ltd | ファームウェア更新システムおよびファームウェア更新プログラム |
CN103207800A (zh) * | 2013-04-24 | 2013-07-17 | 厦门亿联网络技术股份有限公司 | 一种安全灵活的固件升级方法 |
CN103942075A (zh) * | 2014-04-09 | 2014-07-23 | 苏州汇川技术有限公司 | 一种电梯控制器固件烧录系统及方法 |
WO2017013134A1 (de) * | 2015-07-23 | 2017-01-26 | Phoenix Contact Gmbh & Co.Kg | Verfahren und system zur firmware-aktualisierung einer steuereinrichtung zur prozesssteuerung |
CN105608345A (zh) * | 2015-12-21 | 2016-05-25 | 上海华测导航技术股份有限公司 | 一种Stm32引导程序加密的方法 |
WO2018138789A1 (ja) * | 2017-01-25 | 2018-08-02 | 三菱電機株式会社 | 組み込み装置及びファームウェア更新方法 |
CN107395389A (zh) * | 2017-03-28 | 2017-11-24 | 厦门亚锝电子科技有限公司 | 一种基于蓝牙Mesh网络的调光器固件升级方法 |
Non-Patent Citations (1)
Title |
---|
云利军 ; 孙鹤旭 ; 雷兆明 ; 王炜 ; .基于SynqNet的网络化运动控制器研究.制造技术与机床.2017,(第02期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110737448A (zh) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10430616B2 (en) | Systems and methods for secure processing with embedded cryptographic unit | |
US7774619B2 (en) | Secure code execution using external memory | |
US7099477B2 (en) | Method and system for backup and restore of a context encryption key for a trusted device within a secured processing system | |
EP3275159B1 (en) | Technologies for secure server access using a trusted license agent | |
US20190253417A1 (en) | Hardware device and authenticating method thereof | |
US20130086385A1 (en) | System and Method for Providing Hardware-Based Security | |
CN108781210A (zh) | 具有可信执行环境的移动设备 | |
CN109313690A (zh) | 自包含的加密引导策略验证 | |
CN102063591B (zh) | 基于可信平台的平台配置寄存器参考值的更新方法 | |
EP1542112A1 (en) | Open type general-purpose attack-resistant cpu, and application system thereof | |
CN107003866A (zh) | 来自加密模板的加密虚拟机的安全创建 | |
CN111241564B (zh) | 内存页面交换方法和安全处理器 | |
CN104991526A (zh) | 工业控制系统安全支撑框架及其数据安全传输和存储方法 | |
US20090287917A1 (en) | Secure software distribution | |
CN106384042B (zh) | 一种电子设备以及安全系统 | |
CN113032814B (zh) | 物联网数据管理方法和系统 | |
CN109086578A (zh) | 一种软件授权使用的方法、设备及存储介质 | |
US20230088172A1 (en) | System for secure provisioning and enforcement of system-on-chip (soc) features | |
CN105308610A (zh) | 用于设备上的平台和用户应用安全性的方法和系统 | |
US20060075401A1 (en) | Patch installation control | |
CN110730079B (zh) | 基于可信计算模块的嵌入式系统安全启动和可信度量的系统 | |
CN111506915B (zh) | 授权访问的控制方法、装置和系统 | |
CN110737448B (zh) | 一种包含有微控制器的固件加密系统及其固件保护和升级方法 | |
CN108958761A (zh) | 一种设备程序的处理方法及装置 | |
JP6318868B2 (ja) | 認証システム、及び携帯通信端末 |
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 |