CN106104561B - 允许针对bios的安装使用测试密钥的方法和设备 - Google Patents
允许针对bios的安装使用测试密钥的方法和设备 Download PDFInfo
- Publication number
- CN106104561B CN106104561B CN201480077350.6A CN201480077350A CN106104561B CN 106104561 B CN106104561 B CN 106104561B CN 201480077350 A CN201480077350 A CN 201480077350A CN 106104561 B CN106104561 B CN 106104561B
- Authority
- CN
- China
- Prior art keywords
- test
- ios
- bios
- production
- order
- 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.)
- Expired - Fee Related
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 447
- 238000000034 method Methods 0.000 title claims description 36
- 238000004519 manufacturing process Methods 0.000 claims abstract description 184
- 238000012795 verification Methods 0.000 claims description 39
- 238000009434 installation Methods 0.000 claims description 38
- 238000012986 modification Methods 0.000 claims description 18
- 230000004048 modification Effects 0.000 claims description 18
- MPDGHEJMBKOTSU-YKLVYJNSSA-N 18beta-glycyrrhetic acid Chemical compound C([C@H]1C2=CC(=O)[C@H]34)[C@@](C)(C(O)=O)CC[C@]1(C)CC[C@@]2(C)[C@]4(C)CC[C@@H]1[C@]3(C)CC[C@H](O)C1(C)C MPDGHEJMBKOTSU-YKLVYJNSSA-N 0.000 claims 1
- 229960003720 enoxolone Drugs 0.000 claims 1
- 230000002265 prevention Effects 0.000 claims 1
- 238000010200 validation analysis Methods 0.000 abstract description 8
- 230000006870 function Effects 0.000 description 17
- 230000005540 biological transmission Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 235000012149 noodles Nutrition 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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
-
- 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/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- 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
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2147—Locking files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
本文的示例公开了一种控制用于安装测试基本输入输出系统(BIOS)的测试密钥的使用的命令。这些示例核实命令,并且基于测试密钥的允许利用测试BIOS来替换生产BIOS的至少一部分。
Description
技术领域
本发明涉及允许针对BIOS的安装使用测试密钥的方法和设备。
背景技术
计算系统能够包括代码以执行计算设备的各种启动功能。该代码可以包括基本输入/输出系统(BIOS)代码。BIOS代码可以初始化以及测试计算设备的硬件。另外,BIOS代码可以从计算设备的存储设备中加载引导代码和/或操作系统。
发明内容
根据本发明的一个方面,公开了一种计算设备,包括:安装在所述计算设备内的生产基本输入输出系统BIOS,所述生产BIOS与阻止所述生产BIOS的修改的生产密钥相关联;以及控制器,用于:接收控制用于安装测试基本输入输出系统BIOS的测试密钥的使用的命令,以在生产之后的BIOS代码开发期间用于所述计算设备,其中所述生产之后的BIOS代码开发用于对所述生产BIOS进行一个或多个调试和内部测试,所述测试密钥不同于所述生产密钥,并且通过利用所述测试BIOS替换所述生产BIOS的至少一部分来允许所述生产BIOS的修改;使用与所述生成BIOS相关联的所述生产密钥来核实所述命令;并且基于使用所述生产密钥的所述命令的核实来允许使用所述测试密钥;并且其中所述测试BIOS用于由所述控制器基于所述测试密钥的所述允许来替换所述生产BIOS的至少一部分。
根据本发明的另一方面,公开了一种包括指令的非暂时性机器可读贮存介质,当所述指令由计算设备的处理器执行时,使所述处理器:使用与安装在所述计算设备内的生产基本输入输出系统BIOS相关联的生产密钥来认证一命令,所述生产密钥用于阻止所述生产BIOS的修改,所述命令控制用于安装测试基本输入输出系统BIOS的测试密钥的使用,以在生产之后的BIOS代码开发期间用于所述计算设备,其中所述生产之后的BIOS代码开发用于对所述生产BIOS进行一个或多个调试和内部测试,所述测试密钥不同于所述生产密钥,并且通过利用所述测试BIOS替换生产BIOS的至少一部分来允许所述生产BIOS的修改;以及基于所述命令的所述认证允许使用所述测试密钥。
根据本发明的再一方面,公开了一种由计算设备可执行的方法,所述方法包括:接收控制用于安装测试基本输入输出系统BIOS的测试密钥的使用的命令,以在生产之后的BIOS代码开发期间用于所述计算设备,其中所述生产之后的BIOS代码开发用于对所述生产BIOS进行一个或多个调试和内部测试,所述生产BIOS与阻止所述生产BIOS的修改的生产密钥相关联,所述测试密钥不同于所述生产密钥,并且通过利用所述测试BIOS替换所述生产BIOS的至少一部分来允许所述生产BIOS的修改;使用所述生产密钥核实所述命令;以及基于所述命令的所述核实来安装所述测试BIOS以替换生产BIOS的至少一部分。
附图说明
在附图中,相同附图标记指的是相同组件或块。以下详细描述参考附图,其中:
图1是用于接收由控制器进行核实的命令的示例性计算设备的框图,并且基于该命令的核实,控制器允许针对替换非易失性存储器内的生产BIOS的至少一部分的测试BIOS的安装使用测试密钥;
图2是用于接收控制测试密钥的使用的命令的可由计算设备执行的示例性方法的框图,并且基于该命令的核实,该方法继续至安装测试BIOS以替换生产BIOS的至少一部分;
图3是用于接收控制测试密钥的使用的命令的可由计算设备执行的示例性方法的流程图,该方法使用不同于测试密钥的密钥以密码方式核实命令,并且基于核实,该方法允许针对测试BIOS的安装使用测试密钥;
图4是核实用于控制测试密钥的使用的命令的可由计算设备执行的、并且在安装测试BIOS之前确定计算设备是否处于有锁编程模式的示例性方法的流程图;
图5是核实用于控制测试密钥的使用的命令的可由计算设备执行的、一旦该命令被核实则重启计算设备并在测试BIOS的安装之前使用测试密钥核实测试BIOS的引导块的示例性方法的流程图;以及
图6是具有执行机器可读贮存介质中的指令以用于通过密码核实认证命令以允许测试密钥的使用的处理器的示例性计算设备的框图,测试密钥的允许使得能够安装测试BIOS以替换生产BIOS的至少一部分。
具体实施方式
BIOS代码在计算设备中的安装可以发生在制造层级或制造之后的层级并且贯穿本说明书中可以被称为生产BIOS。生产BIOS可以与在始化时用于核实的生产数字签名和生产密钥对相关联。一旦生产BIOS被安装,则包括对生产BIOS的修改可能是不可实行的。贯穿本说明书,修改可以被称为测试BIOS。除非发生测试BIOS的核实,否则生产BIOS的特定区域不可以被修改;然而,计算设备可以使用生产密钥对来核实测试BIOS。这导致测试BIOS失效,因此不允许安装测试BIOS以修改生产BIOS。因此,可能没有辨识与测试BIOS相关联的数字签名的实施方式。
为了应对这些问题,本文公开的示例提供了灵活的方法以在生产之后开发生产BIOS。示例公开了在安装测试BIOS以替换生产BIOS的至少一部分之前控制用于核实测试BIOS的测试密钥的使用的命令。测试BIOS的核实确保环境安全并且阻止非授权源的篡改。另外,此类生产之后的开发可以包括更新、调试、内部测试等。以这种方式,测试BIOS可以提供对可能已经被安装的生产BIOS的更新。此外,可以从与计算设备通信的外部源以受控方式开发生产BIOS。由于计算设备可以从远程位置(例如,外部源)接收更新,因此这进一步以无缝的方式提供对BIOS的更新。
在本文所讨论的另一个示例中,命令可以包括用于在安装测试BIOS之前核实测试BIOS的测试密钥。另外,在该示例中,计算设备内的控制器可以利用不同于测试密钥的密钥来核实命令。在该示例中,命令和测试BIOS从外部源传送并且各自在外部源利用不同的私有密钥被进行数字签名。例如,命令利用生产私有密钥进行数字签名,而测试BIOS利用测试私有密钥进行数字签名。由于在安装测试BIOS之前命令和测试BIOS两者都可以被核实,所以这提供附加的安全特性。
总之,本文公开的示例提供了在生产bios可能已经被安装在计算设备上时在计算设备上安装测试BIOS的便利性。另外,本文公开的示例提供了实施方式来核实用于BIOS的更新、开发、调试和/或内部测试的在生产之后对生产BIOS的修改。
现在参考附图,图1是用于接收控制用于安装测试BIOS 118的测试密钥的使用的命令104的示例性计算设备102的框图。计算设备102包括控制器106来在模块108处核实命令并且基于命令核实在模块110处允许测试密钥。另外,一旦在模块110处允许测试密钥,计算设备102利用测试BIOS 118来替换非易失性存储器112内的生产BIOS 116的至少一部分。生产BIOS 116和测试BIOS 118表示BIOS 114的不同的层级。例如,生产BIOS被考虑为在制造层级或制造之后的层级安装的BIOS 114。测试BIOS 118被考虑为对生产BIOS 116的修改。照此,测试BIOS 118可以包括对生产BIOS 116的更新、开发、或调试。以这种方式,替换生产BIOS 116的一部分的测试BIOS的安装提供生产之后的开发。使得测试BIOS 118能替换生产BIOS 116的一部分向BIOS 114提供用于提供更新等的便利性。照此,可以从远程位置以受控方式开发生产BIOS。
计算设备102是包括控制器106和非易失性存储器112的电子设备。照此,计算设备102的实施方式包括移动设备、客户端设备、个人计算机、台式计算机、膝上计算机、平板机、便携式设备、视频游戏控制台、或其他类型的电子设备。计算设备102可以接收作为由外部源(未图示)所传送的数据包的一部分的命令104。数据包可以包括命令104和测试BIOS文件。测试BIOS文件包括测试BIOS代码(即,测试BIOS)和/或与用于替换生产BIOS 116的对应部分的测试BIOS相对应的引导块。例如,测试BIOS可以包括用于在安装测试BIOS之前由测试公共密钥进行核实的引导块。在该实施方式中,命令104包括测试密钥,而测试BIOS文件包括测试BIOS代码和/或测试BIOS 118的引导块。在后面的图中详细地讨论该实施方式。作为数据包的一部分,命令104和测试BIOS 118两者都包括外部源作出的数字签名;然而,命令104和测试BIOS 118利用不同的私有密钥进行数字签名。例如,命令104利用生产私有密钥进行数字签名,而测试BIOS 118利用测试私有密钥进行数字签名。使用生产私有密钥来核实与命令104相关联的数字签名,并且使用作为命令104的一部分而被传送的测试公共密钥来核实与测试BIOS相关联的数字签名。在后面的图中详细地讨论该实施方式。
命令104是从外部源至计算设备102的、指导计算设备102在安装测试BIOS 118之前允许使用用于验证测试BIOS 118的命令104内的测试密钥的请求。在一实施方式中,命令104与由外部源生成的数字签名相关联。在该实施方式中,计算设备102在接收命令104之前接收与数字签名相对应的加密密钥。为了对命令104进行认证和/或验证,计算设备102使用该加密密钥来验证与命令104相关联的数字签名。计算设备102图示出计算系统,该计算系统可以通过诸如广域网(WAN)、局域网(LAN)、个域网(PAN)、网状网络、移动设备网络之类的网络或者能够向计算设备102传送命令104的其他类型的网络与外部源(未图示)进行通信。在另一实施方式中,外部源通过进入十分靠近计算设备102的范围内直接与计算设备102进行通信。
控制器106包括模块108和110,来核实由计算设备102接收的命令,进而一旦该命令被核实,控制器106允许使用测试密钥。根据在模块108处的命令的核实获取测试密钥,并且测试密钥被传送至嵌入式控制器(未图示)。在将测试BIOS 118安装到非易失性存储器112之前,嵌入式控制器使用测试密钥来核实附加到测试BIOS 118的数字签名。如较早解释的,可以将命令作为数据包的一部分来发送,并且照此命令可以包括测试密钥,并且计算设备102可以根据与命令104相关联的数字签名的核实获取测试密钥。控制器106的实施方式包括处理器、电子设备、计算系统、微处理器、微芯片、芯片组、电子电路、半导体、微控制器、中央处理单元(CPU)、或能够在模块108处核实命令并且基于命令的核实在模块110处允许使用测试密钥的其他类型的处理系统。在一实施方式中,控制器106可以包括嵌入式控制器,其基于在模块108处的命令核实来接收测试密钥。在另一实施方式中,控制器106是与嵌入式控制器不同的控制器,并且照此基于在模块108处的命令核实,控制器106向嵌入式控制器传送测试密钥和测试BIOS文件以用于在安装测试BIOS 118之前验证测试BIOS 118。
模块108和110在外部源处核实与命令104相关联的数字签名,并且基于核实,控制器106允许测试密钥。在模块108和110处,在核实命令时,可以从命令104获取测试密钥。在该实施方式中,将测试密钥作为命令104的一部分在数据包中传送。因此,一旦验证了与命令104相关联的数字签名,控制器可以从命令104中检索测试密钥。在一实施方式中,一旦检索到测试密钥,控制器106向嵌入式控制器传送测试密钥和测试BIOS文件。嵌入式控制器使用测试密钥来在安装测试BIOS 118之前验证与测试BIOS文件相关联的数字签名。模块108和110可以包括可由控制器106执行的指令、指令的集合、处理、操作、逻辑、技术、功能、固件和/或软件以验证用于验证测试BIOS的测试密钥的允许的命令104。
非易失性存储器112是计算设备102内的维持BIOS 114的贮存区。非易失性存储器112包括进一步包括生产BIOS 116的BIOS 114。可以利用测试BIOS 118的安装在非易失性存储器112内替换生产BIOS的各个部分之一。测试BIOS 118可以在功能、目的、和/或数量方面类似于或类同于测试BIOS 118所替换的生产BIOS 116的一部分,就此意义而言,生产BIOS 116的该部分对应于测试BIOS 118。以这种方式,测试BIOS 118更新、开发、和/或调试生产BIOS 116的该部分。非易失性存储器112是计算设备102内的存储器,即使计算设备102未上电,其也维持BIOS 114和其他数据。照此,非易失性存储器112的实施方式包括只读存储器、快闪存储器、铁电存储器、铁电RAM、磁存贮存存储器、nandorive、贮存驱动器、存储器组件,或此类维持BIOS 114的存储器组件的任何组合。在一实施方式中,非易失性存储器112可以进一步包括用于核实命令104的数字签名的对应公共密钥。
BIOS 114包括生产BIOS 116。尽管图1图示出了与生产BIOS 116分离的BIOS 114,但这是为了说明的目的而为之,并且并不用于限制的目的。例如,可以将BIOS 114和生产BIOS 116作为一个组件来包括。
生产BIOS 116是在安装测试BIOS 118之前存在于计算设备102上的BIOS 114的层级。在一实施方式中,在安装测试BIOS 118之前,生产BIOS 116被先前地安装在计算设备102上。如较早解释的,生产BIOS 116可以包括由制造商安装的BIOS。
测试BIOS 118是对生产BIOS 116的对应部分的修改。修改可以包括对生产BIOS116的更新、开发、和/或调试的方面。测试BIOS 118包括用于替换生产BIOS 116的那一部分的BIOS代码。如较早解释的,可以将测试BIOS 118作为测试BIOS文件的一部分包括在从外部源至计算设备102的数据包内。照此,测试BIOS文件可以包括测试BIOS代码和/或测试BIOS的数据的引导块。在该实施方式中,测试BIOS文件和/或测试BIOS 118在外部源处与数字签名相关联。基于在模块108处的命令核实从传送至计算设备102的命令104获取用于验证数字签名的对应的密钥对(即,测试公共密钥)。在这种意义上,命令104可以控制测试密钥,该测试密钥用于在在非易失性存储器112中安装测试BIOS 118之前核实与测试BIOS118相关联的数字签名。在后面的图中详细地描述该实施方式。另外,尽管图1图示了与命令104分开传送的测试BIOS 118,但这是为了说明的目的而为之,这是因为测试BIOS 118可以作为数据包的一部分而与命令104一起从外部源传送。
图2是可由计算设备执行的用于接收用于控制测试密钥的使用的命令的示例性方法的框图。一旦接收到命令,计算设备就核实该命令以安装替换生产BIOS的一部分的测试BIOS。如果计算设备未核实命令(例如,命令无效),则计算设备不安装测试BIOS。生产BIOS和测试BIOS表示不同层级的BIOS。例如,生产BIOS被考虑为是在利用生产私有密钥签名的制造层级安装的、或者可以包括利用生产私有密钥签名的制造之后的BIOS。测试BIOS被考虑为利用测试私有密钥签名的对生产BIOS的修改,并且照此可以包括对生产BIOS的更新、开发、或调试。在一旦BIOS可以处于生产之后的模式时使得测试BIOS能替换生产BIOS的一部分向BIOS提供便利性。照此,可以从与计算设备通信的外部源以受控方式开发生产BIOS。由于计算设备可以从远程位置(例如,外部源)接收更新,因此这进一步以无缝的方式提供对BIOS的更新。此外,替换生产BIOS的一部分的测试BIOS的安装使得能够在可以处于有锁编程模式的计算设备中针对更新等而访问BIOS。此外,计算设备和外部源可以利用不同的密钥对,每个密钥对表示在特定层级的BIOS的核实。在该实施方式中,外部设备和计算设备针对签名和验证利用两个不同的密钥对。例如,外部源可以利用生产私有密钥来对命令进行签名,并且计算设备利用对应的公共密钥(即,生产公共密钥)来核实签名的命令。另外,在该示例中,外部源可以利用测试私有密钥来签名测试BIOS代码,并且计算设备可以利用对应的公共密钥(即,测试公共密钥)来核实测试BIOS。在后面的图中更加详尽地解释该示例。测试BIOS文件和命令的数字签名的核实提供保障BIOS抵抗攻击的安全环境。在讨论图2时,可以参考图1中的组件以提供上下文示例。例如,计算设备102执行操作202-208来核实用于允许针对测试BIOS的安装使用测试密钥的命令。在另一示例中,图1中的控制器106执行操作202-208。此外,尽管图2被描述为由计算设备来实施,但它可以在其它适当的组件上执行。例如,可以以如在图6中的机器可读贮存介质604上的可执行指令的形式来实施图2。
在操作202处,计算设备接收用于控制测试密钥的使用的命令。在一实施方式中,远程源(例如,外部源)传送命令。在另一实施方式中,可以由可以与计算设备进行通信的诸如快闪驱动之类的外部驱动来传送命令。将命令作为数据包的一部分传送至计算设备。数据包可以包括命令和测试BIOS文件。命令包括测试密钥,而测试BIOS文件包括测试BIOS代码和/或测试BIOS的引导块。作为数据包的一部分,命令和测试BIOS文件两者都包括外部源作出的数字签名;然而,命令和测试BIOS文件利用不同的私有密钥进行数字签名。例如,命令利用生产私有密钥进行数字签名,而测试BIOS文件利用测试私有密钥进行数字签名。使用生产私有密钥在操作204处核实与命令相关联的数字签名。在另一实施方式中,使用作为命令的一部分传送的测试公共密钥来核实与测试BIOS文件相关联的数字签名。在后面的图中详细地讨论该实施方式。
在操作204处,计算设备核实在操作202处作为数据包的一部分接收的命令。如较早解释的,命令可以在外部源附加数字签名,因此计算设备在操作202处核实数字签名。一旦核实了命令,计算设备可以检索测试密钥并且将测试密钥和测试BIOS文件传送至嵌入式控制器。在该实施方式中,嵌入式控制器通过引导块初始化测试BIOS文件并且使用测试密钥来核实附加到测试BIOS文件的签名。在该实施方式中,计算设备内的处理单元可以获取用于核实的命令并且将引导块和测试密钥传送至嵌入式控制器。在另一实施方式中,计算设备利用生产公共密钥以密码方式核实命令。如果计算设备核实了命令,则方法继续到操作208并且安装测试BIOS以替换生产BIOS的一部分。如果计算设备核实命令失败,则方法继续到操作206并且不安装测试BIOS。
如果在操作204处命令核实失败,则在操作206处计算设备不安装测试BIOS。如果计算设备确定命令失败或无效,则这可以指示计算设备没有对使得能够核实附加到命令的数字签名的对应密钥对的访问权。这阻止未被授权的设备获得对测试密钥和/或测试BIOS的访问权。
在操作208处,一旦在操作204处核实了命令,计算设备安装测试BIOS文件内的测试BIOS代码以替换生产BIOS的一部分。生产BIOS的该一部分对应于测试BIOS代码,意味着测试BIOS代码可以在功能、目的、和/或数量方面类似于或类同于生产BIOS的该一部分。以这种方式,测试BIOS更新、开发、和/或调试生产BIOS的该一部分。在一实施方式中,嵌入式控制器使用在命令被核实时接收的测试密钥来核实附加到测试BIOS文件的数字签名。在该实施方式中,一旦核实了使用测试密钥的数字签名,嵌入式控制器获取测试BIOS文件内的测试BIOS代码并且替换生产BIOS的一部分。
图3是接收用于密码核实的命令的可由计算设备执行的示例性方法的流程图。基于命令核实,计算设备允许使用测试密钥并且安装测试BIOS以替换生产BIOS的一部分。计算设备利用不同于测试密钥的密钥以密码方式核实命令。以这种方式,外部源和计算设备针对签名和验证利用两个不同的密钥对。例如,外部源可以利用生产私有密钥来签名命令,并且计算设备利用对应的公共密钥(即,生产公共密钥)来核实签名的命令。另外在该示例中,外部源可以利用测试私有密钥来签名测试BIOS,并且计算设备可以利用对应的公共密钥(即,测试公共密钥)来核实测试BIOS。在后面的图中更加详尽地解释该示例。包括生产密钥对和测试密钥对的不同密钥对各自表示在特定层级的BIOS的核实。例如,生产密钥对核实命令和生产BIOS,而测试密钥对核实测试BIOS。在讨论图3时,可以参照图1中的组件以提供上下文示例。例如,计算设备102执行操作302-312来核实用于允许使用用于测试BIOS的安装的测试密钥的命令。在另一示例中,图1中的控制器106执行操作302-312。此外,尽管图3被描述为由计算设备来实施,但它可以在其它适当的组件上执行。例如,可以以如在图6中的机器可读贮存介质604上的可执行指令的形式来实施图3。
在操作302处,计算设备接收控制测试密钥的使用的命令。以这种方式,根据在操作304处的核实,命令可以指示计算设备允许测使用试密钥。测试密钥用于在安装替换生产BIOS的测试BIOS之前核实测试BIOS。操作302包括外部源向计算设备传送数据包。数据包可以包括命令、作为命令的一部分的测试密钥、可以包括测试BIOS代码和/或测试BIOS代码的引导块的测试BIOS文件。在该实施方式中,标志可以分离数据包内的各个组件。例如,标志可以分离命令、测试密钥、测试BIOS文件、和/或测试BIOS的引导块。在后面的图中详细地解释引导块实施方式。操作302可以与图2中的操作202功能类似。
在操作304处,计算设备核实在操作302处接收到的命令。计算设备使用与测试密钥不同的生产密钥对、通过密码核实来核实命令。操作304是计算设备可以核实在操作302处接收的命令的特定操作类型。在该操作中,计算设备可以接收包括命令和测试密钥的数据包。在一实施方式中,数据包部分包括包含测试密钥的命令、命令由外部源使用生产私有密钥来签名。因此,当计算设备接收具有命令的数据包时,计算设备利用生产公共密钥来验证数字签名。操作304是计算设备可以核实命令的特定操作类型。
在操作306处,如果在操作304处计算设备认为命令未被核实,则计算设备不允许使用测试密钥。如果计算设备认为命令无效,则方法可以继续到操作306和/或308。在一实施方式中,在不允许测试密钥时,计算设备在操作308不进一步安装测试BIOS。
在操作308处,计算设备不安装测试BIOS。阻止安装测试BIOS可以不允许替换生产BIOS的一部分的更新。在没有替换BIOS和/或具有BIOS的组件的情况下BIOS不接收更新和/或开发,就此意义而言,这提供严格的体验。操作308可以与图2中的操作206功能类似。
在操作310处,一旦在操作304处的命令被核实,计算设备允许使用测试密钥以核实测试BIOS文件。在一实施方式中,一旦命令已被在操作304处被核实既从命令中检索测试密钥。在该实施方式中,在操作302处接收的数据包可以包括向计算设备指示数据包的不同组件的标志。标志可以指示命令、测试密钥、和测试BIOS之间的分离。一旦命令在操作304处被核实,计算设备可以检索作为命令的一部分的测试密钥并且将测试密钥传送至嵌入式控制器以在安装测试BIOS代码之前核实测试BIOS文件的初始化或引导块。
在操作312处,计算设备安装测试BIOS以替换生产BIOS的一部分。用于替换生产BIOS的一部分的测试BIOS的安装使得计算设备能够接收对先前安装的BIOS的更新和/或开发。这提供附加的便利性,诸如向BIOS提供生产之后的开发。操作312可以与图2中的操作208功能类似。
图4是核实用于控制测试密钥的使用的命令的可由计算设备执行的示例性方法的流程图。一旦命令被核实,该方法可以在安装测试BIOS之前确定计算设备是否处于有锁编程模式。编程模式是在制造商处将代码写入到计算设备中以保证数据项安全的模式。此类默认代码可以包括默认设置、序列号、通用唯一识别码等。在编程模式的解锁期间,利用代码来编程计算设备。一旦代码写入到计算设备中,制造商可以锁定设备来保证诸如序列号的数据项安全。确定计算设备是否处于有锁编程模式在安装测试BIOS之前确保计算设备处于安全的模式。这确保BIOS没有被篡改和/或攻击。一旦确定计算设备处于有锁编程模式,方法可以继续到核实测试BIOS的引导块。引导块是一种启动代码,其使得计算设备能够引导诸如存储器驱动器的负载,并且在初始化驱动执行环境(DXE)中的较高层级项之前初始化BIOS内的较低层级的组件。DXE中的此类较高层级项可以包括微处理器和/或或其他嵌入式电路。以这种方式,在安装测试BIOS以替换生产BIOS的一部分之前对测试BIOS的引导块的核实保护DXE区域,这是因为如果与测试BIOS相对应的引导块无效,则决不将控制转给DXE。在讨论图4时,可以参考图1中的组件以提供上下文示例。例如,计算设备102执行操作402-414来核实用于允许使用用于测试BIOS的安装的测试密钥的命令。在另一示例中,图1中的控制器106执行操作402-414。此外,尽管图4被描述为由计算设备来实施,但它可以在其它适当的组件上执行。例如,可以以如在图6中的机器可读存贮介质604上的可执行指令的形式来实施图4。
在操作402处,计算设备从计算设备外部的源接收命令。除测试BIOS之外,命令与测试密钥相关联,并且被传送。在该实施方式中,命令与测试BIOS和测试密钥一起在数据包中传送。在数据包中,命令和测试BIOS在外部源使用两个不同的私有密钥来签名。例如,可以在外部源处通过生产私有密钥来对命令进行签名,而可以在将测试BIOS传输到计算设备之前通过测试私有密钥来签名测试BIOS。计算设备维持与生产私有密钥对应的密钥(即,生产公共密钥)来在操作404处核实命令的签名。为了获取与测试私有密钥对应的密钥对,计算设备核实命令并且从核实的命令中检索测试公共密钥。例如,数据包可以包括一串数据值、索引、和/或字符。照此,该“一串”可以包括指示命令和测试密钥和测试BIOS代码的分离的标志。在该示例中,计算设备可以核实命令并且辨识标志以从数据包中获取测试密钥。在一实施方式中,外部源可以包括与计算设备通信的便携式设备。外部源可以由制造商来管理,因此实现用于命令的签名的生产私有密钥的私密性。在私有生产密钥到达时,在操作404处,计算设备利用与私有生产密钥对应的公共密钥来核实签名的命令。操作402可以与图2-3中的操作202和302功能类似。
在操作404处,计算设备核实在操作402处接收到的命令。一旦核实该命令,该方法可以继续到操作408以确定计算设备是否处于有锁编程模式。如果该命令未被核实(即,无效),则该方法继续到操作406并且不确定计算设备是否处于有锁编程模式。操作404可以与图2中的操作204功能类似。
在操作406处,如果命令未被核实(即,无效),则方法可以继续到操作406,并且可以不确定计算设备是否处于有锁编程模式。可替代地,如果命令无效,这指示计算设备可能不具有对应的密钥对并且可能没有被授权以对命令进行核实。
在操作408处,计算设备可以确定计算设备是否处于有锁编程模式。如果计算设备处于有锁编程模式,则方法可以继续到操作412以核实测试BIOS的引导块。如果计算设备未处于有锁编程模式(即,处于无锁编程模式),则方法可以在操作410处停止并且不核实测试BIOS的引导块。
在操作410处,计算设备不核实与测试BIOS相对应的引导块。在一种实施方式中,计算设备可以确定计算设备是否处于无锁编程模式。在无锁编程模式中,计算设备允许多数程序化默认出厂设定,诸如序列号等。在无锁模式期间,BIOS的安全性可能不被保证在该模式期间可以重写数据。
在操作412处,计算设备使用在操作404检索的测试密钥来核实测试BIOS的启动数据块。在该操作处,引导块作为测试BIOS的初始化和/或引导程序数据操作。以这种方式,计算设备在执行测试BIOS的其他组件之前核实测试BIOS的初始化。在该实施方式中,由计算设备接收的数据包包括命令和作为命令的一部分的测试密钥。另外,数据包也包括测试BIOS代码和作为测试BIOS代码的一部分的引导块。作为数据包的一部分传送的测试BIOS代码的引导块使得计算设备能够核实测试BIOS的初始化。在另一实施方式中,测试BIOS可以包括引导块,意味着生产BIOS的更新是引导块。在该示例中,可以由测试BIOS的引导块来替换生产BIOS的引导块。在操作412处,计算设备可以将在操作402接收的数据包中所接收的测试BIOS传送至嵌入式控制器。在一实施方式中,可以在引导块的核实和/或在操作408确定计算设备是否处于有锁编程模式之前重启计算设备。在另一实施方式中,一旦核实了与测试BIOS相对应的数据的引导块,计算设备就可以将控制转给DXE以初始化较高层级组件。
一旦在操作412处核实了与测试BIOS相对应的引导块,则该方法在操作414处继续以安装替换生产BIOS的对应部分的测试BIOS。操作414可以与图2-3中的操作208和312功能类似。
图5是可由计算设备执行的核实用于允许使用测试密钥的命令的示例性方法的流程图,并且基于测试密钥的允许,计算设备安装与测试BIOS相对应的引导块。一旦安装了引导块的,计算设备就重启。计算设备然后可以使用测试密钥来核实测试BIOS的引导块。一旦核实了引导块,计算设备安装测试BIOS来替换存储器内的生产BIOS的至少一部分。由外部源将命令与测试密钥一起传送至计算设备。与测试密钥一起传送命令使得计算设备能够基于命令的核实来检索供使用的测试密钥。除测试密钥之外,源也传送与测试BIOS相对应的引导块以及测试BIOS代码。在该实施方式中,源和计算设备利用两个不同的密钥对。例如,命令使用用于签名和验证的生产密钥对,而测试BIOS代码使用用于签名和验证的测试密钥对。由外部源通过生产私有密钥来签名命令,而由外部源通过测试私有密钥来签名测试BIOS。计算设备利用对应的生产公共密钥来核实命令,并且基于该核实,计算设备从命令中检索测试公共密钥。计算设备利用测试公共密钥来验证由测试私有密钥签名的测试BIOS。因而,生产密钥对与可以用于核实引导块和/或测试BIOS代码的测试密钥对不同。
图5提供当生产BIOS可能已经被安装时对BIOS代码的更新。这进一步实现生产之后的BIOS代码开发,包括调试、内部测试等。基于命令核实安装用于替换生产bios的一部分的测试bios使得能够在安全环境中对BIOS进行更新和/或开发。以这种方式,该方法提供前门机制以使得能够在安装有生产BIOS的计算设备上安装测试BIOS。在讨论图5时,可以参考图1中的组件以提供上下文示例。例如,计算设备102执行操作502-518来核实用于允许使用用于测试BIOS的安装的测试密钥的命令。在另一示例中,图1中的控制器106执行操作502-518。此外,尽管图5被描述为由计算设备来实施,但它可以在其它适当的组件上执行。例如,可以以如在图6中的机器可读贮存介质604上的可执行指令的形式来实施图5。
在操作502处,计算设备接收用于控制测试密钥的使用的命令。将命令作为一串数据值、字符、和/或索引来发送,并且照此命令包括作为命令的一部分的测试密钥。除测试密钥之外,也可以将命令作为数据包的一部分来传送。如较早解释的,数据包可以包括命令、与测试BIOS相对应的引导块、以及测试BIOS代码。利用生产密钥对签名的命令到达计算设备,因此,一旦使用生产公共密钥对验证了命令,就可以由计算设备检索测试公共密钥。命令指示计算设备内的控制器信任测试密钥。可以在操作504处核实命令以向控制器发出允许使用测试密钥的信号。在该实施方式中,命令包括可以由生产私有密钥签名的测试公共密钥。因此,一旦使用与生产私有密钥相对应的生产公共密钥以密码方式核实了命令,就使得计算设备能够从命令中检索测试密钥。这使得计算设备能够在目前信任检索到的测试公共密钥用于认证引导块和/或测试BIOS。例如,一旦计算设备从核实的命令中检索测试密钥,可以将测试密钥传送至计算设备内的嵌入式控制器以用于附加的核实。在另一实施方式中,命令包括系统管理命令并且由外部源传送至计算设备。在进一步的实施方式中,将测试密钥和引导块传送至嵌入式控制器。操作502可以与图2-4中的操作202、302、以及402功能类似。
在操作504处,计算设备使用生产公共密钥来核实在操作504处接收到的命令。一旦核实了该命,计算设备可以向嵌入式控制器传送信任命令内的测试公共密钥的信号。在该实施方式中,如在操作512处,嵌入式控制器可以利用检索的测试公共密钥来验证测试BIOS的引导块。操作504可以与图2-4中的操作204、304、以及404功能类似。
如果在操作504处命令核实失败,则在操作506处计算设备不允许使用测试密钥。不允许使用测试密钥导致测试BIOS的安装的失败。操作506可以与图3中的操作306功能类似。
一旦在操作504处核实了命令,则在操作508处计算设备允许使用测试密钥。在操作510处,测试密钥用于核实测试BIOS的引导块。如较早解释的,在操作502处,可以向计算设备传送引导块、测试BIOS、以及命令。可以由外部源利用测试私有密钥来签名引导块和测试BIOS,因此允许测试公共密钥使得计算设备能够在操作512处核实引导块和测试BIOS。在该实施方式中,在操作512处,测试公共密钥用于验证测试BIOS的引导块。在另一实施方式中,在操作502处,将测试公共密钥作为命令的一部分来传送。在该实施方式中,一旦在操作504处的命令被核实,计算设备可以使用生产公共密钥来核实命令以检索测试公共密钥。在操作508的进一步实施方式中,计算设备向嵌入式控制器传送检索到的测试公共密钥以使用测试公共密钥来验证引导块和测试BIOS。操作508可以与图3中的操作310功能类似。
在操作510处,计算设备安装测试BIOS的引导块。一旦在操作512处重启计算设备,在操作514处使用测试密钥核实测试BIOS的引导块。
在操作512处,计算设备重启来切换对嵌入式控制器的控制。以这种方式,在操作514处验证测试BIOS的引导块来确保对可信BIOS更新的安全切换。在一实施方式中,在重启之前将在操作502处传送的测试BIOS的引导块保存到存储器,这确保测试BIOS根据核实准备好可用于替换生产BIOS的一部分。计算设备在操作512处重启,因此嵌入式控制器可以验证包括与测试BIOS对应的引导块的测试BIOS。一旦核实了测试BIOS的引导块,嵌入式控制器利用验证的测试BIOS来替换生产BIOS的对应的区域。
一旦在操作512处重启计算设备,则在操作514处计算设备核实测试BIOS的引导块。计算设备使用在操作508处检索的测试密钥核实测试BIOS的引导块。在一实施方式中,在操作502处传送的测试BIOS包括可以使用在操作508处检索的测试公共密钥核实的数据的引导块。可以将与测试BIOS相对应的引导块作为对生产BIOS的更新来发送,并且照此可以将其作为通过两个不同的密钥——生产私有密钥和测试私有密钥所签名的数据包来传送。因此,一旦验证了生产私有密钥的签名,计算设备获取测试公共密钥以在嵌入式控制器处验证引导块和/或测试BIOS的签名。一旦在操作512处重启计算设备,嵌入式控制器验证与测试BIOS相对应的引导块的签名。嵌入式控制器可以获取引导块和测试BIOS的副本用于替换生产BIOS部分。这使得嵌入式控制器能够在随后的引导中信任测试BIOS。另外,一旦在操作514处的引导块被核实,嵌入式控制器可以将控制切换到使得计算设备能够进行完整的启动的驱动执行环境(DXE)。DXE进而可以将控制切换到操作系统。
在操作516处,在与测试BIOS相对应的引导块核实失败时,计算设备不安装测试BIOS。这指示引导块是不安全的并且照此可以被破坏和/或易受攻击。操作516可以与图2-3中的操作206以及操作308功能类似。
在操作518处,计算设备安装测试BIOS以替换生产BIOS的一部分。嵌入式控制器可以基于在操作504处的命令核实来接收测试密钥。嵌入式控制器还可以接收可以由测试私有密钥签名并且与命令一起被传送至计算设备的测试bios的引导块。在该操作中,嵌入式控制器可以利用检索的测试公共密钥来验证测试bios的引导块。在另一操作中,一旦安装替换生产BIOS的一部分的测试BIOS,计算设备就可以将控制切换到操作系统以继续计算设备的引导。操作518可以图2-4中的操作208、操作312、以及操作414功能类似。
图6是具有用于执行机器可读存储介质604内的指令606-618的处理器602的计算设备600的框图。具体地,具有处理器602的计算设备600用于执行通过密码核实来认证命令以允许使用测试密钥的指令606-620,以及基于测试密钥的允许安装与测试BIOS相对应的引导块以使用测试密钥进行核实。另外,一旦引导块被核实,测试BIOS替换生产BIOS的至少一部分。尽管计算设备600包括处理器602和机器可读贮存介质604,但其也可以包括将适合于本领域技术人员的其他组件。例如,计算设备600可以包括图1中的非易失性存储器112。计算设备600是具有能够执行指令606-620的处理器602的电子设备,并且照此计算设备600的实施例包括计算设备、移动设备、客户端设备、个人计算机、台式计算机、膝上计算机、平板机、视频游戏控制台、或者能够执行指令606-620的其他类型的电子设备。指令606-620可以被实施为方法、功能、操作、和被实施为贮存在贮存介质604上的机器可读指令的其他处理,该贮存介质604可以是非暂时性的,诸如硬件贮存设备(例如,随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程ROM、电可擦除ROM、硬盘驱动器、和闪速存储器)。
处理器602可以读取、解码,并且执行指令606-620来认证命令以允许使用用于安装测试BIOS的测试密钥。在一实施方式中,处理器602通过执行指令608-610来执行指令606。在另一实施方式中,一旦执行了指令606,则处理器602执行指令612-620。具体地,处理器602执行指令606-610以:通过利用不同于测试密钥的密钥以密码方式核实命令来认证命令;以及一旦命令被认证,则检索测试密钥。在该实施方式中,可以利用私有密钥来签名命令,因此可以利用对应的公共密钥来核实命令。另外,在该实施方式中,可以将测试密钥作为命令的一部分来传送,并且由此一旦命令被核实,可以从以密码方式核实的命令中检索测试密钥。一旦命令被认证,则处理器602可以执行指令612-620以:基于命令的认证来允许测试密钥的使用;基于命令核实,安装与测试BIOS相对应的引导块;一旦允许使用测试密钥,则重启计算设备;以及利用测试密钥核实测试BIOS的引导块;以及一旦引导块被核实,则安装测试BIOS以替换生产BIOS的一部分。
机器可读贮存介质604包括处理器602读取、解码、以及执行的指令606-620。在另一实施例中,机器可读贮存介质604可以是电子、磁、光、存储器、贮存器、快闪驱动、或者包含或贮存可执行指令的其他物理设备。因而,机器可读存贮介质604例如可以包括随机存取存储器(RAM)、电可擦可编程只读存储器(EEPROM)、贮存器驱动器、存储器高速缓存、网络存储器、只读存储型光盘(CDROM)等。照此,机器可读贮存介质604可以包括能够被独立地利用和/或与处理器602结合以读取、解码、和/或执行机器可读贮存介质604的指令的应用和/或固件。可以将应用和/或固件贮存在机器可读贮存介质604上和/或将其贮存在计算设备600的另一个位置上。
总之,在本文公开的示例提供在生产bios已经被安装在计算设备上时在计算设备上安装测试BIOS的便利性。另外,在本文公开的示例提供核实针对生产BIOS的更新、开发、调试和/或内部测试的生产之后的BIOS的修改的实施方式。
Claims (12)
1.一种计算设备,包括:
安装在所述计算设备内的生产基本输入输出系统BIOS,所述生产BIOS与阻止所述生产BIOS的修改的生产公共密钥相关联;以及
控制器,用于:
从外部源接收包括测试BIOS、与所述测试BIOS相关联的测试公共密钥、用于所述测试BIOS的引导块,和控制在生产之后的BIOS代码开发期间用于安装所述测试BIOS的所述测试公共密钥的使用的命令的数据包,其中所述生产之后的BIOS代码开发用于对所述生产BIOS进行一个或多个调试和内部测试,所述测试公共密钥不同于所述生产公共密钥,并且通过利用所述测试BIOS替换所述生产BIOS的至少一部分来允许所述生产BIOS的修改;
通过认证所述数据包被与所述生产公共密钥相对应的生产私有密钥在所述外部源处签名,使用与所述生产BIOS相关联的所述生产公共密钥来核实所述命令,其中所述生产私有密钥在制造层级签名所述生产BIOS;
基于使用所述生产公共密钥的所述命令的核实来允许使用用于所述测试BIOS的安装的所述测试公共密钥,所述测试公共密钥通过认证所述测试BIOS被与所述测试公共密钥相对应的测试私有密钥在所述外部源处签名来用于所述测试BIOS的安装;
响应于核实所述命令以及允许所述测试公共密钥的使用,安装用于所述测试BIOS的所述引导块;
在所述引导块的安装之后重启所述计算设备;
一旦所述计算设备被重启,使用所述测试公共密钥认证用于所安装的用于所述测试BIOS的所述引导块;并且
响应于所安装的所述引导块的认证,安装所述测试BIOS以替换所述生产BIOS的所述部分。
2.根据权利要求1所述的计算设备,进一步包括:
非易失性存储器,用于存储来自所述控制器的所述测试BIOS以替换所述生产BIOS的所述至少一部分。
3.根据权利要求1所述的计算设备,其中所述生产BIOS是在所述测试BIOS之前安装在所述计算设备上的。
4.根据权利要求1所述的计算设备,其中,所述计算设备在所述测试BIOS的安装之前重启,所述测试BIOS的安装替换所述生产BIOS的所述至少一部分。
5.一种包括指令的非暂时性机器可读贮存介质,当所述指令由计算设备的处理器执行时,使所述处理器:
从外部源接收包括测试基本输入输出系统BIOS、与所述测试BIOS相关联的测试公共密钥、用于所述测试BIOS的引导块,和控制在生产之后的BIOS代码开发期间用于安装所述测试BIOS的所述测试公共密钥的使用的命令的数据包,所述测试公共密钥不同于所述生产公共密钥,并且通过利用所述测试BIOS替换所述生产BIOS的至少一部分来允许所述生产BIOS的修改;
通过认证所述数据包被与所述生产公共密钥相对应的生产私有密钥在所述外部源处签名,使用与所述生产BIOS相关联的所述生产公共密钥来认证所述命令,其中所述生产私有密钥在制造层级签名所述生产BIOS;
通过认证所述测试BIOS被与所述测试公共密钥相对应的测试私有密钥在所述外部源处签名,来基于所述命令的所述认证允许使用用于所述测试BIOS的安装的所述测试公共密钥;
响应于核实所述命令以及允许所述测试公共密钥的使用,确定所述计算设备是否处于有锁编程模式;
响应于确定所述计算设备处于所述有锁编程模式,核实用于所述测试BIOS的所述引导块;
响应于核实所述引导块,安装所述测试BIOS以替换所述生产BIOS的所述部分。
6.根据权利要求5所述的包括指令的非暂时性机器可读贮存介质,其中,所述命令包括所述测试公共密钥和所述测试BIOS,并且其中,所述处理器用于通过以下步骤认证所述命令:
利用所述生产公共密钥以密码方式核实所述命令;并且
从所述命令中检索所述测试公共密钥。
7.一种由计算设备可执行的方法,所述方法包括:
从外部源接收包括测试基本输入/输出系统BIOS、与所述测试BIOS相关联的测试公共密钥、用于所述测试BIOS的引导块,和控制在生产之后的BIOS代码开发期间用于安装用于所述计算设备的所述测试BIOS的所述测试公共密钥的使用的命令的数据包,所述生产BIOS与阻止所述生产BIOS的修改的生产公共密钥相关联,所述测试公共密钥不同于所述生产公共密钥,并且通过利用所述测试BIOS替换所述生产BIOS的至少一部分来允许所述生产BIOS的修改;
通过认证所述数据包被与所述生产公共密钥相对应的生产私有密钥在所述外部源处签名,来使用所述生产公共密钥核实所述命令,其中所述生产私有密钥在制造层级签名所述生产BIOS;
通过认证所述测试BIOS被与所述测试公共密钥相对应的测试私有密钥在所述外部源处签名,来基于使用所述生产公共密钥的所述命令的核实来允许使用用于安装所述测试BIOS的所述测试公共密钥;
响应于核实所述命令以及允许所述测试公共密钥的使用,安装用于所述测试BIOS的所述引导块;
在所述引导块的安装之后重启所述计算设备;
一旦所述计算设备被重启,使用所述测试公共密钥认证所安装的用于所述测试BIOS的所述引导块;
响应于所安装的所述引导块的认证,安装所述测试BIOS以替换所述生产BIOS的所述部分。
8.根据权利要求7所述的方法,其中,所述命令包括所述测试公共密钥,并且其中,核实所述命令包括:
利用所述生产公共密钥以密码方式核实所述命令。
9.根据权利要求7所述的方法,进一步包括:
基于所述命令的所述核实允许使用所述测试公共密钥。
10.根据权利要求7所述的方法,其中,所述命令包括所述测试公共密钥,并且其中,基于所述命令的所述核实来安装所述测试BIOS以替换所述生产BIOS的至少一部分包括:
基于所述命令的所述核实允许使用所述测试公共密钥;
重启所述计算设备;
通过使用所述测试公共密钥来核实所述测试BIOS的引导块;以及
一旦核实了所述测试BIOS的引导块,安装所述测试BIOS以替换所述生产BIOS的所述至少一部分。
11.根据权利要求7所述的方法,进一步包括:
一旦核实了所述命令,确定所述计算设备是否处于有锁编程模式;
一旦确定了所述设备处于所述有锁编程模式,在所述测试BIOS的安装之前利用所述测试公共密钥来核实所述测试BIOS的引导块。
12.根据权利要求7所述的方法,其中,如果所述命令的所述核实失败,则所述测试BIOS的安装失败。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2014/032258 WO2015147879A1 (en) | 2014-03-28 | 2014-03-28 | Allowing use of a test key for a bios installation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106104561A CN106104561A (zh) | 2016-11-09 |
CN106104561B true CN106104561B (zh) | 2019-10-22 |
Family
ID=54196193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480077350.6A Expired - Fee Related CN106104561B (zh) | 2014-03-28 | 2014-03-28 | 允许针对bios的安装使用测试密钥的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10621330B2 (zh) |
CN (1) | CN106104561B (zh) |
TW (1) | TWI570591B (zh) |
WO (1) | WO2015147879A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3073751C (en) * | 2017-09-06 | 2023-08-15 | Absolute Software Corporation | Secure firmware interface |
US10613955B2 (en) * | 2017-12-28 | 2020-04-07 | Intel Corporation | Platform debug and testing with secured hardware |
TWI684887B (zh) * | 2018-06-26 | 2020-02-11 | 和碩聯合科技股份有限公司 | 自動驗證方法與系統 |
DE112019007584T5 (de) * | 2019-07-29 | 2022-04-21 | Hewlett Packard Enterprise Development Lp | Schnittstellencontroller für handelsübliche geräte |
WO2021216046A1 (en) * | 2020-04-21 | 2021-10-28 | Hewlett-Packard Development Company, L.P. | Bios updates |
US20220156377A1 (en) * | 2020-11-19 | 2022-05-19 | Microsoft Technology Licensing, Llc | Firmware runtime patch secure release process |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7117376B2 (en) * | 2000-12-28 | 2006-10-03 | Intel Corporation | Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations |
US6976136B2 (en) | 2001-05-07 | 2005-12-13 | National Semiconductor Corporation | Flash memory protection scheme for secured shared BIOS implementation in personal computers with an embedded controller |
US20020169976A1 (en) * | 2001-05-10 | 2002-11-14 | Schelling Todd A. | Enabling optional system features |
US7412053B1 (en) | 2002-10-10 | 2008-08-12 | Silicon Image, Inc. | Cryptographic device with stored key data and method for using stored key data to perform an authentication exchange or self test |
US7543277B1 (en) * | 2003-06-27 | 2009-06-02 | American Megatrends, Inc. | Method and system for remote software debugging |
US7017040B2 (en) * | 2003-12-04 | 2006-03-21 | Intel Corporation | BIOS update file |
US20060015776A1 (en) | 2004-07-16 | 2006-01-19 | Yu-Mei Lee | Built-in computer power-on memory test method |
US7770003B2 (en) * | 2004-12-29 | 2010-08-03 | Intel Corporation | Updating firmware securely over a network |
US20060194603A1 (en) * | 2005-02-28 | 2006-08-31 | Rudelic John C | Architecture partitioning of a nonvolatile memory |
SE531992C2 (sv) * | 2006-02-24 | 2009-09-22 | Oniteo Ab | Metod och system för säker programvaruprovisionering |
US7613952B2 (en) * | 2006-12-29 | 2009-11-03 | Inventec Corporation | Method for facilitating BIOS testing |
DE102008011925B4 (de) | 2008-02-29 | 2018-03-15 | Globalfoundries Inc. | Sicheres Initialisieren von Computersystemen |
US9652755B2 (en) * | 2009-08-11 | 2017-05-16 | Silver Spring Networks, Inc. | Method and system for securely updating field upgradeable units |
US8296579B2 (en) * | 2009-11-06 | 2012-10-23 | Hewlett-Packard Development Company, L.P. | System and method for updating a basic input/output system (BIOS) |
US20110119474A1 (en) * | 2009-11-16 | 2011-05-19 | Bally Gaming, Inc. | Serial Peripheral Interface BIOS System and Method |
US8694737B2 (en) | 2010-06-09 | 2014-04-08 | Micron Technology, Inc. | Persistent memory for processor main memory |
US20120137137A1 (en) * | 2010-11-30 | 2012-05-31 | Brickell Ernest F | Method and apparatus for key provisioning of hardware devices |
US8893102B2 (en) | 2011-07-27 | 2014-11-18 | Oracle International Corporation | Method and system for performing backward-driven path-sensitive dataflow analysis |
US8949813B2 (en) * | 2011-07-29 | 2015-02-03 | Dell Products Lp | Systems and methods for facilitating activation of operating systems |
EP2798566B1 (en) | 2011-12-31 | 2019-10-09 | Intel Corporation | Securing device environment for trust provisioning |
US11194586B2 (en) * | 2013-05-01 | 2021-12-07 | Insyde Software Corp. | Secure boot override in a computing device equipped with unified-extensible firmware interface (UEFI)-compliant firmware |
CN104679530B (zh) * | 2013-11-26 | 2017-12-29 | 英业达科技有限公司 | 服务器系统与固件更新方法 |
-
2014
- 2014-03-28 WO PCT/US2014/032258 patent/WO2015147879A1/en active Application Filing
- 2014-03-28 US US15/118,578 patent/US10621330B2/en not_active Expired - Fee Related
- 2014-03-28 CN CN201480077350.6A patent/CN106104561B/zh not_active Expired - Fee Related
-
2015
- 2015-03-27 TW TW104110020A patent/TWI570591B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
CN106104561A (zh) | 2016-11-09 |
US10621330B2 (en) | 2020-04-14 |
TW201602835A (zh) | 2016-01-16 |
US20170053111A1 (en) | 2017-02-23 |
TWI570591B (zh) | 2017-02-11 |
WO2015147879A1 (en) | 2015-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7086908B2 (ja) | 対象のコンピューティング装置で実施される動作を認証する方法 | |
JP6802318B2 (ja) | モバイル通信装置およびその動作方法 | |
CN106104561B (zh) | 允许针对bios的安装使用测试密钥的方法和设备 | |
TWI648649B (zh) | 行動通信裝置及其操作方法 | |
CN110651261A (zh) | 具有用于鉴认的唯一识别符的安全存储器装置 | |
TWI529555B (zh) | 有關韌體認證之系統、方法及非暫態處理器可讀取媒體 | |
US20170180139A1 (en) | Key revocation | |
US10855451B1 (en) | Removable circuit for unlocking self-encrypting data storage devices | |
US12019752B2 (en) | Security dominion of computing device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191022 |
|
CF01 | Termination of patent right due to non-payment of annual fee |