CN115801274B - 一种固件保护方法 - Google Patents

一种固件保护方法 Download PDF

Info

Publication number
CN115801274B
CN115801274B CN202211461513.3A CN202211461513A CN115801274B CN 115801274 B CN115801274 B CN 115801274B CN 202211461513 A CN202211461513 A CN 202211461513A CN 115801274 B CN115801274 B CN 115801274B
Authority
CN
China
Prior art keywords
firmware
file
key
ciphertext
random
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
Application number
CN202211461513.3A
Other languages
English (en)
Other versions
CN115801274A (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.)
Guangzhou V Solution Telecommunication Technology Co ltd
Original Assignee
Guangzhou V Solution Telecommunication Technology 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 Guangzhou V Solution Telecommunication Technology Co ltd filed Critical Guangzhou V Solution Telecommunication Technology Co ltd
Priority to CN202211461513.3A priority Critical patent/CN115801274B/zh
Publication of CN115801274A publication Critical patent/CN115801274A/zh
Application granted granted Critical
Publication of CN115801274B publication Critical patent/CN115801274B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供一种固件保护方法,包括对固件加密的步骤:A1:获取固件文件,通过随机算法得到固件文件的密钥、随机向量和密钥偏移值;A2:根据密钥和随机向量对固件文件的明文数据加密,得到密文数据;A3:在密文数据的尾部拼接随机数,得到密文文件,所述随机数中存放有密钥、随机向量和密钥偏移值;A4:计算密文文件的MD5摘要并添加到密文文件的末端,生成临时文件;A5:在临时文件的头部添加私有幻数和密钥偏移值,得到密文固件文件,完成对固件的加密。本发明提供一种固件保护方法,解决了目前的固件保护方法会加大设备升级固件时对资源的消耗的问题。

Description

