CN111832011A - 一种基于iap的固件安全升级方法及装置 - Google Patents

一种基于iap的固件安全升级方法及装置 Download PDF

Info

Publication number
CN111832011A
CN111832011A CN202010656280.7A CN202010656280A CN111832011A CN 111832011 A CN111832011 A CN 111832011A CN 202010656280 A CN202010656280 A CN 202010656280A CN 111832011 A CN111832011 A CN 111832011A
Authority
CN
China
Prior art keywords
packet
firmware
file
grouping
plaintext
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
CN202010656280.7A
Other languages
English (en)
Other versions
CN111832011B (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.)
Zhengzhou Xinda Jiean Information Technology Co Ltd
Original Assignee
Zhengzhou Xinda Jiean Information 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 Zhengzhou Xinda Jiean Information Technology Co Ltd filed Critical Zhengzhou Xinda Jiean Information Technology Co Ltd
Priority to CN202010656280.7A priority Critical patent/CN111832011B/zh
Publication of CN111832011A publication Critical patent/CN111832011A/zh
Application granted granted Critical
Publication of CN111832011B publication Critical patent/CN111832011B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提出一种基于IAP的固件安全升级方法,包括固件生成过程:将升级包的明文文件PF进行分组得到明文文件分组PF[i];根据明文文件分组PF[i]依次生成前缀分组PR[i]、后缀分组CS[i];将前缀分组PR[i]、明文文件分组PF[i]和后缀分组CS[i]按照序号拼接,并对拼接后的文件分组进行加密获得密文文件分组CF[i];固件升级过程:将接收到的密文文件分组CF[i]进行解密后获得前缀分组PR’[i]、明文文件分组PF’[i]和后缀分组CS’[i];通过对后缀分组CS’[i]进行验证;根据前缀分组PR’[i]将明文文件分组PF’[i]写入相应的Flash地址中进行固件升级。

Description

