CN116090031B - 一种基于芯片uuid的固件加密方法 - Google Patents
一种基于芯片uuid的固件加密方法 Download PDFInfo
- Publication number
- CN116090031B CN116090031B CN202310212646.5A CN202310212646A CN116090031B CN 116090031 B CN116090031 B CN 116090031B CN 202310212646 A CN202310212646 A CN 202310212646A CN 116090031 B CN116090031 B CN 116090031B
- Authority
- CN
- China
- Prior art keywords
- uuid
- firmware
- chip
- data
- encrypting
- 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
Images
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/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
-
- 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
- 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/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于芯片UUID的固件加密方法,具体步骤包括:步骤S1,将UUID写入芯片中划分的NVR区域;步骤S2,通过上位机读取芯片UUID,通过烧录工具生成UUID密文,并选择合适的AES密钥KEY,使用AES128算法加密,且通过上位机将加密后形成的密文数据写入NVR存储区;步骤S3,芯片初始化时再次读取UUID,并与解密后的UUID明文数据对比,判断固件合法性;步骤S4,通过固件校验判断固件完整性;本发明保存到芯片NVR存储器的数据,其存储地址并不固定,需要结合芯片UUID进行地址计算,这样隐藏式的数据访问增加了软件拷贝和破解的难度。
Description
技术领域
本发明涉及一种芯片加密技术领域,具体为一种基于芯片UUID的固件加密方法。
背景技术
单片机(MCU)一般都有内部程序区和数据区供用户存放程序和工作数据。为了防止未经授权访问或拷贝单片机的片内程序,很多单片机都带有加密锁或者加密字节,以保护片内固件程序,如果在编程时加密锁被使能,就无法用普通编程器直接读取单片机内的程序。
固件加密是为了防止未经授权访问或拷贝单片机的机内程序,避免已量产电子产品MCU芯片的程序被非法剽窃和复制,但是对于芯片加密技术领域,目前出现了如下两个方面的问题。
一方面,部分芯片不支持加密锁或者加密字节功能,另一方面,支持加密锁或者加密字节功能的单片机容易被攻击者解密,例如,攻击者利用单片机擦除操作时序设计上的漏洞,使用自编程序在擦除加密锁后,停止下一步擦除片内程序存储器的操作,从而使单片机变成未加密的,然后利用编程器读出片内程序,进行非法的固件拷贝和复制。
现有技术已经不能满足现阶段人们的需求,基于现状,急需对现有技术进行改进。
发明内容
本发明的目的在于提供一种基于芯片UUID的固件加密方法,以解决上述背景技术中提出的问题。
本发明提供如下技术方案一种基于芯片UUID的固件加密方法,具体步骤包括:
步骤S1,将UUID(通用唯一识别码)写入芯片中划分的NVR(非易失性)区域;
UUID由生产的批号LOTID、晶圆编号WAFERID、FLASH行地址、FLASH列地址信息组成,芯片设计时,在芯片制造过程中将UUID写入NVR存储区;
步骤S2,通过烧录工具生成UUID密文,并使用标准的AES128算法加密,且通过上位机将加密后形成的密文数据写入NVR存储区;
首先通过上位机读取芯片UUID,根据产品选择合适的AES密钥KEY,使用AES128算法进行加密,加密后形成的密文数据,通过上位机写入NVR存储区,保存的地址根据UUID进行计算,NVR存储区保留一个扇区用于密文和密钥数据保存;
步骤S3,芯片初始化时再次读取UUID,并与解密后的UUID明文数据对比,判断固件合法性;
芯片上电启动后,通过软件单元再次读取芯片UUID,并根据UUID计算保存的地址,从NVR存储区读取密文数据;然后通过AES128算法解密后,判断明文数据与读取的UUID是否一致,从而判断固件合法性,通过隐藏式的数据访问增加了软件拷贝和破解的难度;
步骤S4,通过固件校验判断固件完整性;
芯片上电启动后,计算固件文件内所有需要保护的MCU数据,通过计算得到固件数据校验码;从NVR存储区读取固件校验验证码,其中,该固件校验验证码是芯片生产时通过上位机写入的,为了判断固件是否被修改了跳过合法性。
本发明具有如下有益效果:
(1)本发明芯片的UUID具有唯一性,并且不可更改,可以有效防止产品固件被非法拷贝和复制,提升了固件安全性;
(2)本发明保存到芯片NVR存储器的数据,其存储地址并不固定,需要结合芯片UUID进行地址计算,这样隐藏式的数据访问增加了软件拷贝和破解的难度。
(3)本发明采用固件校验,进一步判断固件的完整性,有效的避免了通过反汇编修改固件后试图跳过UUID判断流程的软件攻击手段。
附图说明
图1为本发明烧录工具生成UUID密文的流程图;
图2为本发明芯片启动过程中判断固件合法性过程的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在实施例中,单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序,单片机解密的方法有多种,包括侵入型攻击(物理攻击)、非侵入型攻击;非侵入型攻击主要包括软件攻击,该技术通常使用处理器通信接口并利用协议、加密算法或这些算法中的安全漏洞来进行攻击;
所以,为了防止非法的固件拷贝和复制,本发明提供如下技术方案一种基于芯片UUID的固件加密方法,具体步骤包括:
步骤S1,将UUID(通用唯一识别码)写入芯片中划分的NVR区域;
在实施例中,UUID由生产的批号LOTID、晶圆编号WAFERID、FLASH行地址、FLASH列地址信息组成,芯片设计时,在芯片制造过程中将UUID写入NVR存储区,UUID具有唯一性,并且不可更改。
步骤S2,通过烧录工具生成UUID密文,并使用标准的AES128算法加密,且通过上位机将加密后形成的密文数据写入NVR(非易失性)存储区;
参考图1,图1是本发明烧录工具生成UUID密文的流程图;
在实施例中,首先通过上位机读取芯片UUID,根据产品选择合适的AES密钥KEY,其中,密钥KEY通过芯片的接收端与发送端协商生成,可以是随机的128位数据,AES支持三种长度的密钥:128位,192位,256位,AES128是指密钥长度128位的加解密算法,在MCU中使用AES128的算法执行时间短,效率高;然后,使用AES128算法进行加密,AES加密算法是对称加密算法,加密与解密用的是同样的密钥,加密后形成的密文数据,通过上位机写入NVR存储区,保存的地址根据UUID进行计算,NVR存储区保留一个扇区用于密文和密钥数据保存,在一种可实现的方式中,一个NVR扇区是512字节,UUID是12个字节的序列,可以从12个字节中取第3和第9个字节进行异或计算,得到的数据作为扇区内的地址。
步骤S3,芯片初始化时再次读取UUID,并与解密后的UUID明文数据对比,判断固件合法性;
参考图2,图2是本发明芯片启动过程中判断固件合法性过程的流程图;
在实施例中,芯片上电启动后,为了进一步提升加密保护的有效性,NVR保存密文的地址并不固定,需要结合芯片UUID进行地址计算,具体的,通过软件单元再次读取芯片UUID,并根据UUID计算保存的地址,从NVR存储区读取密文数据;在实施例中,一个NVR扇区是512字节,UUID是12个字节的序列,可以从12个字节中取第3和第9个字节进行异或计算,得到的数据作为扇区内的保存密文的地址。然后通过AES128算法解密后,生成UUID明文,判断明文数据与读取的UUID是否一致,从而判断固件合法性,通过隐藏式的数据访问增加了软件拷贝和破解的难度。
步骤S4,通过固件校验判断固件完整性;
在实施例中,芯片上电启动后,读取固件文件内所有需要保护的MCU数据,并计算得到固件数据校验码;从NVR存储区读取固件校验验证码,其中,该固件校验验证码是芯片生产时通过上位机写入的,为了判断固件是否被修改了跳过合法性;通过比较固件数据校验码与固件校验验证码是否一致,来判断固件是否被篡改;本发明采用固件校验,进一步判断固件的完整性,有效的避免了通过反汇编修改固件后试图跳过UUID判断流程的软件攻击手段。
尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于芯片UUID的固件加密方法,其特征在于,具体步骤包括:
步骤S1,将通用唯一识别码UUID写入芯片中划分的非易失性NVR区域;
步骤S2,通过上位机读取芯片UUID,通过烧录工具生成UUID密文,并选择匹配的AES密钥KEY,使用AES128算法加密,且通过上位机将加密后形成的密文数据写入NVR存储区;
步骤S3,芯片初始化时再次读取UUID,并与解密后的UUID明文数据对比,判断固件是否具有合法性,具体为:芯片上电启动后,通过软件单元再次读取芯片UUID,并根据UUID计算保存的地址,从NVR存储区读取密文数据;再通过AES128算法解密后,生成UUID明文,判断明文数据与读取的UUID一致,则固件具有合法性,否则固件不具有合法性;
步骤S4,通过固件校验判断固件是否具有完整性。
2.根据权利要求1所述的基于芯片UUID的固件加密方法,其特征在于:所述AES密钥KEY通过芯片的接收端与发送端协商生成。
3.根据权利要求1所述的基于芯片UUID的固件加密方法,其特征在于:所述加密与所述解密采用相同的密钥。
4.根据权利要求1所述的基于芯片UUID的固件加密方法,其特征在于:所述保存的地址根据所述UUID进行计算,且NVR存储区只保留一个扇区用于密文和密钥数据保存。
5.根据权利要求1所述的基于芯片UUID的固件加密方法,其特征在于:步骤S4的具体步骤为:计算固件文件内所有需要保护的MCU数据,计算得到固件数据校验码;从NVR存储区读取固件校验验证码,通过比较固件数据校验码与固件校验验证码是否一致,判断固件是否被篡改。
6.根据权利要求5所述的基于芯片UUID的固件加密方法,其特征在于:所述固件校验验证码是芯片生产时通过上位机写入。
7.根据权利要求1所述的基于芯片UUID的固件加密方法,其特征在于:通过固件校验判断固件是否具有完整性,使得反汇编修改固件后无法试图跳过UUID判断流程。
8.根据权利要求1所述的基于芯片UUID的固件加密方法,其特征在于:所述UUID由生产的批号LOTID、晶圆编号WAFERID、FLASH行地址、FLASH列地址信息组成。
9.根据权利要求1所述的基于芯片UUID的固件加密方法,其特征在于:所述UUID是唯一的,不可更改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310212646.5A CN116090031B (zh) | 2023-03-08 | 2023-03-08 | 一种基于芯片uuid的固件加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310212646.5A CN116090031B (zh) | 2023-03-08 | 2023-03-08 | 一种基于芯片uuid的固件加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116090031A CN116090031A (zh) | 2023-05-09 |
CN116090031B true CN116090031B (zh) | 2023-06-20 |
Family
ID=86212175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310212646.5A Active CN116090031B (zh) | 2023-03-08 | 2023-03-08 | 一种基于芯片uuid的固件加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116090031B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118171308A (zh) * | 2024-05-16 | 2024-06-11 | 贵州航天控制技术有限公司 | 一种嵌入式程序的加密方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050073180A (ko) * | 2004-01-09 | 2005-07-13 | 삼성전자주식회사 | 펌웨어 암호화 방법 및 해독 방법과 그 처리 장치 |
JP2014026663A (ja) * | 2013-09-18 | 2014-02-06 | Ricoh Co Ltd | 機器、管理装置、機器管理システム、及びプログラム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050263977A1 (en) * | 2004-05-13 | 2005-12-01 | Tien-Hui Pan | Method of preventing firmware piracy |
JP2010097502A (ja) * | 2008-10-17 | 2010-04-30 | Victor Co Of Japan Ltd | 暗号化・復号システム、暗号化装置、復号装置、および暗号化・復号方法 |
CN108171018B (zh) * | 2017-12-26 | 2021-10-08 | 广州路派电子科技有限公司 | 一种车载解码器的软件加密和解密方法 |
CN110677250B (zh) * | 2018-07-02 | 2022-09-02 | 阿里巴巴集团控股有限公司 | 密钥和证书分发方法、身份信息处理方法、设备、介质 |
CN111262910B (zh) * | 2020-01-09 | 2022-11-15 | 杭州涂鸦信息技术有限公司 | 一种无线设备固件保护方法及*** |
CN111475815A (zh) * | 2020-04-08 | 2020-07-31 | 上海汉枫电子科技有限公司 | 一种用于芯片的代码保护方法 |
CN112165396A (zh) * | 2020-09-14 | 2021-01-01 | 北京中电华大电子设计有限责任公司 | 一种安全固件更新的方法 |
CN112948893A (zh) * | 2021-04-20 | 2021-06-11 | 成都启英泰伦科技有限公司 | 一种基于批量硬件烧录的固件加密方法 |
CN114266055B (zh) * | 2022-03-02 | 2022-05-27 | 山东华翼微电子技术股份有限公司 | 一种多核固件安全存储方法及*** |
-
2023
- 2023-03-08 CN CN202310212646.5A patent/CN116090031B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050073180A (ko) * | 2004-01-09 | 2005-07-13 | 삼성전자주식회사 | 펌웨어 암호화 방법 및 해독 방법과 그 처리 장치 |
JP2014026663A (ja) * | 2013-09-18 | 2014-02-06 | Ricoh Co Ltd | 機器、管理装置、機器管理システム、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN116090031A (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9240889B2 (en) | Method and system for secure data access among two devices | |
US9043610B2 (en) | Systems and methods for data security | |
JP3774260B2 (ja) | メモリカードのセキュリティシステム装置及びそのメモリカード | |
US7003674B1 (en) | Disk drive employing a disk with a pristine area for storing encrypted data accessible only by trusted devices or clients to facilitate secure network communications | |
KR100889099B1 (ko) | 데이터 저장 장치의 보안 방법 및 장치 | |
US7237121B2 (en) | Secure bootloader for securing digital devices | |
US8452984B2 (en) | Message authentication code pre-computation with applications to secure memory | |
JP4550050B2 (ja) | 利用認証方法、利用認証プログラム、情報処理装置および記録媒体 | |
EP1273996A2 (en) | Secure bootloader for securing digital devices | |
US20100043078A1 (en) | Secure compact flash | |
US20190163913A1 (en) | Root key processing method and associated device | |
CA2537299A1 (en) | On-chip storage, creation, and manipulation of an encryption key | |
US20120284534A1 (en) | Memory Device and Method for Accessing the Same | |
US9805186B2 (en) | Hardware protection for encrypted strings and protection of security parameters | |
CN116090031B (zh) | 一种基于芯片uuid的固件加密方法 | |
US7085742B2 (en) | Authenticating software licenses | |
CN111614467B (zh) | ***后门防御方法、装置、计算机设备和存储介质 | |
JPH05217033A (ja) | データの認証方法 | |
JP3824297B2 (ja) | 外部記憶装置とシステム装置との間でなされる認証方法、認証システム、および外部記憶装置 | |
JP2009080772A (ja) | ソフトウェア起動システム、ソフトウェア起動方法、及びソフトウェア起動プログラム | |
US20140258729A1 (en) | Stored Authorization Status for Cryptographic Operations | |
US20010034715A1 (en) | Decryption device | |
JPWO2006046484A1 (ja) | 認証方法 | |
KR20070076848A (ko) | 카드 인증 시스템의 보안레벨을 향상시키는 장치 및 방법 | |
JP2003091240A (ja) | 暗号化された情報の管理方法 |
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 |