一种固件保护方法
技术领域
本发明涉及固件安全的技术领域,更具体的,涉及一种固件保护方法。
背景技术
固件是将硬件和操作系统连接的底层代码。操作系统要通过固件才能按照标准的设备驱动实现特定机器的运行动作。同时在硬件设备中,固件也是硬件设备的灵魂,决定着硬件设备的功能及性能。
当前在需要用固件升级的场景中,一般是由固件提供方生成新的固件升级文件,然后通过某种手段提供到固件使用方手上。固件里面可能会含有用户名之类的敏感信息,而未被加密的固件,就很容易被一些工具所破解,导致信息泄露,因此非常有必要对固件采取一些保护手段。
目前较为安全的固件保护方法是利用加密算法来加密保护。
如现有技术中,公开日为2018年09月04日的中国专利一种无人机固件保护系统,公开号为CN108491215A,提供了一种无人机固件保护系统,通过对固件升级启用非对称加密的认证机制,实现对无人机固件的加密保护。
除了非对称加密算法外,还可以使用对称加密算法,比如AES、DES等加密算法来加密固件。但这些固件保护方法在理论上会被侧信道密码分析法破译,并且会加大设备升级固件时对资源的消耗,这对于资源受限的设备来说并不友好,严重地降低了资源受限设备的解密速度。
发明内容
本发明为克服目前的固件保护方法会加大设备升级固件时对资源的消耗的技术缺陷,提供一种固件保护方法。
为解决上述技术问题,本发明的技术方案如下:
一种固件保护方法,包括对固件加密的步骤:
A1:获取固件文件,通过随机算法得到固件文件的密钥、随机向量和密钥偏移值;
A2:根据密钥和随机向量对固件文件的明文数据加密,得到密文数据;
A3:在密文数据的尾部拼接随机数,得到密文文件,
所述随机数中存放有密钥、随机向量和密钥偏移值;
A4:计算密文文件的MD5摘要并添加到密文文件的末端,生成临时文件;
A5:在临时文件的头部添加私有幻数和密钥偏移值,得到密文固件文件,完成对固件的加密。
上述方案中,通过将密钥和随机向量存放到固件尾部的随机地址上,从而减少密钥被破译的风险,避免了复杂加密算法的使用,且能够达到与AES、DES等复杂加密算法相当的安全性,减少设备升级固件时对资源的消耗,保证了资源受限平台的解密速度。
优选的,在步骤A2中,利用arc4算法对明文数据加密。
上述方案中,通过使用相对简单的arc4算法减少资源受限设备的资源消耗,保证了资源受限平台的解密速度。arc4算法的速度可以达到DES加密的10倍左右。
优选的,在对明文数据加密过程中,每次读取32位明文数据与密钥、随机向量一起作为arc4算法的输入进行加密,重复执行直至完成对固件文件中所有明文数据的加密。
优选的,所述密钥为32位密钥。
优选的,所述随机向量为32位随机向量。
优选的,所述密钥偏移值为16位随机偏移值,取值范围为0-192。
优选的,所述随机数为256位随机数。
优选的,所述私有幻数为32位私有幻数。
优选的,所述私有幻数用于加密标识。
优选的,还包括对固件解密的步骤:
B1:读取并校验固件文件头部的私有幻数,判断是否为密文固件文件;
若是,则获取密钥偏移值并计算剩余文件的长度;
若否,则执行步骤B5;
B2:根据剩余文件的长度计算出固件文件的原明文数据长度;
B3:利用MD5摘要算法计算固件文件是否完整;
若是,则根据原明文数据长度和密钥偏移值取得密钥和随机向量;
若否,则直接执行B5;
B4:利用密钥和随机向量对固件文件的密文数据进行解密,得到明文固件文件,完成对固件的解密;
B5:执行结束。
与现有技术相比,本发明技术方案的有益效果是:
本发明提供了一种固件保护方法,通过将密钥和随机向量存放到固件尾部的随机地址上,从而减少密钥被破译的风险,避免了复杂加密算法的使用,且能够达到与AES、DES等复杂加密算法相当的安全性,减少设备升级固件时对资源的消耗,保证了资源受限平台的解密速度。
附图说明
图1为本发明中对固件加密的技术方案实施步骤流程图;
图2为本发明中对固件解密的技术方案实施步骤流程图;
图3为本发明中在Linux上使用vsAuthFile加密工具的实施示意图;
图4为本发明中B-S架构的嵌入式Linux升级实施示意图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
如图1所示,一种固件保护方法,包括对固件加密的步骤:
A1:获取固件文件,通过随机算法得到固件文件的密钥、随机向量和密钥偏移值;
A2:根据密钥和随机向量对固件文件的明文数据加密,得到密文数据;
A3:在密文数据的尾部拼接随机数,得到密文文件,
所述随机数中存放有密钥、随机向量和密钥偏移值;
A4:计算密文文件的MD5摘要并添加到密文文件的末端,生成临时文件;
A5:在临时文件的头部添加私有幻数和密钥偏移值,得到密文固件文件,完成对固件的加密。
在具体实施过程中,通过将密钥和随机向量存放到固件尾部的随机地址上,从而减少密钥被破译的风险,避免了复杂加密算法的使用,且能够达到与AES、DES等复杂加密算法相当的安全性,减少设备升级固件时对资源的消耗,保证了资源受限平台的解密速度。
实施例2
一种固件保护方法,包括对固件加密的步骤:
A1:获取固件文件,通过随机算法得到固件文件的密钥、随机向量和密钥偏移值;
更具体的,所述密钥为32位密钥。
更具体的,所述随机向量为32位随机向量。
更具体的,所述密钥偏移值为16位随机偏移值,取值范围为0-192。
A2:根据密钥和随机向量对固件文件的明文数据加密,得到密文数据;
更具体的,在步骤A2中,利用arc4算法对明文数据加密。
在具体实施过程中,通过使用相对简单的arc4算法减少资源受限设备的资源消耗,保证了资源受限平台的解密速度。arc4算法的速度可以达到DES加密的10倍左右。
更具体的,在对明文数据加密过程中,每次读取32位明文数据与密钥、随机向量一起作为arc4算法的输入进行加密,重复执行直至完成对固件文件中所有明文数据的加密。
A3:在密文数据的尾部拼接随机数,得到密文文件,
所述随机数中存放有密钥、随机向量和密钥偏移值;
更具体的,所述随机数为256位随机数。
A4:计算密文文件的MD5摘要并添加到密文文件的末端,生成临时文件;
A5:在临时文件的头部添加私有幻数和密钥偏移值,得到密文固件文件,完成对固件的加密。
更具体的,所述私有幻数为32位私有幻数。
更具体的,所述私有幻数用于加密标识。
在具体实施过程中,一般发生在对固件解密时,通过校验私有幻数即可判断固件文件是否为私有加密的固件文件。
实施例3
一种固件保护方法,包括对固件加密的步骤:
A1:获取固件文件,通过随机算法得到固件文件的密钥、随机向量和密钥偏移值;
A2:根据密钥和随机向量对固件文件的明文数据加密,得到密文数据;
A3:在密文数据的尾部拼接随机数,得到密文文件,
所述随机数中存放有密钥、随机向量和密钥偏移值;
A4:计算密文文件的MD5摘要并添加到密文文件的末端,生成临时文件;
A5:在临时文件的头部添加私有幻数和密钥偏移值,得到密文固件文件,完成对固件的加密。
还包括对固件解密的步骤:
B1:读取并校验固件文件头部的私有幻数,判断是否为密文固件文件;
若是,则获取密钥偏移值并计算剩余文件的长度;
若否,则执行步骤B5;
B2:根据剩余文件的长度计算出固件文件的原明文数据长度;
B3:利用MD5摘要算法计算固件文件是否完整;
若是,则根据原明文数据长度和密钥偏移值取得密钥和随机向量;
若否,则直接执行B5;
B4:利用密钥和随机向量对固件文件的密文数据进行解密,得到明文固件文件,完成对固件的解密;
B5:执行结束。
实施例4
一种固件保护方法,包括对固件加密的步骤:
A1:获取固件文件,通过随机算法得到固件文件的密钥、随机向量和密钥偏移值;
更具体的,所述密钥为32位密钥。
更具体的,所述随机向量为32位随机向量。
更具体的,所述密钥偏移值为16位随机偏移值,取值范围为0-192。
A2:根据密钥和随机向量对固件文件的明文数据加密,得到密文数据;
更具体的,在步骤A2中,利用arc4算法对明文数据加密。
更具体的,在对明文数据加密过程中,每次读取32位明文数据与密钥、随机向量一起作为arc4算法的输入进行加密,重复执行直至完成对固件文件中所有明文数据的加密。
在具体实施过程中,每次读取固件文件的32位明文数据,使用arc4算法,将32位明文数据、32位密钥和32位随机向量作为输入,输出得到32位密文数据,循环执行直到固件文件的结尾。
A3:在密文数据的尾部拼接随机数,得到密文文件,
所述随机数中存放有密钥、随机向量和密钥偏移值;
更具体的,所述随机数为256位随机数。
在具体实施过程中,将密钥以随机偏移的方式存到固件尾部。
A4:计算密文文件的MD5摘要并添加到密文文件的末端,生成临时文件;
A5:在临时文件的头部添加私有幻数和密钥偏移值,得到密文固件文件,完成对固件的加密。
更具体的,所述私有幻数为32位私有幻数。
更具体的,所述私有幻数用于加密标识。
在具体实施过程中,通过私有幻数标识加密或未加密,可根据实际调整预设。
在具体实施过程中,对固件加密的步骤由PC端实现。
更具体的,如图2所示,还包括对固件解密的步骤:
B1:读取并校验固件文件头部的私有幻数,判断是否为密文固件文件;
若是,则获取密钥偏移值并计算剩余文件的长度;
若否,则执行步骤B5;
在具体实施过程中,通过校验私有幻数判断固件文件是否为私有加密的固件文件。
B2:根据剩余文件的长度减去256位,计算出固件文件的原明文数据长度;
在具体实施过程中,先计算出去掉头部(包括私有幻数和密钥偏移值)的剩余文件的长度,然后将剩余文件的长度减去256位(随机数),则得到固件文件的原明文数据长度DL。
B3:利用MD5摘要算法计算固件文件是否完整;
若是,则根据原明文数据长度和密钥偏移值取得密钥和随机向量;
若否,则直接执行B5;
B4:利用密钥和随机向量对固件文件的密文数据进行解密,得到明文固件文件,完成对固件的解密;
在具体实施过程中,利用arc4算法,从密文数据的开头开始,循环读取32位密文,并用密钥和随机向量进行解密,得到32位明文数据,当读取完DL长度的文件进行解密后,得到明文固件文件。
B5:执行结束。
在具体实施过程中,对固件解密的步骤由设备端实现,所述设备为嵌入式设备。
完成解密后,进入明文升级流程,明文升级流程在于各设备厂商内部实现,所以在此不详细提及。
在具体实施过程中,使用简单的对称加密算法,即arc4算法,对明文数据加密,然后通过将密钥和随机向量存放到固件尾部的随机地址上,从而减少密钥被破译的风险;虽然没采用安全性更高但运算复杂的AES、DES等算法加密,但也能够达到与AES、DES等复杂加密算法相当的安全性,同时减少设备升级固件时对资源的消耗,保证了资源受限平台的解密速度在可接受范围之内,而且还具有非常好的可移植性。
实施例5
本实施例是在PC上加密,在基于嵌入式Linux的设备上解密。
表1是加解密工具源码与使用。
表1
源文件 目的
arc4.c arc4对称加密算法
md5.c 生成文件摘要
vsAuthFile.c 主程序源文件,主要逻辑和帮助信息
vs_encrypt.c 对arc4操作封装,加密解密的接口
在linux命令行中,工具使用命令操作说明如下:
Usage:
./vsAuthfile<e|d|s|ei|di><input file><output file>
本实施例可分为在PC上的加密操作和在嵌入式Linux设备上的解密操作,PC需要提前编译生成执行文件vsAuthFile,然后将原固件文件fireware.bin放到与vsAuthFile相同目录,运行./vsAuthFile ei fireware.bin fireware_encrypt.bin即可,如图3所示;而嵌入式Linux设备,需要提前适配到设备自身的升级流程中,而本实施例采用的B-S架构,所以在浏览器升级加密固件文件即可,如图4所示。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”,“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。

