CN112433742A - 安全的固件更新方法、装置、设备及存储介质 - Google Patents

安全的固件更新方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112433742A
CN112433742A CN202011366819.1A CN202011366819A CN112433742A CN 112433742 A CN112433742 A CN 112433742A CN 202011366819 A CN202011366819 A CN 202011366819A CN 112433742 A CN112433742 A CN 112433742A
Authority
CN
China
Prior art keywords
firmware
public key
source file
abstract information
verification
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
CN202011366819.1A
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.)
Cec Financial Equipment System Shenzhen Co ltd
Original Assignee
Cec Financial Equipment System Shenzhen 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 Cec Financial Equipment System Shenzhen Co ltd filed Critical Cec Financial Equipment System Shenzhen Co ltd
Priority to CN202011366819.1A priority Critical patent/CN112433742A/zh
Publication of CN112433742A publication Critical patent/CN112433742A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种安全的固件更新方法、装置、设备及存储介质,该方法包括:获取发布的固件文件包,解析得到固件源文件、第一摘要信息及第一签名结果;利用安全散列算法对固件源文件进行运算后得到第二摘要信息,分析第一摘要信息、第二摘要信息及预先记录的摘要信息是否相同;若是,利用非对称加密算法的公钥对第一签名结果进行验签,以进行质检;下载固件源文件;接收第一摘要信息及第一签名结果;利用安全散列算法对固件源文件进行运算后得到第三摘要信息,分析所接收的第一摘要信息与第三摘要信息是否相同;若是,利用公钥对所接收的第一签名结果进行验签;若验签通过,拷贝缓存区的固件源文件至闪存。本发明能够提高固件安全性。

Description

安全的固件更新方法、装置、设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种安全的固件更新方法、装置、设备及存储介质。
背景技术
对于计算机设备,固件的安全是至关重要的。开发人员完成固件文件更新后会以电子档形式发布出去,给到产线的生产人员,产线的生产人员将电子档形式的固件文件下载到计算机设备中,后续进行固件更新时,还需要将固件传输至计算机设备中,整个过程中电子档形式的固件文件容易被篡改,例如,固件文件被恶意修改一部分,或被植入小木马程序,或整个固件文件被掉包等,难以确保固件文件的安全性。目前,一般会对固件文件进行加密后再发布出去,然而这种方法仍然存在较大的安全隐患,生产人员等人仍然可以在解密后篡改固件文件。因此,提供一种安全的固件更新方法成为有待解决的问题。
发明内容
本发明的目的在于提供一种安全的固件更新方法、装置、设备及存储介质,旨在提高固件安全性。
本发明提供一种方法安全的固件更新方法,应用于设备中,包括:
获取签名中心发布的固件文件包,解析所述固件文件包得到固件源文件、第一摘要信息及第一签名结果,其中,所述第一摘要信息为利用安全散列算法对固件源文件进行运算后得到,所述第一签名结果为利用预定的非对称加密算法的私钥对所述第一摘要信息进行签名后得到;
利用所述安全散列算法对解析后得到的固件源文件进行运算后得到第二摘要信息,分析第一摘要信息、第二摘要信息及申请表中预先记录的摘要信息三者是否相同;
若是,则利用所述非对称加密算法的公钥对解析后得到的第一签名结果进行验签,以进行质检;
在所述固件更新过程中,下载所述签名中心发布的固件源文件并存储在预定的缓冲区;
接收固件更新工具发送的所述第一摘要信息及第一签名结果并存储;
利用所述安全散列算法对存储在所述缓冲区的固件源文件进行运算后得到第三摘要信息,分析所接收的第一摘要信息与第三摘要信息是否相同;
若是,则从预定的存储区中获取所述公钥,利用所述公钥对所接收的第一签名结果进行验签;
若验签通过,则将所述缓冲区的固件源文件拷贝至闪存区,以更新固件。
本发明还提供一种安全的固件更新装置,包括:
解析模块,用于获取签名中心发布的固件文件包,解析所述固件文件包得到固件源文件、第一摘要信息及第一签名结果,其中,所述第一摘要信息为利用安全散列算法对固件源文件进行运算后得到,所述第一签名结果为利用预定的非对称加密算法的私钥对所述第一摘要信息进行签名后得到;
第一分析模块,用于利用所述安全散列算法对解析后得到的固件源文件进行运算后得到第二摘要信息,分析第一摘要信息、第二摘要信息及申请表中预先记录的摘要信息三者是否相同;
第一验签模块,用于若是,则利用所述非对称加密算法的公钥对解析后得到的第一签名结果进行验签,以进行质检;
下载模块,用于在所述固件更新过程中,下载所述签名中心发布的固件源文件并存储在预定的缓冲区;
接收模块,用于接收固件更新工具发送的所述第一摘要信息及第一签名结果并存储;
第二分析模块,用于利用所述安全散列算法对存储在所述缓冲区的固件源文件进行运算后得到第三摘要信息,分析所接收的第一摘要信息与第三摘要信息是否相同;
第二验签模块,用于若是,则从预定的存储区中获取所述公钥,利用所述公钥对所接收的第一签名结果进行验签;
更新模块,用于若验签通过,则将所述缓冲区的固件源文件拷贝至闪存区,以更新固件。
本发明还提供一种计算机设备,所述计算机设备包括存储器及与所述存储器连接的处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的安全的固件更新方法的步骤。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的安全的固件更新方法的步骤。
本发明的有益效果是:本发明签名中心发布固件文件包后,对固件源文件进行质检,包括重新运算得到摘要信息,通过分析摘要信息与固件文件包中的摘要信息是否一致来确保固件源文件的完整性,通过利用公钥对固件文件包中签名结果进行验签来确保固件源文件的真实性,使得固件源文件在厂环节不会被篡改;在固件更新过程中,再次进行检查,包括再次运算得到摘要信息,通过分析摘要信息与固件更新工具发送的摘要信息是否一致来确保固件源文件的完整性,通过利用公钥对固件更新工具发送的签名结果进行验签来确保固件源文件的真实性,使得固件源文件在传输过程中不会被篡改。本发明从固件产生至更新过程中,能够确保固件源文件的完整及真实,提高固件安全性。
附图说明
图1为本发明安全的固件更新方法一实施例的流程示意图;
图2为本发明安全的固件更新装置一实施例的结构示意图;
图3为本发明计算机设备一实施例的硬件架构的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
参阅图1所示,为本发明安全的固件更新方法第一实施例的流程示意图。该安全的固件更新方法应用在设备中,包括以下步骤:
步骤S1,获取签名中心发布的固件文件包,解析所述固件文件包得到固件源文件、第一摘要信息及第一签名结果,其中,所述第一摘要信息为利用安全散列算法对固件源文件进行运算后得到,所述第一签名结果为利用预定的非对称加密算法的私钥对所述第一摘要信息进行签名后得到;
本实施例中,签名中心发布的固件文件包后,品质人员或产线人员均可以对固件文件包进行质检,例如定期对固件文件包进行检查,包括检查固件源文件的完整性及真实性。
其中,签名中心发布的固件文件包采用预定的文件格式进行组包,优选地采用自定义的一种文件格式进行组包,例如为“*.CFESSign”的固件文件包。当然也可以是现有的其他文件格式。在获取签名中心发布的固件文件包后,可使用“*.CFESSign”的解析工具解析固件文件包,得到固件源文件、第一摘要信息及第一签名结果。
其中,安全散列算法(Secure Hash Algorithm,SHA)可以是SHA-256算法,是一种密码散列函数算法。对于任意长度的数据,SHA-256都可以产生一个256bit长的哈希值,作为摘要信息,安全散列算法进行公开,他人可以运用安全散列算法进行运算。
其中,非对称加密算法可以是RSA加密算法或者SM2加密算法,例如,为RSA-2048bit加密算法,当然,也可以是其他的非对称加密算法。
其中,固件文件包中包括了第一摘要信息及第一签名结果,通过第一摘要信息,后续可以检查固件源文件的完整性,通过第一签名结果可以检查固件源文件的真实性。
步骤S2,利用所述安全散列算法对解析后得到的固件源文件进行运算后得到第二摘要信息,分析第一摘要信息、第二摘要信息及申请表中预先记录的摘要信息三者是否相同;
在质检过程中,对解析后的固件文件包进行检查,利用公开的安全散列算法对解析后得到的固件源文件进行运算后得到第二摘要信息。申请表中预先记录的摘要信息是开发人员记录的,是最早的摘要信息。通过分析第一摘要信息、第二摘要信息及申请表中记录的摘要信息三者是否相同,来分析固件源文件的完整性是否被破坏,如果三者相同,则固件源文件是完整的,如果至少有两者不同,那么固件源文件的完整性已被破坏。
步骤S3,若是,则利用所述非对称加密算法的公钥对解析后得到的第一签名结果进行验签,以进行质检;
其中,非对称加密算法的公钥为内部公开的信息,不可能被人篡改。需首先将公钥烧录在设备预定的存储区中,预定的存储区例如为设备芯片本身支持的OTP存储区,以避免后续设备中的公钥被篡改。质检可以直接利用非对称加密算法的公钥对解析后得到的第一签名结果进行验签,验签通过则说明固件源文件未被篡改,是真实的,则质检通过。如果验签未通过,则说明固件源文件已被篡改,质检未通过,需要重新检查固件源文件,并生成第一摘要信息及第一签名结果,对固件源文件进行组包。
上述质检环节,通过第一摘要信息检查固件源文件的完整性,通过第一签名结果检查固件源文件的真实性,防止固件源文件在出厂前被篡改,提高安全性。
步骤S4,在所述固件更新过程中,下载所述签名中心发布的固件源文件并存储在预定的缓冲区;
在固件更新过程中,固件源文件数据首先被下载到设备芯片的一个APP缓冲区,并没有立即覆盖真实运行的FLASH闪存区;这时,设备仍然运行FLASH闪存区原有的固件,待固件源文件数据全部下载完毕后,再对固件源文件进行检查。
步骤S5,接收固件更新工具发送的所述第一摘要信息及第一签名结果并存储;
步骤S6,利用所述安全散列算法对存储在所述缓冲区的固件源文件进行运算后得到第三摘要信息,分析所接收的第一摘要信息与第三摘要信息是否相同;
在下载固件源文件至缓冲区后,再用安全散列算法对固件源文件进行运算得到第三摘要信息,通过分析所接收的第一摘要信息与第三摘要信息是否相同,来分析固件源文件的完整性在传输过程中是否被破坏,如果两者相同,则固件源文件是完整的,如果两者不同,那么固件源文件的完整性已被破坏。
步骤S7,若是,则从预定的存储区中获取所述公钥,利用所述公钥对所接收的第一签名结果进行验签;
步骤S8,若验签通过,则将所述缓冲区的固件源文件拷贝至闪存区,以更新固件。
由于公钥已经烧录至预定的存储区中,因此可以直接从预定的存储区中读取到公钥,利用公钥对所接收的第一签名结果进行验签,验签通过则说明固件源文件在传输过程中未被篡改,是来自于签名中心的,具有真实性,如果验签未通过,则说明固件源文件在传输过程中已被篡改,设备继续运行闪存区原有的固件,删除缓冲区的固件源文件,重新下载固件源文件,并进行检查。
本实施例中,验签通过后,将缓冲区的固件源文件拷贝至闪存区,覆盖闪存区的固件,以运行该固件源文件对应的固件,完成固件的更新。
此外,在拷贝固件源文件至至闪存区后,可以将缓冲区的固件源文件删除,释放缓冲区的存储空间。
与现有技术相比,本实施例签名中心发布固件文件包后,对固件源文件进行质检,包括重新运算得到摘要信息,通过分析摘要信息与固件文件包中的摘要信息是否一致来确保固件源文件的完整性,通过利用公钥对固件文件包中签名结果进行验签来确保固件源文件的真实性,使得固件源文件在厂环节不会被篡改;在固件更新过程中,再次进行检查,包括再次运算得到摘要信息,通过分析摘要信息与固件更新工具发送的摘要信息是否一致来确保固件源文件的完整性,通过利用公钥对固件更新工具发送的签名结果进行验签来确保固件源文件的真实性,使得固件源文件在传输过程中不会被篡改。本实施例从固件产生至更新过程中,能够确保固件源文件的完整及真实,提高固件安全性。
在另一实施例中,基于上述图1实施例的基础上,在上述步骤S8之后,还包括以下步骤:
定时读取所述闪存区的固件源文件;
获取存储的所述第一摘要信息及第一签名结果;
利用所述安全散列算法对从所述闪存区读取的固件源文件进行运算后得到第四摘要信息,分析所获取的第一摘要信息与第四摘要信息是否相同;
若是,则从所述预定的存储区中获取所述公钥,利用所述公钥对所获取的第一签名结果进行验签,以进行设备自检。
其中,本实施例在设备更新固件后,定时进行自检,例如设备内部的RTC时钟子程序每隔24小时执行一次自检。在自检的过程中,再次用安全散列算法对闪存区的固件源文件进行运算得到第四摘要信息,通过分析存储的第一摘要信息与第四摘要信息是否相同,来分析闪存区的固件源文件的完整性是否被破坏,如果两者相同,则固件源文件是完整的,如果两者不同,那么闪存区的固件源文件的完整性已被破坏。然后,利用公钥对存储的第一签名结果进行验签,验签通过则说明固件源文件在存储时未被篡改,是来自于签名中心的,具有真实性,如果验签未通过,则说明固件源文件在存储时已被篡改。
本实施例通过设备的定时自检,能够进一步确保运行在设备中的固件的安全。
在另一实施例中,基于上述图1实施例的基础上,还包括:
随机生成所述公钥的校验密钥,利用所述校验密钥对所述公钥进行哈希消息认证码运算,得到公钥校验值,存储所述校验密钥及所述公钥校验值;
在从所述预定的存储区中获取所述公钥之后,且在每次使用所述公钥进行验签之前,还包括公钥校验的步骤,所述公钥校验的步骤包括:
获取存储的所述校验密钥,利用所获取的校验密钥对所述公钥进行哈希消息认证码运算,得到待校验的公钥校验值;
分析所述待校验的公钥校验值与存储的公钥校验值是否一致,以对所述公钥进行校验。
为了提高公钥的安全性,在烧录公钥至设备后,每次使用公钥前均需要校验公钥,确保公钥没有被篡改。在烧录公钥至设备后,设备随机生成公钥的校验密钥,校验密钥的长度是随机的,例如为一个8至32字节的一串数据,利用校验密钥对对公钥进行哈希消息认证码(Message authentication code,HMAC)运算,得到一个浓缩的摘要值,该浓缩的摘要值为公钥校验值。
后续在每次使用所述公钥进行验签之前,通过存储的校验密钥对公钥再次进行哈希消息认证码运算,得到待校验的公钥校验值,将待校验的公钥校验值与存储的公钥校验值进行比较分析,如果两者一致,则说明公钥未被篡改,公钥校验通过,如果不一致,则说明公钥已被篡改。
在一实施例中,本发明提供一种安全的固件更新装置,该装置与上述实施例中方法一一对应。如图2所示,该装置包括:
解析模块101,用于获取签名中心发布的固件文件包,解析所述固件文件包得到固件源文件、第一摘要信息及第一签名结果,其中,所述第一摘要信息为利用安全散列算法对固件源文件进行运算后得到,所述第一签名结果为利用预定的非对称加密算法的私钥对所述第一摘要信息进行签名后得到;
第一分析模块102,用于利用所述安全散列算法对解析后得到的固件源文件进行运算后得到第二摘要信息,分析第一摘要信息、第二摘要信息及申请表中预先记录的摘要信息三者是否相同;
第一验签模块103,用于若是,则利用所述非对称加密算法的公钥对解析后得到的第一签名结果进行验签,以进行质检;
下载模块104,用于在所述固件更新过程中,下载所述签名中心发布的固件源文件并存储在预定的缓冲区;
接收模块105,用于接收固件更新工具发送的所述第一摘要信息及第一签名结果并存储;
第二分析模块106,用于利用所述安全散列算法对存储在所述缓冲区的固件源文件进行运算后得到第三摘要信息,分析所接收的第一摘要信息与第三摘要信息是否相同;
第二验签模块107,用于若是,则从预定的存储区中获取所述公钥,利用所述公钥对所接收的第一签名结果进行验签;
更新模块108,用于若验签通过,则将所述缓冲区的固件源文件拷贝至闪存区,以更新固件。
安全的固件更新装置的具体限定可以参见上文中对于安全的固件更新方法的限定,在此不再赘述。上述安全的固件更新装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。所述计算机设备可以是PC(Personal Computer,个人电脑),或者是智能手机、平板电脑、计算机、也可以是单个网络服务器、多个网络服务器组成的服务器组或者基于云计算的由大量主机或者网络服务器构成的云,其中云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。
如图3所示,所述计算机设备可包括,但不仅限于,可通过***总线相互通信连接的存储器11、处理器12、网络接口13,存储器11存储有可在处理器12上运行的计算机程序。需要指出的是,图3仅示出了具有组件11-13的计算机设备,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
其中,存储器11可以是非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。本实施例中,存储器11的可读存储介质通常用于存储安装于计算机设备的操作***和各类应用软件,例如存储本发明一实施例中的计算机程序的程序代码等。此外,存储器11还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器12在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片,用于运行所述存储器11中存储的程序代码或者处理数据,例如运行计算机程序等。
所述网络接口13可包括标准的无线网络接口、有线网络接口,该网络接口13通常用于在所述计算机设备与其他电子设备之间建立通信连接。
所述计算机程序存储在存储器11中,包括至少一个存储在存储器11中的计算机可读指令,该至少一个计算机可读指令可被处理器12执行,以实现本申请各实施例的方法,包括:
获取签名中心发布的固件文件包,解析所述固件文件包得到固件源文件、第一摘要信息及第一签名结果,其中,所述第一摘要信息为利用安全散列算法对固件源文件进行运算后得到,所述第一签名结果为利用预定的非对称加密算法的私钥对所述第一摘要信息进行签名后得到;
利用所述安全散列算法对解析后得到的固件源文件进行运算后得到第二摘要信息,分析第一摘要信息、第二摘要信息及申请表中预先记录的摘要信息三者是否相同;
若是,则利用所述非对称加密算法的公钥对解析后得到的第一签名结果进行验签,以进行质检;
在所述固件更新过程中,下载所述签名中心发布的固件源文件并存储在预定的缓冲区;
接收固件更新工具发送的所述第一摘要信息及第一签名结果并存储;
利用所述安全散列算法对存储在所述缓冲区的固件源文件进行运算后得到第三摘要信息,分析所接收的第一摘要信息与第三摘要信息是否相同;
若是,则从预定的存储区中获取所述公钥,利用所述公钥对所接收的第一签名结果进行验签;
若验签通过,则将所述缓冲区的固件源文件拷贝至闪存区,以更新固件。
在一个实施例中,本发明提供了一种计算机可读存储介质,计算机可读存储介质可以是非易失性和/或易失性存储器,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中安全的固件更新方法的步骤,例如图1所示的步骤S1至步骤S8。或者,计算机程序被处理器执行时实现上述实施例中安全的固件更新装置的各模块/单元的功能,例如图2所示模块101至模块108的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序在执行时,可包括如上述各方法的实施例的流程。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种安全的固件更新方法,应用于设备中,其特征在于,包括:
获取签名中心发布的固件文件包,解析所述固件文件包得到固件源文件、第一摘要信息及第一签名结果,其中,所述第一摘要信息为利用安全散列算法对固件源文件进行运算后得到,所述第一签名结果为利用预定的非对称加密算法的私钥对所述第一摘要信息进行签名后得到;
利用所述安全散列算法对解析后得到的固件源文件进行运算后得到第二摘要信息,分析第一摘要信息、第二摘要信息及申请表中预先记录的摘要信息三者是否相同;
若是,则利用所述非对称加密算法的公钥对解析后得到的第一签名结果进行验签,以进行质检;
在所述固件更新过程中,下载所述签名中心发布的固件源文件并存储在预定的缓冲区;
接收固件更新工具发送的所述第一摘要信息及第一签名结果并存储;
利用所述安全散列算法对存储在所述缓冲区的固件源文件进行运算后得到第三摘要信息,分析所接收的第一摘要信息与第三摘要信息是否相同;
若是,则从预定的存储区中获取所述公钥,利用所述公钥对所接收的第一签名结果进行验签;
若验签通过,则将所述缓冲区的固件源文件拷贝至闪存区,以更新固件。
2.根据权利要求1所述的安全的固件更新方法,其特征在于,所述将所述缓冲区的固件源文件拷贝至闪存区的步骤之后,还包括:
定时读取所述闪存区的固件源文件;
获取存储的所述第一摘要信息及第一签名结果;
利用所述安全散列算法对从所述闪存区读取的固件源文件进行运算后得到第四摘要信息,分析所获取的第一摘要信息与第四摘要信息是否相同;
若是,则从所述预定的存储区中获取所述公钥,利用所述公钥对所获取的第一签名结果进行验签,以进行设备自检。
3.根据权利要求1或2所述的安全的固件更新方法,其特征在于,还包括:
随机生成所述公钥的校验密钥,利用所述校验密钥对所述公钥进行哈希消息认证码运算,得到公钥校验值,存储所述校验密钥及所述公钥校验值;
在从所述预定的存储区中获取所述公钥之后,且在每次使用所述公钥进行验签之前,还包括公钥校验的步骤,所述公钥校验的步骤包括:
获取存储的所述校验密钥,利用所获取的校验密钥对所述公钥进行哈希消息认证码运算,得到待校验的公钥校验值;
分析所述待校验的公钥校验值与存储的公钥校验值是否一致,以对所述公钥进行校验。
4.根据权利要求1或2所述的安全的固件更新方法,其特征在于,所述从预定的存储区中获取所述公钥,利用所述公钥对所接收的第一签名结果进行验签的步骤之后,还包括:若验签未通过,则运行所述闪存区原有的固件,并删除所述缓冲区的固件源文件。
5.根据权利要求1或2所述的安全的固件更新方法,其特征在于,所述将所述缓冲区的固件源文件拷贝至闪存区的步骤之后,还包括:删除所述缓冲区的固件源文件。
6.一种安全的固件更新装置,其特征在于,包括:
解析模块,用于获取签名中心发布的固件文件包,解析所述固件文件包得到固件源文件、第一摘要信息及第一签名结果,其中,所述第一摘要信息为利用安全散列算法对固件源文件进行运算后得到,所述第一签名结果为利用预定的非对称加密算法的私钥对所述第一摘要信息进行签名后得到;
第一分析模块,用于利用所述安全散列算法对解析后得到的固件源文件进行运算后得到第二摘要信息,分析第一摘要信息、第二摘要信息及申请表中预先记录的摘要信息三者是否相同;
第一验签模块,用于若是,则利用所述非对称加密算法的公钥对解析后得到的第一签名结果进行验签,以进行质检;
下载模块,用于在所述固件更新过程中,下载所述签名中心发布的固件源文件并存储在预定的缓冲区;
接收模块,用于接收固件更新工具发送的所述第一摘要信息及第一签名结果并存储;
第二分析模块,用于利用所述安全散列算法对存储在所述缓冲区的固件源文件进行运算后得到第三摘要信息,分析所接收的第一摘要信息与第三摘要信息是否相同;
第二验签模块,用于若是,则从预定的存储区中获取所述公钥,利用所述公钥对所接收的第一签名结果进行验签;
更新模块,用于若验签通过,则将所述缓冲区的固件源文件拷贝至闪存区,以更新固件。
7.根据权利要求6所述的安全的固件更新装置,其特征在于,还包括:
读取模块,用于定时读取所述闪存区的固件源文件;
获取模块,用于获取存储的所述第一摘要信息及第一签名结果;
第三分析模块,用于利用所述安全散列算法对从所述闪存区读取的固件源文件进行运算后得到第四摘要信息,分析所获取的第一摘要信息与第四摘要信息是否相同;
第三验签模块,用于若是,则从所述预定的存储区中获取所述公钥,利用所述公钥对所获取的第一签名结果进行验签,以进行设备自检。
8.根据权利要求6或7所述的安全的固件更新装置,其特征在于,还包括:
生成模块,用于随机生成所述公钥的校验密钥,利用所述校验密钥对所述公钥进行哈希消息认证码运算,得到公钥校验值,存储所述校验密钥及所述公钥校验值;
处理模块,用于获取存储的所述校验密钥,利用所获取的校验密钥对所述公钥进行哈希消息认证码运算,得到待校验的公钥校验值;
第四分析模块,用于分析所述待校验的公钥校验值与存储的公钥校验值是否一致,以对所述公钥进行校验。
9.一种计算机设备,所述计算机设备包括存储器及与所述存储器连接的处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的安全的固件更新方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5中任一项所述的安全的固件更新方法的步骤。
CN202011366819.1A 2020-11-26 2020-11-26 安全的固件更新方法、装置、设备及存储介质 Pending CN112433742A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011366819.1A CN112433742A (zh) 2020-11-26 2020-11-26 安全的固件更新方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011366819.1A CN112433742A (zh) 2020-11-26 2020-11-26 安全的固件更新方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN112433742A true CN112433742A (zh) 2021-03-02