一种基于IAP的固件安全升级方法及装置
技术领域
本发明涉及安全通信技术领域,具体涉及一种基于IAP的固件安全升级方法及装置。
背景技术
在应用编程(IAP,In Application Programming),是指通过任何一种通信接口(如IO端口、USB、CAN、UART、I2C、SPI等)下载程序或者应用数据到存储器中,通过调用特定的Bootloader程序,对程序存储器的指定段进行读/写操作,从而实现对目标板的程序的修改。IAP是用户自己的程序在运行过程中对User Flash 的部分区域进行烧写,目的是为了在产品发布后可以方便地通过预留的通信口对产品中的固件程序进行更新升级。
目前,通过IAP的方式进行固件升级过程中存在升级数据包容易泄露和篡改等安全隐患,因此如何提高基于IAP方式的固件升级过程的安全性和升级包固件文件自身的安全性是目前急需解决的问题。
发明内容
本发明针对上述问题,有必要提供一种基于IAP的固件安全升级方法及装置,其能够有效提高升级过程的安全性和升级包固件文件自身的安全性。
本发明第一方面提出一种基于IAP的固件安全升级方法,所述固件安全升级方法包括:固件生成过程和固件升级过程;
所述固件生成过程:
将升级包的明文文件PF进行分组得到明文文件分组PF[i],i∈[0, N];
对所述明文文件分组PF[i] 进行第一处理,获得前缀分组PR[i];
对所述明文文件分组PF[i] 进行第二处理,获得后缀分组CS[i];
将所述前缀分组PR[i]、所述明文文件分组PF[i]和所述后缀分组CS[i]按照序号拼接,并对拼接后的文件分组进行加密获得密文文件分组CF[i];
所述固件升级过程:
将接收到的所述密文文件分组CF[i]进行解密后获得前缀分组PR’[i]、明文文件分组PF’[i]和后缀分组CS’[i];
通过对所述后缀分组CS’[i]进行验证,验证通过则根据所述前缀分组PR’[i]将明文文件分组PF’[i]写入相应的Flash地址中进行固件升级;否则,退出当前过程。
进一步的,在所述固件生成过程中,将升级包的明文文件PF进行分组得到明文文件分组PF[i]具体包括:将升级包的明文文件PF按照使用的加密算法分组大小BS的整数倍进行分组,长度不够进行补位;以及
在所述固件生成过程中,对所述明文文件分组PF[i]进行第一处理时,执行:根据所述明文文件分组PF[i],以分组序号作为四字节整型i和分组总数作为四字节整型N生成前缀分组PR[i]。
进一步的,在所述固件生成过程中,对所述明文文件分组PF[i]进行第二处理时,执行:对所述明文文件分组PF[i]依次进行摘要运算,并进行摘要运算结果的长度截取后生成后缀分组CS[i];所述截取长度应使前缀分组PR[i]、明文文件分组PF[i]和后缀分组CS[i]之和为使用的加密算法分组大小BS的整数倍;以及
在所述固件升级过程中,通过对所述后缀分组CS’[i]进行验证时,执行:对所述明文文件分组PF’[i]依次进行摘要运算,并将摘要运算结果进行长度截取后,与所述后缀分组CS’[i]的内容进行比对验证。
进一步的,所述固件生成过程中,获得密文文件分组CF[i]之后还包括:
将所述密文文件分组CF[i]顺序随机打乱后得到密文文件乱序分组CFS[i];
将所述密文文件乱序分组CFS[i]添加一分组长度生成升级包固件文件CF;其中,所述分组长度的内容为对所述明文文件PF进行摘要值计算后生成的第一摘要值信息;以及
在所述固件升级过程中,将明文文件分组PF’[i]写入相应的Flash地址进行固件升级之后还包括:
通过对收到的升级包固件文件CF中的分组长度的内容进行验证;其中,所述对分组长度的内容进行验证包括:对明文文件PF’进行摘要值计算后生成第二摘要值信息,并与所述第一摘要值信息进行比对验证,若验证通过,则判定固件升级成功;否则,判定固件升级失败。
进一步的,所述固件生成过程中的加密和所述固件升级过程中的解密处理采用硬件安全芯片实现;所述加密和解密采用对称加解密算法或者非对称加解密算法。
进一步的,所述flash划分为Bootloader区和Application区,其中Bootloader分区起始地址为Address1,Application分区起始地址为Address2;在所述固件升级过程中,将明文文件分组PF’[i]按顺序写入Flash Application区相应的地址进行固件升级。
需要说明的是,本发明能够适用于数字货币硬件产品内芯片固件升级、网络安全产品芯片固件升级、各类终端产品芯片固件升级等应用场景。
本发明还提出一种基于IAP的固件安全升级装置,所述固件安全升级装置包括:固件生成装置和固件升级装置,所述固件生成装置包括分组模块、拼接模块、第一安全模块;所述固件升级装置包括:第二安全模块、验证模块和升级模块;
所述分组模块,用于将升级包的明文文件PF进行分组处理得到明文文件分组PF[i];还用于对所述明文文件分组PF[i]进行第一处理,获得前缀分组PR[i];以及用于对所述明文文件分组PF[i]进行第二处理,获得后缀分组CS[i];其中,i∈[0, N];
所述拼接模块,用于将所述前缀分组PR[i]、所述明文文件分组PF[i]和所述后缀分组CS[i]按照序号拼接;
所述第一安全模块,用于对拼接后的文件分组进行加密获得密文文件分组CF[i];
所述第二安全模块,用于将接收到的所述密文文件分组CF[i]进行解密后获得前缀分组PR’[i]、明文文件分组PF’[i]和后缀分组CS’[i];
所述验证模块,用于对所述后缀分组CS’[i]进行验证;
所述升级模块,用于在所述验证模块验证通过后,根据所述前缀分组PR’[i]将明文文件分组PF’[i]写入相应的Flash地址中进行固件升级。
进一步的,所述分组模块用于将升级包的明文文件PF进行分组处理得到明文文件分组PF[i],具体包括:所述分组模块将升级包的明文文件PF按照使用的加密算法分组大小BS的整数倍进行分组,长度不够进行补位;以及
所述分组模块用于对所述明文文件分组PF[i]进行第一处理,获得前缀分组PR[i],具体包括:所述分组模块根据所述明文文件分组PF[i],以分组序号作为四字节整型i和分组总数作为四字节整型N生成前缀分组PR[i]。
进一步的,所述分组模块用于对所述明文文件分组PF[i]进行第二处理,获得后缀分组CS[i],具体包括:所述分组模块根据所述明文文件分组PF[i]依次进行摘要运算后,并进行摘要运算结果的长度截取后生成后缀分组CS[i];所述截取长度应使前缀分组PR[i]、明文文件分组PF[i]和后缀分组CS[i]之和为使用的加密算法分组大小BS的整数倍;以及
所述验证模块用于对所述后缀分组CS’[i]进行验证具体包括:所述验证模块通过对所述明文文件分组PF’[i]依次进行摘要运算后,并将摘要运算结果进行长度截取后,与所述后缀分组CS’[i]的内容进行比对验证。
进一步的,所述固件生成装置还包括:乱序模块和添加模块;
所述乱序模块,用于将所述密文文件分组CF[i]顺序随机打乱后得到密文文件乱序分组CFS[i];
所述添加模块,用于对所述密文文件乱序分组CFS[i]添加一分组长度生成升级包固件文件CF;其中,所述分组长度的内容为对所述明文文件PF进行摘要值计算后生成的第一摘要值信息;以及
所述验证模块,还用于通过对收到的升级包固件文件CF中的分组长度内容进行验证;其中,所述对分组长度的内容进行验证包括:对明文文件PF’进行摘要值计算后生成第二摘要值信息,并与所述第一摘要值信息进行比对验证,若验证通过,则判定固件升级成功;否则,判定固件升级失败。
本发明具有突出的实质性特点和显著的进步,具体的说:
(1)在固件生成过程中,通过将明文文件PF按照使用的加密算法分组大小的整数倍进行分组、添加前缀分组和后缀分组,并进行加密运算后生成密文的升级包固件文件;以及在固件升级过程中,通过对密文的升级包固件文件进行解密后获得升级包固件文件的明文,能够提升升级包固件文件的安全性,防止升级包固件文件泄露或篡改,从而提高升级过程的安全性;
(2)在固件生成过程中,通过对明文文件分组依次进行摘要运算获得后缀分组;以及在固件升级过程中,通过对解密后获得的明文文件分组依次进行摘要运算获得新的后缀分组,与解密后获得的后缀分组进行比对验证,从而实现后缀分组的验证,以分块确认升级包是否被篡改,保证获得的固件升级文件的正确性;
(3)在固件生成过程中,通过将密文文件分组顺序随机打乱后获得密文文件乱序分组,能够有效防止在固件升级过程中的侧信道攻击而获得正确的明文固件文件,进一步提升升级包固件文件的安全性,防止升级包固件文件泄露或篡改;
(4)在固件生成过程中,通过对密文文件乱序分组添加包括明文文件摘要值信息的分组长度;以及在固件升级过程中,通过对解密后的明文文件进行摘要值信息计算后获得新的分组长度内容,并与解密后获得的分组长度内容进行比对验证,从而实现分组长度内容的验证,保证获得的固件升级文件整体的完整性。
本发明的附加方面和优点将在下面的描述部分中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出本发明一种基于IAP的固件安全升级方法流程图;
图2示出本发明一种基于IAP的固件安全升级系统原理框图;
图3示出本发明一种基于IAP的固件安全升级方法中固件生成过程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
如图1所示,本发明第一方面提出一种基于IAP的固件安全升级方法,所述固件安全升级方法包括:固件生成过程和固件升级过程;
所述固件生成过程:
将升级包的明文文件PF进行分组处理得到明文文件分组PF[i],i∈[0, N];
对所述明文文件分组PF[i] 进行第一处理,获得前缀分组PR[i];
对所述明文文件分组PF[i] 进行第二处理,获得后缀分组CS[i];
将所述前缀分组PR[i]、所述明文文件分组PF[i]和所述后缀分组CS[i]按照序号拼接,并对拼接后的文件分组进行加密获得密文文件分组CF[i];
所述固件升级过程:
将接收到的所述密文文件分组CF[i]进行解密后获得前缀分组PR’[i]、明文文件分组PF’[i]和后缀分组CS’[i];
通过对所述后缀分组CS’[i]进行验证,验证通过则根据所述前缀分组PR’[i]将明文文件分组PF’[i]写入相应的Flash地址中进行固件升级;否则,退出当前过程。
具体的,在所述固件生成过程中,将升级包的明文文件PF进行分组处理得到明文文件分组PF[i]时,执行:将升级包的明文文件PF按照使用的加密算法分组大小BS的整数倍进行分组,长度不够进行补位;以及
在所述固件生成过程中,对所述明文文件分组PF[i]进行第一处理时,执行:根据所述明文文件分组PF[i],以分组序号作为四字节整型i和分组总数作为四字节整型N生成前缀分组PR[i]。
需要说明的是,本申请通过对原始升级包文件进行分组处理,实现分组保护;通过引入前缀分组实现明文文件分组PF’[i]按顺序写入相应的Flash地址中进行固件升级;通过引入后缀分组CS[i]实现每个明文文件分组PF[i]的单独校验,从而有利于分析升级包的明文文件PF每个明文文件分组是否被非法篡改,进而统计出升级包的明文文件PF各部分发生被非法篡改等事件的概率,便于针对性采取措施,提高升级包固件文件的安全性,防止升级包固件文件泄露或篡改。
具体的,在所述固件生成过程中,对所述明文文件分组PF[i]进行第二处理时,执行:根据所述明文文件分组PF[i]依次进行摘要运算后,并进行摘要运算结果的长度截取后生成后缀分组CS[i];所述截取长度应使前缀分组PR[i]、明文文件分组PF[i]和后缀分组CS[i]之和为使用的加密算法分组大小BS的整数倍;以及
在所述固件升级过程中,通过对所述后缀分组CS’[i]进行验证时,执行:通过对所述明文文件分组PF’[i]依次进行摘要运算后,并将摘要运算结果进行长度截取后,与所述后缀分组CS’[i]的内容进行比对验证。
需要说明的是,由于在所述固件生成过程中,引入了后缀分组CS[i];因此,在固件升级过程中,升级方可以通过分别检验解密后获得的后缀分组CS’[i]的准确性,分析升级包的明文文件PF每个明文文件分组是否被非法篡改;进而提高升级过程的安全性。
具体的,所述固件生成过程中,获得密文文件分组CF[i]之后还包括:
将所述密文文件分组CF[i]顺序随机打乱后得到密文文件乱序分组CFS[i];
将所述密文文件乱序分组CFS[i]添加一分组长度生成升级包固件文件CF;其中,所述分组长度的内容为对所述明文文件PF进行摘要值计算后生成的第一摘要值信息;以及
在所述固件升级过程中,将明文文件分组PF’[i]写入相应的Flash地址进行固件升级之后还包括:
通过对收到的升级包固件文件CF中的分组长度的内容进行验证;其中,所述对分组长度内容进行验证包括:对明文文件PF’进行摘要值计算后生成第二摘要值信息,并与所述第一摘要值信息进行比对验证,若验证通过,则判定固件升级成功;否则,判定固件升级失败。
需要说明的是,在具体实施例中,本发明还通过对密文文件分组CF[i]顺序随机打乱后得到密文文件乱序分组CFS[i],进而提高升级包文件的破解难度,有效提高升级包固件文件的安全性,防止升级包固件文件泄露或篡改。
在其他实施例中,除了引入后缀分组CS[i],还引入分组长度,进一步提高升级包文件的安全性;相应的,在固件升级过程中,升级方获得整个明文文件PF’后,对整个明文文件PF’进行摘要值计算后生成第二摘要值信息;通过第二摘要值信息与第一摘要值信息进行比对,进而确认整个明文文件PF’是否被非法篡改,保证获得的固件升级文件整体的完整性。
具体的,所述固件生成过程中的加密和所述固件升级过程中的解密处理采用硬件安全芯片实现;所述加密和解密采用对称加解密算法或者非对称加解密算法。
可以理解,在将所述前缀分组PR[i]、所述明文文件分组PF[i]和所述后缀分组CS[i]按照序号拼接后,本发明通过对称加解密算法或者非对称加解密算法对拼接后的文件分组进行加密,进而获得密文文件分组CF[i];从而提高升级包固件文件的安全性,防止升级包固件文件泄露或篡改。
具体的,所述flash划分为Bootloader区和Application区,其中Bootloader分区起始地址为Address1,Application分区起始地址为Address2;在所述固件升级过程中,将明文文件分组PF’[i]按分组序号顺序写入Flash Application区相应的地址进行固件升级。
如图2所示,本发明还提出一种基于IAP的固件安全升级装置,所述固件安全升级装置包括:固件生成装置和固件升级装置,所述固件生成装置包括分组模块、拼接模块、第一安全模块;所述固件升级装置包括:第二安全模块、验证模块和升级模块;
所述分组模块,用于将升级包的明文文件PF进行分组得到明文文件分组PF[i];还用于对所述明文文件分组PF[i]进行第一处理,获得前缀分组PR[i];以及用于对所述明文文件分组PF[i]进行第二处理,获得后缀分组CS[i];其中,i∈[0, N];
所述拼接模块,用于将所述前缀分组PR[i]、所述明文文件分组PF[i]和所述后缀分组CS[i]按照序号拼接;
所述第一安全模块,用于对拼接后的文件分组进行加密获得密文文件分组CF[i];
所述第二安全模块,用于将接收到的所述密文文件分组CF[i]进行解密后获得前缀分组PR’[i]、明文文件分组PF’[i]和后缀分组CS’[i];
所述验证模块,用于对所述后缀分组CS’[i]进行验证;
所述升级模块,用于在所述验证模块验证通过后,根据所述前缀分组PR’[i]将明文文件分组PF’[i]写入相应的Flash地址中进行固件升级。
具体的,所述分组模块用于将升级包的明文文件PF进行分组处理得到明文文件分组PF[i]具体包括:所述分组模块将升级包的明文文件PF按照使用的加密算法分组大小BS的整数倍进行分组,长度不够进行补位;以及
所述分组模块用于对所述明文文件分组PF[i]进行第一处理,获得前缀分组PR[i],具体包括:所述分组模块根据所述明文文件分组PF[i],以分组序号作为四字节整型i和分组总数作为四字节整型N生成前缀分组PR[i]。
具体的,所述分组模块用于对所述明文文件分组PF[i]进行第二处理,获得后缀分组CS[i],具体包括:所述分组模块对所述明文文件分组PF[i]依次进行摘要运算,并进行摘要运算结果的长度截取后生成后缀分组CS[i];所述截取长度应使前缀分组PR[i]、明文文件分组PF[i]和后缀分组CS[i]之和为使用的加密算法分组大小BS的整数倍;以及
所述验证模块用于对所述后缀分组CS’[i]进行验证,具体包括:所述验证模块通过对所述明文文件分组PF’[i]依次进行摘要运算,并将摘要运算结果进行长度截取后,与所述后缀分组CS’[i]的内容进行比对验证。
具体的,所述固件生成装置还包括乱序模块和添加模块;
所述乱序模块,用于将所述密文文件分组CF[i]顺序随机打乱后得到密文文件乱序分组CFS[i];
所述添加模块,用于对所述密文文件乱序分组CFS[i]添加一分组长度生成升级包固件文件CF;其中,所述分组长度的内容为对所述明文文件PF进行摘要值计算后生成的第一摘要值信息;以及
所述验证模块,还用于通过对收到的升级包固件文件CF中的分组长度的内容进行验证;其中,所述对分组长度的内容进行验证包括:对明文文件PF’进行摘要值计算后生成第二摘要值信息,并与所述第一摘要值信息进行比对验证,若验证通过,则判定固件升级成功;否则,判定固件升级失败。
如图3所示,在具体的实施例中,固件生成过程具体实现包括:
1)准备原始明文文件PF;
2)将原始明文文件PF进行分组得到明文文件分组PF[i],i∈[0, N];分组大小BS是使用的对称加密算法分组大小的整数倍,长度不够进行补位。
3)根据明文文件分组PF[i]生成前缀分组PR[i],i∈[0, N];分组内容为四字节整型i和四字节整型N;
4)根据明文文件分组PF[i]生成后缀分组CS[i],i∈[0, N];分组内容为对明文文件分组PF[i]进行摘要运算结果的截取,截取长度应为使用的对称加密算法分组大小的整数倍;
5)将前缀分组PR[i]、明文文件分组PF[i]、后缀分组CS[i]按照序号拼接,对拼接后的分组使用对称加密算法加密得到CF[i],i∈[0, N];
6)将CF[i]顺序随机打乱,得到CFS[i] ,i∈[0, N];
7)在CFS[i]的文件最后添加一包括有明文文件PF的摘要值信息的分组长度内容,得到升级包固件文件CF。
本发明在固件生成过程中,通过将明文文件PF按照使用的加密算法分组大小的整数倍进行分组、添加前缀分组和后缀分组,并进行加密运算后生成密文的升级包固件文件;以及在固件升级过程中,通过对密文的升级包固件文件进行解密后获得升级包固件文件的明文,能够提升升级包固件文件的安全性,防止升级包固件文件泄露或篡改;
在固件生成过程中,通过对明文文件分组依次进行摘要运算获得后缀分组;以及在固件升级过程中,通过对解密后获得的明文文件分组依次进行摘要运算获得新的后缀分组,与解密后获得的后缀分组进行比对验证,从而实现后缀分组的验证,保证获得的固件升级文件的正确性;
在固件生成过程中,通过将密文文件分组顺序随机打乱后获得密文文件乱序分组,能够有效防止在固件升级过程中的侧信道攻击而获得正确的明文固件文件;
在固件生成过程中,通过对密文文件乱序分组添加包括明文文件摘要值信息的分组长度;以及在固件升级过程中,通过对解密后的明文文件进行摘要值信息计算后获得新的分组长度内容,并与解密后获得的分组长度内容进行比对验证,从而实现分组长度内容的验证,保证获得的固件升级文件整体的完整性。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于IAP的固件安全升级方法,所述固件安全升级方法包括:固件生成过程和固件升级过程;
所述固件生成过程:
将升级包的明文文件PF进行分组处理得到明文文件分组PF[i],i∈[0, N];
对所述明文文件分组PF[i]进行第一处理,获得前缀分组PR[i];
对所述明文文件分组PF[i]进行第二处理,获得后缀分组CS[i];
将所述前缀分组PR[i]、所述明文文件分组PF[i]和所述后缀分组CS[i]按照序号拼接,并对拼接后的文件分组进行加密获得密文文件分组CF[i];
所述固件升级过程:
将接收到的所述密文文件分组CF[i]进行解密后获得前缀分组PR’[i]、明文文件分组PF’[i]和后缀分组CS’[i];
对所述后缀分组CS’[i]进行验证,验证通过则根据所述前缀分组PR’[i]将明文文件分组PF’[i]写入相应的Flash地址中进行固件升级;否则,退出当前过程。
2.根据权利要求1所述的固件安全升级方法,其特征在于,在所述固件生成过程中,将升级包的明文文件PF进行分组处理得到明文文件分组PF[i]时,执行:将升级包的明文文件PF按照使用的加密算法分组大小BS的整数倍进行分组,长度不够进行补位;以及
在所述固件生成过程中,对所述明文文件分组PF[i]进行第一处理时,执行:根据所述明文文件分组PF[i],以分组序号作为四字节整型i和分组总数作为四字节整型N生成前缀分组PR[i]。
3.根据权利要求1所述的固件安全升级方法,其特征在于,在所述固件生成过程中,对所述明文文件分组PF[i]进行第二处理时,执行:对所述明文文件分组PF[i]依次进行摘要运算,并进行摘要运算结果的长度截取后生成后缀分组CS[i];所述截取长度为使用的加密算法分组大小的整数倍;以及
在所述固件升级过程中,对所述后缀分组CS’[i]进行验证时,执行:对所述明文文件分组PF’[i]依次进行摘要运算,并将摘要运算结果进行长度截取后,与所述后缀分组CS’[i]的内容进行比对验证。
4.根据权利要求1所述的固件安全升级方法,其特征在于,所述固件生成过程中,获得密文文件分组CF[i]之后还包括:
将所述密文文件分组CF[i]顺序随机打乱后得到密文文件乱序分组CFS[i];
将所述密文文件乱序分组CFS[i]添加一分组长度生成升级包固件文件CF;其中,所述分组长度的内容为对所述明文文件PF进行摘要值计算后生成的第一摘要值信息;以及
在所述固件升级过程中,将明文文件分组PF’[i]写入相应的Flash地址进行固件升级之后还包括:
对收到的升级包固件文件CF中的分组长度的内容进行验证;其中,所述对分组长度的内容进行验证包括:对明文文件PF’进行摘要值计算后生成第二摘要值信息,并与所述第一摘要值信息进行比对验证,若验证通过,则判定固件升级成功;否则,判定固件升级失败。
5.根据权利要求1所述的固件安全升级方法,其特征在于,所述固件生成过程中的加密和所述固件升级过程中的解密处理采用硬件安全芯片实现;所述加密和解密采用对称加解密算法或者非对称加解密算法。
6.根据权利要求1所述的固件安全升级方法,其特征在于,所述flash划分为Bootloader区和Application区,其中Bootloader分区起始地址为Address1,Application分区起始地址为Address2;在所述固件升级过程中,将明文文件分组PF’[i]按顺序写入Flash Application区相应的地址进行固件升级。
7.一种基于IAP的固件安全升级装置,其特征在于,所述固件安全升级装置包括固件生成装置和固件升级装置,所述固件生成装置包括分组模块、拼接模块、第一安全模块;所述固件升级装置包括:第二安全模块、验证模块和升级模块;
所述分组模块,用于将升级包的明文文件PF进行分组处理得到明文文件分组PF[i];还用于对所述明文文件分组PF[i]进行第一处理,获得前缀分组PR[i];以及对所述明文文件分组PF[i]进行第二处理,获得后缀分组CS[i];其中,i∈[0, N];
所述拼接模块,用于将所述前缀分组PR[i]、所述明文文件分组PF[i]和所述后缀分组CS[i]按照序号拼接;
所述第一安全模块,用于对拼接后的文件分组进行加密获得密文文件分组CF[i];
所述第二安全模块,用于将接收到的所述密文文件分组CF[i]进行解密后获得前缀分组PR’[i]、明文文件分组PF’[i]和后缀分组CS’[i];
所述验证模块,用于对所述后缀分组CS’[i]进行验证;
所述升级模块,用于在所述验证模块验证通过后,根据所述前缀分组PR’[i]将明文文件分组PF’[i]写入相应的Flash地址中进行固件升级。
8.根据权利要求7所述的固件安全升级装置,其特征在于,所述分组模块用于将待升级的明文文件PF进行分组处理得到明文文件分组PF[i],具体包括:所述分组模块将升级包的明文文件PF按照使用的加密算法分组大小BS的整数倍进行分组,长度不够进行补位;以及
所述分组模块用于对所述明文文件分组PF[i]进行第一处理,获得前缀分组PR[i],具体包括:所述分组模块根据所述明文文件分组PF[i],以分组序号作为四字节整型i和分组总数作为四字节整型N生成前缀分组PR[i]。
9.根据权利要求7所述的固件安全升级装置,其特征在于,所述分组模块用于对所述明文文件分组PF[i]进行第二处理,获得后缀分组CS[i],具体包括:所述分组模块对所述明文文件分组PF[i]依次进行摘要运算,并进行摘要运算结果的长度截取后生成后缀分组CS[i];所述截取长度应使前缀分组PR[i]、明文文件分组PF[i]和后缀分组CS[i]之和为使用的加密算法分组大小BS的整数倍;以及
所述验证模块用于对所述后缀分组CS’[i]进行验证,具体包括:所述验证模块通过对所述明文文件分组PF’[i]依次进行摘要运算,并将摘要运算结果进行长度截取后,与所述后缀分组CS’[i]的内容进行比对验证。
10.根据权利要求7所述的固件安全升级装置,其特征在于,所述固件生成装置还包括乱序模块和添加模块;
所述乱序模块,用于将所述密文文件分组CF[i]顺序随机打乱后得到密文文件乱序分组CFS[i];
所述添加模块,用于对所述密文文件乱序分组CFS[i]添加一分组长度生成升级包固件文件CF;其中,所述分组长度的内容为对所述明文文件PF进行摘要值计算后生成的第一摘要值信息;以及
所述验证模块,还用于通过对收到的升级包固件文件CF中的分组长度的内容进行验证;其中,对分组长度的内容进行验证包括:对明文文件PF’进行摘要值计算后生成第二摘要值信息,并与所述第一摘要值信息进行比对验证,若验证通过,则判定固件升级成功;否则,判定固件升级失败。
CN202010656280.7A 2020-07-09 2020-07-09 一种基于iap的固件安全升级方法及装置 Active CN111832011B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010656280.7A CN111832011B (zh) 2020-07-09 2020-07-09 一种基于iap的固件安全升级方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010656280.7A CN111832011B (zh) 2020-07-09 2020-07-09 一种基于iap的固件安全升级方法及装置

