CN110663027A - 使用硬件保护操作系统配置 - Google Patents
使用硬件保护操作系统配置 Download PDFInfo
- Publication number
- CN110663027A CN110663027A CN201880034664.6A CN201880034664A CN110663027A CN 110663027 A CN110663027 A CN 110663027A CN 201880034664 A CN201880034664 A CN 201880034664A CN 110663027 A CN110663027 A CN 110663027A
- Authority
- CN
- China
- Prior art keywords
- operating system
- computing system
- system configuration
- computing
- receiving
- 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.)
- Granted
Links
Images
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
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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/034—Test or assess a computer or a system
-
- 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
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
Abstract
一种方法,系统和计算机程序产品包括在计算系统的启动状态下接收加载操作系统配置的请求。该方法还包括响应于接收到请求而自动存储用于认证操作系统配置的数字密钥。该方法还包括重启计算系统。响应于重启计算系统并且当计算系统处于预启动状态时,该方法包括:证实所存储的数字密钥是用于有效操作系统配置的数字密钥;从物理地耦接到计算系统的用户接口接收确认所接收的请求的信号;响应于接收到信号,使用数字密钥认证操作系统配置;并且响应于认证,启动操作系统配置。
Description
背景技术
本公开涉及采用操作系统的安全启动的计算系统。更具体地,本公开涉及使用硬件来保护计算系统的操作系统配置。
计算系统具有可以限制用户对文件系统对象的访问的访问控制策略。例如,访问控制策略可以限制用户可以修改的文件,或者它们可以禁止用户加载给定的操作系统模块。可以通过在计算系统上执行的操作系统的配置来执行访问控制策略。反过来,操作系统配置可以通过在使用操作系统内核将计算系统启动到适合于执行用户应用程序的状态之前设置与该内核的给定配置相对应的内核参数来确定。一旦使用给定的操作系统配置启动计算系统,由该配置执行的访问控制策略可以保持有效,直到计算系统在不同的操作系统配置下启动计算系统,如果计算系统允许的话。
一些计算系统使用户从一组不同的操作系统配置中选择。在这些计算系统上具有有效帐户的用户可以通过选择和启动与当前正在启动的配置相比具有不同访问控制策略的操作系统配置来改变计算系统的访问控制策略(或访问控制策略的执行)。
对于用户而言,使用帐户凭证(例如,用户名和密码)来远程地访问计算系统是常见的。用户远程地访问计算系统通常服从与用户从本地终端访问计算系统相同的访问控制策略。因此,计算系统的授权用户可以使用先前描述的过程远程地改变计算系统的访问控制策略。然而,这种制度的产物是能够获得授权用户对计算系统的访问凭证的未授权用户也可以远程改变计算系统的访问控制策略,可能提升他们对计算系统的访问权限。
鉴于上述情况,需要一种技术来使得计算系统的用户从一组不同的操作系统配置中选择,并具有如下保证:在计算系统上启动所选配置之前,所选择的配置还没有被修改,改变或以其它方式篡改。
发明内容
本公开的实施例包括方法,系统和计算机程序产品,其使得计算系统的用户从一组不同的操作系统配置中选择,并保证在计算系统上启动所选配置之前所选择的配置还没有被修改,改变或以其它方式篡改。在此公开的实施例提供了在安全性,访问灵活性和计算系统管理上的优点。
根据本公开的实施例,一种方法包括在计算系统的启动状态下,接收加载操作系统配置的请求。该方法还包括响应于接收到请求,自动存储用于认证操作系统配置的数字密钥。该方法还包括重启计算系统。响应于重启计算系统并且当计算系统处于预启动状态时,该方法包括:证实所存储的数字密钥是用于有效操作系统配置的数字密钥;从物理地耦接到计算系统的用户接口接收确认所接收的请求的信号;响应于接收到该信号,使用数字密钥认证该操作系统配置;以及响应于认证,启动该操作系统配置。
根据本公开的各种实施例,一种系统包括用户接口终端,物理地耦接到该用户接口终端并且具有存储器,处理器的计算系统,以及计算机可读存储介质,在该计算机可读存储介质中体现程序指令。程序指令可由处理器执行以使系统在计算系统的启动状态下接收加载操作系统配置的请求。程序指令还可由处理器执行,以使系统响应于接收到请求而自动存储用于认证操作系统配置的数字密钥。然后重启计算系统。
响应于重启该计算系统并且在该计算系统处于预启动状态时,该程序指令进一步可由该处理器执行以使该系统:证实所存储的数字密钥是用于有效操作系统配置的数字密钥;从物理地耦接到计算系统的用户接口接收确认所接收的请求的信号;响应于接收到该信号,使用数字密钥认证操作系统配置;并且响应于认证,启动该操作系统配置。
各种实施例涉及一种用于安全地启动的计算系统的计算机程序产品。该计算机程序产品包括具有体现在其中的程序指令的计算机可读存储介质,其中,计算机可读存储介质不是暂时性信号,并且程序指令可由处理器执行以使计算系统执行如下的方法,该方法包括在计算系统的启动状态下,接收加载操作系统配置的请求。该方法还包括响应于接收到请求而自动存储用于认证操作系统配置的数字密钥。该方法然后包括重启计算系统。
响应于重启该计算系统并且在该计算系统处于预启动状态时,该方法还包括:证实所存储的数字密钥是用于有效操作系统配置的数字密钥;从物理地耦接到计算系统的用户接口接收确认所接收的请求的信号;响应于接收到信号,使用数字密钥认证操作系统配置;并且响应于认证,启动操作系统配置。
根据本公开的替代实施例中,一种方法包括从在计算设备上的第一操作系统配置下执行的用户应用程序接收执行一组操作系统配置中的第二操作系统配置的请求。第二操作系统配置由公钥-私钥对中的私钥进行签名,并且至少包括采用一组参数编译的操作系统内核,该组参数与第二操作系统配置的访问控制策略相关联。该方法还包括响应于接收到请求,在计算设备的非易失性存储器中存储与私钥相对应的公钥。该方法还包括在计算设备的预启动状态期间执行受信应用程序以:证实存储在非易失性存储器中的公钥是用于有效操作系统配置的公钥;从到计算设备的本地接口接收确认所接收的请求的信号;当信号确认该请求时,将公钥移动到受保护存储器中;并且执行可访问受保护存储器的启动加载程序,以使用存储在受保护存储器中的公钥来认证第二操作系统,并响应于认证,启动第二操作系统配置。
根据本公开的替代实施例,一种系统包括用户接口终端,物理地耦接到该用户接口终端并具有存储器,处理器的计算系统,以及计算机可读存储介质,在该计算机可读存储介质中体现程序指令。程序指令可由处理器执行以使系统从在计算设备上的第一操作系统配置下执行的用户应用程序接收执行一组操作系统配置中的第二操作系统配置的请求。第二操作系统配置由公钥-私钥对中的私钥进行签名,并且至少包括采用一组参数编译的操作系统内核,该组参数与第二操作系统配置的访问控制策略相关联。
该程序指令进一步可由该处理器执行以使该系统响应于接收到该请求,在计算设备的非易失性存储器中存储与私钥对应的公钥。程序指令还可由处理器执行,以使系统在计算设备的预启动状态期间执行受信应用程序以:证实存储在非易失性存储器中的公钥是用于有效操作系统配置的公钥。从用户接口终端接收确认所接收的请求的信号;当信号确认该请求时,将公钥移动到受保护存储器中;并且执行可访问受保护存储器的启动加载程序,以使用存储在受保护存储器中的公钥来认证第二操作系统,并响应于认证来启动第二操作系统配置。
上述发明内容并非旨在描述本公开的每个所示实施例或每种实施方式。
附图说明
包含在本申请中的附图被并入并且形成说明书的一部分。它们示出了本公开的实施例,并且与说明书一起用于解释本公开的原理。附图仅是对某些实施例的说明,并不限制本公开。
图1描绘了根据各种实施例的用于使用硬件和软件安全地启动从一组操作系统配置中选择的操作系统配置的一组计算机实现的操作的流程图。
图2描绘了根据各种实施例的用于使用硬件和软件安全地启动从一组操作系统配置中选择的操作系统配置的一组计算机实现的操作的示例的流程图。
图3描绘了根据各种实施例的用于使用硬件和软件安全地启动从一组操作系统配置中选择的操作系统配置的示例系统的框图。
图4描绘了根据各种实施例的用于使用硬件和软件安全地启动用户从一组操作系统配置对操作系统配置的选择的一组计算机实现的操作的流程图。
图5描绘了根据各种实施例的用户和计算系统之间的交互的交互图,该计算系统执行一组计算机实现的操作,用于使用硬件和软件安全地启动从一组操作系统配置中选择的操作系统配置。
图6描绘了根据各种实施例的具有硬件和软件组件的计算机系统的框图,该硬件和软件组件用于使用硬件和软件安全地启动从一组操作系统配置中选择的操作系统配置。
在本发明可修改为各种修改和替代形式的情况下,其细节已通过在附图中的示例的方式来示出,并且将进行详细描述。然而,应该理解,意图不是将本发明限制于所描述的特定实施例。相反,其目的是涵盖落入本发明的精神和范围内的所有修改,等同物和替代物。
具体实施方式
本公开的各方面涉及利用操作系统的安全启动的计算系统,更特别的方面涉及在使用硬件启动之前使得计算系统的操作系统配置安全。虽然本公开不一定限于这些应用,但是通过使用该上下文的各种示例的讨论可以理解本公开的各个方面。
本公开的实施例包括方法,系统和计算机程序产品,其可以使计算系统的用户从一组不同的操作系统配置中选择,并保证所选择的配置在计算系统上启动之前还没有被修改,改变或者以其它方式篡改。这里公开的实施例提供了在安全性,访问灵活性和计算系统管理上的优点。
本公开的实施例基于这样的认识:安全启动技术可使用本文所述的技术来扩展或以其它方式增强,以尤其确保操作系统配置的真实性,在预启动环境中从存储在计算系统上的一组操作系统配置选择。安全启动技术,例如统一可扩展固件接口安全启动(以下称为“UEFI安全启动”),通过防止在启动操作系统之前执行未受保护的计算机可执行代码(以下称为“代码”)来增强预启动环境中的计算系统的安全性。在一个示例中,在技术系统的制造过程中,安全启动技术将一组非对称密钥对(例如,公钥-私钥对)中的一组(例如,一个或多个)公钥存储在计算系统的受保护非易失性存储器中的一组变量中。批准(或授权)在计算系统上执行的每个应用程序(例如,计算机程序)使用在所存储的一组公钥中具有对应公钥的私钥来签名。当计算系统处于预启动状态时在执行应用程序之前,受信应用程序通过验证应用程序是否使用与所存储的一组公钥中的一个公钥对应的私钥进行数字签名来验证将要执行的应用程序的可执行代码完整性。这种安全启动技术的一个问题是一组授权签名者(或一组私钥)是在计算系统的制造之前或同时确定的。例如,使计算系统安全地启用新的操作系统可能需要让一组预定授权签名者中的一个在将其部署到计算系统之前对操作系统进行数字签名。
安全启动技术可提供一组受信应用程序,以使最终用户能够添加额外的公钥来认证可启动到计算系统的应用程序。例如,UEFI安全启动提供“mokutil”,“shim”和“grub”应用程序,以使用户能够将公钥添加到制造期间提供的一组公钥。登录到在计算系统(在该计算系统中将添加新公钥(例如,对应于要添加到计算系统的新操作系统内核映像(image)))上启动的操作系统的用户执行mokutil以提供该新公钥。mokutil应用程序将新公钥写入非易失性存储器,计算系统下次启动时只能由shim访问该非易失性存储器。shim应用程序可以是嵌入在例如计算系统的受保护存储器中的受信应用程序。另外,计算系统可以被配置为确保shim是在重启计算系统之后执行的第一个应用程序。下次重启计算系统时,在由mokutil进行的更新之后,UEFI安全启动系统将验证并执行shim应用程序。然后,shim应用程序读取由mokutil写入的非易失性存储器区域,以确定是否存储了新的公钥。响应于检测到新公钥,shim可以在本地控制台处提示用户确认是否应该将新公钥提交给所存储的公钥的集合或数据库。如果用户未提供肯定确认,则shim擦除(或删除)新的公钥。或者,当用户提供肯定确认时,通过调用shim应用程序,shim将新公钥移动到grub专用的非易失性存储器的另一区域(例如,存储所有已接受的公钥的数据库)。此后,新的公钥可用于验证新的内核映像。
为了安全地启动操作系统内核,shim在向计算系统提交任何新的密钥之后认证和执行grub。grub使用其配置文件来确定将要启动的内核映像。在识别将要启动的操作系统内核之后,通过调用shim应用程序来验证内核映像是否由与存储在计算系统的公钥数据库中的一个公钥相对应的私钥进行签名,grub认证并启动内核映像。一旦启动,操作系统内核可以类似地认证内核模块,因为它们被请求加载到计算系统上。
这些安全启动技术可以使用户能够在所提供的计算机系统上加载一个新的操作系统(用户可以访问操作系统的正确签名版本),并保持与用于对操作系统进行签名的私人密钥相对应的公钥。然而,已知的安全启动技术不能使用户从存储在计算系统上的一组操作系统配置中选择操作系统配置以在计算系统上启动。此外,已知的安全启动技术不能使计算系统确保在不被修改或以其它方式被篡改的情况下启动所选择的操作系统配置。
本公开的实施例提供方法,系统,以及计算机程序产品,其通过如下步骤改进已知的安全启动技术:接收启动来自一组操作系统配置的操作系统配置的请求,该组操作系统配置由非对称密钥对中的私钥数字签名并存储在系统上,自动向被配置为更新受保护的公钥数据库的受信应用程序提供非对称密钥对中的公钥,使用用户在计算系统中的实际存在来验证加载操作系统配置的请求,以及认证和启动操作系统配置。
如本文所使用的,受信应用程序是如下的应用程序,其可执行代码被认证或以其它方式保证在没有授权改变代码的情况下不由一方改变。可以使用已知的数字签名和验证技术来认证可执行代码。例如,通过使用非对称密钥对中的私钥加密代码,可以对可执行代码签名。然后,通过使用非对称密钥对中的公钥来验证已签名代码的签名,可以认证代码的完整性。当由于例如签名后对已签名代码的改变而无法验证已签名代码的签名时,验证失败。
如本文所使用的,密钥数据库可以是受保护存储器中被配置为存储一组数字密钥(例如,非对称密钥对中的公钥)的区域。受保护存储器可以是仅由受信应用程序或应用程序中的选定组可访问(例如,可读或可写)的存储器。
如本文所使用的,计算系统的预启动状态可以是在计算系统重启之后并且在计算系统启动操作系统之前的计算系统的状态。操作系统的启动状态是在计算系统上启动操作系统之后的计算系统的状态。
如本文所使用的,操作系统配置可以是具有可启动的操作系统内核映像(以下简称,“操作系统内核”或“内核”)和一组相关联的一个或多个内核参数值(例如,参数值)的数据对象。在一些实施例中,内核参数值可以是被硬编码的(例如,编译成操作系统内核的可执行代码)固定命令行参数值。对内核参数值进行硬编码可以包括在编译操作系统内核时使用一个或多个编译器选项将参数值提供给编译器。对内核参数值进行硬编码可以额外包括使用防止启动加载程序或其它应用程序覆盖硬编码的内核参数值的编译选项来编译操作系统内核。在某些实施例中,可以在与操作系统内核分开的数据对象中提供内核参数值。
本文所用的数据对象可以是单个内核映像。数据对象也可以是具有操作系统内核和一组附加数据对象的数据结构。对操作系统进行签名可以包括对数据对象和/或数据对象的每个组件进行签名。
在其中内核参数被硬编码的计算系统上启动操作系统配置可包括:将操作系统内核传递给启动程序,以及使该启动加载程序在计算系统上加载并执行操作系统内核。类似地,启动操作系统配置(在该操作系统配置中,一个或多个内核参数值存储在与操作系统内核分开的数据对象中)可以包括:将操作系统内核和一个或多个内核参数值都传递给启动加载程序并使启动加载程序使用该一个或多个内核参数值加载并执行操作系统内核。
对于给定的操作系统内核,操作系统配置可以通过访问控制策略的执行来表征。这可以称为配置的安全级别。例如,计算系统可以具有尤其与用于执行访问控制策略的安全增强型Linux(SELinux)模块一起安装的内核的分布。继续该示例,计算系统还可以被配置为支持三种类型的操作系统配置(例如,安全级别):低,中和高。使用低配置启动的Linux内核可以禁用SELinux并阻止访问控制策略的执行,而使用中配置启动的Linux内核可以使SELinux处于许可或调试模式,以监视但不执行访问控制策略。此外,使用高配置启动的Linux内核可以在执行模式下启用SELinux,以在启动计算系统时执行强制访问控制策略。因此,该示例计算系统可以支持三种不同的操作系统配置,其中每种配置具有Linux内核和关联的SELinux模块,其例如使用设置为启用特定访问策略执行或安全级别的内核参数值来编译。
现在参考附图,图1示出了根据各种实施例的用于使用硬件和软件安全地启动从一组操作系统配置选择的操作系统配置的一组计算机实现的操作的流程图100。如本文所述,流程图100的操作可以由配置成安全地启动应用程序的计算系统执行。在一些实施例中,计算系统可以是计算机305(图3)或计算设备600(图6)。在某些实施例中,计算系统可包括一个或多个计算节点或计算设备。可以使用计算系统的软件,固件和硬件组件来执行流程图100中描绘的各种操作。这些组件,包括整个计算系统,在此统称为计算系统。流程图100中示出的每个操作可以由计算系统自动执行或者响应于一个或多个事件(例如,用户动作或请求)来执行。
计算系统可以执行操作105以接收启动操作系统配置的请求。可以从远程用户接口终端(例如,通过例如数据通信网络耦接到计算系统的用户接口终端)接收该请求。还可以从本地用户接口终端(例如,物理地连接到计算系统的用户接口终端)接收请求。使用本地用户接口终端提交请求或以其它方式与计算系统交互的用户被要求实际存在于计算系统中,或者与计算系统如此接近以使得可以假设他实际拥有计算系统。
如本文所述,计算系统可以执行操作110以存储用于认证所请求的操作系统配置的数字密钥。数字密钥可以是非对称密钥对中的公钥,其中相应的私钥用于对所请求的操作系统配置进行签名。在实施例中,数字密钥可以存储在非易失性存储器中。非易失性存储器可以包括但不限于永久随机存取存储器(RAM),FLASH存储器,系统存储器。在一些实施例中,计算系统可以被配置为在重启之后自动针对数字密钥来检查非易失性存储器。
计算系统可以执行操作115,以重启计算机系统。在一些实施例中,计算系统可以响应于执行操作110而自动重启。在各种实施例中,计算系统可以响应于从用户接口终端接收重启请求而重启。
虽然计算系统处于预启动状态下,计算系统可以在本地用户接口终端上向用户发送请求,以确认启动所请求的操作系统配置的请求。然后,计算系统可以执行操作120以从本地用户接口终端接收信号,确认启动所请求的操作系统配置的请求。执行操作120可以确保请求对在计算系统上启动的操作系统配置的改变(例如,对访问控制策略执行或安全级别的可能改变)的用户具有对计算系统的物理访问。该操作可以限制未授权用户远程地改变计算系统的访问控制策略执行或安全级别的可能性。
当仍然在预启动状态下,计算系统可以执行操作125以使用数字密钥认证所请求的操作系统配置。然后,计算系统可以执行操作130以启动所请求的操作系统配置。
在一些实施例中,计算系统可以响应于重启,验证(例如,证实)或确定在操作115中存储的数字密钥对应于被授权在计算系统上启动的操作系统配置。验证可以包括确定在计算系统上存储并被授权执行的操作系统配置是否由对应于数字密钥的私钥签名。通过确保仅已知或已批准的配置被考虑用于启动,验证操作有助于确保预启动环境和启动系统的完整性。
在一些实施例中,计算系统可以响应于在步骤120中接收到确认,将数字密钥移动到受保护存储器。例如,存储系统可以将数字密钥移动到仅由特定的受信(例如,安全或已认证的)应用程序可写的密钥数据库或存储库。这些实施例可以提供利用安全启动技术的现有体系结构的益处,以使受信应用程序能够验证所请求的操作系统配置的有效性和真实性。这还使得计算系统能够在重启之后启动所请求的操作系统配置,而无需用户访问本地用户接口终端。
在一些实施例中,受保护存储器(例如,在密钥数据库)仅由软件应用程序可写,其可执行代码的完整性由计算系统的硬件部件(例如,使用存储在受保护存储器中的数字密钥)认证。这些实施例可以通过限制可以向计算系统添加新的密钥和可能未授权的密钥的各方的数量来提供执行所请求的操作系统配置的认证的益处。
在一些实施例中,认证所请求的操作系统配置包括:从受保护存储器检索数字密钥和使用所检索的密钥来验证所请求的操作系统配置的签名。这些实施例可以提供利用安全启动技术的现有体系结构的益处,以确保在启动配置之前不修改操作系统配置。
根据各种实施例,在操作105中所请求的操作系统配置可以包括用于执行操作系统内核的访问控制策略执行,或安全级别(例如,访问控制政策)的操作系统内核和一组内核参数值。如本文所述,在某些实施例中,该组内核参数值被编译成操作系统内核的可执行代码。
图2描绘了根据各种实施例的用于使用硬件和软件安全地启动从一组操作系统配置中选择的操作系统配置的一组计算机实现的操作的示例的流程图。如本文所述,流程图200的操作可以由被配置为安全地启动应用程序的计算系统来执行。流程图200中示出的每个操作可以由计算系统自动执行或者响应于一个或多个事件(例如,用户动作或请求)来执行。
计算系统可以通过例如生成能够在计算系统上启动的一组操作系统配置来执行操作205。操作系统配置可以包括操作系统内核以及一组内核参数值。内核参数值可以配置相关联的操作系统内核的访问控制策略执行级别(或安全级别)。每个配置还可以采用例如非对称公钥-私钥对中的不同私钥进行数字签名,以确保操作系统配置的可执行代码完整性。对应于每个私钥的公钥也可以存储在计算系统上。
计算系统可以执行操作210以接收启动所选操作系统配置的请求(例如,启动请求)。如本文所述,可以从远程用户接口终端或本地用户接口终端接收请求。
在操作215,计算系统可以存储与用于对所请求的操作系统配置进行签名的私钥相关联的数字密钥(例如,公钥)。如本文所述,数字密钥可以存储在计算系统的非易失性存储器中。在一些实施例中,计算系统可另外更新启动加载程序的配置(例如,配置文件)以使启动加载程序在下次重启计算系统时启动所请求的操作系统配置。
在操作220,计算系统可以重启(例如,重新启动)。然后,如本文所述,计算系统可以在计算系统处于预启动状态时执行以下操作。
在操作225,如本文所述,计算系统可以验证数字密钥,以确定数字密钥是否对应于被授权在计算系统上启动的已知的(例如,已存储的)操作系统配置。当验证公钥时,计算系统可以进行到操作230,或者,响应于确定不能验证所请求的操作系统配置,计算系统可以进行到操作250。
在操作230,计算系统可以确认启动所请求的操作系统配置的请求。执行操作230可以包括在本地用户接口终端处提示请求用户确认启动所请求的操作系统配置的请求。然后,计算系统可以从本地用户接口终端接收确认信号或消息。所接收的确认信号可包括任何电子信号,包括电压或一组数字字符。所接收的确认信号可以是肯定确认或否定确认。当接收到的确认信号是肯定确认时,计算系统可以继续操作235,而当接收到的确认信号是否定确认时,计算系统可以进行到操作250。另外,响应于接收到肯定确认,如本文所述,计算系统可以将数字密钥移动到受保护存储器(例如,作为执行操作235的替代)。
在操作235,如本文所述,计算系统可以将数字密钥移动到计算系统的受保护存储器。在一些实施例中,计算可以在执行操作230之前执行操作235。
在操作240,如本文所述,计算系统可以从受保护存储器检索或读取数字密钥并使用它来认证所请求的操作的系统配置。认证所请求的操作系统配置可以包括:确定在使用私钥对所请求的操作系统配置进行签名之后所请求的操作系统配置未被修改。当所请求的操作系统配置是可信的时候,计算系统可以继续操作245,而当所请求的操作系统配置不可信时,计算系统可以继续操作250。
在操作245,如本文所述,计算系统可以启动所请求的操作系统配置。计算系统可以在操作255处结束流程图200的操作。
在操作250,计算系统可以从非易失性存储器和/或受保护存储器中删除或擦除数字密钥。然后,计算系统可以提供不能启动所请求的操作系统配置的指示。在一些实施例中并且响应于从其它操作(例如,操作225,235和240)到达操作250,计算系统可以不删除私钥。在这些实施例中,计算系统可以通过提供不能启动所请求的操作系统配置的指示来中止启动过程。
图3示出了根据各种实施例的用于使用硬件和软件安全地启动从一组操作系统配置选择的操作系统配置的示例系统300的框图。如本文所述,系统300可以是被配置为执行本公开的操作的计算系统。系统300包括计算设备305和本地用户接口380(例如,本地用户接口终端)。在一些实施例中,系统300可以包括远程用户接口370(例如,远程用户接口终端)和数据通信网络375。
计算设备305可以包括处理器310,存储器315,存储320和安全组件325。如本文所述,计算设备305可以是被配置为安全地加载选定的操作系统配置的计算设备。处理器310可以执行加载到存储器315中的应用程序,包括用户应用程序330和受信应用程序360。
存储320可以是存储设备,例如存储设备628(图6)。存储320可以存储用于在计算设备305上执行的包括操作系统配置的应用程序。存储设备例如可以存储用户应用程序330,启动加载程序335,操作系统配置A 340和操作系统配置B 345。
用户应用程序330可以是由登录到计算设备305的用户可执行的软件应用程序。在一些实施例中,用户应用程序330可以是基本相同的,并且可以与在图4中讨论的用户应用程序执行相同的操作。例如,可以执行用户应用程序330以使用户能够发送改变计算设备305上的操作系统配置的请求。在一些实施例中,如本文所述,可以执行用户应用程序330以更新启动加载程序335的配置。
启动加载程序335可以是如下的软件应用程序,其被授权在计算设备305上执行以启动操作系统配置,例如,操作系统配置A 340和操作系统配置B 345。在一些实施例中,启动加载程序335可以由公钥-私钥对中的私钥签名,以确保其可执行代码的完整性。在重启计算设备305之后,启动加载程序335可以由受信应用程序(例如,受信应用程序360)执行,以基于启动加载程序的配置来认证和启动预选的操作系统配置。
操作系统配置A 340和操作系统配置B 345可以是存储在计算设备305上的两个不同的可启动操作系统配置。如本文所述,每个操作系统配置可以被签名,并且可以包括操作系统内核和一组相关联的内核参数值。在一些实施例中,操作系统配置A 340和操作系统配置B 345可以具有相同的操作系统内核和不同组的内核参数值。在某些实施例中,操作系统配置A340和操作系统配置B 345可以具有不同的操作系统内核和类似的内核参数值(例如,内核参数值可以确保启动每个配置以具有相同的访问策略执行级别)。
安全组件325可包括硬件和软件组件,以确保在计算设备305上启动的应用程序的可执行代码的完整性或真实性。在一些实施例中,安全组件325可包括用户可访问的非易失性存储器350,受保护的非易失性存储器355,受信应用程序360和数据库365。虽然被示为单独的组件,但是安全组件325的全部或部分可以包括在计算设备305的一个或多个其它组件中。
如本文所述,用户可访问的非易失性存储器350可以是用于至少由计算设备305的用户可执行的应用程序写入来访问的任何非易失性存储器。用户可访问的非易失性存储器355例如可以是电池支持的随机存取存储器,闪存或存储320上的区域。在某些实施例中,如本文所述,用户可访问的非易失性存储器可以用作临时存储公钥的暂存区域,该公钥对应于被选择为在计算设备305上启动的操作系统配置。
受保护的非易失性存储器355可以是仅由选定的一组应用程序可访问(例如,受信应用程序360和启动加载程序335)的非易失性存储器的区域。在一些实施例中,存储器355可以仅由受信应用程序360写入并且仅在计算设备305的预启动状态期间写入。在某些实施例中,受保护的非易失性存储器355存储经验证的公钥的集合或数据库,用于认证可以在计算设备305上启动的应用程序。
受信应用程序360可以是具有由计算设备305认证并且被配置为在计算设备305重启时自动执行的可执行代码的应用程序。在一些实施例中,受信应用程序360可以被配置为自动检查并验证存储在用户可访问非易失性存储器350的预定位置处的新公钥的有效性。受信应用程序360还可以被配置为执行本文讨论的受信应用程序的操作。
数据库365可以是用于认证可以在计算设备305上启动的应用程序的公钥的存储库。在一些实施例中,数据库365可以是受保护的非易失性存储器355的一部分。在某些实施例中,存储在数据库365中的一个或多个公钥可以在计算设备305的制造期间被写入并进行数字签名。
本地用户接口380可以是被配置为使得用户能够执行相对于计算设备305的输入和输出操作的用户接口终端。本地用户接口380可以通过连接件(例如,数据电缆,视频电缆或其它输入输出电缆或总线)被物理地连接到计算设备305。根据各种实施例,本地用户接口380可以实现受信应用程序360与实际拥有计算设备305或实际存在于计算设备305中的用户之间的交互。
图4示出了根据各种实施例的用于使用硬件和软件安全地启动用户从一组操作系统配置中选择的操作系统配置的一组计算机实现的操作的流程图400。如本文所述,流程图400的操作可以由被配置为安全地启动应用程序的计算设备来执行。流程图400中示出的每个操作可以由计算设备自动执行或者响应于一个或多个事件(例如,用户动作或请求)来执行。
在操作405,计算设备可以从在第一操作系统配置(O/S配置A)下执行的用户应用程序接收请求以启动第二操作系统配置(O/S配置B)。可以从使用户能够访问计算设备并执行用户应用程序的任何终端或设备接收请求。在一些实施例中,用户可以使用一组凭证(例如,与授权用户帐户相关联的用户名和密码)来访问计算设备并执行用户应用程序。
如本文所述,操作系统配置B可以包括具有一组内核参数值的操作系统内核。操作系统配置B可以由公钥-私钥对中的私钥(例如,非对称密钥对)来进行签名。在一些实施例中,O/S配置B可以包括与O/S配置A中包括的操作系统内核相同的操作系统内核。然而,O/S配置B可以具有与O/S配置A中包括的该组内核参数值不同的一组内核参数值。回顾前面讨论的操作系统配置示例,O/S配置A和O/S配置B二者都可以包括具有SELinux模块的Linux内核。但是,O/S配置A可以包括以高访问控制执行安全级别来启动Linux内核的内核参数值,而O/S配置B可以包括以中访问控制执行安全级别来启动Linux内核的内核参数值。
在操作410,如本文所述,计算设备可以在非易失性存储器中存储与用于对O/S配置B进行签名的私钥相对应的公钥。在一些实施例中,用户应用程序或另一应用程序可使计算设备执行操作410。
在操作415,计算设备可以重启。在重启之后,计算设备可以在预启动状态下根据操作420来执行操作425和430。
在操作425,计算设备可以执行受信(例如,安全或者保证是未修改的)应用程序以接收确认启动O/S配置B的请求的信号。在一些实施例中,受信应用程序可以基本上类似于UEFI shim程序。计算系统可以被配置为在计算系统重启之后自动加载,认证和执行受信应用程序。受信应用程序可以被配置为读取非易失性存储器的特定区域(例如,在操作410中写入的非易失性存储器的区域)以确定新的公钥是否被添加到计算系统中。受信应用程序还可以被配置为响应于检测到新公钥,验证公钥对应于已知操作系统配置(例如,授权在计算系统上启动的操作系统配置)。响应于验证公钥,如本文所述,受信应用程序可以将公钥复制,传输或移动到计算设备的受保护存储器。在一些实施例中,受保护存储器仅可由受信应用程序写入。此外,仅在计算设备处于预启动状态时才能写入受保护存储器。
在操作430,计算设备可以执行启动加载程序以认证并启动O/S配置B。在一些实施例中,受信应用程序可以代表计算系统加载,认证,然后执行启动加载程序。经认证的启动加载程序可以在启动之前从受保护存储器中读取公钥并使用它来认证O/S配置B。当认证成功时,启动加载程序可以启动O/S配置B,而当认证不成功时(例如,当启动加载程序检测到O/S配置B在签名后被更改时),启动加载程序可以中止启动过程。
流程图400的操作可以在操作435处结束。
在一些实施例中,在O/S配置B中的该组内核参数值确定在O/S配置B在计算系统上启动时可加载的软件模块。另外,在各种实施例中,该组参数值可以确定O/S配置B下的访问控制权限(例如,访问控制策略执行级别)的执行。这些实施例提供了如下优点:如本文所述,确保计算系统的配置和访问控制策略不能由使用计算系统的用户改变,除非用户具有对计算系统的物理访问并且选择用于改变计算系统的操作系统配置的完整性被认证。
根据各种实施例,如本文所述,受保护的非易失性存储器是仅由一组应用程序(包括受信应用程序)可读写的,其可执行代码完整性由计算系统的硬件组件认证。这些实施例提供了确保未授权的公钥不能被添加到计算系统的优点。这反过来降低了未授权的操作系统配置可以在计算系统上启动的可能性。
图5描绘了根据各种实施例的用户与计算系统之间的交互的交互图500,该计算系统执行一组计算机实现的操作,用于使用硬件和软件安全地启动从一组操作系统配置选择的操作系统配置。交互图500示出了如本文所述的用户505与被配置为安全地启动操作系统配置的计算系统的元件之间的交互。交互图的组件包括用户505,计算系统的执行环境510,和计算系统的系统状态515。执行环境510可以是执行用户应用程序530的操作系统配置A525,受信应用程序550,启动加载程序560,和操作系统配置B 570。如图5的上下文中所使用的系统状态515指示操作的目标:读取或修改存储在计算设备上的非易失性数据。用户505可以通过用户接口520(例如,本地或远程用户接口终端)或通过本地用户接口545与执行环境510交互(例如,当用户具有对计算系统的物理访问时)。
如由参考元素535所示,可以在操作系统配置A(O/S配置A)在计算系统上启动时执行第一组的交互。
根据各种实施例,用户应用程序530可接收加载操作系统配置B(O/S配置B)的请求531。可以通过用户接口520从用户505接收请求531。然后,用户应用程序530可以执行一组操作532以存储与用于对O/S配置B进行签名的私钥相关联的公钥。可以在计算系统的非易失性存储器中存储公钥。用户应用程序530可以进一步执行操作533以在计算系统的下一次重启之后更新计算系统的启动加载程序的配置以启动O/S配置B。然后,O/S配置A可以接收重启计算系统的请求534。
计算系统可以然后重启,如由参考元素540所示。
下面的交互在计算系统处于预启动状态的情况下执行,如由参考元素565所示。
根据各种实施例,受信应用程序550执行操作551,以从非易失性存储器检索所存储的公钥并验证(例如,证实)所检索的公钥对应于已知的(例如,有效的)已签名的操作系统配置。受信应用程序550还可以执行操作552,以通过本地用户接口终端545提示用户505确认启动O/S配置B的请求。然后,受信应用程序550可以执行操作553以接收来自用户505的确认。受信应用程序可以进一步执行操作554和555以将公钥移动到受保护存储器并认证和执行启动加载程序560。启动加载程序560可以执行操作561和562以从受保护存储器中检索公钥并认证和启动O/S配置B。在一些实施例中,启动加载程序560可以使受信应用程序550执行操作561和562,并且在成功认证(或验证)时,启动O/S配置B 570。
计算系统然后可以在O/S配置B下进入启动状态,如由参考元素575所示。
图6示出了根据各种实施例的具有硬件和软件组件的计算设备600的框图,该硬件和软件组件用于使用硬件和软件安全地启动从一组操作系统配置选择的操作系统配置。
计算设备600的组件可包括一个或多个处理器606,存储器612,终端接口618,存储接口620,输入/输出(“I/O”)设备接口622,和网络接口624,所有这些都直接或间接地通信地耦接,用于经由存储器总线610,I/O总线616,总线接口单元(“IF”)608,和I/O总线接口单元614进行组件间通信。
计算设备600可以包括一个或多个通用可编程中央处理单元(CPU)606A和606B,在此统称为处理器606。在一个实施例中,计算设备600可以包含多个处理器;然而,在另一个实施例中,计算设备600可以替代地是单个CPU设备。每个处理器606执行存储在存储器612中的指令。
计算设备600可以包括总线接口单元608,以处理在处理器606,存储器612,显示系统604,和I/O总线接口单元614之间的通信。I/O总线接口单元614可以与I/O总线616耦接,用于向各种I/O单元传输数据和从各种I/O单元传输数据。I/O总线接口单元614可以通过I/O总线616与多个I/O接口单元618,620,622和624通信,这些I/O接口单元也称为I/O处理器(IOP)或I/O适配器(IOA)。显示系统604可包括显示控制器,显示存储器,或两者。显示控制器可以向显示设备602提供视频,音频或两种类型的数据。显示存储器可以是用于缓冲视频数据的专用存储器。显示系统604可以与显示设备602耦接,例如独立显示屏,计算机监视器,电视,平板电脑或手持设备显示器,或其它可显示的设备。在一个实施例中,显示设备602可以包括用于呈现音频的一个或多个扬声器。或者,用于呈现音频的一个或多个扬声器可以与I/O接口单元耦接。在替代实施例中,由显示系统604提供的一个或多个功能可以是还包括处理器606的板载集成电路。此外,总线接口单元608提供的一个或多个功能可以是还包括处理器606的板载集成电路。
I/O接口单元支持与各种存储和I/O设备的通信。例如,终端接口单元618支持一个或多个用户I/O设备的附接,其可以包括用户输出设备(例如,视频显示设备,扬声器和/或电视机)和用户输入设备(例如,键盘,鼠标,小型键盘,触摸板,轨迹球,按钮,光笔或其它指示设备)。用户可以使用用户接口操纵用户输入设备,以便向用户I/O设备626提供输入数据和命令,并且计算设备600可以经由用户输出设备接收输出数据。例如,用户接口可以通过用户I/O设备626呈现,例如显示在显示设备上,通过扬声器播放,或通过打印机打印。
存储接口620支持一个或多个磁盘驱动器或直接存取存储设备628的附接(其通常是旋转磁盘驱动器存储设备,虽然它们可以可选地是其它存储设备,包括被配置为对主机显示为单个大型存储设备,或固态驱动器(诸如闪存)的磁盘驱动器阵列)。在另一个实施例中,存储设备628可以通过任何类型的辅助存储设备来实现。存储器612的内容或其任何部分可以根据需要存储到存储设备628并从存储设备628中检索。I/O设备接口622提供到各种其它I/O设备或其它类型的设备(例如打印机或传真机)中的任何一个的接口。网络接口624提供从计算设备600到其它数字设备和计算机系统的一个或多个通信路径。
安全组件631可基本上类似于安全组件325(图3)并且包括安全组件325相同的功能。安全组件631可以包括用于确保在计算设备600上启动的应用程序的可执行代码完整性或真实性的硬件和软件组件。
尽管在图6中示出的计算设备600示出了特定的总线结构,其提供在处理器606,存储器612,总线接口608,显示系统604,和I/O总线接口单元614之间的直接通信路径,但是在替代实施例中,计算设备600可以包括不同的总线或通信路径,其可以以各种形式中的任何一种来布置,诸如具有分层,星形或网状配置的点对点链路,多个分层总线,并行和冗余路径,或任何其它适当类型的配置。此外,虽然I/O总线接口单元614和I/O总线608被示为单个相应单元,但是计算设备600可以包括多个I/O总线接口单元614和/或多个I/O总线616。虽然示出了多个I/O接口单元,其将I/O总线616与运行到各种I/O设备的各种通信路径分开,但在其它实施例中,一些或所有I/O设备直接连接到一个或多个系统I/O总线。
在各种实施例中,计算设备600是多用户大型计算机系统,单用户系统,或具有很少或没有直接用户接口但是从其它计算机系统(客户端)接收请求的服务器计算机或类似设备。在其它实施例中,计算设备600可以实现为台式计算机,便携式计算机,膝上型或笔记本计算机,平板计算机,袖珍计算机,电话,智能电话或任何其它合适类型的电子设备。
在一个实施例中,存储器612可以包括随机存取半导体存储器,存储设备,或存储介质(易失性或非易失性),用于存储或编码数据和程序。在另一个实施例中,存储器612表示计算设备600的整个虚拟存储器,并且还可以包括耦接到计算设备600或经由网络630连接的其它计算机系统的虚拟存储器。存储器612可以是单个单片实体,但是在其它实施例中,存储器612可以包括高速缓存和其它存储器设备的层级。例如,存储器可以存在于多级高速缓存中,并且这些高速缓存可以进一步按功能划分,以便一个高速缓存保存指令而另一个高速缓存保存由处理器使用的非指令数据。存储器612可以进一步被分布并与不同的CPU或不同组的CPU相关联,如在任何各种所谓的非均匀存储器访问(NUMA)计算机体系结构中已知的。
存储器612可存储在图1-5中示出的组件和数据的全部或一部分。特别地,用户应用程序,受信应用程序,启动加载程序,和操作系统配置中的一个或多个可以从存储设备628或安全组件631加载到存储器612中以被认证和执行,从而执行本文描述的操作。计算机可执行代码可以由处理器606执行。图1-5中示出的组件或数据中的一些或全部可以在不同的计算机系统上并且可以例如经由网络630远程地访问。计算设备600可以使用虚拟寻址机制,其允许计算设备600的程序表现得好像它们只能访问大型单个存储实体,而不是访问多个较小的存储实体。因此,尽管图1-5中所示的组件和数据被示出为被包括在存储器612中,但这些组件和数据不一定同时全部完全包含在同一存储设备中。尽管图1-5中所示的组件和数据被示出为单独的实体,但是在其它实施例中,它们中的一些,它们中的一些的一部分或它们的全部可以被封装在一起。
在一个实施例中,图1-5中所示的组件和数据可包括:在处理器606上执行的指令或语句,或者由执行处理器606以执行如下面进一步描述的功能的指令或语句来解释的指令或语句。在另一个实施例中,代替基于处理器的系统,或者除了基于处理器的系统之外,图1-5中所示的组件可以通过半导体设备,芯片,逻辑门,电路,电路卡和/或其它物理硬件设备来以硬件实现。在一个实施例中,除了指令或语句之外,图1-5中示出的组件还可以包括数据。
图6旨在示出计算设备600的代表组件。但是,单个组件可以具有比在图6中所呈现的更大的复杂性。在图6中,不同于或除了所示的可以存在的组件,这些组件的数量,类型和配置可以变化。本文公开了具有另外的复杂性或另外的变化的若干特定示例;这些仅是示例,并不一定是唯一的这种变化。在各种实施例中,被描述为包括在图6中的各种程序组件可以以多种不同方式实现,包括使用各种计算机应用程序,例程,组件,程序,对象,模块,数据结构等,其可以在这里被称为“软件”,“计算机程序”或简称为“程序”。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (25)
1.一种方法,包括:
在计算系统的启动状态下接收加载操作系统配置的请求;
响应于接收到所述请求,自动存储用于认证所述操作系统配置的数字密钥;
重启所述计算系统;
响应于重启所述计算系统并且在所述计算系统处于预启动状态时:
证实所存储的数字密钥是用于有效操作系统配置的数字密钥;
从物理地耦接到所述计算系统的用户接口接收确认所接收的请求的信号;
响应于接收到所述信号,使用所述数字密钥认证所述操作系统配置;以及
响应于所述认证,启动所述操作系统配置。
2.如权利要求1所述的方法,还包括:
在所述接收之前,确定公钥对应于被授权在所述计算系统上启动的操作系统配置。
3.如权利要求1所述的方法,还包括:
响应于接收到确认信号,将所述数字密钥移动到所述计算系统的受保护存储器,其中,所述受保护存储器仅在所述计算系统处于预启动状态时是可写的。
4.如权利要求3所述的方法,其中,所述受保护存储器仅由执行代码完整性由所述计算系统的硬件组件认证的软件应用程序可写入。
5.如权利要求3所述的方法,其中,所述认证包括:从所述受保护存储器检索所述数字密钥,并使用所检索的数字密钥来验证所述操作系统配置的数字签名。
6.如权利要求1所述的方法,其中,所述操作系统配置包括:
操作系统内核;以及
用于执行所述操作系统内核的访问控制策略的一组参数。
7.如权利要求6所述的方法,其中,所述一组参数被编译成所述操作系统内核的可执行代码。
8.如权利要求1所述的方法,其中:
所述操作系统配置由公钥-私钥对中的私钥进行数字签名,并且
所述数字密钥是所述公钥-私钥对中的公钥。
9.一种系统,包括:
用户接口终端;
物理地耦接到所述用户接口终端并具有存储器和处理器的计算系统;以及
所述计算系统的计算机可读存储介质,在所述计算机可读存储介质中体现程序指令,所述程序指令可由所述处理器执行以使所述系统:
在所述计算系统的启动状态下接收加载操作系统配置的请求;
响应于接收到所述请求,自动存储用于认证所述操作系统配置的数字密钥;
重启所述计算系统;
响应于重启所述计算系统并且在所述计算系统处于预启动状态时:
证实所存储的数字密钥是用于有效操作系统配置的数字密钥;
从物理地耦接到所述计算系统的用户接口接收确认所接收的请求的信号;
响应于接收到所述信号,使用所述数字密钥认证所述操作系统配置;以及
响应于所述认证,启动所述操作系统配置。
10.如权利要求9所述的系统,其中,所述程序指令还可由所述处理器执行以使所述系统:
在所述接收之前,确定公钥对应于被授权在所述计算系统上启动的操作系统配置。
11.如权利要求9所述的系统,其中,所述程序指令还可由所述处理器执行以使所述系统:
响应于接收到确认信号,将所述数字密钥移动到所述计算系统的受保护存储器,其中,所述受保护存储器仅在所述计算系统处于预启动状态时是可写的。
12.如权利要求11所述的系统,其中,所述受保护存储器仅由执行代码完整性由所述计算系统的硬件组件认证的软件应用程序可写入。
13.如权利要求11所述的系统,其中,所述程序指令还可由所述处理器执行,以使所述系统从所述受保护存储器检索所述数字密钥,并使用所检索的数字密钥来验证所述操作系统配置的数字签名。
14.如权利要求9所述的系统,其中,所述操作系统配置包括:
操作系统内核;以及
用于执行所述操作系统内核的访问控制策略的一组参数。
15.如权利要求14所述的系统,其中,所述一组参数被编译成所述操作系统内核的可执行代码。
16.如权利要求9所述的系统,其中:
所述操作系统配置由公钥-私钥对中的私钥进行数字签名,并且
所述数字密钥是所述公钥-私钥对中的公钥。
17.一种用于安全地启动计算系统的计算机程序产品,所述计算机程序产品包括具有体现在其中的程序指令的计算机可读存储介质,其中,所述计算机可读存储介质本身不是暂时性信号,所述程序指令可由处理器执行,以使所述计算系统执行包括以下的方法:
在所述计算系统的启动状态下接收加载操作系统配置的请求;
响应于接收到所述请求,自动存储用于认证所述操作系统配置的数字密钥;
重启所述计算系统;
响应于重启所述计算系统并且在所述计算系统处于预启动状态时:
证实所存储的数字密钥是用于有效操作系统配置的数字密钥;
从物理地耦接到所述计算系统的用户接口接收确认所接收的请求的信号;
响应于接收到所述信号,使用所述数字密钥认证所述操作系统配置;以及
响应于所述认证,启动所述操作系统配置。
18.如权利要求17所述的计算机程序,其中,所述方法还包括:
在所述接收之前,确定公钥对应于被授权在所述计算系统上启动的操作系统配置。
19.如权利要求17所述的计算机程序,其中,所述方法还包括:
响应于接收到确认信号,将所述数字密钥移动到所述计算系统的受保护存储器,其中,所述受保护存储器仅在所述计算系统处于预启动状态时是可写的。
20.如权利要求17所述的计算机程序产品,其中,所述操作系统配置包括:
操作系统内核;以及
用于执行所述操作系统内核的访问控制策略的一组参数。
21.一种方法,包括:
从在计算设备上的第一操作系统配置下执行的用户应用程序接收执行一组操作系统配置中的第二操作系统配置的请求,其中,所述第二操作系统配置是:
由公钥-私钥对中的私钥进行签名,以及
至少包括采用一组参数编译的操作系统内核,所述一组参数与所述第二操作系统配置的访问控制策略相关联;
响应于接收到所述请求,在所述计算设备的非易失性存储器中存储与所述私钥相对应的公钥;以及
在所述计算设备的预启动状态期间,执行受信应用程序以:
证实所存储的数字密钥是用于有效操作系统配置的数字密钥,
从到所述计算设备的本地接口接收确认所接收的请求的信号,
当所述信号确认所述请求时,将所述公钥移动到受保护存储器中,以及
执行可访问所述受保护存储器的启动加载程序,以使用存储在所述受保护存储器中的公钥来认证所述第二操作系统,并响应于所述认证来启动所述第二操作系统配置。
22.如权利要求21所述的方法,其中,所述一组参数确定在所述第二操作系统配置下可加载的软件模块。
23.如权利要求21所述的方法,其中,所述一组参数确定所述访问控制策略的执行。
24.如权利要求21所述的方法,其中,所述受保护存储器仅由可执行代码完整性由所述计算系统的硬件组件认证的一组应用程序可写入,所述一组应用程序包括所述受信应用程序。
25.一种系统,包括:
用户接口终端;
物理地耦接到所述用户接口终端并具有存储器和处理器的计算系统;以及
一个或多个计算节点的计算机可读存储介质,在所述计算机可读存储介质中体现程序指令,所述程序指令可由所述处理器执行以使所述系统:
从在计算设备上的第一操作系统配置下执行的用户应用程序接收执行一组操作系统配置中的第二操作系统配置的请求,其中,所述第二操作系统配置是:
由公钥-私钥对中的私钥进行签名,以及
至少包括采用一组参数编译的操作系统内核,所述一组参数与所述第二操作系统配置的访问控制策略相关联;
响应于接收到所述请求,在所述计算设备的非易失性存储器中存储与所述私钥对应的公钥;以及
在所述计算设备的预启动状态期间,执行受信应用程序以:
证实所存储的数字密钥是用于有效操作系统配置的数字密钥,
从所述用户接口终端接收确认所接收的请求的信号,
当所述信号确认所述请求时,将所述公钥移动到受保护存储器中,以及
执行可访问所述受保护存储器的启动加载程序,以使用存储在所述受保护存储器中的公钥来认证所述第二操作系统,并响应于所述认证来启动所述第二操作系统配置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/624,970 US10467416B2 (en) | 2017-06-16 | 2017-06-16 | Securing operating system configuration using hardware |
US15/624,970 | 2017-06-16 | ||
PCT/IB2018/054226 WO2018229640A1 (en) | 2017-06-16 | 2018-06-12 | Securing operating system configuration using hardware |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110663027A true CN110663027A (zh) | 2020-01-07 |
CN110663027B CN110663027B (zh) | 2023-05-16 |
Family
ID=64656210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880034664.6A Active CN110663027B (zh) | 2017-06-16 | 2018-06-12 | 用于安全地启动计算系统的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (4) | US10467416B2 (zh) |
JP (1) | JP7169042B2 (zh) |
CN (1) | CN110663027B (zh) |
DE (1) | DE112018002031B4 (zh) |
GB (1) | GB2576469B (zh) |
WO (1) | WO2018229640A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138362A (zh) * | 2021-11-18 | 2022-03-04 | 武汉深之度科技有限公司 | 一种内核模块防卸载方法、防卸载装置及计算设备 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11277412B2 (en) * | 2018-05-28 | 2022-03-15 | Royal Bank Of Canada | System and method for storing and distributing consumer information |
US10467416B2 (en) | 2017-06-16 | 2019-11-05 | International Business Machines Corporation | Securing operating system configuration using hardware |
US20210006412A1 (en) * | 2018-03-05 | 2021-01-07 | Quanta Networks Inc. | Communications system and devices for routing data |
US10802834B2 (en) * | 2018-06-11 | 2020-10-13 | Google Llc | Enabling multiple secure boot paths on a hardware platform |
US10778444B2 (en) * | 2018-07-11 | 2020-09-15 | Verizon Patent And Licensing Inc. | Devices and methods for application attestation |
US11616651B2 (en) | 2019-01-04 | 2023-03-28 | Baidu Usa Llc | Method for establishing a secure information exchange channel between a host system and a data processing accelerator |
EP3794771A4 (en) * | 2019-01-04 | 2022-01-05 | Baidu.com Times Technology (Beijing) Co., Ltd. | PROCESS AND SYSTEM FOR DISTRIBUTION AND EXCHANGE OF KEYS FOR DATA PROCESSING ACCELERATORS |
CN112262545B (zh) | 2019-01-04 | 2023-09-15 | 百度时代网络技术(北京)有限公司 | 主机系统与数据处理加速器之间的证明协议 |
CN112236772B (zh) | 2019-01-04 | 2023-12-22 | 百度时代网络技术(北京)有限公司 | 用于管理数据处理加速器的内存的方法和系统 |
CN112352220B (zh) | 2019-01-04 | 2024-05-10 | 百度时代网络技术(北京)有限公司 | 保护由数据处理加速器处理的数据的方法和系统 |
EP3811557A4 (en) | 2019-01-04 | 2022-04-13 | Baidu.com Times Technology (Beijing) Co., Ltd. | METHOD AND SYSTEM FOR DERIVING A SESSION KEY TO SECURE AN INFORMATION EXCHANGE CHANNEL BETWEEN A HOST SYSTEM AND A DATA PROCESSING ACCELERATOR |
WO2020140265A1 (en) | 2019-01-04 | 2020-07-09 | Baidu.Com Times Technology (Beijing) Co., Ltd. | Data processing accelerator having security unit to provide root trust services |
CN112292678A (zh) * | 2019-01-04 | 2021-01-29 | 百度时代网络技术(北京)有限公司 | 用于验证将要由主机系统的数据处理加速器执行的内核对象的方法与系统 |
CN112352242B (zh) | 2019-01-04 | 2024-03-22 | 百度时代网络技术(北京)有限公司 | 具有本地时间单元以生成时间戳的数据处理加速器 |
JP6991431B2 (ja) | 2019-01-04 | 2022-01-12 | バイドゥドットコム タイムズ テクノロジー (ベイジン) カンパニー リミテッド | ホストシステムとデータ処理アクセラレータの間の通信を保護するための方法およびシステム |
KR20210026215A (ko) * | 2019-08-29 | 2021-03-10 | 삼성에스디에스 주식회사 | 온라인 회의 관리 장치 및 방법 |
EP3798886A1 (en) | 2019-09-26 | 2021-03-31 | General Electric Company | Devices, systems, and methods for securely initializing an embedded system |
US11409541B2 (en) * | 2020-02-18 | 2022-08-09 | Dell Products L.P. | Systems and methods for binding secondary operating system to platform basic input/output system |
EP3916600A1 (en) * | 2020-05-27 | 2021-12-01 | Mettler-Toledo (Albstadt) GmbH | Method for operating an electronic data processing system and electronic data processing system |
US11822664B2 (en) * | 2020-06-22 | 2023-11-21 | Apple Inc. | Securely signing configuration settings |
US11379212B2 (en) * | 2020-08-31 | 2022-07-05 | Microsoft Technology Licensing, Llc | Systems and methods for disaggregating system firmware configuration data into a management subsystem for seamless updates |
DE102020211413A1 (de) | 2020-09-11 | 2022-03-17 | Siemens Aktiengesellschaft | Betriebsverfahren für eine Ladesäule |
US11809568B2 (en) * | 2021-05-12 | 2023-11-07 | International Business Machines Corporation | Hypervisor having local keystore |
CN114546501B (zh) * | 2022-01-28 | 2023-10-24 | 郑州信大捷安信息技术股份有限公司 | 一种物理只读磁盘中启动Linux操作系统的方法 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10336170A (ja) * | 1997-05-29 | 1998-12-18 | Mitsubishi Electric Corp | 公開鍵検証装置 |
US6961941B1 (en) * | 2001-06-08 | 2005-11-01 | Vmware, Inc. | Computer configuration for resource management in systems including a virtual machine |
CN1790359A (zh) * | 2004-12-16 | 2006-06-21 | 国际商业机器公司 | 使用便携式计算设备作为智能密钥设备的方法和系统 |
CN1813229A (zh) * | 2003-06-27 | 2006-08-02 | 英特尔公司 | 提供安全固件存储和服务访问的方法和装置 |
CN101951316A (zh) * | 2008-09-30 | 2011-01-19 | 英特尔公司 | 操作系统的受保护的网络引导 |
JP2011138298A (ja) * | 2009-12-28 | 2011-07-14 | Ntt Data Corp | アクセス制御設定装置、方法及びコンピュータプログラム |
CN102184352A (zh) * | 2011-03-16 | 2011-09-14 | 东南大学 | 基于蓝牙设备认证的计算机系统自动防护方法 |
CN102726028A (zh) * | 2011-12-31 | 2012-10-10 | 华为技术有限公司 | 一种加密方法、解密方法和相关装置及系统 |
CN103294499A (zh) * | 2012-03-05 | 2013-09-11 | 联想(北京)有限公司 | 一种信息处理的方法及电子设备 |
CN103490895A (zh) * | 2013-09-12 | 2014-01-01 | 北京斯庄格科技有限公司 | 一种应用国密算法的工业控制身份认证方法及装置 |
CN104008342A (zh) * | 2014-06-06 | 2014-08-27 | 山东超越数控电子有限公司 | 一种通过bios和内核实现安全可信认证的方法 |
CN104572093A (zh) * | 2014-12-30 | 2015-04-29 | 北京工业大学 | 使用usb控制器实现终端设备双操作系统启动的方法 |
JP2015102989A (ja) * | 2013-11-25 | 2015-06-04 | 沖電気工業株式会社 | 周辺機器制御障害回避方法、周辺機器制御障害回避プログラム、処理装置、及び処理システム |
CN105027096A (zh) * | 2013-01-22 | 2015-11-04 | 亚马逊技术有限公司 | 保护特权计算操作的结果 |
US20160012232A1 (en) * | 2014-07-11 | 2016-01-14 | Dell Products L.P. | Systems and methods for secure delivery of public keys for operating system drivers |
JP2016021220A (ja) * | 2014-07-14 | 2016-02-04 | レノボ・シンガポール・プライベート・リミテッド | 退避ファイルの一貫性を検証する方法、コンピュータおよびコンピュータ・プログラム |
CN105608347A (zh) * | 2015-07-29 | 2016-05-25 | 宇龙计算机通信科技(深圳)有限公司 | 操作系统切换方法、操作系统切换装置和终端 |
US20170034133A1 (en) * | 2015-07-28 | 2017-02-02 | International Business Machines Corporation | User authentication over networks |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7073069B1 (en) | 1999-05-07 | 2006-07-04 | Infineon Technologies Ag | Apparatus and method for a programmable security processor |
US8140683B2 (en) * | 2000-12-07 | 2012-03-20 | International Business Machines Corporation | Method and system for selecting an operating system at user login on a target device |
US20030115443A1 (en) * | 2001-12-18 | 2003-06-19 | Cepulis Darren J. | Multi-O/S system and pre-O/S boot technique for partitioning resources and loading multiple operating systems thereon |
US7974416B2 (en) * | 2002-11-27 | 2011-07-05 | Intel Corporation | Providing a secure execution mode in a pre-boot environment |
US8533845B2 (en) * | 2005-02-15 | 2013-09-10 | Hewlett-Packard Development Company, L.P. | Method and apparatus for controlling operating system access to configuration settings |
SE531992C2 (sv) * | 2006-02-24 | 2009-09-22 | Oniteo Ab | Metod och system för säker programvaruprovisionering |
CN101336411B (zh) * | 2006-03-04 | 2012-12-12 | 英特尔公司 | Os运行前阶段中计算系统的访问控制的方法和系统 |
US8254568B2 (en) * | 2007-01-07 | 2012-08-28 | Apple Inc. | Secure booting a computing device |
US8984265B2 (en) * | 2007-03-30 | 2015-03-17 | Intel Corporation | Server active management technology (AMT) assisted secure boot |
CN101256608B (zh) * | 2008-03-25 | 2010-04-07 | 北京飞天诚信科技有限公司 | 安全操作方法和系统 |
CN102033761A (zh) * | 2009-09-30 | 2011-04-27 | 鸿富锦精密工业(深圳)有限公司 | 电子装置及其多重开机方法 |
US8966657B2 (en) | 2009-12-31 | 2015-02-24 | Intel Corporation | Provisioning, upgrading, and/or changing of hardware |
US9721101B2 (en) * | 2013-06-24 | 2017-08-01 | Red Hat, Inc. | System wide root of trust chaining via signed applications |
US8904190B2 (en) | 2010-10-20 | 2014-12-02 | Advanced Micro Devices, Inc. | Method and apparatus including architecture for protecting sensitive code and data |
US8560845B2 (en) * | 2011-01-14 | 2013-10-15 | Apple Inc. | System and method for tamper-resistant booting |
US9256745B2 (en) * | 2011-03-01 | 2016-02-09 | Microsoft Technology Licensing, Llc | Protecting operating system configuration values using a policy identifying operating system configuration settings |
GB2508894A (en) | 2012-12-14 | 2014-06-18 | Ibm | Preventing a trusted boot device from being booted in a virtual machine |
US9349009B2 (en) * | 2013-07-15 | 2016-05-24 | Paul A. Rivera | Method and apparatus for firmware based system security, integrity, and restoration |
JP6197625B2 (ja) | 2013-12-17 | 2017-09-20 | キヤノンマーケティングジャパン株式会社 | 情報処理システム、その制御方法、及びプログラム、並びに情報処理装置、その制御方法、及びプログラム |
GB2527569B (en) * | 2014-06-26 | 2016-06-08 | Ibm | Booting a computer from a user trusted device with an operating system loader stored thereon |
WO2016073411A2 (en) * | 2014-11-03 | 2016-05-12 | Rubicon Labs, Inc. | System and method for a renewable secure boot |
US10313121B2 (en) * | 2016-06-30 | 2019-06-04 | Microsoft Technology Licensing, Llc | Maintaining operating system secrets across resets |
US10242196B2 (en) * | 2016-07-29 | 2019-03-26 | Vmware, Inc. | Secure booting of computer system |
US10467416B2 (en) | 2017-06-16 | 2019-11-05 | International Business Machines Corporation | Securing operating system configuration using hardware |
-
2017
- 2017-06-16 US US15/624,970 patent/US10467416B2/en not_active Expired - Fee Related
- 2017-11-02 US US15/801,543 patent/US10482259B2/en not_active Expired - Fee Related
-
2018
- 2018-06-12 DE DE112018002031.2T patent/DE112018002031B4/de active Active
- 2018-06-12 JP JP2019568055A patent/JP7169042B2/ja active Active
- 2018-06-12 CN CN201880034664.6A patent/CN110663027B/zh active Active
- 2018-06-12 WO PCT/IB2018/054226 patent/WO2018229640A1/en active Application Filing
- 2018-06-12 GB GB1918518.0A patent/GB2576469B/en active Active
-
2019
- 2019-09-25 US US16/581,941 patent/US11080405B2/en active Active
- 2019-09-25 US US16/581,987 patent/US11113404B2/en active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10336170A (ja) * | 1997-05-29 | 1998-12-18 | Mitsubishi Electric Corp | 公開鍵検証装置 |
US6961941B1 (en) * | 2001-06-08 | 2005-11-01 | Vmware, Inc. | Computer configuration for resource management in systems including a virtual machine |
CN1813229A (zh) * | 2003-06-27 | 2006-08-02 | 英特尔公司 | 提供安全固件存储和服务访问的方法和装置 |
CN1790359A (zh) * | 2004-12-16 | 2006-06-21 | 国际商业机器公司 | 使用便携式计算设备作为智能密钥设备的方法和系统 |
CN101951316A (zh) * | 2008-09-30 | 2011-01-19 | 英特尔公司 | 操作系统的受保护的网络引导 |
JP2011138298A (ja) * | 2009-12-28 | 2011-07-14 | Ntt Data Corp | アクセス制御設定装置、方法及びコンピュータプログラム |
CN102184352A (zh) * | 2011-03-16 | 2011-09-14 | 东南大学 | 基于蓝牙设备认证的计算机系统自动防护方法 |
CN102726028A (zh) * | 2011-12-31 | 2012-10-10 | 华为技术有限公司 | 一种加密方法、解密方法和相关装置及系统 |
CN103294499A (zh) * | 2012-03-05 | 2013-09-11 | 联想(北京)有限公司 | 一种信息处理的方法及电子设备 |
CN105027096A (zh) * | 2013-01-22 | 2015-11-04 | 亚马逊技术有限公司 | 保护特权计算操作的结果 |
CN103490895A (zh) * | 2013-09-12 | 2014-01-01 | 北京斯庄格科技有限公司 | 一种应用国密算法的工业控制身份认证方法及装置 |
JP2015102989A (ja) * | 2013-11-25 | 2015-06-04 | 沖電気工業株式会社 | 周辺機器制御障害回避方法、周辺機器制御障害回避プログラム、処理装置、及び処理システム |
CN104008342A (zh) * | 2014-06-06 | 2014-08-27 | 山东超越数控电子有限公司 | 一种通过bios和内核实现安全可信认证的方法 |
US20160012232A1 (en) * | 2014-07-11 | 2016-01-14 | Dell Products L.P. | Systems and methods for secure delivery of public keys for operating system drivers |
JP2016021220A (ja) * | 2014-07-14 | 2016-02-04 | レノボ・シンガポール・プライベート・リミテッド | 退避ファイルの一貫性を検証する方法、コンピュータおよびコンピュータ・プログラム |
CN104572093A (zh) * | 2014-12-30 | 2015-04-29 | 北京工业大学 | 使用usb控制器实现终端设备双操作系统启动的方法 |
US20170034133A1 (en) * | 2015-07-28 | 2017-02-02 | International Business Machines Corporation | User authentication over networks |
CN105608347A (zh) * | 2015-07-29 | 2016-05-25 | 宇龙计算机通信科技(深圳)有限公司 | 操作系统切换方法、操作系统切换装置和终端 |
Non-Patent Citations (1)
Title |
---|
深度JAVA的博客-CSDN博客_: "私钥签名公钥验证", 《公钥,私钥和数字签名这样最好理解_》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114138362A (zh) * | 2021-11-18 | 2022-03-04 | 武汉深之度科技有限公司 | 一种内核模块防卸载方法、防卸载装置及计算设备 |
CN114138362B (zh) * | 2021-11-18 | 2024-03-01 | 武汉深之度科技有限公司 | 一种内核模块防卸载方法、防卸载装置及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
US20180365427A1 (en) | 2018-12-20 |
WO2018229640A1 (en) | 2018-12-20 |
US11113404B2 (en) | 2021-09-07 |
US20200019710A1 (en) | 2020-01-16 |
US10467416B2 (en) | 2019-11-05 |
GB2576469B (en) | 2020-07-15 |
US11080405B2 (en) | 2021-08-03 |
US10482259B2 (en) | 2019-11-19 |
JP2020523685A (ja) | 2020-08-06 |
GB201918518D0 (en) | 2020-01-29 |
US20180365426A1 (en) | 2018-12-20 |
JP7169042B2 (ja) | 2022-11-10 |
US20200019709A1 (en) | 2020-01-16 |
DE112018002031T5 (de) | 2020-01-16 |
GB2576469A (en) | 2020-02-19 |
DE112018002031B4 (de) | 2022-08-11 |
CN110663027B (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110663027B (zh) | 用于安全地启动计算系统的方法和系统 | |
US9871821B2 (en) | Securely operating a process using user-specific and device-specific security constraints | |
US10169589B2 (en) | Securely booting a computer from a user trusted device | |
US9021244B2 (en) | Secure boot administration in a Unified Extensible Firmware Interface (UEFI)-compliant computing device | |
US20180082083A1 (en) | Technologies for secure boot provisioning and management of field-programmable gate array images | |
US9836601B2 (en) | Protecting anti-malware processes | |
JP5346608B2 (ja) | 情報処理装置およびファイル検証システム | |
US11165780B2 (en) | Systems and methods to secure publicly-hosted cloud applications to run only within the context of a trusted client application | |
US9710652B1 (en) | Verifying boot process of electronic device | |
US10592661B2 (en) | Package processing | |
US20170255775A1 (en) | Software verification systems with multiple verification paths | |
TWI745629B (zh) | 電腦系統以及初始化電腦系統的方法 | |
US10853086B2 (en) | Information handling systems and related methods for establishing trust between boot firmware and applications based on user physical presence verification | |
US10482278B2 (en) | Remote provisioning and authenticated writes to secure storage devices | |
CN109154903B (zh) | 用于虚拟机的恢复环境 | |
Regenscheid | BIOS protection guidelines for servers | |
US20240037216A1 (en) | Systems And Methods For Creating Trustworthy Orchestration Instructions Within A Containerized Computing Environment For Validation Within An Alternate Computing Environment |
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 |