CN104966003B - 嵌入式设备加密与验证方法 - Google Patents
嵌入式设备加密与验证方法 Download PDFInfo
- Publication number
- CN104966003B CN104966003B CN201510323773.8A CN201510323773A CN104966003B CN 104966003 B CN104966003 B CN 104966003B CN 201510323773 A CN201510323773 A CN 201510323773A CN 104966003 B CN104966003 B CN 104966003B
- Authority
- CN
- China
- Prior art keywords
- cpu
- encryption
- memory
- password
- embedded device
- 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
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000012795 verification Methods 0.000 title claims abstract description 13
- 230000005611 electricity Effects 0.000 claims abstract description 4
- 230000010354 integration Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000003860 storage Methods 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种嵌入式设备加密与验证方法,包括S101、将驱动代码和核心代码烧录至嵌入式设备;S102、嵌入式设备上电后,嵌入式设备的CPU运行驱动代码;S103、CPU从存储器中读取出存储器的芯片号,并从核心代码中提取出设备版本序列号;S104、CPU通过加密程序将芯片号和设备版本序列号加密形成第一设备密码;S105、CPU从存储器的设备密码区中读取第二设备密码;若读取到的第二设备密码为空,则执行S106,否则执行S107;S106、CPU将芯片号输出至存储器的数据安全区,并终止运行;S107、CPU对第一设备密码和第二设备密码进行一致性验证;若一致,则验证通过,CPU运行核心代码,否则执行S106。本发明不增加额外加密器件,可以避免嵌入式设备的核心代码和硬件被恶意复制和篡改。
Description
技术领域
本发明涉及嵌入式技术领域,尤其涉及一种嵌入式设备加密与验证方法。
背景技术
随着嵌入式设备的广泛应用,其软硬件设计技术直接代表着设备的价值,对嵌入式设备的加密保护显得愈发重要。目前,对于嵌入式的加密方式主要为:在设备中使用保护型EEPROM对软件进行密钥验证加密,即嵌入式***在出厂时将生成的密钥同时写入EEPROM芯片和设备存储器中,每次设备上电后CPU都会读取EEPROM芯片中的密钥与存储器中的密钥进行一致性验证,验证通过则加载核心代码。
上述方式要在设备中额外增加一片加密芯片,增加了生产成本。此外,这种方式的密码验证过程信息可以简单地通过芯片管脚信号监测获取,非法者通过回放验证信息即可完成破解,从而对设备的软件和硬件进行复制。
另外,同一厂家往往会根据市场需求和售价的高低基于同一软硬件平台开发出多个不同功能版本的设备,出于设计复杂度考虑往往采用同一种加密方式,现有的加密方式在密钥验证通过后即加载核心代码,不会验证该核心代码是否已授权在当前版本的设备中运行,这就可能导致不同版本设备之间核心软件的非法移植,不利于厂家的设备版本控制。
发明内容
本发明所要解决的技术问题在于,提供一种嵌入式设备加密与验证方法,本发明在不增加额外加密器件的情况下对嵌入式设备进行加密和验证,避免了嵌入式设备的核心代码和硬件被恶意复制和篡改。
为了解决上述技术问题,本发明提供一种嵌入式设备加密与验证方法,包括:
S101、将驱动代码和核心代码烧录至嵌入式设备;其中,所述驱动代码包含有加密程序和存储器的驱动程序,所述核心代码中含有核心应用程序和适用于本型号设备的设备版本序列号;
S102、嵌入式设备上电后,嵌入式设备的CPU运行所述驱动代码;
S103、所述CPU从所述存储器中读取出所述存储器的芯片号,并从所述核心代码中提取出所述设备版本序列号;
S104、所述CPU通过所述加密程序将所述芯片号和所述设备版本序列号加密形成第一设备密码;
S105、所述CPU从所述存储器的设备密码区中读取第二设备密码;若读取到的第二设备密码为空,则执行S106,否则执行S107;
S106、所述CPU将所述芯片号输出至所述存储器的数据安全区,并终止运行;
S107、所述CPU对所述第一设备密码和所述第二设备密码进行一致性验证;若一致,则验证通过,所述CPU运行所述核心代码,否则执行S106。
进一步的,还包括步骤:
S108、采用计算机从所述存储器的数据安全区中提取所述芯片号;
S109、计算机根据输入的嵌入式设备的设备型号采用加密软件从内部检索到对应的设备版本序列号;
S110、计算机采用所述加密软件将检索到的设备版本序列号和所述芯片号加密形成第二设备密码,并写入至所述存储器的数据安全区中,其中,述加密软件的加密方式和S104的加密方式相同;
S111、重启嵌入式设备,返回执行S102。
进一步的,所述S104包括步骤:
S1041、CPU将读取的芯片号加密;
S1042、CPU将读取的设备版本序列号加密;
S1043、CPU将加密后的芯片号和加密后的设备版本序列号再综合加密生成第一设备密码。
进一步的,所述存储器具体为NAND FLASH。
进一步的,所述芯片号为所述存储器自带的全球唯一芯片ID。
实施本发明,具有如下有益效果:
1、无需额外增加加密芯片,降低生产成本;
2、NAND FLASH芯片ID数据受保护,无法更改,确保了每台设备的设备密码全球唯一,即使复制了全部的软件和硬件也无法正常运行;
3、增加设备版本加密因素,可防止具有相同加密方式的不同版本之间的软硬件非法移植,且设备版本序列号位于核心代码的特定位置,难以从庞大的二进制数据中破解出来;
4、加密方式可由厂家按照自身要求开发,个性化较强,破解难度极大。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的嵌入式设备加密与验证方法的一个实施例的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明提供的嵌入式设备加密与验证方法的一个实施例的流程示意图,如图1所示,包括步骤:
S101、将驱动代码和核心代码烧录至嵌入式设备。
其中,所述驱动代码包含有加密程序和存储器的驱动程序,所述核心代码中含有核心应用程序和适用于本型号设备的设备版本序列号。其中,所述存储器具体为NANDFLASH。
S102、嵌入式设备上电后,嵌入式设备的CPU运行所述驱动代码。
S103、所述CPU从所述存储器中读取出所述存储器的芯片号,并从所述核心代码中提取出所述设备版本序列号。
其中,所述芯片号具体为NAND FLASH自带的全球唯一芯片ID。
S104、所述CPU通过所述加密程序将所述芯片号和所述设备版本序列号加密形成第一设备密码。
具体的,所述S104包括步骤:
S1041、CPU将读取的芯片号加密;
S1042、CPU将读取的设备版本序列号加密;
S1043、CPU将加密后的芯片号和加密后的设备版本序列号再综合加密生成第一设备密码。
S105、所述CPU从所述存储器的设备密码区中读取第二设备密码。
若读取到的第二设备密码为空,则执行S106,否则执行S107;
S106、所述CPU将所述芯片号输出至所述存储器的数据安全区,并终止运行。
S107、所述CPU对所述第一设备密码和所述第二设备密码进行一致性验证。若一致,则验证通过,所述CPU运行所述核心代码,否则执行S106。
嵌入式设备的CPU终止运行后,计算机一侧将进行以下处理步骤:
S108、采用计算机从所述存储器的数据安全区中提取所述芯片号。
S109、计算机根据输入的嵌入式设备的设备型号采用加密软件从内部检索到对应的设备版本序列号。
S110、计算机采用所述加密软件将检索到的设备版本序列号和所述芯片号加密形成第二设备密码,并写入至所述存储器的数据安全区中,其中,所述加密软件的加密方式和S104的加密方式相同。
S111、重启嵌入式设备,返回执行S102。
实施本发明,具有如下有益效果:
1、无需额外增加加密芯片,降低生产成本;
2、NAND FLASH芯片ID数据受保护,无法更改,确保了每台设备的设备密码全球唯一,即使复制了全部的软件和硬件也无法正常运行;
3、增加设备版本加密因素,可防止具有相同加密方式的不同版本之间的软硬件非法移植,且设备版本序列号位于核心代码的特定位置,难以从庞大的二进制数据中破解出来;
4、加密方式可由厂家按照自身要求开发,个性化较强,破解难度极大。
5、计算机侧加密软件的加密代码和验证时CPU加密代码一样,无需额外增加工作量。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的***和方法可以通过其它的方式实现。例如,以上所描述的***实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (4)
1.一种嵌入式设备加密与验证方法,其特征在于,包括步骤:
S101、将驱动代码和核心代码烧录至嵌入式设备;其中,所述驱动代码包含有加密程序和存储器的驱动程序,所述核心代码中含有核心应用程序和适用于本型号设备的设备版本序列号;
S102、嵌入式设备上电后,嵌入式设备的CPU运行所述驱动代码;
S103、所述CPU从所述存储器中读取出所述存储器的芯片号,并从所述核心代码中提取出所述设备版本序列号;
S104、所述CPU通过所述加密程序将所述芯片号和所述设备版本序列号加密形成第一设备密码;
S105、所述CPU从所述存储器的设备密码区中读取第二设备密码;若读取到的第二设备密码为空,则执行S106,否则执行S107;
S106、所述CPU将所述芯片号输出至所述存储器的数据安全区,并终止运行;
S107、所述CPU对所述第一设备密码和所述第二设备密码进行一致性验证;若一致,则验证通过,所述CPU运行所述核心代码,否则执行S106;
执行S106后,还包括步骤:
S108、采用计算机从所述存储器的数据安全区中提取所述芯片号;
S109、计算机根据输入的嵌入式设备的设备型号采用加密软件从内部检索到对应的设备版本序列号;
S110、计算机采用所述加密软件将检索到的设备版本序列号和所述芯片号加密形成第二设备密码,并写入至所述存储器的数据安全区中,其中,所述加密软件的加密方式和S104的加密方式相同;
S111、重启嵌入式设备,返回执行S102。
2.如权利要求1所述的嵌入式设备加密与验证方法,其特征在于,所述S104包括步骤:
S1041、CPU将读取的芯片号加密;
S1042、CPU将读取的设备版本序列号加密;
S1043、CPU将加密后的芯片号和加密后的设备版本序列号再综合加密生成第一设备密码。
3.如权利要求1所述的嵌入式设备加密与验证方法,其特征在于,所述存储器具体为NAND FLASH。
4.如权利要求1所述的嵌入式设备加密与验证方法,其特征在于,所述芯片号为所述存储器自带的全球唯一芯片ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510323773.8A CN104966003B (zh) | 2015-06-12 | 2015-06-12 | 嵌入式设备加密与验证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510323773.8A CN104966003B (zh) | 2015-06-12 | 2015-06-12 | 嵌入式设备加密与验证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104966003A CN104966003A (zh) | 2015-10-07 |
CN104966003B true CN104966003B (zh) | 2018-02-06 |
Family
ID=54220041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510323773.8A Active CN104966003B (zh) | 2015-06-12 | 2015-06-12 | 嵌入式设备加密与验证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104966003B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599693B (zh) * | 2015-10-16 | 2020-02-18 | 深圳市博巨兴微电子科技有限公司 | 一种多次可编程硬件加密方法及装置 |
CN106777749A (zh) * | 2016-12-29 | 2017-05-31 | 杭州朔天科技有限公司 | 一种基于嵌入式Nor‑Flash的芯片UID设计方法 |
CN108897995A (zh) * | 2018-06-19 | 2018-11-27 | 河南正来电子科技有限公司 | 一种结合嵌入式设备的嵌入式软件加密注册方法 |
CN109711183A (zh) * | 2018-12-28 | 2019-05-03 | 陕西烽火电子股份有限公司 | 一种基于芯片dna的程序加密方法 |
CN109889334A (zh) * | 2019-01-30 | 2019-06-14 | 深圳市高端无人机有限公司 | 嵌入式固件加密方法、装置、wifi设备及存储介质 |
CN112597450A (zh) * | 2020-12-22 | 2021-04-02 | 深圳市道通科技股份有限公司 | 可编程芯片程序检测、存储方法和可编程芯片 |
CN112948893A (zh) * | 2021-04-20 | 2021-06-11 | 成都启英泰伦科技有限公司 | 一种基于批量硬件烧录的固件加密方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968834A (zh) * | 2009-07-28 | 2011-02-09 | 上海移为通信技术有限公司 | 电子产品的防抄板加密方法和装置 |
CN102982264A (zh) * | 2012-12-24 | 2013-03-20 | 上海斐讯数据通信技术有限公司 | 一种嵌入式设备软件保护方法 |
CN103559099A (zh) * | 2013-10-31 | 2014-02-05 | 惠州市蓝微电子有限公司 | 一种芯片烧录校验方法 |
CN104331646A (zh) * | 2014-11-27 | 2015-02-04 | 上海斐讯数据通信技术有限公司 | 一种嵌入式***的加密方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9262631B2 (en) * | 2011-11-15 | 2016-02-16 | Mstar Semiconductor, Inc. | Embedded device and control method thereof |
-
2015
- 2015-06-12 CN CN201510323773.8A patent/CN104966003B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968834A (zh) * | 2009-07-28 | 2011-02-09 | 上海移为通信技术有限公司 | 电子产品的防抄板加密方法和装置 |
CN102982264A (zh) * | 2012-12-24 | 2013-03-20 | 上海斐讯数据通信技术有限公司 | 一种嵌入式设备软件保护方法 |
CN103559099A (zh) * | 2013-10-31 | 2014-02-05 | 惠州市蓝微电子有限公司 | 一种芯片烧录校验方法 |
CN104331646A (zh) * | 2014-11-27 | 2015-02-04 | 上海斐讯数据通信技术有限公司 | 一种嵌入式***的加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104966003A (zh) | 2015-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104966003B (zh) | 嵌入式设备加密与验证方法 | |
CN101375259B (zh) | 数据保全*** | |
CN103065102B (zh) | 基于虚拟磁盘的数据加密移动存储管理方法 | |
CN101881997B (zh) | 一种可信安全移动存储装置 | |
CN102346831A (zh) | Android操作***的手持设备隐私加密保护方法 | |
CN106533660B (zh) | 智能卡密钥的获取方法及装置 | |
CN104200153A (zh) | 一种启动验证方法和*** | |
CN101673330A (zh) | 一种基于bios的计算机安全防护方法及*** | |
CN102932140A (zh) | 一种增强密码机安全的密钥备份方法 | |
CN107220547A (zh) | 终端设备及其启动方法 | |
CN103577732A (zh) | 一种信息处理方法及装置、电子设备 | |
CN105897417A (zh) | 加密数据输入方法及装置 | |
CN104537282B (zh) | 一种基于加密闪盘和大数据运算技术的授权使用方法 | |
CN108038385A (zh) | 一种数据处理方法、移动终端及计算机可读介质 | |
CN106845261A (zh) | 一种销毁ssd硬盘数据的方法及装置 | |
CN101004797A (zh) | 大容量智能卡中数据安全存储的方法 | |
CN103023647B (zh) | 一种增强二次雷达fpga安全性的方法 | |
CN105303093A (zh) | 智能密码钥匙密码验证方法 | |
WO2009084881A2 (en) | Card and input and output apparatus for the card | |
CN106372540A (zh) | 一种芯片安全信息的安全传输方法及电路 | |
CN201549223U (zh) | 可信安全移动存储装置 | |
CN103338107A (zh) | 密钥生成方法及密钥生成装置 | |
CN108229202A (zh) | 一种智能卡自动全检方法及装置、计算机装置、存储介质 | |
CN106203142A (zh) | 一种保护计算机的主硬盘数据的方法及装置 | |
CN1333348C (zh) | 含生物辨识的可携式加密储存装置及储存资料的保护方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |