CN113626803A - 一种bmc固件的保护方法、系统、装置及可读存储介质 - Google Patents

一种bmc固件的保护方法、系统、装置及可读存储介质 Download PDF

Info

Publication number
CN113626803A
CN113626803A CN202110722500.6A CN202110722500A CN113626803A CN 113626803 A CN113626803 A CN 113626803A CN 202110722500 A CN202110722500 A CN 202110722500A CN 113626803 A CN113626803 A CN 113626803A
Authority
CN
China
Prior art keywords
image file
bmc
digest
image
bmc firmware
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.)
Withdrawn
Application number
CN202110722500.6A
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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202110722500.6A priority Critical patent/CN113626803A/zh
Publication of CN113626803A publication Critical patent/CN113626803A/zh
Withdrawn 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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提出了一种BMC固件的保护方法、系统、装置及可读存储介质,所述方法包括:通过在BMC固件的镜像文件存储过程中进行加密和签名,建立BMC固件的镜像文件保护机制;在BMC每次上电引导过程中,自动检测BMC固件的镜像文件的签名值,验证BMC固件的镜像文件的完整性和合法性,验证通过后进行BMC固件的镜像文件的解密操作和程序加载运行;当检测到BMC固件的镜像文件被破坏后,通过切换到存储区中备份的BMC固件的镜像文件,重新进行引导和加载,完成BMC固件的自动恢复操作。本发明实现了BMC固件的保护、自动检测及恢复功能。

Description

