CN108139901A - 使用外部设备的运行时间验证 - Google Patents

使用外部设备的运行时间验证 Download PDF

Info

Publication number
CN108139901A
CN108139901A CN201580083166.7A CN201580083166A CN108139901A CN 108139901 A CN108139901 A CN 108139901A CN 201580083166 A CN201580083166 A CN 201580083166A CN 108139901 A CN108139901 A CN 108139901A
Authority
CN
China
Prior art keywords
bios
controller
processor
smi
memory
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
Application number
CN201580083166.7A
Other languages
English (en)
Other versions
CN108139901B (zh
Inventor
J·K·让索内
V·阿利
D·普拉昆
M·维拉特尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN108139901A publication Critical patent/CN108139901A/zh
Application granted granted Critical
Publication of CN108139901B publication Critical patent/CN108139901B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

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)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Quality & Reliability (AREA)
  • Bioethics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本文的示例公开了基于处理器的计算系统。该系统包括至少一个处理器,包括基本输入输出系统(BIOS)的非易失性存储器,其中BIOS创建数据结构并设置由处理器执行的至少一个验证软件组件、可通信地链接到至少一个验证软件组件的控制器和存储器,所述存储器包括耦合到所述至少一个处理器的系统管理存储器以及可由所述基于处理器的系统执行的代码,以使所述处理器在所述基于处理器的系统的运行时间期间使用所述至少一个验证软件组件和所述控制器来验证所述BIOS。

Description

