CN108595198A - 一种安全的固件更新方法 - Google Patents

一种安全的固件更新方法 Download PDF

Info

Publication number
CN108595198A
CN108595198A CN201810348555.3A CN201810348555A CN108595198A CN 108595198 A CN108595198 A CN 108595198A CN 201810348555 A CN201810348555 A CN 201810348555A CN 108595198 A CN108595198 A CN 108595198A
Authority
CN
China
Prior art keywords
firmware
firmware image
equipment
key
update
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
CN201810348555.3A
Other languages
English (en)
Other versions
CN108595198B (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.)
Nanjing Inch Microelectronic Technology Co Ltd
Original Assignee
Nanjing Inch Microelectronic 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 Nanjing Inch Microelectronic Technology Co Ltd filed Critical Nanjing Inch Microelectronic Technology Co Ltd
Priority to CN201810348555.3A priority Critical patent/CN108595198B/zh
Publication of CN108595198A publication Critical patent/CN108595198A/zh
Application granted granted Critical
Publication of CN108595198B publication Critical patent/CN108595198B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • 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
    • 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)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种安全的固件更新方法,首先利用对称密码算法对固件Image文件进行加密,然后利用非对称密码算法对加密过的固件Image文件进行签名,之后发送给客户。在客户处利用固件更新工具对加密、签名后的固件Image文件进行验签,以防止固件Image文件被篡改,并将验签后的固件Image文件下载到设备中,通过设备端bootrom对加密后的固件Image文件进行解密,得到固件Image文件,最后通过设备端bootrom完成固件更新。本发明因为能保证固件Image是密文传输的,无法被逆向,可以有效防止固件Image被逆向分析,还能防止固件Image被篡改,防止设备受到攻击,能防止攻击者利用利用旧版本固件的漏洞来对设备进行攻击,防止固件版本回退。

Description