Publications (2)

Publication Number Publication Date
CN111832011A true CN111832011A (zh) 2020-10-27
CN111832011B CN111832011B (zh) 2022-03-15

Family

ID=72900272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010656280.7A Active CN111832011B (zh) 2020-07-09 2020-07-09 一种基于iap的固件安全升级方法及装置

Country Status (1)

Country Link
CN (1) CN111832011B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113221149A (zh) * 2021-05-27 2021-08-06 深圳市共进电子股份有限公司 固件加密方法、装置、固件解密方法和计算机设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158544A (zh) * 2011-02-25 2011-08-17 深圳市元征软件开发有限公司 车载电子装置的远程升级方法及装置
US20130047144A1 (en) * 2011-08-19 2013-02-21 International Business Machines Corporation Protection for Unauthorized Firmware and Software Upgrades to Consumer Electronic Devices
CN108255510A (zh) * 2017-12-22 2018-07-06 芯海科技(深圳)股份有限公司 一种基于iap在线升级待升级固件传输校验设计方法
CN110393019A (zh) * 2017-08-30 2019-10-29 华为技术有限公司 更新固件的方法及相关装置
CN110909316A (zh) * 2019-11-14 2020-03-24 武汉正维电子技术有限公司 一种单片机软件的加密保护方法及存储介质
CN111143856A (zh) * 2019-12-27 2020-05-12 郑州信大捷安信息技术股份有限公司 一种plc远程固件升级系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158544A (zh) * 2011-02-25 2011-08-17 深圳市元征软件开发有限公司 车载电子装置的远程升级方法及装置
US20130047144A1 (en) * 2011-08-19 2013-02-21 International Business Machines Corporation Protection for Unauthorized Firmware and Software Upgrades to Consumer Electronic Devices
CN110393019A (zh) * 2017-08-30 2019-10-29 华为技术有限公司 更新固件的方法及相关装置
CN108255510A (zh) * 2017-12-22 2018-07-06 芯海科技(深圳)股份有限公司 一种基于iap在线升级待升级固件传输校验设计方法
CN110909316A (zh) * 2019-11-14 2020-03-24 武汉正维电子技术有限公司 一种单片机软件的加密保护方法及存储介质
CN111143856A (zh) * 2019-12-27 2020-05-12 郑州信大捷安信息技术股份有限公司 一种plc远程固件升级系统及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
TAN CHAOXIN 等: "Design and Implementation of Remote Firmware Update System Based on IAP Technology", 《CHINESE JOURNAL OF MEDICAL INSTRUMENTATION》 *
孙华 等: "一种通过USB接口的可靠固件升级技术", 《单片机与嵌入式系统应用》 *
曹欲晓 等: "一种基于CPUID和AES算法的STM32固件升级方案", 《电子技术应用》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113221149A (zh) * 2021-05-27 2021-08-06 深圳市共进电子股份有限公司 固件加密方法、装置、固件解密方法和计算机设备
CN113221149B (zh) * 2021-05-27 2024-02-09 深圳市共进电子股份有限公司 固件加密方法、装置、固件解密方法和计算机设备

