CN117610004A - 固件校验方法、系统启动方法、装置、系统、设备及介质 - Google Patents

固件校验方法、系统启动方法、装置、系统、设备及介质 Download PDF

Info

Publication number
CN117610004A
CN117610004A CN202311294340.5A CN202311294340A CN117610004A CN 117610004 A CN117610004 A CN 117610004A CN 202311294340 A CN202311294340 A CN 202311294340A CN 117610004 A CN117610004 A CN 117610004A
Authority
CN
China
Prior art keywords
data
firmware
system firmware
firmware data
processing
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
CN202311294340.5A
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 Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain 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 Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311294340.5A priority Critical patent/CN117610004A/zh
Publication of CN117610004A publication Critical patent/CN117610004A/zh
Pending legal-status Critical Current

Links

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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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/31User authentication
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供一种固件校验方法、系统启动方法、装置、系统、设备及介质,涉及服务器安全技术领域,该方法包括:在确定目标平台硬件组件处于复位状态或断电状态的情况下,获取目标平台硬件组件对应的目标系统固件数据;对目标系统固件数据进行数据位混淆处理,得到混淆后的系统固件数据;对混淆后的系统固件数据进行哈希运算处理,得到目标系统固件数据对应的哈希密匙;将哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定目标系统固件数据通过安全校验,其中,数字签名是由原始系统固件数据在经过数据位混淆处理和哈希运算处理后得到的。本发明提高了固件校验过程的准确性,使得服务器系统的启动过程更为安全。

Description

