CN110399166B - ME Nonce值的保存方法、装置、设备及存储介质 - Google Patents
ME Nonce值的保存方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN110399166B CN110399166B CN201910555863.8A CN201910555863A CN110399166B CN 110399166 B CN110399166 B CN 110399166B CN 201910555863 A CN201910555863 A CN 201910555863A CN 110399166 B CN110399166 B CN 110399166B
- Authority
- CN
- China
- Prior art keywords
- value
- nonce value
- nonce
- variable
- target variable
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004590 computer program Methods 0.000 claims description 9
- 230000003993 interaction Effects 0.000 abstract description 11
- 230000000694 effects Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种ME Nonce值的保存方法,在本方案中,不仅可以通过全局变量保存Nonce值,还可以通过目标变量保存有效的Nonce值;具体来说,该目标变量用于在第一次获取的Nonce值为有效值时,保存有效的Nonce值;如果后续获取的Nonce值为无效值,则从目标变量中获取有效的Nonce值赋值给全局变量;通过这种方式,可以避免在BIOS与ME的交互过程中,出现全局变量被赋值为无效值的情况,保证相关代码功能正常的执行。本发明还公开了一种ME Nonce值的保存装置、设备及计算机可读存储介质,同样能实现上述技术效果。
Description
技术领域
本发明涉及数据存储技术领域,更具体地说,涉及一种ME Nonce值的保存方法、装置、设备及计算机可读存储介质。
背景技术
BIOS(Base Input/Output System)为基本输入输出***,ME(ManagementEngine)为Intel管理引擎固件;目前BIOS与ME是通过HECI(Host Embedded ControllerInterface,主端嵌入式控制器接口)来做交互,其中BIOS向ME发送HMRFPO_LOCK信息后,会得到一个叫Nonce的返回值。
目前,按Intel的技术规范说明,在下一次Reset前,只能在首次交互时获得有效的Nonce值,后面获取的Nonce值都是0;并且,BIOS与ME的交互功能代码里,定义了全局变量,用来接收获取到的Nonce值,但是,目前的这种存储Nonce值的方式,会存在全局变量保存的Nonce被更新为0的情况,从而造成需要Nonce值的代码功能不能正常执行。
发明内容
本发明的目的在于提供一种ME Nonce值的保存方法、装置、设备及计算机可读存储介质,以保证全局变量内存储的Nonce值为有效值。
为实现上述目的,本发明提供的一种ME Nonce值的保存方法,包括:
获取从ME微处理器获取的Nonce值;
判断所述Nonce值是否为有效值;
若所述Nonce值为有效值,则将所述Nonce值保存在目标变量中,并赋值给全局变量;
若所述Nonce值为无效值,则从目标变量中获取有效的Nonce值,并赋值给全局变量。
其中,所述目标变量为UEFI BIOS中的Variable变量。
其中,所述目标变量保存在CMOS寄存器、EERPOM寄存器、内存段中的任意一者。
其中,所述判断所述Nonce值是否为有效值,包括:
判断所述Nonce值是否为零;
若不为零,则判定所述Nonce值为有效值;若为零,则判定所述Nonce值为无效值。
为实现上述目的,本发明进一步提供一种ME Nonce值的保存装置,包括:
第一获取模块,用于获取从ME微处理器获取的Nonce值;
判断模块,用于判断所述Nonce值是否为有效值;
目标变量保存模块,用于在所述Nonce值为有效值时,将所述Nonce值保存在目标变量中;
第一赋值模块,用于在所述Nonce值为有效值时,将所述Nonce值赋值给全局变量;
第二获取模块,用于在所述Nonce值为无效值时,从目标变量中获取有效的Nonce值;
第二赋值模块,用于在所述Nonce值为无效值时,将从目标变量中获取的有效的Nonce值赋值给全局变量。
其中,所述目标变量为UEFI BIOS中的Variable变量。
其中,所述目标变量保存在CMOS寄存器、EERPOM寄存器、内存段中的任意一者。
其中,所述判断模块包括:
判断单元,用于判断所述Nonce值是否为零;
第一判定单元,用于在所述Nonce值不为零时,判定所述Nonce值为有效值;
第二判定单元,用于在所述Nonce值为零时,判定所述Nonce值为无效值。
为实现上述目的,本发明进一步提供一种ME Nonce值的保存设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述的ME Nonce值的保存方法的步骤。
为实现上述目的,本发明进一步提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的ME Nonce值的保存方法的步骤。
通过以上方案可知,本发明实施例提供的一种ME Nonce值的保存方法,包括:获取从ME微处理器获取的Nonce值;判断所述Nonce值是否为有效值;若所述Nonce值为有效值,则将所述Nonce值保存在目标变量中,并赋值给全局变量;若所述Nonce值为无效值,则从目标变量中获取有效的Nonce值,并赋值给全局变量。
可见,在本方案中,不仅可以通过全局变量保存Nonce值,还可以通过目标变量保存首次获取的有效的Nonce值;具体来说,该目标变量用于在第一次获取的Nonce值为有效值时,保存有效的Nonce值;如果后续获取的Nonce值为无效值,则从目标变量中获取有效的Nonce值赋值给全局变量;通过这种方式,可以避免在BIOS与ME的交互过程中,出现全局变量被赋值为无效值的情况,保证相关代码功能正常的执行。
本发明还公开了一种ME Nonce值的保存装置、设备及计算机可读存储介质,同样能实现上述技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种ME Nonce值的保存方法流程示意图;
图2为本发明实施例公开的另一ME Nonce值的保存方法流程示意图;
图3为本发明实施例公开的一种ME Nonce值的保存装置结构示意图;
图4为本发明实施例公开的一种ME Nonce值的保存设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种ME Nonce值的保存方法、装置、设备及计算机可读存储介质,以保证全局变量内存储的Nonce值为有效值。
参见图1,本发明实施例提供的一种ME Nonce值的保存方法,包括:
S101、获取从ME微处理器获取的Nonce值;
S102、判断所述Nonce值是否为有效值;若是,则执行S103;若否,则执行S104;
具体的,Nonce值为BIOS与ME特定交互时得到的其中一个返回值名称,并且在下一次Reset前,BIOS与ME之间还会存在多次交互,每次交互时,BIOS均会从ME获取Nonce值,但是,BIOS与ME每次交互时获取的Nonce值中,只有在首次交互时获取的Nonce值为有效值,其他情况获取的Nonce值均为无效值;如果将无效值赋值至全局变量,则会因为全局变量中的Nonce值为无效值而影响需要Nonce值的代码不能正常的执行;因此,本方案在将Nonce值赋值至全局变量之前,首先需要确定本次获取的Nonce值是否为有效值,并根据Nonce值的状态的不同分别执行不同的操作。
S103、将所述Nonce值保存在目标变量中,并赋值给全局变量;其中,目标变量为UEFI BIOS中的Variable变量;或者,所述目标变量保存在CMOS寄存器、EERPOM寄存器、内存段中的任意一者。
S104、从目标变量中获取有效的Nonce值,并赋值给全局变量。
在本方案中,除了全局变量之外,还定义了目标变量;需要说明的是,该目标变量为在UEFI(Unified Extensible Firmware Interface,统一的可扩展固件接口)BIOS中定义的Variable变量,用来保存BIOS与ME交互获取到的有效Nonce值;需要说明的是,由于本方案的执行主体为BIOS,需要通过BIOS来对Nonce值的有效性进行判断,也需要BIOS来执行赋值的操作,因此在本实施例中,可以直接使用UEFI BIOS中的variable机制,也即:在存储有效的Nonce值时,直接将该有效的Nonce值存储在BIOS rom芯片里面,执行的时候在内存中,这种方式不仅存储方便,还简单可靠。
进一步的,本方案除了将目标变量保存在UEFI BIOS之外,还可以延伸到其它能保存数值的方式或者媒介,例如:将有效的Nonce值存储在CMOS寄存器、EERPOM寄存器、可保留存储内容的内存段中的任意一者中,这样在新获取到Nonce值时,如果判定新获取的Nonce值为无效的,便可以从CMOS寄存器、EERPOM寄存器、可保留存储内容的内存段中的任意一者获取有效的Nonce值,并赋值给全局变量。
需要说明的是,在获取的Nonce值为有效值时,需要将该有效的Nonce值保存在该目标变量,同时,继续执行将Nonce值赋值至全局变量的步骤;也即:在获取的Nonce值为有效值时,需要执行两个步骤,一个步骤为将有效的Nonce值保存在该目标变量,另一个步骤为将Nonce值赋值至全局变量;如果获取的Nonce值为无效值,则说明本次交互并非为首次交互,同时说明,在目标变量中已经存储了首次交互的有效Nonce值,因此,在获取的Nonce值为无效值时,可以将目标变量中保存的Nonce值赋值给全局变量,从而避免出现全局变量中的Nonce值无效的情况。
参见图2,为本发明实施例公开另一ME Nonce值的保存方法,在本实施例中,目标变量为Variable变量;并且,在判断Nonce值是否为有效值时,具体包括:判断Nonce值是否为零;若不为零,则判定Nonce值为有效值;若为零,则判定Nonce值为无效值。
通过图2可以看出,BIOS与ME交互获得Nonce值后,判断返回的Nonce值是否为初次获取,如果不为零,则说明该值为初次获取的有效值,并把该值赋值给全局变量,保存在定义的Nonce Variable变量中;如果返回的Nonce值为0,则用Variable变量中保存的Nonce值给Nonce全局变量赋值;
通过这种方式,可以有效避免BIOS与ME的交互代码中,保存Nonce的全局变量值被赋值或者更新成非法值,从而影响BIOS与ME的相关交互功能,影响BIOS固件的健壮性,从而影响使用BIOS固件的服务器的性能表现。
下面对本发明实施例提供的保存装置进行介绍,下文描述的保存装置与上文描述的保存方法可以相互参照。
参见图3,本发明实施例提供的一种ME Nonce值的保存装置,包括:
第一获取模块100,用于获取从ME微处理器获取的Nonce值;
判断模块200,用于判断所述Nonce值是否为有效值;
目标变量保存模块300,用于在所述Nonce值为有效值时,将所述Nonce值保存在目标变量中;
第一赋值模块400,用于在所述Nonce值为有效值时,将所述Nonce值赋值给全局变量;
第二获取模块500,用于在所述Nonce值为无效值时,从目标变量中获取有效的Nonce值;
第二赋值模块600,用于在所述Nonce值为无效值时,将从目标变量中获取的有效的Nonce值赋值给全局变量。
其中,所述目标变量为UEFI BIOS中的Variable变量。
其中,所述目标变量保存在CMOS寄存器、EERPOM寄存器、内存段中的任意一者。
其中,所述判断模块包括:
判断单元,用于判断所述Nonce值是否为零;
第一判定单元,用于在所述Nonce值不为零时,判定所述Nonce值为有效值;
第二判定单元,用于在所述Nonce值为零时,判定所述Nonce值为无效值。
参见图4,为本发明实施例提供的一种ME Nonce值的保存设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述方法实施例所述的ME Nonce值的保存方法的步骤。
在本实施例中,设备1可以是PC(Personal Computer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机等终端设备。
该设备1可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是设备1的内部存储单元,例如该设备1的硬盘。存储器11在另一些实施例中也可以是设备1的外部存储设备,例如设备1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括设备1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于设备1的应用软件及各类数据,例如Nonce值的保存程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行Nonce值的保存程序等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,设备还可以包括网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该设备1与其他电子设备之间建立通信连接。
可选地,该设备1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在设备1中处理的信息以及用于显示可视化的用户界面。
图4仅示出了具有组件11-14以及Nonce值的保存程序的设备1,本领域技术人员可以理解的是,图4示出的结构并不构成对设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明还公开了一种一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法实施例所述的ME Nonce值的保存方法的步骤。
其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种ME Nonce值的保存方法,其特征在于,包括:
获取从ME微处理器获取的Nonce值;
判断所述Nonce值是否为有效值;
若所述Nonce值为有效值,则将所述Nonce值保存在目标变量中,并赋值给全局变量;
若所述Nonce值为无效值,则从目标变量中获取有效的Nonce值,并赋值给全局变量。
2.根据权利要求1所述的保存方法,其特征在于,所述目标变量为UEFI BIOS中的Variable变量。
3.根据权利要求1所述的保存方法,其特征在于,所述目标变量保存在CMOS寄存器、EERPOM寄存器、内存段中的任意一者。
4.根据权利要求1至3中任意一项所述的保存方法,其特征在于,所述判断所述Nonce值是否为有效值,包括:
判断所述Nonce值是否为零;
若不为零,则判定所述Nonce值为有效值;若为零,则判定所述Nonce值为无效值。
5.一种ME Nonce值的保存装置,其特征在于,包括:
第一获取模块,用于获取从ME微处理器获取的Nonce值;
判断模块,用于判断所述Nonce值是否为有效值;
目标变量保存模块,用于在所述Nonce值为有效值时,将所述Nonce值保存在目标变量中;
第一赋值模块,用于在所述Nonce值为有效值时,将所述Nonce值赋值给全局变量;
第二获取模块,用于在所述Nonce值为无效值时,从目标变量中获取有效的Nonce值;
第二赋值模块,用于在所述Nonce值为无效值时,将从目标变量中获取的有效的Nonce值赋值给全局变量。
6.根据权利要求5所述的保存装置,其特征在于,所述目标变量为UEFI BIOS中的Variable变量。
7.根据权利要求5所述的保存装置,其特征在于,所述目标变量保存在CMOS寄存器、EERPOM寄存器、内存段中的任意一者。
8.根据权利要求5至7中任意一项所述的保存装置,其特征在于,所述判断模块包括:
判断单元,用于判断所述Nonce值是否为零;
第一判定单元,用于在所述Nonce值不为零时,判定所述Nonce值为有效值;
第二判定单元,用于在所述Nonce值为零时,判定所述Nonce值为无效值。
9.一种ME Nonce值的保存设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述的ME Nonce值的保存方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述的ME Nonce值的保存方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910555863.8A CN110399166B (zh) | 2019-06-25 | 2019-06-25 | ME Nonce值的保存方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910555863.8A CN110399166B (zh) | 2019-06-25 | 2019-06-25 | ME Nonce值的保存方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110399166A CN110399166A (zh) | 2019-11-01 |
CN110399166B true CN110399166B (zh) | 2022-06-17 |
Family
ID=68322634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910555863.8A Active CN110399166B (zh) | 2019-06-25 | 2019-06-25 | ME Nonce值的保存方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110399166B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113158172B (zh) * | 2021-02-26 | 2022-03-22 | 山东英信计算机技术有限公司 | 一种基于芯片的密码获取方法、装置、设备及存储介质 |
CN113872769B (zh) * | 2021-09-29 | 2024-02-20 | 天翼物联科技有限公司 | 基于puf的设备认证方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108509221A (zh) * | 2018-03-13 | 2018-09-07 | 郑州云海信息技术有限公司 | 一种me的生效方法和生效*** |
-
2019
- 2019-06-25 CN CN201910555863.8A patent/CN110399166B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110399166A (zh) | 2019-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108462760B (zh) | 电子装置、集群访问域名自动生成方法及存储介质 | |
CN108427705B (zh) | 电子装置、分布式***日志查询方法及存储介质 | |
CN110096314B (zh) | 一种接口初始化方法、装置、设备及计算机可读存储介质 | |
CN112256348B (zh) | 一种云服务平台创建方法、***及电子设备和存储介质 | |
CN110399166B (zh) | ME Nonce值的保存方法、装置、设备及存储介质 | |
CN111240601B (zh) | 一种分区空间的超级块确定方法、装置、设备及存储介质 | |
CN109117153B (zh) | 应用程序的处理方法、装置、终端和存储介质 | |
CN110888843A (zh) | 一种跨主机的稀疏文件拷贝方法、装置、设备及存储介质 | |
CN109561134B (zh) | 电子装置、分布式集群服务分配方法及存储介质 | |
CN112306473B (zh) | 一种程序接口传参方法、***及相关设备 | |
CN107491316B (zh) | 基板管理控制器的扩展方法、装置及电子设备 | |
CN110321179B (zh) | 一种应用程序启动方法、***、装置及计算机存储介质 | |
EP3507050A1 (en) | Computer implemented method, welding system and apparatus for multiple application banks | |
CN113158172B (zh) | 一种基于芯片的密码获取方法、装置、设备及存储介质 | |
CN113342420B (zh) | 一种固件配置方法、装置、设备及存储介质 | |
WO2016023276A1 (zh) | 一种存储卡的数据处理方法及装置 | |
CN109271538A (zh) | 一种图片存储方法及相关设备 | |
CN115664953A (zh) | 一种外接设备的资源分配方法及相关装置 | |
CN112905497B (zh) | 内存管理方法、装置、电子设备及存储介质 | |
CN110188006B (zh) | 一种数据维护方法、装置及设备 | |
CN107301037B (zh) | 操作***内核的加载方法和装置 | |
CN111722888B (zh) | 一种操作执行方法、装置、设备及可读存储介质 | |
CN111881065B (zh) | 数据重删操作的物理地址处理方法、装置、设备及介质 | |
CN115291951A (zh) | Uefi启动方法、装置、电子设备以及存储介质 | |
CN111143293B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |