一种嵌入式固件保护的方法和装置的制造方法
【技术领域】
[0001]本发明涉及电子设备的嵌入式固件保护技术领域,尤其涉及一种嵌入式固件保护的方法和装置。
【背景技术】
[0002]随着嵌入式设备或嵌入式电子产品,尤其是像智能手机、智能电子产品或者专用的智能手持终端产品的发展;这些嵌入式电子产品其自身核心的价值在于其智能系统的创新和应用的创新,而这些创新是由嵌入式电子产品的软硬件凝聚在一起的结果。而对这样的一个软硬件集成系统知识产权的保护需要在软硬件整体方面加以考虑是比较可行的方案。
[0003]首先,对于嵌入式电子产品来讲,对于一些别有用心的山寨者来说,通过操板等方式很容者得到硬件的整个原理图、电路板结构图和整个物料清单(B0M,Bill of Material)清单,因此单单从硬件方面做产品的保护而不被复制和克隆是不具备可行性的。其次,从软件方面,储存在通用存储器中的电子产品固件(代码和数据信息等)也是很容易被读取出来的。有了硬件和固件,山寨者不用开发就很容易将电子产品加以复制和山寨。
[0004]因此,如何防止嵌入式设备很容易被复制或被克隆,是亟待解决的技术问题。
【发明内容】
[0005]为解决现有存在的技术问题,本发明期望提供一种嵌入式固件保护的方法和装置。
[0006]为实现上述发明目的,本发明采用以下方式来实现:
[0007]本发明提供了一种嵌入式固件保护的方法,所述方法包括:
[0008]通过嵌入式固件加密机上的硬件安全算法集成电路对嵌入式固件进行加密,并将加密的嵌入式固件存储在嵌入式固件应用设备Flash存储器中;
[0009]在嵌入式固件运行之前,由嵌入式固件应用设备上的硬件安全算法集成电路对Flash存储器中加密的嵌入式固件部分进行解密,获得解密的嵌入式固件。
[0010]本发明还提供了一种嵌入式固件加密机,内设硬件安全算法集成电路,所述硬件安全算法集成电路用于对嵌入式固件进行加密,获得加密的嵌入式固件;所述嵌入式固件加密机将加密的嵌入式固件存储在嵌入式固件应用设备Flash存储器中。
[0011]本发明提供了一种嵌入式固件应用设备,内设硬件安全算法集成电路,所述硬件安全算法集成电路用于在嵌入式固件运行之前,对Flash存储器中加密的嵌入式固件进行解密,获得解密的嵌入式固件。
[0012]本发明所提供的一种嵌入式固件保护的方法和装置,利用专用的硬件安全算法集成电路对开发平台编译好的嵌入式固件进行加密,并将加密的嵌入式固件存储在Flash存储器中以起到对来嵌入式固件进行的保护的作用,进而防止嵌入式设备被山寨和复制。
【附图说明】
[0013]图1为本发明实施例的嵌入式固件加密示意图;
[0014]图2为本发明实施例的嵌入式固件解密示意图;
[0015]图3为本发明实施例的嵌入式固件RO段加载域和运行域在不同存储器的结构图;
[0016]图4为本发明实施例的嵌入式固件全加密示意图;
[0017]图5为本发明实施例的全加密的嵌入式固件加载运行结构示意图;
[0018]图6为本发明实施例的嵌入式固件RO段加载域和运行域在同一存储器的结构图;
[0019]图7为本发明实施例的嵌入式固件部分段(RW段)加密结构示意图;
[0020]图8为本发明实施例的部分段(RW段)加密的嵌入式固件加载运行结构示意图。
【具体实施方式】
[0021]下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
[0022]为了有效的对电子产品进行保护,必须通过软硬件两个方面加以考虑。本发明实施例利用专门的硬件安全算法集成电路来对软件代码加密保护;并且采用分散加密算法的方式来保证一机一密,使得电子产品被破解或者山寨的安全防护等级更高,破解者或者山寨者付出的代价更大。从而起到保护电子产品的作用。
[0023]本发明实施例为解决嵌入式电子产品设备很容易被山寨或者被克隆的问题,提出了一种利用专用的硬件安全算法集成电路对嵌入式固件代码进行保护的方法,参见图1所示的嵌入式固件加密示意图,嵌入式固件代码经由嵌入式固件代码加密机中的硬件安全算法集成电路加密后,输出的是嵌入式固件代码的密文。进一步的,本发明实施例的嵌入式固件保护方法主要包括以下内容:
[0024]1、根据嵌入式电子产品所需的嵌入式固件,在开发平台上根据其加载和运行空间的分配需要进行代码编译,生成可执行二进制文件,这个二进制文件就称之为嵌入式固件;
[0025]2、根据编译后的嵌入式固件使用专用的嵌入式固件加密机(内置硬件安全算法集成电路)进行加密,将加密的嵌入式固件存放在嵌入式固件应用设备相应的Flash存储区域中;所述嵌入式固件应用设备上集成有与嵌入式固件代码加密机相同安全算法的硬件安全算法集成电路;
[0026]3、嵌入式固件加密机和嵌入式固件应用设备的安全算法集成电路具备有两种安全算法,安全算法I用于嵌入式固件加解密密钥的生成,安全算法2用于嵌入式固件加解密;安全算法I的密钥称之为根密钥,安全算法2的密钥称之为分散密钥;
[0027]4、使用嵌入式固件加密机对嵌入式固件进行加密时具有一定的原则,根据嵌入式固件的加载和运行空间、以及嵌入式系统开机初始化时间的要求等,只需要对嵌入式固件运行在RAM空间的部分代码进行加密,对于运行在Flash空间的代码部分不进行加密;
[0028]5、嵌入式固件代码进行加密和解密的密钥具有唯一性,其唯一性的特征来源于其所运行所在嵌入式固件应用设备的SN序列号的唯一性;
[0029]6、嵌入式固件加密机和嵌入式固件应用设备的安全算法集成电路上只发行根密钥,不发行嵌入式固件代码进行加密和解密的分散密钥,嵌入式固件代码进行加密和解密的分散密钥由安全算法I使用根密钥对嵌入式固件应用设备的SN序列号以一定的规则进行加密分散得到;
[0030]7、在嵌入式代码运行之前,需使用安全算法2对Flash中加密的嵌入式固件中运行在RAM中的代码进行解密并加载到相应的RAM地址中,参见图2所示的嵌入式固件解密示意图。
[0031]本发明利用专用的硬件安全算法集成电路对开发平台编译好的嵌入式固件进行加密,并将加密的嵌入式固件存储在Flash存储器中以起到对来嵌入式固件进行的保护的作用,进而防止嵌入式设备被山寨和复制。其中,所述嵌入式固件加密是在集成有专用安全算法集成电路的加密机上进行,加密的嵌入式固件存储在嵌入式固件应用设备的Flash存储器中,在嵌入式固件运行之前需要利用嵌入式固件应用设备上的专用硬件安全算法集成电路对Flash中加密的嵌入式固件部分进行解密,并加载到其所对应的RAM运行地址空间。本发明的主要思想是将代码编译链接后生成需要运行在RAM地址空间的嵌入式固件进行加密,然后将其烧录到Flash存储器中,通过硬件安全算法集成电路的方式来实现存储区中固件的私密性,从而起到嵌入式电子设备保护不被山寨和复制的效果。
[0032]本发明将嵌入式固件应用设备存储器分为两类,Flash和RAM,整个嵌入式固件的加载地址空间是Flash存储器,嵌入式固件的运行地址空间可分为两种:R0和RW段运行地址空间都是RAM存储器,如图3所示;RO段运行地址空间为Flash存储器,RW段运行地址空间为RAM存储器。
[0033]针对于图3的映像结构,嵌入式固件加密可以对整个固件映像文件进行加密,也可以对映像RW段进行加密,这里以对整个映像文件进行加密加以叙述。对嵌入式固件加密需要在集成有专用硬件安全算法集成电路的加密机上进行。如图4所示,硬件安全算法集成电路具有三部分:根密钥,安全算法I,安全算法2。嵌入式固件在加密机中加密的过程如下所述:
[0034]1、对嵌入式固件应用