一种防复制的嵌入式系统实现方法技术方案

技术编号:15691368 阅读:102 留言:0更新日期:2017-06-24 04:31
本发明专利技术公开了一种防复制的嵌入式实现方法,防复制的嵌入式系统基于ID码采用一次读取,反复判断的方式,系统初始化时读取主要数据,认证保护机制一直运行在系统中,仅做判断处理,最终将ID码比较结果赋值给标志位,系统依赖此标志位的值判断系统是否需要正常运行,从而起到保护系统的目的。本发明专利技术的实现方法基于嵌入式电子系统具有设计灵活、保证产品安全性的优点。

Anti copying embedded system realizing method

The invention discloses a method for realizing a copy of the embedded system, the embedded system anti copy ID code with a reading based on repeated judgment, when the system is initialized to read data, authentication protection mechanism has been in operation in the system, only to determine treatment, will eventually be assigned to ID code comparison flag system rely on this flag bit value to determine whether the system needs the normal operation, so as to protect the purpose of the system. The realization method of the invention is based on an embedded electronic system, and has the advantages of flexible design and guarantee product safety.

【技术实现步骤摘要】
一种防复制的嵌入式系统实现方法
本专利技术涉及一种保护嵌入式电子产品芯片程序不被非法破解克隆的安全受控技术,特别涉及一种防复制的嵌入式系统实现方法。
技术介绍
嵌入式电子产品的核心主要由硬件和软件两个部分。许多公司发布新的产品后,同行业竞争的公司都会根据其产品进行一定的竞争分析,借此来对比自身公司产品的优劣。也不乏一些公司为了省掉研发成本或快速的推出产品,就使用了非法手段进行仿制,这种创新性的新产品刚面市就被抄板或克隆,将导致原创公司的巨大损失,同时影响创新的积极性,导致电子产品进入同质化低价竞争的怪圈。嵌入式电子产品与计算机行业相似,产品的硬件解决方案已成为公开的资料,产品设计者的核心技术实际上集中在嵌入式应用软件内。所以,在硬件技术逐渐成熟和公开的今天,如何保护产品的设计,产品的版权,实际上转化成了对嵌入式应用软件的保护。随着黑客技术和芯片解剖技术的发展,电子产品嵌入式系统面临的攻击也越来越多,用调试软件读出在嵌入式系统芯片内部(ROM/FLASH/EEPROM)的二进制BIN文件,就可以对芯片中代码进行拷贝,进而对整个PCB乃至产品的非法克隆。为了防止未经授权访问芯片程序,大多嵌入式芯片都带有加密锁定位或者加密字节来保护片内程序。但这样的保护措施很脆弱,攻击者借助专用设备,利用芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取嵌入式芯片内部程序。芯片厂对出厂的每一块芯片嵌入了唯一的ID码,使得每一块芯片存在唯一性,产品研发人员可以使用ID来进行加密保护,即使芯片程序即使被克隆到其它芯片中但由于ID码不一样导致程序无法正常运行。大多采用加密过程如下:1)读出芯片的唯一ID号;2)将这一ID号作为原始值,通过某种加密算法得到了加密后的值PW;3)将PW值存到EEPROM或自身的flash中;4)在应用程序中读取PW值,通过解密算法得到芯片的ID;5)应用程序读取芯片的ID值,与解密后的ID值进行比较看是否一致。显然以上的做法得安全性不够,因为读ID的过程(如出现ID码寄存器的地址)可能就已经泄密了,攻击者可以通过读取芯片的程序文件分析处理,通过调试手段跳过对比点的方式破解,便可使程序正常运行。
技术实现思路
本专利技术所要解决的技术问题是提供一种不易破解、设计简单的芯片防复制方法,芯片防复制的方法是基于芯片的唯一ID码来实现。本专利技术解决上述技术问题的技术方案如下:一种防复制的嵌入式系统实现方法,防复制的嵌入式系统基于ID码采用一次读取,反复判断的方式,系统初始化时读取主要数据,之后不再读取数据,认证保护机制一直运行在系统中,仅做判断处理,最终体现为一个标志位,系统依赖此标志正常运行,从而起到保护系统的目的,其具体实现方法包括以下步骤:(1)读取ID码:初始化中读取ID码,将ID码数据存放在ID码表中;(2)加密ID码:定义一个长度大于ID码表的加密表,采用数据查表的方式,将ID码表进行加密,得到加密数据;系统产生一个随机数作为偏移值,结合加密数据放入加密表中;(3)存取加密数据:芯片最前或者最后端预留一定Flash地址空间来保存加密表的数据,初始化中读取此数据到存取表中;(4)隐藏加密数据:定义一个长度大于加密表的对比表,系统产生一个随机数作为偏移值,结合加密表数据放入对比表中;(5)认证机制对比ID码:按照字节长度采用多次比对的方式,对存取表与对比表的数据进行比较,最终将ID码比较结果赋值给标志位;(6)保护机制根据标志位判断系统是否需要正常运行:在系统的操作中均加入标志位的判断,当标志位有效时,则系统执行有效操作,否则直接跳过或者退出系统,以此保证系统功能的正常运行。本专利技术的有益效果是:本专利技术的实现方法基于嵌入式电子系统具有设计灵活、保证产品安全性的优点。在上述技术方案的基础上,本专利技术还可以做如下改进。进一步,所述ID码为嵌入式系统控制芯片ID码或嵌入式系统中其它具有唯一性的外部芯片的ID码。进一步,读取ID码的读取地址是经过变量间接运算得到的。附图说明图1是本专利技术防复制加密保护系统流程图;图2是本专利技术认证机制对比ID码单次处理实现流程图。具体实施方式以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并非用于限定本专利技术的范围。如图1所示,本专利技术是在保证嵌入式电子产品的安全性的基础上提供的一种保护方法。防复制系统采用一次读取,反复判断的方式。系统初始化时读取主要数据,之后不再读取数据,认证保护机制一直运行在系统中,仅做判断处理,最终体现为一个标志位,系统依赖这个标志正常运行,从而起到保护系统的目的,其具体实现方法包括以下步骤:(1)读取ID码:初始化中读取ID码,将ID码数据存放在ID码表中,其中,ID码为嵌入式系统控制芯片ID码或嵌入式系统中其它具有唯一性的外部芯片的ID码,读取地址经过变量间接运算得到;(2)加密ID码:定义一个长度大于ID码表的加密表,采用数据查表的方式,将ID码表进行加密,得到加密数据;系统产生一个随机数作为偏移值,结合加密数据放入加密表中;(3)存取加密数据:芯片最前或者最后端预留一定Flash地址空间来保存加密表的数据,初始化中读取此数据到存取表中;若读取的数据为全0xff或是全0x00,即表示加密数据还未存入指定区域,则将加密表中的数据存入Flash指定地址空间,再次读取Flash可得到存取表有效数据;(4)隐藏加密数据:定义一个长度大于加密表的对比表,系统产生一个随机数作为偏移值,结合加密表数据放入对比表中;(5)认证机制对比ID码:按照字节长度采用多次比对的方式,对存取表与对比表的数据进行比较,最终将ID码比较结果赋值给标志位;具体过程为,根据对比计数实现多次对比;每次对比前设置系统运行标志异常;当对比数据一致,则设置标志正常,同时增加对比计数,下次对比下一个字节数据;数据不一致,则跳过处理(标志位为异常,对比计数不变,下次对比依然为本次数据),即仅当数据一致时,才会对标志位设置为正常,才允许对比下一字节的数据;数据对比计数大于等于有效对比数据的字节数,则重置对比计数,依此循环对比;(6)保护机制根据标志位判断系统是否需要正常运行:在系统的操作中均加入标志位的判断,当标志位有效时,则系统执行有效操作,否则直接跳过或者退出系统,以此保证系统功能的正常运行。实施例1以STM32F103芯片的唯一ID为例,96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的,可以以字节(8位)、半字(16位)或者全字(32位)为单位进行读取。加密保护步骤如下:读取ID码:在初始化中以字节(8位)为单位,读取12次,将ID码存放在12个字节的ID码表UID_rd_tab[12]中,读取地址经过变量间接运算得到(假设ID码的地址为ID_ADDR,拆分成2(若干)个部分ID_ADDR=ID_ADDR_1<<16|ID_ADDR_2,以变量的方式读取数据方式为var_id_addr=ID_ADDR_1<<16|ID_ADDR_2;var_id_data=*(__IOu32*)(var_id_addr);不能让编译器优化这个地址,避免在反汇编后直接找到这个地址)。加密ID码:定义一个长本文档来自技高网
...
一种防复制的嵌入式系统实现方法

