CN115509587B - 固件升级方法、装置、电子设备及计算机可读存储介质 - Google Patents

固件升级方法、装置、电子设备及计算机可读存储介质 Download PDF

Info

Publication number
CN115509587B
CN115509587B CN202211465750.7A CN202211465750A CN115509587B CN 115509587 B CN115509587 B CN 115509587B CN 202211465750 A CN202211465750 A CN 202211465750A CN 115509587 B CN115509587 B CN 115509587B
Authority
CN
China
Prior art keywords
firmware
key
sub
server
hash value
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
CN202211465750.7A
Other languages
English (en)
Other versions
CN115509587A (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.)
China Electronics Technology Network Security Technology Co ltd
Original Assignee
Chengdu Westone Information Industry Inc
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 Chengdu Westone Information Industry Inc filed Critical Chengdu Westone Information Industry Inc
Priority to CN202211465750.7A priority Critical patent/CN115509587B/zh
Publication of CN115509587A publication Critical patent/CN115509587A/zh
Application granted granted Critical
Publication of CN115509587B publication Critical patent/CN115509587B/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/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/602Providing cryptographic facilities or services
    • 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)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种固件升级方法、装置、电子设备及计算机可读存储介质,应用于客户端,获取固件服务器传输的新版本固件;获取固件服务传输的待密封数据;获取固件服务器的解封增强授权策略,解封增强授权策略示意被密封数据只有在满足与目标启动状态绑定的目标PCR值下才能被解封;在固件服务器的管控下创建子密钥,子密钥创建过程中会完成对待密封数据的密封,并与解封增强授权策略绑定;在固件服务器的管控下,将子密钥载入至客户端的可信密码模块中;基于新版本固件进行固件升级。本公开中,客户端进行固件升级后,可以从子密钥中解封出与通过PCR和目标启动状态绑定的密封数据,间接解决了脆性PCR问题,保证了升级固件后的正常启动。

Description