Family

ID=74698131

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011366819.1A Pending CN112433742A (zh) 2020-11-26 2020-11-26 安全的固件更新方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112433742A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227276A (zh) * 2007-01-19 2008-07-23 李东声 一种数字移动证书的公钥安全传递的方法及***
CN101436141A (zh) * 2008-11-21 2009-05-20 深圳创维数字技术股份有限公司 基于数字签名的固件升级、固件封装方法与装置
US20100023777A1 (en) * 2007-11-12 2010-01-28 Gemalto Inc System and method for secure firmware update of a secure token having a flash memory controller and a smart card
US20130318357A1 (en) * 2011-02-11 2013-11-28 Siemens Health Care Diagnostics Inc. System and Method for Secure Software Update
CN105812570A (zh) * 2016-04-21 2016-07-27 深圳市旭子科技有限公司 终端固件更新方法及装置
CN109583189A (zh) * 2018-12-13 2019-04-05 深圳忆联信息***有限公司 固件安全加载方法、装置、计算机设备及存储介质
CN110393019A (zh) * 2017-08-30 2019-10-29 华为技术有限公司 更新固件的方法及相关装置
CN111160879A (zh) * 2018-11-07 2020-05-15 新明华区块链技术(深圳)有限公司 一种硬件钱包及其安全性提升方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101227276A (zh) * 2007-01-19 2008-07-23 李东声 一种数字移动证书的公钥安全传递的方法及***
US20100023777A1 (en) * 2007-11-12 2010-01-28 Gemalto Inc System and method for secure firmware update of a secure token having a flash memory controller and a smart card
CN101436141A (zh) * 2008-11-21 2009-05-20 深圳创维数字技术股份有限公司 基于数字签名的固件升级、固件封装方法与装置
US20130318357A1 (en) * 2011-02-11 2013-11-28 Siemens Health Care Diagnostics Inc. System and Method for Secure Software Update
CN105812570A (zh) * 2016-04-21 2016-07-27 深圳市旭子科技有限公司 终端固件更新方法及装置
CN110393019A (zh) * 2017-08-30 2019-10-29 华为技术有限公司 更新固件的方法及相关装置
CN111160879A (zh) * 2018-11-07 2020-05-15 新明华区块链技术(深圳)有限公司 一种硬件钱包及其安全性提升方法和装置
CN109583189A (zh) * 2018-12-13 2019-04-05 深圳忆联信息***有限公司 固件安全加载方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN107463806B (zh) 一种Android应用程序安装包的签名和验签方法
CN108683502B (zh) 一种数字签名验证方法、介质及设备
EP3026558A1 (en) Method and device for providing verifying application integrity
US20160267273A1 (en) Software update apparatus and computer-readable storage medium storing software update program
WO2016019790A1 (zh) 一种安装包的校验方法、客户端、服务器及***
EP3026560A1 (en) Method and device for providing verifying application integrity
KR20080030359A (ko) 컴퓨팅 플랫폼의 설정 정보를 은닉하면서 무결성 보증을제공하는 방법
CN110795126A (zh) 一种固件安全升级***
CN112131595B (zh) 一种SQLite数据库文件安全存取方法及装置
CN108229144B (zh) 一种应用程序的验证方法、终端设备及存储介质
CN109255232B (zh) 一种软件加载方法以及软件加载装置
CN110826092A (zh) 一种文件签名处理***
KR20170089352A (ko) 가상화 시스템에서 수행하는 무결성 검증 방법
CN109445705A (zh) 固件认证方法及固态硬盘
CN111026419A (zh) 一种单片机的应用程序升级方法、装置及***
CN106709281B (zh) 补丁发放和获取方法、装置
CN112907375A (zh) 数据处理方法、装置、计算机设备和存储介质
CN115514492A (zh) Bios固件验证方法、装置、服务器、存储介质和程序产品
US20210248088A1 (en) Cryptography module and method for operating same
CN106372523B (zh) 一种modem文件安全保护方法及***
CN111400771A (zh) 目标分区的校验方法及装置、存储介质、计算机设备
CN112417422A (zh) 安全芯片升级方法及计算机可读存储介质
CN110826034B (zh) 一种文件签名方法、装置、电子设备及可读存储介质
CN114448794B (zh) 一种基于芯片可信根对固件进行安全升级的方法及装置
CN112433742A (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