Claims (10)

1.一种固件保护方法,其特征在于,包括对固件加密的步骤:
A1:获取固件文件,通过随机算法得到固件文件的密钥、随机向量和密钥偏移值;
A2:根据密钥和随机向量对固件文件的明文数据加密,得到密文数据;
A3:在密文数据的尾部拼接随机数,得到密文文件,
所述随机数中存放有密钥、随机向量和密钥偏移值;
A4:计算密文文件的MD5摘要并添加到密文文件的末端,生成临时文件;
A5:在临时文件的头部添加私有幻数和密钥偏移值,得到密文固件文件,完成对固件的加密。
2.根据权利要求1所述的一种固件保护方法,其特征在于,在步骤A2中,利用arc4算法对明文数据加密。
3.根据权利要求2所述的一种固件保护方法,其特征在于,在对明文数据加密过程中,每次读取32位明文数据与密钥、随机向量一起作为arc4算法的输入进行加密,重复执行直至完成对固件文件中所有明文数据的加密。
4.根据权利要求1所述的一种固件保护方法,其特征在于,所述密钥为32位密钥。
5.根据权利要求1所述的一种固件保护方法,其特征在于,所述随机向量为32位随机向量。
6.根据权利要求1所述的一种固件保护方法,其特征在于,所述密钥偏移值为16位随机偏移值,取值范围为0-192。
7.根据权利要求1所述的一种固件保护方法,其特征在于,所述随机数为256位随机数。
8.根据权利要求1所述的一种固件保护方法,其特征在于,所述私有幻数为32位私有幻数。
9.根据权利要求1所述的一种固件保护方法,其特征在于,所述私有幻数用于加密标识。
10.根据权利要求1至9中任一项所述的一种固件保护方法,其特征在于,还包括对固件解密的步骤:
B1:读取并校验固件文件头部的私有幻数,判断是否为密文固件文件;
若是,则获取密钥偏移值并计算剩余文件的长度;
若否,则执行步骤B5;
B2:根据剩余文件的长度计算出固件文件的原明文数据长度;
B3:利用MD5摘要算法计算固件文件是否完整;
若是,则根据原明文数据长度和密钥偏移值取得密钥和随机向量;
若否,则直接执行B5;
B4:利用密钥和随机向量对固件文件的密文数据进行解密,得到明文固件文件,完成对固件的解密;
B5:执行结束。
CN202211461513.3A 2022-11-17 2022-11-17 一种固件保护方法 Active CN115801274B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211461513.3A CN115801274B (zh) 2022-11-17 2022-11-17 一种固件保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211461513.3A CN115801274B (zh) 2022-11-17 2022-11-17 一种固件保护方法