一种BMC固件的保护方法、系统、装置及可读存储介质
技术领域
本发明涉及计算机技术领域,更具体的说是涉及一种BMC固件的保护方法、系统、装置及可读存储介质。
背景技术
BMC是服务器的基板管理控制器,目前已广泛应用于服务器领域,利用虚拟的键盘、界面、鼠标、电源等为服务器提供远程管理功能。用户可以通过BMC的网口远程监视服务器的物理特征,如各部件的温度、电压、风扇工作状态、电源供应以及机箱入侵等。
近年来针对服务器的攻击已经从上层软件逐渐转移到了底层的固件,例如BMC固件。使第三方恶意者向服务器固件中植入恶意代码、病毒、木马等成为可能,BMC固件如果遭受到威胁攻击时,轻者会导致服务器的拒绝服务,引起业务中断,严重情况下会使服务器被黑客从底层控制,造成系统的彻底崩溃。因此BMC固件的安全性直接影响到了服务器整机的安全性。
当前,BMC固件的保护机制具体为:BMC固件的镜像程序文件存储于外部的非易失性存储器Flash中,每次上电后,BMC首先读取Flash中的BMC固件的镜像文件,加载到内部的RAM后再运行。在BMC固件更新时,首先验证固件的签名值,验证通过后才进行固件的更新操作。但是,此种保护机制,由于未对BMC固件的镜像文件进行加密保护,无法对BMC固件的镜像文件进行有效保护。在检测方面,现有的保护机制只有在BMC固件的镜像文件升级的时候才进行数字签名的校验,在BMC每次上电执行的过程中不进行检测,缺少主动检测、自动验证的机制,无法有效防止恶意人员对BMC固件的篡改。另外,在BMC出现宕机或镜像文件被破坏导致BMC不可用时,只能通过手动的方式进行系统重启或重新刷写镜像文件,缺少自动恢复的机制,连续性和可用性差。
发明内容
针对以上问题,本发明的目的在于提供一种BMC固件的保护方法、系统、装置及可读存储介质,实现了BMC固件的保护、自动检测及恢复功能。
本发明为实现上述目的,通过以下技术方案实现:一种BMC固件的保护方法,包括如下步骤:
S1:通过在BMC固件的镜像文件存储过程中进行加密和签名,建立BMC固件的镜像文件保护机制;
S2:在BMC每次上电引导过程中,自动检测BMC固件的镜像文件的签名值,验证BMC固件的镜像文件的完整性和合法性,验证通过后进行BMC固件的镜像文件的解密操作和程序加载运行;
S3:当检测到BMC固件的镜像文件被破坏后,通过切换到存储区中备份的BMC固件的镜像文件,重新进行引导和加载,完成BMC固件的自动恢复操作。
进一步,步骤S1具体包括:
在BMC固件程序编译完成后,生成相应的镜像文件Image;
利用AES对称加密算法对镜像文件Image进行加密后生成加密的镜像文件Image’,并将加密的镜像文件Image’保存于预设存储区中;
利用SHA-256杂凑算法生成加密的镜像文件Image’的摘要值Digest;
通过RSA算法,利用RSA私钥对所述摘要值Digest进行加密,生成数字签名值Signature,并存储于预设存储区中。
进一步,步骤S1还包括:
在预设存储区内建立备份存储区,将加密的镜像文件Image’和数字签名值Signature在备份存储区内进行一次备份存储;
将AES密钥和RSA公钥存储在BMC的安全存储空间,例如一次性可编程区域OTP中。
进一步,步骤S2包括:
在BMC每次上电启动时,将加密的镜像文件Image’和数字签名值Signature加载到BMC的RAM中;
读取存储在BMC的安全存储空间OTP中的RSA公钥,对数字签名值Signature进行RSA解密运算,恢复出摘要值Digest;
读取RAM中接收的加密的镜像文件Image’,利用SHA-256杂凑算法对加密的镜像文件Image’进行杂凑运算,得到对应的摘要值Digest’;
比对摘要值Digest和摘要值Digest’,若Digest=Digest’,说明加密的镜像文件Image’未被篡改;读取存储在BMC的安全存储空间OTP中的AES密钥,利用AES对称加密算法对加密的镜像文件Image’进行解密,得到镜像文件Image,BMC通过镜像文件Image进行加载启动。
进一步,步骤S3包括:
若Digest≠Digest’,说明加密的镜像文件Image’已被篡改,自动切换到备份存储区,将备份存储的加密的镜像文件Image’和数字签名值Signature加载到BMC的RAM中;
读取RAM中接收的加密的镜像文件Image’,利用SHA-256杂凑算法对加密的镜像文件Image’进行杂凑运算,得到对应的摘要值Digest’;
比对摘要值Digest和摘要值Digest’,若Digest=Digest’,说明备份存储的加密的镜像文件Image’未被篡改;读取存储在BMC的安全存储空间OTP中的AES密钥,利用AES对称加密算法对加密的镜像文件Image’进行解密,得到镜像文件Image,BMC通过镜像文件Image进行加载启动。
相应的,本发明还公开了一种BMC固件的保护系统,包括:
检测模块,用于检测BMC固件的镜像文件的签名值,验证BMC固件的镜像文件的完整性和合法性,并将验证结果发送至控制模块;
控制模块,用于根据验证结果进行BMC固件的镜像文件的解密操作和程序加载运行;还用于切换到存储区中备份的BMC固件的镜像文件,重新进行引导和加载,完成BMC固件的自动恢复操作。
进一步,所述系统还包括:
缓存区,所述缓存区设在BMC内,用于加载加密的镜像文件Image’和数字签名值Signature;
密钥存储区,所述密钥存储区采用BMC的安全存储空间OTP,用于存储AES密钥和RSA公钥;
密码算法单元,所述密码算法单元包括RSA算法模块、SHA-256算法模块和AES算法模块;所述RSA算法模块,用于实现RSA算法;所述SHA-256算法模块,用于实现SHA-256杂凑算法;所述AES算法模块,用于实现AES对称加密算法;
预设存储区,用于存储加密的镜像文件Image’和数字签名值Signature,预设存储区内设有备份存储区,用于备份存储加密的镜像文件Image’和数字签名值Signature。
进一步,所述控制模块具体用于:在BMC上电启动时,接收检测模块发送的Cmp_sig信号,当Cmp_sig=1时,调用AES算法模块对加密的镜像文件Image’进行解密后恢复出镜像文件Image,使BMC能够正常加载运行;当Cmp_sig=0时,说明加密的镜像文件Image’已被篡改,为不可信状态,控制模块不会对加密的镜像文件Image’进行解密和加载;之后自动切换到备份存储区,将备份存储的加密的镜像文件Image’和数字签名值Signature加载到缓存区,检测模块验证备份存储的数字签名值Signature,验证通过后输出Cmp_sig=1,控制模块调用AES算法模块对备份存储的加密的镜像文件Image’进行解密后恢复出镜像文件Image。
进一步,所述检测模块具体用于:BMC每次上电启动时,在控制模块的控制下利用RSA算法模块和RSA公钥对数字签名值Signature进行解密,得到摘要值Digest;之后利用SHA-256算法模块对缓存区中接收的加密的镜像文件Image’进行杂凑运算,得到摘要值Digest’;比对Digest与Digest’,当Digest=Digest’时,发送检测信号Cmp_sig=1到控制模块;当Digest≠Digest’时,发送检测信号Cmp_sig=0到控制模块。
相应的,本发明公开了一种BMC固件的保护装置,包括:
存储器,用于存储BMC固件的保护程序;
处理器,用于执行所述BMC固件的保护程序时实现如上文任一项所述BMC固件的保护方法的步骤。
相应的,本发明公开了一种可读存储介质,所述可读存储介质上存储有BMC固件的保护程序,所述BMC固件的保护程序被处理器执行时实现如上文任一项所述BMC固件的保护方法的步骤。
对比现有技术,本发明有益效果在于:
1、本发明综合利用了控制逻辑、对称加密算法、公钥算法、杂凑算法、备份存储区、OTP等对BMC固件的镜像文件进行保护,确保了BMC固件的镜像文件的完整性和合法性;并且实现了BMC固件的自动检测和恢复功能。
2、本发明主要用于信息安全领域的服务器中。在BMC固件的镜像文件存储过程中进行加密和签名,实现对镜像文件的保护;在BMC每次上电引导过程中,自动检测镜像文件的签名值,验证镜像文件的完整性和合法性,只有验证通过后才进行镜像文件的解密操作和程序加载运行,从而杜绝了恶意人员对BMC的篡改;当检测BMC固件的镜像文件被破坏后,自动进行恢复操作,通过切换到存储区中备份镜像文件重新进行引导和加载,从而保证了BMC的连续性和可用性。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
附图1是本发明的实施例一的方法流程图;
附图2是本发明的实施例三的系统结构图;
附图3是本发明的实施例四的系统结构图。
图中,1为检测模块;2为控制模块;3为缓存区;4密钥存储区;5为密码算法单元,6为预设存储区,51为RSA算法模块,52为SHA-256算法模块,53为AES算法模块,61为备份存储区。
具体实施方式
本发明的核心是提供一种BMC固件的保护方法,现有技术中,由于未对BMC固件的镜像文件进行加密保护,无法对BMC固件的镜像文件进行有效保护。在检测方面,现有的保护机制只有在BMC固件的镜像文件升级的时候才进行数字签名的校验,在BMC每次上电执行的过程中不进行检测,缺少主动检测、自动验证的机制,无法有效防止恶意人员对BMC固件的篡改。另外,在BMC出现宕机或镜像文件被破坏导致BMC不可用时,只能通过手动的方式进行系统重启或重新刷写镜像文件,缺少自动恢复的机制,连续性和可用性差。
而本发明提供的BMC固件的保护方法,首先,在BMC固件的镜像文件存储过程中进行加密和签名,实现对镜像文件的保护。在BMC每次上电引导过程中,自动检测镜像文件的签名值,验证镜像文件的完整性和合法性,只有验证通过后才进行镜像文件的解密操作和程序加载运行,从而杜绝了恶意人员对BMC的篡改;当检测BMC固件的镜像文件被破坏后,自动进行恢复操作,通过切换到存储区中备份镜像文件重新进行引导和加载,从而保证了BMC的连续性和可用性。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
如图1所示,本实施例提供了一种BMC固件的保护方法,包括如下步骤:
S1:通过在BMC固件的镜像文件存储过程中进行加密和签名,建立BMC固件的镜像文件保护机制。
本步骤具体包括:
在BMC固件程序编译完成后,生成相应的镜像文件Image。利用AES对称加密算法对镜像文件Image进行加密后生成加密的镜像文件Image’,并将加密的镜像文件Image’保存于预设存储区中;利用SHA-256杂凑算法生成加密的镜像文件Image’的摘要值Digest。最后,通过RSA算法,利用RSA私钥对所述摘要值Digest进行加密,生成数字签名值Signature,并存储于预设存储区中。
在预设存储区内建立备份存储区,将加密的镜像文件Image’和数字签名值Signature在备份存储区内进行一次备份存储。将AES密钥和RSA公钥存储在BMC的安全存储空间OTP中。
S2:在BMC每次上电引导过程中,自动检测BMC固件的镜像文件的签名值,验证BMC固件的镜像文件的完整性和合法性,验证通过后进行BMC固件的镜像文件的解密操作和程序加载运行。
本步骤具体包括:
在BMC每次上电启动时,将加密的镜像文件Image’和数字签名值Signature加载到BMC的RAM中。
读取存储在BMC的安全存储空间OTP中的RSA公钥,对数字签名值Signature进行RSA解密运算,恢复出摘要值Digest;读取RAM中接收的加密的镜像文件Image’,利用SHA-256杂凑算法对加密的镜像文件Image’进行杂凑运算,得到对应的摘要值Digest’。
比对摘要值Digest和摘要值Digest’,若Digest=Digest’,说明加密的镜像文件Image’未被篡改;读取存储在BMC的安全存储空间OTP中的AES密钥,利用AES对称加密算法对加密的镜像文件Image’进行解密,得到镜像文件Image,BMC通过镜像文件Image进行加载启动。
S3:当检测到BMC固件的镜像文件被破坏后,通过切换到存储区中备份的BMC固件的镜像文件,重新进行引导和加载,完成BMC固件的自动恢复操作。
若Digest≠Digest’,说明加密的镜像文件Image’已被篡改,此时,自动切换到备份存储区,将备份存储的加密的镜像文件Image’和数字签名值Signature加载到BMC的RAM中。然后,读取RAM中接收的加密的镜像文件Image’,利用SHA-256杂凑算法对加密的镜像文件Image’进行杂凑运算,得到对应的摘要值Digest’;
在对当前获取的摘要值Digest和摘要值Digest’进行比对,若Digest=Digest’,说明备份存储的加密的镜像文件Image’未被篡改;读取存储在BMC的安全存储空间OTP中的AES密钥,利用AES对称加密算法对加密的镜像文件Image’进行解密,得到镜像文件Image,BMC通过镜像文件Image进行加载启动。
本实施例提供了一种BMC固件的保护方法,综合利用了控制逻辑、对称加密算法、公钥算法、杂凑算法、备份存储区、OTP等对BMC固件的镜像文件进行保护,确保了BMC固件的镜像文件的完整性和合法性;并且实现了BMC固件的自动检测和恢复功能。
实施例二:
基于实施例一,本实施例还提供了一种BMC固件的保护方法,具体包括如下步骤:
(1)BMC程序编译生成固件的二进制镜像文件Image之后,利用AES对称加密算法对Image进行加密,得到加密的镜像文件Image’,即Image’=ENCAES_KEY(Image),Image’存储于BMC的外部存储器中,AES对称加密算法所用的密钥AES_KEY存储于BMC的一次可编程区域OTP中。
(2)利用SHA-256杂凑算法对加密的镜像文件Image’进行杂凑运算,得到一个256bit的摘要值Digest,即Digest=SHA-256(Image’)。
(3)利用RSA公钥算法生成RSA公钥-私钥对,其中私钥(PRI_KEY)由系统管理员保存,用于对Digest进行数字签名,即RSA加密运算,得到签名值Signature,Signature=ENC_RSAPRI_KEY(Digest);签名值Signature存储于Flash中,RSA公钥(PUB_KEY)存储于BMC的一次可编程区域OTP中。另外在Flash中存储备份的Image’和Signature。
(4)BMC启动时,读取OTP中的RSA公钥PUB_KEY,对Signature进行RSA解密运算,恢复出Digest,即Digest=DEC_RSAPUB_KEY(Signature)。
(5)读取RAM中接收的加密的镜像文件Image’,调用SHA-256杂凑算法进行杂凑运算,生成摘要值Digest’,即Digest’=SHA-256(Image’)。
(6)进行Image’的完整性校验过程,即比对Digest与Digest’,如果Digest=Digest’,说明Image’未被篡改,调用AES对称加密算法在OTP中提取AES_KEY对Image’进行解密,得到Image,即Image=DECAES_KEY(Image’),Image文件加载执行后,BMC正常启动。
(7)如果Digest≠Digest’,说明Image’已被篡改,文件的完整性受到了破坏、或可能被植入了恶意代码,此时,BMC拒绝对当前Image’的解密和执行,并切换到备份存储区,将备份Image’文件和签名值Signature加载到RAM,重新运行上述步骤(4)~(6)。
(8)如果需要更换密钥,由系统管理员将新的密钥(AES密钥、RSA公钥)写入BMC的一次可编程区域OTP中,旧的密钥不再使用。
安全性说明:如果Flash中的Image’文件被篡改,例如把Image’修改为Image_change,通过SHA-256算法计算出的摘要值Digest’=SHA-256(Image_change)必然不等于对Signature解密后恢复出的正确摘要值Digest,Digest=DEC_RSAPUB_KEY(Signature),由此可以判断Image’被篡改并拒绝对Image’解密和执行。此外,如果Image’在传输到BMC的过程中被黑客截获,由于Image’是加密文件,黑客不能进行解密,从而确保了镜像文件的机密性。
实施例三:
基于实施例一,如图2所示,本发明还公开了一种BMC固件的保护系统,包括:检测模块1、控制模块2、缓存区3、密钥存储区4、密码算法单元5和预设存储区6。
检测模块1,用于检测BMC固件的镜像文件的签名值,验证BMC固件的镜像文件的完整性和合法性,并将验证结果发送至控制模块2。
控制模块2,用于根据验证结果进行BMC固件的镜像文件的解密操作和程序加载运行;还用于切换到存储区中备份的BMC固件的镜像文件,重新进行引导和加载,完成BMC固件的自动恢复操作。
缓存区3,所述缓存区设在BMC内,用于加载加密的镜像文件Image’和数字签名值Signature;
密钥存储区4,所述密钥存储区采用BMC的安全存储空间OTP,用于存储AES密钥和RSA公钥。该区域无法被读取及篡改,从而保证了密钥的安全性。
密码算法单元5包括RSA算法模块51、SHA-256算法模块52和AES算法模块53;所述RSA算法模块51,用于实现RSA算法;所述SHA-256算法模块52,用于实现SHA-256杂凑算法;所述AES算法模块53,用于实现AES对称加密算法;
预设存储区6,用于存储加密的镜像文件Image’和数字签名值Signature,预设存储区内设有备份存储区61,用于备份存储加密的镜像文件Image’和数字签名值Signature。
基于上述功能模块和组件,BMC固件的自动检测和恢复功能通过上述功能模块和组件的配合实现,具体为:
在BMC上电启动时,接收检测模块发送的Cmp_sig信号,当Cmp_sig=‘1’时,调用AES算法模块对加密的镜像文件Image’进行解密后恢复出镜像文件Image,使BMC能够正常加载运行;当Cmp_sig=‘0’时,说明加密的镜像文件Image’已被篡改,为不可信状态,控制模块不会对加密的镜像文件Image’进行解密和加载;之后自动切换到备份存储区,将备份存储的加密的镜像文件Image’和数字签名值Signature加载到缓存区,检测模块验证备份存储的数字签名值Signature,验证通过后输出Cmp_sig=‘1’,控制模块调用AES算法模块对备份存储的加密的镜像文件Image’进行解密后恢复出镜像文件Image。
BMC每次上电启动时,检测模块在控制模块的控制下利用RSA算法模块和RSA公钥对数字签名值Signature进行解密,得到摘要值Digest;之后利用SHA-256算法模块对缓存区中接收的加密的镜像文件Image’进行杂凑运算,得到摘要值Digest’;比对Digest与Digest’,当Digest=Digest’时,发送检测信号Cmp_sig=‘1’到控制模块;当Digest≠Digest’时,发送检测信号Cmp_sig=‘0’到控制模块。
可见,检测模块1验证备份Signature通过后输出Cmp_sig=‘1’,控制模块2调用AES算法模块对备份Image’文件进行解密后恢复出Image文件,从而保证了BMC运行的可用性和连续性。
在本实施例中,检测模块1、控制模块2、缓存区3、密钥存储区4、密码算法单元5均设在BMC中,预设存储区6采用外置的FLASH。
实施例四:
基于实施例三,如图3所示,本实施例还公开了一种BMC固件的保护系统,与实施例三的区别在于:
1、由于BMC自身的资源有限,将检测模块1和控制模块2设置BMC外部的FPGA中,利用FPGA的逻辑资源设计实现,从而可以节省BMC自身的资源。
2、为了防止单一Flash出现意外故障导致不能使用的情况,另外增加一个Flash2作为备份存储区62,备份Image’及Signature存放于Flash2中,从而进一步提升系统的可靠性,保证BMC的可用性。
实施例五:
本实施例公开了一种BMC固件的保护装置,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的BMC固件的保护程序时实现以下步骤:
1、通过在BMC固件的镜像文件存储过程中进行加密和签名,建立BMC固件的镜像文件保护机制。
2、在BMC每次上电引导过程中,自动检测BMC固件的镜像文件的签名值,验证BMC固件的镜像文件的完整性和合法性,验证通过后进行BMC固件的镜像文件的解密操作和程序加载运行。
3、当检测到BMC固件的镜像文件被破坏后,通过切换到存储区中备份的BMC固件的镜像文件,重新进行引导和加载,完成BMC固件的自动恢复操作。
进一步的,本实施例中的BMC固件的保护装置,还可以包括:
输入接口,用于获取外界导入的BMC固件的保护程序,并将获取到的BMC固件的保护程序保存至所述存储器中,还可以用于获取外界终端设备传输的各种指令和参数,并传输至处理器中,以便处理器利用上述各种指令和参数展开相应的处理。本实施例中,所述输入接口具体可以包括但不限于USB接口、串行接口、语音输入接口、指纹输入接口、硬盘读取接口等。
输出接口,用于将处理器产生的各种数据输出至与其相连的终端设备,以便于与输出接口相连的其他终端设备能够获取到处理器产生的各种数据。本实施例中,所述输出接口具体可以包括但不限于USB接口、串行接口等。
通讯单元,用于在BMC固件的保护装置和外部服务器之间建立远程通讯连接,以便于BMC固件的保护装置能够将镜像文件挂载到外部服务器中。本实施例中,通讯单元具体可以包括但不限于基于无线通讯技术或有线通讯技术的远程通讯单元。
键盘,用于获取用户通过实时敲击键帽而输入的各种参数数据或指令。
显示器,用于运行服务器供电线路短路定位过程的相关信息进行实时显示。
鼠标,可以用于协助用户输入数据并简化用户的操作。
本实施例提供了一种BMC固件的保护装置,在BMC固件的镜像文件存储过程中进行加密和签名,实现对镜像文件的保护。并控制BMC在每次上电引导过程中,自动检测镜像文件的签名值,只有验证通过后才允许镜像文件的解密和加载执行。如果签名值验证不通过,说明镜像文件已被篡改,程序的完整性受到了破坏、或可能被植入了恶意代码。BMC不会通过当前非法的镜像进行加载启动,而是自动切换到备份存储区,重新验证备份的签名值并通过备份镜像重新引导,从而保证了BMC镜像文件的完整性和合法性,防止因加载恶意程序后引发的系统安全风险;通过自动恢复机制可以确保BMC的可用性和连续性。
实施例六:
本实施例还公开了一种可读存储介质,这里所说的可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动硬盘、CD-ROM或技术领域内所公知的任意其他形式的存储介质。可读存储介质中存储有BMC固件的保护程序,所述BMC固件的保护被处理器执行时实现以下步骤:
1、通过在BMC固件的镜像文件存储过程中进行加密和签名,建立BMC固件的镜像文件保护机制。
2、在BMC每次上电引导过程中,自动检测BMC固件的镜像文件的签名值,验证BMC固件的镜像文件的完整性和合法性,验证通过后进行BMC固件的镜像文件的解密操作和程序加载运行。
3、当检测到BMC固件的镜像文件被破坏后,通过切换到存储区中备份的BMC固件的镜像文件,重新进行引导和加载,完成BMC固件的自动恢复操作。
综上所述,本发明利用控制逻辑、对称加密算法、公钥算法、杂凑算法、备份存储区、OTP等对BMC固件的镜像文件进行保护,确保了BMC固件的镜像文件的完整性和合法性;并且实现了BMC固件的自动检测和恢复功能。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统、系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。
同理,在本发明各个实施例中的各处理单元可以集成在一个功能模块中,也可以是各个处理单元物理存在,也可以两个或两个以上处理单元集成在一个功能模块中。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的BMC固件的保护方法、系统、装置及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种BMC固件的保护方法,其特征在于,包括如下步骤:
S1:通过在BMC固件的镜像文件存储过程中进行加密和签名,建立BMC固件的镜像文件保护机制;
S2:在BMC每次上电引导过程中,自动检测BMC固件的镜像文件的签名值,验证BMC固件的镜像文件的完整性和合法性,验证通过后进行BMC固件的镜像文件的解密操作和程序加载运行;
S3:当检测到BMC固件的镜像文件被破坏后,通过切换到存储区中备份的BMC固件的镜像文件,重新进行引导和加载,完成BMC固件的自动恢复操作。
2.根据权利要求1所述的BMC固件的保护方法,其特征在于,所述步骤S1具体包括:
在BMC固件程序编译完成后,生成相应的镜像文件Image;
利用AES对称加密算法对镜像文件Image进行加密后生成加密的镜像文件Image’,并将加密的镜像文件Image’保存于预设存储区中;
利用SHA-256杂凑算法生成加密的镜像文件Image’的摘要值Digest;
通过RSA算法,利用RSA私钥对所述摘要值Digest进行加密,生成数字签名值Signature,并存储于预设存储区中。
3.根据权利要求2所述的BMC固件的保护方法,其特征在于,所述步骤S1还包括:在预设存储区内建立备份存储区,将加密的镜像文件Image’和数字签名值Signature在备份存储区内进行一次备份存储;
将AES密钥和RSA公钥存储在BMC的安全存储空间中。
4.根据权利要求3所述的BMC固件的保护方法,其特征在于,所述步骤S2包括:在BMC每次上电启动时,将加密的镜像文件Image’和数字签名值Signature加载到BMC的RAM中;
读取存储在BMC的安全存储空间中的RSA公钥,对数字签名值Signature进行RSA解密运算,恢复出摘要值Digest;
读取RAM中接收的加密的镜像文件Image’,利用SHA-256杂凑算法对加密的镜像文件Image’进行杂凑运算,得到对应的摘要值Digest’;
比对摘要值Digest和摘要值Digest’,若Digest=Digest’,说明加密的镜像文件Image’未被篡改;读取存储在BMC的安全存储空间中的AES密钥,利用AES对称加密算法对加密的镜像文件Image’进行解密,得到镜像文件Image,BMC通过镜像文件Image进行加载启动。
5.根据权利要求4所述的BMC固件的保护方法,其特征在于,所述步骤S3包括:若Digest≠Digest’,说明加密的镜像文件Image’已被篡改,自动切换到备份存储区,将备份存储的加密的镜像文件Image’和数字签名值Signature加载到BMC的RAM中;
读取RAM中接收的加密的镜像文件Image’,利用SHA-256杂凑算法对加密的镜像文件Image’进行杂凑运算,得到对应的摘要值Digest’;
比对摘要值Digest和摘要值Digest’,若Digest=Digest’,说明备份存储的加密的镜像文件Image’未被篡改;读取存储在BMC的安全存储空间中的AES密钥,利用AES对称加密算法对加密的镜像文件Image’进行解密,得到镜像文件Image,BMC通过镜像文件Image进行加载启动。
6.一种BMC固件的保护系统,其特征在于,包括:
检测模块,用于检测BMC固件的镜像文件的签名值,验证BMC固件的镜像文件的完整性和合法性,并将验证结果发送至控制模块;
控制模块,用于根据验证结果进行BMC固件的镜像文件的解密操作和程序加载运行;还用于切换到存储区中备份的BMC固件的镜像文件,重新进行引导和加载,完成BMC固件的自动恢复操作。
7.根据权利要求6所述的BMC固件的保护系统,其特征在于,还包括:
缓存区,所述缓存区设在BMC内,用于加载加密的镜像文件Image’和数字签名值Signature;
密钥存储区,所述密钥存储区采用BMC的安全存储空间,用于存储AES密钥和RSA公钥;
密码算法单元,所述密码算法单元包括RSA算法模块、SHA-256算法模块和AES算法模块;所述RSA算法模块,用于实现RSA算法;所述SHA-256算法模块,用于实现SHA-256杂凑算法;所述AES算法模块,用于实现AES对称加密算法;
预设存储区,用于存储加密的镜像文件Image’和数字签名值Signature,预设存储区内设有备份存储区,用于备份存储加密的镜像文件Image’和数字签名值Signature。
8.根据权利要求7所述的BMC固件的保护系统,其特征在于,
所述控制模块具体用于:在BMC上电启动时,接收检测模块发送的Cmp_sig信号,当Cmp_sig=1时,调用AES算法模块对加密的镜像文件Image’进行解密后恢复出镜像文件Image,使BMC能够正常加载运行;当Cmp_sig=0时,说明加密的镜像文件Image’已被篡改,为不可信状态,控制模块不会对加密的镜像文件Image’进行解密和加载;之后自动切换到备份存储区,将备份存储的加密的镜像文件Image’和数字签名值Signature加载到缓存区,检测模块验证备份存储的数字签名值Signature,验证通过后输出Cmp_sig=1,控制模块调用AES算法模块对备份存储的加密的镜像文件Image’进行解密后恢复出镜像文件Image;
所述检测模块具体用于:BMC每次上电启动时,在控制模块的控制下利用RSA算法模块和RSA公钥对数字签名值Signature进行解密,得到摘要值Digest;之后利用SHA-256算法模块对缓存区中接收的加密的镜像文件Image’进行杂凑运算,得到摘要值Digest’;比对Digest与Digest’,当Digest=Digest’时,发送检测信号Cmp_sig=1到控制模块;当Digest≠Digest’时,发送检测信号Cmp_sig=0到控制模块。
9.一种BMC固件的保护装置,其特征在于,包括:
存储器,用于存储BMC固件的保护程序;
处理器,用于执行所述BMC固件的保护程序时实现如权利要求1至5任一项权利要求所述的BMC固件的保护方法的步骤。
10.一种可读存储介质,其特征在于:所述可读存储介质上存储有BMC固件的保护程序,所述BMC固件的保护程序被处理器执行时实现如权利要求1至5任一项权利要求所述的BMC固件的保护方法的步骤。
CN202110722500.6A 2021-06-28 2021-06-28 一种bmc固件的保护方法、系统、装置及可读存储介质 Withdrawn CN113626803A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110722500.6A CN113626803A (zh) 2021-06-28 2021-06-28 一种bmc固件的保护方法、系统、装置及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110722500.6A CN113626803A (zh) 2021-06-28 2021-06-28 一种bmc固件的保护方法、系统、装置及可读存储介质

