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

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

Info

Publication number
CN108595198B
CN108595198B CN201810348555.3A CN201810348555A CN108595198B CN 108595198 B CN108595198 B CN 108595198B CN 201810348555 A CN201810348555 A CN 201810348555A CN 108595198 B CN108595198 B CN 108595198B
Authority
CN
China
Prior art keywords
firmware
firmware image
image file
equipment
updating
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
CN201810348555.3A
Other languages
English (en)
Other versions
CN108595198A (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.)
Shandong Fangcun Microelectronics Technology Co ltd
Original Assignee
Shandong Fangcun Microelectronics 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 Shandong Fangcun Microelectronics Technology Co ltd filed Critical Shandong Fangcun Microelectronics 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

Images

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 (2)

1.一种安全的固件更新方法,其特征在于包含以下步骤:
S1:利用对称密码算法对固件Image文件进行加密;所述对称密码算法生成对称加密key,固件生成工具利用此key对固件进行加密,在设备出厂前,将此key烧录到设备中;
S2:利用非对称密码算法对加密过的固件Image文件进行签名;具体的,固件生成工具利用private key对固件进行签名;
S3:发送给客户;
S4:利用固件更新工具对加密、签名后的固件Image文件进行验签,以防止固件Image文件被篡改;具体的,固件更新工具会利用public key对固件进行验签;
S5:客户将验签后的固件Image文件下载到设备中;
S6:通过设备端bootrom对加密后的固件Image文件进行解密,得到固件Image文件;
S7:通过设备端bootrom完成固件更新,具体流程:S71:bootrom利用对称密码算法生成的对称加密key对固件Image进行解密;S72:检查固件Image的版本号,若版本号非法,则终止更新;若合法则继续步骤S73;S73:若版本比当前固件Image的版本新,则将其烧录到设备中,否则终止更新;
所述固件Image注入了版本信息。
2.根据权利要求1所述的安全的固件更新方法,其特征在于,步骤6中所述解密是利用对称加密key完成的。
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 CN108595198A (zh) 2018-09-28
CN108595198B true 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)

Families Citing this family (7)

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

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 恩德莱斯和豪瑟尔分析仪表两合公司 用于更新固件组件的方法以及测量和控制技术的设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7095858B2 (en) * 2001-05-10 2006-08-22 Ranco Incorporated Of Delaware System and method for securely upgrading firmware

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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固件更新方法、服务端、终端及***

Also Published As

Publication number Publication date
CN108595198A (zh) 2018-09-28

Similar Documents

Publication Publication Date Title
CN108595198B (zh) 一种安全的固件更新方法
EP3458999B1 (en) Self-contained cryptographic boot policy validation
AU2007276673B2 (en) System and method for authenticating a gaming device
KR101795457B1 (ko) 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
US8677144B2 (en) Secure software and hardware association technique
US7506381B2 (en) Method for securing an electronic device, a security system and an electronic device
CN112187544B (zh) 固件升级方法、装置、计算机设备及存储介质
CN107743067B (zh) 数字证书的颁发方法、***、终端以及存储介质
US20150095652A1 (en) Encryption and decryption processing method, apparatus, and device
US20080072068A1 (en) Methods and apparatuses for securing firmware image download and storage by distribution protection
JP5097130B2 (ja) 情報端末、セキュリティデバイス、データ保護方法及びデータ保護プログラム
CN110688660B (zh) 一种终端安全启动的方法及装置、存储介质
EP2294529A1 (en) Electronic device and method of software or firmware updating of an electronic device
CN112514321A (zh) 共享秘密建立
CN110414248B (zh) 一种调试微处理器的方法及微处理器
US9489541B2 (en) Content protection via online servers and code execution in a secure operating system
US20080301466A1 (en) Methods for program verification and apparatuses using the same
KR20110093468A (ko) 사용자 단말 장치, 서버 및 그 제어 방법
CN111382397B (zh) 升级软件包配置方法、软件升级方法、设备及存储装置
US20190007383A1 (en) Method of receiving data within an electronic entity and associated electronic entity
CN104135531A (zh) 一种Web软件的升级方法及装置
CN104394467A (zh) 机顶盒应用程序的下载方法及机顶盒
CN111512593B (zh) 半导体设备、提供更新数据的方法、接收更新数据的方法以及介质
EP2689367B1 (en) Data protection using distributed security key
CN110674525A (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