Also Published As

Publication number Publication date
CN111832011B (zh) 2022-03-15

Similar Documents

Publication Publication Date Title
CA2450844C (en) A method for securing an electronic device, a security system and an electronic device
CN101443774B (zh) 优化完整性验证过程的方法和系统
JP2005071328A (ja) セキュアデバイス、情報処理端末、集積回路、端末アプリ生成装置、アプリケーション認証方法
CN108496323B (zh) 一种证书导入方法及终端
CN114662087B (zh) 一种多端验证的安全芯片固件更新方法及装置
CN109829294A (zh) 一种固件验证方法、系统、服务器及电子设备
CN110378104A (zh) 一种升级防纂改的方法
CN102572595A (zh) Iptv的升级包结构、升级方法以及开机校验方法
US20030059049A1 (en) Method and apparatus for secure mobile transaction
CN106550359A (zh) 一种终端和sim卡的认证方法和系统
CN112346759A (zh) 一种固件升级方法、装置及计算机可读存储介质
EP1561301B1 (en) Software integrity test in a mobile telephone
CN112311718A (zh) 检测硬件的方法、装置、设备及存储介质
CN111950035A (zh) 对apk文件完整性保护的方法、系统、设备及存储介质
US20050049970A1 (en) Program creation apparatus
CN111832011B (zh) 一种基于iap的固件安全升级方法及装置
CN111585995A (zh) 安全风控信息传输、处理方法、装置、计算机设备及存储介质
US9100374B2 (en) Method for managing remote upgrading keys in an information security apparatus
CN114040221B (zh) 基于机顶盒服务器端双签名的安全认证的防拷贝方法
CN106888094A (zh) 一种签名方法及服务器
CN107222453A (zh) 一种文件传输方法及装置
CN114817956A (zh) 一种usb通信对象验证方法、系统、装置及存储介质
CN114531246A (zh) 数据下载方法及装置
CN115935379A (zh) 业务处理方法、装置、设备及计算机可读存储介质
CN113592638A (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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Firmware Security Upgrade Method and Device Based on IAP

Granted publication date: 20220315

Pledgee: Bank of Zhengzhou Co.,Ltd. Zhongyuan Science and Technology City Sub branch

Pledgor: ZHENGZHOU XINDA JIEAN INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2024980007004

PE01 Entry into force of the registration of the contract for pledge of patent right