固件升级方法、装置、电子设备及计算机可读存储介质
技术领域
本公开涉及固件升级技术领域,更具体地说,涉及固件升级方法、装置、电子设备及计算机可读存储介质。
背景技术
当前,在利用可信密码模块(Trusted Cryptography Module,TCM)实现启动信任链的技术中,通常的做法是用PCR(平台配置寄存器)值表示机器的状态,较小编号的PCR表示系统的引导过程,而较高编号的PCR表示内核启动后的事件。密钥或数据可以被锁定到具有特定值的特定PCR,这种行为称为密封。但如果密钥或数据被锁定到代表某固件的PCR,而该固件又是启动信任链的一部分,则升级该固件将变得非常困难,因为升级固件后会导致被密封到代表原来启动状态的PCR的密钥或数据无法解封,这就是脆性PCR问题。而利用目前现成的TCM命令,是不能直接解决脆性PCR问题的,由此使得固件无法正常升级。
综上所述,如何实现TCM下的固件正常升级是目前本领域技术人员亟待解决的问题。
发明内容
本公开的目的是提供一种固件升级方法,其能在一定程度上解决如何实现TCM下的固件正常升级的技术问题。本公开还提供了一种固件升级装置、电子设备及计算机可读存储介质。
根据本公开实施例的第一方面,提供一种固件升级方法,应用于客户端,包括:
获取固件服务器传输的新版本固件;
获取所述固件服务器传输的待密封数据;
获取所述固件服务器的解封增强授权策略,所述解封增强授权策略示意所述待密封数据只有在满足与目标启动状态绑定的目标PCR值下才能被解封,所述目标PCR值包括所述客户端在完成固件升级后受影响的PCR值;
在所述固件服务器的管控下创建子密钥,所述子密钥在创建过程中会完成对所述待密封数据的密封,并与所述解封增强授权策略绑定;
在所述固件服务器的管控下,将所述子密钥载入至所述客户端的可信密码模块中;
基于所述新版本固件进行固件升级。
优选的,所述在所述固件服务器的管控下创建子密钥,包括:
获取所述固件服务器生成的子密钥生成模板;
按照所述子密钥生成模板,在所述固件服务器的管控下创建所述子密钥。
优选的,所述在所述固件服务器的管控下创建子密钥,包括:
获取所述固件服务器生成的第一命令参数哈希值和第一签名值,所述第一命令参数哈希值包括所述固件服务器生成的目标子密钥创建命令码和创建参数的哈希值,所述第一签名值包括所述固件服务器基于自身的平台私钥对所述第一命令参数哈希值进行签名后的签名值;
获取待运行子密钥创建命令;
基于所述固件服务器的平台公钥对所述第一命令参数哈希值进行验签,若验签成功,则计算所述待运行子密钥创建命令的第二命令参数哈希值;
判断所述第二命令参数哈希值与所述第一命令参数哈希值是否一致,若一致,则基于所述待运行子密钥创建命令创建所述子密钥。
优选的,所述在所述固件服务器的管控下,将所述子密钥载入至所述客户端的可信密码模块中,包括:
获取所述固件服务器生成的第三命令参数哈希值和第二签名值,所述第三命令参数哈希值包括所述固件服务器生成的目标子密钥载入命令码和载入参数的哈希值,所述第二签名值包括所述固件服务器基于自身的平台私钥对所述第三命令参数哈希值进行签名后的签名值;
获取待运行子密钥载入命令;
基于所述固件服务器的平台公钥对所述第二签名值进行验签,若验签成功,则计算所述待运行子密钥载入命令的第四命令参数哈希值;
判断所述第四命令参数哈希值与所述第三命令参数哈希值是否一致,若一致,则基于所述待运行子密钥载入命令将所述子密钥载入至所述客户端的所述可信密码模块中。
优选的,所述在所述固件服务器的管控下,将所述子密钥载入至所述客户端的可信密码模块中之后,所述基于所述新版本固件进行固件升级之前,还包括:
对所述子密钥进行持久化。
优选的,所述获取所述固件服务器传输的待密封数据,包括:
获取所述固件服务器传输的待密封数据密文,所述待密封数据密文包括基于所述客户端的主密钥的公钥部分对所述待密封数据进行加密后得到的数据;
基于所述主密钥的私钥部分对所述待密封数据密文进行解密,得到所述待密封数据。
优选的,所述获取固件服务器传输的新版本固件,包括:
获取所述固件服务器传输的新版本固件密文;
获取所述固件服务器传输的对称密钥密文,所述对称密钥密文包括基于所述客户端的主密钥的公钥部分对对称密钥进行加密后得到的密文;
基于所述主密钥的私钥部分对所述对称密钥密文进行解密,得到所述对称密钥;
基于所述对称密钥对所述新版本固件密文进行解密,得到所述新版本固件。
优选的,所述获取固件服务器传输的新版本固件之后,还包括:
获取所述固件服务器基于平台私钥对新版本固件杂凑值进行加密后得到的新版本固件杂凑值密文;
基于所述固件服务器的平台公钥对所述新版本固件杂凑值密文进行解密,得到所述新版本固件杂凑值;
计算接收的所述新版本固件的杂凑值;
判断所述新版本固件的杂凑值与所述新版本固件杂凑值是否一致,若一致,则允许使用所述新版本固件。
根据本公开实施例的第二方面,提供一种固件升级装置,应用于客户端,包括:
新版本固件获取模块,用于获取固件服务器传输的新版本固件;
待密封数据获取模块,用于获取所述固件服务器传输的待密封数据;
策略获取模块,用于获取所述固件服务器的解封增强授权策略,所述解封增强授权策略示意所述待密封数据只有在满足与目标启动状态绑定的目标PCR值下才能被解封,所述目标PCR值包括所述客户端在完成固件升级后受影响的PCR值;
子密钥创建模块,用于在所述固件服务器的管控下创建子密钥,所述子密钥在创建过程中会完成对所述待密封数据的密封,并与所述解封增强授权策略绑定;
载入模块,用于在所述固件服务器的管控下,将所述子密钥载入至所述客户端的可信密码模块中;
更新模块,用于基于所述新版本固件进行固件升级。
根据本公开实施例的第三方面,提供一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现如上任一所述方法的步骤。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述方法的步骤。
本公开提供的一种固件升级方法,应用于客户端,获取固件服务器传输的新版本固件;获取固件服务传输的待密封数据;获取固件服务器的解封增强授权策略,解封增强授权策略示意被密封数据只有在满足与目标启动状态绑定的目标PCR值下才能被解封,目标PCR值包括客户端在完成固件升级后受影响的PCR值;在固件服务器的管控下创建子密钥,子密钥创建过程中会完成对待密封数据的密封,并与解封增强授权策略绑定;在固件服务器的管控下,将子密钥载入至客户端的可信密码模块中;基于新版本固件进行固件升级。本公开中,固件服务器可以预先计算客户端在完成升级后受影响的PCR值,且客户端可以在固件服务器的管控下将生成的子密钥与解封增强策略绑定,解封增强授权策略示意被密封到子密钥中的数据只有在满足与目标启动状态绑定的特定PCR值下才能被解封,这样,客户端在基于新版本固件进行固件升级后,可以在满足目标启动状态时,基于解封增强授权策略从子密钥中解封出相应的被密封数据,间接解决了可信密码模块的脆性PCR问题,保证了可信密码模块下的固件正常升级。本公开涉及的一种固件升级装置、电子设备及计算机可读存储介质也解决了相应技术问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为根据一示例性实施例示出的一种固件升级方法的流程图;
图2为根据一示例性实施例示出的一种固件升级装置的结构示意图;
图3为根据一示例性实施例示出的一种电子设备300的框图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
为了便于理解本申请涉及的可信密码模块(Trusted Cryptography Module,TCM),现对可信密码模块的相关技术做以下介绍:
TCM指由国家密码管理局发布的于2021年7月1号实施的GM/T 0012-2020《可信计算可信密码接口规范》的可信密码模块。其中的TCM2.0支持中国密码SM2、SM3、SM4算法,在功能上与国际组织提出的TPM2.0标准中使用中国算法模式的内容兼容。和TCM1.2相比,TCM2.0新增加了很多功能,这里只对其中几个功能做下简单介绍:
增强授权策略:增强授权策略是用于解决TCM2.0实体授权的可管理性问题。
TCM2_PolicySigned:是TCM2.0中策略声明命令的一种,用于制定增强授权策略,表示授权是由特定实体签名的,同时可以通过cpHash授权特定的命令参数。在本发明文档中提到的增强授权策略Policysigned就用到了该策略声明命令。
命令参数哈希(cpHash):命令参数哈希cpHash用于计算命令授权的HMAC(Hash-based Message Authentication Code,哈希消息认证码),并包含在会话的摘要中。命令参数哈希cpHash也可以应用于增强授权策略中用于授权,将授权限制为一组特定的命令参数。命令参数哈希cpHash是根据命令的参数计算的,如下所示:
式中:
— —使用初始化为会话选择的算法哈希函数;
— —命令的命令代码;
— —与第一个句柄关联的实体的唯一标识;
— —与第二个句柄关联的实体的唯一标识;
— —与第一个句柄关联的实体的唯一标识;
— —剩余命令参数。
密钥快速加载:在TCM2.0中,除了从外部将密钥导入TCM2.0的密钥结构中,密钥也可以经过对称密钥加密后,由TCM2.0存储在外部存储器中。这样,密钥将被快速加载。密钥的快速加载使多个用户能够同时使用TCM2.0,而不带来较大的延迟。
按名称识别资源:名称是实体独一无二的标识。在TCM2.0中,是使用名称进行授权计算,而不使用实体的句柄,因为当实体加载和擦除时,句柄可能随时间发生变化。对于密钥实体而言,它的名称是一个经过计算得到的名称,其实质就是密钥实体公开数据的杂凑值。
平台配置寄存器:平台配置寄存器PCR是TCM2.0的基本特征之一。它的主要用途是提供一种密码学记录(度量)软件状态的方法,包括平台上运行的软件和该软件使用的配置数据。PCR更新计算被称为扩展,是一种单向哈希计算,这样的计算结果将无法被破解。通常,PC(Personal Computer,个人计算机)机中的TCM2.0中包含24个PCR。PCR依照约定分配到各个软件层,从启动代码到操作系统再到应用程序。同时,PCR也被分配给要运行的软件(通常分配偶数编号的PCR)和定制引导过程的配置文件(通常分配奇数编号的PCR)。
信任链技术:国际组织TCG提出了一个解决安全问题的信任链(Trusted Chain)技术,其思想是从一个初始的信任根出发,在平台上计算环境的每一次转换时,如果这种信任可以通过传递的方式保持下去不被破坏,那么平台上的计算环境始终是可信的。基于这种思想,可信计算平台首先构建一个信任根,再建立一条信任链,从信任根开始到硬件平台,到操作系统,再到应用,一级认证一级,一级信任一级,从而把这种信任扩展到整个计算系统。在信任链的理论中,无论是最底层的BIOS(Basic Input Output System,基本输入输出系统)启动模块还是最上层的应用程序,在得到信任以运行之前,都需要经过可信度量,即一个测量或认证的过程。另外,在用TCM2.0实现信任链技术时,通常利用PCR不可逆特性,记录设备的启动状态。
然而,在利用可信密码模块实现启动信任链的技术中,通常的做法是用PCR(平台配置寄存器)值表示机器的状态,较小编号的PCR表示系统的引导过程,而较高编号的PCR表示内核启动后的事件。密钥或数据可以被锁定到具有特定值的特定PCR,这种行为称为密封。但如果密钥或数据被锁定到代表某固件的PCR,而该固件又是启动信任链的一部分,则升级该固件将变得非常困难,因为升级固件后会导致被密封到代表原来启动状态的PCR的密钥或数据无法解封,这就是脆性PCR问题。而利用目前现成的TCM命令,是不能直接解决脆性PCR问题的,由此使得固件无法正常升级。而本公开提供的固件升级方案可以实现TCM下的固件正常升级。
请参阅图1,图1为根据一示例性实施例示出的一种固件升级方法的流程图。
本公开涉及的一种固件升级方法,应用于客户端,可以包括以下步骤:
步骤S101:获取固件服务器传输的新版本固件。
可以理解的是,新版本固件的类型可以根据应用场景来确定,比如新版本固件可以为新版本的BIOS、Kernel(Real Time Operating System,实时操作系统)、上层应用程序等,本公开在此不做具体限定。
可以理解的是,在应用场景中,客户端在获取固件服务器传输的新版本固件的过程中,为了保证客户端能够安全从固件服务器处获取新版本固件,可以基于加密方法来获取新版本固件,也即客户端可以获取固件服务器传输的新版本固件密文;获取固件服务器传输的对称密钥密文,对称密钥密文包括基于客户端的主密钥的公钥部分对对称密钥进行加密后得到的密文;基于主密钥的私钥部分对对称密钥密文进行解密,得到对称密钥;基于对称密钥对新版本固件密文进行解密,得到新版本固件。
可以理解的是,在应用场景中,为了保证客户端获取的新版本固件的完整性,可以基于加密及杂凑运算来校验新版本固件,也即客户端在获取固件服务器传输的新版本固件之后,还可以获取固件服务器基于平台私钥对新版本固件杂凑值进行加密后得到的新版本固件杂凑值密文;基于固件服务器的平台公钥对新版本固件杂凑值密文进行解密,得到新版本固件杂凑值;计算接收的新版本固件的杂凑值;判断计算的新版本固件的杂凑值与接收的新版本固件杂凑值是否一致,若一致,则允许使用新版本固件;若不一致,则可以重新获取新版本固件等。
步骤S102:获取固件服务器传输的待密封数据。
可以理解的是,固件服务器向客户端传输新版本固件用于客户端进行固件更新之后,还需计算客户端在完成固件更新后TCM中受影响的PCR值,比如计算客户端在完成固件更新后需删除的PCR值、更改的PCR值、新增的PCR值等,并借助待密封数据将该PCR值传输给客户端,客户端在获取固件服务器传输的新版本固件之后,需获取固件服务器传输的待密封数据。
可以理解的是,在应用场景下,为了保证固件服务器安全将待密封数据传输给客户端,可以借助加密技术来传输待密封数据,比如客户端在获取固件服务器传输的待密封数据的过程中,可以获取固件服务器传输的待密封数据密文,待密封数据密文包括基于客户端的主密钥的公钥部分对待密封数据进行加密后得到的数据;基于主密钥的私钥部分对待密封数据密文进行解密,得到待密封数据。
步骤S103:获取固件服务器的解封增强授权策略,解封增强授权策略示意被密封数据只有在满足与目标启动状态绑定的目标PCR值下才能被解封,目标PCR值包括客户端在完成固件升级后受影响的PCR值。
可以理解的是,固件服务器向客户端传输新版本固件用于客户端进行固件更新之后,还需计算客户端在完成固件更新后TCM中受影响的PCR值,比如计算客户端在完成固件更新后需删除的PCR值、更改的PCR值、新增的PCR值等,并借助解封增强授权策略,示意客户端中的某实体只有在满足特点启动状态下才能得到授权,特定启动状态通过目标PCR值表示。
步骤S104:在固件服务器的管控下创建子密钥,子密钥创建过程中会完成对待密封数据的密封,并与解封增强授权策略绑定。
可以理解的是,客户端需在固件服务器的管控下创建子密钥,在子密钥创建过程中完成对待密封数据的密封,并与解封增强授权策略绑定。
可以理解的是,在应用场景中,为了使得生成的子密钥满足固件服务器的管控,可以预先由固件服务器在客户端中存储子密钥生成模板,且客户端在固件服务器的管控下创建子密钥的过程中,可以获取固件服务器生成的该子密钥生成模板;按照子密钥生成模板,在固件服务器的管控下创建子密钥,以保证生成的子密钥满足固件服务器中子密钥生成模板中的相应要求,子密钥生成模板的信息可以根据场景需求来确定,比如子密钥生成模板可以包括子密钥的长度、类型等。
需要说明的是,客户端的主密钥的类型可以根据应用场景来确定,比如主密钥可以为非对称主密钥等,且示例性的,客户端的主密钥可以由固件服务器生成,比如可以由固件服务器在客户端的TCM中创建一个和背书层级关联的该主密钥等,本公开在此不做具体限定。
步骤S105:在固件服务器的管控下,将子密钥载入至客户端的可信密码模块中。
可以理解的是,客户端在获取固件服务器生成的解封增强授权策略,并将解封增强授权策略和子密钥进行绑定之后,还需在固件服务器的管控下,将子密钥载入至客户端的可信密码模块中。
可以理解的是,在应用场景中,为了使得子密钥的创建和载入都受到固件服务器的管控,可以预先由固件服务器在客户端中创建主密钥,由固件服务器保存主密钥的公钥信息,并在创建主密钥时通过签名增强授权策略指定其子密钥的创建和载入都受固件服务器的签名管控,使得主密钥下的任何子密钥的创建和载入等动作都要受到固件服务器的签名管控。这样,客户端在进行主密钥下的子密钥创建和载入命令时,需基于固件服务器的平台公钥验证操作信息正确且合法后才能执行相应操作,使得最终的操作结果满足固件服务器的管控。
也即,客户端在固件服务器的管控下创建子密钥的过程中,可以基于签名增强授权策略来创建子密钥,具体的,客户端可以获取固件服务器生成的第一命令参数哈希值和第一签名值,第一命令参数哈希值包括固件服务器生成的目标子密钥创建命令码和创建参数的哈希值,第一签名值包括固件服务器基于自身的平台私钥对第一命令参数哈希值进行签名后的签名值;获取待运行子密钥创建命令,该待运行子密钥创建命令可以来自固件服务器,也可以由用户输入等;基于固件服务器的平台公钥对第一签名值进行验签,若验签成功,则计算待运行子密钥创建命令的第二命令参数哈希值;判断第二命令参数哈希值与第一命令参数哈希值是否一致,若一致,则基于待运行子密钥创建命令创建子密钥;若不一致,则授权失败,可以结束操作等。
相应的,客户端在固件服务器的管控下,将子密钥载入至客户端的可信密码模块中的过程中,可以基于签名增强授权策略来将子密钥载入至客户端的可信密码模块中,具体的,客户端获取固件服务器生成的第三命令参数哈希值和第二签名值,第三命令参数哈希值包括固件服务器生成的目标子密钥载入命令码和命令参数的加密值,第二签名值包括固件服务器基于自身的平台私钥对第三命令参数哈希值进行签名后的签名值;获取待运行子密钥载入命令,该待运行子密钥载入命令可以来自固件服务器,也可以由用户输入等;基于固件服务器的平台公钥对第二签名值进行验签,若验签成功,则计算待运行子密钥载入命令的第四命令参数哈希值;判断第四命令参数哈希值与第三命令参数哈希值是否一致,若一致,则基于待运行子密钥载入命令将子密钥载入至客户端的可信密码模块中;若不一致,则授权失败,可以结束操作等。
需要说明的是,客户端只有基于签名增强授权策略完成子密钥的创建和载入操作后,才能判定所接收的新版本固件确实是由固件服务器发布的,换言之,本公开可以保证固件升级的准确性。
步骤S106:基于新版本固件进行固件升级。
可以理解的是,客户端在完成前述操作后,便可以基于新版本固件进行固件升级。
可以理解的是,在应用场景中,客户端在固件服务器的管控下,将子密钥载入至客户端的可信密码模块中之后,基于新版本固件进行固件升级之前,还可以对子密钥进行持久化,以进一步保证新版本固件的准确性,且在此过程中,客户端可以将子密钥持久化在TCM中,也可以持久化在自身存储介质中等,本公开在此不做具体限定。
本公开提供的一种固件升级方法,应用于客户端,获取固件服务器传输的新版本固件;获取固件服务传输的待密封数据;获取固件服务器的解封增强授权策略,解封增强授权策略示意被密封数据只有在满足与目标启动状态绑定的目标PCR值下才能被解封,目标PCR值包括客户端在完成固件升级后受影响的PCR值;在固件服务器的管控下创建子密钥,子密钥创建过程中会完成对待密封数据的密封,并与解封增强授权策略绑定;在固件服务器的管控下,将子密钥载入至客户端的可信密码模块中;基于新版本固件进行固件升级。本公开中,固件服务器可以预先计算客户端在完成升级后受影响的PCR值,且客户端可以在固件服务器的管控下将生成的子密钥与解封增强策略绑定,解封增强授权策略示意被密封到子密钥中的数据只有在满足与目标启动状态绑定的特定PCR值下才能被解封,这样,客户端在基于新版本固件进行固件升级后,可以在满足目标启动状态时,基于解封增强授权策略从子密钥中解封出相应的被密封数据,间接解决了可信密码模块的脆性PCR问题,保证了可信密码模块下的固件正常升级。
请参阅图2,图2为根据一示例性实施例示出的一种固件升级装置的结构示意图。
本公开涉及的一种固件升级装置200,应用于客户端,可以包括:
新版本固件获取模块210,用于获取固件服务器传输的新版本固件;
待密封数据获取模块220,用于获取固件服务器传输的待密封数据;
策略获取模块230,用于获取固件服务器的解封增强授权策略,解封增强授权策略示意待密封数据只有在满足与目标启动状态绑定的目标PCR值下才能被解封,目标PCR值包括客户端在完成固件升级后受影响的PCR值;
子密钥创建模块240,用于在固件服务器的管控下创建子密钥,子密钥在创建过程中会完成对待密封数据的密封,并与解封增强授权策略绑定;
载入模块250,用于在固件服务器的管控下,将子密钥载入至客户端的可信密码模块中;
更新模块260,用于基于新版本固件进行固件升级。
本公开涉及的一种固件升级装置,子密钥创建模块可以包括:
模板获取单元,用于获取固件服务器生成的子密钥生成模板;
子密钥创建单元,用于按照子密钥生成模板,在固件服务器的管控下创建子密钥。
本公开涉及的一种固件升级装置,子密钥创建单元可以用于:获取固件服务器生成的第一命令参数哈希值和第一签名值,第一命令参数哈希值包括固件服务器生成的目标子密钥创建命令码和创建参数的哈希值,第一签名值包括固件服务器基于自身的平台私钥对第一命令参数哈希值进行签名后的签名值;获取待运行子密钥创建命令;基于固件服务器的平台公钥对第一签名值进行验签,若验签成功,则计算待运行子密钥创建命令的第二命令参数哈希值;判断第二命令参数哈希值与第一命令参数哈希值是否一致,若一致,则基于待运行子密钥创建命令创建子密钥。
本公开涉及的一种固件升级装置,载入模块可以用于:获取固件服务器生成的第三命令参数哈希值和第二签名值,第三命令参数哈希值包括固件服务器生成的目标子密钥载入命令码和命令参数的哈希值,第二签名值包括固件服务器基于自身的平台私钥对第三命令参数哈希值进行签名后的签名值;获取待运行子密钥载入命令;基于固件服务器的平台公钥对第二签名值进行验签,若验签成功,则计算待运行子密钥载入命令的第四命令参数哈希值;判断第四命令参数哈希值与第三命令参数哈希值是否一致,若一致,则基于待运行子密钥载入命令将子密钥载入至客户端的可信密码模块中。
本公开涉及的一种固件升级装置,还可以包括:
持久化模块,用于载入模块在固件服务器的管控下,将子密钥载入至客户端的可信密码模块中之后,更新模块基于新版本固件进行固件升级之前,对子密钥进行持久化。
本公开涉及的一种固件升级装置,待密封数据获取模块可以用于:获取固件服务器传输的待密封数据密文,待密封数据密文包括基于客户端的主密钥的公钥部分对待密封数据进行加密后得到的数据;基于主密钥的私钥部分对待密封数据密文进行解密,得到待密封数据。
本公开涉及的一种固件升级装置,新版本固件获取模块可以用于:获取固件服务器传输的新版本固件密文;获取固件服务器传输的对称密钥密文,对称密钥密文包括基于客户端的主密钥的公钥部分对对称密钥进行加密后得到的密文;基于主密钥的私钥部分对对称密钥密文进行解密,得到对称密钥密文;基于对称密钥对新版本固件密文进行解密,得到新版本固件。
本公开涉及的一种固件升级装置,还可以包括:
校验模块,用于新版本固件获取模块获取固件服务器传输的新版本固件之后,获取固件服务器基于平台私钥对新版本固件杂凑值进行加密后得到的新版本固件杂凑值密文;基于固件服务器的平台公钥对新版本固件杂凑值密文进行解密,得到新版本固件杂凑值;计算接收的新版本固件的杂凑值;判断新版本固件的杂凑值与新版本固件杂凑值是否一致,若一致,则允许使用新版本固件。
图3为根据一示例性实施例示出的一种电子设备300的框图。如图3所示,该电子设备300可以包括:处理器301,存储器302。该电子设备300还可以包括多媒体组件303,输入/输出(I/O)接口304,以及通信组件305中的一者或多者。
其中,处理器301用于控制该电子设备300的整体操作,以完成上述的固件升级方法中的全部或部分步骤。存储器302用于存储各种类型的数据以支持在该电子设备300的操作,这些数据例如可以包括用于在该电子设备300上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器302可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件303可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器302或通过通信组件305发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口304为处理器301和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件305用于该电子设备300与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near FieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件305可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,电子设备300可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的固件升级方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的固件升级方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器302,上述程序指令可由电子设备300的处理器301执行以完成上述的固件升级方法。
本公开实施例提供的一种固件升级装置、电子设备及计算机可读存储介质中相关部分的说明请参见本公开实施例提供的一种固件升级方法中对应部分的详细说明,在此不再赘述。另外,本公开实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本公开。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (11)

1.一种固件升级方法,其特征在于,应用于客户端,包括:
获取固件服务器传输的新版本固件;
获取所述固件服务器传输的待密封数据;
获取所述固件服务器的解封增强授权策略,所述解封增强授权策略示意所述待密封数据只有在满足与目标启动状态绑定的目标PCR值下才能被解封,所述目标PCR值包括所述客户端在完成固件升级后受影响的PCR值;
在所述固件服务器的管控下创建子密钥,所述子密钥在创建过程中会完成对所述待密封数据的密封,并与所述解封增强授权策略绑定;
在所述固件服务器的管控下,将所述子密钥载入至所述客户端的可信密码模块中;
基于所述新版本固件进行固件升级。
2.根据权利要求1所述的方法,其特征在于,所述在所述固件服务器的管控下创建子密钥,包括:
获取所述固件服务器生成的子密钥生成模板;
按照所述子密钥生成模板,在所述固件服务器的管控下创建所述子密钥。
3.根据权利要求1所述的方法,其特征在于,所述在所述固件服务器的管控下创建子密钥,包括:
获取所述固件服务器生成的第一命令参数哈希值和第一签名值,所述第一命令参数哈希值包括所述固件服务器生成的目标子密钥创建命令码和创建参数的哈希值,所述第一签名值包括所述固件服务器基于自身的平台私钥对所述第一命令参数哈希值进行签名后的签名值;
获取待运行子密钥创建命令;
基于所述固件服务器的平台公钥对所述第一命令参数哈希值进行验签,若验签成功,则计算所述待运行子密钥创建命令的第二命令参数哈希值;
判断所述第二命令参数哈希值与所述第一命令参数哈希值是否一致,若一致,则基于所述待运行子密钥创建命令创建所述子密钥。
4.根据权利要求1所述的方法,其特征在于,所述在所述固件服务器的管控下,将所述子密钥载入至所述客户端的可信密码模块中,包括:
获取所述固件服务器生成的第三命令参数哈希值和第二签名值,所述第三命令参数哈希值包括所述固件服务器生成的目标子密钥载入命令码和载入参数的哈希值,所述第二签名值包括所述固件服务器基于自身的平台私钥对所述第三命令参数哈希值进行签名后的签名值;
获取待运行子密钥载入命令;
基于所述固件服务器的平台公钥对所述第二签名值进行验签,若验签成功,则计算所述待运行子密钥载入命令的第四命令参数哈希值;
判断所述第四命令参数哈希值与所述第三命令参数哈希值是否一致,若一致,则基于所述待运行子密钥载入命令将所述子密钥载入至所述客户端的所述可信密码模块中。
5.根据权利要求1所述的方法,其特征在于,所述在所述固件服务器的管控下,将所述子密钥载入至所述客户端的可信密码模块中之后,所述基于所述新版本固件进行固件升级之前,还包括:
对所述子密钥进行持久化。
6.根据权利要求1所述的方法,其特征在于,所述获取所述固件服务器传输的待密封数据,包括:
获取所述固件服务器传输的待密封数据密文,所述待密封数据密文包括基于所述客户端的主密钥的公钥部分对所述待密封数据进行加密后得到的数据;
基于所述主密钥的私钥部分对所述待密封数据密文进行解密,得到所述待密封数据。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述获取固件服务器传输的新版本固件,包括:
获取所述固件服务器传输的新版本固件密文;
获取所述固件服务器传输的对称密钥密文,所述对称密钥密文包括基于所述客户端的主密钥的公钥部分对对称密钥进行加密后得到的密文;
基于所述主密钥的私钥部分对所述对称密钥密文进行解密,得到所述对称密钥;
基于所述对称密钥对所述新版本固件密文进行解密,得到所述新版本固件。
8.根据权利要求7所述的方法,其特征在于,所述获取固件服务器传输的新版本固件之后,还包括:
获取所述固件服务器基于平台私钥对新版本固件杂凑值进行加密后得到的新版本固件杂凑值密文;
基于所述固件服务器的平台公钥对所述新版本固件杂凑值密文进行解密,得到所述新版本固件杂凑值;
计算接收的所述新版本固件的杂凑值;
判断所述新版本固件的杂凑值与所述新版本固件杂凑值是否一致,若一致,则允许使用所述新版本固件。
9.一种固件升级装置,其特征在于,应用于客户端,包括:
新版本固件获取模块,用于获取固件服务器传输的新版本固件;
待密封数据获取模块,用于获取所述固件服务器传输的待密封数据;
策略获取模块,用于获取所述固件服务器的解封增强授权策略,所述解封增强授权策略示意所述待密封数据只有在满足与目标启动状态绑定的目标PCR值下才能被解封,所述目标PCR值包括所述客户端在完成固件升级后受影响的PCR值;
子密钥创建模块,用于在所述固件服务器的管控下创建子密钥,所述子密钥在创建过程中会完成对所述待密封数据的密封,并与所述解封增强授权策略绑定;
载入模块,用于在所述固件服务器的管控下,将所述子密钥载入至所述客户端的可信密码模块中;
更新模块,用于基于所述新版本固件进行固件升级。
10.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中的所述计算机程序,以实现权利要求1至8中任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8任一项所述方法的步骤。
CN202211465750.7A 2022-11-22 2022-11-22 固件升级方法、装置、电子设备及计算机可读存储介质 Active CN115509587B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211465750.7A CN115509587B (zh) 2022-11-22 2022-11-22 固件升级方法、装置、电子设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211465750.7A CN115509587B (zh) 2022-11-22 2022-11-22 固件升级方法、装置、电子设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN115509587A CN115509587A (zh) 2022-12-23
CN115509587B true CN115509587B (zh) 2023-04-07

Family

ID=84513680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211465750.7A Active CN115509587B (zh) 2022-11-22 2022-11-22 固件升级方法、装置、电子设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN115509587B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11836255B1 (en) * 2023-03-28 2023-12-05 Verkada Inc. Microcontroller unit (MCU) secure boot

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693385A (zh) * 2012-05-28 2012-09-26 山东神思电子技术股份有限公司 基于sd可信计算模块的嵌入式终端及实现方法
CN104869458A (zh) * 2015-05-18 2015-08-26 成都卫士通信息产业股份有限公司 一种可伸缩的传输流收录系统及方法
CN107679425A (zh) * 2017-09-26 2018-02-09 天津麒麟信息技术有限公司 一种基于固件和USBkey的联合全盘加密的可信启动方法
CN107908574A (zh) * 2017-11-22 2018-04-13 深圳华中科技大学研究院 固态盘数据存储的安全保护方法
EP3598333A1 (en) * 2018-07-16 2020-01-22 Nokia Technologies Oy Electronic device update management

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050021968A1 (en) * 2003-06-25 2005-01-27 Zimmer Vincent J. Method for performing a trusted firmware/bios update

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693385A (zh) * 2012-05-28 2012-09-26 山东神思电子技术股份有限公司 基于sd可信计算模块的嵌入式终端及实现方法
CN104869458A (zh) * 2015-05-18 2015-08-26 成都卫士通信息产业股份有限公司 一种可伸缩的传输流收录系统及方法
CN107679425A (zh) * 2017-09-26 2018-02-09 天津麒麟信息技术有限公司 一种基于固件和USBkey的联合全盘加密的可信启动方法
CN107908574A (zh) * 2017-11-22 2018-04-13 深圳华中科技大学研究院 固态盘数据存储的安全保护方法
EP3598333A1 (en) * 2018-07-16 2020-01-22 Nokia Technologies Oy Electronic device update management

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Loader Cart Automation Enhancement;Wei Hoo Chong;《2012 14th International Conference on Advanced Communication Technology (ICACT)》;20120403;1096-1101 *
基于固件认证机制的服务器平台安全框架设计与实现;单福源;《中国优秀硕士学位论文全文数据库信息科技辑》;20160315(第03期);I138-284 *

