CN113568799A - 对物理安全设备的模拟 - Google Patents
对物理安全设备的模拟 Download PDFInfo
- Publication number
- CN113568799A CN113568799A CN202110440543.5A CN202110440543A CN113568799A CN 113568799 A CN113568799 A CN 113568799A CN 202110440543 A CN202110440543 A CN 202110440543A CN 113568799 A CN113568799 A CN 113568799A
- Authority
- CN
- China
- Prior art keywords
- security
- request
- management controller
- baseboard management
- secure
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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
- 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/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- 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
-
- 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
-
- 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
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及对物理安全设备的模拟。一种技术包括基板管理控制器从请求者接收对要执行的安全功能的请求,其中,所述请求被定向到除所述基板管理控制器之外的物理安全设备。所述技术包括所述基板管理控制器对所述请求进行响应,以模拟所述安全设备对所述请求的响应。
Description
背景技术
计算机系统(例如,服务器)可以包括专用服务处理器,所述专用服务处理器被称为“基板管理控制器”或“BMC”,其监测计算机系统的物理状态并通过管理网络与管理系统进行通信。作为其功能的示例,BMC可以:监测传感器(例如,温度传感器、冷却风扇速度传感器);监测操作系统状态;监测电源状态;记录计算机系统事件;并且提供可以远程控制的针对计算机系统的管理功能。此外,BMC可以允许在计算机系统断电时并且操作系统已启动之前执行操作;并且BMC可以用于在操作系统或计算机系统出现故障之后执行恢复操作。
附图说明
图1是根据示例实施方式的计算机系统的示意图。
图2是根据示例实施方式的模拟物理安全设备对安全服务请求的响应的桥的图示。
图3是根据示例实施方式的图1的计算机系统的基板管理控制器(BMC)的安全包围区的示意图。
图4是根据示例实施方式的安全包围区对与特定安全解决方案相对应的程序代码集的选择的图示。
图5是描绘根据示例实施方式的BMC通过模拟物理安全设备的响应来对安全功能请求进行响应的技术的流程图。
图6是根据示例实施方式的计算机系统的示意图,所述计算机系统包含用于执行旨在用于物理安全插入器的安全功能的桥。
图7是根据示例实施方式的包含安全包围区的BMC的示意图,所述安全包围区具有用于模拟物理安全设备的响应的安全核。
具体实施方式
BMC可以执行被称为“固件堆栈”的固件指令集,目的是执行针对计算机系统(诸如服务器平台)的各种与管理相关的功能(例如,操作系统运行时服务、资源检测和初始化、预操作系统服务等)。BMC可以是相当复杂的子系统,其甚至在服务器平台上电之前就执行数百万条指令。尽管服务器平台可能会在BMC加载并执行固件堆栈之前对所述堆栈的完整性进行验证,但是堆栈中相对大量的指令可能使服务器平台面临潜在未发现的安全漏洞。因此,服务器平台的客户可能希望使用开源固件堆栈而不是使用专有固件堆栈来管理服务器平台。
此外,给定客户可能希望使用相同的开源BMC固件堆栈来管理客户的所有服务器平台,而与这些平台的特定服务器平台供应商无关。作为示例,开源BMC固件堆栈可以是作为OpenBMC社区的一部分被开发的固件(诸如发行版本2.7或更高版本)、以及其他开源固件。客户可能还期望要在其所有服务器平台上使用特定的安全解决方案,而与平台供应商无关。开源BMC固件堆栈和便携式安全解决方案对于无云计算环境可能特别有利。
在此上下文中,计算机系统的“安全解决方案”是指要由计算机系统提供的一组安全功能或服务。所述安全解决方案可以包括由应用程序编程接口(API)定义的一组预定义安全功能,诸如用于执行密钥管理的功能(例如,用于存储和加载密码密钥的功能)、固件映像验证、平台密码身份检索、度量散列加载、度量散列检索等功能。
由于缺乏对安全解决方案的标准化,因此当前可选择使用针对给定计算机系统的一种或多种安全解决方案,并且不同的安全解决方案可以与不同的硬件配置相关联。作为示例,一种安全解决方案可以涉及使用BMC的安全包围区对特定的安全功能API调用进行响应、执行相关的安全原语并生成对API调用的相应响应。其他安全解决方案可以使用除BMC之外的硬件。例如,特定的安全解决方案可能依赖于物理安全插入器设备。安全插入器设备可以位于总线(例如,串行外围接口(SPI)总线)与存储固件映像的存储器之间;并且安全插入器设备可以拦截和控制与存储固件(例如,针对BMC的固件堆栈和针对服务器平台的固件)的存储器的通信(例如,读取访问和写入访问)。而且,可能存在多个物理安全插入器设备以及涉及这些设备的相应多种安全解决方案。
对于服务器平台供应商而言,解决其客户所要求的许多可能的安全解决方案可能是具有挑战性的。例如,客户A可能期望基于特定物理安全插入器设备的安全解决方案;并且一种方法可能是供应商提供包括物理安全插入器设备的服务器平台硬件。然而,客户B可能期望依赖于BMC提供安全解决方案的安全解决方案;并且一种方法可能是供应商供应不包括物理安全插入器设备而是依赖于BMC为客户B提供安全解决方案的服务器平台硬件。客户C可能期望使用与客户A不同的物理安全插入器设备的安全解决方案。提供各种服务器平台硬件版本以适应不同的安全解决方案可能会增加产品开发时间和成本,并且可能阻碍平台硬件供应商追求某些商机。
根据本文公开的示例实施方式,诸如BMC等桥设备(或“桥”)包含安全包围区,所述安全包围区被构造用于为计算机系统提供多种不同安全解决方案之一,包括模拟特定的物理安全插入器设备的安全解决方案。通过在安全包围区内部执行的可信固件,可以使用相同的硬件来提供许多不同安全解决方案中的任一种。
在此上下文中,“桥设备”是指计算机系统的硬件部件,其使计算机系统的多条总线互连。桥设备(例如,BMC)可以执行除使总线互连之外的功能。“安全包围区”是指计算机系统的子系统,为了实现此目的,对进出所述子系统的访问进行严格控制。根据示例实施方式,安全包围区执行针对计算机系统的密码功能并被设置在密码边界内。在此上下文中,“密码边界”是指连续的边界或周界,其包含密码子系统(诸如安全包围区)的逻辑部件和物理部件。
根据示例实施方式,BMC包含管理平面以及与管理平面隔离的安全平面。安全包围区形成BMC的安全平面,即BMC的为计算机系统提供安全服务的部分;并且安全平面与BMC的管理平面隔离。而管理平面又是BMC的执行固件堆栈(例如,开源BMC固件堆栈或专有BMC固件堆栈)并为计算机系统提供管理服务的部分。
根据示例实施方式,安全包围区除其他特征之外还包括:安全处理器(例如,中央处理单元(CPU));非易失性存储器(例如,用于存储密码密钥、密码身份等的存储器);易失性存储器(例如,用于存储被加载到易失性存储器中并由安全处理器执行的固件的存储器);安全桥,所述安全桥用于控制到安全包围区中的访问并控制从安全包围区传出的通信;外围设备(例如,密码加速器、随机数发生器、篡改检测电路等);以及硬件信任根(RoT)引擎。在RoT引擎将要由安全处理器执行的固件加载到安全包围区的易失性存储器中并允许安全处理器执行所述固件之前,RoT引擎会对所述固件进行验证。
如本文中所使用的,“信任根设备”或RoT设备(诸如RoT引擎)可以是以预期方式运行的设备。换句话说,RoT设备可以是本质上可信的软件、硬件或其某种组合。RoT设备可以包括计算引擎。计算引擎可以是使用RoT设备中的硬件进行操作的软件、RoT设备的硬件、或其某种组合。RoT设备可以包括验证信任根(RTV)。RTV对程序代码(例如,加载到安全包围区中的代码)执行完整性度量或数字签名,并根据预定的预期值或策略对代码进行验证。RoT设备可以包括存储信任根(RTS)。RTS可以是能够维护篡改明显值的准确汇总的计算引擎。例如,RoT设备可以包括存储参考散列或度量散列的寄存器。进一步地,RoT设备可以包括多个这样的寄存器。在另一示例中,RoT设备可以包括报告信任根(RTR)。RTR可以是能够向请求设备发送所请求信息的计算引擎。所述信息可以包括RoT设备的寄存器中的内容(或RTS的内容)以及由请求方指定的信息。RoT设备可以包括这里未描述的其他计算引擎,诸如用于度量指定值的计算引擎或用于进行认证的计算引擎。
通过执行已验证并加载的固件,安全处理器可以验证并加载要由计算机系统的其他部件执行的其他固件。例如,安全处理器可以验证并加载要由BMC的通用处理核执行的固件,以执行作为BMC管理平面的一部分的管理服务。此外,根据本文描述的示例实施方式,由安全处理器执行固件允许选择安全解决方案超集之中的特定安全解决方案并将所述特定安全解决方案用于计算机系统。此安全解决方案超集包括与物理插入器设备相对应的一种或多种安全解决方案。以这种方式,通过执行可信固件指令,安全处理器可以模拟对旨在由物理插入器设备提供服务的安全服务API调用的响应。因此,服务器平台可以仅由可信固件配置为支持多种安全解决方案中的任一种,包括旨在与特定物理安全插入器设备一起使用的安全解决方案。
参照图1,作为更具体的示例,根据一些实施方式,计算机系统100包含具有安全包围区140的BMC 130,所述安全包围区可以为计算机系统100提供安全解决方案超集之中的所选安全解决方案。作为示例,计算机系统100可以是服务器、客户端、台式计算机、膝上型计算机、平板计算机、智能电话、可穿戴计算机、机架安装式模块、联网设备等。
如本文中所使用的,“BMC”或“基板管理控制器”是专用服务处理器,其使用传感器来监测服务器或其他硬件的物理状态并通过管理网络与管理系统进行通信。基板管理控制器还可以通过以下各项与在操作系统级别执行的应用程序进行通信:输入/输出控制器(IOCTL)接口驱动程序、代表性状态转移(REST)应用程序接口(API)、或促进基板管理控制器与应用程序之间的通信的其他系统软件代理。基板管理控制器可以对位于包括系统存储器的服务器机箱中的硬件设备进行硬件级别访问。基板管理控制器可以能够直接修改硬件设备。基板管理控制器可以独立于其中设置有基板管理控制器的系统的操作系统进行操作。基板管理控制器可以位于服务器或要监测的其他设备的主板或主电路板上。基板管理控制器安装在受管服务器/硬件的主板上或以其他方式连接或附接到受管服务器/硬件的事实并不妨碍基板管理控制器被认为与服务器/硬件是“分离”的。如本文中所使用的,基板管理控制器具有针对计算设备的子系统的管理能力,并且与执行计算设备的操作系统的处理资源是分离的。基板管理控制器与在系统上执行高级操作系统或管理程序的处理器(诸如中央处理单元)是分离的。
根据示例实施方式,计算机系统100包括一个或多个中央处理单元(CPU)102(例如,CPU处理核、包含CPU处理器核的半导体等)、以及连接到CPU 102以形成系统存储器104的存储器设备。CPU 102可以耦接到输入/输出(I/O)桥106,所述I/O桥允许CPU与BMC 130之间的通信以及与各种I/O设备(诸如存储驱动器122、一个或多个网络接口卡124、通用串行总线(USB)设备126等)的通信。此外,同样如图1所描绘的,计算机系统100可以包括可以通过相应的单独PCIe总线108耦接到CPU 102的一个或多个外围部件互连快速(PCIe)设备110(例如,PCIe扩展卡)。根据进一步示例实施方式,PCIe设备110可以耦接到I/O桥106,而不是耦接到CPU 102。
根据示例实施方式,BMC 130可以控制对非易失性存储器168的访问;并且以这种能力,BMC 130可以被看作是到I/O桥106的总线或互连171与耦接到存储器168的总线167(例如,SPI总线)之间的桥设备129。如图1所描绘的,存储器168可以存储固件170。根据示例实施方式,固件170包含:由BMC 130的安全包围区140的安全处理器142(作为BMC的安全平面的一部分)执行的指令;由BMC 130的通用处理核154执行的指令(即,与BMC 130的管理平面相对应的固件堆栈);以及由CPU 102执行以启动计算机系统100并提供运行时服务的指令。
一般而言,形成系统存储器104、固件存储器168和非易失性存储器164的存储器设备以及本文所述的其他存储器设备可以由非暂态存储器设备形成,诸如半导体存储设备、闪速存储器设备、忆阻器、相变存储器设备、上述存储技术中的一种或多种存储技术的组合等。此外,除非本文另有说明,否则存储器设备可以是易失性存储器设备(例如,动态随机存取存储器(DRAM)设备、静态随机存取(SRAM)设备等)或非易失性存储器设备(例如,闪速存储器设备、只读存储器(ROM)设备等)。
根据示例实施方式,CPU 102执行机器可执行指令(或“软件”),目的是为计算机系统100提供一个或多个应用程序,所述机器可执行指令可以例如存储在系统存储器104中。应用程序可能期望计算机系统100采用特定安全解决方案,并且对这些应用程序的执行可以生成安全服务请求(在本文中也被称为“安全功能请求”或“安全请求”),所述安全服务请求与特定安全解决方案相对应并请求要执行的特定安全服务或功能。根据示例实施方式,安全服务请求可以经由智能平台管理接口(IPMI)键盘控制器风格(KCS)系统接口来进行。作为示例,安全服务请求可以是用于以下操作的请求:存储度量散列、将参考度量散列加载到物理插入器设备的存储器中、构建信任根度量链的至少一部分、存储密码密钥、检索密码密钥、生成密码密钥、验证固件映像、检索密码平台身份、存储度量散列、加载度量参考散列等。
对特定的具体安全解决方案的安全服务请求可以与由API针对所述安全解决方案定义的安全功能相关联。作为示例,安全解决方案可以是第一安全解决方案,其中,预期或期望BMC 130直接处理安全服务请求并执行相应的安全服务。作为另一示例,安全服务请求可以旨在由物理安全插入器设备(诸如以物理方式介于BMC 130与存储器168之间的设备)处理。在此上下文中,安全服务请求“旨在”由特定设备(例如,物理插入器设备或BMC 130)处理意味着安全服务请求带有响应于所述请求而发生的预期结果或变换而被发送或被传送。例如,如果请求设备发送旨在由物理安全插入器设备(其不存在)处理的安全服务请求,则所述请求设备期望得到否则在存在物理安全插入器设备时提供的结果或变换;并且对于该示例,BMC 130代替物理安全插入器设备提供预期的结果或变换。
根据示例实施方式,可以通过可信固件配置选项将BMC 130配置用于为计算机系统100提供特定的安全解决方案。这样,计算机系统100可以针对安全功能超集之中的特定安全解决方案通过使用固件进行配置,而不是针对所述安全解决方案以硬件进行专门配置(即,并非对应于不同安全解决方案相应地产生许多硬件版本)。这样,根据本文描述的示例实施方式,BMC 130提供与预期由物理安全插入器设备提供的结果或变换相同的结果或变换。换句话说,根据示例实施方式,安全服务请求可以被定向到与物理安全插入器设备相关联的第一安全解决方案;BMC 130接收请求,而不是物理插入器设备接收请求;BMC 130对物理安全插入器设备的响应进行模拟,以提供第一安全解决方案;并且BMC 130提供与物理安全插入器设备将提供的结果相同的结果。
通常,在上电或复位之后,BMC 130将其一个或多个通用处理核154保持复位。在执行初始信任根安全检查以及其他检查(例如,硬件故障检查)之后,基板管理控制器130使通用处理核154从复位释放。根据示例实施方式,安全包围区140包含硬件硅信任根(SRoT)引擎143。根据示例实施方式,安全包围区140存储由SRoT引擎143使用以对机器可执行指令进行验证的不可变指纹。
更具体地,根据示例实施方式,响应于BMC 130上电或复位,SRoT引擎143对固件170的初始部分进行验证并且然后将所述初始部分加载到安全包围区140的存储器151中,使得该固件部分现在是可信的。然后,允许安全包围区140的安全处理器142启动并执行所加载的固件指令。通过执行固件指令,安全处理器142然后可以对固件170的与BMC管理固件堆栈的一部分相对应的另一部分进行验证,并且在验证之后将固件堆栈的该部分加载到BMC 130的存储器155中。然后,可以由通用处理核154执行所述管理固件堆栈的所述一部分,从而使处理核154加载固件170的附加部分并将所加载的部分放置到存储器164中。对存储器164的访问可以涉及附加的训练和初始化步骤(例如,由DDR4规范提出的训练和初始化步骤)。这些指令可以从存储器155中的BMC固件堆栈的已验证部分执行。根据示例实施方式,安全包围区140可以锁定存储器155,以防止对存储在存储器155中的已验证部分的修改或篡改。
因此,根据示例实施方式,信任链可以从基于硬件的硅信任根扩展到在BMC的通用处理核154上运行的管理固件。如本文进一步描述的,安全处理器执行安全包围区140内部的固件允许安全包围区140为计算机系统100提供特定的安全解决方案。
根据示例实施方式,BMC 130被构造用于阻止BMC 130的给定域或实体加电或退出复位,直到安全包围区140验证了所述域/实体为止。此外,根据示例实施方式,BMC 130可以阻止BMC 130的部件访问BMC 130的资源和计算机系统100的资源,直到安全包围区140批准/验证了所述资源为止。BMC 130可以执行总线过滤和监测(例如,对SPI总线、SM总线、I3C总线和I2C总线等进行总线过滤和监测),以防止对总线设备(诸如形成固件存储器168的存储器模块)的不期望访问。
根据示例实施方式,BMC 130可以包含网络接口卡(NIC)153,所述网络接口卡允许BMC 130(经由网络结构159)与处于计算机系统100外部的实体(诸如远程管理服务器190)、请求(如本文进一步描述的)安全服务的实体(例如,服务器)等进行通信。BMC 130可以进一步包含一个或多个附加通信接口156,诸如USB接口、PCI接口、SPI接口、I3C总线接口等。此外,根据示例实施方式,BMC 130可以包含在图1中未具体描绘的部件,诸如物理存储器接口、存储器控制器接口、视频控制器等。
结合图1参照图2,根据示例实施方式,安全处理器142执行以下两个固件层以便为计算机系统100提供安全解决方案:安全核固件层218(本文中也被称为“安全核层218”)和安全API固件层220(本文中也被称为“安全API层220”)。通常,安全核层218执行用于响应或执行安全服务请求的低级密码原语,诸如用于存储密钥、检索密钥、检索密码身份、存储度量散列等的原语。安全API层220特定于为计算机系统100选择的安全解决方案,并提供安全服务请求与底层低级安全原语之间的抽象层。安全物理插入器设备(如果假设存在)依赖于作为桥的BMC 130而与其他部件(诸如在计算机系统100上执行的应用程序以及处于计算机系统100外部的实体)进行通信。因此,由于BMC 130处于通信路径中,并且因此能够接收旨在针对物理插入器设备的安全服务请求并模拟物理插入器设备对安全服务请求的响应。
对于图2所描绘的示例实施方式,根据一些实施方式,安全API层220可以对应于采用物理安全插入器设备的安全解决方案。更具体地,如在附图标记250处所描绘的,诸如示例安全服务请求244等主机安全服务请求(例如,由CPU 102所执行的应用程序生成的请求)可以假设计算机系统100包括耦接到总线167并拦截针对存储器168的通信的物理安全插入器设备;并且主机安全服务请求可以对应于旨在由物理安全插入器设备处理的API调用。
对于该示例,安全API层220提供抽象以基于请求224的参数来确定要执行的密码原语;安全核层218执行密码原语;并且安全API层220提供模拟的物理安全插入器设备的响应254。
尽管安全包围区140在本文被描绘和描述为BMC的一部分,但是根据进一步示例实施方式,安全包围区140可以是除BMC之外的部件的一部分并为计算机系统提供安全解决方案。例如,安全包围区140可以是计算机系统100的I/O桥106(图1)或另一部件的一部分。作为其他示例,根据进一步实施方式,桥129可以是独立部件(诸如网络交换机、服务器、存储装置等)的一部分。
参照图3,根据示例实施方式,安全包围区140可以是完整的片上系统(SOC),并且可以被包含在严格控制的密码边界304内。通常,安全包围区140的部件可以通过总线305进行通信。根据示例实施方式,总线305可以包括数据总线、控制总线和系统总线中的一种或多种。如图3所描绘的,安全处理器142可以包含一个或多个CPU核308;并且易失性存储器151可以是静态随机存取存储器(SRAM)。安全包围区140可以包含存储密码密钥和密码身份的非易失性存储器330(例如,非易失性RAM(NVRAM))。因为非易失性存储器330处于BMC 130的内部,所以存储器330不受探测或篡改。安全包围区140还包括密码安全的度量寄存器340(例如,其中可以存储参考度量散列和/或度量散列的度量)和安全桥314。
根据示例实施方式,安全桥314通过安全服务API来控制到安全包围区140中的访问(如在附图标记318处所指示的)。此外,根据示例实施方式,安全桥314提供附加的上游接口(如在附图标记332处所描绘的)以允许安全包围区140“伸出(reach out)”。安全包围区140使用接口322来获得其固件并通常对固件170进行验证。接口322可以在总线167上采用过滤和监测,以防止对存储器168的不期望访问。
同样如图3所描绘的,根据示例实施方式,安全包围区140包括篡改检测电路334,所述篡改检测电路接收各种环境传感器信号336(例如,表示温度、时钟速率、电压等的传感器信号),目的是检测出对安全包围区的操作环境的恶意操纵,以便在发生这种情况时可以采取适当的措施。以这种方式,根据示例实施方式,当篡改检测电路334检测到篡改时,篡改检测电路334可以通过安全包围区140发起一项或多项纠正措施,以解决所检测到的安全损害。作为示例,在篡改检测电路334指示检测到的篡改时,安全包围区140可以移除敏感信息(例如,从非易失性存储器330中擦除密钥和证书)、断言信号或消息以使外部部件(例如,通用处理器154、操作系统、远程管理服务器上的用户界面等)警惕所述篡改等。
同样如图3所描绘的,根据示例实施方式,安全包围区140包括密码加速器344(诸如对称密码加速器和非对称密码加速器),所述密码加速器辅助安全处理器142进行诸如密钥生成、签名验证、加密、解密等操作。此外,密码加速器344可以包括真随机数发生器,用于提供用于密码操作的可信熵源。
根据示例实施方式,安全包围区140除了其他部件之外还可以包括存储数据的一次性可编程(OTP)熔丝358,所述数据表示真正不可变的属性,诸如硅信任根安全散列算法2(SHA-2)签名(例如,由SRoT引擎143使用的不可变指纹)、唯一标识符(例如,用于作为平台身份证书的种子的标识符)、安全支持指纹(security enablement fingerprint)等。如本领域普通技术人员可以理解的,安全包围区140可以具有可以存在于基于处理器的架构中的其他部件,诸如中断控制器350、定时器354等。
此外,安全包围区140可以包含用于辅助对安全包围区140进行初始开发和调试(在安全包围区140的预生产模式下)的接口,但是在特定的熔丝(例如,特定的OTP熔丝358)被烧断时所述接口可能被完全禁用或者功能可能已经发生改变(针对安全包围区140的生产模式)。例如,这些接口可以包括通用异步接收器/发送器(UART)362,所述UART可以用于对安全包围区140的调试和开发,并且然后针对安全包围区140的生产模式被固定到仅发送配置。作为示例,根据一些实施方式,UART 362可以由OTP熔丝358配置为在安全包围区140的生产模式下从安全包围区140提供单向状态健康信息。作为另一示例,根据进一步实施方式,OTP熔丝358可以针对生产模式禁用UART 362,从而禁用与UART 362的所有通信,以防止跨密码边界304的所有通信。作为可以辅助对安全包围区140进行初始开发和调试、但是可以针对生产模式被修改/禁用的接口的另一示例,安全包围区140可以包括用于安全CPU302的联合测试行动组(JTAG)接口(未示出);并且针对安全包围区140的生产模式可以禁用该JTAG接口。
因此,参照图4的图示400,根据示例实施方式,安全包围区140可以通过其固件被配置用于选择与安全解决方案超集404中的特定安全解决方案相对应的特定程序代码集408。根据示例实施方式,所选程序代码集408对应于安全API层220(参见图2)。安全包围区140使用所选程序代码集408以对安全服务请求进行响应,使得安全包围区140对给定的安全服务请求420进行响应以提供相应的安全服务响应422。
返回参照图1,根据示例实施方式,安全服务请求可以由除计算机系统100的CPU102所执行的应用程序之外的实体生成。例如,根据示例实施方式,服务请求可以由BMC 130的通用处理核154生成和/或由处于计算机系统100外部的实体生成。外部安全服务请求可以例如由使用安全协议(诸如安全外壳(SSH)协议)以(例如,经由BMC 130的NIC 153)与计算机系统100进行通信的部件生成。
作为对特定安全服务请求的处理的示例,计算机系统100可以是服务器,并且安全解决方案可以对应于旨在与特定物理安全插入器设备一起使用的安全解决方案。对于该安全解决方案,用于安全包围区140的固件被配置用于模拟物理安全插入器设备对安全服务请求的响应。以下是可以在服务器启动并请求允许在服务器网络上变为活动状态(即,服务器要求“加入机群”)时生成的特定安全服务请求的示例。该过程涉及服务器使用与物理插入器设备安全解决方案相对应并请求密钥的API调用来生成安全服务请求。对于该示例,根据安全解决方案,所述密钥将是BMC 130和其他散列的带签名清单、硬件身份证书(例如,IDevID证书)和随机数(以防止重放)。响应于与密钥服务请求相对应的API调用,安全处理器142提取度量散列、提取硬件身份证书、生成密钥并提供密钥,这允许服务器在网络上变为活动状态。
参照图5,根据示例实施方式,技术500包括基板管理控制器从请求者(requestor)接收(框504)对要执行的安全功能的请求,其中,所述请求被定向到除所述基板管理控制器之外的物理安全设备。技术500包括基板管理控制器对所述请求进行响应(框508),以模拟安全设备对所述请求的响应。
参照图6,根据示例实施方式,计算机系统600包括:用于存储固件映像608的存储器604;第一总线612;第二总线616;以及第一总线612与第二总线616之间的桥620。桥620接收通过第一总线612传送的请求,其中,所述请求被定向到旨在由耦接在第二总线616与存储器604之间的物理安全插入器处理的安全功能。桥620执行所述安全功能以对所述请求进行响应。
参照图7,根据示例实施方式,基板管理控制器700包括安全包围区704和处理核712。安全包围区704包括安全核708,所述安全核用于:接收来自请求者的请求,其中,所述请求对应于要由除基板管理控制器700之外的物理安全设备处理的安全功能;并且对所述请求进行响应,以模拟所述物理安全设备对所述请求的响应。处理核712处于安全包围区704的外部,并且执行用于执行针对计算机系统的系统管理功能的指令。
根据示例实施方式,所述基板管理控制器可以是服务器的一部分,并且接收所述请求包括从在所述服务器上执行的应用程序或所述服务器外部的实体接收所述请求。这种布置的特定优点在于服务器可以为内部请求者和外部请求者提供特定的安全解决方案。
根据示例实施方式,所述基板管理控制器可以包括安全包围区,并且所述安全包围区内部的固件可以被执行用于对所述请求进行响应。这种布置的特定优点在于可以以可检查且可验证的方式在基板管理控制器上将服务器管理和安全功能划分为单独的平面。
根据示例实施方式,基板管理控制器可以包括安全包围区外部的处理核;所述处理核可以生成第二安全请求;并且所述安全包围区内部的固件可以被执行用于对所述第二安全请求进行响应。这种布置的特定优点在于可以以可检查且可验证的方式在基板管理控制器上将服务器管理和安全功能划分为单独的平面。
根据示例实施方式,执行所述固件可以包括从多个代码集中选择一个代码集,其中,所选代码集对应于所述物理安全设备。所述物理安全设备可以对应于第一安全解决方案,并且另一代码集可以对应于除所述第一安全解决方案之外的第二安全解决方案。这种布置的特定优点在于可以为计算机系统提供不同的可选安全解决方案,而无需相应的不同计算机硬件配置。
根据示例实施方式,可以使用安全包围区内部的硬件信任根对固件进行验证并将验证后的固件加载到所述安全包围区的存储器中。这种布置的特定优点在于计算机系统的信任链可以以硬件信任根为依据。
根据示例实施方式,基板管理控制器可以通过提供平台密码身份来对请求进行响应。这种布置的特定优点在于可以为计算机系统提供不同的可选安全解决方案,而无需相应的不同计算机硬件配置。
根据示例实施方式,基板管理控制器通过模拟将参考度量散列加载到物理安全设备的存储器中来对请求进行响应。这种布置的特定优点在于可以为计算机系统提供不同的可选安全解决方案,而无需相应的不同计算机硬件配置。
根据示例实施方式,基板管理控制器通过构建信任根度量链的至少一部分来对请求进行响应。这种布置的特定优点在于可以为计算机系统提供不同的可选安全解决方案,而无需相应的不同计算机硬件配置。
根据示例实施方式,基板管理控制器通过执行密钥管理来对请求进行响应。这种布置的特定优点在于可以为计算机系统提供不同的可选安全解决方案,而无需相应的不同计算机硬件配置。
尽管已经关于有限数量的实施方式描述了本公开,但受益于本公开的本领域技术人员将了解本公开的许多修改和变化。所附权利要求旨在覆盖所有这样的修改和变化。
Claims (20)
1.一种方法,包括:
基板管理控制器从请求者接收对要执行的安全功能的请求,其中,所述请求被定向到除所述基板管理控制器之外的物理安全设备;以及
所述基板管理控制器对所述请求进行响应,以模拟所述安全设备对所述请求的响应。
2.如权利要求1所述的方法,其中:
所述基板管理控制器是服务器的一部分;并且
接收所述请求包括从所述服务器的应用程序或所述服务器外部的实体接收所述请求。
3.如权利要求1所述的方法,其中,所述基板管理控制器包括安全包围区,所述方法进一步包括:
执行所述安全包围区内部的固件以对所述请求进行响应。
4.如权利要求3所述的方法,其中,所述基板管理控制器包括所述安全包围区外部的处理核,所述方法进一步包括:
所述处理核生成第二安全请求;以及
作为对所述第二安全请求的响应,执行所述安全包围区内部的所述固件。
5.如权利要求3所述的方法,其中,执行所述固件包括:
从多个代码集中选择一个代码集,其中,所选代码集对应于所述物理安全设备,所述物理安全设备对应于第一安全解决方案,并且所述多个集中的另一代码集对应于除所述第一安全解决方案之外的第二安全解决方案。
6.如权利要求5所述的方法,其中,所述第二安全解决方案对应于所述基板管理控制器或除所述基板管理控制器之外的另一物理安全设备。
7.如权利要求3所述的方法,进一步包括:
使用所述安全包围区内部的硬件信任根对所述固件进行验证并将验证后的固件加载到所述安全包围区的存储器中。
8.如权利要求1所述的方法,其中,所述基板管理控制器对所述请求进行响应包括所述基板管理控制器提供平台密码身份。
9.如权利要求1所述的方法,其中,所述基板管理控制器对所述请求进行响应包括所述基板管理控制器模拟将参考度量散列加载到所述物理安全设备的存储器中。
10.如权利要求1所述的方法,其中,所述基板管理控制器对所述请求进行响应包括所述基板管理控制器构建信任根度量链的至少一部分。
11.如权利要求1所述的方法,其中,所述基板管理控制器对所述请求进行响应包括所述基板管理控制器执行密钥管理。
12.一种计算机系统,包括:
存储器,所述存储器用于存储固件映像;
第一总线;
第二总线;以及
所述第一总线与所述第二总线之间的桥,其中,所述桥用于:
接收通过所述第一总线传送的请求,其中,所述请求被定向到旨在由耦接在所述第二总线与所述存储器之间的物理安全插入器处理的安全功能;并且
执行所述安全功能以对所述请求进行响应。
13.如权利要求12所述的计算机系统,其中,所述桥包括基板管理控制器,并且所述基板管理控制器包括:
第一总线接口,所述第一总线接口耦接到所述第一总线;
第二总线接口,所述第二总线接口耦接到所述第二总线;以及
安全包围区,所述安全包围区用于对所述请求进行响应,以执行所述安全功能。
14.如权利要求13所述的计算机系统,其中,所述安全包围区包括:
安全核层,所述安全核层用于执行固件以执行与所述物理安全插入器相关联的多个安全功能,包括所述请求被定向到的所述安全功能;以及
安全应用程序编程接口(API)层,所述安全API层用于对所述请求进行响应使得所述安全核层执行所述请求被定向到的所述安全功能。
15.如权利要求14所述的计算机系统,其中,所述安全API层对应于多个代码集中的给定代码集,其中,所述给定代码集对应于所述物理安全插入器,并且所述多个代码集中的一代码集对应于除所述物理安全插入器之外的安全解决方案。
16.如权利要求12所述的计算机系统,其中,所述安全功能包括用于以下操作的功能:提供密码身份、存储密码密钥、验证所述存储器的内容、存储度量散列、加载参考度量、或检索密码密钥。
17.一种基板管理控制器,包括:
安全包围区,所述安全包围区包括安全核,所述安全核用于:
接收来自请求者的请求,其中,所述请求对应于要由除所述基板管理控制器之外的物理安全设备处理的安全功能;并且
对所述请求进行响应,以模拟所述物理安全设备对所述请求的响应;以及
所述安全包围区外部的处理核,所述处理核执行用于执行针对计算机系统的系统管理功能的指令。
18.如权利要求17所述的基板管理控制器,其中:
所述安全包围区进一步包括硬件信任根和存储器;
所述信任根对固件进行验证并将验证后的固件加载到所述存储器中;并且
所述安全核执行所述固件以处理所述请求。
19.如权利要求17所述的基板管理控制器,其中,所述请求源自于所述基板管理控制器外部的所述计算机系统的实体、或所述计算机系统外部的实体。
20.如权利要求17所述的基板管理控制器,其中,所述安全功能包括用于以下操作的功能:提供密码身份、存储密码密钥、验证存储器的内容、存储度量散列、加载参考度量、或检索密码密钥。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/861,780 | 2020-04-29 | ||
US16/861,780 US20210342169A1 (en) | 2020-04-29 | 2020-04-29 | Emulating physical security devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113568799A true CN113568799A (zh) | 2021-10-29 |
Family
ID=78161262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110440543.5A Pending CN113568799A (zh) | 2020-04-29 | 2021-04-23 | 对物理安全设备的模拟 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20210342169A1 (zh) |
CN (1) | CN113568799A (zh) |
DE (1) | DE102021108582A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11669336B2 (en) * | 2021-06-14 | 2023-06-06 | Dell Products, L.P. | Out-of-band custom baseboard management controller (BMC) firmware stack monitoring system and method |
US11593487B2 (en) * | 2021-06-14 | 2023-02-28 | Dell Products, L.P. | Custom baseboard management controller (BMC) firmware stack monitoring system and method |
US20240143773A1 (en) * | 2022-10-31 | 2024-05-02 | Cisco Technology, Inc. | Fabric-based root-of-trust |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200758B2 (en) * | 2002-10-09 | 2007-04-03 | Intel Corporation | Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem |
WO2008070802A2 (en) * | 2006-12-06 | 2008-06-12 | Fusion Multisystems, Inc. (Dba Fusion-Io) | Apparatus, system, and method for an in-server storage area network |
US10554758B2 (en) * | 2015-06-15 | 2020-02-04 | Blub0X Security, Inc. | Web-cloud hosted unified physical security system |
US10708067B2 (en) * | 2016-06-18 | 2020-07-07 | Intel Corporation | Platform attestation and registration for servers |
US10355861B2 (en) * | 2017-03-28 | 2019-07-16 | Dell Products, Lp | Chassis-based cryptographic affinities |
US10649940B2 (en) * | 2018-03-05 | 2020-05-12 | Samsung Electronics Co., Ltd. | Modular system architecture for supporting multiple solid-state drives |
US10742421B1 (en) * | 2019-03-08 | 2020-08-11 | Ares Technologies, Inc. | Methods and systems for anonymous hardware attestation |
US20200374269A1 (en) * | 2019-05-22 | 2020-11-26 | Synaptics Incorporated | Secure audio systems and methods |
-
2020
- 2020-04-29 US US16/861,780 patent/US20210342169A1/en active Pending
-
2021
- 2021-04-07 DE DE102021108582.9A patent/DE102021108582A1/de active Pending
- 2021-04-23 CN CN202110440543.5A patent/CN113568799A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20210342169A1 (en) | 2021-11-04 |
DE102021108582A1 (de) | 2021-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220035923A1 (en) | Technologies for secure hardware and software attestation for trusted i/o | |
CN107025406B (zh) | 母板、计算机可读存储装置以及固件验证方法 | |
US11809544B2 (en) | Remote attestation for multi-core processor | |
CN113568799A (zh) | 对物理安全设备的模拟 | |
US20240104213A1 (en) | Securing node groups | |
EP3646224B1 (en) | Secure key storage for multi-core processor | |
US20230134324A1 (en) | Managing storage of secrets in memories of baseboard management controllers | |
US20230237155A1 (en) | Securing communications with security processors using platform keys | |
CN110046495B (zh) | 数据结构测量结果比较 | |
US20230342472A1 (en) | Computer System, Trusted Function Component, and Running Method | |
US12069169B2 (en) | Managing use of management controller secrets based on firmware ownership history | |
US11977640B2 (en) | Systems and methods for authenticating the identity of an information handling system | |
US20230342446A1 (en) | Management controller-based verification of platform certificates | |
US11797679B2 (en) | Trust verification system and method for a baseboard management controller (BMC) | |
US11822668B2 (en) | Systems and methods for authenticating configurations of an information handling system | |
US11843707B2 (en) | Systems and methods for authenticating hardware of an information handling system | |
US20230030501A1 (en) | System and method for maintaining trusted execution in an untrusted computing environment using a secure communication channel | |
US20240111862A1 (en) | Detecting and responding to environmental condition-induced security attacks on semiconductor packages | |
CN117807644A (zh) | 响应于篡改活动检测而管控对复位的响应 | |
CN117807639A (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 |