固件校验方法、系统启动方法、装置、系统、设备及介质
技术领域
本发明涉及服务器安全技术领域,尤其涉及一种固件校验方法、系统启动方法、装置、系统、设备及介质。
背景技术
随着信息技术与互联网技术的不断发展与前进,网络安全已经成为当今企业所共同面对的重要问题,为了保证企业的信息安全,需要对服务器的安全性能提出更高的要求。
在目前的服务器启动过程中,需将各个平台硬件组件固件数据的密匙与储存在非易失性存储器(Non-Volatile Memory,简称NVM)中的数字签名进行验证,当验证通过则进入服务器系统启动的引导过程。然而,当固件(FirmWare,简称FW)文件数据中的部分信息被篡改时,仅仅匹配密匙信息将难以识别,若固件数据存在篡改,服务器系统开机后将进入未经授权的引导界面,损坏系统健康,造成系统安全风险。
因此,现在亟需一种固件校验方法、系统启动方法、装置、系统、设备及介质来解决上述问题。
发明内容
针对现有技术存在的问题,本发明提供一种固件校验方法、系统启动方法、装置、系统、设备及介质。
本发明提供一种固件校验方法,包括:
在确定目标平台硬件组件处于复位状态或断电状态的情况下,获取所述目标平台硬件组件对应的目标系统固件数据,其中,所述目标系统固件数据为待进行安全校验的系统固件数据,所述复位状态或所述断电状态是基于平台固件保护恢复芯片对所述目标平台硬件组件的控制结果确定的;
对所述目标系统固件数据进行数据位混淆处理,得到混淆后的系统固件数据;
对所述混淆后的系统固件数据进行哈希运算处理,得到所述目标系统固件数据对应的哈希密匙;
将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述数字签名是由原始系统固件数据在经过所述数据位混淆处理和所述哈希运算处理后得到的。
根据本发明提供的一种固件校验方法,所述对所述目标系统固件数据进行数据位混淆处理,得到混淆后的系统固件数据,包括:
接收第一输入,所述第一输入包括对所述目标系统固件数据进行数据位混淆处理的操作;
响应于所述第一输入,生成对应的私人密匙,并通过所述私人密匙对所述目标系统固件数据进行数据位移位处理、取反处理和字符串加法运算处理,得到所述混淆后的系统固件数据。
根据本发明提供的一种固件校验方法,所述对所述混淆后的系统固件数据进行哈希运算处理,得到所述目标系统固件数据对应的哈希密匙,包括:
基于信息摘要算法5,对所述混淆后的系统固件数据进行第一级哈希运算处理,得到第一哈希值,所述第一哈希值为所述混淆后的系统固件数据对应的128位哈希值;
所述将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,包括:
将所述第一哈希值与所述数字签名库中的第一数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述第一数字签名是基于信息摘要算法5,对经过所述数据位混淆处理后的所述原始系统固件数据进行所述第一级哈希运算处理后得到的。
根据本发明提供的一种固件校验方法,在所述基于信息摘要算法5,对所述混淆后的系统固件数据进行哈希运算处理,得到第一哈希值之后,所述方法还包括:
基于安全散列算法256,根据所述目标系统固件数据的数据长度和所述第一哈希值进行第二级哈希运算处理,得到第二哈希值,所述第二哈希值为所述混淆后的系统固件数据对应的256位哈希根密匙;
所述将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,包括:
将所述第二哈希值与所述数字签名库中的第二数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述第二数字签名是基于安全散列算法256,对经过所述数据位混淆处理后的所述原始系统固件数据依次进行所述第一级哈希运算处理和所述第二级哈希运算处理后得到的。
根据本发明提供的一种固件校验方法,所述私人密匙对应的数据位混淆处理步骤为:
对所述目标系统固件数据的数据位进行移位处理,得到移位处理后的系统固件数据;
基于所述移位处理对应的数据位移动方向,对所述移位处理后的系统固件数据进行补0处理,并对补0的数据位进行取反处理,得到取反处理后的系统固件数据;
将所述取反处理后的系统固件数据与预设字符串进行加法运行处理,得到所述混淆后的系统固件数据。
根据本发明提供的一种固件校验方法,所述通过所述私人密匙对所述目标系统固件数据进行数据位移位处理、取反处理和字符串加法运算处理,包括:
获取所述私人密匙中对应的数据位移位位数;
根据数据位移位位数和预设最大移位位数,对所述私人密匙进行判断,若根据判断结果,确定所述私人密匙为有效密匙,通过所述私人密匙对所述目标系统固件数据进行数据位移位处理、取反处理和字符串加法运算处理。
根据本发明提供的一种固件校验方法,所述根据数据位移位位数和预设最大移位位数,对所述私人密匙进行判断,包括:
判断所述数据位移位位数是否大于所述预设最大移位位数,若小于或等于所述预设最大移位位数,判断获知所述私人密匙为有效密匙,并通过判定为所述有效密匙的所述私人密匙,对所述目标系统固件数据进行数据位移位处理、取反处理和字符串加法运算处理,得到所述混淆后的系统固件数据。
根据本发明提供的一种固件校验方法,所述方法还包括:
若所述数据位移位位数大于所述预设最大移位位数,判断获知所述私人密匙为无效密匙,并生成对应的数据位混淆处理错误提示信息。
根据本发明提供的一种固件校验方法,在所述将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验之后,所述方法还包括:
基于安全校验通过后的所述目标系统固件数据,驱动所述目标平台硬件组件启动。
根据本发明提供的一种固件校验方法,若所述将所述哈希密匙和数字签名库中的数字签名未匹配成功,所述方法还包括:
获取所述目标系统固件数据对应的固件备份数据,所述固件备份数据与所述目标系统固件数据存储在不同的数据存储区域;
对所述固件备份数据依次进行所述数据位混淆处理和所述哈希运算处理,得到所述固件备份数据对应的哈希密匙;
将所述固件备份数据对应的哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述固件备份数据通过安全校验,并基于安全校验通过后的所述固件备份数据,驱动所述目标平台硬件组件启动;
若匹配失败,生成对应的平台硬件组件启动失败提示信息。
根据本发明提供的一种固件校验方法,所述方法还包括:
对所述待进行安全校验的系统固件数据进行数据预处理,得到所述目标系统固件数据;
对所述原始系统固件数据进行所述数据预处理,以通过数据预处理后的原始系统固件获取对应的数字签名;
其中,所述数据预处理至少包括数据清洗处理、数据标准化处理和去噪处理。
本发明还提供一种基于上述固件校验方法的系统启动方法,应用于平台固件保护恢复芯片,包括:
构建待启动的服务器系统的预启动环境,其中,所述服务器系统中各个平台硬件组件的数据存储区域存储有对应的系统固件数据,且在所述预启动环境中,所述平台固件保护恢复芯片与各个所述数据存储区域建立连接;
将第一初始化信号发送至各个所述平台硬件组件,其中,所述第一初始化信号用于控制所述平台硬件组件进入复位状态或断电状态;
在确定各个所述平台硬件组件处于所述复位状态或所述断电状态的情况下,获取各个所述平台硬件组件对应的系统固件数据;
获取各个所述系统固件数据的安全校验结果,并对所述安全校验结果进行判断,若判断获知所有所述系统固件数据通过安全校验,将第二初始化信号发送至各个所述平台硬件组件,其中,所述第二初始化信号用于控制所述平台硬件组件从所述复位状态或所述断电状态进入启动状态;
在确定所有所述平台硬件组件处于所述启动状态后,构建正常启动环境,并基于通过安全校验的所述系统固件数据,启动所述服务器系统。
根据本发明提供的一种系统启动方法,所述平台固件保护恢复芯片通过通用输入输出接口与各个所述平台硬件组件建立连接,并通过多路选择开关和串行外设接口控制器,获取各个所述平台硬件组件的数据储存区域中的所述系统固件数据,其中,所述平台固件保护恢复芯片将获取到的所述系统固件数据存储至数据暂存区域。
根据本发明提供的一种系统启动方法,所述获取各个所述系统固件数据的安全校验结果,并对所述安全校验结果进行判断,包括:
若判断获知任意一个所述系统固件数据未通过安全校验,获取未通过安全校验的系统固件数据对应的固件备份数据;
将所述固件备份数据写入目标数据存储区域,其中,所述目标数据存储区域所述未通过安全校验的系统固件数据的数据存储区域;
对所述固件备份数据和其它系统固件数据重新执行固件数据校验,若全部通过安全校验,则生成所述第二初始化信号,其中,所述其它系统固件数据为除所述未通过安全校验的系统固件数据和对应的所述固件备份数据以外的系统固件数据。
根据本发明提供的一种系统启动方法,所述方法还包括:
在所述服务器系统的当前启动过程中,判断所述固件数据校验的重新执行的次数是否大于预设校验次数,若大于所述预设校验次数,生成系统关闭信号,以通过所述系统关闭信号控制所述服务器系统进行关机状态。
本发明还提供一种固件校验装置,包括:
固件数据获取单元,用于在确定目标平台硬件组件处于复位状态或断电状态的情况下,获取所述目标平台硬件组件对应的目标系统固件数据,其中,所述目标系统固件数据为待进行安全校验的系统固件数据,所述复位状态或所述断电状态是基于平台固件保护恢复芯片对所述目标平台硬件组件的控制结果确定的;
数据混淆单元,对所述目标系统固件数据进行数据位混淆处理,得到混淆后的系统固件数据;
密匙加密单元,用于对所述混淆后的系统固件数据进行哈希运算处理,得到所述目标系统固件数据对应的哈希密匙;
密匙比对单元,用于将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述数字签名是由原始系统固件数据在经过所述数据位混淆处理和所述哈希运算处理后得到的。
本发明还提供一种基于上述固件校验装置的系统启动装置,包括:
预启动模块,用于构建待启动的服务器系统的预启动环境,其中,所述服务器系统中各个平台硬件组件的数据储存区域存储有对应的系统固件数据,且在所述预启动环境中,所述平台固件保护恢复芯片与各个所述数据存储区域建立连接;
第一处理模块,用于将第一初始化信号发送至各个所述平台硬件组件,其中,所述第一初始化信号用于控制所述平台硬件组件进入复位状态或断电状态;
交互模块,用于在确定各个所述平台硬件组件处于所述复位状态或所述断电状态的情况下,获取各个所述平台硬件组件对应的系统固件数据;
第二处理模块,用于获取各个所述系统固件数据的安全校验结果,并对所述安全校验结果进行判断,若判断获知所有所述系统固件数据通过安全校验,将第二初始化信号发送至各个所述平台硬件组件,其中,所述第二初始化信号用于控制所述平台硬件组件从所述复位状态或所述断电状态进入启动状态;
系统启动模块,用于在确定所有所述平台硬件组件处于所述启动状态后,构建正常启动环境,并基于通过安全校验的所述系统固件数据,启动所述服务器系统。
本发明还提供一种服务器系统,包括上述的固件校验装置、系统启动装置以及多个平台硬件组件,其中,所述平台硬件组件通过通用输入输出接口与所述系统启动装置建立连接;所述系统启动装置控制所述平台硬件组件进行复位状态或断电状态后,用于通过多路选择开关和串行外设接口控制器,获取所述平台硬件组件的数据储存区域中的系统固件数据,并在确定所述系统固件数据通过安全校验后,对所述服务器系统执行启动操作;所述固件数据校验装置,用于对所述系统启动装置获取到的所述系统固件数据进行安全校验。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述固件校验方法,或上述任一种所述系统启动方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述固件校验方法,或上述任一种所述系统启动方法。
本发明提供的固件校验方法、系统启动方法、装置、系统、设备及介质,通过对待进行安全校验的系统固件数据依次进行数据位混淆处理和哈希运算处理,将得到的哈希密匙和数字签名库中由原始系统固件数据在前期经过数据位混淆处理和哈希运算处理得到的数字签名进行匹配,若匹配成功,确定系统固件数据通过安全校验,从而在固件校验过程中,更容易识别固件中部分信息被篡改的情况,提高了固件校验过程的准确性,使得服务器系统的启动过程更为安全。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图进行简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为相关技术中的服务器系统引导启动的示意图;
图2为本发明提供的固件校验方法的流程示意图;
图3为本发明提供的系统启动方法的流程示意图;
图4为本发明提供的系统启动方法的整体流程示意图;
图5为本发明提供的固件校验装置的结构示意图;
图6为本发明提供的系统启动装置的结构示意图;
图7为本发明提供的基于平台固件保护恢复芯片的服务器系统安全启动的系统架构示意图;
图8为本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在服务器系统的开机过程中,为保证信息数据安全,基于基本输入输出系统(Basic Input Output System,简称BIOS),需要在服务器系统启动完成前,对平台硬件组件进行初始化校验与检测,从而引导进入系统界面,完成开机过程,其中,平台硬件组件包括基板管理控制器(Baseboard Management Controller,简称BMC)、平台路径控制器(Platform Controller Hub,简称PCH)和中央处理器(Central Processing Unit,简称CPU)等。
图1为相关技术中的服务器系统引导启动的示意图,可参考图1所示,在相关技术方案中,在系统引导启动过程中,进行系统启动权限校验,例如,使用密码完成用户权限校验,或通过生物特征匹配用户权限,此类方法需要在固件引导完成之后,以进行用户权限的验证,无法保证系统免受未经授权引导的危害。
另一方面,在开机后进入预启动环境后,该环境中虽然将固件中的密匙与储存在非易失性存储器(NVM)中的数字签名进行验证,并在验证通过后进入系统引导过程。数字签名作为一种用于验证数据完整性和真实性的技术,通过使用私钥对数据进行签名,接收者可以使用公钥解密签名并验证其有效性。如果签名验证成功,表明数据没有被篡改过。然而,数字签名验证只能检测到整个数据被篡改或签名本身被伪造的情况,如果固件中只有少量数据被篡改,而且篡改是在不影响数字签名的情况下进行的,那么数字签名验证可能无法发现这些变化。一种常见的方法是使用哈希函数对整个固件进行哈希处理,然后将哈希值与数字签名一起传输,接收者可以重新计算哈希值,并使用公钥验证签名以确保两者匹配。但是,如果只有一小部分数据被篡改,而这部分数据在重新计算哈希值时没有被包括进去,那么验证仍然会成功,因为数字签名与原始哈希值相匹配。因此,在数字签名验证中,个别数据的篡改可能很难被察觉,仅仅比对固件密匙,将难以识别到,从而进入未经授权的非法引导过程,危害服务器系统安全。
图2为本发明提供的固件校验方法的流程示意图,如图2所示,本发明提供了一种固件校验方法,包括:
步骤201,在确定目标平台硬件组件处于复位状态或断电状态的情况下,获取所述目标平台硬件组件对应的目标系统固件数据,其中,所述目标系统固件数据为待进行安全校验的系统固件数据,所述复位状态或所述断电状态是基于平台固件保护恢复芯片对所述目标平台硬件组件的控制结果确定的。
在本发明中,获取服务器系统中各个平台硬件组件的系统固件数据。在一实施例中,针对服务器系统的启动过程,当平台硬件组件处于复位状态时,可通过平台固件保护恢复(Platform Firmware Resilience,简称PFR)复杂可编程逻辑器件(ComplexProgrammable Logic Device,简称CPLD),即PFR芯片,通过PFR芯片对平台硬件组件进行控制,使其处于复位状态或断电状态,进而在该状态下获取平台硬件组件的系统固件数据,并暂存至相应的存储区域,从而从该存储区域获取到目标系统固件数据,以进行后续的固件校验。需要说明的是,系统固件数据作为一种二进制文件,其中包含了程序代码、数据和配置信息等内容,在实际使用中,可以通过读取文件头部信息或者设置一个合适的缓冲区大小来获取固件文件的长度,并根据具体需求进行处理。
步骤202,对所述目标系统固件数据进行数据位混淆处理,得到混淆后的系统固件数据。
数据位混淆是一种隐私和安全保护技术,在本发明中,可在目标系统固件数据中特定位置插入伪随机数据、随机数或错误比特位,以干扰对数据的分析和还原,这样可以增加数据的随机性,使其更难以被理解和解码。优选地,在一实施例中,通过对目标系统固件数据进行移位、取反和字符串加法操作,可快速改变固件数据的数据位,提高固件文件的安全性。经过数据位混淆处理后,得到了混淆后的系统固件数据,这些数据包含了经过混淆处理的信息,使得原始数据的结构和内容变得不可直接识别和还原。
步骤203,对所述混淆后的系统固件数据进行哈希运算处理,得到所述目标系统固件数据对应的哈希密匙。
在本发明中,首先需要选择适用的哈希算法,如信息摘要算法5(Message DigestAlgorithm 5,简称MD5)。优选地,在一实施例中,将MD5算法和安全散列算法256(SecureHash Algorithm 256,简称SHA256)进行结合,通过哈希算法会对混淆后的系统固件数据进行出来,生成一个固定长度的哈希值,这个哈希值可以看作是目标系统固件数据的哈希密钥。哈希值具有唯一性和不可逆性,即不同的数据会生成不同的哈希值,并且无法从哈希值反推出原始数据。
步骤204,将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述数字签名是由原始系统固件数据在经过所述数据位混淆处理和所述哈希运算处理后得到的。
在本发明中,预先构建一个数字签名库,该数字签名库中包含了一系列已经经过数字签名处理的原始系统固件数据及其对应的数字签名,其中,每个数字签名都是通过数据位混淆处理和哈希运算处理后得到的,即与上述目标系统固件数据的数据为混淆处理过程以及哈希运算处理过程相同。需要说明的是,原始系统固件数据为平台硬件组件的固件出厂数据,为确定未被篡改的系统固件数据。
具体地,从数字签名库中提取与目标系统固件数据对应的数字签名并进行比较,如果两者匹配成功,即数字签名与哈希密匙一致,表示目标系统固件数据没有被篡改或损坏,并且可以信任其来源和内容,那么可以确定目标系统固件数据通过了安全校验,具有完整性和真实性。如果数字签名与哈希密钥不匹配,表示目标系统固件数据可能遭到篡改或损坏,或者其来源不可信。在这种情况下,需要进一步进行检查和处理,以确保系统的安全性。
数字签名的作用是验证数据的完整性和真实性,通过使用数字签名,若目标系统固件数据存在被篡改的情况,在其经过数据位混淆处理和哈希运算处理后,与预先存储的数字签名之间将会存在较大的区别,从而更容易识别固件数据篡改。
本发明提供的固件校验方法,通过对待进行安全校验的系统固件数据依次进行数据位混淆处理和哈希运算处理,将得到的哈希密匙和数字签名库中由原始系统固件数据在前期经过数据位混淆处理和哈希运算处理得到的数字签名进行匹配,若匹配成功,确定系统固件数据通过安全校验,从而在固件校验过程中,更容易识别固件中部分信息被篡改的情况,提高了固件校验过程的准确性,使得服务器系统的启动过程更为安全。
在上述实施例的基础上,所述对所述目标系统固件数据进行数据位混淆处理,得到混淆后的系统固件数据,包括:
接收第一输入,所述第一输入包括对所述目标系统固件数据进行数据位混淆处理的操作;
响应于所述第一输入,生成对应的私人密匙,并通过所述私人密匙对所述目标系统固件数据进行数据位移位处理、取反处理和字符串加法运算处理,得到所述混淆后的系统固件数据。
在本发明中,使用私人密匙对目标系统固件数据进行混淆,进一步提升安全性。在非对称加密算法中,使用私人密匙进行加密的数据只能使用相应的公钥进行解密,以保护固件数据的完整性和机密性,提供了更高的安全性和保护级别,使得数据更难以被攻击者获取或篡改。
具体地,在上述实施例的基础上,所述私人密匙对应的数据位混淆处理步骤为:
对所述目标系统固件数据的数据位进行移位处理,得到移位处理后的系统固件数据;
基于所述移位处理对应的数据位移动方向,对所述移位处理后的系统固件数据进行补0处理,并对补0的数据位进行取反处理,得到取反处理后的系统固件数据;
将所述取反处理后的系统固件数据与预设字符串进行加法运行处理,得到所述混淆后的系统固件数据。
在本发明中,首先生成一个私人密匙,该私人密匙用于对固件数据进行数据位混淆处理,通过移位、取反和加法操作迅速改变固件文件的数据位,其中,私人密匙可以是一串随机的数字或字符串。
进一步地,将目标系统固件数据进行数据位移位操作,将各个数据位向左或向右移动指定的位数。例如,可以将每个字节的二进制表示向右移位5位。由于移位操作会损失数据位,因此,若移位方向为向右移位,则移位过程中需要将高位(左边)补0;若移位方向为左移位,则移位过程中需要将低位(右边)补0,进而对补0的数字位进行取反操作,例如,向右移位5位,则高位补充5个0,再将这5个0取反,变成5个1。
对于移位、取反后的系统固件数据,再对其进行加法操作,设置字符串(即密码,包括数字和字母),并基于该字符串完成加法运算,例如,以二进制做表示,10100011(假设为FW文件)+1011(预设字符串)=运算后的数据10101110,其中,预设字符串可以是数字、字母(均转化为二进制数据)。本发明使用私人密匙对取反后的数据进行字符串加法操作,将数据与私人密匙中对应的字符串进行逐位相加,以增加破解难度。需要说明的是,本发明通过构建私人密匙来实现数据位混淆过程,例如,私人密匙可以写为00000101(移位)+1011(加法),其中,移位数据位(占据8个字节,二进制)最多移位127位,私人密匙的第一位为0表示右移,1表示左移;在进行移位取反后,将数据与字符串1011进行加法运算,本发明对于加法部分密匙的长度不作限制。需要说明的是,在本发明中,对于同一数字签名库中的数字签名,前期需要进行同样的数据位混淆处理,即在服务器系统启动过程时,不同类型的平台硬件组件也进行与自身对应数字签名同样的数据位混淆处理,如相同的数据位移位方式和预设字符串。
在本发明中,移位、取法和字符串加法操作所需的私人密匙可通过用户端自行管理(该过程可逆);后续哈希计算过程由哈希函数得出,该过程不可逆。
在上述实施例的基础上,所述对所述混淆后的系统固件数据进行哈希运算处理,得到所述目标系统固件数据对应的哈希密匙,包括:
基于信息摘要算法5,对所述混淆后的系统固件数据进行第一级哈希运算处理,得到第一哈希值,所述第一哈希值为所述混淆后的系统固件数据对应的128位哈希值;
所述将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,包括:
将所述第一哈希值与所述数字签名库中的第一数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述第一数字签名是基于信息摘要算法5,对经过所述数据位混淆处理后的所述原始系统固件数据进行所述第一级哈希运算处理后得到的。
在本发明中,获取混淆后的系统固件数据后,使用MD5算法对混淆后的系统固件数据进行哈希运算,从而将数据转换为一个具有固定长度(128位)的哈希值。MD5算法以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成。对于数据样本较大且安全等级较低的服务器系统启动场景,本发明采用MD5算法对混淆后的系统固件数据进行哈希值计算,同时,数字签名库中也在前期通过相同的MD5算法对原始固件数据(需要先进行数据位混淆处理)进行哈希值计算,从而实现快速计算,提高数字签名匹配效率,进而使得服务器系统快速进入启动状态。
本发明在进行第一级哈希计算的过程中,对原始数据(即目标系统固件数据)进行移位取反,可以迅速改变数据结构,但对数据的混淆功能有限;然后,使用字符串加法操作进行混淆扩散,可以保证哈希计算过程中混淆参数的灵活调整,从而获得较好的哈希效果,即数据的不可逆性。
在上述实施例的基础上,在所述基于信息摘要算法5,对所述混淆后的系统固件数据进行哈希运算处理,得到第一哈希值之后,所述方法还包括:
基于安全散列算法256,根据所述目标系统固件数据的数据长度和所述第一哈希值进行第二级哈希运算处理,得到第二哈希值,所述第二哈希值为所述混淆后的系统固件数据对应的256位哈希根密匙;
所述将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,包括:
将所述第二哈希值与所述数字签名库中的第二数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述第二数字签名是基于安全散列算法256,对经过所述数据位混淆处理后的所述原始系统固件数据依次进行所述第一级哈希运算处理和所述第二级哈希运算处理后得到的。
在本发明中,为了进一步提高服务器系统在启动过程中的安全性,在上述实施例的基础,通过SHA256进行第二级哈希运算处理。具体地,首先,将原始数据长度(即目标系统固件数据的数据长度)和128位哈希密匙(即第一哈希值)结合起来作为输入,采用SHA256哈希算法进行哈希计算,生成一个由64个十六进制字符组成的256位哈希值,即第二哈希值。进一步地,将第二哈希值与数字签名库中对应的数字签名(即第二数字签名)进行匹配,若匹配成功,则判定目标系统固件数据的安全校验通过。需要说明的是,在本发明中,数字签名库中的第二数字签名在前期也经过相同的数据位混淆处理和两次哈希运算处理后得到的。本发明采用两级签名的加密方式,在兼顾算法速度的同时,使得密匙管理更加灵活,保证数据结构的安全。
在上述实施例的基础上,所述通过所述私人密匙对所述目标系统固件数据进行数据位移位处理、取反处理和字符串加法运算处理,包括:
获取所述私人密匙中对应的数据位移位位数;
根据数据位移位位数和预设最大移位位数,对所述私人密匙进行判断,若根据判断结果,确定所述私人密匙为有效密匙,通过所述私人密匙对所述目标系统固件数据进行数据位移位处理、取反处理和字符串加法运算处理。
在本发明中,私人密匙可通过用户端自行定义,为了保障固件校验过程的稳定性,需要对私人密匙中的数据位移位方式进行判断,以保证私人密匙的合理性,使得目标系统固件数据可以顺利完成数据位移位过程。在本发明中,可通过判断私人密匙中的数据位移位位数,如向左移10位,与预设最大移位位数(如最大移位127位)进行比较,具体地,所述根据数据位移位位数和预设最大移位位数,对所述私人密匙进行判断,包括:
判断所述数据位移位位数是否大于所述预设最大移位位数,若小于或等于所述预设最大移位位数,判断获知所述私人密匙为有效密匙,并通过判定为所述有效密匙的所述私人密匙,对所述目标系统固件数据进行数据位移位处理、取反处理和字符串加法运算处理,得到所述混淆后的系统固件数据。
在本发明中,在确定私人密匙中的数据位移位位数不大于预设最大移位位数时,判定当前私人密匙为有效密匙,进而可通过该私人密匙完成对目标系统固件数据的数据位混淆处理。
在上述实施例的基础上,所述方法还包括:
若所述数据位移位位数大于所述预设最大移位位数,判断获知所述私人密匙为无效密匙,并生成对应的数据位混淆处理错误提示信息。
在本发明中,对于私人密匙设置不合理的情况,即数据位移位位数超过了预设最大移位位数,则生成相应的错误提示信息。需要说明的是,在本发明中,私人密匙的设置可在数字签名生成时设置,即为了保证数字签名和后续对应的系统固件数据采用相同的数据位混淆方式,在构建数字签名库时也需要数字签名采用的数据位移位位数进行判断。
在上述实施例的基础上,在所述将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验之后,所述方法还包括:
基于安全校验通过后的所述目标系统固件数据,驱动所述目标平台硬件组件启动。
在本发明中,对于服务器系统的启动过程,为了防止篡改后的固件造成安全风险,需要在服务器系统未通过固件数据引导启动的情况下,对系统固件数据进行校验。在一实施例中,基于服务器系统的PFR功能,将平台硬件组件置于复位状态或断电状态后,此时服务器系统处于预启动环境,进而再对各个平台硬件组件的系统固件数据进行固件校验,在确定所有固件校验通过后,再通过系统固件数据驱动对应的平台硬件组件,使得服务器系统启动,从而提高了服务器系统启动过程的安全性。
在上述实施例的基础上,若所述将所述哈希密匙和数字签名库中的数字签名未匹配成功,所述方法还包括:
获取所述目标系统固件数据对应的固件备份数据,所述固件备份数据与所述目标系统固件数据存储在不同的数据存储区域;
对所述固件备份数据依次进行所述数据位混淆处理和所述哈希运算处理,得到所述固件备份数据对应的哈希密匙;
将所述固件备份数据对应的哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述固件备份数据通过安全校验,并基于安全校验通过后的所述固件备份数据,驱动所述目标平台硬件组件启动;
若匹配失败,生成对应的平台硬件组件启动失败提示信息。
在本发明中,当存在部分平台硬件组件的系统固件数据未通过固件校验时,此时从存储备份数据的数据存储区域,获取系统固件数据的固件备份数据,进而再对固件备份数据进行上述实施例中的数据位混淆处理和哈希运算处理,并根据处理结果与数字签名的匹配结果,确定是否可通过该固件备份数据驱动平台硬件组件启动,若匹配失败,则会生成相应的失败提示信息。本发明采用主备固件数据进行服务器系统启动,在保证服务器系统启动过程安全性的同时,也提高了服务器系统的稳定性。
在上述实施例的基础上,所述方法还包括:
对所述待进行安全校验的系统固件数据进行数据预处理,得到所述目标系统固件数据;
对所述原始系统固件数据进行所述数据预处理,以通过数据预处理后的原始系统固件获取对应的数字签名;
其中,所述数据预处理至少包括数据清洗处理、数据标准化处理和去噪处理。
在本发明中,在生成数字签名时,可对原始系统固件数据进行预处理,如,去除不必要的字符、空白或其他干扰项;将数据转换为标准格式或单位,以便进行更好的比较和处理,例如,将字符串类型的数据转换为统一的大小写格式、日期时间格式的规范化等。相应地,在后续的固件校验过程时,对待进行安全校验的系统固件数据进行相应的数据预处理,有助于提高哈希算法的效果和准确性。
图3为本发明提供的系统启动方法的流程示意图,如图3所示,本发明通过了一种基于上述各实施例所述的固件校验方法的系统启动方法,应用于平台固件保护恢复芯片,包括:
步骤301,构建待启动的服务器系统的预启动环境,其中,所述服务器系统中各个平台硬件组件的数据存储区域存储有对应的系统固件数据,且在所述预启动环境中,所述平台固件保护恢复芯片与各个所述数据存储区域建立连接。
在本发明中,基于服务器系统的PFR功能,在正常开机过程中引入预启动环境(即T-1阶段),在该预启动环境中,PFR CPLD(即平台固件保护恢复芯片)可通过多路选择开关(Multiplexer,简称MUX)获取全部平台硬件组件的FLASH所有权(如BIOS FLASH和BMCFLASH),并同步实现各个平台硬件组件(如BMC和PCH)与其对应的系统固件数据的物理隔离。
步骤302,将第一初始化信号发送至各个所述平台硬件组件,其中,所述第一初始化信号用于控制所述平台硬件组件进入复位状态或断电状态。
在本发明中,平台固件保护恢复芯片在预启动环境下与各个平台硬件组件建立的连接,通过发送第一初始化信号,将BMC、PCH、CPU等平台硬件组件保持在复位状态或断电状态。
步骤303,在确定各个所述平台硬件组件处于所述复位状态或所述断电状态的情况下,获取各个所述平台硬件组件对应的系统固件数据。
在本发明中,当服务器系统中各个平台硬件组件均处于复位状态或断电状态后,通过串行外设接口(Serial Peripheral Interface,简称SPI)总线读取所有平台硬件组件的系统固件数据,并将这些系统固件数据暂存于PFR FLASH的CFM(Configuration FlashMemory)中。
步骤304,获取各个所述系统固件数据的安全校验结果,并对所述安全校验结果进行判断,若判断获知所有所述系统固件数据通过安全校验,将第二初始化信号发送至各个所述平台硬件组件,其中,所述第二初始化信号用于控制所述平台硬件组件从所述复位状态或所述断电状态进入启动状态;
步骤305,在确定所有所述平台硬件组件处于所述启动状态后,构建正常启动环境,并基于通过安全校验的所述系统固件数据,启动所述服务器系统。
在本发明中,通过上述实施例中的固件校验方法,对存储于PFR FLASH的CFM中的系统固件数据进行固件校验,当所有系统固件数据均通过固件验证后,PFR CPLD生成一个用于释放复位状态或恢复上电状态的信号,使得各个平台硬件组件进行启动状态,进而使得服务器系统进入正常启动环境(即T0阶段),完成服务器系统启动。
本发明提供的系统启动方法,通过对待进行安全校验的系统固件数据依次进行数据位混淆处理和哈希运算处理,将得到的哈希密匙和数字签名库中由原始系统固件数据在前期经过数据位混淆处理和哈希运算处理得到的数字签名进行匹配,若匹配成功,确定系统固件数据通过安全校验,从而在固件校验过程中,更容易识别固件中部分信息被篡改的情况,提高了固件校验过程的准确性,使得服务器系统的启动过程更为安全。
在上述实施例的基础上,所述平台固件保护恢复芯片通过通用输入输出接口与各个所述平台硬件组件建立连接,并通过多路选择开关和串行外设接口控制器,获取各个所述平台硬件组件的数据储存区域中的所述系统固件数据,其中,所述平台固件保护恢复芯片将获取到的所述系统固件数据存储至数据暂存区域。
在本发明中,平台固件保护恢复芯片通过通用输入输出接口(General PurposeInput Output,简称GPIO)与各个平台硬件组件建立连接,这些平台硬件组件可以包括CPU、存储器、外设等。同时,平台固件保护恢复芯片通过多路选择开关和串行外设接口控制器(SPI Controller)来控制数据的传输和选择,其中,多路选择开关可以用来切换平台固件保护恢复芯片与不同平台硬件组件之间的连接,以便获取需要的系统固件数据(可根据服务器启动需求,仅对部分固件数据进行校验),SPI Controller用于与平台硬件组件进行串行通信,以读取数据。
在预启动环境下,平台固件保护恢复芯片可以从各个平台硬件组件的数据储存区域中获取系统固件数据,这些数据储存区域可以是各个平台硬件组件上的闪存、EEPROM、NVRAM等,通过逐个访问或并行访问这些硬件组件,平台固件保护恢复芯片可以收集到完整的系统固件数据。进一步地,获取到的系统固件数据会被平台固件保护恢复芯片存储至数据暂存区域,数据暂存区域可以是芯片内部的寄存器、缓存或者外部的RAM等,以进行后续的安全校验、恢复或其他操作。
本发明通过平台固件保护恢复芯片与各个平台硬件组件的连接和控制,能够有效地获取系统固件数据,并将其存储至数据暂存区域,为后续的固件校验和恢复提供必要的基础。
在上述实施例的基础上,所述获取各个所述系统固件数据的安全校验结果,并对所述安全校验结果进行判断,包括:
若判断获知任意一个所述系统固件数据未通过安全校验,获取未通过安全校验的系统固件数据对应的固件备份数据;
将所述固件备份数据写入目标数据存储区域,其中,所述目标数据存储区域所述未通过安全校验的系统固件数据的数据存储区域;
对所述固件备份数据和其它系统固件数据重新执行固件数据校验,若全部通过安全校验,则生成所述第二初始化信号,其中,所述其它系统固件数据为除所述未通过安全校验的系统固件数据和对应的所述固件备份数据以外的系统固件数据。
在本发明中,在确定所有待进行固件校验的系统固件数据无异常后,释放平台硬件组件复位,进入正常启动阶段(T0阶段)。对于某个系统固件数据未通过安全校验的情况,需要获取该系统固件数据对应的固件备份数据,进而再对这个固件备份数据(同样进行上述实施例的数据位混淆处理和哈希运算处理)和其它系统固件数据再次进行固件数据校验,其中,固件数据校验所需的数字签名存储在UFM(User Flash Memory)中。在一实施例中,为了提高固件校验效率,只需再对固件备份数据再次进行固件校验。
在上述实施例的基础上,所述方法还包括:
在所述服务器系统的当前启动过程中,判断所述固件数据校验的重新执行的次数是否大于预设校验次数,若大于所述预设校验次数,生成系统关闭信号,以通过所述系统关闭信号控制所述服务器系统进行关机状态。
在本发明中,若固件校验失败,平台固件保护恢复芯片将存储固件代码的PFRFLASH闪存中的recovery区域的数据写入到active区域,计数+1,读取active区域中新写入的数据,并对该数据进行固件校验,若固件校验失败3次,系统进入关机状态,当达到预设次数时系统自动关闭,使得在服务器系统启动过程中防止可疑文件在系统中继续运行,可以保障服务器系统的安全性和稳定性,同时降低了维护成本和风险。其中,active区域中存储的是未经压缩的、直接执行的固件数据,也为需进行固件校验的系统固件数据;recovery区域中存储的是压缩过的备份文件(存在多个版本),仅在active区域发生损坏时使用。
图4为本发明提供的系统启动方法的整体流程示意图,可参考图4所示,首先,通过引导加载程序,直接访问存储器模块,启动并初始化PFR CPLD,进入预启动环境(即T-1阶段);在T-1阶段,PFR CPLD通过GPIO信号与BMC/PCH等主要平台组件建立连接,并将其置于复位或断电状态。
进一步地,PFR CPLD通过MUX获取所有SPI总线控制权,并在物理意义上实现BMC/PCH与其系统固件数据的隔离;同时,PFR CPLD通过SPI总线读取所有平台固件信息,并将其暂存于PFR FLASH的CFM部分,为后续的系统固件校验提供待校验固件数据。
而在固件校验过程中,基于上述实施例中的固件校验方法,从CFM中读取系统固件数据(包括平台组件类型和固件代码),然后进行数据位移位取反以及字符串加法操作后,再对得到的混淆扩散后的数据进行MD5哈希计算,获取128位哈希密匙;进一步地,获取平台固件数据长度,结合上一步骤得到的128位哈希密匙,进行SHA256哈希计算,获取256位哈希根密匙;接着,将上一步计算得到的每一个平台硬件组件对应的256位哈希根密匙,与存储在UFM中每一个平台硬件组件对应的数字签名进行校验、匹配。
若校验成功,则PFR CPLD释放BMC/PCH等主要平台硬件组件的复位,进入正常开机阶段(即T0阶段)。若校验失败,则将存储固件代码FLASH闪存中的recovery区域数据写入到active区域,计数+1,重复上述的固件校验过程,若校验失败3次,系统进入关机状态。
下面对本发明提供的固件校验装置进行描述,下文描述的固件校验装置与上文描述的固件校验方法可相互对应参照。
图5为本发明提供的固件校验装置的结构示意图,如图5所示,本发明提供了一种固件校验装置,包括固件数据获取单元501、数据混淆单元502、密匙加密单元503和密匙比对单元504,其中,固件数据获取单元501用于在确定目标平台硬件组件处于复位状态或断电状态的情况下,获取所述目标平台硬件组件对应的目标系统固件数据,其中,所述目标系统固件数据为待进行安全校验的系统固件数据,所述复位状态或所述断电状态是基于平台固件保护恢复芯片对所述目标平台硬件组件的控制结果确定的;数据混淆单元502对所述目标系统固件数据进行数据位混淆处理,得到混淆后的系统固件数据;密匙加密单元503用于对所述混淆后的系统固件数据进行哈希运算处理,得到所述目标系统固件数据对应的哈希密匙;密匙比对单元504用于将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述数字签名是由原始系统固件数据在经过所述数据位混淆处理和所述哈希运算处理后得到的。
本发明提供的固件校验装置,通过对待进行安全校验的系统固件数据依次进行数据位混淆处理和哈希运算处理,将得到的哈希密匙和数字签名库中由原始系统固件数据在前期经过数据位混淆处理和哈希运算处理得到的数字签名进行匹配,若匹配成功,确定系统固件数据通过安全校验,从而在固件校验过程中,更容易识别固件中部分信息被篡改的情况,提高了固件校验过程的准确性,使得服务器系统的启动过程更为安全。
下面对本发明提供的系统启动装置进行描述,下文描述的系统启动装置与上文描述的系统启动方法可相互对应参照。
图6为本发明提供的系统启动装置的结构示意图,如图6所示,本发明提供了一种基于上述实施例所述的固件校验装置的系统启动装置,包括预启动模块601、第一处理模块602、交互模块603、第二处理模块604和系统启动模块605,其中,预启动模块601用于构建待启动的服务器系统的预启动环境,其中,所述服务器系统中各个平台硬件组件的数据储存区域存储有对应的系统固件数据,且在所述预启动环境中,所述平台固件保护恢复芯片与各个所述数据存储区域建立连接;第一处理模块602用于将第一初始化信号发送至各个所述平台硬件组件,其中,所述第一初始化信号用于控制所述平台硬件组件进入复位状态或断电状态;交互模块603用于在确定各个所述平台硬件组件处于所述复位状态或所述断电状态的情况下,获取各个所述平台硬件组件对应的系统固件数据;第二处理模块604用于获取各个所述系统固件数据的安全校验结果,并对所述安全校验结果进行判断,若判断获知所有所述系统固件数据通过安全校验,将第二初始化信号发送至各个所述平台硬件组件,其中,所述第二初始化信号用于控制所述平台硬件组件从所述复位状态或所述断电状态进入启动状态;系统启动模块605用于在确定所有所述平台硬件组件处于所述启动状态后,构建正常启动环境,并基于通过安全校验的所述系统固件数据,启动所述服务器系统。
本发明提供的系统启动装置,通过对待进行安全校验的系统固件数据依次进行数据位混淆处理和哈希运算处理,将得到的哈希密匙和数字签名库中由原始系统固件数据在前期经过数据位混淆处理和哈希运算处理得到的数字签名进行匹配,若匹配成功,确定系统固件数据通过安全校验,从而在固件校验过程中,更容易识别固件中部分信息被篡改的情况,提高了固件校验过程的准确性,使得服务器系统的启动过程更为安全。
本发明提供的装置是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
本发明还提供一种服务器系统,包括上述各实施例所述的固件校验装置、系统启动装置以及多个平台硬件组件,其中,所述平台硬件组件通过通用输入输出接口与所述系统启动装置建立连接;所述系统启动装置控制所述平台硬件组件进行复位状态或断电状态后,用于通过多路选择开关和串行外设接口控制器,获取所述平台硬件组件的数据储存区域中的系统固件数据,并在确定所述系统固件数据通过安全校验后,对所述服务器系统执行启动操作;所述固件数据校验装置,用于对所述系统启动装置获取到的所述系统固件数据进行安全校验。
图7为本发明提供的基于平台固件保护恢复芯片的服务器系统安全启动的系统架构示意图,可参考图7所示,在本发明中,系统启动装置主要是由PFR CPLD(平台固件保护恢复芯片)构成,其主要硬件模块包括:处理器(如NIOS II processor),用以执行和计算固件校验系统的基本指令;密码编译加速器(Cryptographic Accelerator)用以为SPI区域固件认证所需的哈希计算提供硬件加速;通用输入输出接口(GPIO)与各种平台硬件组件进行交互,用以控制CPU、PCH和BMC等电源和复位,如发送复位信号BMC_RST;串行外设接口控制器(SPI Controller),用以实现PFR CPLD对各种平台硬件组件的FLASH(闪存)的直接访问。
固件校验装置的主要包括:数据获取单元(即固件数据获取单元),用于获取固件信息,为哈希计算提供原始数据(待校验的系统固件数据)。在一实施例中,哈希计算单元中的数据混淆功能可单独作为一个单元(即数据混淆单元)进行数据位混淆处理,而MD5哈希计算功能可以与密匙加密单元组成为一个单元进行哈希运算处理;在本实施例中,该哈希计算单元对原始数据部分移位取反后进行加法操作,而后进行MD5哈希计算,获取128位哈希密匙;密匙加密单元,用于获取系统固件数据的数据长度,并结合得到的128位哈希密匙,采用SHA256哈希计算,获取256位哈希根密匙,在一实施例中,若上述哈希计算单元仅进行数据位混淆,此时,密匙加密单元还需对数据位混淆后的数据先进行MD5算法的哈希运算处理,再通过SHA256算法进行哈希计算。密匙比对单元,用于将获取的256位哈希根密匙,与储存在平台固件保护恢复芯片闪存的UFM中的数字签名进行校验、匹配,从而得到固件校验结果。进一步地,平台固件保护恢复芯片在确定各个系统固件数据的校验结果后,通过GPIO信号,释放BMC和PCH等主要平台硬件组件的复位或断电状态,使得服务器系统进入正常启动阶段(T0阶段)。需要说明的是,在本发明中,PFR CPLD通过多路选择开关(即MUX)和串行外设接口控制器与各个平台硬件组件建立连接,其中,PFR CPLD通过发送片选信号(SPI_CS_n)实现与对应的平台硬件组件建立连接。
本发明提供的服务器系统,通过对待进行安全校验的系统固件数据依次进行数据位混淆处理和哈希运算处理,将得到的哈希密匙和数字签名库中由原始系统固件数据在前期经过数据位混淆处理和哈希运算处理得到的数字签名进行匹配,若匹配成功,确定系统固件数据通过安全校验,从而在固件校验过程中,更容易识别固件中部分信息被篡改的情况,提高了固件校验过程的准确性,使得服务器系统的启动过程更为安全。
图8为本发明提供的电子设备的结构示意图,如图8所示,该电子设备可以包括:处理器(Processor)801、通信接口(Communications Interface)802、存储器(Memory)803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信。处理器801可以调用存储器803中的逻辑指令,以执行固件校验方法,该方法包括:在确定目标平台硬件组件处于复位状态或断电状态的情况下,获取所述目标平台硬件组件对应的目标系统固件数据,其中,所述目标系统固件数据为待进行安全校验的系统固件数据,所述复位状态或所述断电状态是基于平台固件保护恢复芯片对所述目标平台硬件组件的控制结果确定的;对所述目标系统固件数据进行数据位混淆处理,得到混淆后的系统固件数据;对所述混淆后的系统固件数据进行哈希运算处理,得到所述目标系统固件数据对应的哈希密匙;将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述数字签名是由原始系统固件数据在经过所述数据位混淆处理和所述哈希运算处理后得到的;
或,执行系统启动方法,该方法包括:构建待启动的服务器系统的预启动环境,其中,所述服务器系统中各个平台硬件组件的数据存储区域存储有对应的系统固件数据,且在所述预启动环境中,所述平台固件保护恢复芯片与各个所述数据存储区域建立连接;将第一初始化信号发送至各个所述平台硬件组件,其中,所述第一初始化信号用于控制所述平台硬件组件进入复位状态或断电状态;在确定各个所述平台硬件组件处于所述复位状态或所述断电状态的情况下,获取各个所述平台硬件组件对应的系统固件数据;获取各个所述系统固件数据的安全校验结果,并对所述安全校验结果进行判断,若判断获知所有所述系统固件数据通过安全校验,将第二初始化信号发送至各个所述平台硬件组件,其中,所述第二初始化信号用于控制所述平台硬件组件从所述复位状态或所述断电状态进入启动状态;在确定所有所述平台硬件组件处于所述启动状态后,构建正常启动环境,并基于通过安全校验的所述系统固件数据,启动所述服务器系统。
此外,上述的存储器803中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的固件校验方法,该方法包括:在确定目标平台硬件组件处于复位状态或断电状态的情况下,获取所述目标平台硬件组件对应的目标系统固件数据,其中,所述目标系统固件数据为待进行安全校验的系统固件数据,所述复位状态或所述断电状态是基于平台固件保护恢复芯片对所述目标平台硬件组件的控制结果确定的;对所述目标系统固件数据进行数据位混淆处理,得到混淆后的系统固件数据;对所述混淆后的系统固件数据进行哈希运算处理,得到所述目标系统固件数据对应的哈希密匙;将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述数字签名是由原始系统固件数据在经过所述数据位混淆处理和所述哈希运算处理后得到的;
或,执行上述各方法所提供的系统启动方法,该方法包括:构建待启动的服务器系统的预启动环境,其中,所述服务器系统中各个平台硬件组件的数据存储区域存储有对应的系统固件数据,且在所述预启动环境中,所述平台固件保护恢复芯片与各个所述数据存储区域建立连接;将第一初始化信号发送至各个所述平台硬件组件,其中,所述第一初始化信号用于控制所述平台硬件组件进入复位状态或断电状态;在确定各个所述平台硬件组件处于所述复位状态或所述断电状态的情况下,获取各个所述平台硬件组件对应的系统固件数据;获取各个所述系统固件数据的安全校验结果,并对所述安全校验结果进行判断,若判断获知所有所述系统固件数据通过安全校验,将第二初始化信号发送至各个所述平台硬件组件,其中,所述第二初始化信号用于控制所述平台硬件组件从所述复位状态或所述断电状态进入启动状态;在确定所有所述平台硬件组件处于所述启动状态后,构建正常启动环境,并基于通过安全校验的所述系统固件数据,启动所述服务器系统。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的固件校验方法,该方法包括:在确定目标平台硬件组件处于复位状态或断电状态的情况下,获取所述目标平台硬件组件对应的目标系统固件数据,其中,所述目标系统固件数据为待进行安全校验的系统固件数据,所述复位状态或所述断电状态是基于平台固件保护恢复芯片对所述目标平台硬件组件的控制结果确定的;对所述目标系统固件数据进行数据位混淆处理,得到混淆后的系统固件数据;对所述混淆后的系统固件数据进行哈希运算处理,得到所述目标系统固件数据对应的哈希密匙;将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述数字签名是由原始系统固件数据在经过所述数据位混淆处理和所述哈希运算处理后得到的;
或,执行上述各实施例提供的系统启动方法,该方法包括:构建待启动的服务器系统的预启动环境,其中,所述服务器系统中各个平台硬件组件的数据存储区域存储有对应的系统固件数据,且在所述预启动环境中,所述平台固件保护恢复芯片与各个所述数据存储区域建立连接;将第一初始化信号发送至各个所述平台硬件组件,其中,所述第一初始化信号用于控制所述平台硬件组件进入复位状态或断电状态;在确定各个所述平台硬件组件处于所述复位状态或所述断电状态的情况下,获取各个所述平台硬件组件对应的系统固件数据;获取各个所述系统固件数据的安全校验结果,并对所述安全校验结果进行判断,若判断获知所有所述系统固件数据通过安全校验,将第二初始化信号发送至各个所述平台硬件组件,其中,所述第二初始化信号用于控制所述平台硬件组件从所述复位状态或所述断电状态进入启动状态;在确定所有所述平台硬件组件处于所述启动状态后,构建正常启动环境,并基于通过安全校验的所述系统固件数据,启动所述服务器系统。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (20)