使用外部设备的运行时间验证
背景技术
计算系统可以包括用于执行计算设备的各种启动功能的代码。此代码包含基本输入/输出系统(BIOS)代码。BIOS代码对计算设备的硬件进行初始化并测试。基本输入/输出系统(BIOS)在计算机启动时执行多个任务,从对微处理器进行初始化到对硬件进行初始化和测试到启动操作系统。另外,BIOS代码可以从计算设备的存储器设备加载自举代码和/或操作系统。此外,BIOS包含控制键盘、显示屏、磁盘驱动器、串行通信以及多个辅助功能所需的全部代码。
附图说明
在附图中,相同的附图标号是指相同的组件或块。以下详细描述对附图进行参考,其中:
图1是根据本文所公开的原理用于验证计算系统中的BIOS的完整性的示例计算系统的框图;
图2是根据本文所公开的原理可由计算设备执行以验证计算系统中的BIOS的完整性的示例方法的流程图;和
图3是根据本文所公开的原理可由计算设备执行以验证计算系统中的BIOS的完整性的示例方法的流程图。
具体实施方式
BIOS代码到计算设备中的安装可以发生在制造级别或制造后级别。BIOS可以与数字签名和密钥对相关联,以在初始化时进行验证。可以以与计算设备通信的受控方式来开发BIOS。当计算设备可以从远程位置(例如,外部源)接收更新时,这进一步以无缝的方式提供对BIOS的更新。每次开启计算设备时,BIOS立即执行命令(控制)。最初,BIOS通过一系列诊断例程运行,系统进行检查以确保在到计算设备信任任何时间或数据之前计算设备的每个部分正在正确运行。BIOS检查系统板和存储器、键盘、磁盘和每个扩展板的电路。在计算设备运作之后,BIOS固件运行若干组例程,其对调用进行编程以执行日常功能--在屏幕上键入字符、对键击进行读取以及对事件进行计时。
在该示例中,计算设备使用安全验证软件和外部组件(例如,嵌入式控制器)来实现BIOS的完整性的运行时间验证。外部硬件组件不需要实时访问存储器,但只需要与安全验证软件具有安全通信链接。在一个示例中,可以传送命令和BIOS并且用不同的私钥对其每一个进行数字签名。这提供了额外的安全特征,因为在安装BIOS之前命令和BIOS二者可以被验证。虽然在下面提到的实现中,并入并且非常详细地描述了BIOS。在其他实现中,可以改为使用统一可扩展固件接口(UEFI)。UEFI被设计作为BIOS的后继者,并且根据本文所公开的原理可以替换BIOS。
参考图1,根据本发明的一些示例,诸如计算系统100的基于处理器的系统可以包括至少一个处理器110、耦合到至少一个处理器110的至少一个存储器120以及代码块125(例如存储在存储器120中)。存储器120可以是非易失性存储器(例如,只读存储器)。计算系统100还包括控制器140和主存储器130,在一个实现中,主存储器130可以是易失性存储器(例如,随机存取存储器)。主存储器130包括BIOS代码136。系统100生成与代码块125(例如BIOS)相关联的完整性信息,以在运行时间验证BIOS代码136。如此,计算系统100的实现包括移动设备、客户端设备、个人计算机、台式计算机、膝上型计算机、平板电脑、便携式设备、视频游戏控制台或其他类型的电子设备。系统100可以进一步包括可由计算系统100执行的代码,以使得计算系统100在计算系统100重启时生成用于BIOS代码136的完整性信息,并在计算系统100的运行时间期间使用完整性信息验证BIOS代码136的完整性。代码块125可以对应于诸如BIOS之类的固件元件之一。
计算系统100包括用以实现BIOS的完整性的运行时间验证的控制器140。控制器140的实现包括处理器、电子设备、计算系统、微处理器、微芯片、芯片组、电子电路、半导体、微控制器、中央处理单元(CPU)或其他类型的处理系统。在一个实现中,控制器140可以是系统100的外部硬件组件。在其他实现中,可以将控制器140并入到计算系统100中。控制器140可以不需要实时连接到存储器130——只要控制器140与处理器110上运行的安全验证软件(例如,嵌入式应用138)保持安全通信链接即可。如本文所使用的,“处理器”可以是中央处理单元(CPU)、基于半导体的微处理器、图形处理单元(GPU)、用于检索和执行指令的现场可编程门阵列(FPGA)、适用于存储在机器可读存储介质上的检索和执行指令的其他电子电路或者它们的组合中的至少一个。
在一个示例中,控制器140是嵌入到计算设备中的外部硬件组件。计算系统100可以接收由控制器140传送的数据包。数据包可以包括命令和BIOS文件。作为数据包的一部分,命令和BIOS文件二者都包括数字签名。例如,可以用私钥对命令进行数字签名。控制器140使用嵌入在控制器140中的公钥来验证BIOS 125的签名。由处理器110将BIOS 125(其也包含嵌入式应用138)加载到主存储器130中,并且处理器110执行BIOS 125。在一个实现中,当执行时,BIOS代码136通过发送供控制器140使用的对称密钥来与控制器140建立安全通道。在这个示例中,将命令发送到控制器140。在另一个实现中,BIOS代码136通过使用在引导时间所创建的非对称密钥对来与控制器140建立安全通道。在这个示例中,BIO和控制器140在引导时间期间交换它们相关联的密钥。将密钥给安全验证软件,并且只有安全验证软件才能访问密钥。尽管密钥被描述为非对称密钥和签名,但在其他实现中,密钥可以是非对称密钥。
该命令是被发送到计算系统100以指引计算系统100验证BIOS的完整性的请求。在该实现中,计算系统100在接收到命令之前接收与数字签名相对应的密码密钥。在一个实现中,为了对命令进行认证和/或验证,计算系统100使用该密码密钥来验证与该命令相关联的数字签名。这仅在从计算系统100发送到控制器140时才需要。计算系统100图示出了可以通过诸如广域网(WAN)、局域网(LAN)、个域网(PAN)、网状网络、移动设备网络或能够将该命令传送到计算系统100的其他类型的网络进行通信的计算系统。在另一实现中,外部源可以通过进入非常接近计算系统100而直接与计算系统100通信。
非易失性存储器120是保持BIOS 125的计算系统100内的储存区域。如此,非易失性存储器120的实现包括用以保持BIOS 125的只读存储器、闪存、铁电存储器、铁电RAM、磁性储存存储器、储存驱动器、存储器组件或这些存储器组件的任何组合。如上所讨论的,BIOS125设备负责通过提供基本指令集并执行系统启动任务来引导计算机。BIOS 125以中断处理程序库的形式向用于操作系统的底层硬件提供接口。BIOS 125包括在安装测试BIOS之前存在于计算系统100上的BIOS。在一个实现中,在安装测试BIOS之前,先前在计算系统100上安装BIOS 125。正如之前所解释的,测试BIOS可以作为BIOS文件的一部分而被包括在到计算系统100的数据包内。在一个实现中,测试BIOS可以是对BIOS 125的对应部分的修改。修改可以包括对BIOS 125的更新、开发和/或调试方面。
此外,计算系统100包括主存储器130(例如,随机存取存储器)。主存储器130可以由CPU直接访问。主存储器130是当处理器110正在积极地使用程序和数据时存储程序和数据的地方。当程序和数据变为活动时,它们被复制到主存储器130中,在那里处理器110可以与它们进行交互。主存储器130包括系统管理随机存取存储器(SMRAM)134和BIOS代码136。SMRAM134是系统存储器的一部分,其被处理器使用来存储与系统管理模式一起使用的代码。SMRAM 134可由处理器110访问,并且不是由操作系统或其他程序访问。SMRAM 134还存储处理器状态和系统管理中断(SMI)处理程序。SMI处理程序是执行包括系统功率控制的各种系统管理功能的软件例程。针对包括用于更新BIOS 125的BIOS代码136的处理的专有处理而保留SMRAM。在一个实现中,BIOS代码136包含负责处理SMI并调用适当的服务以对请求进行服务的SMI调度器组件。在一个实现中,在调用任何其他服务之前,SMI调度器向控制器140发送SMI进入事件消息。
在一个实现中,在计算系统100的引导过程期间,处理器110执行来自非易失性存储器120的BIOS 125。BIOS 125初始化系统管理RAM(SMRAM)并将其自身复制到主存储器130中。此外,BIOS 125为静态代码模块建立数据结构(即,清单),针对每个模块具有一个散列。更具体地,BIOS 125自动创建包含那些存储器区域每一个的存储器内容的密码散列(例如,SHA1、SHA256和/或类似物)和存储器地址范围的数据结构(称为清单)。存储器区域包括SMI调度器代码、BIOS的其余静态代码和数据结构,诸如SMI调度器表格。
在一个实现中,在引导时间,BIOS 125创建安全验证软件组件(即,SMI退出检查器和/或SMM存储器检查器)。在一个实现中,该软件可以使用Intel BIOS Guard、Intel SGX或类似物而被创建。BIOS 125还生成随机数字并将该数字传递给验证软件组件以及传递给控制器140。在一个示例中,该随机数字可以是私有的并且对于计算系统100中的任何其他软件是不可访问的。在这样的示例中,如果组件的完整性匹配以确认只有正确的组件访问该数字,则可以授权对该数字的访问。
在一个实现中,在完成BIOS 125的引导过程时,BIOS 125向控制器140发送消息(例如,引导结束)并发起以下过程。首先,控制器140生成SMI扫描事件消息。处理器110处理SMI并开始执行SMI调度器。控制器140响应于控制器140生成的SMI扫描事件消息而在特定时间帧内期望SMI进入事件消息。在控制器在指定的时间帧内未接收到消息的情况下,BIOS125的完整性的运行时间验证失败。在SMI调度器向控制器140发送SMI进入事件消息的情况下,控制器140在特定时间帧内期望SMM扫描结果消息。在控制器在指定的时间帧内未接收到消息的情况下,BIOS 125的完整性的运行时间验证失败。在SMI调度器识别SMI扫描事件的情况下,控制器140执行SMM存储器检查器软件。SMM存储器检查器使用清单来验证清单中描述的所有存储器区域的完整性。更具体地说,SMM存储器检查器计算用于创建清单的相同的密码散列,并将结果与清单中存在的结果进行比较。在另一个实现中,出于性能原因,SMM存储器检查器验证清单中的条目的非空随机选择的子集。此外,SMM存储器检查器然后使用随机生成的数字向控制器140发送经认证的SMM扫描结果事件消息。在一个实现中,SMM扫描结果事件消息包括BIOS 136的完整性验证的状态。在没有检测到错误的情况下,验证的状态可能是正的。在检测到错误的情况下,可以递送错误消息。此外,控制器140可以在特定时间帧内期望SMI退出事件消息。在指定的时间帧内未接收到消息的情况下,BIOS125的完整性的运行时间验证失败。
最后,SMI调度器代码确保执行安全软件SMI退出检查器。更具体地说,SMI退出检查器验证SMI调度器的完整性,并验证它是从SMI返回之前正在执行的最后一个代码。在验证时,SMI退出检查器使用随机生成的数字向控制器140发送经认证的SMI退出事件消息并退出。
在一个实现中,与上面详细解释的过程并行地,可以实现第二过程。首先,在处理器上运行的系统软件或者除了控制器140之外的计算系统100的组件生成要由BIOS处理的SMI。SMI调度器向控制器140发送SMI进入事件消息。控制器140在特定的时间量内期望SMI退出事件消息。在控制器140在指定的时间量内未接收到消息或者接收到不同的消息的情况下,BIOS 125的完整性的运行时间验证失败。
SMI调度器识别SMI事件并执行所需的代码以处理该事件。最后,SMI调度器代码确保执行安全软件SMI退出检查器。更具体地说,SMI退出检查器验证SMI调度器的完整性,并验证它是从SMI返回之前正在执行的最后一个代码。在验证时,SMI退出检查器使用随机生成的数字向控制器140发送经认证的SMI退出事件消息并退出。
现在转到图1中描述的系统100的操作,图2是可由计算设备执行的示例方法的框图,以在引导过程期间使用安全验证软件(即,在计算系统的处理器上运行的软件,其中对软件的访问受到限制)和外部硬件组件(例如嵌入式控制器)的组合来实现BIOS的完整性的运行时间验证。图2特别关注于用于计算机系统100的引导过程,如参考图1所描述的那样。在另一个示例中,如图1中的处理器110执行操作206-210。而且,尽管图2被描述为由计算设备实现,但是其可以在其他合适的组件上被执行。
在一个实现中,该过程可以以BIOS 125初始化系统管理RAM(SMRAM)并将其自身复制到主存储器130中而开始。在一个实现中,处理器110执行来自非易失性存储器120的BIOS125。在操作206处,系统接收数据结构。更具体地说,BIOS 125为静态代码模块建立数据结构(即,清单),针对每个模块具有一个散列(例如,SHA1、SHA256和/或类似物)。更具体地,BIOS 125自动创建包含存储器区域中的存储器内容的密码散列和存储器地址范围的数据结构(称为清单)。存储器区域包括SMI调度器代码、BIOS的其余静态代码和数据结构,诸如SMI调度器表格。在操作208处,系统执行安全软件组件。更具体地说,BIOS 125创建安全软件组件(即,SMI退出检查器和SMM存储器检查器)。在一个示例中,该软件可以使用IntelBIOS Guard、Intel SGX或类似物来而被创建。
在操作210处,系统可以使用安全软件组件和控制器来提供BIOS的运行时间验证。在一个实现中,可以使用随机生成的数字(即,秘密)来递送运行时间验证。该数字位于控制器和验证软件组件之间(例如,发送诸如SMI进入事件消息、SMI扫描结果消息和SMI退出事件消息之类的消息的代码),这将参考图3更详细地进行讨论。更具体地说,BIOS 125生成一个随机数字并将该数字传递给验证软件组件以及传递给控制器140。在一个示例中,该随机数字可以是私有的并且对于计算系统100中的任何其他软件是不可访问的。在这样的示例中,只有与在组件创建时的数字相匹配的验证软件组件才可以授权访问该数字。
尽管图2的流程图示出了某些功能性的特定执行顺序,但方法200不限于该顺序。例如,流程图中连续示出的功能性可以以不同的顺序被执行、可以同时被执行或者部分同时被执行、或者其组合。在一些示例中,本文关于图2描述的特征和功能性可以结合本文所描述的特征和功能性来提供。
现在转到图1中描述的系统100的操作,图3是可由计算设备执行的示例方法的框图,以在引导过程之后使用安全验证软件(即,在计算系统的处理器上运行的软件,其中对软件的访问受到限制)和外部硬件组件(例如嵌入式控制器)的组合来实现BIOS的完整性的运行时间验证。图3特别关注于在BIOS 125的引导过程完成之后的计算机系统,如上参照图1更详细描述的那样。在另一个示例中,如图1中的处理器110执行操作302-324。而且,尽管图3被描述为由计算设备实现,但是其可以在其他合适的组件上被执行。
BIOS 125向控制器140发送消息(例如,引导结束)并发起以下过程。首先,控制器在操作302处生成由处理器接收的SMI扫描事件消息。在操作304处,处理器处理SMI并开始SMI调度器的执行。在操作306处,控制器期望响应于控制器生成的SMI扫描事件消息而在特定时间帧内接收SMI进入事件消息。在控制器在操作308处没有在指定的时间帧内接收到消息的情况下,BIOS的完整性的运行时间验证失败。在处理器(例如,运行SMI调度器)向控制器发送SMI进入事件消息的情况下,控制器在操作310处在特定时间帧内期望SMI扫描结果消息。在控制器在指定的时间帧内未接收到消息的情况下,在操作312处BIOS的完整性的运行时间验证失败。在SMI调度器识别SMI扫描事件的情况下,处理器(执行诸如SMM存储器检查器的验证软件组件)发送经认证的SMI扫描结果事件消息给控制器。在一个实现中,在操作314处,SMI扫描结果事件消息包括BIOS完整性的验证的状态。在没有检测到错误的情况下,验证的状态可以是正的。在检测到错误的情况下,可以在操作316处递送错误消息。另外,当状态为正时(例如,未发现错误),控制器可以在操作318处在特定时间帧内期望SMI退出事件消息。在指定的时间帧内未接收到消息的情况下,在操作320处BIOS的完整性的运行时间验证失败。
最后,SMI调度器代码确保执行安全软件SMI退出检查器。在SMI退出事件消息被发送到控制器的情况下,在操作322处执行SMI退出检查器。更具体地,SMI退出检查器验证SMI调度器的完整性并且验证它是从SMI返回之前正在执行的最后一个代码。在验证时,SMI退出检查器使用随机生成的数字向控制器发送经认证的SMI退出事件消息并在操作324处退出。
应该注意的是,在操作中SMM存储器检查器使用清单来验证清单中描述的所有存储器区域的完整性。更具体地说,SMM存储器检查器计算用于创建清单的相同的密码散列,并将结果与清单中存在的结果进行比较。在另一个实现中,出于性能原因,SMM存储器检查器验证清单中的条目的非空随机选择的子集。
尽管图3的流程图示出了某些功能性的特定执行顺序,但方法300不限于该顺序。例如,流程图中连续示出的功能性可以以不同的顺序被执行、可以同时被执行或者部分同时被执行、或者其组合。在一些示例中,本文关于图3描述的特征和功能性可以结合本文所描述的特征和功能性来提供。
以上讨论意在说明本发明的原理和各种实施例。一旦完全理解了上述公开内容,许多变化和修改对于本领域技术人员而言将变得显而易见。意图将以下权利要求解释为包含所有这些变化和修改。

