一种基于BMC对BIOS进行双重认证的方法及终端与流程

    专利2026-02-05  1


    本申请涉及通信,尤其涉及一种基于bmc对bios进行双重认证的方法及终端。


    背景技术:

    1、现有的信创领域,现有技术通常采取在硬件设计上额外新增附加tpm模块、tcm模块等方式,并通过第三方的安全可信芯片生成提供安全的可信根,由下而上的参与校验系统启动的各项流程后,在各项度量均通过的情况下,方才允许正常引导进入正常的使用场景如操作系统等。

    2、而上述方案存在以下缺陷:

    3、(1)增大了整体项目的设计难度,硬件层面上,需要对硬件电路进行优化设计以支持额外的可信芯片模块长时运行;软件层面,需要对引导启动过程进行重构,以此支持在引导启动初期导入可信根,并在不同阶段结束前都需要引入对下一阶段的度量验算;

    4、(2)设计周期长,需要长时间的适配过程,人力成本不可控;

    5、(3)目前市面上可信芯片的价格较高,难以适用于低成本项目或者量产项目。


    技术实现思路

    1、为了克服上述现有技术存在的缺陷,本发明提供一种基于bmc对bios进行双重认证的方法,用以解决现有技术中第三方可信芯片的植入成本高的问题,并且确保整个计算机系统不至于完全处于不设防的“裸奔”状态。

    2、为了实现所述技术目的,采用如下技术方案:

    3、第一方面,本发明提供了一种基于bmc对bios进行双重认证的方法,包括以下步骤:

    4、s1、bmc和bios固件上电,bmc在监测到cpu的上电状态后,判断预设时间范围内,bmc是否接收到bios固件发送的通信请求,若bmc接收到通信请求,则执行步骤s2,否则控制电源关闭,cpu端停止bios固件加载过程,并记录本次启动的结果;

    5、s2、bmc接受bios固件发送的第一校验数据,并向bios固件发送对应第一校验数据的回复,bios固件判断回复内容是否符合约定的配置标志位要求,若符合,执行步骤s3;否则bios固件判定bmc不可信,记录此处异常启动,并调用关机流程;

    6、s3、bmc读取bios固件代码区内容计算生成第二校验数据,并将第一校验数据和第二校验数据分别与bmc自身存储的校验元数据进行比对认证,得到两次认证结果,判断两次认证结果是否均通过,若通过,则执行步骤s4;否则执行步骤s5;

    7、s4、bmc将通信接口对应的oem命令双重认证结论配置为成功,并向bios固件发送双重认证通过标志位,bios固件判断是否在预设时间范围内接收到双重认证通过标志位,若接收到,则进入启动流程;否则bios固件判定bmc不可信,记录此处异常启动,并调用关机流程;

    8、s5、bmc将第一校验数据和第二校验数据进行比对,判断两个校验数据是否匹配,若匹配,则向管理员确认是否需要更新校验元数据,并记录本次启动的结果日志,通过控制电源复位cpu;否则记录本次启动结果,控制电源停止并阻塞cpu端的工作状态。

    9、进一步地,所述在步骤s1之前,还包括:

    10、在bios固件生成阶段,通过开发终端的操作系统对固件执行时引导使用的代码区进行初步验算,生成第一校验数据并存入bios固件专门开辟出来的校验码区。

    11、进一步地,所述步骤s1具体为:

    12、s101、判断bmc是否先于cpu启动,若bmc先于cpu启动进入就绪状态,则在bmc监测到cpu的上电状态后,执行步骤s102;若cpu先于bmc启动进入就绪状态,则在bmc启动完成后,bmc立即复位cpu,强制执行步骤s2;

    13、s102、判断预设时间范围内,bmc是否接收到bios固件发送的通信请求,若接收到通信请求,则执行步骤s2,否则控制电源关闭,cpu端停止bios固件加载过程,并记录本次启动的结果。

    14、进一步地,所述步骤s2具体为:

    15、s201、bios固件读取生成阶段写入校验码区的第一校验数据,并经过封装后通过通信接口发送给bmc;

    16、s202、bmc接受bios固件发送的第一校验数据,并向bios固件发送对应第一校验数据的通讯完成标志位;

    17、s203、bios固件对通讯完成标志位进行初步验算,判断其回复内容是否符合约定的配置标志位要求,若符合,执行步骤s3;否则bios固件判定bmc不可信,记录此处异常启动,并调用关机流程。

    18、进一步地,所述步骤s3具体为:

    19、s301、bmc将接收到的第一校验数据与自身存储的校验元数据进行数据位比对,得到主动一次认证结果;

    20、s302、bmc将bios固件作为挂载设备,启动spi读写程序开始读取bios固件代码区内容,并通过bmc的自身资源进行初步验算得到第二校验数据,并将第二校验数据与校验元数据进行数据位比对,得出被动二次认证的结果;

    21、s303、bmc判断两次认证结果是否均通过,若通过,则执行步骤s4;若不通过,则执行步骤s5。

    22、进一步地,所述步骤s5具体为:

    23、将第一校验数据和第二校验数据进行数据位比对,若第一校验数据和第二校验数据匹配,则说明bmc此前未存储过校验元数据或者此时的检验元数据需要更新,通知管理员确认是否需要更新校验元数据,并记录本次启动的结果日志,控制电源关闭并复位cpu端的工作状态;

    24、若第一校验数据和第二校验数据不匹配,则认为bios数据已被篡改,记录本次启动结果,控制电源关闭并阻塞cpu端的工作状态。

    25、进一步地,所述检验元数据在bmc初次启动时为空,此时无需特殊配置,正常进行双重认证流程,并可在验证双重认证是否均通过的判定后,自动流转到判定第一校验数据和第二校验数据的数据位是否匹配,若匹配则可通过提示管理员进行更新校验元数据的方式,填充保存该数据,并重启cpu重新进行双重认证。

    26、进一步地,所述初步验算的算法为aes、rsa、pkcs、哈希算法、国密算法中任意一种。

    27、进一步地,bmc与bios固件之间的交互方式为lpc或i2c协议。

    28、第二方面,本发明提供了一种终端,包括一个或多个处理器以及存储了一个或多个计算机程序的存储器,其特征在于,所述处理器调用所述计算机程序时实现如上所述的一种基于bmc对bios进行双重认证的方法的步骤。

    29、本发明提供的实施例带来的有益效果包括:

    30、本发明未引入可信芯片,系统启动过程中仅通过bmc和bios完成多次数据交互和验算,提高了计算机系统的基础安全性能,解决了计算机系统无可信芯片时产生的基础安全困境,并且降低了软硬件的设计难度和研发成本;本发明利用第三方验算主动一次认证的第一校验数据,通过bmc主动读取验算bios固件代码区得到被动二次认证的第二校验数据,并进行双重认证,提高了系统的可靠性;本发明通过多种协议进行通信,有效防止因数据传输中途被劫持,而造成计算机系统无法识别外界攻击的情况。



    技术特征:

    1.一种基于bmc对bios进行双重认证的方法,其特征在于,包括以下步骤:

    2.根据权利要求1所述的方法,其特征在于,所述在步骤s1之前,还包括:

    3.根据权利要求1所述的方法,其特征在于,所述步骤s1具体为:

    4.根据权利要求2所述的方法,其特征在于,所述步骤s2具体为:

    5.根据权利要求1所述的方法,其特征在于,所述步骤s3具体为:

    6.根据权利要求1所述的方法,其特征在于,所述步骤s5具体为:

    7.根据权利要求1所述的方法,其特征在于,所述检验元数据在bmc初次启动时为空,此时无需特殊配置,正常进行双重认证流程,并可在验证双重认证是否均通过的判定后,自动流转到判定第一校验数据和第二校验数据的数据位是否匹配,若匹配则可通过提示管理员进行更新校验元数据的方式,填充保存该数据,并重启cpu重新进行双重认证。

    8.根据权利要求1、2或5所述的方法,其特征在于,所述初步验算的算法为aes、rsa、pkcs、哈希算法、国密算法中任意一种。

    9.根据权利要求1、3、4或5所述的方法,其特征在于,bmc与bios固件之间的交互方式为lpc或i2c协议。

    10.一种终端,其特征在于,包括一个或多个处理器以及存储了一个或多个计算机程序的存储器,其特征在于,所述处理器调用所述计算机程序时实现如权利要求1-9中任一项所述的一种基于bmc对bios进行双重认证的方法的步骤。


    技术总结
    本发明提供了一种基于BMC对BIOS进行双重认证的方法,利用第三方验算主动一次认证的第一校验数据,通过BMC主动读取验算BIOS固件代码区得到被动二次认证的第二校验数据,完成BMC和BIOS之间多次数据交互和验算,并进行双重认证;本发明提高了计算机系统的基础安全性能,解决了计算机系统无可信芯片时产生的基础安全困境,并且降低了软硬件的设计难度和研发成本,能够有效防止因数据传输中途被劫持,而造成计算机系统无法识别外界攻击的情况。

    技术研发人员:谢小佳,周灵华,叶紫泥,梁哲豪,彭日光,罗江问,匡建成,王宏,魏丁,刘明宇,杨健,胡鑫
    受保护的技术使用者:长沙湘计海盾科技有限公司
    技术研发日:
    技术公布日:2024/4/29
    转载请注明原文地址:https://wp.8miu.com/read-94727.html

    最新回复(0)