Publications (2)

Publication Number Publication Date
CN115801274A CN115801274A (zh) 2023-03-14
CN115801274B true CN115801274B (zh) 2023-07-11

Family

ID=85439705

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211461513.3A Active CN115801274B (zh) 2022-11-17 2022-11-17 一种固件保护方法

Country Status (1)

Country Link
CN (1) CN115801274B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101340279A (zh) * 2008-07-09 2009-01-07 深圳市金蝶移动互联技术有限公司 数据加密及解密方法、系统及设备
WO2009068658A1 (fr) * 2007-11-30 2009-06-04 Commissariat A L'energie Atomique Procedes et dispositifs de cryptage et de decryptage d'un message de donnees a cle secrete aleatoire
CN108304722A (zh) * 2017-12-21 2018-07-20 广州小鹏汽车科技有限公司 一种软件安装包及其生成方法、升级方法和系统
WO2019037411A1 (zh) * 2017-08-22 2019-02-28 深圳光启智能光子技术有限公司 数据传输方法、装置、存储介质和处理器
CN109583217A (zh) * 2018-11-21 2019-04-05 深圳市易讯天空网络技术有限公司 一种互联网电商平台用户隐私数据加密及解密方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009068658A1 (fr) * 2007-11-30 2009-06-04 Commissariat A L'energie Atomique Procedes et dispositifs de cryptage et de decryptage d'un message de donnees a cle secrete aleatoire
CN101340279A (zh) * 2008-07-09 2009-01-07 深圳市金蝶移动互联技术有限公司 数据加密及解密方法、系统及设备
WO2019037411A1 (zh) * 2017-08-22 2019-02-28 深圳光启智能光子技术有限公司 数据传输方法、装置、存储介质和处理器
CN108304722A (zh) * 2017-12-21 2018-07-20 广州小鹏汽车科技有限公司 一种软件安装包及其生成方法、升级方法和系统
CN109583217A (zh) * 2018-11-21 2019-04-05 深圳市易讯天空网络技术有限公司 一种互联网电商平台用户隐私数据加密及解密方法