1.一种固件校验方法,其特征在于,包括:
在确定目标平台硬件组件处于复位状态或断电状态的情况下,获取所述目标平台硬件组件对应的目标系统固件数据,其中,所述目标系统固件数据为待进行安全校验的系统固件数据,所述复位状态或所述断电状态是基于平台固件保护恢复芯片对所述目标平台硬件组件的控制结果确定的;
对所述目标系统固件数据进行数据位混淆处理,得到混淆后的系统固件数据;
对所述混淆后的系统固件数据进行哈希运算处理,得到所述目标系统固件数据对应的哈希密匙;
将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述数字签名是由原始系统固件数据在经过所述数据位混淆处理和所述哈希运算处理后得到的。
2.根据权利要求1所述的固件校验方法,其特征在于,所述对所述目标系统固件数据进行数据位混淆处理,得到混淆后的系统固件数据,包括:
接收第一输入,所述第一输入包括对所述目标系统固件数据进行数据位混淆处理的操作;
响应于所述第一输入,生成对应的私人密匙,并通过所述私人密匙对所述目标系统固件数据进行数据位移位处理、取反处理和字符串加法运算处理,得到所述混淆后的系统固件数据。
3.根据权利要求1所述的固件校验方法,其特征在于,所述对所述混淆后的系统固件数据进行哈希运算处理,得到所述目标系统固件数据对应的哈希密匙,包括:
基于信息摘要算法5,对所述混淆后的系统固件数据进行第一级哈希运算处理,得到第一哈希值,所述第一哈希值为所述混淆后的系统固件数据对应的128位哈希值;
所述将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,包括:
将所述第一哈希值与所述数字签名库中的第一数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述第一数字签名是基于信息摘要算法5,对经过所述数据位混淆处理后的所述原始系统固件数据进行所述第一级哈希运算处理后得到的。
4.根据权利要求3所述的固件校验方法,其特征在于,在所述基于信息摘要算法5,对所述混淆后的系统固件数据进行哈希运算处理,得到第一哈希值之后,所述方法还包括:
基于安全散列算法256,根据所述目标系统固件数据的数据长度和所述第一哈希值进行第二级哈希运算处理,得到第二哈希值,所述第二哈希值为所述混淆后的系统固件数据对应的256位哈希根密匙;
所述将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,包括:
将所述第二哈希值与所述数字签名库中的第二数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述第二数字签名是基于安全散列算法256,对经过所述数据位混淆处理后的所述原始系统固件数据依次进行所述第一级哈希运算处理和所述第二级哈希运算处理后得到的。
5.根据权利要求2所述的固件校验方法,其特征在于,所述私人密匙对应的数据位混淆处理步骤为:
对所述目标系统固件数据的数据位进行移位处理,得到移位处理后的系统固件数据;
基于所述移位处理对应的数据位移动方向,对所述移位处理后的系统固件数据进行补0处理,并对补0的数据位进行取反处理,得到取反处理后的系统固件数据;
将所述取反处理后的系统固件数据与预设字符串进行加法运行处理,得到所述混淆后的系统固件数据。
6.根据权利要求5所述的固件校验方法,其特征在于,所述通过所述私人密匙对所述目标系统固件数据进行数据位移位处理、取反处理和字符串加法运算处理,包括:
获取所述私人密匙中对应的数据位移位位数;
根据数据位移位位数和预设最大移位位数,对所述私人密匙进行判断,若根据判断结果,确定所述私人密匙为有效密匙,通过所述私人密匙对所述目标系统固件数据进行数据位移位处理、取反处理和字符串加法运算处理。
7.根据权利要求6所述的固件校验方法,其特征在于,所述根据数据位移位位数和预设最大移位位数,对所述私人密匙进行判断,包括:
判断所述数据位移位位数是否大于所述预设最大移位位数,若小于或等于所述预设最大移位位数,判断获知所述私人密匙为有效密匙,并通过判定为所述有效密匙的所述私人密匙,对所述目标系统固件数据进行数据位移位处理、取反处理和字符串加法运算处理,得到所述混淆后的系统固件数据。
8.根据权利要求7所述的固件校验方法,其特征在于,所述方法还包括:
若所述数据位移位位数大于所述预设最大移位位数,判断获知所述私人密匙为无效密匙,并生成对应的数据位混淆处理错误提示信息。
9.根据权利要求1所述的固件校验方法,其特征在于,在所述将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验之后,所述方法还包括:
基于安全校验通过后的所述目标系统固件数据,驱动所述目标平台硬件组件启动。
10.根据权利要求9所述的固件校验方法,其特征在于,若所述将所述哈希密匙和数字签名库中的数字签名未匹配成功,所述方法还包括:
获取所述目标系统固件数据对应的固件备份数据,所述固件备份数据与所述目标系统固件数据存储在不同的数据存储区域;
对所述固件备份数据依次进行所述数据位混淆处理和所述哈希运算处理,得到所述固件备份数据对应的哈希密匙;
将所述固件备份数据对应的哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述固件备份数据通过安全校验,并基于安全校验通过后的所述固件备份数据,驱动所述目标平台硬件组件启动;
若匹配失败,生成对应的平台硬件组件启动失败提示信息。
11.根据权利要求1所述的固件校验方法,其特征在于,所述方法还包括:
对所述待进行安全校验的系统固件数据进行数据预处理,得到所述目标系统固件数据;
对所述原始系统固件数据进行所述数据预处理,以通过数据预处理后的原始系统固件获取对应的数字签名;
其中,所述数据预处理至少包括数据清洗处理、数据标准化处理和去噪处理。
12.一种基于权利要求1至11任一项所述的固件校验方法的系统启动方法,其特征在于,应用于平台固件保护恢复芯片,包括:
构建待启动的服务器系统的预启动环境,其中,所述服务器系统中各个平台硬件组件的数据存储区域存储有对应的系统固件数据,且在所述预启动环境中,所述平台固件保护恢复芯片与各个所述数据存储区域建立连接;
将第一初始化信号发送至各个所述平台硬件组件,其中,所述第一初始化信号用于控制所述平台硬件组件进入复位状态或断电状态;
在确定各个所述平台硬件组件处于所述复位状态或所述断电状态的情况下,获取各个所述平台硬件组件对应的系统固件数据;
获取各个所述系统固件数据的安全校验结果,并对所述安全校验结果进行判断,若判断获知所有所述系统固件数据通过安全校验,将第二初始化信号发送至各个所述平台硬件组件,其中,所述第二初始化信号用于控制所述平台硬件组件从所述复位状态或所述断电状态进入启动状态;
在确定所有所述平台硬件组件处于所述启动状态后,构建正常启动环境,并基于通过安全校验的所述系统固件数据,启动所述服务器系统。
13.根据权利要求12所述的系统启动方法,其特征在于,所述平台固件保护恢复芯片通过通用输入输出接口与各个所述平台硬件组件建立连接,并通过多路选择开关和串行外设接口控制器,获取各个所述平台硬件组件的数据储存区域中的所述系统固件数据,其中,所述平台固件保护恢复芯片将获取到的所述系统固件数据存储至数据暂存区域。
14.根据权利要求12所述的系统启动方法,其特征在于,所述获取各个所述系统固件数据的安全校验结果,并对所述安全校验结果进行判断,包括:
若判断获知任意一个所述系统固件数据未通过安全校验,获取未通过安全校验的系统固件数据对应的固件备份数据;
将所述固件备份数据写入目标数据存储区域,其中,所述目标数据存储区域所述未通过安全校验的系统固件数据的数据存储区域;
对所述固件备份数据和其它系统固件数据重新执行固件数据校验,若全部通过安全校验,则生成所述第二初始化信号,其中,所述其它系统固件数据为除所述未通过安全校验的系统固件数据和对应的所述固件备份数据以外的系统固件数据。
15.根据权利要求14所述的系统启动方法,其特征在于,所述方法还包括:
在所述服务器系统的当前启动过程中,判断所述固件数据校验的重新执行的次数是否大于预设校验次数,若大于所述预设校验次数,生成系统关闭信号,以通过所述系统关闭信号控制所述服务器系统进行关机状态。
16.一种固件校验装置,其特征在于,包括:
固件数据获取单元,用于在确定目标平台硬件组件处于复位状态或断电状态的情况下,获取所述目标平台硬件组件对应的目标系统固件数据,其中,所述目标系统固件数据为待进行安全校验的系统固件数据,所述复位状态或所述断电状态是基于平台固件保护恢复芯片对所述目标平台硬件组件的控制结果确定的;
数据混淆单元,对所述目标系统固件数据进行数据位混淆处理,得到混淆后的系统固件数据;
密匙加密单元,用于对所述混淆后的系统固件数据进行哈希运算处理,得到所述目标系统固件数据对应的哈希密匙;
密匙比对单元,用于将所述哈希密匙和数字签名库中的数字签名进行匹配,若匹配成功,确定所述目标系统固件数据通过安全校验,其中,所述数字签名是由原始系统固件数据在经过所述数据位混淆处理和所述哈希运算处理后得到的。
17.一种基于权利要求16所述的固件校验装置的系统启动装置,其特征在于,包括:
预启动模块,用于构建待启动的服务器系统的预启动环境,其中,所述服务器系统中各个平台硬件组件的数据储存区域存储有对应的系统固件数据,且在所述预启动环境中,所述平台固件保护恢复芯片与各个所述数据存储区域建立连接;
第一处理模块,用于将第一初始化信号发送至各个所述平台硬件组件,其中,所述第一初始化信号用于控制所述平台硬件组件进入复位状态或断电状态;
交互模块,用于在确定各个所述平台硬件组件处于所述复位状态或所述断电状态的情况下,获取各个所述平台硬件组件对应的系统固件数据;
第二处理模块,用于获取各个所述系统固件数据的安全校验结果,并对所述安全校验结果进行判断,若判断获知所有所述系统固件数据通过安全校验,将第二初始化信号发送至各个所述平台硬件组件,其中,所述第二初始化信号用于控制所述平台硬件组件从所述复位状态或所述断电状态进入启动状态;
系统启动模块,用于在确定所有所述平台硬件组件处于所述启动状态后,构建正常启动环境,并基于通过安全校验的所述系统固件数据,启动所述服务器系统。
18.一种服务器系统,其特征在于,包括权利要求16所述的固件校验装置、权利要求17所述的系统启动装置以及多个平台硬件组件,其中,所述平台硬件组件通过通用输入输出接口与所述系统启动装置建立连接;所述系统启动装置控制所述平台硬件组件进行复位状态或断电状态后,用于通过多路选择开关和串行外设接口控制器,获取所述平台硬件组件的数据储存区域中的系统固件数据,并在确定所述系统固件数据通过安全校验后,对所述服务器系统执行启动操作;所述固件数据校验装置,用于对所述系统启动装置获取到的所述系统固件数据进行安全校验。
19.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至11任一项所述固件校验方法,或,如权利要求12至15任一项所述系统启动方法。
20.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至11任一项所述固件校验方法,或,如权利要求12至15任一项所述系统启动方法。
CN202311294340.5A 2023-10-08 2023-10-08 固件校验方法、系统启动方法、装置、系统、设备及介质 Pending CN117610004A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311294340.5A CN117610004A (zh) 2023-10-08 2023-10-08 固件校验方法、系统启动方法、装置、系统、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311294340.5A CN117610004A (zh) 2023-10-08 2023-10-08 固件校验方法、系统启动方法、装置、系统、设备及介质