Claims (15)

1.一种基于处理器的计算系统,包括:
至少一个处理器;
包括基本输入输出系统(BIOS)的非易失性存储器,其中所述BIOS创建数据结构并设置由所述处理器执行的至少一个验证软件组件;
可通信地链接到所述至少一个验证软件组件的控制器;和
存储器,所述存储器包括耦合到所述至少一个处理器的系统管理存储器以及可由所述基于处理器的系统执行的代码,以使得所述处理器在所述基于处理器的系统的运行时间期间使用所述至少一个验证软件组件和所述控制器来验证所述BIOS。
2.根据权利要求1所述的系统,其中,所述控制器不需要访问所述存储器。
3.根据权利要求1所述的系统,其中,所述数据结构包含存储器内容的密码散列和存储器地址范围,所述密码散列用于创建所述数据结构。
4.根据权利要求3所述的系统,其中,所述处理器执行所述至少一个验证软件组件,并且所述至少一个验证软件组件通过计算用于创建所述数据结构的所述密码散列以及将计算出的密码散列与所述数据结构中的所述密码散列进行比较来验证所述数据结构中的所述存储器区域的完整性。
5.根据权利要求1所述的系统,其中,所述BIOS向所述控制器发送消息并且发起系统引导过程的结束。
6.根据权利要求1所述的系统,其中,所述处理器处理包括执行包括所述系统引导过程的各种系统管理功能的软件例程的系统管理中断(SMI)处理程序。
7.根据权利要求1所述的系统,其中,所述控制器发送SMI扫描事件消息并且响应所述SMI扫描事件消息而在指定的时间帧内期望SMI进入事件消息。
8.根据权利要求7所述的系统,其中,如果在所述指定时间帧内没有向所述控制器提供所述SMI进入事件消息,则所述BIOS失效。
9.根据权利要求7所述的系统,其中,如果所述SMI进入事件消息被提供给所述控制器,则所述控制器在指定的时间帧内期望SMM扫描结果消息。
10.根据权利要求9所述的系统,其中,如果在所述指定的时间帧内没有向所述控制器提供所述SMM扫描结果消息,则所述BIOS失效。
11.根据权利要求1所述的系统,其中,所述BIOS生成随机数字并将其发送给所述至少一个验证软件组件以及发送给所述控制器。
12.根据权利要求11所述的系统,其中,所述至少一个验证软件组件使用所述随机生成的数字向所述控制器发送消息,所述消息包括所述BIOS的运行时间验证的状态。
13.根据权利要求12所述的系统,其中,所述状态包括成功消息或错误消息。
14.一种可由计算设备执行的方法,包括:
接收包括存储器区域中的存储器内容的密码散列和存储器地址范围的数据结构,所述存储器区域包括与基本输入输出系统(BIOS)相关联的并被传送到控制器的代码;
执行至少一个验证软件组件以验证所述数据结构中的所述存储器区域的完整性;和
使用所述至少一个验证软件组件和控制器来提供所述BIOS的运行时间验证,
其中所述至少一个验证软件组件和所述数据结构由所述BIOS创建。
15.根据权利要求14所述的方法,其中,执行至少一个验证软件组件以验证所述数据结构中的所述存储器区域的完整性进一步包括计算用于创建所述数据结构的所述密码散列,并将所述计算出的密码散列与所述数据结构中的所述密码散列进行比较。
CN201580083166.7A 2015-09-30 2015-09-30 使用外部设备的运行时间验证 Active CN108139901B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/053345 WO2017058225A1 (en) 2015-09-30 2015-09-30 Runtime verification using external device

Publications (2)

Publication Number Publication Date
CN108139901A true CN108139901A (zh) 2018-06-08
CN108139901B CN108139901B (zh) 2022-04-26

Family

ID=58427857

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580083166.7A Active CN108139901B (zh) 2015-09-30 2015-09-30 使用外部设备的运行时间验证

Country Status (5)

Country Link
US (1) US10867045B2 (zh)
EP (1) EP3356931B1 (zh)
CN (1) CN108139901B (zh)
TW (1) TWI604336B (zh)
WO (1) WO2017058225A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10867045B2 (en) * 2015-09-30 2020-12-15 Hewlett-Packard Development Company, L.P. Runtime verification using external device
US11615188B2 (en) * 2018-05-02 2023-03-28 Hewlett-Packard Development Company, L.P. Executing software
TWI807947B (zh) * 2022-08-01 2023-07-01 精英電腦股份有限公司 多顆嵌入式控制器的更新和檢驗方法與其電子設備
CN115543587B (zh) * 2022-11-29 2023-03-07 暨南大学 一种使用寿命驱动的OpenCL应用调度方法及系统

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1380610A (zh) * 2001-04-09 2002-11-20 凤凰技术有限公司 用于计算机装置验证的系统和方法
US20040193865A1 (en) * 2003-03-24 2004-09-30 Nguyen Tom Long Secure online BIOS update schemes
US20070088969A1 (en) * 2005-10-13 2007-04-19 Weekley Michael D Method and system for monitoring an accumulated runtime in a device
CN101221613A (zh) * 2006-12-29 2008-07-16 英特尔公司 用于验证处理系统部件的方法和装置
CN101373437A (zh) * 2007-04-10 2009-02-25 标准微系统公司 通过嵌入式控制器访问安全存储设备而增强系统安全
CN101770406A (zh) * 2008-12-30 2010-07-07 英特尔公司 用于运行时间完整性校验的设备和方法
CN101983375A (zh) * 2008-04-02 2011-03-02 惠普开发有限公司 将密码模块绑定到平台
CN103502932A (zh) * 2011-04-29 2014-01-08 惠普发展公司,有限责任合伙企业 用于验证crtm的嵌入式控制器
US20150220736A1 (en) * 2014-02-04 2015-08-06 Dell Products, Lp Continuous Memory Tamper Detection Through System Management Mode Integrity Verification

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401208B2 (en) * 1998-07-17 2002-06-04 Intel Corporation Method for BIOS authentication prior to BIOS execution
US6625730B1 (en) 2000-03-31 2003-09-23 Hewlett-Packard Development Company, L.P. System for validating a bios program and memory coupled therewith by using a boot block program having a validation routine
US6715106B1 (en) * 2000-11-10 2004-03-30 Dell Products L.P. Bios corruption detection system and method
US20040030877A1 (en) * 2002-08-06 2004-02-12 Aleksandr Frid Using system BIOS to update embedded controller firmware
US7200758B2 (en) 2002-10-09 2007-04-03 Intel Corporation Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem
US7558966B2 (en) 2004-06-09 2009-07-07 Intel Corporation Notifying remote administrator of platform integrity determination
WO2008094420A1 (en) 2007-01-26 2008-08-07 Wms Gaming Inc. Resource validation
TWI436280B (zh) 2011-08-22 2014-05-01 Acer Inc 存取基本輸入輸出系統設定的認證方法
CN102332070A (zh) 2011-09-30 2012-01-25 中国人民解放军海军计算技术研究所 一种可信计算平台的信任链传递方法
CN103890717B (zh) 2011-10-21 2018-03-27 惠普发展公司,有限责任合伙企业 在特权域中提供基本输入/输出系统(bios)的功能
US9152793B2 (en) * 2012-09-28 2015-10-06 Intel Corporation Methods, systems and apparatus to self authorize platform code
CN105308609B (zh) * 2013-04-23 2017-12-29 惠普发展公司,有限责任合伙企业 存储事件数据的系统和方法
WO2014175867A1 (en) * 2013-04-23 2014-10-30 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
US20150006714A1 (en) 2013-06-28 2015-01-01 Microsoft Corporation Run-time verification of middlebox routing and traffic processing
US10038550B2 (en) 2013-08-08 2018-07-31 Intel Corporation Instruction and logic to provide a secure cipher hash round functionality
US9507942B2 (en) * 2013-11-13 2016-11-29 Via Technologies, Inc. Secure BIOS mechanism in a trusted computing system
US9317691B2 (en) * 2014-05-08 2016-04-19 Dell Products L.P. Pre-boot software verification
EP3198399B1 (en) * 2014-09-23 2019-04-03 Hewlett-Packard Development Company, L.P. Detecting a change to system management mode bios code
US10867045B2 (en) * 2015-09-30 2020-12-15 Hewlett-Packard Development Company, L.P. Runtime verification using external device

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1380610A (zh) * 2001-04-09 2002-11-20 凤凰技术有限公司 用于计算机装置验证的系统和方法
US20040193865A1 (en) * 2003-03-24 2004-09-30 Nguyen Tom Long Secure online BIOS update schemes
US20070088969A1 (en) * 2005-10-13 2007-04-19 Weekley Michael D Method and system for monitoring an accumulated runtime in a device
CN101221613A (zh) * 2006-12-29 2008-07-16 英特尔公司 用于验证处理系统部件的方法和装置
CN101373437A (zh) * 2007-04-10 2009-02-25 标准微系统公司 通过嵌入式控制器访问安全存储设备而增强系统安全
CN101983375A (zh) * 2008-04-02 2011-03-02 惠普开发有限公司 将密码模块绑定到平台
CN101770406A (zh) * 2008-12-30 2010-07-07 英特尔公司 用于运行时间完整性校验的设备和方法
CN103502932A (zh) * 2011-04-29 2014-01-08 惠普发展公司,有限责任合伙企业 用于验证crtm的嵌入式控制器
US20150220736A1 (en) * 2014-02-04 2015-08-06 Dell Products, Lp Continuous Memory Tamper Detection Through System Management Mode Integrity Verification

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AHMED M AZAB ET AL: "HyperSentry", 《PROCEEDINGS OF THE 17TH ACM CONFERENCE ON COMPUTER》 *
ANDREW REGENSCHEID ET AL: "BIOS Integrity Measurement Guidelines (Draft) Recommendations of the National Institute of Standards and Technology", 《NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY SPECIAL PUBLICATION 800-155 (DRAFT)》 *
周健: "频谱共享通信系统中无线传输链路DSP实现研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Also Published As

Publication number Publication date
WO2017058225A1 (en) 2017-04-06
US10867045B2 (en) 2020-12-15
EP3356931B1 (en) 2021-06-23
EP3356931A4 (en) 2019-03-13
EP3356931A1 (en) 2018-08-08
US20180239901A1 (en) 2018-08-23
TWI604336B (zh) 2017-11-01
CN108139901B (zh) 2022-04-26
TW201719490A (zh) 2017-06-01

Similar Documents

Publication Publication Date Title
CN110663027B (zh) 用于安全地启动计算系统的方法和系统
US10826904B2 (en) Local verification of code authentication
CN109840430A (zh) Plc的安全处理单元及其总线仲裁方法
US20100011219A1 (en) Secure Use of User Secrets on a Computing Platform
US10592661B2 (en) Package processing
TWI745629B (zh) 電腦系統以及初始化電腦系統的方法
US20200099536A1 (en) Merging multiple compute nodes with trusted platform modules utilizing provisioned node certificates
US10853086B2 (en) Information handling systems and related methods for establishing trust between boot firmware and applications based on user physical presence verification
CN108139901A (zh) 使用外部设备的运行时间验证
WO2017120812A1 (en) Secure communication channel for system management mode
US10019577B2 (en) Hardware hardened advanced threat protection
US11416618B2 (en) Bidirectional trust chaining for trusted boot
CN112861137A (zh) 安全固件
CN115618365A (zh) 实现安全可信启动的方法、安全架构系统及相关设备
CN112470153A (zh) 安全数据处理
CN115062290A (zh) 一种组件认证方法及装置
CN114491565A (zh) 固件安全启动方法、装置、计算设备和可读存储介质
WO2016184180A1 (zh) 一种系统安全启动方法及装置
CN115310055B (zh) 一种基于双看门狗的软件完整性保护方法
EP3244340A1 (en) Method for securely running an application
US20240169050A1 (en) Verification and/or validation of unreversible information handling system commands
CN114721693A (zh) 一种微处理器、bios固件更新方法、计算机设备及存储介质
US20150371037A1 (en) Secure IF Antecedent
CN117390630A (zh) 安全启动方法、安全架构系统及计算设备
CN116107643A (zh) 云操作系统与arm系统的适配方法和装置

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