CN110096886A - 基于清单比较执行安全动作 - Google Patents
基于清单比较执行安全动作 Download PDFInfo
- Publication number
- CN110096886A CN110096886A CN201910073472.2A CN201910073472A CN110096886A CN 110096886 A CN110096886 A CN 110096886A CN 201910073472 A CN201910073472 A CN 201910073472A CN 110096886 A CN110096886 A CN 110096886A
- Authority
- CN
- China
- Prior art keywords
- inventory
- equipment
- starting
- storage
- mode
- 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
-
- 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
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及基于清单比较执行安全动作。本文中公开的示例涉及一种方法,该方法用于获取包括多个启动组件的计算的启动清单,其中启动清单包括与至少一个处理元件、至少一个存储器设备、系统板和总线上的总线设备有关的信息。将启动清单与计算设备进入第一模式时获取的存储的清单进行比较,以确定启动清单和存储的清单是否匹配。安全动作响应于比较而被执行。
Description
背景技术
服务提供商和制造商面临例如通过对计算能力的访问来向消费者交付质量和价值的挑战。数据中心是用于容纳计算机网络、计算机系统和相关联的组件(诸如电信和存储系统)的设施。数据中心、办公室等可以是由制造商制造的计算设备的终端位置。计算设备可能在其端点(例如,数据中心)处或在运送中受到攻击。
附图说明
下面的具体实施方式参考附图,其中:
图1和图2是根据各种示例的、将启动清单与存储的清单进行比较以执行安全动作的计算设备的框图;
图3是根据示例的用于基于清单比较执行安全动作的方法的流程图;并且
图4是根据示例的能够执行基于清单比较执行安全动作的方法的设备的框图。
具体实施方式
服务提供商和制造商面临例如通过对计算能力的访问来向消费者交付质量和价值的挑战。数据中心是用于容纳计算机网络、计算机系统和相关联的组件(诸如电信和存储系统)的设施。数据中心、办公室、仓库等可以是由制造商提供的计算设备的终端位置。计算设备可能在其端点(例如,数据中心)处或在传输中受到攻击。
对于担心安全性的客户而言,一个问题是客户如何可以自信地确定从制造商运送的计算机系统在从计算机制造商到终端客户的运送的供应链中没有被攻击或修改。计算机系统从制造商到终端客户的运送是对可在以后被利用的系统恶意攻击的机会。示例漏洞利用可以包括交换或添加硬件(例如,诸如具有恶意组件的双列直插式存储器模块的特殊存储设备,诸如外围组件互连高速(PCIe)卡的输入/输出(I/O)卡),该硬件可以捕获并泄露客户数据或修改配置设置或固件修订,以降低系统的安全保护。
另一挑战是当客户将系统从一个站点运送到另一个站点时或当系统位于非安全端点站点时,保护系统免受攻击。如果系统正从一个站点被运送到另一个站点或者如果系统不在安全区域中,则其配置设置或硬件配置可能潜在地被修改,使系统处于较不安全的状态。
因此,本文中描述的方法允许对硬件组件的未经授权的改变、硬件组件的盗用以及要被检测的硬件组件和/或固件配置的修改。
在一个示例中,实体(例如,在制造过程期间或用户使系统进入模式(例如,安全运送模式、安全待机模式等)期间的自动过程),其中计算机系统的数字清单由固件组件(例如,基本输入输出系统(BIOS)、基板管理控制器(BMC)、其他固件组件等)创建并被安全地存储。在该示例中,数字清单然后在每次系统引导时被检查,并且BIOS将指示:清单是否已经改变。清单的改变指示:系统已经以某种方式被修改。
在一个示例中,当已经选择安全运送方案作为按订单配置过程的一部分的客户接收系统时,或者当已经启用该模式的用户自己上电或重新引导(reboot)系统时,通知可以被提供以通知用户系统处于该模式的操作中,并且系统将基于关于该引导计算的数字清单与安全存储的数字清单是否匹配,在上电时报告它是否已被泄露。
如果系统未通过数字签名检查,则可以进行客户可配置的安全动作。在一个示例中,安全动作可以包括在没有密码的情况下不能将系统上电到操作系统(OS)。在一个示例中,当模式被启用时,可以通过系统实现该特征的密码。一种形式的认证(例如,密码)可以是有益的,因为没有保护,恶意方可以使系统脱离安全运送/待机模式,危害系统,并且然后使用新的清单使系统回到安全运送/待机模式。
数字清单可以采用多种形式。在一个示例中,数字清单可以包括创建包括要被保护的多个项目的散列(例如,使用现代行业标准散列算法)。在一个示例中,项目可以包括用于安装在系统中的所有PCIe设备的所有行业标准PCIe配置空间。在另一示例中,项目可以包括来自已安装的双列直插式存储模块(DIMM)的唯一标识符信息(例如,序列号)。在进一步的示例中,项目可以包括处理器中可用的唯一标识符。在一些示例中,该值是不可修改的并且对于每个单独的处理器是唯一的。在进一步的示例中,项目可以包括固件的配置设置。这可以包括例如安全设置和安全引导密钥数据库。在一些示例中,所有配置设置可以被清点。在其他示例中,配置设置的子集(例如,与安全性、更新、硬件组件等相关联的设置)可以被清点。此外,系统板上或计算系统上的其他地方的已安装的固件(例如,BIOS、BMC固件、电源固件、控制器集线器固件、定制专用集成电路(ASIC)版本等)的固件修订可以被清点。
在一些示例中,数字清单使用硬件训练数据(例如,DIMM训练信息和PCIe卡训练信息)。训练数据可以在制造时被获取,并且为此可以被重复使用。在一些示例中,硬件模块中的每个的特性可以在多个参数(例如,温度、速度、电容等)下被获取,以创建趋势参数。在一些示例中,机器学习可以用于学习各种类型的组件的特性。可以基于先前测试的组件在不同参数设置下如何执行来推断模块在各种参数下的特性。在一些示例中,训练数据对于每个模块可以是唯一的。在其他示例中,训练数据映射到趋势特性组,并且模块是否在被用作标识符(尽管不是完全唯一的)的趋势特征特性组标识符内。
在一个示例中,在制造时间期间,系统进入安全运送模式。当密码被提供时,系统进入该模式。该密码可以作为订购过程的一部分由客户提供,在制造过程中被随机确定并提供给客户等。在一个示例中,为了对系统的配置进行更改,密码是必需的。在系统进入安全运送模式后的下一次引导时,固件(例如,BIOS)将通过创建已安装的硬件设备的散列(DIMM唯一标识符、PCI配置空间内的PCIe卡唯一标识符、处理器唯一标识符等)、配置设置、固件修订等来创建数字清单。该数字清单可以被存储在安全的非易失性储存器中。
在示例中,在任何后续引导时,固件将生成当前数字启动清单并将计算出的数字清单与存储的“黄金”数字清单进行比较。如果清单匹配,则固件将指示:系统处于安全运送模式(或使用此方法的其他模式)并且系统未泄露。如果清单不匹配,则固件可以提供系统处于该模式并且系统已经泄露或修改的通知(例如,在屏幕上或通过日志消息)。
其他安全动作可以被配置。在一个示例中,安全动作可以包括阻止引导,除非密码被提供。在一个示例中,接收系统的客户可以确认系统到达他们显示适当的消息并且没有被泄露(确认数字签名匹配)。在进一步的示例中,密码可以被要求来禁用模式,将模式重新配置为另一模式,或者更改安全动作设置(例如,什么安全动作针对检测到的特定事件发生)。
在另一示例中,所描述的方法也可以用于允许实体利用相同的保护将系统从一个站点运送到另一个站点。这可以允许实体将系统从中央站点运送到远程位置,并验证在实体自己的“供应链”中没有泄露发生。此外,类似的方法可以用于已经部署在非安全位置或甚至安全位置中的“静止”系统。系统可以始终留在安全运送或待机模式,以防止对系统的恶意修改。在这些示例中的一些中,清单的部分可不被采用,例如,固件修订清单。这将允许在这样的系统上根据需要更新固件而不使其脱离安全模式,同时仍然免受硬件更改或配置设置更改。
图1和图2是根据各种示例的、将启动清单与存储的清单进行比较以执行安全动作的计算设备的框图。计算设备100包括固件引擎110、存储的清单112、系统板114、处理元件130、存储器设备132、总线140和相关联的总线设备142。计算设备200还包括基板管理控制器(BMC)214、可信平台模块(TPM)216、配置设置218、固件220、控制器集线器252和ASIC254。
在一些示例中,计算设备100、200还可以包括输入/输出接口,输入/输出接口可以用于例如通过网络与其他设备通信,提供可听信息,提供视觉信息等。输入/输出接口还可以用于实现其他输入/输出,例如,存储功能(例如,访问一个或多个存储阵列)。
可以使用由处理器和/或逻辑可执行的指令来实现固件引擎110。在一些示例中,固件引擎可以被实现为平台固件。平台固件可以包括诸如基本输入/输出系统(BIOS)或统一可扩展固件接口(UEFI)的接口以允许它交互。平台固件可以位于计算设备100、200的处理元件130(例如,CPU)引导(boot)的地址空间处。在一些示例中,平台固件可以负责计算设备100、200的上电自检。在其他示例中,平台固件可以负责引导过程以及什么操作系统(如果有的话)加载到计算设备100、200上。此外,平台固件可以能够初始化计算设备100、200的各种组件,诸如外围设备、存储器设备132、存储器控制器设置、存储控制器设置、总线速度、视频卡信息等。
在一些示例中,BMC 214可以用于实现用于计算设备200的服务。BMC 214可以使用与处理元件130分离的处理器来实现,处理元件130用于执行高级操作系统。BMC可以为计算设备提供所谓的“无人值守(lights-out)”功能。即使操作系统没有安装在计算设备上或者在计算设备上不起作用,无人值守功能也可以允许诸如系统管理员的用户在计算设备200上执行管理操作。此外,在一个示例中,BMC 214可以在辅助电源上运行,因此计算设备200不需要上电到接通状态(on state),其中计算设备200的控制在引导之后被移交给操作系统。作为示例,BMC 214可以提供所谓的“带外”服务,诸如远程控制台访问、远程重新引导和电力管理功能、监视系统的健康、访问系统日志等。如本文中使用的,BMC 214具有用于计算设备200的子系统的管理能力,并且与执行计算设备的主操作系统(例如,服务器或服务器组)的处理器或处理元件130分离。
如所指出的,在某些情况下,BMC 214可以启用计算设备200的无人值守管理,计算设备200提供远程管理访问(例如,系统控制台访问),而不管计算设备200是否被上电,是否主网络子系统硬件正在运行,或者是否OS正在运行或甚至被安装。BMC 214可以包括管理员可以用来与BMC 214远程通信的接口,诸如网络接口和/或串行接口。如本文中使用的,“带外”服务是由BMC 214通过专用管理信道(例如,网络接口或串行接口)提供的服务,并且无论计算设备200是否处于上电状态,该服务都是可用的。
在一些示例中,BMC 214可以被包括作为外壳的一部分。在其他示例中,BMC 214可以包含在服务器中的一个或多个中(例如,作为服务器的管理子系统的一部分)或者通过接口(例如,外围接口)连接。在一些示例中,与BMC 214相关联的传感器可以测量内部物理变量,诸如湿度、温度、电源电压、通信参数、风扇速度、操作系统功能等。BMC 214也能够重新引导或重启设备。如所指出的,BMC 214允许设备的远程管理,这样,可以使用BMC 214向集中式站做出通知,并且可以通过BMC 214实现密码或其他用户输入。
操作系统是管理计算机硬件和软件资源并且为计算机程序提供公共服务的系统软件。OS可以在处理元件130上是可执行的,并且被加载到存储器设备132。OS是高级OS,诸如LINUX、WINDOWS、UNIX、裸机管理程序,或者计算设备200的引导固件引擎110将计算设备200的控制转到的其他类似高级软件。
在一个示例中,实体发起使计算设备100、200进入第一模式(例如,在制造过程期间的自动过程或用户使系统进入第一模式(例如,安全运送模式、安全待机模式等)),其中计算机系统的清单被固件引擎110获取。如所指出的,在一些示例中,固件引擎110可以被实现为平台固件,并且可以结合其他固件组件(例如,BMC 214或其他微控制器)来实现。在示例中,密码可以被输入作为第一模式的实现的部分。在一个示例中,当计算设备100、200进入第一模式时,固件引擎110可以获取清单并将清单存储为存储的清单112。
在该示例中,固件引擎110可以获取可能想要保护和跟踪的多个组件的清单。在一些示例中,固件引擎110可以等待直至计算设备100、200的下次重新引导以执行清单。在其他示例中,不需要重新引导。在一些示例中,模式的启动是在操作系统的引导时,其中重新引导可能是有益的。例如,计算设备100、200可以引导到操作系统,并且驱动器可以在操作系统中被使用以在下次重新引导计算设备时配置模式。在一些示例中,密码可以在操作系统级别被输入。在一些示例中,运行在操作系统上的应用可以用于启动模式。此外,在一些示例中,BMC 214可以用于在引导到操作系统期间控制系统。此外,在一些示例中,脚本可以用于远程启用第一模式并输入密码。密码可以被存储或被实现为需要关闭模式。
要被清点的设备或组件的示例包括一个或多个处理元件130、存储器设备132、系统板114和/或系统板114的多个组件、在一个或多个总线140(例如,PCIe总线)上的总线设备142、控制器集线器252和/或连接到控制器集线器252的设备、现场可更换的单元外壳、北桥设备、其他ASIC 254等。如本文中使用的,系统板是用于计算设备100、200的主印刷电路板并且允许计算设备的许多组件(例如,处理元件130、存储器设备132、外围设备、总线设备等)之间的通信。在一些示例中,控制器集线器252可以是I/O控制器集线器,例如南桥。控制器集线器可以用于管理CPU与系统板114的其他组件之间的数据通信。在一些示例中,控制器集线器可以具有到北桥设备或CPU的直接媒体接口。此外,控制器集线器可以为计算设备200提供外围设备支持,诸如总线连接,像通用串行总线(USB)、外围组件互连(PCI)、PCI高速(PCI express)、PCI扩展、串行AT附件、音频电路、集成以太网、增强主机控制器接口、它们的组合等。可以使用的标识符的其他示例包括系统板修订标识符、复杂可编程逻辑设备修订标识符、ASIC步进标识符、平台和底盘标识符、立板标识符、嵌入式控制器标识符、电池和电力标识符、存储组件标识符等。
在一个示例中,固件引擎110可以来回询问(例如,发送查询并接收响应)要清点的组件中的每个。这可以通过特定序列来执行,以确保每个组件被检测和清点。在一些示例中,可以使用间接方法,例如,在计算设备100、200上的一个或多个总线140可以被搜索用于组件,并且然后组件可以被清点。如本文中使用的,总线是在计算设备100、200内部的组件之间传输数据的通信系统。总线可以包括PCIe总线、存储器总线、通用串行总线等。
在一些示例中,总线设备142可以包含在总线中作为总线设备142。如本文中使用的,外围设备是一组件,该组件不是基本计算机的一部分(例如,主存储器或中央处理单元)。在总线上的外围设备的示例是PCIe集成网卡或PCIe图形加速器。在一些示例中,固件引擎110不直接连接到组件,并且另一组件(例如,控制器集线器252)和/或一个或多个总线可以充当固件引擎110与组件之间的中介。在一些示例中,清单可以包括相应组件的一个或多个唯一标识符。在其他示例中,清单可以包括关于组件的其他静态信息。
如本文中使用的,存储器设备132是可以存储信息的组件。存储器设备132可以是易失性的或非易失性的。此外,存储器设备132可以是由计算设备100、200的中央处理单元可寻址的。存储器设备132的示例包括DIMM。
在一些示例中,清单也可以包括来自固件引擎110、系统板114的其他组件、BMC214、现场可替换单元(FRU)等的固件的一个或多个配置设置218。在一些示例中,配置信息可以包括用于安全设置、硬件启用、硬件速度设置、电压设置等的值。在其他示例中,所清点的配置信息可以包括在引导之间或随着使用通常不会改变的配置设置218的子集。在一些示例中,清单也可以包括在计算设备200上的一个或多个固件的至少一个固件版本标识符。固件版本标识符可以是在特定组件上实现的固件的版本的标识符。此外,在一些示例中,硬件训练信息和特性可以被存储为清单的一部分。
在模式启动时获取的清单可以被存储在存储的清单112中。在一些示例中,存储的清单112是非易失性存储器。在一些示例中,存储的清单112在仅由固件引擎110可修改的位置(例如,在固件引擎110的外部不能被修改的非易失性位置)中。在进一步的示例中,加密信息(例如,使用存储的清单使用加密算法创建的签名)也被获取并被存储在安全位置以确保存储的清单112不被修改。在一个示例中,安全位置在可信平台模块216中。在另一示例中,安全位置在BMC 214的一部分中。在一些示例中,安全位置是仅通过固件引擎110可访问的位置。如本文中使用的,密码信息是可用于确定存储的清单在启动模式时是否已经改变的信息。在一些示例中,密码也可以保存到非易失性存储器,例如,安全位置,作为模式的启动的实现的一部分。在其他示例中,密码不被存储。
在一些示例中,存储的清单112是散列的形式。可以使用散列函数(诸如加密散列函数(例如,MD5、SHA等)或其他散列函数)来实现散列。如本文中使用的,散列可以指代被单独散列的组件的每个信息或者要被确定的整个清单,并且然后针对整个清单采用单个散列。在一些示例中,存储的清单112可以以纯文本被存储。单独的散列允许确定什么改变要被简化。在一些示例中,密钥可以与散列结合使用。如所指出的,在一些示例中,存储的清单112是散列的形式,包括在计算设备100、200进入模式时发现的组件的多个唯一标识符。在其他示例中,如本文中描述的清单的其他信息也可以被散列。
在模式的初始化完成之后,在后续引导时,固件引擎110可以执行固件220以执行引导过程。在一个示例中,在引导期间,处理元件130通过在映射到正被执行的固件220的位置的地址处取得指令来开始。在引导过程期间,固件引擎110获取包括多个启动组件的计算设备200的启动清单。启动清单包括与总线140上的至少一个处理元件130、至少一个存储器设备132、系统板114和至少一个总线设备142有关的信息。在模式的初始化时获取清单的相同过程可以用于获取启动清单。这样,启动清单可以是包括启动组件的多个唯一标识符的启动散列的形式。如所指出的,附加信息也可以包含在启动清单中。如本文中使用的,术语“启动”识别被引用的清单或设备在当前引导时被清点。这些组件和清单信息可以与最初存储的清单112时的清单信息和组件相同。
固件引擎110可以将启动清单与在计算设备100、200进入模式时获取的存储的清单112进行比较。比较可以确定启动清单和存储的清单112是否匹配。安全动作响应于比较而被执行。例如,如果启动清单和存储的清单112不匹配,则通知可以被提供。通知可以包括修改已经被检测到的信息。此外,通知可以是可视的(例如,到显示器的输出)或者是发送给管理员的日志警报。在一些示例中,固件引擎110不允许在没有在模式的初始化期间使用的密码的情况下引导到更高级别的操作系统。这样,密码可以被请求。密码然后可以被用来解锁计算设备100、200,并且允许引导到操作系统。
在一个示例中,BMC 214可以与安全储存器、硬件信任根或其他安全特征相关联。在一个示例中,在将计算设备200初始引导到服务操作系统(OS)或工厂中的供应引擎时,唯一私钥和公钥被生成并且通过被保存到BMC储存器中“粘(glue)”到系统上。该储存器可以是持久的,并且是不可替换的。BMC 214可以允许使用应用编程接口访问密钥。这些值可以被写入到与BMC相同的专用集成电路(ASIC)上的一次写入寄存器。一次写入寄存器可以例如使用保险丝来实现。在一个示例中,私钥通过执行使用随机源的算法被创建并且被编程。在另一示例中,公钥是私钥的加密散列。在一些示例中,一旦被编程,改变寄存器的能力就被禁止(例如,切断可熔断的链路,例如在写入线上)。在一些示例中,BMC 214可以用于确保计算设备200的固件是安全的(例如,通过确保固件不被更新,除非使用BMC 214的私钥可以解密的公钥进行签名或加密)。此外,在一些示例中,BMC 214可以使计算设备200停止使用被泄露的固件进行引导。
处理元件130可以是一个或多个中央处理单元(CPU)或CPU与其他组件的组合,诸如图形处理单元(GPU)或适合获取和执行指令的微处理器和/或被配置为执行本文中描述的功能的电子电路。在一些示例中,固件引擎110可以被实现为在计算设备100、200的机器可读存储介质上编码并且由处理元件130可执行的一系列指令。
在一些示例中,由计算设备支持的硅信任根(root-of-trust)特征用于确保计算设备100、200上的固件不被泄露。硅信任根确保BIOS和BMC固件即使用对系统进行物理访问替代,也不能用不可信的BIOS和BMC固件替代。
通信网络可以使用有线通信、无线通信或它们的组合。此外,通信网络可以包括多个子通信网络,诸如数据网络、无线网络、电话网络等。这样的网络可以包括例如公共数据网络,诸如因特网、局域网(LAN)、广域网(WAN)、城域网(MAN)、有线网络、光纤网络、它们的组合等。在某些示例中,无线网络可以包括蜂窝网络、卫星通信、无线LAN等。此外,通信网络可以是设备之间的直接网络链路的形式。各种通信结构和基础设施可以被利用以实现通信网络。计算设备可以使用通信网络连接到其他设备。
举例来说,设备通过通信协议或多种协议彼此通信以及与其他组件通信而访问通信网络。协议可以是限定通信网络的节点如何与其他节点交互的一组规则。此外,网络节点之间的通信可以通过交换离散的数据分组或发送消息来实现。分组可以包括与协议(例如,关于要联系的网络节点的位置的信息)以及有效载荷信息相关联的头信息。
图3是根据示例的用于基于清单比较执行安全动作的方法的流程图。图4是根据示例的能够执行基于清单比较执行安全动作的方法的设备的框图。
设备400包括例如处理元件410和机器可读存储介质420,机器可读存储介质420包括用于基于清单的比较执行安全动作的指令422、424、426。设备400可以是例如服务器、笔记本计算机、制造设备或能够执行本文中描述的特征的任何其他计算设备。
在某些示例中,处理元件410可以包括一个或多个中央处理单元(CPU)、一个或多个基于半导体的微处理器、一个或多个图形处理单元(GPU)、适于获取和执行存储在机器可读存储介质420中的指令的其他硬件设备,或它们的组合。处理元件410可以是物理设备。此外,在一个示例中,处理元件410可以包括芯片上的多个核,包括跨多个芯片的多个核、跨多个设备的多个核(例如,如果设备400包括多个节点设备),或它们的组合。处理元件410可以取得、解码和执行指令422、424、426以实现方法300。作为获取和执行指令的替代或除获取和执行指令以外,处理元件410可以包括包含用于执行指令422、424、426的功能的多个电子组件的至少一个集成电路(IC)、其它控制逻辑、其它电子电路或者它们的组合。
机器可读存储介质420可以是包含或存储可执行指令的任何电子存储设备、磁性存储设备、光存储设备或其它物理存储设备。因此,机器可读存储介质可以是例如随机存取存储器(RAM)、电可擦写可编程只读存储器(EEPROM)、存储驱动器、闪存、光盘只读存储器(CD-ROM)等。这样,机器可读存储介质可以是非暂时性的。如本文中具体描述的,机器可读存储介质420可以被编码有用于执行方法300的一系列可执行指令。
尽管下面参考设备400描述了方法300的执行,但是可以利用用于执行方法300的其他合适的组件(例如,计算设备100、200)。另外,用于执行方法300的组件可以分散在多个物理设备之间。方法300可以以存储在机器可读存储介质(诸如存储介质420)上的可执行指令的形式和/或以电子电路的形式来实现。
设备400可以处于能够接收输入的模式。输入可以用于打开模式(例如,安全模式、运送模式、待机模式等)。作为模式的实现的一部分,在302处,处理元件410接收与设备的安全的第一模式相关联的密码。认证指令424可以用于接受密码的输入。如所指出的,密码可以被选择作为制造订购过程的一部分或由终端用户输入。如上所述,在下次引导或没有新的引导时,清点指令422可以被执行以实现模式并获取清单。
在304处,清点指令422被执行以清点设备400。清单可以基于与设备400的特定组件相关联的多个唯一标识符。例如,至少一个唯一标识符可以与安装在设备上的每个主存储器模块、安装在设备上的每个处理器、设备的系统板、设备的总线的配置空间中的多个总线设备中的每个、它们的组合等相关联。在一些示例中,配置空间是用于实现总线的协议执行插入到总线中的组件(例如,卡)的自动配置的基本方式。配置空间的示例是PCIe配置空间。
此外,如上所述,清单可以基于一个或多个配置设置。此外,在一些示例中,关于在设备上实现的多个固件中的每个的版本信息可以包含在清单中。如上所述,可以使用散列的形式来实现清单。在306处,清单被存储在设备400处。如上所述,安全存储可以被使用,并且关于清单的密码信息可以被存储(306)。
一旦模式被启用,则在随后的引导中,处理元件410执行引导过程(308)。如所指出的,在一些示例中,当主电力被施加到设备400时,处理元件410可以在实现引导过程的引导扇区处开始执行。在引导过程期间,因为模式被启用,所以清点指令422用于获取设备的启动清单(310)。启动清单可以包括查找在原过程中寻找的相同组件以获取存储的清单。此外,散列也可以用于实现启动。
在312处,清点指令422由处理元件410执行,以将启动清单与存储的清单进行比较,以确定启动清单和存储的清单是否匹配。
在314处,响应于比较,可以通过执行安全动作指令426来执行安全动作。在一个示例中,清单匹配,如上所述,通知可以被输出,指示:模式是激活的和/或计算设备未被改变。在另一示例中,如果清单不匹配,则可以采取定制动作。例如,通知可以被发送到标记设备400可能已经被修改的目的地。在另一示例中,安全动作可以包括输出通知并且需要在设备可以被引导到操作系统之前激活模式时接收到的密码。
在一些示例中,密码信息可以指示:存储的清单被改变。在这种场景下,也可以通过执行认证指令424来请求密码,以允许设备400引导到操作系统。此外,通知可以被发送,指示:清单已经改变。
虽然上面已经示出并描述了某些实施方式,但是可以进行形式和细节上的各种改变。例如,关于一个实施方式和/或过程已经描述的一些特征可以与其他实施方式相关。换句话说,关于一个实施方式描述的过程、特征、组件和/或属性在其他实施方式中可以是有用的。此外,应了解,本文中所描述的系统和方法可以包括所描述的不同实施方式的组件和/或特征的各种组合和/或子组合。因此,参考一个或多个实施方式描述的特征可以与本文中描述的其他实施方式组合。
Claims (20)
1.一种计算设备,包括:
至少一个处理元件;
至少一个存储器设备;
包括至少一个总线设备的总线;
系统板;
固件引擎,包括在引导过程期间在计算设备的引导时执行的固件,所述固件引擎用于:
获取包括多个启动组件的所述计算设备的启动清单,其中所述启动清单包括与所述至少一个处理元件、所述至少一个存储器设备、所述系统板和所述总线上的所述至少一个总线设备有关的信息;
将所述启动清单与在所述计算设备进入第一模式时获取的存储的清单进行比较,以确定所述启动清单和所述存储的清单是否匹配;以及
响应于所述启动清单和存储的清单不匹配,执行安全动作。
2.根据权利要求1所述的计算设备,进一步包括:
与所述至少一个处理元件分离的基板管理控制器,所述基板管理控制器包括硬件信任根,以防止固件被替换或修改。
3.根据权利要求2所述的计算设备,其中所述基板管理控制器包括用于所述存储的清单的密码信息。
4.根据权利要求1所述的计算设备,进一步包括:在所述固件引擎的外部不能被修改的非易失性存储器,其中所述非易失性存储器包括用于所述存储的清单的密码信息。
5.根据权利要求1所述的计算设备,其中所述存储的清单是包括当所述计算设备进入所述第一模式时在所述计算设备上找到的多个组件的多个唯一标识符的散列的形式。
6.根据权利要求5所述的计算设备,其中所述启动清单是包括所述启动组件的多个唯一标识符的启动散列的形式。
7.根据权利要求5所述的计算设备,其中所述散列包括多个配置设置和至少一个固件版本标识符。
8.根据权利要求5所述的计算设备,其中所述散列包括与当所述计算设备进入所述第一模式时在所述计算设备上找到的所述多个组件中的至少一个有关的硬件训练信息。
9.根据权利要求1所述的计算设备,其中所述固件引擎进一步用于:提供修改已经被检测到的通知作为所述安全动作的一部分,并且请求密码以将所述计算设备引导到操作系统。
10.根据权利要求9所述的计算设备,其中所述密码被保存为实现所述第一模式的一部分。
11.一种存储指令的非暂时性机器可读存储介质,如果所述指令由设备的物理处理元件执行,则所述指令使得所述设备:
接收与所述设备的安全的第一模式相关联的密码;
获取所述设备的清单,基于多个唯一标识符的所述清单分别与安装在所述设备上的每个主存储器模块、安装在所述设备上的每个处理器、所述设备的系统板以及所述设备的总线的配置空间中的多个总线设备中的每个和多个配置设置的每个相关联;
将所述清单存储在非易失性储存器中作为存储的清单;
继所述设备进入所述第一模式之后,在启动所述设备时开始执行引导过程,其中所述物理处理元件在随后启动时由所述指令开始执行;
获取包括多个启动组件的所述设备的启动清单,其中基于多个启动唯一标识符的所述启动清单分别与安装在所述设备上的每个启动主存储器模块、安装在所述设备上的每个启动处理器、启动系统板以及所述设备的所述总线的配置空间中的多个启动总线组件中的每个和在所述随后启动时的所述多个配置设置的每个相关联;
将所述启动清单与所述存储的清单进行比较,以确定所述启动清单和所述存储的清单是否匹配;以及
响应于所述比较,执行安全动作。
12.根据权利要求11所述的非暂时性机器可读存储介质,其中,所述设备包括与所述物理处理元件分离的基板管理控制器,以确保所述指令不被修改或替换。
13.根据权利要求11所述的非暂时性机器可读存储介质,其中所述存储的清单和启动清单每个是散列的形式。
14.根据权利要求13所述的非暂时性机器可读存储介质,其中所存储的清单进一步基于与在所述设备上实现的多个固件版本中的每个有关的版本信息。
15.根据权利要求13所述的非暂时性机器可读存储介质,其中所述存储的清单包括与当所述设备进入所述第一模式时在所述设备上找到的所述多个组件中的至少一个有关的硬件训练信息。
16.根据权利要求11所述的非暂时性机器可读存储介质,进一步包括指令,如果所述指令由所述物理处理元件执行,则所述指令使得所述设备:
在确定所述启动清单和所述存储的清单不匹配时,提供修改已经被检测到的通知作为所述安全动作的一部分,并且请求密码将所述设备引导到操作系统。
17.一种方法,包括:
接收与设备的安全的第一模式相关联的密码;
获取所述设备的清单,基于多个唯一标识符的所述清单分别与安装在所述设备上的每个主存储器模块、安装在所述设备上的每个处理器、所述设备的系统板以及所述设备的总线的配置空间中的多个总线设备中的每个和多个配置设置的每个相关联;
将所述清单存储在非易失性储存器中作为存储的清单;
继所述设备进入所述第一模式之后,在启动所述设备时开始执行引导过程;
在所述引导过程期间,获取包括多个启动组件的所述设备的启动清单,其中基于多个启动唯一标识符的所述启动清单分别与安装在所述设备上的每个启动主存储器模块、安装在所述设备上的每个启动处理器、启动系统板以及所述设备的所述总线的配置空间中的多个启动总线设备中的每个和在所述随后启动时的所述多个配置设置的每个相关联;
将所述启动清单与所述存储的清单进行比较,以确定所述启动清单和所述存储的清单是否匹配;以及
响应于所述比较,执行安全动作。
18.根据权利要求17所述的方法,其中所述存储的清单和启动清单每个是散列的形式。
19.根据权利要求17所述的方法,其中所述存储的清单包括与当所述设备进入所述第一模式时在所述设备上找到的所述主存储器模块中的至少一个有关的硬件训练信息。
20.根据权利要求17所述的方法,进一步包括:
在确定所述启动清单和所述存储的清单不匹配时,提供修改已经被检测到的通知作为所述安全动作的一部分,并且请求所述密码将所述设备引导到操作系统。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/884,747 US20190236279A1 (en) | 2018-01-31 | 2018-01-31 | Perform security action based on inventory comparison |
US15/884,747 | 2018-01-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110096886A true CN110096886A (zh) | 2019-08-06 |
Family
ID=65011871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910073472.2A Pending CN110096886A (zh) | 2018-01-31 | 2019-01-25 | 基于清单比较执行安全动作 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20190236279A1 (zh) |
EP (1) | EP3522059B1 (zh) |
CN (1) | CN110096886A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190880A (zh) * | 2020-01-29 | 2021-07-30 | 慧与发展有限责任合伙企业 | 基于对安全协处理器的背书信息的分析确定是否对计算设备执行动作 |
CN113536248A (zh) * | 2020-04-22 | 2021-10-22 | 联想企业解决方案(新加坡)有限公司 | 可配置用于安全启动的计算设备 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11803644B2 (en) * | 2019-07-23 | 2023-10-31 | SDG Logic Inc. | Security hardened processing device |
US11361067B2 (en) * | 2019-08-29 | 2022-06-14 | Mitac Computing Technology Corporation | Cross authentication method for computer system security |
US10997297B1 (en) * | 2019-12-06 | 2021-05-04 | Western Digital Technologies, Inc. | Validating firmware for data storage devices |
US11973879B2 (en) * | 2020-09-14 | 2024-04-30 | Hewlett Packard Enterprise Development Lp | Logging modification indications for electronic device components |
US11599642B2 (en) * | 2020-12-30 | 2023-03-07 | Dell Products, L.P. | Secure booting of information handling systems based on validated hardware |
US11687431B2 (en) * | 2021-01-18 | 2023-06-27 | Dell Products L.P. | Determining changes to components of a computing device prior to booting to a primary environment of the computing device |
US11907375B2 (en) * | 2021-04-13 | 2024-02-20 | Hewlett Packard Enterprise Development Lp | System and method for signing and interlocking a boot information file to a host computing system |
US11907409B2 (en) * | 2021-09-29 | 2024-02-20 | Dell Products L.P. | Dynamic immutable security personalization for enterprise products |
US12001560B2 (en) * | 2021-10-28 | 2024-06-04 | Quanta Computer Inc. | Method and system for avoiding boot failure from platform firmware resilience execution |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090119744A1 (en) * | 2007-11-01 | 2009-05-07 | Microsoft Corporation | Device component roll back protection scheme |
CN101599019A (zh) * | 2008-06-06 | 2009-12-09 | 华硕电脑股份有限公司 | 用以快速开启程序的计算机执行系统以及方法 |
US20100153696A1 (en) * | 2008-12-12 | 2010-06-17 | Novell, Inc. | Pre-boot securing of operating system (OS) for endpoint evaluation |
US20140250291A1 (en) * | 2013-03-01 | 2014-09-04 | Nicholas J. Adams | Continuation of trust for platform boot firmware |
US20150089209A1 (en) * | 2013-09-25 | 2015-03-26 | Cisco Technology, Inc. | Synchronization of UEFI Secure Boot Variables on a Managed Server |
WO2015183820A1 (en) * | 2014-05-30 | 2015-12-03 | Google Inc. | Dynamic authorization |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050114687A1 (en) * | 2003-11-21 | 2005-05-26 | Zimmer Vincent J. | Methods and apparatus to provide protection for firmware resources |
US7917762B2 (en) * | 2005-09-30 | 2011-03-29 | Phoenix Technologies Ltd. | Secure execution environment by preventing execution of unauthorized boot loaders |
JP5773773B2 (ja) * | 2011-06-22 | 2015-09-02 | キヤノン株式会社 | 画像形成装置、画像形成装置の起動制御方法、プログラム及び記憶媒体 |
JP5843637B2 (ja) * | 2012-02-01 | 2016-01-13 | キヤノン株式会社 | 画像形成装置、画像形成装置の制御方法、及びプログラム |
EP2884417B1 (de) * | 2013-12-10 | 2019-09-04 | Wincor Nixdorf International GmbH | Verfahren zur Abwehr von Cold-Boot Angriffen auf einen Computer in einem Selbstbedienungs-Terminal |
US20150213266A1 (en) * | 2014-01-27 | 2015-07-30 | Smartronix, Inc. | Remote enterprise security compliance reporting tool |
US10417211B2 (en) * | 2016-09-29 | 2019-09-17 | Vmware, Inc. | Quick hardware inventory of a software-defined data center (SDDC) multi-rack |
US20180181762A1 (en) * | 2016-12-28 | 2018-06-28 | Intel Corporation | Techniques for persistent firmware transfer monitoring |
-
2018
- 2018-01-31 US US15/884,747 patent/US20190236279A1/en not_active Abandoned
-
2019
- 2019-01-09 EP EP19150880.3A patent/EP3522059B1/en not_active Not-in-force
- 2019-01-25 CN CN201910073472.2A patent/CN110096886A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090119744A1 (en) * | 2007-11-01 | 2009-05-07 | Microsoft Corporation | Device component roll back protection scheme |
CN101599019A (zh) * | 2008-06-06 | 2009-12-09 | 华硕电脑股份有限公司 | 用以快速开启程序的计算机执行系统以及方法 |
US20100153696A1 (en) * | 2008-12-12 | 2010-06-17 | Novell, Inc. | Pre-boot securing of operating system (OS) for endpoint evaluation |
US20140250291A1 (en) * | 2013-03-01 | 2014-09-04 | Nicholas J. Adams | Continuation of trust for platform boot firmware |
US20150089209A1 (en) * | 2013-09-25 | 2015-03-26 | Cisco Technology, Inc. | Synchronization of UEFI Secure Boot Variables on a Managed Server |
WO2015183820A1 (en) * | 2014-05-30 | 2015-12-03 | Google Inc. | Dynamic authorization |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113190880A (zh) * | 2020-01-29 | 2021-07-30 | 慧与发展有限责任合伙企业 | 基于对安全协处理器的背书信息的分析确定是否对计算设备执行动作 |
CN113190880B (zh) * | 2020-01-29 | 2023-12-08 | 慧与发展有限责任合伙企业 | 基于对安全协处理器的背书信息的分析确定是否对计算设备执行动作 |
CN113536248A (zh) * | 2020-04-22 | 2021-10-22 | 联想企业解决方案(新加坡)有限公司 | 可配置用于安全启动的计算设备 |
Also Published As
Publication number | Publication date |
---|---|
US20190236279A1 (en) | 2019-08-01 |
EP3522059A1 (en) | 2019-08-07 |
EP3522059B1 (en) | 2021-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096886A (zh) | 基于清单比较执行安全动作 | |
US20220035923A1 (en) | Technologies for secure hardware and software attestation for trusted i/o | |
US11861372B2 (en) | Integrity manifest certificate | |
US11995182B2 (en) | Baseboard management controller to perform security action based on digital signature comparison in response to trigger | |
US10318736B2 (en) | Validating operating firmware of a periperhal device | |
KR101662618B1 (ko) | 단일 신뢰 플랫폼 모듈을 가진 플랫폼 컴포넌트의 측정 | |
US11030347B2 (en) | Protect computing device using hash based on power event | |
US11102002B2 (en) | Trust domain isolation management in secured execution environments | |
US11436324B2 (en) | Monitoring parameters of controllers for unauthorized modification | |
CN111414612B (zh) | 操作系统镜像的安全保护方法、装置及电子设备 | |
US20190138730A1 (en) | System and Method to Support Boot Guard for Original Development Manufacturer BIOS Development | |
US11822669B2 (en) | Systems and methods for importing security credentials for use by an information handling system | |
TW202044022A (zh) | 更新信號技術 | |
CN111177703B (zh) | 操作系统数据完整性的确定方法及装置 | |
US11977640B2 (en) | Systems and methods for authenticating the identity of an information handling system | |
CN113190880B (zh) | 基于对安全协处理器的背书信息的分析确定是否对计算设备执行动作 | |
US20200235917A1 (en) | Shared secret generation | |
WO2020073750A1 (zh) | 终端攻击防御方法、装置、终端及云服务器 | |
CN117494232B (zh) | 固件的执行方法和装置、系统、存储介质及电子设备 | |
US11843707B2 (en) | Systems and methods for authenticating hardware of an information handling system | |
US20230011005A1 (en) | Systems and methods for authenticating configurations of an information handling system | |
US12019752B2 (en) | Security dominion of computing device | |
TW202001661A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190806 |
|
WD01 | Invention patent application deemed withdrawn after publication |