【技术保护点】
一种防复制的嵌入式系统实现方法,其特征在于,防复制的嵌入式系统基于ID码采用一次读取,反复判断的方式,系统初始化时读取主要数据,认证保护机制一直运行在系统中,仅做判断处理,最终将ID码比较结果赋值给标志位,系统依赖此标志位的值判断系统是否需要正常运行,从而起到保护系统的目的,其具体实现方法包括以下步骤:(1)读取ID码:初始化中读取ID码,将ID码数据存放在ID码表中;(2)加密ID码:定义一个长度大于ID码表的加密表,采用数据查表的方式,将ID码表进行加密,得到加密数据;系统产生一个随机数作为偏移值,结合加密数据放入加密表中;(3)存取加密数据:芯片最前或者最后端预留一定Flash地址空间来保存加密表的数据,初始化中读取此数据到存取表中;(4)隐藏加密数据:定义一个长度大于加密表的对比表,系统产生一个随机数作为偏移值,结合加密表数据放入对比表中;(5)认证机制对比ID码:按照字节长度采用多次比对的方式,对存取表与对比表的数据进行比较,最终将ID码比较结果赋值给标志位;(6)保护机制根据标志位判断系统是否需要正常运行:在系统的操作中均加入标志位的判断,当标志位有效时,则系统执行有效操作,否则直接跳过或者退出系统,以此保证系统功能的正常运行。...

【技术特征摘要】
1.一种防复制的嵌入式系统实现方法,其特征在于,防复制的嵌入式系统基于ID码采用一次读取,反复判断的方式,系统初始化时读取主要数据,认证保护机制一直运行在系统中,仅做判断处理,最终将ID码比较结果赋值给标志位,系统依赖此标志位的值判断系统是否需要正常运行,从而起到保护系统的目的,其具体实现方法包括以下步骤:(1)读取ID码:初始化中读取ID码,将ID码数据存放在ID码表中;(2)加密ID码:定义一个长度大于ID码表的加密表,采用数据查表的方式,将ID码表进行加密,得到加密数据;系统产生一个随机数作为偏移值,结合加密数据放入加密表中;(3)存取加密数据:芯片最前或者最后端预留一定Flash地址空间来保存加密表的数据,初始化中读取此数据到存取表中;(4...

【专利技术属性】
技术研发人员:杨雄詹晋川杨清张晓进
申请(专利权)人:深圳市风云实业有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1