CN103020495B - 一种嵌入式软件防盗版加密方法 - Google Patents
一种嵌入式软件防盗版加密方法 Download PDFInfo
- Publication number
- CN103020495B CN103020495B CN201210546174.9A CN201210546174A CN103020495B CN 103020495 B CN103020495 B CN 103020495B CN 201210546174 A CN201210546174 A CN 201210546174A CN 103020495 B CN103020495 B CN 103020495B
- Authority
- CN
- China
- Prior art keywords
- mcu
- program
- encryption chip
- embedded software
- encryption
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
一种带加密芯片的MCU设备(1),包括有嵌入式软件(3,5)MCU(2),有操作系统(7)的加密芯片(6),MCU(2)通过UART、IO等接口与加密芯片(6)连接。MCU内程序(4)移植到加密芯片中。MCU运行软件(3),向加密芯片(6)输入参数(8),加密芯片让程序(4)调用输入参数(8)生成输出参数(9)给MCU(2),MCU软件(5)调用加密芯片输出参数(9)生成输出数据(10),MCU软件(3)无法跳过程序(4)与MCU程序(5)直接交互。MCU(2)中程序不完整,而加密芯片(6)中程序难以复制,从根本上杜绝了嵌入式软件整体被复制的可能性。
Description
技术领域
本发明涉及在各种设备中MCU嵌入软件实现防复制、防破解的一种嵌入式软件防盗版加密方法,通过这种加密方法来保护开发者MCU中程序的知识产权。
背景技术
市场上热卖的各种靠MCU嵌入式程序,实现其主要功能技术的设备,普遍都遇到被别人破解和盗版的问题,而目前市面上出现的很多防盗版加密芯片,都采用简单的密码比对模式,也就是在MCU嵌入式软件里放入一个密钥,在加密芯片中放入一个密钥,然后在MCU运行过程中通过独立于MCU程序以外的固定算法不断进行密钥的比对,如果密钥一致,则MCU嵌入式程序可以运行。这种方法的主要弊端就是MCU程序是完整的,如果盗版商拿到这种方式加密的设备,不需要去破解加密芯片里面的密钥,只要去破解相对薄弱的MCU,获取MCU全部代码,然后通过反编译找到密钥的比对点,跳过比对点就完成了MCU程序的破解。这种加密方式已经完全根本上现在技术的发展,也无法保护开发者MCU中程序的知识产权。
所以各个带有MCU嵌入式软件的设备开发商急需一种能够从根本上防止盗版商破解MCU中嵌入式软件的方法,来保护自己的嵌入式软件的知识产权。目前智能卡内核的加密芯片以其超高安全性广泛应用于银行、移动支付、电子商务/政务、控制访问、身份识别、控制器,安防监控、游戏机、汽车电子、平板电脑、机顶盒、DVR、路由器、交换机、仪器仪表等各种电子产品终端领域,采用这种智能卡内核的加密芯片通过各种安全传感器、过滤器、总线及内存加密等硬件设计方式防止DPA、SPA等破解攻击具,从而强有力的保护芯片中的数据不被读取、破解。加密芯片内部的安全操作系统通过设置内部数据不可读、敏感信息加密、不可预知的时序以及防火墙机制保护运行在加密芯片安全操作系统上的程序不被探测获取和跟踪。
发明内容
本发明要解决的技术问题在于避免出现现有嵌入式软件防盗版简单的密钥比对模式的安全漏洞,而提出一种嵌入式软件防盗版加密方法,从而实现真正的具有高安全性的、完善的嵌入式软件加密方法。
具体实施方式
本发明是一种在嵌入式软件领域,通过把用户MCU中的嵌入式程序的一部分关键程序移植另一块具有防拷贝、防剖片等高安全性的智能卡芯片平台的加密芯片中运行,这个嵌入式加密芯片采用智能卡芯片平台。加密芯片拥有可以运行用户程序代码的安全操作系统,保证用户的各种MCU平台的嵌入式程序可以在带有安全操作系统的环境下运行、计算。
用户的MCU通过UART、IO、IIC、SPI通讯接口方式与移植到加密芯片中的程序进行交互。用户MCU中的程序因为已经移植了一部分在加密芯片中,那用户MCU中程序就是不完整的了,盗版者破解了用户MCU也无法得到全部代码,盗版很难破解安全性极强的加密芯片中的程序,用户MCU运行必须与移植了程序的加密芯片配合才能完成整个程序的运行,从而起到对用户MCU中嵌入式软件的防破解保护作用。
说明书附图图1是本发明应用架构原理图,具体实施方式结合说明书附图图1详细描述如下:
一种嵌入式软件防盗版加密方法,包括拥有嵌入式软件(3,5)的MCU(2),拥有嵌入式安全操作系统(7)的采用智能卡芯片平台的加密芯片(6),MCU(2)通过UART、IO、IIC、SPI通讯接口与加密芯片(6)连接。
先把MCU(2)中一段关键代码程序(4)移植到加密芯片(6)中。用户设备的MCU(2)启动运行MCU内部嵌入式软件(3),向加密芯片(6)输入参数数据(8),加密芯片(6)让加密芯片内部MCU移植过来的关键代码程序(4)调用输入的参数数据(8)运算产生输出参数数据(9)返回给MCU(2),MCU内部嵌入式软件(5)调用加密芯片(6)输出的参数数据(9)运算产生输出数据和结果(10),MCU内部嵌入式软件(3)无法跳过加密芯片(6)中程序(4)与MCU中程序(5)直接交互。
如果加密芯片(6)中运行的是正确的MCU移植过来的关键代码程序(4),则加密芯片(6)对MCU输入的参数数据(8)运算就会产生正确有用的输出参数数据(9),从而MCU内部嵌入式软件(5)调用这个输出参数数据(9)必然能产生正确的输出数据和结果(10)。反之则MCU内部嵌入式软件(5)无法正确执行或者产生错误的结果。
同现有的采用市面上常见的固定密钥比对认证模式的加密方案相比,本加密方案的有益效果在于,MCU中移植到到加密芯片中的关键代码程序是根据每个不同客户MCU根据自己嵌入式软件的不同特点专门选取的,也就是说每个客户MCU中移植到加密芯片中的关键算法程序都是不同的,具有不可预知性。而破解存储在采用高安全性智能卡内核并具有安全操作系统的加密芯片中的算法程序的代价高、难度大,从根本上杜绝了破解MCU中嵌入式软件全部程序的可能,有效的保护了开发MCU嵌入式软件开发者的知识产权。
说明书附图图2是本发明加密芯片结构图,说明书附图图2详细描述如下:加密芯片CPU(101)是整个加密芯片的程序处理核心单元,可以是8bit、16bit、32bit和64bit的CPU。加密芯片跟外界通讯的接口(102),通过IO、UART、IIC、SPI等接口与设备上的MCU连接,通过这些接口与MCU之间进行数据交互。加密芯片的ROM(103)存放加密芯片的安全操作系统,通过这个安全操作系统对MCU移植到加密芯片中的关键算法程序进行解析运行。MCU移植到加密芯片中的关键算法程序存放在User Data Area(104)中,供ROM中的安全操作系统调用运行。RAM(105)是ROM(103)中安全操作系统以及User Data Area(105)中MCU移植过来的关键算法程序的运行内存。这些在ROM(103)、User Data Area(104)和RAM(105)以及在通讯接口(102)上的数据都是通过Security Controller、Watchdog Timer、Timers、Interrupt Controller等单元进行保护。
下面结合说明书附图图3所示,完整描述一下本发明所述方法完整的工作过程:
步骤201:MCU上电,加密芯片上电;
步骤202:MCU运行嵌入式软件;
步骤203:MCU嵌入式软件向加密芯片发送输入参数;
步骤204:加密芯片运行从MCU移植过来的关键算法程序,然后调用MCU送来的输入参数运算产生结果数据发送给MCU;
步骤205:MCU嵌入式软件调用加密芯片返回的结果数据,运算产生数据参数输出给MCU控制的周边器件;
步骤206:MCU控制的周边器件执行MCU的输出给他的数据参数。如果MCU输出的数据参数不对,那MCU控制的周边器件执行这个错误数据参数进入步骤207,如果MCU输出的数据参数正确,那MCU控制的周边器件执行这个正确数据参数进入步骤208;
步骤207:设备无法工作或者工作不正常;
步骤209:设备无法正常工作,结束。
步骤208:设备正常工作;
步骤210:设备正常工作结束;
本发明提供了一种全新的在各种设备中MCU嵌入软件实现防复制、防破解的防盗版加密方法,通过这种加密方法,嵌入式软件开发人员可以灵活的根据自己的程序特点选择移植相关算法程序到加密芯片中,让破解者无法通过单纯破解MCU来获取MCU中的全部嵌入式软件。而具有超高安全性和防破解性能的加密芯片保护了那些保存在加密芯片中的那部分关键算法程序的安全。从而在根本上解决了目前嵌入式软件容易被破解复制的隐患。
上述为本发明的优选实现过程,本领域的技术人员在本发明的基础上进行通常变化和替换包含在本发明的保护范围之内。
Claims (7)
1.一种嵌入式软件防盗版加密方法,通过把用户MCU中的嵌入式程序的一部分关键程序移植到另一块具有安全性的智能卡芯片平台的加密芯片中运行,这个嵌入式加密芯片采用智能卡芯片平台;用户MCU通过UART、IO、IIC、SPI通讯接口方式与移植到加密芯片中的程序进行交互;用户MCU中的程序因为已经移植了一部分在加密芯片中,那用户MCU中程序就是不完整的了,盗版者破解了用户MCU也无法得到全部代码,盗版者很难破解安全性极强的加密芯片中的程序,用户MCU运行必须与移植了程序的加密芯片配合才能完成整个程序的运行,从而起到对用户MCU中嵌入式软件的防破解保护作用;
在带有加密芯片的MCU设备系统(1),用户设备的MCU(2)中有用户自己编写的嵌入式软件程序,采用智能卡芯片平台的加密芯片(6)中有可以运行MCU端移植代码的安全操作系统(7),加密芯片(6)的ROM(103)存放加密芯片的安全操作系统,通过这个安全操作系统对用户MCU移植到加密芯片中的关键算法程序进行解析运行,MCU移植到加密芯片中的关键算法程序存放在用户数据区(104)中,加密芯片(6)中有从MCU中移植进来的一段关键代码程序(4),MCU(2)与加密芯片(6)通过UART、IO、IIC、SPI通讯接口连接通讯,MCU(2)运行嵌入式软件程序向加密芯片(6)输入参数数据(8),加密芯片(6)中MCU移植过来的关键代码程序(4)调用输入参数数据(8)产生输出参数数据(9),MCU内部嵌入式软件程序调用输出参数数据(9)运算产生输出数据和结果(10),MCU内部嵌入式软件程序无法跳过加密芯片(6)中关键代码程序(4)与MCU中嵌入式软件程序直接交互,从而让盗版商无法通过简单去除加密芯片(6)让MCU(2)正确运行,同时盗版商也无法通过剖片获取高安全性智能卡芯片内核的加密芯片中的关键代码程序(4),完成MCU设备系统的破解盗版;
其特征在于,MCU(2)中嵌入式软件程序向加密芯片(6)输入参数数据(8),加密芯片(6)接收到输入参数数据(8)后,内部调用移植于MCU中的关键代码程序(4)调用输入参数数据(8)运行产生输出参数数据(9)返回给MCU(2),MCU内部嵌入式软件程序用输出参数数据(9)运算产生输出数据和结果(10),使得MCU内部嵌入式软件程序完整运行,从而完成整个MCU程序功能的运行;
MCU(2)中的内部嵌入式软件程序只是MCU(2)中程序的一部分,是不完整的,必须结合加密芯片(6)中MCU移植过来的关键代码程序(4)才能完成全部功能,缺少加密芯片(6),也就缺少了那部分MCU移植过来的关键代码程序(4),MCU内部嵌入式软件程序无法跳过加密芯片(6)中MCU移植过来的关键代码程序(4)与MCU内部嵌入式软件程序直接交互,从而MCU(2)无法完成全部功能从而达到防破解、盗版目的。
2.如权利要求1所述的嵌入式软件防盗版加密方法,其特征在于:加密芯片(6)内部要有安全操作系统(7),这个安全操作系统可以运行从MCU端移植过来的关键代码程序(4)。
3.如权利要求1所述的嵌入式软件防盗版加密方法,其特征在于,需要把MCU(2)中的嵌入式软件抠出一部分MCU中关键代码程序(4)移植到加密芯片(6)中运行,MCU(2)中的嵌入式软件程序只是MCU中嵌入式软件的一部分,是不完整的。
4.如权利要求1所述的嵌入式软件防盗版加密方法,其特征在于:MCU(2)与加密芯片(6)采用标准UART、IO、IIC、SPI通讯接口用于交互指令。
5.如权利要求1所述的嵌入式软件防盗版加密方法,其特征在于:加密芯片(6)必须采用高安全性智能卡芯片,智能卡芯片和MCU具有CPU、ROM、RAM、EEPROM、FLASH和各种安全防护逻辑,具有芯片内部代码无法拷贝、无法读取、防探测、防攻击、防剖片安全保护机制。
6.如权利要求1所述的嵌入式软件防盗版加密方法,其特征在于:加密芯片(6)拥有一定容量的可存储移植关键代码程序(4)的EEPROM或FLASH存储区以及可运行移植代码程序的RAM。
7.如权利要求1所述的嵌入式软件防盗版加密方法,其特征在于:采用相应程序编译器通过汇编、C语言、JAVA语言编写关键代码程序(4),编译生成HEX或者CAT类型文件,下载到加密芯片(6)中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210546174.9A CN103020495B (zh) | 2012-12-17 | 2012-12-17 | 一种嵌入式软件防盗版加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210546174.9A CN103020495B (zh) | 2012-12-17 | 2012-12-17 | 一种嵌入式软件防盗版加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103020495A CN103020495A (zh) | 2013-04-03 |
CN103020495B true CN103020495B (zh) | 2015-06-10 |
Family
ID=47969092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210546174.9A Active CN103020495B (zh) | 2012-12-17 | 2012-12-17 | 一种嵌入式软件防盗版加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103020495B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105205357B (zh) * | 2015-09-22 | 2018-07-31 | 上海斐讯数据通信技术有限公司 | 一种嵌入式系统的软件代码防盗方法及装置 |
CN105677586B (zh) * | 2016-01-07 | 2018-11-30 | 珠海格力电器股份有限公司 | Mcu的闪存的访问权限控制方法和装置 |
CN106933218A (zh) * | 2017-04-25 | 2017-07-07 | 重庆市创锦程科技有限公司 | 适配obd接口的多协议诊断模块及其控制方法 |
CN107330318A (zh) * | 2017-06-30 | 2017-11-07 | 中国航空工业集团公司雷华电子技术研究所 | 一种数字信号处理板卡及其调试系统的绑定加密方法 |
CN108733987A (zh) * | 2018-04-12 | 2018-11-02 | 惠州市源医科技有限公司 | 一种基于嵌入式设备的二进制目标文件的加密方法和装置 |
CN109446757B (zh) * | 2018-10-25 | 2022-03-15 | 石生花微电子(南京)有限公司 | 一种用于通用mcu程序保护的方法 |
CN109902453A (zh) * | 2019-02-22 | 2019-06-18 | 山东欧德利电气设备有限公司 | 一种软件加密方法 |
CN115563589B (zh) * | 2022-12-05 | 2023-05-26 | 苏州浪潮智能科技有限公司 | 一种芯片防盗版方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101038615A (zh) * | 2007-03-12 | 2007-09-19 | 吴晓栋 | 一种直接从软件中任意分离代码到加密锁实现软件版权保护的方法 |
CN101635019A (zh) * | 2009-08-25 | 2010-01-27 | 中国华录集团有限公司 | 基于安全mcu的嵌入式软件程序的加密系统 |
CN201917914U (zh) * | 2011-02-14 | 2011-08-03 | 凌科芯安科技(北京)有限公司 | 嵌入式加密芯片 |
CN102339369A (zh) * | 2011-08-18 | 2012-02-01 | 珠海天威技术开发有限公司 | Mcu信息保护方法 |
-
2012
- 2012-12-17 CN CN201210546174.9A patent/CN103020495B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101038615A (zh) * | 2007-03-12 | 2007-09-19 | 吴晓栋 | 一种直接从软件中任意分离代码到加密锁实现软件版权保护的方法 |
CN101635019A (zh) * | 2009-08-25 | 2010-01-27 | 中国华录集团有限公司 | 基于安全mcu的嵌入式软件程序的加密系统 |
CN201917914U (zh) * | 2011-02-14 | 2011-08-03 | 凌科芯安科技(北京)有限公司 | 嵌入式加密芯片 |
CN102339369A (zh) * | 2011-08-18 | 2012-02-01 | 珠海天威技术开发有限公司 | Mcu信息保护方法 |
Non-Patent Citations (2)
Title |
---|
加密芯片;linksafe;《百度百科》;20120913;第1行-最后1行 * |
如何选择真正有效的加密芯片;佚名;《中国防伪报道》;20110930;56-57 * |
Also Published As
Publication number | Publication date |
---|---|
CN103020495A (zh) | 2013-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103020495B (zh) | 一种嵌入式软件防盗版加密方法 | |
US9454456B2 (en) | Method for separately executing software, apparatus, and computer-readable recording medium | |
EP3455764B1 (en) | Method and apparatus for dynamic executable verification | |
CN104794388B (zh) | 应用程序存取保护方法及应用程序存取保护装置 | |
CN105683990A (zh) | 用于保护动态库的方法和装置 | |
CN101533451A (zh) | 提供安全执行环境的微处理器及其执行安全编码的方法 | |
Lemaire et al. | A SysML extension for security analysis of industrial control systems | |
CN102663278A (zh) | 云计算模式物联网平台数据处理安全保护方法 | |
CN113722683B (zh) | 模型保护方法、装置、设备、系统以及存储介质 | |
CN115580491B (zh) | 一种基于国密算法的工控编程平台及构建方法与运行方法 | |
CN102136052A (zh) | 一种软件的保护方法 | |
CN104915240B (zh) | 一种atm设备软件升级的方法 | |
CN115097807A (zh) | 面向可编程逻辑控制器的内存攻击检测方法及系统 | |
CN104361280B (zh) | 一种通过smi中断实现对usb存储设备进行可信认证的方法 | |
US8549631B2 (en) | Internet site security system and method thereto | |
CN114816549B (zh) | 一种保护bootloader及其环境变量的方法及系统 | |
Sun et al. | Analysis and prevention of information security of USB | |
CN101290648B (zh) | 一种对软件的正版性进行远程验证的方法 | |
Msgna et al. | Secure application execution in mobile devices | |
KR20190038018A (ko) | 프로그램 변조 방어 장치 및 방법 | |
Zaharis et al. | Live forensics framework for wireless sensor nodes using sandboxing | |
CN103530555A (zh) | 防止程序执行恶意操作的方法和装置 | |
CN107330318A (zh) | 一种数字信号处理板卡及其调试系统的绑定加密方法 | |
CN102737193A (zh) | 一种数据安全防控中的设备屏蔽方法及装置 | |
KR20150053277A (ko) | 소프트웨어의 실행을 제어하기 위한 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |