CN116257839A - 升级签名固件的方法、电子设备和存储介质 - Google Patents

升级签名固件的方法、电子设备和存储介质 Download PDF

Info

Publication number
CN116257839A
CN116257839A CN202310025408.3A CN202310025408A CN116257839A CN 116257839 A CN116257839 A CN 116257839A CN 202310025408 A CN202310025408 A CN 202310025408A CN 116257839 A CN116257839 A CN 116257839A
Authority
CN
China
Prior art keywords
public key
firmware
parameter information
key parameter
message digest
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
CN202310025408.3A
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.)
Rockchip Electronics Co Ltd
Original Assignee
Rockchip Electronics 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 Rockchip Electronics Co Ltd filed Critical Rockchip Electronics Co Ltd
Priority to CN202310025408.3A priority Critical patent/CN116257839A/zh
Publication of CN116257839A publication Critical patent/CN116257839A/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/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

本发明公开了升级签名固件的方法、电子设备和存储介质,通过可信操作系统将公钥参数信息和数字签名算法类型保存至安全存储中,由可信操作系统计算与公钥参数信息相对应的消息摘要,并对消息摘要进行加密,将加密后的消息摘要写入命令行参数,后续基于安全存储中的公钥参数信息和数字签名算法类型以及命令行参数中的加密后的消息摘要对签名后的待升级固件进行校验,校验成功才进行升级,以此提高了公钥信息的安全性,且将命令行参数中加密后的消息摘要作为与可信操作系统之间的通信凭证,从而有效提高签名固件升级的安全性。

Description

升级签名固件的方法、电子设备和存储介质
技术领域
本发明涉及嵌入式设备技术领域,特别涉及升级签名固件的方法、电子设备和存储介质。
背景技术
已有的针对安全启动签名固件的升级方案中,验证签名固件的公钥信息通常都是在非可信环境中传递,无法保证签名固件升级的安全性,从而无法满足一些对安全性要求较高的应用场景。
发明内容
本发明的实施例提供升级签名固件的方法、电子设备和存储介质,其能够有效提高签名固件升级的安全性。
在本发明的一个方面,提供一种升级签名固件的方法。该方法包括:从签名后的待升级固件中的启动引导程序固件中获取公钥参数信息和数字签名算法类型;由可信操作系统将所述公钥参数信息和所述数字签名算法类型保存至安全存储中,由所述可信操作系统计算与所述公钥参数信息相对应的消息摘要,并对所述消息摘要进行加密;将加密后的消息摘要写入命令行参数;基于所述安全存储中的所述公钥参数信息和所述数字签名算法类型以及所述命令行参数中的所述加密后的消息摘要对所述签名后的待升级固件进行校验;以及若所述校验的结果为成功,则对所述签名后的待升级固件进行升级。
在本发明的又一方面,提供一种电子设备。该电子设备包括存储器,被配置为存储计算机程序;以及处理器,被配置为执行所述计算机程序以执行上述的升级签名固件的方法。
在本发明的再一方面,提供一种计算机可读介质。该介质上存储有计算机程序,所述计算机程序被处理器执行以实现上述的升级签名固件的方法。
根据本发明的实施例,通过可信操作系统将公钥参数信息和数字签名算法类型保存至安全存储中,由可信操作系统计算与公钥参数信息相对应的消息摘要,并对消息摘要进行加密,将加密后的消息摘要写入命令行参数,后续基于安全存储中的公钥参数信息和数字签名算法类型以及命令行参数中的加密后的消息摘要对签名后的待升级固件进行校验,校验成功才进行升级,以此提高了公钥信息的安全性,且将命令行参数中加密后的消息摘要作为与可信操作系统之间的通信凭证,从而有效提高签名固件升级的安全性。
附图说明
图1为根据本发明实施例的升级签名固件的方法的步骤流程图;
图2为根据本发明实施例的升级签名固件的方法的流程示意图;
图3为根据本发明实施例的电子设备的结构示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
在已有技术中,验证签名固件的公钥信息通常都是在非可信环境中传递,无法保证签名固件升级的安全性。
为了解决至少上述技术问题,本公开提供了升级签名固件的方法。根据本公开,通过可信操作系统将公钥参数信息和数字签名算法类型保存至安全存储中,由可信操作系统计算与公钥参数信息相对应的消息摘要,并对消息摘要进行加密,将加密后的消息摘要写入命令行参数,后续基于安全存储中的公钥参数信息和数字签名算法类型以及命令行参数中的加密后的消息摘要对签名后的待升级固件进行校验,校验成功才进行升级,将命令行参数中加密后的消息摘要作为与可信操作系统之间的通信凭证。以此方式,根据本公开的实施例能够提高公钥信息的安全性,从而有效提高签名固件升级的安全性。
下文中,将参考具体实施例并且结合附图描述根据本公开的技术方案。
图1是示出根据本公开的实施例的升级签名固件的方法100的流程图。参照图1,该方法100包括以下步骤102至步骤110。
在步骤102,从签名后的待升级固件中的启动引导程序固件中获取公钥参数信息和数字签名算法类型。在一些实施例中,设备安全启动,从启动存储介质(如eMMC,embeddedMulti Media Card,嵌入式多媒体卡)逐级加载对应签名后的待升级固件并校验,在安全引导启动引导程序和可信操作系统之后,由所述启动引导程序读出包含在签名后的待升级固件中的启动引导程序固件中的公钥参数信息和数字签名算法类型。
在一些实施例中,该方法100还可以包括:对待升级固件进行签名,得到签名后的待升级固件;将公钥参数信息和数字签名算法类型写入所述签名后的待升级固件中的所述启动引导程序固件的预设位置;以及将所述签名后的待升级固件存储至固件升级包。以此方式,确保可通过启动引导程序固件获取到固件签名的相关信息。
在一些实施例中,该方法100还可以包括:由所述启动引导程序基于所述数字签名算法类型和所述公钥参数生成第一指令,并将所述第一指令发送到所述可信操作系统中的静态可信应用(静态TA)。
在步骤104,由可信操作系统将所述公钥参数信息和数字签名算法类型保存至安全存储中,由所述可信操作系统计算与所述公钥参数信息相对应的消息摘要,并对所述消息摘要进行加密。在一些实施例中,由可信操作系统中的静态可信应用接收第一指令,并基于所述第一指令获取所述公钥参数信息和所述数字签名算法类型;以及由所述静态可信应用将所述公钥参数信息和所述数字签名算法类型保存至所述安全存储中。在一些实施例中,由所述静态可信应用使用预设消息摘要算法计算与所述公钥参数信息相对应的消息摘要;以及由所述静态可信应用使用预设对称加密算法和密钥对计算出的所述消息摘要进行加密。在一些实施例中,所述预设消息摘要算法为SHA256算法。在一些实施例中,若存储介质为eMMC,则所述安全存储为eMMC的RPMB(Replay Protected Memory Block,重放保护内存块)区域。以此方式,使得安全存储中的公钥信息只有可信安全操作系统才能访问,非安全操作系统(即通用操作系统,如Android)无法直接访问安全存储,从而提高了公钥信息的安全性。
在步骤106,将加密后的消息摘要写入命令行参数。在一些实施例中,可以由所述启动引导程序将熔断标记将加密后的消息摘要写入命令行参数。在一些实施例中,还可以由所述启动引导程序将熔断标记(如fuse.programmed)和系统标记(如androidboot.slot_suffix)与所述加密后的消息摘要一起写入所述命令行参数。以此方式,便于后续客户应用根据命令行参数中的加密后的消息摘要作为与静态可信应用的通信凭证,以便静态可信应用实现对客户应用的鉴权,确保是安全合法的通信。
在一些实施例中,该方法100还可以包括:根据所述命令行参数中的所述系统标记(如/proc/cmdline中的androidboot.slot_suffix)和所述熔断标记(如/proc/cmdline中的fuse.programmed)确定是否需要进行校验。在一些实施例中,判断所述系统标记是否表示设备为双系统;若是,则判断所述熔断标记是否表示设备熔断;若表示设备熔断,则确定需要进行校验;以及若表示设备未熔断,则确定不需要进行校验,并且所述方法还包括直接对所述签名后的待升级固件进行升级。在一些实施例中,判断所述系统标记是否表示设备为单系统;若是,则判断所述熔断标记是否表示设备熔断;若表示设备熔断,则确定需要进行校验;以及若表示设备未熔断,则确定不需要进行校验,并且所述方法还包括直接对所述签名后的待升级固件进行升级。在一些实施例中,所述单系统为非A/B系统,即有一套固件,所述双系统为A/B系统,即有两套固件。以此方式,A/B系统可无需进入升级模式直接进行升级,而非A/B系统需要进入升级模式后,进行升级,根据熔断标记执行对应的固件校验流程,提高校验效率。
在步骤108,基于所述安全存储中的公钥参数信息和数字签名算法类型以及所述命令行参数中的加密后的消息摘要对所述签名后的待升级固件进行校验。在一些实施例中,由所述静态可信应用接收第二指令,并基于所述第二指令获取所述加密后的消息摘要;由所述静态可信应用对所述加密后的消息摘要进行解密,得到解密后的消息摘要;由所述静态可信应用从所述安全存储中读取所述公钥参数信息,并计算与读取的所述公钥参数信息相对应的验证消息摘要;由所述静态可信应用判断所述解密后的消息摘要与所述验证消息摘要是否一致;若一致,由升级程序客户端获取所述公钥参数信息和所述数字签名算法类型;以及由所述升级程序客户端使用获取到的所述公钥参数信息和所述数字签名算法类型对所述签名后的待升级固件进行校验。
在一些实施例中,由与所述静态可信应用相对应的客户应用根据所述命令行参数中的所述加密后的消息摘要生成第二指令,并将所述第二指令发送至所述可信操作系统中的所述静态可信应用;由所述静态可信应用对所述第二指令中的加密后的消息摘要进行解密,得到解密后的消息摘要;由所述静态可信应用从所述安全存储中读取所述公钥参数信息,并计算与读取的所述公钥参数信息相对应的验证消息摘要;由所述静态可信应用判断所述解密后的消息摘要和所述验证消息摘要是否一致;若不一致,则确定所述校验的结果为失败,并由升级程序客户端基于熔断标记确定是否退出升级流程;若一致,则由所述静态可信应用将所述安全存储中的所述公钥参数信息和所述数字签名算法类型发送给所述客户应用;由所述客户应用对所述公钥参数信息和所述数字签名算法类型进行加密,得到加密后的公钥参数信息和数字签名算法类型;由所述客户应用将所述加密后的公钥参数信息和数字签名算法类型存储至引导通信分区的第一位置;由升级程序客户端从所述引导通信分区的第一位置读取所述加密后的公钥参数信息和数字签名算法类型,并对所述加密后的公钥参数信息和数字签名算法类型进行解密,得到解密后的公钥参数信息和数字签名算法类型;由升级程序客户端从所述固件升级包中依次选择待校验固件,并将所述待校验固件的二进制文件写入内存或可读写文件系统分区;由升级程序客户端使用所述解密后的公钥参数信息和数字签名算法类型对所述待校验固件进行验证;若验证失败,则基于熔断标记确定是否退出升级流程;以及若验证成功,则确定所述校验的结果为成功。。
在一些实施例中,判断所述熔断标记是否表示设备熔断;若表示设备熔断,则退出升级流程;若表示设备未熔断,则输出风险提示,并获取与所述风险提示对应的用户反馈;若所述用户反馈为继续升级,则对所述签名后的待升级固件进行升级;若所述用户反馈为不继续升级,则退出升级流程。以此方式,解决了设备熔断后升级没有签名或者签名出错的固件导致设备无法开机的问题,同时在设备没有熔断的情况下,支持对没有签名或签名出错的合法升级包进行升级,提高设备出厂前的开发调试效率。
在步骤110,若所述校验的结果为成功,则对所述签名后的待升级固件进行升级。在一些实施方式中,若所述命令行参数中的所述系统标记表示设备为双系统,则对所述签名后的待升级固件执行正常的双系统升级流程,并在升级结束后,将乱码写入至引导通信分区的第一位置;若所述命令行参数中的所述系统标记表示设备为单系统,则引导设备进入固件升级模式进行升级。以此方式,非安全操作系统要通过特定CA(客户应用)和可信安全环境下的对应TA进行交互才能获取安全存储中存储的内容,CA(即非安全环境)从TA(即安全环境)获取密钥,在非安全环境中使用完毕后写入乱码擦除,不在非安全环境下永久存储,每次升级前CA通过从命令行参数中获取加密的公钥的消息摘要信息作为与TA的通信凭证,以便TA实现对CA的鉴权,确保是安全合法的通信,从而提高签名固件升级的安全性。
下文中,将通过示例描述根据本发明实施例的签名固件升级方法及设备的应用场景。
图2是示出根据本发明实施例的升级签名固件的方法的流程图,包括以下步骤201至步骤230。
在步骤201,对待升级固件进行签名,并将签名后的待升级固件放入固件升级包,对启动引导程序固件进行签名时,将公钥参数信息和数字签名算法类型写入启动引导程序固件的预设位置。
在步骤202,设备安全启动,从启动存储介质(如eMMC)逐级加载对应固件并校验。当安全引导启动引导程序和可信操作系统之后,启动引导程序从启动引导程序固件中读取数字签名算法类型和公钥参数,以数字签名算法类型和公钥参数作为输入参数生成指令1。
在步骤203,向可信操作系统中的某一静态TA发送指令1。
在步骤204,可信操作系统中的静态TA接收到该指令1后,获取其中的数字签名算法类型和公钥参数,使用预设消息摘要算法计算与公钥参数信息相对应的消息摘要,并使用预设对称加密算法和密钥对计算出的消息摘要进行加密。
在步骤205,静态TA保存数字签名算法类型和公钥参数到安全存储,并返回加密后的消息摘要给启动引导程序。
在步骤206,启动引导程序将返回的加密后的消息摘要写入命令行参数,同时也将熔断标记和系统标记写入命令行参数。
在步骤207,启动引导程序校验即将引导的存储介质中的启动固件(如boot),校验通过后,引导启动固件。
在步骤208,启动与静态TA对应的CA(客户应用)以及固件升级程序客户端。
在步骤209,升级程序客户端检测到有新版本固件需要升级时,提取命令行参数中的熔断标记和系统标记。
在步骤210,判断系统标记是否为A/B系统,若是,则执行步骤211,否则,执行步骤213。比如/proc/cmdline中的androidboot.slot_suffix若为_a或者_b则表示是A/B系统,若为空则表示为非A/B系统。
在步骤211,判断熔断标记是否为设备熔断,若是,则执行步骤213,若否,则执行步骤212。
在步骤212,执行正常的A/B系统升级流程。
在步骤213,升级程序客户端获取完整的固件升级包,检测该固件升级包的合法性,检测为合法后执行步骤214。
在步骤214,升级程序客户端向CA发送公钥参数信息获取指令。
在步骤215,CA从命令行参数中获取加密后的消息摘要,以加密后的消息摘要作为输入生成指令2,将该指令2发送至可信操作系统中的对应TA。
在步骤216,TA使用预设对称加密算法和密钥对指令2中的加密后的消息摘要进行解密,得到消息摘要1,并从安全存储中读取公钥参数信息,使用预设消息摘要算法计算与公钥参数信息相对应的消息摘要,得到消息摘要2。
在步骤217,判断消息摘要1与消息摘要2是否一致,若是,则执行步骤220,否则,执行步骤218至步骤219。
在步骤218,返回出错信息到CA,CA向升级程序客户端返回出错信息。
在步骤219,升级程序客户端判断熔断标记是否为设备熔断,若是,则提示用户退出升级流程,若否,则输出风险提示,并获取与风险提示对应的用户反馈;若所述用户反馈为继续升级,则执行步骤224;若所述用户反馈为不继续升级,则退出升级流程。
在步骤220,从安全存储中读出数字签名算法类型和公钥参数信息返回给CA,CA使用预设对称加密算法和密钥对从TA处获取到的数字签名算法类型和公钥参数信息进行加密,得到密文,并将密文存储在引导通信分区的位置1,向升级程序客户端返回成功信息。
在步骤221,升级程序客户端从引导通信分区的位置1读取密文,使用预设对称加密算法和密钥对密文进行解密,得到数字签名算法类型和公钥参数信息。然后从固件升级包中依次提取待校验固件,将待校验固件的二进制文件写入内存或者可读写文件系统分区。
在步骤222,使用获取到的数字签名算法类型和公钥参数信息对待校验固件进行验证。
在步骤223,判断固件升级包中是否所有待校验固件全部验证通过,若是,则执行步骤224,若否,则执行步骤219。
在步骤224,判断系统标记是否为A/B系统,若是,则使用验证通过的固件升级包执行正常的A/B系统升级流程,并在升级结束后将乱码写入引导通信分区的位置1,以覆盖存储数字签名算法类型和公钥参数信息的密文,若否,则执行步骤225。
在步骤225,引导设备进入固件升级模式(如recovery)进行升级。
在步骤226,设备安全启动,从启动存储介质逐级加载对应固件并校验。当安全引导启动引导程序之后,启动引导程序将熔断标记写入命令行参数,然后校验即将引导的存储介质中的升级模式固件(如recovery),校验通过后,引导升级模式固件。
在步骤227,在固件升级模式中,读取命令行参数中的熔断标记,并判断熔断标记是否为设备熔断,若否,则执行固件升级流程,完成设备固件的升级,并在升级结束后将乱码写入引导通信分区的位置1,若是,则执行步骤228。
在步骤228,从引导通信分区的位置1读取密文,使用预设对称加密算法和密钥对密文进行解密,得到数字签名算法类型和公钥参数信息。最后从固件升级包中依次提取出待校验固件,将待校验固件的二进制文件写入内存或者可读写文件系统分区。
在步骤229,使用获取到的数字签名算法类型和公钥参数信息对待校验固件进行验证。
在步骤230,判断固件升级包中是否所有待校验固件全部验证通过,若是,则执行固件升级流程,完成设备固件的升级,并在升级结束后将乱码写入引导通信分区的位置1,若否,则提示用户校验出错,退出升级流程。
本发明的升级签名固件的方法更适用于较大固件的升级。
根据本发明的又一方面,图3是示出根据本发明实施例的升级签名固件的设备300的示意图。参照图3,该电子设备300包括存储器302、处理器304以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上面描述的升级签名固件的方法的各个步骤。
根据本发明的又一方面,提供了一种计算机可读介质。该计算机可读介质上存储有计算机程序,该计算机程序被处理器执行以实现如上面描述的升级签名固件的方法。
综上所述,本发明提供的签名固件的升级方法、电子设备和存储介质,从签名后的待升级固件中的启动引导程序固件中获取公钥参数信息和数字签名算法类型;由可信操作系统将所述公钥参数信息和数字签名算法类型保存至安全存储中,由所述可信操作系统计算与所述公钥参数信息相对应的消息摘要;并对所述消息摘要进行加密,将加密后的消息摘要写入命令行参数;基于所述安全存储中的公钥参数信息和数字签名算法类型以及所述命令行参数中的加密后的消息摘要对所述签名后的待升级固件进行校验;以及若所述校验的结果为成功,则对所述签名后的待升级固件进行升级,解决了设备熔断后升级没有签名或者签名出错的固件导致设备无法开机的问题,同时在设备没有熔断的情况下,支持对没有签名或签名出错的合法升级包进行升级,提高设备出厂前的开发调试效率;提高了公钥信息的安全性,且将命令行参数中加密后的消息摘要作为与可信操作系统之间的通信凭证,从而有效提高签名固件升级的安全性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (16)

1.一种升级签名固件的方法,其特征在于,包括:
从签名后的待升级固件中的启动引导程序固件中获取公钥参数信息和数字签名算法类型;
由可信操作系统将所述公钥参数信息和所述数字签名算法类型保存至安全存储中,由所述可信操作系统计算与所述公钥参数信息相对应的消息摘要,并对所述消息摘要进行加密;
将加密后的消息摘要写入命令行参数;
基于所述安全存储中的所述公钥参数信息和所述数字签名算法类型以及所述命令行参数中的所述加密后的消息摘要对所述签名后的待升级固件进行校验;以及
若所述校验的结果为成功,则对所述签名后的待升级固件进行升级。
2.根据权利要求1所述的方法,其特征在于,从签名后的待升级固件中的启动引导程序固件中获取公钥参数信息和数字签名算法类型包括:
在安全引导启动引导程序和所述可信操作系统之后,由所述启动引导程序读出包含在签名后的待升级固件中的启动引导程序固件中的公钥参数信息和数字签名算法类型。
3.根据权利要求2所述的方法,其特征在于,还包括:
由所述启动引导程序基于所述数字签名算法类型和所述公钥参数生成第一指令,并将所述第一指令发送到所述可信操作系统中的静态可信应用。
4.根据权利要求3所述的方法,其特征在于,由可信操作系统将所述公钥参数信息和所述数字签名算法类型保存至安全存储中包括:
由可信操作系统中的静态可信应用接收第一指令,并基于所述第一指令获取所述公钥参数信息和所述数字签名算法类型;以及
由所述静态可信应用将所述公钥参数信息和所述数字签名算法类型保存至所述安全存储中。
5.根据权利要求4所述的方法,其特征在于,由所述可信操作系统计算与所述公钥参数信息相对应的消息摘要,并对所述消息摘要进行加密包括:
由所述静态可信应用使用预设消息摘要算法计算与所述公钥参数信息相对应的消息摘要;以及
由所述静态可信应用使用预设对称加密算法和密钥对计算出的所述消息摘要进行加密。
6.根据权利要求4所述的方法,其特征在于,基于所述安全存储中的所述公钥参数信息和所述数字签名算法类型以及所述命令行参数中的所述加密后的消息摘要对所述签名后的待升级固件进行校验包括:
由所述静态可信应用接收第二指令,并基于所述第二指令获取所述加密后的消息摘要;
由所述静态可信应用对所述加密后的消息摘要进行解密,得到解密后的消息摘要;
由所述静态可信应用从所述安全存储中读取所述公钥参数信息,并计算与读取的所述公钥参数信息相对应的验证消息摘要;
由所述静态可信应用判断所述解密后的消息摘要与所述验证消息摘要是否一致;
若一致,由升级程序客户端获取所述公钥参数信息和所述数字签名算法类型;以及
由所述升级程序客户端使用获取到的所述公钥参数信息和所述数字签名算法类型对所述签名后的待升级固件进行校验。
7.根据权利要求1所述的方法,其特征在于,还包括:
由所述启动引导程序将熔断标记和系统标记与所述加密后的消息摘要一起写入所述命令行参数。
8.根据权利要求7所述的方法,其特征在于,还包括:
根据所述命令行参数中的所述系统标记和所述熔断标记确定是否需要进行校验。
9.根据权利要求8所述的方法,其特征在于,根据所述命令行参数中的所述系统标记和所述熔断标记确定是否需要进行校验包括:
判断所述系统标记是否表示设备为双系统;
若是,则判断所述熔断标记是否表示设备熔断;
若表示设备熔断,则确定需要进行校验;以及
若表示设备未熔断,则确定不需要进行校验,并且所述方法还包括直接对所述签名后的待升级固件进行升级。
10.根据权利要求8所述的方法,其特征在于,根据所述命令行参数中的所述系统标记和所述熔断标记确定是否需要进行校验包括:
判断所述系统标记是否表示设备为单系统;
若是,则判断所述熔断标记是否表示设备熔断;
若表示设备熔断,则确定需要进行校验;以及
若表示设备未熔断,则确定不需要进行校验,并且所述方法还包括直接对所述签名后的待升级固件进行升级。
11.根据权利要求4所述的方法,其特征在于,基于所述安全存储中的所述公钥参数信息和所述数字签名算法类型以及所述命令行参数中的所述加密后的消息摘要对所述签名后的待升级固件进行校验包括:
由与所述静态可信应用相对应的客户应用根据所述命令行参数中的所述加密后的消息摘要生成第二指令,并将所述第二指令发送至所述可信操作系统中的所述静态可信应用;
由所述静态可信应用对所述第二指令中的加密后的消息摘要进行解密,得到解密后的消息摘要;
由所述静态可信应用从所述安全存储中读取所述公钥参数信息,并计算与读取的所述公钥参数信息相对应的验证消息摘要;
由所述静态可信应用判断所述解密后的消息摘要和所述验证消息摘要是否一致;
若不一致,则确定所述校验的结果为失败,并由升级程序客户端基于熔断标记确定是否退出升级流程;
若一致,则由所述静态可信应用将所述安全存储中的所述公钥参数信息和所述数字签名算法类型发送给所述客户应用;
由所述客户应用对所述公钥参数信息和所述数字签名算法类型进行加密,得到加密后的公钥参数信息和数字签名算法类型;
由所述客户应用将所述加密后的公钥参数信息和数字签名算法类型存储至引导通信分区的第一位置;
由升级程序客户端从所述引导通信分区的第一位置读取所述加密后的公钥参数信息和数字签名算法类型,并对所述加密后的公钥参数信息和数字签名算法类型进行解密,得到解密后的公钥参数信息和数字签名算法类型;
由升级程序客户端从所述固件升级包中依次选择待校验固件,并将所述待校验固件的二进制文件写入内存或可读写文件系统分区;
由升级程序客户端使用所述解密后的公钥参数信息和数字签名算法类型对所述待校验固件进行验证;
若验证失败,则基于熔断标记确定是否退出升级流程;以及
若验证成功,则确定所述校验的结果为成功。
12.根据权利要求11所述的方法,其特征在于,基于熔断标记确定是否退出升级流程包括:
判断所述熔断标记是否表示设备熔断;
若表示设备熔断,则退出升级流程;
若表示设备未熔断,则输出风险提示,并获取与所述风险提示对应的用户反馈;
若所述用户反馈为继续升级,则对所述签名后的待升级固件进行升级;
若所述用户反馈为不继续升级,则退出升级流程。
13.根据权利要求7所述的方法,其特征在于,对所述签名后的待升级固件进行升级包括:
若所述命令行参数中的所述系统标记表示设备为双系统,则对所述签名后的待升级固件执行正常的双系统升级流程,并在升级结束后,将乱码写入至引导通信分区的第一位置;
若所述命令行参数中的所述系统标记表示设备为单系统,则引导设备进入固件升级模式进行升级。
14.根据权利要求1所述的方法,其特征在于,还包括:
对待升级固件进行签名,得到所述签名后的待升级固件;
将所述公钥参数信息和所述数字签名算法类型写入所述签名后的待升级固件中的所述启动引导程序固件的预设位置;以及
将所述签名后的待升级固件存储至固件升级包。
15.一种电子设备,其特征在于,包括:
存储器,被配置为存储计算机程序;以及
处理器,被配置为执行所述计算机程序以执行根据权利要求1至14中任一项所述的方法。
16.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被执行以实现根据权利要求1至14中任一项所述的方法。
CN202310025408.3A 2023-01-09 2023-01-09 升级签名固件的方法、电子设备和存储介质 Pending CN116257839A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310025408.3A CN116257839A (zh) 2023-01-09 2023-01-09 升级签名固件的方法、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310025408.3A CN116257839A (zh) 2023-01-09 2023-01-09 升级签名固件的方法、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN116257839A true CN116257839A (zh) 2023-06-13

