CN109684789A - 嵌入式产品中软件安全保护的方法、装置及计算机设备 - Google Patents
嵌入式产品中软件安全保护的方法、装置及计算机设备 Download PDFInfo
- Publication number
- CN109684789A CN109684789A CN201811378840.6A CN201811378840A CN109684789A CN 109684789 A CN109684789 A CN 109684789A CN 201811378840 A CN201811378840 A CN 201811378840A CN 109684789 A CN109684789 A CN 109684789A
- Authority
- CN
- China
- Prior art keywords
- embedded
- hardware identifier
- chip
- written
- product
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000003860 storage Methods 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012795 verification Methods 0.000 claims description 13
- 238000012937 correction Methods 0.000 claims description 3
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 230000017105 transposition Effects 0.000 claims description 3
- 238000012360 testing method Methods 0.000 claims 1
- 230000001960 triggered effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005498 polishing Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- 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
- G06F21/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及嵌入式产品中软件安全保护的方法、装置、计算机设备和存储介质。所述方法包括:运行嵌入式产品中的系统驱动程序;通过所述系统驱动程序获取所述嵌入式产品的硬件标识;所述硬件标识用于唯一标识所述嵌入式产品;所述硬件标识包括嵌入式芯片和/或所述嵌入式芯片之外的硬件功能模块;根据所述硬件标识生成加密参数,将所述加密参数发送给上位机的程序升级工具,以触发所述程序升级工具采用所述加密参数对待写入所述嵌入式芯片的系统功能程序进行加密,以及将加密后的系统功能程序传递给所述系统驱动程序,由所述系统驱动程序写入所述嵌入式芯片。本发明能够有效防止未经授权访问或拷贝嵌入式芯片中的系统功能程序代码。
Description
技术领域
本发明涉及嵌入式系统安全技术领域,特别是涉及嵌入式产品中软件安全保护的方法、装置、计算机设备和存储介质。
背景技术
对于嵌入式芯片:ARM、DSP、单片机等,若写入芯片内的嵌入式软件(以下也称作“嵌入式软件”)不加密,极易被获取并破解,导致核心设计和关键技术被窃取,威胁软件开发公司的合法权益。
为了防止未经授权访问或拷贝嵌入式芯片内的软件,一般针对包含有嵌入式芯片的嵌入式产品采用的安全保护方法包括:芯片打磨,隐藏芯片的型号信息;这种加密方式过于简单,对熟悉芯片的解密人员不起作用;物理防拷贝,采用掩膜ROM存储嵌入式软件代码,该加密方式的价格比较高,且无法支持后续软件代码升级;使用加密芯片实施加密,该方式需要增加额外的成本,加密较为复杂,不利于软件升级;通过嵌入式芯片的器件唯一识别号作为运算密码对嵌入式软件进行加密,这种加密方式安全性较低。
可见,传统的嵌入式产品中软件安全保护的方法存在无法兼顾安全性和实施成本的问题。
发明内容
基于此,有必要针对传统的嵌入式产品中软件安全保护的方法无法兼顾安全性和实施成本的问题,提供一种嵌入式产品中软件安全保护的方法、装置、计算机设备和存储介质。
一方面,本发明实施例提供一种嵌入式产品中软件安全保护的方法,包括:
运行嵌入式产品中的系统驱动程序;
通过所述系统驱动程序获取所述嵌入式产品的硬件标识;所述硬件标识用于唯一标识所述嵌入式产品;所述硬件标识包括嵌入式芯片和/或所述嵌入式芯片之外的硬件功能模块;
根据所述硬件标识生成加密参数,将所述加密参数发送给上位机的程序升级工具,以触发所述程序升级工具采用所述加密参数对待写入所述嵌入式芯片的系统功能程序进行加密,以及将加密后的系统功能程序传递给所述系统驱动程序,由所述系统驱动程序写入所述嵌入式芯片。
在一实施例中,所述硬件标识为:嵌入式芯片的编号、嵌入式产品中除所述嵌入式芯片之外的硬件功能模块的编号、写入所述嵌入式产品的存储装置中不允许外部读取和改写的编号中的一种或者多种的组合。
在一实施例中,所述采用所述加密参数对待写入所述嵌入式芯片的系统功能程序进行加密,包括:
在待写入所述嵌入式芯片的系统功能程序中添加校验数据,所述校验数据根据所述加密参数得到。
在一实施例中,还包括:使用所述加密参数对系统功能程序中设定数据区域的字节做换位和异或运算,得到校验数据。
在一实施例中,所述根据所述硬件标识生成加密参数,包括:
对所述硬件标识进行CRC32运算,得到第一部分的32位数;
对所述硬件标识进行求和运算,得到第二部分的32位数;
根据所述第一部分的32位数以及所述第二部分的32位数,得到64位的加密参数。
在一实施例中,将加密后的系统功能程序传递给所述系统驱动程序,由所述系统驱动程序写入所述嵌入式芯片之后,还包括:
在所述嵌入式芯片重新启动时,运行所述系统驱动程序;
通过所述系统驱动程序获取所述嵌入式芯片中已写入的系统功能程序;
通过所述系统驱动程序获取所述嵌入式产品的硬件标识,采用获取到的硬件标识对所述系统功能程序进行安全校验;
若所述安全校验通过,运行所述系统功能程序。
又一方面,本发明实施例提供一种嵌入式产品中软件安全保护的装置,包括:
驱动程序启动模块,用于运行嵌入式产品中的系统驱动程序;
标识获取模块,用于通过所述系统驱动程序获取所述嵌入式产品的硬件标识;所述硬件标识用于唯一标识所述嵌入式产品;所述硬件标识包括嵌入式芯片和/或所述嵌入式芯片之外的硬件功能模块;
加密模块,用于根据所述硬件标识生成加密参数,将所述加密参数发送给上位机的程序升级工具,以触发所述程序升级工具采用所述加密参数对待写入所述嵌入式芯片的系统功能程序进行加密,以及将加密后的系统功能程序传递给所述系统驱动程序,由所述系统驱动程序写入所述嵌入式芯片。
在一实施例中,还包括:
重启模块,用于在所述嵌入式芯片重新启动时,运行所述系统驱动程序;
程序获取模块,用于通过所述系统驱动程序获取所述嵌入式芯片中已写入的系统功能程序;
校验模块,用于通过所述系统驱动程序获取所述嵌入式产品的硬件标识,采用获取到的硬件标识对所述系统功能程序进行安全校验;
程序运行模块,用于若所述安全校验通过,运行所述系统功能程序。
再一方面,本发明实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述嵌入式产品中软件安全保护的方法。
再一方面,本发明实施例提供一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述嵌入式产品中软件安全保护的方法。
上述技术方案中的一个技术方案具有如下优点或有益效果:运行嵌入式产品中的系统驱动程序;通过系统驱动程序获取所述嵌入式产品的硬件标识;所述硬件标识用于唯一标识所述嵌入式产品;所述硬件标识包括嵌入式芯片和/或所述嵌入式芯片之外的硬件功能模块;根据所述硬件标识生成加密参数,将所述加密参数发送给上位机的程序升级工具,以触发所述程序升级工具采用所述加密参数对待写入所述嵌入式芯片的系统功能程序进行加密,以及将加密后的系统功能程序传递给所述系统驱动程序,由所述系统驱动程序写入所述嵌入式芯片。由此能够有效防止未经授权访问或拷贝嵌入式芯片中的系统功能程序代码,并且实现成本低,安全性高。
附图说明
图1为一个实施例中嵌入式产品中软件安全保护的方法的应用环境图;
图2为一实施例的嵌入式产品中软件安全保护的方法的示意性流程图;
图3为另一实施例的嵌入式产品中软件安全保护的方法的示意性流程图;
图4为一实施例的嵌入式产品中软件安全保护的装置的示意性结构图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请提供的嵌入式产品中软件安全保护的方法,可以应用于如图1所示的应用环境中。针对嵌入式产品(即是包含有嵌入式芯片(处理器)的产品),将嵌入式芯片内的程序分为两部分:负责引导加载、校验等功能的bootloader程序(即系统驱动程序),以及系统功能程序。本发明实施例中,嵌入式产品生产阶段,使用芯片烧录设备将Bootloader程序写入芯片(裸片),所有该嵌入式产品的bootloader程序都是一样的。
嵌入式产品产生出来后,通过上位机的程序升级工具与嵌入式芯片的系统驱动程序通讯,通过程序升级工具将系统功能程序传递给系统驱动程序,再由系统驱动程序将系统功能程序写入嵌入式芯片。嵌入式芯片再次启动后,先运行系统驱动程序,系统驱动程序对系统功能程序进行校验。如检验通过,则执行系统功能程序,使嵌入式系统正常工作;否则,让嵌入式系统无法正常运行。
嵌入式产品一般都有内部ROM供用户存放系统功能程序,有的还会提供EEPROM存储器。嵌入式产品系统运行时,嵌入式芯片直接读取ROM中的系统功能程序并执行,或先将ROM保存的系统功能程序加载到内存(RAM)中再执行。
在一个实施例中,如图2所示,提供了一种嵌入式产品中软件安全保护的方法,包括以下步骤:
S110,运行嵌入式产品中的系统驱动程序。
在此之前,在嵌入式产品生产阶段,已将系统驱动程序写入嵌入式芯片。所述系统驱动程序用于加载并运行嵌入式芯片中的系统功能程序。
S120,通过所述系统驱动程序获取所述嵌入式产品的硬件标识;所述硬件标识用于唯一标识所述嵌入式产品;所述硬件标识包括嵌入式芯片和/或所述嵌入式芯片之外的硬件功能模块。
本发明实施例中,嵌入式产品的硬件标识例如:嵌入式芯片自身编号信息、嵌入式产品中除所述嵌入式芯片之外的硬件功能模块1~n的编号信息(所述硬件功能模块例如GPRS通讯模块,独立的存储器件等具有硬件标识的器件或部件)、或其他由外部写入但受保护不允许外部读取和改写的存储装置保存的编号信息。
在一些实施例中,嵌入式产品的硬件标识还可以是上述几种编号信息中两种以上的组合;较之于采用嵌入式芯片识别号作为运算密码对ROM中所存储的数据进行加密的方式,安全性性更高,不容易被破解。
S130,根据所述硬件标识生成加密参数,将所述加密参数发送给上位机的程序升级工具,以触发所述程序升级工具采用所述加密参数对待写入所述嵌入式芯片的系统功能程序进行加密,以及将加密后的系统功能程序传递给所述系统驱动程序,由所述系统驱动程序写入所述嵌入式芯片。
本发明实施例中,即采用所述硬件标识,对待写入所述嵌入式芯片的系统功能程序的程序代码进行加密处理。其中,加密处理可以采用现有的多种数据加密方式。
至此,由于写入嵌入式芯片的系统功能程序已经被经过加密处理,因此该系统功能程序无法被直接拷贝并执行,提高了嵌入式产品中的系统功能程序的安全性。并且,无需增加外部加密芯片,有利于控制成本,此外,通过上述方法得到的嵌入式产品,其中的系统功能程序也不容易被破解,能够有效防止未经授权访问或拷贝嵌入式芯片中的系统功能程序代码。
根据本发明一实施例,根据所述硬件标识生成设定长度的加密参数;采用所述设定长度的加密参数对待写入所述嵌入式芯片的系统功能程序进行加密。
进一步地,根据本发明一实施例,对系统功能程序加密的方式可以为:在待写入所述嵌入式芯片的系统功能程序中添加校验数据,所述校验数据根据所述加密参数得到。例如,可以使用所述加密参数对系统功能程序中设定数据区域的字节做换位和异或运算,得到校验数据。
在一实施例中,根据所述硬件标识生成64位的加密参数,生成方式例如:对所述硬件标识进行CRC32运算,得到第一部分的32位数;对所述硬件标识进行求和运算,得到第二部分的32位数;根据所述第一部分的32位数以及所述第二部分的32位数,得到64位的加密参数。
基于上述实施例,将加密后的系统功能程序传递给所述系统驱动程序,由所述系统驱动程序写入所述嵌入式芯片之后,还包括对系统功能程序进行运行的步骤,参考图3所示,具体步骤包括:
在所述嵌入式芯片重新启动时,运行所述系统驱动程序。
通过所述系统驱动程序获取所述嵌入式芯片中已写入的系统功能程序。
通过所述系统驱动程序获取所述嵌入式产品的硬件标识,采用获取到的硬件标识对所述系统功能程序进行安全校验。本发明实施例中,系统驱动程序对系统功能程序进行的安全校验运算,跟加密处理的运算刚好相反,为还原操作。
若所述安全校验通过,运行所述系统功能程序。若所述安全校验未通过,进入死循环,以禁止运行所述系统功能程序。
根据本发明实施例的嵌入式软件安全保护方法,在嵌入式产品产生出来后,通过上位机的程序升级工具与嵌入式芯片通讯,系统驱动程序将本嵌入式产品中可以作为唯一性硬件标识信息的任意标识信息,作为嵌入式产品的硬件标识,进行运算后,生成加密参数发送给程序升级工具;程序升级工具将加密参数作为参数对待写入嵌入式芯片的系统功能程序进行加密,加密过程是在系统功能程序中增加校验数据,然后将加密后的系统功能程序写入芯片。嵌入式芯片再次启动后,先运行系统驱动程序,系统驱动程序将唯一性硬件标识生成的64位加密参数来校验系统功能程序。如检验通过则执行系统功能程序,使嵌入式系统正常工作;否则跳入死循环,让嵌入式系统无法正常运行。
应该理解的是,对于前述的各方法实施例,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,方法实施例的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
基于与上述实施例中的嵌入式产品中软件安全保护的方法相同的思想,本文还提供嵌入式产品中软件安全保护的装置。
在一个实施例中,如图4所示,本实施例的嵌入式产品中软件安全保护的装置包括:
驱动程序启动模块401,用于运行嵌入式产品中的系统驱动程序;
标识获取模块402,用于通过所述系统驱动程序获取所述嵌入式产品的硬件标识;所述硬件标识用于唯一标识所述嵌入式产品;所述硬件标识包括嵌入式芯片和/或所述嵌入式芯片之外的硬件功能模块;
加密模块403,用于根据所述硬件标识生成加密参数,将所述加密参数发送给上位机的程序升级工具,以触发所述程序升级工具采用所述加密参数对待写入所述嵌入式芯片的系统功能程序进行加密,以及将加密后的系统功能程序传递给所述系统驱动程序,由所述系统驱动程序写入所述嵌入式芯片。
根据本发明一实施例,所述装置还包括:
重启模块,用于在所述嵌入式芯片重新启动时,运行所述系统驱动程序;
程序获取模块,用于通过所述系统驱动程序获取所述嵌入式芯片中已写入的系统功能程序;
校验模块,用于通过所述系统驱动程序获取所述嵌入式产品的硬件标识,采用获取到的硬件标识对所述系统功能程序进行安全校验;
程序运行模块,用于若所述安全校验通过,运行所述系统功能程序。
关于嵌入式产品中软件安全保护的装置的具体限定可以参见上文中对于嵌入式产品中软件安全保护的方法的限定,在此不再赘述。上述嵌入式产品中软件安全保护的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
此外,上述示例的嵌入式产品中软件安全保护的装置的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将所述嵌入式产品中软件安全保护的装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是嵌入式芯片中的控制设备,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储嵌入式产品中软件安全保护的装置的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种嵌入式产品中软件安全保护的方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
运行嵌入式产品中的系统驱动程序;
通过所述系统驱动程序获取所述嵌入式产品的硬件标识;所述硬件标识用于唯一标识所述嵌入式产品;所述硬件标识包括嵌入式芯片和/或所述嵌入式芯片之外的硬件功能模块;
根据所述硬件标识生成加密参数,将所述加密参数发送给上位机的程序升级工具,以触发所述程序升级工具采用所述加密参数对待写入所述嵌入式芯片的系统功能程序进行加密,以及将加密后的系统功能程序传递给所述系统驱动程序,由所述系统驱动程序写入所述嵌入式芯片。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在所述嵌入式芯片重新启动时,运行所述系统驱动程序;
通过所述系统驱动程序获取所述嵌入式芯片中已写入的系统功能程序;
通过所述系统驱动程序获取所述嵌入式产品的硬件标识,采用获取到的硬件标识对所述系统功能程序进行安全校验;
若所述安全校验通过,运行所述系统功能程序。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
运行嵌入式产品中的系统驱动程序;
通过所述系统驱动程序获取所述嵌入式产品的硬件标识;所述硬件标识用于唯一标识所述嵌入式产品;所述硬件标识包括嵌入式芯片和/或所述嵌入式芯片之外的硬件功能模块;
根据所述硬件标识生成加密参数,将所述加密参数发送给上位机的程序升级工具,以触发所述程序升级工具采用所述加密参数对待写入所述嵌入式芯片的系统功能程序进行加密,以及将加密后的系统功能程序传递给所述系统驱动程序,由所述系统驱动程序写入所述嵌入式芯片。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在所述嵌入式芯片重新启动时,运行所述系统驱动程序;
通过所述系统驱动程序获取所述嵌入式芯片中已写入的系统功能程序;
通过所述系统驱动程序获取所述嵌入式产品的硬件标识,采用获取到的硬件标识对所述系统功能程序进行安全校验;
若所述安全校验通过,运行所述系统功能程序。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
本文实施例的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或(模块)单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
在本文中提及的“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序。应该理解“第一\第二”区分的对象在适当情况下可以互换,以使这里描述的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种嵌入式产品中软件安全保护的方法,其特征在于,包括:
运行嵌入式产品中的系统驱动程序;
通过所述系统驱动程序获取所述嵌入式产品的硬件标识;所述硬件标识用于唯一标识所述嵌入式产品;所述硬件标识包括嵌入式芯片和/或所述嵌入式芯片之外的硬件功能模块;
根据所述硬件标识生成加密参数,将所述加密参数发送给上位机的程序升级工具,以触发所述程序升级工具采用所述加密参数对待写入所述嵌入式芯片的系统功能程序进行加密,以及将加密后的系统功能程序传递给所述系统驱动程序,由所述系统驱动程序写入所述嵌入式芯片。
2.根据权利要求1所述的方法,其特征在于,所述硬件标识为:嵌入式芯片的编号、嵌入式产品中除所述嵌入式芯片之外的硬件功能模块的编号、写入所述嵌入式产品的存储装置中不允许外部读取和改写的编号中的一种或者多种的组合。
3.根据权利要求1所述的方法,其特征在于,所述采用所述加密参数对待写入所述嵌入式芯片的系统功能程序进行加密,包括:
在待写入所述嵌入式芯片的系统功能程序中添加校验数据,所述校验数据根据所述加密参数得到。
4.根据权利要求3所述的方法,其特征在于,还包括:
使用所述加密参数对系统功能程序中设定数据区域的字节做换位和异或运算,得到校验数据。
5.根据权利要求1所述的方法,其特征在于,所述根据所述硬件标识生成加密参数,包括:
对所述硬件标识进行CRC32运算,得到第一部分的32位数;
对所述硬件标识进行求和运算,得到第二部分的32位数;
根据所述第一部分的32位数以及所述第二部分的32位数,得到64位的加密参数。
6.根据权利要求1至5任一项所述的方法,其特征在于,将加密后的系统功能程序传递给所述系统驱动程序,由所述系统驱动程序写入所述嵌入式芯片之后,还包括:
在所述嵌入式芯片重新启动时,运行所述系统驱动程序;
通过所述系统驱动程序获取所述嵌入式芯片中已写入的系统功能程序;
通过所述系统驱动程序获取所述嵌入式产品的硬件标识,采用获取到的硬件标识对所述系统功能程序进行安全校验;
若所述安全校验通过,运行所述系统功能程序。
7.一种嵌入式产品中软件安全保护的装置,其特征在于,包括:
驱动程序启动模块,用于运行嵌入式产品中的系统驱动程序;
标识获取模块,用于通过所述系统驱动程序获取所述嵌入式产品的硬件标识;所述硬件标识用于唯一标识所述嵌入式产品;所述硬件标识包括嵌入式芯片和/或所述嵌入式芯片之外的硬件功能模块;
加密模块,用于根据所述硬件标识生成加密参数,将所述加密参数发送给上位机的程序升级工具,以触发所述程序升级工具采用所述加密参数对待写入所述嵌入式芯片的系统功能程序进行加密,以及将加密后的系统功能程序传递给所述系统驱动程序,由所述系统驱动程序写入所述嵌入式芯片。
8.根据权利要求7所述的装置,其特征在于,还包括:
重启模块,用于在所述嵌入式芯片重新启动时,运行所述系统驱动程序;
程序获取模块,用于通过所述系统驱动程序获取所述嵌入式芯片中已写入的系统功能程序;
校验模块,用于通过所述系统驱动程序获取所述嵌入式产品的硬件标识,采用获取到的硬件标识对所述系统功能程序进行安全校验;
程序运行模块,用于若所述安全校验通过,运行所述系统功能程序。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6任一所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1至6任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811378840.6A CN109684789B (zh) | 2018-11-19 | 2018-11-19 | 嵌入式产品中软件安全保护的方法、装置及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811378840.6A CN109684789B (zh) | 2018-11-19 | 2018-11-19 | 嵌入式产品中软件安全保护的方法、装置及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109684789A true CN109684789A (zh) | 2019-04-26 |
CN109684789B CN109684789B (zh) | 2021-03-23 |
Family
ID=66185829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811378840.6A Active CN109684789B (zh) | 2018-11-19 | 2018-11-19 | 嵌入式产品中软件安全保护的方法、装置及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684789B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110909316A (zh) * | 2019-11-14 | 2020-03-24 | 武汉正维电子技术有限公司 | 一种单片机软件的加密保护方法及存储介质 |
CN111191196A (zh) * | 2020-01-02 | 2020-05-22 | 日立楼宇技术(广州)有限公司 | 嵌入式程序运行方法、装置、计算机设备及存储介质 |
CN112948893A (zh) * | 2021-04-20 | 2021-06-11 | 成都启英泰伦科技有限公司 | 一种基于批量硬件烧录的固件加密方法 |
CN114327451A (zh) * | 2021-12-14 | 2022-04-12 | 浙江华章科技有限公司 | 生成传动上位机界面和下位机程序的方法、系统、存储介质以及传动系统 |
CN118171308A (zh) * | 2024-05-16 | 2024-06-11 | 贵州航天控制技术有限公司 | 一种嵌入式程序的加密方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436162A (zh) * | 2007-11-12 | 2009-05-20 | 中国长城计算机深圳股份有限公司 | 一种存储装置多用户管理的实现方法及系统 |
CN102468921A (zh) * | 2010-11-08 | 2012-05-23 | 三星电子株式会社 | 数据处理装置、方法及系统 |
CN103336918A (zh) * | 2013-06-21 | 2013-10-02 | 福建伊时代信息科技股份有限公司 | 电子盘系统授权方法和装置 |
WO2014030168A2 (en) * | 2011-08-05 | 2014-02-27 | Kpit Technologies Ltd. | A system for protection of embedded software codes |
CN105512517A (zh) * | 2015-11-25 | 2016-04-20 | 成都天奥测控技术有限公司 | 一种嵌入式软件加密方法 |
-
2018
- 2018-11-19 CN CN201811378840.6A patent/CN109684789B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436162A (zh) * | 2007-11-12 | 2009-05-20 | 中国长城计算机深圳股份有限公司 | 一种存储装置多用户管理的实现方法及系统 |
CN102468921A (zh) * | 2010-11-08 | 2012-05-23 | 三星电子株式会社 | 数据处理装置、方法及系统 |
WO2014030168A2 (en) * | 2011-08-05 | 2014-02-27 | Kpit Technologies Ltd. | A system for protection of embedded software codes |
CN103336918A (zh) * | 2013-06-21 | 2013-10-02 | 福建伊时代信息科技股份有限公司 | 电子盘系统授权方法和装置 |
CN105512517A (zh) * | 2015-11-25 | 2016-04-20 | 成都天奥测控技术有限公司 | 一种嵌入式软件加密方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110909316A (zh) * | 2019-11-14 | 2020-03-24 | 武汉正维电子技术有限公司 | 一种单片机软件的加密保护方法及存储介质 |
CN110909316B (zh) * | 2019-11-14 | 2023-05-09 | 武汉正维电子技术有限公司 | 一种单片机软件的加密保护方法及存储介质 |
CN111191196A (zh) * | 2020-01-02 | 2020-05-22 | 日立楼宇技术(广州)有限公司 | 嵌入式程序运行方法、装置、计算机设备及存储介质 |
CN112948893A (zh) * | 2021-04-20 | 2021-06-11 | 成都启英泰伦科技有限公司 | 一种基于批量硬件烧录的固件加密方法 |
CN114327451A (zh) * | 2021-12-14 | 2022-04-12 | 浙江华章科技有限公司 | 生成传动上位机界面和下位机程序的方法、系统、存储介质以及传动系统 |
CN114327451B (zh) * | 2021-12-14 | 2024-03-08 | 浙江华章科技有限公司 | 生成传动上位机界面和下位机程序的方法、系统、存储介质以及传动系统 |
CN118171308A (zh) * | 2024-05-16 | 2024-06-11 | 贵州航天控制技术有限公司 | 一种嵌入式程序的加密方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109684789B (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109684789A (zh) | 嵌入式产品中软件安全保护的方法、装置及计算机设备 | |
CN103106372B (zh) | 用于Android系统的轻量级隐私数据加密方法及系统 | |
CN105637800B (zh) | 密钥基础结构 | |
CN101681414B (zh) | 用于保护电子装置中的用户识别模块锁信息的方法及设备 | |
US10460314B2 (en) | Pre-generation of session keys for electronic transactions and devices that pre-generate session keys for electronic transactions | |
CN103580852B (zh) | 安全元件以及初始化安全元件的方法和系统 | |
CN105678192B (zh) | 一种基于智能卡的密钥应用方法及应用装置 | |
CN100578473C (zh) | 嵌入式系统和增加嵌入式系统安全性的方法 | |
CN103946856B (zh) | 加解密处理方法、装置和设备 | |
US20080205651A1 (en) | Secure processor system without need for manufacturer and user to know encryption information of each other | |
US20040255119A1 (en) | Memory device and passcode generator | |
CN106133739A (zh) | 数据到安全元件的非易失性存储器中的加载的安全保护 | |
CN104318286B (zh) | Nfc标签数据的管理方法、管理系统和终端 | |
CN108304698A (zh) | 产品授权使用方法、装置、计算机设备和存储介质 | |
US7716477B2 (en) | Data processing method, program of the same, and device of the same | |
CN106100851B (zh) | 密码管理系统、智能腕表及其密码管理方法 | |
CN101866411B (zh) | 非接触式cpu卡一卡多应用安全认证加密方法及系统 | |
CN102799815B (zh) | 一种安全加载程序库的方法和装置 | |
CN105893837A (zh) | 应用程序安装方法、安全加密芯片及终端 | |
CN109766731A (zh) | 基于固态硬盘的加密数据处理方法、装置和计算机设备 | |
ES2710117T3 (es) | Procedimiento para la programación de un chip de terminal móvil | |
CN106657551A (zh) | 一种防止移动终端解锁的方法及系统 | |
JP2009182970A (ja) | モバイル電話タイプの電気通信端末の保護方法 | |
CN100596058C (zh) | 可信计算平台密钥授权数据管理系统及方法 | |
CN101673248A (zh) | 存储系统、控制器与数据保护方法 |
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 |