CN108256333A - Bios固件的执行方法、系统、设备及可读存储介质 - Google Patents
Bios固件的执行方法、系统、设备及可读存储介质 Download PDFInfo
- Publication number
- CN108256333A CN108256333A CN201810067884.0A CN201810067884A CN108256333A CN 108256333 A CN108256333 A CN 108256333A CN 201810067884 A CN201810067884 A CN 201810067884A CN 108256333 A CN108256333 A CN 108256333A
- Authority
- CN
- China
- Prior art keywords
- bios
- key
- codes
- shipped
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了BIOS固件的执行方法,包括:运行支持Boot Guard功能的BIOS ACM代码;通过BIOS ACM代码判断预留密钥与待运行代码的密钥是否对应;如果是,运行待运行代码;如果否,拒绝运行待运行代码。本发明中Boot guard能够度量和检验指定的BIOS代码区域,若检验失败则证明该代码被破坏或篡改,拒绝执行该代码,从而避免信息外泄。本发明提供了基于芯片的Boot Guard功能来构建服务器BIOS固件的完整信任链,其信任链的信任根为CPU本身,从而能对BIOS固件提供芯片级别的完整保护方案,提高了服务器固件的安全性。本申请还公开了BIOS固件的执行系统、设备及可读存储介质。
Description
技术领域
本发明涉及BIOS领域,特别涉及一种BIOS固件的执行方法、系统、设备及可读存储介质。
背景技术
众所周知,服务器是整个网络系统和计算平台的核心,许多重要的数据都保存在服务器上。随着云计算及大数据的发展,服务器的数量呈现指数级别的剧增。随之而来的针对服务器的黑客攻击事件不断出现。而且攻击的手段从应用层逐渐的发展到攻击系统固件,致使针对攻击的侦测和防止都变的比较困难。服务器BIOS作为最重要的固件成了黑客们攻击的目标。目前社会上已经出现了通过攻击UEFI BIOS来入侵服务器系统的案例,所以保护服务器上的BIOS变得至关重要。目前常用的保护BIOS固件的技术是通过TCG组织开发的基于TPM安全芯片的技术来度量和检验BIOS固件代码。然而该方法具有一定的局限性,构成其信任链的信任根是BIOS固件中的一个代码模块,无法真正的保护整个的BIOS固件。
发明内容
有鉴于此,本发明的目的在于提供一种BIOS固件的执行方法、系统、设备及可读存储介质,从而能够在执行BIOS固件时保护整个BIOS固件。其具体方案如下:
一种BIOS固件的执行方法,包括:
运行支持Boot Guard功能的BIOS ACM代码;
通过所述BIOS ACM代码判断预留密钥与待运行代码的密钥是否对应;如果是,运行所述待运行代码;如果否,拒绝运行所述待运行代码。
优选的,所述通过所述BIOS ACM代码判断预留密钥与待运行代码的密钥是否对应的过程,包括:
通过所述BIOS ACM代码判断预留密钥的标识值与待运行代码的密钥的标识值是否对应。
优选的,所述预留密钥的标识值为通过哈希算法对所述预留密钥进行计算得到的哈希值,所述待运行代码的密钥的标识值为通过所述哈希算法对所述待运行代码中作为数字签名的密钥进行计算得到的哈希值。
优选的,所述待运行代码为UEFI BIOS代码。
优选的,所述UEFI BIOS代码包括Boot Block代码和Main Block代码;
相应的,通过所述BIOS ACM代码判断预留密钥的标识值与待运行代码的密钥的标识值是否对应的过程包括:
通过所述BIOS ACM代码判断第一预留密钥的标识值与所述Boot Block代码的密钥的标识值是否对应;
如果否,拒绝运行所述Boot Block代码;
如果是,运行所述Boot Block代码,并通过所述BIOS ACM代码判断第二预留密钥的标识值与所述Main Block代码的密钥的标识值是否对应;
如果否,拒绝运行所述Main Block代码;
如果是,运行所述Boot Block代码。
优选的,所述拒绝运行所述待运行代码的过程,还包括:
向用户终端发出代码错误的警告信息。
相应的,本发明还公开了一种BIOS固件的执行系统,包括:
执行模块,用于运行支持Boot Guard功能的BIOS ACM代码;
判断模块,用于通过所述BIOS ACM代码判断预留密钥与待运行代码的密钥是否对应;如果是,触发确认模块,如果否,拒绝运行所述待运行代码;
确认模块,用于运行所述待运行代码。
优选的,所述判断模块具体用于:
通过所述BIOS ACM代码判断预留密钥的标识值与待运行代码的密钥的标识值是否对应。
相应的,本发明还公开了一种BIOS固件的执行设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上文任一项所述BIOS固件的执行方法的步骤。
相应的,本发明还公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文任一项所述BIOS固件的执行方法的步骤。
本发明公开了一种BIOS固件的执行方法,包括:运行支持Boot Guard功能的BIOSACM代码;通过所述BIOS ACM代码判断预留密钥与待运行代码的密钥是否对应;如果是,运行所述待运行代码;如果否,拒绝运行所述待运行代码。Boot guard能够在执行BIOS固件之前对指定的BIOS代码区域进行度量和检验,如果检验失败则证明该代码被破坏或篡改,拒绝执行该代码,从而避免信息外泄。本发明提供了基于Intel芯片的Boot Guard功能来构建服务器BIOS固件的完整信任链,其信任链的信任根为CPU本身,从而能对BIOS固件提供芯片级别的完整保护方案,提高了服务器BIOS固件的安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例中一种BIOS固件的执行方法的步骤流程图;
图2为本发明实施例中一种BIOS固件的执行方法的子步骤流程图;
图3为本发明实施例中一种BIOS固件的执行系统的结构分布图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种BIOS固件的执行方法,参见图1所示,包括:
S1:运行支持Boot Guard功能的BIOS ACM代码;
其中,Boot Guard的主要功能是在执行BIOS固件之前对指定的BIOS代码区域进行度量和检验,如果检验失败则证明该代码被破坏或篡改,拒绝执行该代码,从而避免信息外泄。
S2:通过所述BIOS ACM代码判断预留密钥与待运行代码的密钥是否对应;如果是,运行所述待运行代码;如果否,拒绝运行所述待运行代码。
其中,关于如何判断预留密钥与待运行密码的密钥是否对应的方法,一般是通过预留密钥的标识值与待运行代码的密钥的标识值来判断。
具体的,预留密钥与待运行代码的密钥分别为使用开源工具产生的密钥对中的Public Key和Private Key。通过某一算法对Public Key进行运算,得到对应的标识值,将其保存在BIOS固件的配置文件中;通过同一算法对Private Key进行运算,得到对应的标识值,利用该标识值进行待运行代码的数字签名。
其中,这里提到的算法一般为哈希(hash)算法,哈希算法能够将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。一般用于快速查找和加密算法。当待运行代码遭到破坏或修改,其对应的密钥的标识值会发生改变,无法与预留密钥的标识值对应,从而识别出待运行代码不安全。
当然,还可以使用其他的算法,例如消息摘要算法MD5等,只要保证预留密钥与待运行代码的密钥的全面性、唯一性和安全度即可。
进一步的,所述拒绝运行所述待运行代码的过程,还可以包括:
向用户终端发出代码错误的警告信息。
可以理解的是,向用户终端发送警告信息,可以通知工作人员待运行代码受到破坏或篡改,工作人员能够根据该信息进行相关的处理或提高系统安全等级。
本发明公开了一种BIOS固件的执行方法,包括:运行支持Boot Guard功能的BIOSACM代码;通过所述BIOS ACM代码判断预留密钥与待运行代码的密钥是否对应;如果是,运行所述待运行代码;如果否,拒绝运行所述待运行代码。Boot guard能够在执行BIOS固件之前对指定的BIOS代码区域进行度量和检验,如果检验失败则证明该代码被破坏或篡改,拒绝执行该代码,从而避免信息外泄。本发明提供了基于Intel芯片的Boot Guard功能来构建服务器BIOS固件的完整信任链,其信任链的信任根为CPU本身,从而能对BIOS固件提供芯片级别的完整保护方案,提高了服务器BIOS固件的安全性。
本发明实施例公开了一种具体的BIOS固件的执行方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。具体的:
所述待运行代码为UEFI BIOS代码。
其中,所述UEFI BIOS代码包括Boot Block代码和Main Block代码;
相应的,通过所述BIOS ACM代码判断预留密钥的标识值与待运行代码的密钥的标识值是否对应的过程包括以下步骤,参见图2所示:
S21:通过所述BIOS ACM代码判断第一预留密钥的标识值与所述Boot Block代码的密钥的标识值是否对应;
S22:如果否,拒绝运行所述Boot Block代码;
S23:如果是,运行所述Boot Block代码,并通过所述BIOS ACM代码判断第二预留密钥的标识值与所述Main Block代码的密钥的标识值是否对应;
S24:如果否,拒绝运行所述Main Block代码;
S25:如果是,运行所述Boot Block代码。
可以理解的是,对UEFI BIOS代码中的必要代码模块Boot Block代码和MainBlock代码逐一进行检测和执行,从而确保UEFI BIOS代码的安全性,而且效率较高,不会花费太多的时间与运算成本。
相应的,本发明实施例还公开了一种BIOS固件的执行系统,参见图3所示,包括:
执行模块1,用于运行支持Boot Guard功能的BIOS ACM代码;
判断模块2,用于通过所述BIOS ACM代码判断预留密钥与待运行代码的密钥是否对应;如果是,触发确认模块,如果否,拒绝运行所述待运行代码;
确认模块3,用于运行所述待运行代码。
进一步的,所述判断模块可以具体用于:
通过所述BIOS ACM代码判断预留密钥的标识值与待运行代码的密钥的标识值是否对应。
相应的,本发明实施例中的BIOS固件的执行系统具有与上述实施例中BIOS固件的执行方法相同的有益效果。
相应的,本发明实施例还公开了一种BIOS固件的执行设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上文实施例任一项所述BIOS固件的执行方法的步骤。
其中,有关所述BIOS固件的执行设备的具体细节参照上文实施例中BIOS固件的执行方法的相关描述,此处不再赘述。
相应的,本实施例中BIOS固件的执行设备具有与上述实施例中BIOS固件的执行方法相同的有益效果。
相应的,本发明实施例还公开了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上文实施例任一项所述BIOS固件的执行方法的步骤。
其中,有关所述可读存储介质的具体细节参照上文实施例中BIOS固件的执行方法的相关描述,此处不再赘述。
相应的,本实施例中可读存储介质具有与上述实施例中BIOS固件的执行方法相同的有益效果。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种BIOS固件的执行方法、系统、设备及可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种BIOS固件的执行方法,其特征在于,包括:
运行支持Boot Guard功能的BIOS ACM代码;
通过所述BIOS ACM代码判断预留密钥与待运行代码的密钥是否对应;如果是,运行所述待运行代码;如果否,拒绝运行所述待运行代码。
2.根据权利要求1所述执行方法,其特征在于,所述通过所述BIOS ACM代码判断预留密钥与待运行代码的密钥是否对应的过程,包括:
通过所述BIOS ACM代码判断预留密钥的标识值与待运行代码的密钥的标识值是否对应。
3.根据权利要求2所述执行方法,其特征在于,
所述预留密钥的标识值为通过哈希算法对所述预留密钥进行计算得到的哈希值,所述待运行代码的密钥的标识值为通过所述哈希算法对所述待运行代码中作为数字签名的密钥进行计算得到的哈希值。
4.根据权利要求3所述执行方法,其特征在于,所述待运行代码为UEFI BIOS代码。
5.根据权利要求4所述执行方法,其特征在于,所述UEFI BIOS代码包括Boot Block代码和Main Block代码;
相应的,通过所述BIOS ACM代码判断预留密钥的标识值与待运行代码的密钥的标识值是否对应的过程包括:
通过所述BIOS ACM代码判断第一预留密钥的标识值与所述Boot Block代码的密钥的标识值是否对应;
如果否,拒绝运行所述Boot Block代码;
如果是,运行所述Boot Block代码,并通过所述BIOS ACM代码判断第二预留密钥的标识值与所述Main Block代码的密钥的标识值是否对应;
如果否,拒绝运行所述Main Block代码;
如果是,运行所述Boot Block代码。
6.根据权利要求1至5任一项所述执行方法,其特征在于,所述拒绝运行所述待运行代码的过程,还包括:
向用户终端发出代码错误的警告信息。
7.一种BIOS固件的执行系统,其特征在于,包括:
执行模块,用于运行支持Boot Guard功能的BIOS ACM代码;
判断模块,用于通过所述BIOS ACM代码判断预留密钥与待运行代码的密钥是否对应;如果是,触发确认模块,如果否,拒绝运行所述待运行代码;
确认模块,用于运行所述待运行代码。
8.根据权利要求7所述执行系统,其特征在于,所述判断模块具体用于:
通过所述BIOS ACM代码判断预留密钥的标识值与待运行代码的密钥的标识值是否对应。
9.一种BIOS固件的执行设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述BIOS固件的执行方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述BIOS固件的执行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810067884.0A CN108256333A (zh) | 2018-01-24 | 2018-01-24 | Bios固件的执行方法、系统、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810067884.0A CN108256333A (zh) | 2018-01-24 | 2018-01-24 | Bios固件的执行方法、系统、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108256333A true CN108256333A (zh) | 2018-07-06 |
Family
ID=62742698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810067884.0A Pending CN108256333A (zh) | 2018-01-24 | 2018-01-24 | Bios固件的执行方法、系统、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108256333A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109784063A (zh) * | 2018-12-30 | 2019-05-21 | 联想(北京)有限公司 | 信息处理方法、装置及电子设备 |
CN111259370A (zh) * | 2020-01-13 | 2020-06-09 | 苏州浪潮智能科技有限公司 | 一种fpga程序安全验证方法、系统、终端及存储介质 |
CN112115481A (zh) * | 2020-09-11 | 2020-12-22 | 苏州浪潮智能科技有限公司 | Bios刷新方法、装置、设备及可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202003361U (zh) * | 2010-01-22 | 2011-10-05 | 中国长城计算机深圳股份有限公司 | 一种可信计算机系统 |
CN104572168A (zh) * | 2014-09-10 | 2015-04-29 | 中电科技(北京)有限公司 | 一种bios自更新保护系统及方法 |
CN104966022A (zh) * | 2015-06-12 | 2015-10-07 | 浪潮电子信息产业股份有限公司 | 一种基于芯片的信任链构建方法和装置 |
CN105095768A (zh) * | 2015-08-20 | 2015-11-25 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟化的可信服务器信任链的构建方法 |
CN106250725A (zh) * | 2016-08-02 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 一种arm平台防止uefi程序被非法移植的方法 |
CN107480535A (zh) * | 2017-08-18 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种两路服务器的可信硬件层设计方法及装置 |
-
2018
- 2018-01-24 CN CN201810067884.0A patent/CN108256333A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202003361U (zh) * | 2010-01-22 | 2011-10-05 | 中国长城计算机深圳股份有限公司 | 一种可信计算机系统 |
CN104572168A (zh) * | 2014-09-10 | 2015-04-29 | 中电科技(北京)有限公司 | 一种bios自更新保护系统及方法 |
CN104966022A (zh) * | 2015-06-12 | 2015-10-07 | 浪潮电子信息产业股份有限公司 | 一种基于芯片的信任链构建方法和装置 |
CN105095768A (zh) * | 2015-08-20 | 2015-11-25 | 浪潮电子信息产业股份有限公司 | 一种基于虚拟化的可信服务器信任链的构建方法 |
CN106250725A (zh) * | 2016-08-02 | 2016-12-21 | 浪潮电子信息产业股份有限公司 | 一种arm平台防止uefi程序被非法移植的方法 |
CN107480535A (zh) * | 2017-08-18 | 2017-12-15 | 郑州云海信息技术有限公司 | 一种两路服务器的可信硬件层设计方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109784063A (zh) * | 2018-12-30 | 2019-05-21 | 联想(北京)有限公司 | 信息处理方法、装置及电子设备 |
CN111259370A (zh) * | 2020-01-13 | 2020-06-09 | 苏州浪潮智能科技有限公司 | 一种fpga程序安全验证方法、系统、终端及存储介质 |
CN112115481A (zh) * | 2020-09-11 | 2020-12-22 | 苏州浪潮智能科技有限公司 | Bios刷新方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2009087619A2 (en) | Stateless attestation system | |
EP3369028B1 (en) | Checking a security value calculated for a part of a program code | |
CN108256333A (zh) | Bios固件的执行方法、系统、设备及可读存储介质 | |
US10713352B2 (en) | Method and apparatus for trusted measurement | |
CN108491289A (zh) | 固件保护方法及装置 | |
CN111914303B (zh) | Linux系统运行时状态的安全度量与安全验证方法 | |
CN109117643B (zh) | 系统处理的方法以及相关设备 | |
KR20110088509A (ko) | 암호화 알고리즘 오공격 보호 | |
CN105447391A (zh) | 一种操作系统安全启动方法、启动管理器和系统 | |
CN106547648A (zh) | 一种备份数据处理方法及装置 | |
CN107480535A (zh) | 一种两路服务器的可信硬件层设计方法及装置 | |
CN114969712A (zh) | 一种基于lsm框架的可信程序动态度量方法及装置 | |
WO2021139308A1 (zh) | 云服务器监控方法、装置、设备及存储介质 | |
JP6257460B2 (ja) | 遠隔完全性検証システム、方法及びプログラム | |
CN116910816B (zh) | 一种提高隐私保护下的多方资产协同管理方法及装置 | |
US9860230B1 (en) | Systems and methods for digitally signing executables with reputation information | |
CN112989362A (zh) | 一种基于安全型芯片监测的cpu可信启动系统及方法 | |
JP6054225B2 (ja) | 構成情報管理装置および構成情報管理方法 | |
JP6324344B2 (ja) | アクセス権限情報管理システム、端末機器及びアクセス権限情報管理方法 | |
JP6591832B2 (ja) | ソフトウェア改ざん検知システム、及びネットワークセキュリティシステム | |
CN110334514B (zh) | 一种基于可信计算平台验证度量报告的方法及装置 | |
JP6284301B2 (ja) | 保守作業判定装置および保守作業判定方法 | |
JP2005182509A (ja) | 計算機システム並びにデータ改竄検出方法 | |
CN104268486A (zh) | 多级安全信任链构造方法及系统 | |
JP6088882B2 (ja) | 制御装置および制御方法 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180706 |