Publications (1)

Publication Number Publication Date
CN113626803A true CN113626803A (zh) 2021-11-09

Family

ID=78378498

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110722500.6A Withdrawn CN113626803A (zh) 2021-06-28 2021-06-28 一种bmc固件的保护方法、系统、装置及可读存储介质

Country Status (1)

Country Link
CN (1) CN113626803A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114924897A (zh) * 2022-04-22 2022-08-19 苏州浪潮智能科技有限公司 一种bios和bmc固件自动互相恢复方法、结构及存储介质
CN114995918A (zh) * 2022-08-02 2022-09-02 苏州浪潮智能科技有限公司 基板管理控制器的启动方法、配置方法、装置及电子设备
CN115756496A (zh) * 2023-01-09 2023-03-07 苏州浪潮智能科技有限公司 镜像的编译方法、装置、计算机可读存储介质及电子设备
CN115906100A (zh) * 2022-11-29 2023-04-04 江苏云涌电子科技股份有限公司 一种确保微控制单元固件可信的系统及方法
US20230120616A1 (en) * 2021-10-20 2023-04-20 Hewlett Packard Enterprise Development Lp Baseboard management controller (bmc) for storing cryptographic keys and performing cryptographic operations
CN114924897B (zh) * 2022-04-22 2024-06-28 苏州浪潮智能科技有限公司 一种bios和bmc固件自动互相恢复方法、结构及存储介质

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230120616A1 (en) * 2021-10-20 2023-04-20 Hewlett Packard Enterprise Development Lp Baseboard management controller (bmc) for storing cryptographic keys and performing cryptographic operations
CN114924897A (zh) * 2022-04-22 2022-08-19 苏州浪潮智能科技有限公司 一种bios和bmc固件自动互相恢复方法、结构及存储介质
CN114924897B (zh) * 2022-04-22 2024-06-28 苏州浪潮智能科技有限公司 一种bios和bmc固件自动互相恢复方法、结构及存储介质
CN114995918A (zh) * 2022-08-02 2022-09-02 苏州浪潮智能科技有限公司 基板管理控制器的启动方法、配置方法、装置及电子设备
CN115906100A (zh) * 2022-11-29 2023-04-04 江苏云涌电子科技股份有限公司 一种确保微控制单元固件可信的系统及方法
CN115756496A (zh) * 2023-01-09 2023-03-07 苏州浪潮智能科技有限公司 镜像的编译方法、装置、计算机可读存储介质及电子设备
CN115756496B (zh) * 2023-01-09 2023-04-14 苏州浪潮智能科技有限公司 镜像的编译方法、装置、计算机可读存储介质及电子设备

