CN115981687A - 固件升级方法、装置、设备及存储介质 - Google Patents
固件升级方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115981687A CN115981687A CN202211659599.0A CN202211659599A CN115981687A CN 115981687 A CN115981687 A CN 115981687A CN 202211659599 A CN202211659599 A CN 202211659599A CN 115981687 A CN115981687 A CN 115981687A
- Authority
- CN
- China
- Prior art keywords
- cpld
- firmware
- file
- upgrading
- firmware upgrade
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012795 verification Methods 0.000 claims abstract description 39
- 238000004590 computer program Methods 0.000 claims description 14
- 239000000758 substrate Substances 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Stored Programmes (AREA)
Abstract
本申请提供一种固件升级方法、装置、设备及存储介质,涉及服务器技术领域,该方法包括:获取CPLD复杂可编程逻辑器件固件升级文件及CPLD固件升级文件对应的私钥;通过私钥对CPLD固件升级文件中的加密配置信息进行解密,获取解密出的CPLD固件升级文件的第一CPLD标识;基于第一CPLD标识对CPLD固件升级文件进行校验;确定CPLD固件升级文件通过校验,通过CPLD固件升级文件进行CPLD固件升级,由此本申请在升级过程中进行两级校验,大大提高了CPLD固件升级的稳定性和可靠性。
Description
技术领域
本申请涉及服务器技术领域,尤其涉及一种固件升级方法、装置、设备及存储介质。
背景技术
BMC(Baseboard Management Controller,基板管理控制器)是服务器特有的管理控制器,BMC可以自动监控服务器运行状态,并及时根据当前状态进行调控。BMC是一个完整的嵌入式Linux系统,有自己的芯片,内存,网络及存储空间,用户可以通过网络带外访问BMC,也可以在服务器系统下访问BMC。
BMC的主要功能除了实时监控外,还包括固件的带外更新。不只是BMC本身的固件,服务器上的其他固件,如CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件),BIOS(Basic Input Output System,基本输入输出系统),PSU(power supply unit,电源供应器)等固件,都可以通过BMC实现带外升级功能。BMC带外升级固件,不需要系统权限或者现场操作,远程即可完成全部升级流程,且可以借助脚本实现批量升级。因此,在运维或线上业务中,BMC的带外升级功能是最常用的升级方法。
现有技术中,在通过BMC的带外升级功能对CPLD固件进行升级时,CPLD固件本身是无需参与升级过程的,即该升级过程对CPLD来说接近于离线升级。BMC只需知道CPLD固件所在的I2C总线和CPLD地址信息,就可直接对该CPLD地址上的CPLD固件进行升级。因此该升级方式存在不安全、误升级导致CPLD异常掉电的问题。甚至用户可以将修改过的CPLD文件,或者可能将其他非匹配的CPLD升级文件通过BMC进行升级,导致CPLD升级为错误文件,对服务器安全性和稳定性造成影响。
发明内容
本申请提供一种固件升级方法、装置、设备及存储介质,用以解决现有技术中CPLD固件升级不安全的缺陷。
本申请提供一种固件升级方法,包括:
获取CPLD复杂可编程逻辑器件固件升级文件及所述CPLD固件升级文件对应的私钥;
通过所述私钥对所述CPLD固件升级文件中加密配置信息进行解密,获取解密出的所述CPLD固件升级文件的第一CPLD标识;
基于所述第一CPLD标识对所述CPLD固件升级文件进行校验;
确定所述CPLD固件升级文件通过校验,通过所述CPLD固件升级文件进行CPLD固件升级。
根据本申请提供的一种固件升级方法,所述基于所述第一CPLD标识对所述CPLD固件升级文件进行校验,包括:
根据BMC基板管理控制器匹配的多个CPLD地址逐一读取各CPLD寄存器中存储的第二CPLD标识;
基于多个所述第二CPLD标识及所述第一CPLD标识对所述CPLD固件升级文件进行校验。
根据本申请提供的一种固件升级方法,所述确定所述CPLD固件升级文件通过校验,通过所述CPLD固件升级文件进行CPLD固件升级,包括:
在多个所述第二CPLD标识中存在与所述第一CPLD标识匹配的目标CPLD标识的情况下,确定所述CPLD固件升级文件通过校验;
在所述目标CPLD标识对应的目标CPLD寄存器中通过所述CPLD固件升级文件进行CPLD固件升级。
根据本申请提供的一种固件升级方法,所述基于多个所述第二CPLD标识及所述第一CPLD标识对所述CPLD固件升级文件进行校验之后,包括:
在多个所述第二CPLD标识中不存在与所述第一CPLD标识匹配的目标CPLD标识的情况下,确定所述CPLD固件升级文件未通过校验;
输出CPLD固件升级文件不匹配的提示信息。
根据本申请提供的一种固件升级方法,所述通过所述私钥对所述CPLD固件升级文件中加密配置信息进行解密之后,还包括:
在解密失败的情况下,输出CPLD固件升级文件不安全的提示信息。
根据本申请提供的一种固件升级方法,所述通过所述CPLD固件升级文件进行CPLD固件升级之后,还包括:
在确定CPLD固件升级成功之后,对升级后的CPLD固件版本号进行校验。
本申请还提供一种固件升级装置,包括:
获取单元,用于获取CPLD复杂可编程逻辑器件固件升级文件及所述CPLD固件升级文件对应的私钥;
解密单元,用于通过所述私钥对所述CPLD固件升级文件中加密配置信息进行解密,获取解密出的所述CPLD固件升级文件的第一CPLD标识;
校验单元,用于基于所述第一CPLD标识对所述CPLD固件升级文件进行校验;
升级单元,用于确定所述CPLD固件升级文件通过校验,通过所述CPLD固件升级文件进行CPLD固件升级。
根据本申请提供的一种固件升级装置,所述校验单元,所述校验单元,还用于根据BMC基板管理控制器匹配的多个CPLD地址逐一读取各CPLD寄存器中存储的第二CPLD标识;
所述校验单元,还用于基于多个所述第二CPLD标识及所述第一CPLD标识对所述CPLD固件升级文件进行校验。
本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述固件升级方法。
本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述固件升级方法。
本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述固件升级方法。
本申请提供的固件升级方法、装置、设备及存储介质,通过获取CPLD复杂可编程逻辑器件固件升级文件及CPLD固件升级文件对应的私钥;通过私钥对CPLD固件升级文件的加密配置信息进行解密,获取解密出的CPLD固件升级文件的第一CPLD标识;基于CPLD固件升级文件的第一CPLD标识对CPLD固件升级文件进行校验;确定CPLD固件升级文件通过校验,通过CPLD固件升级文件进行CPLD固件升级,由此本申请在升级过程中进行两级校验,大大提高了CPLD固件升级的稳定性和可靠性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的固件升级方法的流程示意图;
图2是本申请提供的固件升级装置的结构示意图;
图3是本申请提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
BMC(Baseboard Management Controller,基板管理控制器)是服务器特有的管理控制器,BMC可以自动监控服务器运行状态,并及时根据当前状态进行调控。BMC是一个完整的嵌入式Linux系统,有自己的芯片,内存,网络及存储空间,用户可以通过网络带外访问BMC,也可以在服务器系统下访问BMC。
BMC的主要功能除了实时监控外,还包括固件的带外更新。不只是BMC本身的固件,服务器上的其他固件,如CPLD,BIOS,PSU等固件,都可以通过BMC实现带外升级功能。BMC带外升级固件,不需要系统权限或者现场操作,远程即可完成全部升级流程,且可以借助脚本实现批量升级。因此,在运维或线上业务中,BMC的带外升级功能是最常用的升级方法。
服务器设计中,CPLD设计实现了板卡的基本逻辑设计和协议数据解析,灵活的逻辑设计可以保证板卡功能的扩增及问题处理,随着板卡上CPLD的功能变更,CPLD升级是不可避免的。常用的CPLD可以使用I2C链路(即Inter-Integrated Circuit总线)进行升级,BMC通过I2C链路,可以快速、方便地进行CPLD的升级。
现有技术中的服务器CPLD升级方案中,使用CPLD的I2C硬核设计连接到BMC,BMC通过I2C指令实现CPLD的升级。然而此种升级方案存在不安全、误升级导致CPLD异常掉电的问题。甚至用户可以将修改过的CPLD文件,或者可能将其他非匹配的CPLD升级文件通过BMC进行升级,导致CPLD升级为错误文件,对服务器安全性和稳定性造成影响。
针对上述技术问题,本实施例提供一种固件升级方法,通过获取CPLD复杂可编程逻辑器件固件升级文件及CPLD固件升级文件对应的私钥;通过私钥对CPLD固件升级文件的加密配置信息进行解密,获取解密出的CPLD固件升级文件的第一CPLD标识;基于CPLD固件升级文件的第一CPLD标识对CPLD固件升级文件进行校验;在校验通过的情况下,通过CPLD固件升级文件进行CPLD固件升级,由此本申请两级校验,大大提高了CPLD固件升级的稳定性和可靠性。
下面结合图1描述申请实施例提供的固件升级方法。如图1所示,为本申请实施例提供的固件升级方法的流程示意图,该方法主要包括如下步骤:
步骤101,获取CPLD复杂可编程逻辑器件固件升级文件及所述CPLD固件升级文件对应的私钥;
需要说明的是,本实施例中,服务器通常会在不同的板子上使用不同的CPLD固件达到不同功能,为了可以区分出各CPLD固件,本实施例中为各CPLD固件设定一个独一无二的CPLD标识,比如,将每张板子的Board ID(板卡装置识别码)作为各板子上所使用的CPLD固件的CPLD标识。
由于CPLD固件的CPLD标识是识别区分CPLD固件的唯一标识,为了避免其被篡改,服务器在进行CPLD版本发布时,对发布的CPLD CPLD固件升级文件中的配置信息使用当前版本对应的公钥加密,其中,配置信息中包括CPLD固件升级文件所要升级的CPLD标识、还包括其他相关的CPLD固件属性参数,并将当前版本对应的私钥存放至BMC中。
本实施例中,BMC在接收到通过固件升级接口上传的CPLD固件升级文件后,确定当前CPLD固件升级文件对应的CPLD固件版本号,根据CPLD固件版本号去获取该CPLD固件升级文件对应的私钥。
步骤102,通过所述私钥对所述CPLD固件升级文件中加密配置信息进行解密,获取解密出的所述CPLD固件升级文件的第一CPLD标识;
本实施例中,通过获取到的私钥对CPLD固件升级文件中加密配置信息进行解密,如果该私钥与该CPLD固件升级文件中的加密配置信息的公钥是一对,则可对加密配置信息进行解密,获取到CPLD固件升级文件的第一CPLD标识,同时也表征该CPLD固件升级文件中的第一CPLD标识安全,未被第三方进行篡改。
步骤103,基于所述第一CPLD标识对所述CPLD固件升级文件进行校验;
该步骤中,通过第一CPLD标识对CPLD固件升级文件再次进行校验。
具体地,此次校验的为CPLD固件升级文件是否正确,由于各CPLD固件的CPLD标识是独一无二的,因此若可以在BMC关联的CPLD标识集中匹配到此处需要进行升级的CPLD固件升级文件的第一CPLD标识,则表征该CPLD固件升级文件无误,否则,表征该CPLD固件升级文件为错误的升级文件。
其中,BMC关联的CPLD标识集中的CPLD标识为BMC可以进行升级的CPLD固件的标识,比如CPLD标识集中包括第一CPLD固件的第一CPLD标识、第二CPLD固件的第二CPLD标识及第三CPLD固件的第三CPLD标识,BMC此次接收到的CPLD固件升级文件中的CPLD标识为第三固件的第三CPLD标识,则BMC可对第三CPLD标识对应的第三CPLD固件进行升级,若BMC此次接收到的CPLD固件升级文件中的CPLD标识为第四CPLD固件的第四CPLD标识,由于BMC不可对第四CPLD固件进行升级,因此BMC此次接收到的CPLD固件升级文件为错误的升级文件。
步骤104,确定所述CPLD固件升级文件通过校验,通过所述CPLD固件升级文件进行CPLD固件升级。
该步骤中,CPLD固件升级文件通过校验指代BMC关联的CPLD标识集中匹配到此次需要进行升级的CPLD固件升级文件的第一CPLD标识。
本实施例中,在CPLD固件升级文件通过校验后,找到对应CPLD固件的存储芯片(即CPLD寄存器),对存储芯片进行擦除、写入、检验等操作。之后下发Refresh命令,使对应CPLD固件重启,进而生效,完成CPLD固件升级操作。
本申请实施例提供的固件升级方法,通过获取CPLD复杂可编程逻辑器件固件升级文件及CPLD固件升级文件对应的私钥;通过私钥对CPLD固件升级文件的加密配置信息进行解密,获取解密出的CPLD固件升级文件的第一CPLD标识;基于第一CPLD标识对CPLD固件升级文件进行校验;确定CPLD固件升级文件通过校验,通过CPLD固件升级文件进行CPLD固件升级,由此本申请在升级过程中进行两级校验,大大提高了CPLD固件升级的稳定性和可靠性。
在一些实施例中,所述基于所述第一CPLD标识对所述CPLD固件升级文件进行校验,包括:
根据BMC基板管理控制器匹配的多个CPLD地址逐一读取各CPLD寄存器中存储的第二CPLD标识;
基于多个所述第二CPLD标识及所述第一CPLD标识对所述CPLD固件升级文件进行校验。
其中,BMC匹配的多个CPLD地址指代BMC可升级的CPLD固件的地址,BMC只需知道CPLD固件所在的I2C总线和CPLD地址信息,就可直接对该CPLD地址上的CPLD固件进行升级。
具体地,本实施例中将BMC可升级的CPLD固件的第二CPLD标识存储在各CPLD固件的CPLD寄存器中,本实施例中根据BMC匹配的多个CPLD地址逐一去读取出各CPLD寄存器中存储的第二CPLD标识,并与第一CPLD标识进行匹配,若匹配成功,则表明CPLD固件升级文件是正确升级文件。
在一些实施例中,所述确定所述CPLD固件升级文件通过校验,通过所述CPLD固件升级文件进行CPLD固件升级,包括:
在多个所述第二CPLD标识中存在与所述第一CPLD标识匹配的目标CPLD标识的情况下,确定所述CPLD固件升级文件通过校验;
在所述目标CPLD标识对应的目标CPLD寄存器中通过所述CPLD固件升级文件进行CPLD固件升级。
其中,目标CPLD标识指代与第一CPLD标识完全相同的第二CPLD标识。
本实施例中,在多个第二CPLD标识中存在与第一CPLD标识匹配的目标CPLD标识的情况下,确定该目标CPLD标识对应的目标CPLD寄存器,对该目标CPLD寄存器进行擦除、写入、检验等操作。之后下发Refresh命令,使对应CPLD固件重启,进而生效,完成CPLD固件升级操作。
在一些实施例中,所述基于多个所述第二CPLD标识及所述第一CPLD标识对所述CPLD固件升级文件进行校验之后,包括:
在多个所述第二CPLD标识中不存在与所述第一CPLD标识匹配的目标CPLD标识的情况下,确定所述CPLD固件升级文件未通过校验;
输出CPLD固件升级文件不匹配的提示信息。
在多个第二CPLD标识中不存在与第一CPLD标识匹配的目标CPLD标识的情况下,表明CPLD固件升级文件为错误升级文件,则BMC不进行CPLD固件升级操作,同时输出CPLD固件升级文件不匹配的提示信息,以提示用户CPLD固件升级文件上传错误。
在一些实施例中,所述通过所述私钥对所述CPLD固件升级文件中加密配置信息进行解密之后,还包括:
在解密失败的情况下,输出CPLD固件升级文件不安全的提示信息。
本实施例中,BMC通过获取到的私钥对CPLD固件升级文件中加密配置信息进行解密,如果该该CPLD固件升级文件中的加密配置信息的公钥与BMC中存储的私钥与不是一对,也即解密失败,则表明CPLD固件升级文件中配置信息存在被第三方进行篡改的风险,此种情况下BMC不进行CPLD固件升级操作,同时输出CPLD固件升级文件不安全的提示信息,以提示用户CPLD固件升级文件不安全。
在一些实施例中,所述通过所述CPLD固件升级文件进行CPLD固件升级之后,还包括:
在确定CPLD固件升级成功之后,对升级后的CPLD固件版本号进行校验。
本实施例中,当BMC完成本次CPLD固件升级重启开机后,去相应的CPLD寄存器中读取当前存储的最新CPLD固件版本的CPLD固件版本号,并将该CPLD固件版本号与CPLD固件升级文件对应的CPLD固件版本号进行比对,当两个一致时,确定本次CPLD固件升级成功。
下面对本申请提供的固件升级装置进行描述,下文描述的固件升级装置与上文描述的固件升级方法可相互对应参照。
如图2所示,为本实施例提供的固件升级装置,该装置包括:获取单元210、解密单元220、校验单元230及升级单元240。
其中,获取单元210,用于获取CPLD复杂可编程逻辑器件固件升级文件及所述CPLD固件升级文件对应的私钥。
需要说明的是,本实施例中,服务器通常会在不同的板子上使用不同的CPLD固件达到不同功能,为了可以区分出各CPLD固件,本实施例中为各CPLD固件设定一个独一无二的CPLD标识,比如,将每张板子的Board ID(板卡装置识别码)作为各板子上所使用的CPLD固件的CPLD标识。
由于CPLD固件的CPLD标识是识别区分CPLD固件的唯一标识,为了避免其被篡改,服务器在进行CPLD版本发布时,对发布的CPLD CPLD固件升级文件中的配置信息使用当前版本对应的公钥加密,其中,配置信息中包括CPLD固件升级文件所要升级的CPLD标识、还包括其他相关的CPLD固件属性参数,并将当前版本对应的私钥存放至BMC中。
本实施例中,BMC在接收到通过固件升级接口上传的CPLD固件升级文件后,确定当前CPLD固件升级文件对应的CPLD固件版本号,根据CPLD固件版本号去获取该CPLD固件升级文件对应的私钥。
解密单元220,用于通过所述私钥对所述CPLD固件升级文件中加密配置信息进行解密,获取解密出的所述CPLD固件升级文件的第一CPLD标识。
本实施例中,通过获取到的私钥对CPLD固件升级文件中加密配置信息进行解密,如果该私钥与该CPLD固件升级文件中的加密配置信息的公钥是一对,则可对加密配置信息进行解密,获取到CPLD固件升级文件的第一CPLD标识,同时也表征该CPLD固件升级文件中的第一CPLD标识安全,未被第三方进行篡改。
校验单元230,用于基于所述第一CPLD标识对所述CPLD固件升级文件进行校验。
通过第一CPLD标识对CPLD固件升级文件再次进行校验。
具体地,此次校验的为CPLD固件升级文件是否正确,由于各CPLD固件的CPLD标识是独一无二的,因此若可以在BMC关联的CPLD标识集中匹配到此处需要进行升级的CPLD固件升级文件的第一CPLD标识,则表征该CPLD固件升级文件无误,否则,表征该CPLD固件升级文件为错误的升级文件。
其中,BMC关联的CPLD标识集中的CPLD标识为BMC可以进行升级的CPLD固件的标识,比如CPLD标识集中包括第一CPLD固件的第一CPLD标识、第二CPLD固件的第二CPLD标识及第三CPLD固件的第三CPLD标识,BMC此次接收到的CPLD固件升级文件中的CPLD标识为第三固件的第三CPLD标识,则BMC可对第三CPLD标识对应的第三CPLD固件进行升级,若BMC此次接收到的CPLD固件升级文件中的CPLD标识为第四CPLD固件的第四CPLD标识,由于BMC不可对第四CPLD固件进行升级,因此BMC此次接收到的CPLD固件升级文件为错误的升级文件。
升级单元240,用于确定所述CPLD固件升级文件通过校验,通过所述CPLD固件升级文件进行CPLD固件升级。
CPLD固件升级文件通过校验指代BMC关联的CPLD标识集中匹配到此次需要进行升级的CPLD固件升级文件的第一CPLD标识。
本实施例中,在CPLD固件升级文件通过校验后,找到对应CPLD固件的存储芯片(即CPLD寄存器),对存储芯片进行擦除、写入、检验等操作。之后下发Refresh命令,使对应CPLD固件重启,进而生效,完成CPLD固件升级操作。
在一些实施例中,校验单元230,还用于根据BMC基板管理控制器匹配的多个CPLD地址逐一读取各CPLD寄存器中存储的第二CPLD标识;基于多个所述第二CPLD标识及所述第一CPLD标识对所述CPLD固件升级文件进行校验。
其中,BMC匹配的多个CPLD地址指代BMC可升级的CPLD固件的地址,BMC只需知道CPLD固件所在的I2C总线和CPLD地址信息,就可直接对该CPLD地址上的CPLD固件进行升级。
在一些实施例中,校验单元230,还用于在多个所述第二CPLD标识中存在与所述第一CPLD标识匹配的目标CPLD标识的情况下,确定所述CPLD固件升级文件通过校验;在所述目标CPLD标识对应的目标CPLD寄存器中通过所述CPLD固件升级文件进行CPLD固件升级。
其中,目标CPLD标识指代与第一CPLD标识完全相同的第二CPLD标识。
本实施例中,校验单元230在校验出多个第二CPLD标识中存在与第一CPLD标识匹配的目标CPLD标识的情况下,确定该目标CPLD标识对应的目标CPLD寄存器,对该目标CPLD寄存器进行擦除、写入、检验等操作。之后下发Refresh命令,使对应CPLD固件重启,进而生效,完成CPLD固件升级操作。
在一些实施例中,校验单元230,还用于在多个所述第二CPLD标识中不存在与所述第一CPLD标识匹配的目标CPLD标识的情况下,确定所述CPLD固件升级文件未通过校验;输出CPLD固件升级文件不匹配的提示信息。
校验单元230在检验出多个第二CPLD标识中不存在与第一CPLD标识匹配的目标CPLD标识的情况下,表明CPLD固件升级文件为错误升级文件,则BMC不进行CPLD固件升级操作,同时输出CPLD固件升级文件不匹配的提示信息,以提示用户CPLD固件升级文件上传错误。
在一些实施例中,解密单元220,还用于在解密失败的情况下,输出CPLD固件升级文件不安全的提示信息。
本实施例中,BMC的解密单元220通过获取到的私钥对CPLD固件升级文件中加密配置信息进行解密,如果该该CPLD固件升级文件中的加密配置信息的公钥与BMC中存储的私钥与不是一对,也即解密失败,则表明CPLD固件升级文件中配置信息存在被第三方进行篡改的风险,此种情况下BMC不进行CPLD固件升级操作,同时输出CPLD固件升级文件不安全的提示信息,以提示用户CPLD固件升级文件不安全。
在一些实施例中,固件升级装置还包括:确定单元,用于在确定CPLD固件升级成功之后,对升级后的CPLD固件版本号进行校验。
本实施例中,当BMC完成本次CPLD固件升级重启开机后,确定单元去相应的CPLD寄存器中读取当前存储的最新CPLD固件版本的CPLD固件版本号,并将该CPLD固件版本号与CPLD固件升级文件对应的CPLD固件版本号进行比对,当两个一致时,确定本次CPLD固件升级成功。
本实施例中提供的固件升级装置,通过获取CPLD复杂可编程逻辑器件固件升级文件及CPLD固件升级文件对应的私钥;通过私钥对CPLD固件升级文件的加密配置信息进行解密,获取解密出的CPLD固件升级文件的CPLD标识;基于CPLD固件升级文件的CPLD标识对CPLD固件升级文件进行校验;确定CPLD固件升级文件通过校验,通过CPLD固件升级文件进行CPLD固件升级,由此本申请在升级过程中进行两级校验,大大提高了CPLD固件升级的稳定性和可靠性。
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)301、通信接口(Communications Interface)302、存储器(memory)303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信。处理器301可以调用存储器303中的逻辑指令,以执行固件升级方法,该方法包括:获取CPLD复杂可编程逻辑器件固件升级文件及所述CPLD固件升级文件对应的私钥;通过所述私钥对所述CPLD固件升级文件中加密配置信息进行解密,获取解密出的所述CPLD固件升级文件的第一CPLD标识;基于所述第一CPLD标识对所述CPLD固件升级文件进行校验;确定所述CPLD固件升级文件通过校验,通过所述CPLD固件升级文件进行CPLD固件升级。
此外,上述的存储器303中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的固件升级方法,该方法包括:获取CPLD复杂可编程逻辑器件固件升级文件及所述CPLD固件升级文件对应的私钥;通过所述私钥对所述CPLD固件升级文件中加密配置信息进行解密,获取解密出的所述CPLD固件升级文件的第一CPLD标识;基于所述第一CPLD标识对所述CPLD固件升级文件进行校验;确定所述CPLD固件升级文件通过校验,通过所述CPLD固件升级文件进行CPLD固件升级。
又一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的固件升级方法,该方法包括:获取CPLD复杂可编程逻辑器件固件升级文件及所述CPLD固件升级文件对应的私钥;通过所述私钥对所述CPLD固件升级文件中加密配置信息进行解密,获取解密出的所述CPLD固件升级文件的第一CPLD标识;基于所述第一CPLD标识对所述CPLD固件升级文件进行校验;确定所述CPLD固件升级文件通过校验,通过所述CPLD固件升级文件进行CPLD固件升级。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种固件升级方法,其特征在于,包括:
获取CPLD复杂可编程逻辑器件固件升级文件及所述CPLD固件升级文件对应的私钥;
通过所述私钥对所述CPLD固件升级文件中加密配置信息进行解密,获取解密出的所述CPLD固件升级文件的第一CPLD标识;
基于所述第一CPLD标识对所述CPLD固件升级文件进行校验;
确定所述CPLD固件升级文件通过校验,通过所述CPLD固件升级文件进行CPLD固件升级。
2.根据权利要求1所述的固件升级方法,其特征在于,所述基于所述第一CPLD标识对所述CPLD固件升级文件进行校验,包括:
根据BMC基板管理控制器匹配的多个CPLD地址逐一读取各CPLD寄存器中存储的第二CPLD标识;
基于多个所述第二CPLD标识及所述第一CPLD标识对所述CPLD固件升级文件进行校验。
3.根据权利要求2所述的固件升级方法,其特征在于,所述确定所述CPLD固件升级文件通过校验,通过所述CPLD固件升级文件进行CPLD固件升级,包括:
在多个所述第二CPLD标识中存在与所述第一CPLD标识匹配的目标CPLD标识的情况下,确定所述CPLD固件升级文件通过校验;
在所述目标CPLD标识对应的目标CPLD寄存器中通过所述CPLD固件升级文件进行CPLD固件升级。
4.根据权利要求2所述的固件升级方法,其特征在于,所述基于多个所述第二CPLD标识及所述第一CPLD标识对所述CPLD固件升级文件进行校验之后,包括:
在多个所述第二CPLD标识中不存在与所述第一CPLD标识匹配的目标CPLD标识的情况下,确定所述CPLD固件升级文件未通过校验;
输出CPLD固件升级文件不匹配的提示信息。
5.根据权利要求1所述的固件升级方法,其特征在于,所述通过所述私钥对所述CPLD固件升级文件中加密配置信息进行解密之后,还包括:
在解密失败的情况下,输出CPLD固件升级文件不安全的提示信息。
6.根据权利要求1至5任一项所述的固件升级方法,其特征在于,所述通过所述CPLD固件升级文件进行CPLD固件升级之后,还包括:
在确定CPLD固件升级成功之后,对升级后的CPLD固件版本号进行校验。
7.一种固件升级装置,其特征在于,包括:
获取单元,用于获取CPLD复杂可编程逻辑器件固件升级文件及所述CPLD固件升级文件对应的私钥;
解密单元,用于通过所述私钥对所述CPLD固件升级文件中加密配置信息进行解密,获取解密出的所述CPLD固件升级文件的第一CPLD标识;
校验单元,用于基于所述第一CPLD标识对所述CPLD固件升级文件进行校验;
升级单元,用于确定所述CPLD固件升级文件通过校验,通过所述CPLD固件升级文件进行CPLD固件升级。
8.根据权利要求7所述的固件升级装置,其特征在于,所述校验单元,还用于根据BMC基板管理控制器匹配的多个CPLD地址逐一读取各CPLD寄存器中存储的第二CPLD标识;
所述校验单元,还用于基于多个所述第二CPLD标识及所述第一CPLD标识对所述CPLD固件升级文件进行校验。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述固件升级方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述固件升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211659599.0A CN115981687A (zh) | 2022-12-22 | 2022-12-22 | 固件升级方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211659599.0A CN115981687A (zh) | 2022-12-22 | 2022-12-22 | 固件升级方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115981687A true CN115981687A (zh) | 2023-04-18 |
Family
ID=85967512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211659599.0A Pending CN115981687A (zh) | 2022-12-22 | 2022-12-22 | 固件升级方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115981687A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578322A (zh) * | 2023-07-13 | 2023-08-11 | 北京大禹智芯科技有限公司 | 一种cpld芯片固件升级方法 |
-
2022
- 2022-12-22 CN CN202211659599.0A patent/CN115981687A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578322A (zh) * | 2023-07-13 | 2023-08-11 | 北京大禹智芯科技有限公司 | 一种cpld芯片固件升级方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10839080B2 (en) | Hardware-enforced firmware security | |
CN112560004B (zh) | 完整性确定方法和系统 | |
US11995182B2 (en) | Baseboard management controller to perform security action based on digital signature comparison in response to trigger | |
US20180121656A1 (en) | Validating operating firmware of a periperhal device | |
EP3522059B1 (en) | Perform security action based on inventory comparison | |
CN111538517B (zh) | 一种服务器固件升级方法、系统及电子设备和存储介质 | |
US9959125B2 (en) | Field update of boot loader using regular device firmware update procedure | |
US11030347B2 (en) | Protect computing device using hash based on power event | |
US9860218B2 (en) | Information processing terminal, information processing method, and information processing system | |
CN111158767B (zh) | 基于bmc的服务器安全启动方法及装置 | |
US10102378B2 (en) | Boot images for units under test | |
US11436324B2 (en) | Monitoring parameters of controllers for unauthorized modification | |
CN111694760A (zh) | 服务器系统、快闪存储器模块及更新固件映像文件的方法 | |
CN115981687A (zh) | 固件升级方法、装置、设备及存储介质 | |
US11190519B2 (en) | Dock administration using a token | |
US11580225B2 (en) | Determine whether to perform action on computing device based on analysis of endorsement information of a security co-processor | |
CN112861137A (zh) | 安全固件 | |
US11907373B2 (en) | Validation of fixed firmware profiles for information handling systems | |
CN113626792B (zh) | PCIe Switch固件安全执行方法、装置、终端及存储介质 | |
JP2010211543A (ja) | 車両故障診断装置 | |
CN112825093B (zh) | 安全基线检查方法、主机、服务器、电子设备及存储介质 | |
CN117494232B (zh) | 固件的执行方法和装置、系统、存储介质及电子设备 | |
CN116467006A (zh) | 一种安全启动方法及计算设备 | |
CN111949289A (zh) | 文件更新方法、装置、电子设备及存储介质 | |
CN112732299A (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 |