CN110955896A - 一种通过近场通信实现单片机固件安全升级的方法 - Google Patents

一种通过近场通信实现单片机固件安全升级的方法 Download PDF

Info

Publication number
CN110955896A
CN110955896A CN201911042341.4A CN201911042341A CN110955896A CN 110955896 A CN110955896 A CN 110955896A CN 201911042341 A CN201911042341 A CN 201911042341A CN 110955896 A CN110955896 A CN 110955896A
Authority
CN
China
Prior art keywords
chip microcomputer
single chip
file
upgrading
upgrade
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.)
Pending
Application number
CN201911042341.4A
Other languages
English (en)
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.)
Xi'an Haiyun Iot Technology Co Ltd
Original Assignee
Xi'an Haiyun Iot 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 Xi'an Haiyun Iot Technology Co Ltd filed Critical Xi'an Haiyun Iot Technology Co Ltd
Priority to CN201911042341.4A priority Critical patent/CN110955896A/zh
Publication of CN110955896A publication Critical patent/CN110955896A/zh
Pending legal-status Critical Current

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)

Abstract

一种通过近场通信实现单片机固件安全升级的方法,包括四个步骤,步骤A:使用MD5算法来校验单片机整个升级文件的完整性,具体应用中通过MD5算法分段对单片机升级文件进行完整性的校验;步骤B:将单片机升级文件加入特定的头部标识,对升级文件打包头部标识进行升级;步骤C:对单片机升级文件头部标识进行加密,保护单片机升级文件的头部信息标识;步骤D:经服务器部署固件单片机升级包,通过无线方式为单片机升级,提升操作安全性。本发明经MD5算法分段对升级文件进行校验,保证了升级文件完整性,经对升级文件打包头部标识升级、能让使用者了解到主要信息,对升级文件头部标识进行加密,使升级文件具有更好的安全性,能防止被随意获取或破解。

Description

一种通过近场通信实现单片机固件安全升级的方法
技术领域
本发明涉及单片机应用技术方法领域,特别是一种通过近场通信实现单片机固件安全升级的方法。
背景技术
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等(还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上、构成的一个小而完善的微型计算机系统,在工业及民用等控制领域等广泛应用。
单片机在应用中需要进行升级,以保证其工作性能以及功能的完善。目前单片机的升级一般是通过上位机和单片机的配合经有线通信方式升级,在实际应用中操作不便,有较大的局限性。再者,现有单片机的在线升级方案只是实现了如何对升级文件包进行打包处理升级,例如加入固定格式的头部标识(单片机升级包的主要摘要标记信息)来表示该升级包的信息,但是没有对升级文件的合法性、完整性、安全性给出具体的解决方案,导致升级文件容易被替换或被攻击,这样会对单片机的升级文件安全性带来影响。MD5加密算法(Message-Digest-Algorithm)是信息算法第五代,属于Hash(散列)算法一代。MD5加密算法的实现原理如下,填充:将输入信息进行512求余分组,若不等于448,那么进行填充1和0,填充时采用一个1和N个0,最后的数据就为N*512+448;记录信息长度:将得到的信息用64位存储填充之前的信息长度,这样448+64=512,总信息为N+1个512,以四个常数ABCD与每组512位进行函数运算,最后输出的结果就是4组32位的常数,拼接得到MD5码完成计算过程。MD5加密算法是一种单向加密算法,可以将输入的信息加密转换为128位固定长度的散列值,用于检验数据传输过程中的完整性。目前,还没有直接使用MD5算法校验单片机整个升级文件完整性的技术,无法对单片机的升级提供有力的技术支撑。
发明内容
为了克服现有技术中,单片机升级中存在的各种弊端,本发明提供了使用MD5算法校验单片机升级文件,能够确保升级文件的完整性,并能对升级文件打包头部标识进行升级、对头部标识进行加密,具有更好的安全性,将打包的升级文件部署到PC机服务器上,用户可以通过近场无线方式通信(如使用蓝牙传输的方式)来升级单片机,从而达到操作方便,提升了操作安全性的一种通过近场通信实现单片机固件安全升级的方法。
本发明解决其技术问题所采用的技术方案是:
一种通过近场通信实现单片机固件安全升级的方法,其特征在于包括四个步骤,步骤A:使用MD5算法来校验单片机整个升级文件的完整性,具体应用中通过MD5算法分段对单片机升级文件进行完整性的校验;步骤B:将单片机升级文件加入特定的头部标识,对升级文件打包头部标识进行升级;步骤C:对单片机升级文件头部标识进行加密,保护单片机升级文件的头部信息标识;步骤D:经服务器部署固件单片机升级包,通过无线方式为单片机升级,提升操作安全性;步骤A,使用MD5算法分段对升级文件进行完整性校验中,将一个单片机升级包文件分成n个1KByte的段落,使用MD5算法对单片机升级文件1KByte的数据段落进行计算,得出16字节的校验值,然后和第二个1KByte的数据组合再进行MD5算法的计算,依次循环下去,直到整个升级文件的校验结束,最后计算得到的全部n个1KByte段落16字节的校验值即为整个单片机升级文件的MD5校验值。
进一步地,所述步骤A,采用MD5加密算法对单片机升级文件一个1KByte的数据段落进行计算中,步骤一、填充:将输入信息进行512求余分组,若不等于448,那么进行填充1和0,填充时采用一个1和N个0,最后的数据就为N*512+448;步骤二、记录信息长度:将得到的信息用64位存储填充之前的信息长度,这样448+64=512,总信息为N+1个512,以四个常数ABCD与每组512位进行函数运算,最后输出的结果就是4组32位的常数,拼接得到MD5码、完成单片机升级文件一个1KByte数据段落的计算过程。
进一步地,所述步骤A,计算校验中,如果出现错误计算结果代表升级文件完整性缺失。
进一步地,所述步骤B中,对升级文件打包头部标识进行升级,打包头部标识格式如下,固件版本号、固件大小、固件MD5校验值、头部标识校验值,其中固件版本号为3Bytes、固件大小为3Bytes、MD5值为16Bytes、CRC校验值为1Byte。
进一步地,所述步骤C中,在本地对单片机升级文件的头部信息标识,采用AES对称加密算法进行加密,形成的密文能防止被随意的获取或破解,将加密后的密文和单片机升级文件一起打包形成最终的单片机升级文件。
进一步地,所述步骤D中,把经过步骤A校验,步骤B对升级文件打包头部标识进行升级、步骤C升级文件头部标识加密后单片机升级包部署在服务器,需要升级单片机时,将升级文件包经过蓝牙传输等方式传递给单片机来实现升级,近场无线通信能够提升操作的安全性。
本发明的有益效果是:本发明在应用中,充分利用了MD5加密算法可以用于检验数据传输过程中的完整的特点,应用中通过MD5算法分段对单片机升级文件进行完整性的校验,保证了单片机升级文件的完整性。通过对升级文件打包头部标识进行升级、能让使用者了解到升级包的具体主要信息,对单片机升级文件头部标识进行加密,使升级文件具有更好的安全性,形成的密文能防止被随意的获取或破解。克服了现有技术中,没有对升级文件的合法性、完整性、安全性给出具体的解决方案,导致升级文件容易被替换或被攻击,会对单片机的升级工作安全性带来影响的弊端。本发明将打包的升级文件部署到PC机服务器上,用户可以通过近场无线方式通信(如使用蓝牙传输的方式)来升级单片机,从而达到操作方便,提升了操作安全性的目地。基于上述,本发明具有好的应用前景。
附图说明
图1是本发明流程框图。
图2是本发明步骤A计算流程框图。
具体实施方式
图1、2中所示,一种通过近场通信实现单片机固件安全升级的方法,步骤A:使用MD5算法来校验单片机整个升级文件的完整性,具体应用中,通过MD5算法分段对单片机升级文件进行完整性的校验。步骤A中,将一个单片机升级包文件分成n个1KByte的段落,使用MD5算法对单片机升级文件1KByte的数据段落进行计算,得出16字节的校验值,然后和第二个1KByte的数据组合再进行MD5算法的计算,依次循环下去,直到整个升级文件的校验结束,最后计算得到的全部n个1KByte段落16字节的校验值即为整个单片机升级文件的MD5校验值。步骤A中,计算校验中,如果出现错误计算结果代表升级文件完整性缺失,全部计算结果正确代表升级文件具备完整性。步骤A中,计算时首先进行填充:将输入的一个数据段落信息进行512求余分组,若不等于448,那么进行填充1和0,填充时采用一个1和N个0,最后的数据就为N*512+448;然后记录信息长度:将上述得到的信息用64位存储填充之前的信息长度,这样448+64=512,总信息为N+1个512,以四个常数ABCD与每组512位进行函数运算,最后输出的结果就是4组32位的常数,拼接得到MD5码、完成单片机升级文件一个1KByte数据段落的计算过程。应用中通过MD5算法分段对单片机升级文件进行完整性的校验,保证了单片机升级文件的完整性。
图1、2中所示,一种通过近场通信实现单片机固件安全升级的方法,步骤B:将单片机升级文件加入特定的头部标识,对升级文件打包头部标识进行升级。打包头部标识格式如下,固件版本号、固件大小、固件MD5校验值、头部标识校验值,其中固件版本号为3Bytes、固件大小为3Bytes、MD5值为16Bytes、CRC校验值为1Byte。通过将单片机升级文件加入特定的头部标识,对升级文件打包头部标识进行升级,能让使用者了解到升级包的具体主要信息,方便了使用者的使用。
图1、2中所示,一种通过近场通信实现单片机固件安全升级的方法,步骤C:对单片机升级文件头部标识进行加密,保护单片机升级文件的头部信息标识;具体应用中,在本地对单片机升级文件的头部信息标识,采用AES对称加密算法进行加密,形成的密文能防止被随意的获取或破解,将加密后的密文和单片机升级文件一起打包形成最终的单片机升级文件。加密后升级文件具有更好的安全性,形成的密文能防止被随意的获取或破解.
图1、2中所示,一种通过近场通信实现单片机固件安全升级的方法,步骤D:经服务器部署固件单片机升级包(升级文件),通过无线方式为单片机升级,提升操作安全性。具体应用中,把经过步骤A校验,步骤B对升级文件打包头部标识进行升级、步骤C升级文件头部标识加密后单片机升级包部署在服务器,需要升级单片机时,将升级文件包经过蓝牙传输等方式传递给单片机来实现升级,近场无线通信能够提升操作的安全性。实际应用中,无线方式不限于蓝牙传输,还能采用红外传输数据等方式实现单片机无线升级。
图1、2中所示,本发明在应用中,充分利用了MD5加密算法可以用于检验数据传输过程中的完整的特点,应用中通过MD5算法分段对单片机升级文件进行完整性的校验,保证了单片机升级文件的完整性。通过对升级文件打包头部标识进行升级、能让使用者了解到升级包的具体主要信息,对单片机升级文件头部标识进行加密,使升级文件具有更好的安全性,形成的密文能防止被随意的获取或破解。克服了现有技术中,没有对升级文件的合法性、完整性、安全性给出具体的解决方案,导致升级文件容易被替换或被攻击,会对单片机的升级工作安全性带来影响的弊端。本发明将打包的升级文件部署到PC机服务器上,用户可以通过近场无线方式通信(如使用蓝牙传输的方式)来升级单片机,从而达到操作方便,提升了操作安全性的目地。
以上显示和描述了本发明的基本原理和主要特征及本发明的优点,对于本领域技术人员而言,显然本发明限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

Claims (6)

1.一种通过近场通信实现单片机固件安全升级的方法,其特征在于包括四个步骤,步骤A:使用MD5算法来校验单片机整个升级文件的完整性,具体应用中通过MD5算法分段对单片机升级文件进行完整性的校验;步骤B:将单片机升级文件加入特定的头部标识,对升级文件打包头部标识进行升级;步骤C:对单片机升级文件头部标识进行加密,保护单片机升级文件的头部信息标识;步骤D:经服务器部署固件单片机升级包,通过无线方式为单片机升级,提升操作安全性;步骤A,使用MD5算法分段对升级文件进行完整性校验中,将一个单片机升级包文件分成n个1KByte的段落,使用MD5算法对单片机升级文件1KByte的数据段落进行计算,得出16字节的校验值,然后和第二个1KByte的数据组合再进行MD5算法的计算,依次循环下去,直到整个升级文件的校验结束,最后计算得到的全部n个1KByte段落16字节的校验值即为整个单片机升级文件的MD5校验值。
2.根据权利要求1所述的一种通过近场通信实现单片机固件安全升级的方法,其特征在于,步骤A,采用MD5加密算法对单片机升级文件一个1KByte的数据段落进行计算中,步骤一、填充:将输入信息进行512求余分组,若不等于448,那么进行填充1和0,填充时采用一个1和N个0,最后的数据就为N*512+448;步骤二、记录信息长度:将得到的信息用64位存储填充之前的信息长度,这样448+64=512,总信息为N+1个512,以四个常数ABCD与每组512位进行函数运算,最后输出的结果就是4组32位的常数,拼接得到MD5码、完成单片机升级文件一个1KByte数据段落的计算过程。
3.根据权利要求1所述的一种通过近场通信实现单片机固件安全升级的方法,其特征在于,步骤A,计算校验中,如果出现错误计算结果代表升级文件完整性缺失。
4.根据权利要求1所述的一种通过近场通信实现单片机固件安全升级的方法,其特征在于,步骤B中,对升级文件打包头部标识进行升级,打包头部标识格式如下,固件版本号、固件大小、固件MD5校验值、头部标识校验值,其中固件版本号为3Bytes、固件大小为3Bytes、MD5值为16Bytes、CRC校验值为1Byte。
5.根据权利要求1所述的一种通过近场通信实现单片机固件安全升级的方法,其特征在于,步骤C中,在本地对单片机升级文件的头部信息标识,采用AES对称加密算法进行加密,形成的密文能防止被随意的获取或破解,将加密后的密文和单片机升级文件一起打包形成最终的单片机升级文件。
6.根据权利要求1所述的一种通过近场通信实现单片机固件安全升级的方法,其特征在于,步骤D中,把经过步骤A校验,步骤B对升级文件打包头部标识进行升级、步骤C升级文件头部标识加密后单片机升级包部署在服务器,需要升级单片机时,将升级文件包经过无线方式传递给单片机来实现升级,近场无线通信能够提升操作的安全性。
CN201911042341.4A 2019-10-30 2019-10-30 一种通过近场通信实现单片机固件安全升级的方法 Pending CN110955896A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911042341.4A CN110955896A (zh) 2019-10-30 2019-10-30 一种通过近场通信实现单片机固件安全升级的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911042341.4A CN110955896A (zh) 2019-10-30 2019-10-30 一种通过近场通信实现单片机固件安全升级的方法

Publications (1)

Publication Number Publication Date
CN110955896A true CN110955896A (zh) 2020-04-03

Family

ID=69975829

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911042341.4A Pending CN110955896A (zh) 2019-10-30 2019-10-30 一种通过近场通信实现单片机固件安全升级的方法

Country Status (1)

Country Link
CN (1) CN110955896A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111443942A (zh) * 2020-04-22 2020-07-24 广州虎牙科技有限公司 资源文件的打包方法、装置、存储介质和计算机设备
CN111709010A (zh) * 2020-06-19 2020-09-25 山东省计算中心(国家超级计算济南中心) 基于国密算法的终端认证信息提取和验证方法及系统
CN112104721A (zh) * 2020-09-02 2020-12-18 青岛创新控制技术有限公司 一种ota远程升级文件下载方法
CN112579130A (zh) * 2020-12-28 2021-03-30 河南城拜检测技术有限公司 一种交互式的iap升级方法
CN113645266A (zh) * 2021-06-21 2021-11-12 天津津航计算技术研究所 文件传输方法、文件校验方法及装置
CN116932011A (zh) * 2023-09-14 2023-10-24 合肥大唐存储科技有限公司 一种ssd固件分段加密以及烧录方法
CN112579130B (zh) * 2020-12-28 2024-06-04 河南城拜检测技术有限公司 一种交互式的iap升级方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1256865A2 (en) * 2001-05-10 2002-11-13 Ranco Incorporated of Delaware System and method for securely upgrading firmware
CN101924607A (zh) * 2010-08-27 2010-12-22 华为终端有限公司 基于固件空中传输技术的固件处理方法、装置及系统
CN105677398A (zh) * 2015-12-31 2016-06-15 中海网络科技股份有限公司 一种通用的嵌入式计算机软件在线升级方法
CN106789334A (zh) * 2017-01-13 2017-05-31 狼天科技(深圳)有限公司 一种固件升级的方法和设备
CN107831721A (zh) * 2017-10-24 2018-03-23 北京天地玛珂电液控制系统有限公司 一种控制器程序升级装置和方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1256865A2 (en) * 2001-05-10 2002-11-13 Ranco Incorporated of Delaware System and method for securely upgrading firmware
CN101924607A (zh) * 2010-08-27 2010-12-22 华为终端有限公司 基于固件空中传输技术的固件处理方法、装置及系统
CN105677398A (zh) * 2015-12-31 2016-06-15 中海网络科技股份有限公司 一种通用的嵌入式计算机软件在线升级方法
CN106789334A (zh) * 2017-01-13 2017-05-31 狼天科技(深圳)有限公司 一种固件升级的方法和设备
CN107831721A (zh) * 2017-10-24 2018-03-23 北京天地玛珂电液控制系统有限公司 一种控制器程序升级装置和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李静波: "嵌入式系统固件升级的设计", 《今日电子》 *
龙冬阳: "《网络安全技术及应用》", 28 February 2006 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111443942A (zh) * 2020-04-22 2020-07-24 广州虎牙科技有限公司 资源文件的打包方法、装置、存储介质和计算机设备
CN111443942B (zh) * 2020-04-22 2024-04-19 广州虎牙科技有限公司 资源文件的打包方法、装置、存储介质和计算机设备
CN111709010A (zh) * 2020-06-19 2020-09-25 山东省计算中心(国家超级计算济南中心) 基于国密算法的终端认证信息提取和验证方法及系统
CN111709010B (zh) * 2020-06-19 2021-05-07 山东省计算中心(国家超级计算济南中心) 基于国密算法的终端认证信息提取和验证方法及系统
CN112104721A (zh) * 2020-09-02 2020-12-18 青岛创新控制技术有限公司 一种ota远程升级文件下载方法
CN112579130A (zh) * 2020-12-28 2021-03-30 河南城拜检测技术有限公司 一种交互式的iap升级方法
CN112579130B (zh) * 2020-12-28 2024-06-04 河南城拜检测技术有限公司 一种交互式的iap升级方法
CN113645266A (zh) * 2021-06-21 2021-11-12 天津津航计算技术研究所 文件传输方法、文件校验方法及装置
CN116932011A (zh) * 2023-09-14 2023-10-24 合肥大唐存储科技有限公司 一种ssd固件分段加密以及烧录方法
CN116932011B (zh) * 2023-09-14 2024-02-06 合肥大唐存储科技有限公司 一种ssd固件分段加密以及烧录方法

Similar Documents

Publication Publication Date Title
CN110955896A (zh) 一种通过近场通信实现单片机固件安全升级的方法
US9425961B2 (en) Method for performing an encryption of an AES type, and corresponding system and computer program product
TWI238945B (en) Methods and systems for efficiently integrating a cryptographic co-processor
US8739297B2 (en) Key usage policies for cryptographic keys
CN101873587B (zh) 一种无线通信装置及其实现业务安全的方法
US9898623B2 (en) Method for performing an encryption with look-up tables, and corresponding encryption apparatus and computer program product
ES2863676T3 (es) Mensaje cifrado con instrucción de autenticación
CN110572828B (zh) 基于国密算法的物联网安全认证方法、系统及终端
US9288051B2 (en) Secure key management
CN107678763A (zh) 基于数字签名技术的电能表升级方法和系统
US20170063853A1 (en) Data cipher and decipher based on device and data authentication
CN111259416A (zh) 一种基于fpga的多算法安全加密认证系统及认证方法
CN103563289B (zh) 保护加密系统中的控制向量的方法和系统
Barker et al. Sp 800-90a. recommendation for random number generation using deterministic random bit generators
CN108052805B (zh) 一种数据加解密方法和装置
US11502846B2 (en) Whitebox computation of keyed message authentication codes
CN106533652A (zh) 一种基于xts-sm4的存储加解密方法及装置
US10536264B2 (en) Efficient cryptographically secure control flow integrity protection
CN115580477A (zh) 基于aes加密的文件加密方法、解密方法及相关设备
CN107425976A (zh) 密钥芯片系统和物联网设备
US8619992B2 (en) Secure key creation
US20130044880A1 (en) Key management policies for cryptographic keys
CA2754370A1 (en) Method and device for data encryption and decryption
CN111984985A (zh) 一种基于fpga硬件系统的hdl源码加密方法
CN116846548A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200403