Similar Documents

Publication Publication Date Title
EP3205046B1 (en) Secure shared key sharing systems and methods
JP5690412B2 (ja) ハードウェアデバイスの鍵プロビジョン方法および装置
CN113626803A (zh) 一种bmc固件的保护方法、系统、装置及可读存储介质
US9311487B2 (en) Tampering monitoring system, management device, protection control module, and detection module
US9594909B2 (en) Software updating apparatus, software updating system, invalidation method, and invalidation program
US8935530B2 (en) Control device and computer readable medium
US8683214B2 (en) Method and device that verifies application program modules
US8019994B2 (en) Authentication of a request to alter at least one of a BIOS and a setting associated with the BIOS
CN110737897B (zh) 基于可信卡的启动度量的方法和系统
US8533829B2 (en) Method for monitoring managed device
US8707430B2 (en) Tampering monitoring system, management apparatus, and management method
US8769312B2 (en) Tampering monitoring system, protection control module, and detection module
US10108361B2 (en) Information processing apparatus for storing data in cloud environment, terminal device, and storage method
CN110008689A (zh) 一种bmc启动方法、装置、设备及计算机可读存储介质
CN110688660B (zh) 一种终端安全启动的方法及装置、存储介质
CN107679425B (zh) 一种基于固件和USBkey的联合全盘加密的可信启动方法
KR20110035573A (ko) 클라우드 컴퓨팅 환경에서 안전한 가상 머신 설치를 제공하는 방법
CN111147247A (zh) 密钥更新方法、装置、计算机设备和存储介质
CN110445774B (zh) IoT设备的安全防护方法、装置及设备
CN109784072B (zh) 一种安全文件管理方法和系统
EP3664362B1 (en) Key generation method, acquisition method, private key update method, chip and server
CN110674525A (zh) 一种电子设备及其文件处理方法
CN116484379A (zh) 系统启动方法、包含可信计算基软件的系统、设备及介质
CN115357908A (zh) 一种网络设备内核可信度量与自动修复方法
CN111858114B (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
WW01 Invention patent application withdrawn after publication

Application publication date: 20211109

WW01 Invention patent application withdrawn after publication