一种安全的固件更新方法
技术领域
本发明属于程序控制装置技术领域,涉及用于执行专门程序的装载和更新,具体涉及一种安全的固件更新方法。
背景技术
固件(firmware)是一种存储于设备中的EEPROM或FLASH芯片中,可由用户通过特定的刷新程序进行升级的程序,固件通常担任着一个数码产品最基础、最底层工作。一般来说,这些硬件内所保存的程序是无法被用户直接读出或修改的。因为通常情况下是没有必要对固件进行升级操作,即使在固件内发现了严重的Bug,也必须由专业人员进行更换。早期的固件芯片一般采用了ROM设计,Firmware代码是在生产过程中固化的,用任何手段都无法修改。随着技术的不断发展,为适应用户对于不断更新的硬件环境的需求,开始出现利用EEPROM和flash的可以重复刷写特点让固件得以修改和升级的技术,使得更多的厂商把升级固件提供更多更新的功能做为附加值来提供给用户。
固件的更新或升级是指把新的固件写入芯片中,以代替原有的固件的过程。一些嵌入式设备一旦部署后,若要进行固件的更新,只能进行现场更新,而不是将设备回收到生产厂商处再更新,所以厂商就需要将新版本的固件发送到客户处,由客户来进行更新。即一般的固件更新流程为:厂商生成固件Image文件,然后将此Image文件发送给客户,客户再利用更新工具将固件Image文件烧录到设备中,在这个过程中,Image文件一般是明文传输,也不存在对Image文件的验证过程。这个过程中,就会存在很多安全问题,比如固件被逆向、被篡改,或将固件运行于未经授权的设备中等风险。
针对这些安全问题,现有技术中已经披露了一些应对的方法,比如申请号为CN201610554448.7、名称为“一种安全的固件验证更新方法”的专利文献。通过对此专利文献的详细解读发现其虽然应用了签名算法,能够规避固件被篡改的风险,但是其固件依然为明文状态,无法规避被逆向和被被烧录到未经授权设备中的风险,而且其只通过ID来进行固件与主板的匹配,并未进行版本控制,也存在固件版本回退的风险。
发明内容
本发明目的在于针对传统的固件的更新或升级过程中存在的固件Image文件被逆向、被篡改,或运行于未经授权的设备中等风险,利用对称密码算法对固件Image进行加密,再利用非对称密码算法对加密过的固件Image进行签名,随后经过验签和解密,实现有效防止固件Image被逆向分析,防止固件Image被篡改,防止设备受到攻击的危险。
为实现上述目的,本发明采用的技术方案为一种安全的固件更新方法,具体包含以下步骤:
S1:利用对称密码算法对固件Image文件进行加密;
S2:利用非对称密码算法对加密过的固件Image文件进行签名;
S3:发送给客户;
S4:利用固件更新工具对加密、签名后的固件Image文件进行验签,以防止固件Image文件被篡改;
S5:客户将验签后的固件Image文件下载到设备中;
S6:通过设备端bootrom对加密后的固件Image文件进行解密,得到固件Image文件;
S7:通过设备端bootrom完成固件更新。
步骤1中,所述对称密码算法生成对称加密key,固件生成工具利用此key对固件进行加密,在设备出厂前,将此key烧录到设备中。
步骤6中,所述解密是利用上述key完成的。
步骤2中,在签名时会生成非对称密钥对,固件生成工具利用private key对固件进行签名。
步骤4中,在验签时固件更新工具会利用public key对固件进行验签。
步骤7中,通过设备端bootrom完成固件更新的具体流程如下:
S11:bootrom利用对称密码算法生成的对称加密key对固件Image进行解密;
S12:检查固件Image的版本号,若版本号非法,则终止更新;若合法则继续步骤S13;
S13:若版本比当前固件Image的版本新,则将其烧录到设备中,否则终止更新。
与现有技术相比,本发明具有以下有益效果:
1.本发明利用对称密码算法对固件Image进行加密,烧录到设备后,再由bootrom对Image进行解密,这样就能保证固件Image是密文传输的,无法被逆向,有效防止固件Image被逆向分析;
2.本发明利用非对称密码算法对加密过的固件Image进行签名,由固件更新工具来验签,以此来防止固件Image被篡改,防止设备受到攻击;
3.由于未经授权的设备没有解密秘钥,从而可以防止固件Image被烧录到未经授权的设备中;
4.由于固件Image注入了版本信息,这样可以保证设备一旦烧录了新版本固件,就无法再烧录旧版本的固件,进而能防止攻击者利用利用旧版本固件的漏洞来对设备进行攻击,防止固件版本回退。
附图说明
图1是本发明的整体流程图;
图2是本发明中bootrom过程的流程图。
具体实施方式
下面结合附图对本发明作进一步详细的说明。
本发明提出的利用加密算法和在固件Image中注入版本信息,来保证整个固件更新过程的安全性的整体流程图如图1所示。本发明的实现,需要PC端固件生成工具(在厂商处)、固件更新工具(在客户处)和设备端bootrom的配合。在供应商或厂商处,利用对称密码算法,比如AES/SM4对固件Image(即图中的FW Image)进行加密,得到Enc FW Image(Encrypted Firmware Image的简称)。再利用非对称密码算法,比如RSA/SM2对加密过的固件Image进行签名,得到Enc FW Image∣Signature。然后发送到客户处,由固件更新工具来验签,以此来防止固件Image被篡改。厂商处保存有非对称算法的私钥,用来签名;客户处只有非对称算法的公钥,用来验签;也不存在私钥的传输问题。
验签之后将Enc FW Image下载到设备,将解密秘钥烧录到设备中。具体而言,烧录到设备后是由bootrom对Image进行解密。这样就能保证固件Image是密文传输的,无法被逆向;同时由于未经授权的设备没有解密秘钥,从而可以防止设备运行于未经授权的设备中。设备出厂前,会在安全的生产环境中,将解密秘钥烧录到设备中,后期不存在解密秘钥的传输问题。
由于固件Image注入了版本信息,这样可以保证设备一旦烧录了新版本固件,就无法再烧录旧版本的固件,进而能防止攻击者利用利用旧版本固件的漏洞来对设备进行攻击。
再对密钥生成的过程进行说明,首先生成对称加密key,固件生成工具利用此key对固件进行加密;在设备出厂前,将此key烧录到设备中,bootrom将来会利用此key对固件进行解密。
为实现签名,本发明需要生成非对称密钥对,固件生成工具利用private key对固件进行签名,固件更新工具会利用public key对固件进行验签。
作为最佳实施例,本发明的固件Image更新的流程如下:
1.厂商生成新版本固件后,利用key对固件Image进行加密,然后利用private key对固件进行签名,生成签名值;
2.厂商将加密过的固件Image与其签名值发送给客户;
3.客户利用public key对固件Image进行验签,来确实Image在传输过程中是否被篡改过。若被篡改过,终止更新,否则继续更新;
4.客户将固件Image下载到设备中;
5.设备bootrom利用key对固件Image进行解密,然后判断固件版本号是否非法,若固件版本号合法,且比当前固件版本新,则将其烧录到设备中,否则终止更新,如图2所示。
以上具体实施方式的描述并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种安全的固件更新方法,其特征在于包含以下步骤:
S1:利用对称密码算法对固件Image文件进行加密;
S2:利用非对称密码算法对加密过的固件Image文件进行签名;
S3:发送给客户;
S4:利用固件更新工具对加密、签名后的固件Image文件进行验签,以防止固件Image文件被篡改;
S5:客户将验签后的固件Image文件下载到设备中;
S6:通过设备端bootrom对加密后的固件Image文件进行解密,得到固件Image文件;
S7:通过设备端bootrom完成固件更新。
2.根据权利要求1所述的安全的固件更新方法,其特征在于步骤1中所述对称密码算法生成对称加密key,固件生成工具利用此key对固件进行加密,在设备出厂前,将此key烧录到设备中。
3.根据权利要求2所述的安全的固件更新方法,其特征在于步骤6中所述解密是利用此key完成的。
4.根据权利要求1所述的安全的固件更新方法,其特征在于步骤2中,在签名时会生成非对称密钥对,固件生成工具利用private key对固件进行签名。
5.根据权利要求4所述的安全的固件更新方法,其特征在于步骤4中,在验签时固件更新工具会利用public key对固件进行验签。
6.根据权利要求1所述的安全的固件更新方法,其特征在于步骤7中通过设备端bootrom完成固件更新的具体流程如下:
S61:bootrom利用对称密码算法生成的对称加密key对固件Image进行解密;
S62:检查固件Image的版本号,若版本号非法,则终止更新;若合法则继续步骤S63;
S63:若版本比当前固件Image的版本新,则将其烧录到设备中,否则终止更新。
CN201810348555.3A 2018-04-18 2018-04-18 一种安全的固件更新方法 Active CN108595198B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810348555.3A CN108595198B (zh) 2018-04-18 2018-04-18 一种安全的固件更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810348555.3A CN108595198B (zh) 2018-04-18 2018-04-18 一种安全的固件更新方法

Publications (2)

Publication Number Publication Date
CN108595198A true CN108595198A (zh) 2018-09-28
CN108595198B CN108595198B (zh) 2022-02-22

Family

ID=63613677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810348555.3A Active CN108595198B (zh) 2018-04-18 2018-04-18 一种安全的固件更新方法

Country Status (1)

Country Link
CN (1) CN108595198B (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110298145A (zh) * 2019-06-28 2019-10-01 兆讯恒达微电子技术(北京)有限公司 一种基于公开密钥密码算法的固件程序装载保护方法
CN110474767A (zh) * 2019-08-21 2019-11-19 杭州涂鸦信息技术有限公司 一种离线状态下的芯片密钥烧录方法及系统
CN110719166A (zh) * 2019-10-15 2020-01-21 深圳市元征科技股份有限公司 芯片烧录方法、芯片烧录装置、芯片烧录系统及存储介质
CN111142906A (zh) * 2019-12-25 2020-05-12 浙江大华技术股份有限公司 一种设备固件升级方案迭代的方法、装置与设备
CN111966970A (zh) * 2020-07-31 2020-11-20 深圳比特微电子科技有限公司 防止数字货币矿机固件回退的方法、装置和数字货币矿机
CN112099855A (zh) * 2020-08-05 2020-12-18 联想(北京)有限公司 一种信息处理方法、电子设备和计算机存储介质
CN116522368A (zh) * 2023-06-29 2023-08-01 浙江大学 一种物联网设备固件解密解析方法、电子设备、介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191955A1 (en) * 2001-05-10 2003-10-09 Ranco Incorporated Of Delaware System and method for securely upgrading firmware
CN103455354A (zh) * 2013-09-06 2013-12-18 南京南自信息技术有限公司 一种防止固件升级失败的方法和设备
CN103595802A (zh) * 2013-11-19 2014-02-19 烽火通信科技股份有限公司 家庭网关软件远程自动升级的方法
CN106227503A (zh) * 2016-07-29 2016-12-14 苏州国芯科技有限公司 安全芯片cos固件更新方法、服务端、终端及系统
CN107368744A (zh) * 2016-04-11 2017-11-21 恩德莱斯和豪瑟尔分析仪表两合公司 用于更新固件组件的方法以及测量和控制技术的设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191955A1 (en) * 2001-05-10 2003-10-09 Ranco Incorporated Of Delaware System and method for securely upgrading firmware
CN103455354A (zh) * 2013-09-06 2013-12-18 南京南自信息技术有限公司 一种防止固件升级失败的方法和设备
CN103595802A (zh) * 2013-11-19 2014-02-19 烽火通信科技股份有限公司 家庭网关软件远程自动升级的方法
CN107368744A (zh) * 2016-04-11 2017-11-21 恩德莱斯和豪瑟尔分析仪表两合公司 用于更新固件组件的方法以及测量和控制技术的设备
CN106227503A (zh) * 2016-07-29 2016-12-14 苏州国芯科技有限公司 安全芯片cos固件更新方法、服务端、终端及系统

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110298145A (zh) * 2019-06-28 2019-10-01 兆讯恒达微电子技术(北京)有限公司 一种基于公开密钥密码算法的固件程序装载保护方法
CN110474767A (zh) * 2019-08-21 2019-11-19 杭州涂鸦信息技术有限公司 一种离线状态下的芯片密钥烧录方法及系统
CN110719166A (zh) * 2019-10-15 2020-01-21 深圳市元征科技股份有限公司 芯片烧录方法、芯片烧录装置、芯片烧录系统及存储介质
CN111142906A (zh) * 2019-12-25 2020-05-12 浙江大华技术股份有限公司 一种设备固件升级方案迭代的方法、装置与设备
CN111142906B (zh) * 2019-12-25 2023-11-10 浙江大华技术股份有限公司 一种设备固件升级方案迭代的方法、装置与设备
CN111966970A (zh) * 2020-07-31 2020-11-20 深圳比特微电子科技有限公司 防止数字货币矿机固件回退的方法、装置和数字货币矿机
CN111966970B (zh) * 2020-07-31 2021-05-07 深圳比特微电子科技有限公司 防止数字货币矿机固件回退的方法、装置和数字货币矿机
US11663299B2 (en) 2020-07-31 2023-05-30 Shenzhen Microbt Electronics Technology Co., Ltd. Method and apparatus for preventing rollback of firmware of data processing device, and data processing device
CN112099855A (zh) * 2020-08-05 2020-12-18 联想(北京)有限公司 一种信息处理方法、电子设备和计算机存储介质
CN112099855B (zh) * 2020-08-05 2022-01-14 联想(北京)有限公司 一种信息处理方法、电子设备和计算机存储介质
CN116522368A (zh) * 2023-06-29 2023-08-01 浙江大学 一种物联网设备固件解密解析方法、电子设备、介质

Also Published As

Publication number Publication date
CN108595198B (zh) 2022-02-22

Similar Documents

Publication Publication Date Title
CN108595198A (zh) 一种安全的固件更新方法
EP2294529B1 (en) Electronic device and method of software or firmware updating of an electronic device
JP5736994B2 (ja) 情報処理装置、正当性検証方法、及びプログラム
US11361087B2 (en) Security data processing device
US20050071655A1 (en) Permutation of opcode values for application program obfuscation
CN111984962A (zh) 固件安全验证方法及装置
KR20130129170A (ko) 부분적으로-암호화된 콘텐트파일을 호스트 장치에 제공하기 위한 저장장치 및 방법
CN102236757A (zh) 一种适用于Android系统的软件保护方法及系统
CN103229451A (zh) 用于硬件设备的密钥供应的方法和装置
CN102082784A (zh) 一种软件在线升级方法
CN110414248B (zh) 一种调试微处理器的方法及微处理器
CN108418893A (zh) 一种智能设备固件安全升级的方法
JP2017157018A (ja) 情報処理装置、情報処理方法、情報処理プログラム、及びトラステッド・プラットフォーム・モジュール
CN102289632A (zh) 一种在软件源代码未知情况下对可执行文件进行加密方法
CN111124453B (zh) 一种终端设备固件程序升级方法
CN101174941B (zh) 一种移动终端文件离线数字版权保护方法及装置
KR101579696B1 (ko) 암호 기법 프로토콜의 개시 값들을 난독화하는 시스템 및 방법
WO2018033017A1 (zh) 一种授信的终端状态转换方法和系统
KR102583995B1 (ko) 암호화 프로그램 다양화
CN109426727B (zh) 数据加密方法、解密方法、加密系统及解密系统
JP6348273B2 (ja) 情報処理システム
CN115795438A (zh) 应用程序授权的方法、系统及可读存储介质
CN108933790A (zh) 高安全等级的ota升级固件的加密方法
CN110210189B (zh) 软件验证方法、软硬件绑定方法及其可编程器件
CN114329568A (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
CB02 Change of applicant information

Address after: Room 803-1, North Building, 9 Shuntai Square, 2000 Shunhua Road, Jinan City, Shandong Province, 250101

Applicant after: Shandong Fangcun Microelectronics Technology Co.,Ltd.

Address before: 210000 R203 room, east of 2 building, 1 Garden Road, Jiangpu street, Pukou District, Nanjing, Jiangsu.

Applicant before: NANJING FANGCUN MICROELECTRONICS TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
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 Secure Firmware Update Method

Effective date of registration: 20230912

Granted publication date: 20220222

Pledgee: Qilu Bank Co.,Ltd. Jinan West Market Branch

Pledgor: Shandong Fangcun Microelectronics Technology Co.,Ltd.

Registration number: Y2023980056373

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