CN104966003A - 嵌入式设备加密与验证方法 - Google Patents

嵌入式设备加密与验证方法 Download PDF

Info

Publication number
CN104966003A
CN104966003A CN201510323773.8A CN201510323773A CN104966003A CN 104966003 A CN104966003 A CN 104966003A CN 201510323773 A CN201510323773 A CN 201510323773A CN 104966003 A CN104966003 A CN 104966003A
Authority
CN
China
Prior art keywords
encryption
cpu
password
embedded
equipment
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
Application number
CN201510323773.8A
Other languages
English (en)
Other versions
CN104966003B (zh
Inventor
蔡亮亮
陈磊
卢家力
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guodian Nanjing Automation Co Ltd
Original Assignee
Guodian Nanjing Automation Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guodian Nanjing Automation Co Ltd filed Critical Guodian Nanjing Automation Co Ltd
Priority to CN201510323773.8A priority Critical patent/CN104966003B/zh
Publication of CN104966003A publication Critical patent/CN104966003A/zh
Application granted granted Critical
Publication of CN104966003B publication Critical patent/CN104966003B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/123Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting 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/79Protecting 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、将驱动代码和核心代码烧录至嵌入式设备。
其中,所述驱动代码包含有加密程序和存储器的驱动程序,所述核心代码中含有核心应用程序和适用于本型号设备的设备版本序列号。其中,所述存储器具体为NAND FLASH。
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 (5)

1.一种嵌入式设备加密与验证方法,其特征在于,包括步骤:
S101、将驱动代码和核心代码烧录至嵌入式设备;其中,所述驱动代码包含有加密程序和存储器的驱动程序,所述核心代码中含有核心应用程序和适用于本型号设备的设备版本序列号;
S102、嵌入式设备上电后,嵌入式设备的CPU运行所述驱动代码;
S103、所述CPU从所述存储器中读取出所述存储器的芯片号,并从所述核心代码中提取出所述设备版本序列号;
S104、所述CPU通过所述加密程序将所述芯片号和所述设备版本序列号加密形成第一设备密码;
S105、所述CPU从所述存储器的设备密码区中读取第二设备密码;若读取到的第二设备密码为空,则执行S106,否则执行S107;
S106、所述CPU将所述芯片号输出至所述存储器的数据安全区,并终止运行;
S107、所述CPU对所述第一设备密码和所述第二设备密码进行一致性验证;若一致,则验证通过,所述CPU运行所述核心代码,否则执行S106。
2.如权利要求1所述的嵌入式设备加密与验证方法,其特征在于,还包括步骤:
S108、采用计算机从所述存储器的数据安全区中提取所述芯片号;
S109、计算机根据输入的嵌入式设备的设备型号采用加密软件从内部检索到对应的设备版本序列号;
S110、计算机采用所述加密软件将检索到的设备版本序列号和所述芯片号加密形成第二设备密码,并写入至所述存储器的数据安全区中,其中,所述加密软件的加密方式和S104的加密方式相同;
S111、重启嵌入式设备,返回执行S102。
3.如权利要求1或2所述的嵌入式设备加密与验证方法,其特征在于,所述S104包括步骤:
S1041、CPU将读取的芯片号加密;
S1042、CPU将读取的设备版本序列号加密;
S1043、CPU将加密后的芯片号和加密后的设备版本序列号再综合加密生成第一设备密码。
4.如权利要求1或2所述的嵌入式设备加密与验证方法,其特征在于,所述存储器具体为NAND FLASH。
5.如权利要求1或2所述的嵌入式设备加密与验证方法,其特征在于,所述芯片号为所述存储器自带的全球唯一芯片ID。
CN201510323773.8A 2015-06-12 2015-06-12 嵌入式设备加密与验证方法 Active CN104966003B (zh)

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 true CN104966003A (zh) 2015-10-07
CN104966003B 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)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599693A (zh) * 2015-10-16 2017-04-26 深圳市博巨兴实业发展有限公司 一种多次可编程硬件加密方法及装置
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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968834A (zh) * 2009-07-28 2011-02-09 上海移为通信技术有限公司 电子产品的防抄板加密方法和装置
CN102982264A (zh) * 2012-12-24 2013-03-20 上海斐讯数据通信技术有限公司 一种嵌入式设备软件保护方法
US20130124845A1 (en) * 2011-11-15 2013-05-16 Mstar Semiconductor, Inc. Embedded device and control method thereof
CN103559099A (zh) * 2013-10-31 2014-02-05 惠州市蓝微电子有限公司 一种芯片烧录校验方法
CN104331646A (zh) * 2014-11-27 2015-02-04 上海斐讯数据通信技术有限公司 一种嵌入式***的加密方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101968834A (zh) * 2009-07-28 2011-02-09 上海移为通信技术有限公司 电子产品的防抄板加密方法和装置
US20130124845A1 (en) * 2011-11-15 2013-05-16 Mstar Semiconductor, Inc. Embedded device and control method thereof
CN102982264A (zh) * 2012-12-24 2013-03-20 上海斐讯数据通信技术有限公司 一种嵌入式设备软件保护方法
CN103559099A (zh) * 2013-10-31 2014-02-05 惠州市蓝微电子有限公司 一种芯片烧录校验方法
CN104331646A (zh) * 2014-11-27 2015-02-04 上海斐讯数据通信技术有限公司 一种嵌入式***的加密方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599693A (zh) * 2015-10-16 2017-04-26 深圳市博巨兴实业发展有限公司 一种多次可编程硬件加密方法及装置
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 成都启英泰伦科技有限公司 一种基于批量硬件烧录的固件加密方法

Also Published As

Publication number Publication date
CN104966003B (zh) 2018-02-06

Similar Documents

Publication Publication Date Title
CN104966003A (zh) 嵌入式设备加密与验证方法
CN101908119B (zh) 一种动态链接库dll文件的处理方法和装置
CN101950332B (zh) 芯片保护方法和***
WO2020197724A1 (en) Verifying identity of an emergency vehicle during operation
CN103065102A (zh) 基于虚拟磁盘的数据加密移动存储管理方法
CN102118512A (zh) 一种手机应用程序防破解方法及***
CN101968834A (zh) 电子产品的防抄板加密方法和装置
EP1580663A1 (en) A method for realizing security data storage and algorithm storage by means of semiconductor memory device
US20100325431A1 (en) Feature-Specific Keys for Executable Code
CN102932140A (zh) 一种增强密码机安全的密钥备份方法
CN102262599A (zh) 一种基于可信根的移动硬盘指纹认证方法
CN105303093A (zh) 智能密码钥匙密码验证方法
CN111177693B (zh) 一种验证终端根证书的方法、装置、设备和介质
CN103093137A (zh) 一种基于u盘的文件安全分发方法
CN103347017A (zh) 数据处理方法和片上***
CN102938045A (zh) 电子产品的加密方法以及加密后的授权方法
CN101004797A (zh) 大容量智能卡中数据安全存储的方法
CN107958141A (zh) 一种基于芯片id号的软件保护方法
CN105205416A (zh) 一种移动硬盘密码模块
CN112968774B (zh) 一种组态存档加密及解密方法、装置存储介质及设备
CN102289607A (zh) Usb装置验证***及方法
CN101739593B (zh) 集成电路卡介质访问控制码安全认证方法
CN202110552U (zh) 一种基于多体交叉存储技术的软件保护装置
CN108363912B (zh) 一种程序代码的密保方法及装置
CN105022651B (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