Publications (1)

Publication Number Publication Date
CN117610004A true CN117610004A (zh) 2024-02-27

Family

ID=89944861

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311294340.5A Pending CN117610004A (zh) 2023-10-08 2023-10-08 固件校验方法、系统启动方法、装置、系统、设备及介质

Country Status (1)

Country Link
CN (1) CN117610004A (zh)

Similar Documents

Publication Publication Date Title
Zhao et al. Providing root of trust for ARM TrustZone using on-chip SRAM
EP1695169B1 (en) Method and apparatus for incremental code signing
US8171275B2 (en) ROM BIOS based trusted encrypted operating system
US9298947B2 (en) Method for protecting the integrity of a fixed-length data structure
AU2008200225B8 (en) ROM bios based trusted encrypted operating system
US8127144B2 (en) Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, promgram loading method, and integrated circuit
US20050091496A1 (en) Method and system for distributed key management in a secure boot environment
Böck et al. Towards more trustable log files for digital forensics by means of “trusted computing”
KR100973733B1 (ko) 메모리 카드 제어기 펌웨어의 하드웨어 드라이버 무결성체크
US20080178257A1 (en) Method for integrity metrics management
JP2019057167A (ja) コンピュータプログラム、デバイス及び判定方法
US8311212B2 (en) Method of processing data protected against attacks by generating errors and associated device
US7809130B1 (en) Password recovery system and method
US11531769B2 (en) Information processing apparatus, information processing method, and computer program product
Li et al. A control flow integrity checking technique based on hardware support
CN111327429B (zh) 终端启动的处理方法和装置
US20060064593A1 (en) Technique for preventing illegal invocation of software programs
CN111143904B (zh) 一种数据解密方法、装置和计算机可读存储介质
CN115357908B (zh) 一种网络设备内核可信度量与自动修复方法
EP0962850A2 (en) A method for protecting embedded system software and embedded system
CN117610004A (zh) 固件校验方法、系统启动方法、装置、系统、设备及介质
WO2023001624A1 (en) Securely executing software based on cryptographically verified instructions
CN112332973B (zh) 一种细粒度的物联网设备控制流保护方法
CN114637995A (zh) 具有多种异构tee实施的方法和系统
US20240195636A1 (en) Hardened Encoded Message Check for RSA Signature Verification

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