Family

ID=86687269

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310025408.3A Pending CN116257839A (zh) 2023-01-09 2023-01-09 升级签名固件的方法、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN116257839A (zh)

Similar Documents

Publication Publication Date Title
US8782388B2 (en) Information processing apparatus, method, and computer-readable storage medium that encrypt data in a blob based on a hash value
EP1594030B1 (en) Program update method and server
US8392724B2 (en) Information terminal, security device, data protection method, and data protection program
KR100792287B1 (ko) 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치
US20050021968A1 (en) Method for performing a trusted firmware/bios update
KR20090007123A (ko) 보안 부팅 방법 및 그 방법을 사용하는 반도체 메모리시스템
JP2007310688A (ja) マイクロコンピュータおよびそのソフトウェア改竄防止方法
CN112148314A (zh) 一种嵌入式系统的镜像验证方法、装置、设备及存储介质
CN109814934B (zh) 数据处理方法、装置、可读介质和系统
WO2019059148A1 (ja) Bios管理装置、bios管理システム、bios管理方法、及び、bios管理プログラムが格納された記録媒体
JP2018508063A (ja) セキュア素子
CN110730079B (zh) 基于可信计算模块的嵌入式系统安全启动和可信度量的系统
CN112417422A (zh) 安全芯片升级方法及计算机可读存储介质
CN116257839A (zh) 升级签名固件的方法、电子设备和存储介质
CN114547620A (zh) 签名固件升级方法、设备及计算机可读介质
CN116204867A (zh) 升级签名固件的方法、电子设备和存储介质
CN111695164A (zh) 电子设备及其控制方法
CN114065218B (zh) 一种SoC系统芯片安全启动方法
CN114297679B (zh) 一种镜像加密传输与升级的方法
CN115357293A (zh) 升级签名固件的方法、电子设备和存储介质
KR20230082388A (ko) 차량 제어기의 부트로더 검증 장치 및 그 방법
CN115828255A (zh) 升级签名固件的方法、电子设备和存储介质
KR100932276B1 (ko) 보안 모듈의 업그레이드 장치 및 그 방법
JP4580030B2 (ja) セキュアデバイス
CN115640582A (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