Also Published As

Publication number Publication date
CN115801274A (zh) 2023-03-14

Similar Documents

Publication Publication Date Title
US7929692B2 (en) Firmware encrypting and decrypting method and an apparatus using the same
US8381307B2 (en) Method for protecting a converted applet (CAP) file including encrypting the CAP file
US8634549B2 (en) Ciphertext key chaining
US20130138961A1 (en) Communication terminal, communication system, communication method and communication program
CN110912690A (zh) 一种数据加密和解密方法、车辆和存储介质
CN108418893A (zh) 一种智能设备固件安全升级的方法
US8392723B2 (en) Information processing apparatus and computer readable medium for preventing unauthorized operation of a program
KR20090016282A (ko) 콘텐츠의 선택적인 부분 암호화를 위한 drm 시스템 및방법
CN105162588A (zh) 一种媒体文件加解密方法和装置
US20110182419A1 (en) Encryption algorithm with randomized buffer
US9571273B2 (en) Method and system for the accelerated decryption of cryptographically protected user data units
US8804953B2 (en) Extensive ciphertext feedback
US8041033B2 (en) Cipher feedback with variable block chaining
CN107992760B (zh) 秘钥写入方法、装置、设备及存储介质
US20200351108A1 (en) Semiconductor device, update data-providing method, update data-receiving method, and program
CN115801274B (zh) 一种固件保护方法
US20100061551A1 (en) Encryption/decryption apparatus and method using aes rijndael algorithm
US7519179B2 (en) Information transmission apparatus and method, information reception apparatus and method, and information-providing system
CN112528309A (zh) 一种数据存储加密和解密的方法及其装置
JP2020187184A (ja) 暗号復号装置
CN116132041A (zh) 密钥处理方法、装置、存储介质及电子设备
JPH104403A (ja) 暗号化装置、復号化装置およびその方法
KR101999209B1 (ko) 가상 함수 테이블 포인터 암호화 시스템 및 그 방법
CN111988133B (zh) 系统sm4加密解密验证方法、装置、设备、及存储介质
CN109656600B (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