CN104486355A - 防止代码被恶意篡改的方法和装置 - Google Patents
防止代码被恶意篡改的方法和装置 Download PDFInfo
- Publication number
- CN104486355A CN104486355A CN201410842072.0A CN201410842072A CN104486355A CN 104486355 A CN104486355 A CN 104486355A CN 201410842072 A CN201410842072 A CN 201410842072A CN 104486355 A CN104486355 A CN 104486355A
- Authority
- CN
- China
- Prior art keywords
- application program
- embedded system
- upgrading
- boot
- public key
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种防止代码被恶意篡改的方法和装置。包括:嵌入式系统上电后,执行闪存中的引导程序,判断应用程序是否需要升级;当应用程序不需要升级时,直接跳转到应用程序中执行,当应用程序需要升级时,下载服务器上存储的加密后的升级的应用程序,进行应用程序升级,其中,所述加密后的应用程序是利用与所述引导程序的解密算法对应的非对称算法公钥加密算法加密升级所获得的,所述嵌入式系统保存非对称算法公钥加密算法的公钥,所述嵌入式系统的开发者保存非对称算法公钥加密算法的私钥。可以杜绝防止代码被恶意篡改。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种防止代码被恶意篡改的方法和装置。
背景技术
很多嵌入式系统开发投入商用后都会面临在线升级的问题,从而实现对开发的嵌入式系统中的完善或对系统bug的修改,而在线升级过程是将一些可执行文件,通过原系统留有的接口,下载并烧写到主控芯片的flash中,由于下载的可执行文件直接在主控芯片中运行,所以会存在一定的风险,如果有人恶意修改这些可执行文件,则会导致出现问题,如何保证自己的下载的代码不被恶意篡改是一个广泛存在的问题。
目前的系统中对防止代码被恶意篡改的方法主要依靠简单的加密的措施,因为由于下载的代码是加密的,所以可以在一定程度上保证代码的保密性。
例如,一个嵌入式系统预留有接口,通过串口和主控模块通信进行系统的升级,升级时首先编译生成可执行文件,之后采用AES算法加密下载代码(即上述生成的可执行文件),然后通过串口就可以将下载代码传输到主控芯片中,主控芯片中的程序将下载代码解密,并且烧写到主控芯片的flash中。由于AES算法的key是16个字节,这样就决定了不可能进行暴力破解,可以在一定程度上保护自己的代码。
但是如果有人分析了主控芯片中的程序,就可以得到解密下载代码的过程,由于AES算法属于对称算法,即是会解密就会加密。那么得到解密下载代码的过程之后就相当于同时得到了加密的过程,此时就可以随意的编写代码,加密,通过我们预留的串口接口下载代码,这样系统就存在很大的安全隐患。
发明内容
为解决上述技术问题,本发明的目的是提供一种防止代码被恶意篡改的方法和装置。
本发明提供的防止代码被恶意篡改的方法,包括:
嵌入式系统上电后,执行闪存中的引导程序,判断应用程序是否需要升级;
当应用程序不需要升级时,直接跳转到应用程序中执行,当应用程序需要升级时,下载服务器上存储的加密后的升级的应用程序,进行应用程序升级,其中,所述加密后的应用程序是利用与所述引导程序的解密算法对应的非对称算法公钥加密算法加密升级所获得的,所述嵌入式系统保存非对称算法公钥加密算法的公钥,所述嵌入式系统的开发者保存非对称算法公钥加密算法的私钥。
进一步的,还包括:将嵌入式系统的程序划分为引导程序和应用程序,所述应用程序用于完成所述嵌入式系统的功能,所述引导程序用于判断所述应用程序是否需要升级。
进一步的,还包括:所述引导程序设置在闪存的开头,以便于嵌入式系统上电后,首先启动引导程序。
本发明提供的一种防止代码被恶意篡改的装置,包括:
判断单元,用于嵌入式系统上电后,执行闪存中的引导程序,判断应用程序是否需要升级;
执行单元,用于当应用程序不需要升级时,直接跳转到应用程序中执行,当应用程序需要升级时,下载服务器上存储的加密后的升级的应用程序,进行应用程序升级,其中,所述加密后的应用程序是利用与所述引导程序的解密算法对应的非对称算法公钥加密算法加密升级所获得的,所述嵌入式系统保存非对称算法公钥加密算法的公钥,所述嵌入式系统的开发者保存非对称算法公钥加密算法的私钥。
进一步的,还包括:划分单元,用于将嵌入式系统的程序划分为引导程序和应用程序,所述应用程序用于完成所述嵌入式系统的功能,所述引导程 序用于判断所述应用程序是否需要升级。
进一步的,还包括:设置单元,用于所述引导程序设置在闪存的开头,以便于嵌入式系统上电后,首先启动引导程序。
借由上述方案,本发明至少具有以下优点:
本发明升级的应用程序是被非对称算法RSA公钥加密算法来加密,由于此算法的秘钥分为公钥和私钥,即公钥用来解密,存于嵌入式系统中,私钥用来加密,只保存在开发者手中,可以保证不会有人能够复制加密应用程序的过程。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,并可依照说明书的内容予以实施,以下以本发明的较佳实施例并配合附图详细说明如后。
附图说明
图1是本发明的EEPROM芯片编程器的结构示意图
图2是本发明防止代码被恶意篡改的方法的流程示意图;
图3是本发明的应用程序升级的流程的示意图;
图4是本发明防止代码被恶意篡改的装置结构示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
在本发明实施例的例子中,EEPROM芯片编程器,本实施例中使用STM32系列芯片作为主控芯片,STM32芯片是一种在嵌入式系统中使用非常广泛的单片机系列,并且此芯片支持在线编程。假设系统设计为可以进行在线升级,以便支持更多的EEPROM芯片种类。
RSA公钥加密算法是一种非对称算法,RSA是一种公开密钥密码体制,所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知解密密钥推导出加密密钥在计算上是不可行”的密码体制。
请参阅图1,图1揭示了本发明实施例采用的是EEPROM芯片编程器系统的结构图,此系统包含以下几个模块:模块1:EEPROM芯片转接插座,这个模块 主要是作为EEPROM芯片与系统接口之间的转换;模块2:显示模块,这个模块主要作用是提供一个用户接口,使得用户在使用该系统时可以自主选择EEPROM芯片型号;模块3:网络模块,这个模块的作用是在编程EEPROM芯片时直接通过网络连接开发者的网站,在线判断连接的主机是否有编程此款EEPROM芯片的授权;模块4:主控模块,这个模块是整个系统的核心,主要控制用户接口,授权的判断,对EEPROM芯片的编程等。
参见图2所示,一种防止代码被恶意篡改的方法,此方法包含如下步骤:包括:
步骤201:将嵌入式系统划分为引导(boot)程序及应用程序两部分,应用程序主要用于完成整个嵌入式系统的功能,如编程EEPROM芯片,验证授权和显示芯片列表等。嵌入式系统上电时首先执行boot程序,boot程序判断是否需要升级系统软件,如果不需要升级系统软件,则直接跳转到应用程序执行,如果需要升级系统软件,则进入升级程序。
步骤202:编译原始嵌入式系统,得到可执行的二进制代码,将boot程序和应用程序分别烧写入主控芯片的flash中,此时系统可以正常运行,可以完成所有功能。具体的:将引导程序设置在闪存(flash)的开头处,而应用程序设置在闪存的其他位置处,该位置与boot程序的位置不同,这样嵌入式系统上电后,将首先执行boot程序。
步骤203:如果嵌入式系统的维护者发现一种原嵌入式系统不能编程的EEPROM芯片,并且只通过修改嵌入式系统就可以增加对这种EEPROM芯片的支持,则需要进行一次软件升级,以支持更多的EEPROM芯片类型,增加嵌入式系统的市场竞争力。请参阅图3,嵌入式系统升级具体过程如下:
步骤2031、对嵌入式系统进行升级,修改原应用程序,增加对目前不能编程的EEPROM芯片的读写操作支持,并测试新的应用程序的健壮性。
步骤2032、利用与boot程序的解密算法相对应的非对称算法公钥加密算法的加密应用程序对上述升级的应用程序进行加密。该所述嵌入式系统保存非对称算法公钥加密算法的公钥,所述嵌入式系统的开发者保存非对称算法公钥加密算法的私钥。由于加密应用程序的私钥只有系统的开发者才能掌握, 嵌入式系统中并没有这个私钥,所以即使有人通过一定的技术手段完全分析了整个嵌入式系统,也只能得到我们的应用程序原始代码,但是无法获得上述加密算法,因此无法修改我们的代码。
步骤2033、将加密后的升级后的应用程序放在网络服务器,以便于嵌入式系统进行下载。
步骤2034、嵌入式系统上电检测到有可以升级的应用程序新版本后进入boot程序的升级流程,下载上述存储在网络服务器上的加密后的升级的应用程序。
步骤2035、boot程序解密上述下载的加密的升级后的应用程序,将解密的应用程序代码放入RAM中,boot程序将RAM中的解密的应用程序代码烧写入主控芯片的flash中。
这样就完成了应用程序的升级,并且该升级的应用程序是被非对称算法RSA公钥加密算法来加密,由于此算法的秘钥分为公钥和私钥,即公钥用来解密,存于嵌入式系统中,私钥用来加密,只保存在开发者手中,可以保证不会有人能够复制加密应用程序的过程。
如图4所示,本发明提供了一种防止嵌入式系统被恶意在线调试的装置,包括:
判断单元41,用于嵌入式系统上电后,执行闪存中的引导程序,判断应用程序是否需要升级;
执行单元42,用于当应用程序不需要升级时,直接跳转到应用程序中执行,当应用程序需要升级时,下载服务器上存储的加密后的升级的应用程序,进行应用程序升级,其中,所述加密后的应用程序是利用与所述引导程序的解密算法对应的非对称算法公钥加密算法加密升级所获得的,所述嵌入式系统保存非对称算法公钥加密算法的公钥,所述嵌入式系统的开发者保存非对称算法公钥加密算法的私钥。
进一步的,如图4所示,还包括:划分单元43,用于将嵌入式系统的程序划分为引导程序和应用程序,所述应用程序用于完成所述嵌入式系统的功能,所述引导程序用于判断所述应用程序是否需要升级。
进一步的,如图4所示,还包括:设置单元44,用于所述引导程序设置在闪存的开头,以便于嵌入式系统上电后,首先启动引导程序。
本发明通过RSA算法对代码的加密保护,可以有效的避免代码被恶意篡改,从而实现保护自身系统的功能。使用本发明保护的系统,即使有人获取到我们系统的代码及处理方法,也无法修改,无法跳过我们设置的验证过程。所述保护软件的方法包括升级时从网络到嵌入式系统传输的应用程序的代码是加密的,并且加密使用的算法是非对称算法,使得应用程序的完整性不会被破坏。
以上所述仅是本发明的优选实施方式,并不用于限制本发明,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (6)
1.一种防止代码被恶意篡改的方法,其特征在于,包括:
嵌入式系统上电后,执行闪存中的引导程序,判断应用程序是否需要升级;
当应用程序不需要升级时,直接跳转到应用程序中执行,当应用程序需要升级时,下载服务器上存储的加密后的升级的应用程序,进行应用程序升级,其中,所述加密后的应用程序是利用与所述引导程序的解密算法对应的非对称算法公钥加密算法加密升级所获得的,所述嵌入式系统保存非对称算法公钥加密算法的公钥,所述嵌入式系统的开发者保存非对称算法公钥加密算法的私钥。
2.如权利要求1的一种防止代码被恶意篡改的方法,其特征在于,还包括:
将嵌入式系统的程序划分为引导程序和应用程序,所述应用程序用于完成所述嵌入式系统的功能,所述引导程序用于判断所述应用程序是否需要升级。
3.如权利要求2的一种防止代码被恶意篡改的方法,其特征在于,还包括:
所述引导程序设置在闪存的开头,以便于嵌入式系统上电后,首先启动引导程序。
4.一种防止代码被恶意篡改的装置,其特征在于,包括:
判断单元,用于嵌入式系统上电后,执行闪存中的引导程序,判断应用程序是否需要升级;
执行单元,用于当应用程序不需要升级时,直接跳转到应用程序中执行,当应用程序需要升级时,下载服务器上存储的加密后的升级的应用程序,进行应用程序升级,其中,所述加密后的应用程序是利用与所述引导程序的解密算法对应的非对称算法公钥加密算法加密升级所获得的,所述嵌入式系统保存非对称算法公钥加密算法的公钥,所述嵌入式系统的开发者保存非对称算法公钥加密算法的私钥。
5.如权利要求4的一种防止代码被恶意篡改的装置,其特征在于,还包括:
划分单元,用于将嵌入式系统的程序划分为引导程序和应用程序,所述应用程序用于完成所述嵌入式系统的功能,所述引导程序用于判断所述应用程序是否需要升级。
6.如权利要求4的一种防止代码被恶意篡改的装置,其特征在于,还包括:
设置单元,用于所述引导程序设置在闪存的开头,以便于嵌入式系统上电后,首先启动引导程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410842072.0A CN104486355A (zh) | 2014-12-30 | 2014-12-30 | 防止代码被恶意篡改的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410842072.0A CN104486355A (zh) | 2014-12-30 | 2014-12-30 | 防止代码被恶意篡改的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104486355A true CN104486355A (zh) | 2015-04-01 |
Family
ID=52760859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410842072.0A Pending CN104486355A (zh) | 2014-12-30 | 2014-12-30 | 防止代码被恶意篡改的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104486355A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105159717A (zh) * | 2015-09-02 | 2015-12-16 | 株洲南车时代电气股份有限公司 | 安全计算机系统、插件及其软件换装方法 |
CN105955764A (zh) * | 2016-04-22 | 2016-09-21 | 佛山市南海区欧谱曼迪科技有限责任公司 | 一种stm32单片机iap串口程序烧录的改进方法 |
CN106411504A (zh) * | 2015-07-31 | 2017-02-15 | 腾讯科技(深圳)有限公司 | 数据加密系统、方法及装置 |
WO2017075852A1 (zh) * | 2015-11-05 | 2017-05-11 | 邦彦技术股份有限公司 | 一种保护mcu工作程序的方法及系统 |
CN107784226A (zh) * | 2016-08-25 | 2018-03-09 | 大连楼兰科技股份有限公司 | 利用非对称加密算法防止代码被恶意篡改的方法及系统 |
CN108256346A (zh) * | 2016-12-28 | 2018-07-06 | 中移(杭州)信息技术有限公司 | 关键数据的保护方法、加密保护装置及嵌入式系统装置 |
CN109800007A (zh) * | 2018-12-28 | 2019-05-24 | 航天信息股份有限公司 | Dsp芯片在线升级方法以及装置 |
CN111026419A (zh) * | 2019-11-08 | 2020-04-17 | 深圳市有方科技股份有限公司 | 一种单片机的应用程序升级方法、装置及系统 |
TWI691896B (zh) * | 2018-12-28 | 2020-04-21 | 新唐科技股份有限公司 | 微控制器、微控制器解密方法和解密系統 |
CN111191196A (zh) * | 2020-01-02 | 2020-05-22 | 日立楼宇技术(广州)有限公司 | 嵌入式程序运行方法、装置、计算机设备及存储介质 |
CN111868724A (zh) * | 2017-12-12 | 2020-10-30 | 约翰·阿尔梅达 | 病毒免疫计算机系统和方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101217363A (zh) * | 2007-12-28 | 2008-07-09 | 北京深思洛克数据保护中心 | 一种通过共享密钥实现远程升级的方法 |
US20080301440A1 (en) * | 2007-05-29 | 2008-12-04 | Plouffe Jr Wilfred E | Updateable Secure Kernel Extensions |
CN101419557A (zh) * | 2008-07-29 | 2009-04-29 | 航天信息股份有限公司 | 一种程序下载控制方法 |
CN101950345A (zh) * | 2010-09-29 | 2011-01-19 | 山东大学 | 一种基于硬件解密的高可靠终端设备及其工作方法 |
CN102082784A (zh) * | 2010-11-11 | 2011-06-01 | 广东欧珀电子工业有限公司 | 一种软件在线升级方法 |
CN102280133A (zh) * | 2011-08-16 | 2011-12-14 | 杭州晟元芯片技术有限公司 | 一种抗截获的代码加密烧录方式 |
-
2014
- 2014-12-30 CN CN201410842072.0A patent/CN104486355A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080301440A1 (en) * | 2007-05-29 | 2008-12-04 | Plouffe Jr Wilfred E | Updateable Secure Kernel Extensions |
CN101217363A (zh) * | 2007-12-28 | 2008-07-09 | 北京深思洛克数据保护中心 | 一种通过共享密钥实现远程升级的方法 |
CN101419557A (zh) * | 2008-07-29 | 2009-04-29 | 航天信息股份有限公司 | 一种程序下载控制方法 |
CN101950345A (zh) * | 2010-09-29 | 2011-01-19 | 山东大学 | 一种基于硬件解密的高可靠终端设备及其工作方法 |
CN102082784A (zh) * | 2010-11-11 | 2011-06-01 | 广东欧珀电子工业有限公司 | 一种软件在线升级方法 |
CN102280133A (zh) * | 2011-08-16 | 2011-12-14 | 杭州晟元芯片技术有限公司 | 一种抗截获的代码加密烧录方式 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106411504A (zh) * | 2015-07-31 | 2017-02-15 | 腾讯科技(深圳)有限公司 | 数据加密系统、方法及装置 |
CN105159717A (zh) * | 2015-09-02 | 2015-12-16 | 株洲南车时代电气股份有限公司 | 安全计算机系统、插件及其软件换装方法 |
WO2017075852A1 (zh) * | 2015-11-05 | 2017-05-11 | 邦彦技术股份有限公司 | 一种保护mcu工作程序的方法及系统 |
CN105955764A (zh) * | 2016-04-22 | 2016-09-21 | 佛山市南海区欧谱曼迪科技有限责任公司 | 一种stm32单片机iap串口程序烧录的改进方法 |
CN107784226A (zh) * | 2016-08-25 | 2018-03-09 | 大连楼兰科技股份有限公司 | 利用非对称加密算法防止代码被恶意篡改的方法及系统 |
CN108256346A (zh) * | 2016-12-28 | 2018-07-06 | 中移(杭州)信息技术有限公司 | 关键数据的保护方法、加密保护装置及嵌入式系统装置 |
CN111868724A (zh) * | 2017-12-12 | 2020-10-30 | 约翰·阿尔梅达 | 病毒免疫计算机系统和方法 |
CN109800007A (zh) * | 2018-12-28 | 2019-05-24 | 航天信息股份有限公司 | Dsp芯片在线升级方法以及装置 |
TWI691896B (zh) * | 2018-12-28 | 2020-04-21 | 新唐科技股份有限公司 | 微控制器、微控制器解密方法和解密系統 |
CN111026419A (zh) * | 2019-11-08 | 2020-04-17 | 深圳市有方科技股份有限公司 | 一种单片机的应用程序升级方法、装置及系统 |
CN111191196A (zh) * | 2020-01-02 | 2020-05-22 | 日立楼宇技术(广州)有限公司 | 嵌入式程序运行方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104486355A (zh) | 防止代码被恶意篡改的方法和装置 | |
CN105683990B (zh) | 用于保护动态库的方法和装置 | |
EP2879327A1 (en) | Encryption and decryption processing method, apparatus and device | |
CN106384052A (zh) | 一种实现BMC U‑boot可信启动控制的方法 | |
CN107003866A (zh) | 来自加密模板的加密虚拟机的安全创建 | |
EP3410667A1 (en) | Method for preventing access data from being tampered, mobile terminal, device, and readable storage medium | |
CN109284585B (zh) | 一种脚本加密方法、脚本解密运行方法和相关装置 | |
CN103257872A (zh) | 一种计算机的嵌入式控制系统及其更新方法 | |
CN108399319B (zh) | 源代码保护方法、应用服务器及计算机可读存储介质 | |
CN101373440B (zh) | 一种固件升级数据处理方法和装置 | |
KR20150143750A (ko) | 보안 배터리 인증 | |
CN106056017B (zh) | 智能卡cos加密下载系统 | |
EP3264265A1 (en) | Application protection method, server and terminal | |
KR20110093468A (ko) | 사용자 단말 장치, 서버 및 그 제어 방법 | |
CN107784226A (zh) | 利用非对称加密算法防止代码被恶意篡改的方法及系统 | |
CN104951701A (zh) | 一种基于usb控制器的终端设备操作系统引导的方法 | |
KR101472346B1 (ko) | 암호화된 웹 어플리케이션 제공 방법, 이를 지원하는 단말, 및 이를 위한 기록매체 | |
CN105279441A (zh) | 用于对数据进行加密和解密的方法和架构 | |
CN113890728A (zh) | 基于fpga加密卡的密钥处理方法、系统、设备及介质 | |
KR20210097379A (ko) | 보안 장치, 전자 장치, 보안 부트 관리 시스템, 부트 이미지 생성 방법 및 부트 체인 실행 방법 | |
CN104915240A (zh) | 一种atm设备软件升级的方法 | |
CN102521541B (zh) | 加密狗装置及其软件保护方法 | |
US10262161B1 (en) | Secure execution and transformation techniques for computing executables | |
JP2013149294A (ja) | 無線端末装置およびシステム保護方法 | |
JP2008257715A (ja) | 無線端末装置およびシステム保護方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150401 |