Also Published As

Publication number Publication date
CN115509587A (zh) 2022-12-23

Similar Documents

Publication Publication Date Title
EP3458999B1 (en) Self-contained cryptographic boot policy validation
EP3265950B1 (en) Device attestation through security hardened management agent
US7257707B2 (en) Manifest-based trusted agent management in a trusted operating system environment
US7159240B2 (en) Operating system upgrades in a trusted operating system environment
TWI598814B (zh) 用於管理及診斷配備有統一可延伸韌體介面(uefi)相容韌體的計算裝置之系統與方法
US7577840B2 (en) Transferring application secrets in a trusted operating system environment
CN101300583B (zh) 用于可信赖移动电话的简单可伸缩和可配置安全启动
KR101402509B1 (ko) 사용자 인증에 기초하여 무결성을 수정하는 방법 및 컴퓨터시스템
US10943013B2 (en) Maintaining keys for trusted boot code
US8019994B2 (en) Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS
EP2051181A1 (en) Information terminal, security device, data protection method, and data protection program
CN115509587B (zh) 固件升级方法、装置、电子设备及计算机可读存储介质
KR102256249B1 (ko) 통합 보안 SoC를 이용한 IoT 디바이스의 안전한 펌웨어 업데이트 방법
CN107924440B (zh) 用于管理容器的方法、系统和计算机可读介质
CN117453343A (zh) 虚拟机度量、机密计算认证方法、设备、系统及存储介质
JP2012039390A (ja) フレキシブル認証ルールの修正

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
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041

Patentee after: China Electronics Technology Network Security Technology Co.,Ltd.

Address before: No. 333, Yunhua Road, high tech Zone, Chengdu, Sichuan 610041

Patentee before: CHENGDU WESTONE INFORMATION INDUSTRY Inc.

CP01 Change in the name or title of a patent holder