CN106415575B - 硬件配置报告*** - Google Patents

硬件配置报告*** Download PDF

Info

Publication number
CN106415575B
CN106415575B CN201480079261.5A CN201480079261A CN106415575B CN 106415575 B CN106415575 B CN 106415575B CN 201480079261 A CN201480079261 A CN 201480079261A CN 106415575 B CN106415575 B CN 106415575B
Authority
CN
China
Prior art keywords
tee
logic
request
hardware configuration
processing device
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.)
Active
Application number
CN201480079261.5A
Other languages
English (en)
Other versions
CN106415575A (zh
Inventor
姚颉文
V.J.齐默
B.S.佩恩
N.J.亚当斯
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN106415575A publication Critical patent/CN106415575A/zh
Application granted granted Critical
Publication of CN106415575B publication Critical patent/CN106415575B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • G06F21/53Monitoring 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
    • 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
    • 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
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/445Program loading or initiating
    • 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)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本文中公开了与硬件配置报告和仲裁有关的实施例。例如,一种用于硬件配置报告的装置可以包括:具有受信任的执行环境(TEE)和不受信任的执行环境(非TEE)的处理设备;请求服务逻辑,其存储在存储器中,用以在TEE内操作以从仲裁器逻辑接收请求的指示,其中所述请求表示硬件配置寄存器;以及报告逻辑,其存储在存储器中,用以在TEE内操作并且向仲裁器逻辑报告由所述请求所表示的硬件配置寄存器的值的指示符。可以公开和/或要求保护其它实施例。

Description

硬件配置报告***
技术领域
本公开内容涉及计算装置,并且更具体地涉及硬件配置报告。
背景技术
在引导(boot-up)期间使用的硬件配置寄存器的值通常初始通过引导工程师手动配置。因此,恰当的配置经受人为错误,并且手动配置中的差错可能经常没有被检测到。
附图说明
通过以下结合附图的具体实施方式将容易地理解实施例。为了促进本描述,同样的参考标号标明同样的结构元件。在附图的各图中,实施例作为示例而不是作为限制来被图示。
图1是根据各种实施例的硬件配置报告***的框图。
图2是根据各种实施例的具有一个或多个仲裁器逻辑实例化的硬件配置报告***的框图。
图3是根据各种实施例的具有***管理模式作为受信任的执行环境的硬件配置报告***的框图。
图4是根据各种实施例的包括多个驱动器的报告逻辑的框图。
图5是根据各种实施例的用于硬件配置报告的方法的流程图。
图6是根据各种实施例的用于硬件配置仲裁的方法的流程图。
图7是根据各种实施例的用于硬件配置报告和仲裁的方法的流程图。
图8是根据一些实施例的可以被包括在硬件配置报告***100中的更新***的框图。
图9是根据各种实施例的适合于实践所公开的实施例中的各种实施例的示例性装置的框图。
具体实施方式
有关硬件配置报告和仲裁的实施例在本文中被公开。例如,用于硬件配置报告的装置可以包括:具有受信任的执行环境(TEE)和不受信任的执行环境(非TEE)的处理设备;请求服务逻辑,其被存储在存储器中,用以在TEE内操作以从仲裁器逻辑接收请求的指示,其中所述请求表示硬件配置寄存器;以及报告逻辑,其被存储在存储器中,用以在TEE内操作并且向仲裁器逻辑报告由所述请求所表示的硬件配置寄存器的值的指示符。
如以上所观察到的,负责计算装置的启动操作的工程师可能不经意地或故意地未能恰当地设置某些硬件配置寄存器(其通常共计四十个或更多)。这些错误可能是成本极高的;如果使得对应于访问许可的寄存器“打开”(即没有针对篡改而被锁定),则恶意代码可以利用打开的门并且做出具有影响所有后续性能的潜能的改变。例如,如果使得闪速部分锁定寄存器未被锁定,则可能使母板上的只读存储器(ROM)打开以用于由恶意代码重写。在引导期间,芯片组存储器映射可以将中央处理单元(CPU)指引向闪速部分以执行第一指令。如果这些指令已经被恶意地改变,则CPU可能在任何其它保护就位之前执行恶意代码。
本文中所公开的硬件配置报告***和技术的各种实施例可以使得能够在引导和/或运行时期间检测这样的错误,并且可以使得装置能够采取行动来减轻安全风险或提醒用户注意安全风险。在一些实施例中,管理员或其他经授权的实体可以使用本文中所公开的硬件配置报告***和技术来得到并且再查看(review)硬件配置信息,并且关于接下来的步骤做出决定(例如根据预定义的安全策略)。
在以下详细描述中,对形成其一部分的附图做出参考,其中同样的标号贯穿全文标明同样的部分,并且其中作为说明而示出可以实践的实施例。要理解的是,可以使用其它实施例并且可以做出结构或逻辑改变而不偏离本公开内容的范围。因此,不要以限制性的意义来理解以下详细描述,并且实施例的范围由所附权利要求及其等同物来限定。
各种操作可以以在理解所要求保护的主题中最有帮助的方式而被描述为多个分立的动作或依次的操作。然而,描述的次序不应被解释为暗示这些操作必定是次序相关的。特别地,这些操作可以不以呈现的次序来被执行。所述操作可以以与所述实施例不同的次序来被执行。在附加的实施例中可以执行各种附加的操作和/或可以省略所述操作。
为了本公开内容的目的,短语“A和/或B”意指(A)、(B)或(A和B)。为了本公开内容的目的,短语“A、B和/或C”意指(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
描述使用短语“在实施例中”或“在多个实施例中”,其可以各自指代一个或多个相同或不同的实施例。此外,如关于本公开内容的实施例所使用的术语“包括”、“包含”、“具有”等等是同义的。如本文中所使用的,术语“逻辑”可以是指以下各项、是以下各项的部分或包括以下各项:执行一个或多个软件或固件程序的专用集成电路(ASIC)、电子电路、处理器(共享的、专用的或群组)和/或存储器(共享的、专用的或群组)、组合逻辑电路、和/或提供所述功能性的其它合适组件。
图1是根据各种实施例的硬件配置报告***100的框图。硬件配置报告***100可以实现在具有处理设备的装置(诸如以下参考图9所讨论的装置900)中,所述处理设备可以在受信任的执行环境(TEE)116中或者一个或多个不受信任的执行环境(非TEE)118中(图2中所图示的)操作。存储将在处理设备处于TEE 116中时执行的逻辑的存储器(称为TEE存储器)可以与存储将在处理设备处于非TEE 118中时执行的逻辑的存储器隔离,以使得当处理设备处于非TEE 118中时操作的逻辑不能访问TEE存储器。处理设备可以被配置成响应于中断而在TEE 116和非TEE 118之间转变。
在一些实施例中,TEE 116可以是处理设备的***管理模式(SMM)。SMM是通常用于管理低层级操作(诸如功率控制和热调节)的处理设备模式。SMM可以具有其自己的、对于在SMM外部操作的逻辑不可见或不可访问的隐藏存储器空间和执行环境。在一些实施例中,SMM可以由装置的基本输入/输出操作***(BIOS)来安装,并且可以在处理设备接收到***管理中断(SMI)的时候被进入;在检测到SMI时,非SMM的工作存储器可以被存储以用于稍后重实例化,并且处理设备可以进入SMM。本文中参考BIOS所讨论的实施例可以参考统一可扩展的固件接口(UEFI)而类似地被实现。
硬件配置报告***100可以包括仲裁器逻辑102和报告逻辑104。报告逻辑104可以从TEE中可操作,并且可以与当处理设备处于非TEE 118中时执行的逻辑隔离。特别地,报告逻辑104可以存储在TEE存储器中。如以下参考图2所讨论的,仲裁器逻辑102可以操作于TEE116内或非TEE 118内。仲裁器逻辑102可以与报告逻辑104通信地耦合。
仲裁器逻辑102可以包括请求逻辑106、安全逻辑108和动作逻辑110。仲裁器逻辑102还可以包括存储器156,所述存储器156可以由仲裁器逻辑102的任何组件利用以存储与仲裁器逻辑102的操作相关的数据。
请求逻辑106可以被配置成向报告逻辑104提供请求的指示。所述请求可以表示一个或多个硬件配置寄存器,仲裁器逻辑102希望关于所述一个或多个硬件配置寄存器而接收信息。硬件配置报告***100可以识别一个或多个不同类型的请求。在一些实施例中,所述请求可以是对一个或多个硬件配置寄存器的值的“查询”,响应于所述查询,报告逻辑104可以提供值的指示符。例如,由请求逻辑106提供给报告逻辑104的请求可以是表示闪速部分锁定寄存器的查询;作为响应,报告逻辑104可以提供是“0”值还是“1”值被存储在闪速部分锁定寄存器中的指示。一个值可以指示闪速部分被锁定,并且因而母板ROM不能被更新,而另一个值可以指示闪速部分未被锁定,并且因而母板ROM能够被任何人更新。在一些实施例中,请求可以是对一个或多个硬件配置寄存器的值等于所指定的值的集合的“校验(check)”,响应于所述校验,报告逻辑104可以提供对于硬件配置寄存器的值是否等于所指定值的集合的二进制指示符。例如,由请求逻辑106提供给报告逻辑104的请求可以是表示闪速部分锁定寄存器和所指定的值“1”的校验;作为响应,报告逻辑104可以提供对于在闪速部分锁定寄存器中所存储的值等于所指定的值“1”或不等于所指定的值“1”的指示。在其中装置包括SMM的一些实施例中,由请求逻辑106提供给报告逻辑104的请求可以是表示SMM锁定寄存器的校验或查询。一个值可以指示SMM存储器不能被更新,而另一个值可以指示SMM存储器未被锁定并且因而它能够被任何人更新。在一些实施例中,仲裁器逻辑102可以被配置成选择性地提供查询和校验请求,而在其它实施例中,仲裁器逻辑102可以被限制成提供仅查询或仅校验请求。
在一些实施例中,由请求逻辑106所提供的请求的形式和内容可以由开发者来配置。例如,开发者可以编写可扩展标记语言(XML)脚本,指定请求的形式和内容(例如,将由请求所表示的硬件配置寄存器和请求的类型)并且可以将该脚本存储在存储器156中。请求逻辑106可以被配置成从存储器156中检索XML脚本并且将XML脚本转换成二进制脚本以供执行。请求逻辑106可以被配置成存储二进制脚本。当请求逻辑106执行二进制脚本时,请求可以被提供给报告逻辑104。
安全逻辑108可以与请求逻辑106耦合并且可以被配置成响应于从请求逻辑106接收到请求的指示而评估由报告逻辑104所提供的指示符。特别地,安全逻辑108可以被配置成确定(由请求逻辑106提供的请求所表示的)硬件配置寄存器的值的指示符满足或者不满足所存储的安全要求。所存储的安全要求可以是由管理员或其他经授权的实体所设置的预定义的安全策略的一部分。一个或多个安全要求可以被存储在存储器156中,并且可以与(例如任何合适的数据库结构中的)各种硬件配置寄存器的特定单独的值或值的模式相对应。例如,存储器156中所存储的安全要求可以指定芯片组重映射寄存器的值必须是“1”,指示芯片组重映射寄存器被锁定并且不能被篡改。值“0”可以指示任何人都可以重映射存储器的部分(例如,重映射存储器的隐藏部分,诸如与TEE 116、与未受保护的存储器区域相对应的那些)。安全逻辑108可以被配置成响应于请求逻辑106的请求、基于报告逻辑104所提供的指示符而确定芯片组重映射寄存器的值的指示符等于“1”或不等于。
动作逻辑110可以与安全逻辑108耦合并且可以被配置成响应于由安全逻辑108进行的其存储的安全要求被满足或不被满足的确定而执行动作。在各种存储的安全要求被满足或不被满足的时候将采取的动作可以被存储在存储器156中,使得通过安全逻辑108的确定的每个可能的结果可以与要采取的一个或多个动作相对应地被存储(例如在任何合适的数据库结构中)。动作逻辑110可以在存储器156中定位通过安全逻辑108的确定的特定结果、标识所述对应的一个或多个动作并且可以执行所述对应的一个或多个动作。要采取的动作可以由设备设计者选择以使得硬件配置报告***100不受损害。例如,在一些实施例中,动作逻辑110可以被配置成使得在与硬件配置报告***100耦合的显示设备上显示所存储的安全要求被满足或不被满足的指示符。该指示符可以是图形用户接口的部分,并且可以向用户通知安全要求的状态。在一些实施例中,动作逻辑110可以被配置成响应于确定了(通过安全逻辑108)所存储的安全要求不被满足而使得与硬件配置寄存器相关联的硬件停止运转。例如,如果硬件配置寄存器与并行通信硬件相关联,则在所存储的针对并行通信硬件的安全要求不被满足的情况下动作逻辑110可以使得并行通信硬件临时停止运转或挂起操作。这些动作仅仅是说明性的,并且可以采取任何合适的动作。
报告逻辑104可以包括请求服务逻辑112和供应逻辑114。报告逻辑104还可以包括存储器158,所述存储器158可以由报告逻辑104的任何组件利用以存储与报告逻辑104的操作相关的数据。如以上参考仲裁器逻辑102所讨论的,报告逻辑104可以被配置成在TEE 116内操作以从仲裁器逻辑102接收请求的指示并且响应于所述指示。特别地,请求服务逻辑112(其存储在TEE存储器中)可以被配置成在TEE 116内操作以从仲裁器逻辑102(例如从请求逻辑106)接收请求的指示。请求可以表示一个或多个硬件配置寄存器。
供应逻辑114(其存储在TEE存储器中)可以耦合到请求服务逻辑112并且可以被配置成在TEE 116内操作以向仲裁器逻辑102(例如,向安全逻辑108)提供由所述请求所表示的硬件配置寄存器的值的指示符。
如以上所指出的,仲裁器逻辑102可以从TEE 116或非TEE 118内可操作。在一些实施例中,仲裁器逻辑102的一个或多个实例化可以操作于TEE 116内并且仲裁器逻辑102的一个或多个实例化可以操作于非TEE 118中。图2图示了硬件配置报告***100的这样的实施例。TEE 116中的仲裁器逻辑102的实例化可以例如是基本输入/输出操作***(BIOS)阶段仲裁器,其可以在引导时执行以评估引导期间的各种硬件配置寄存器的值。在一些实施例中,BIOS阶段仲裁器可以提供校验请求以校验各种硬件配置寄存器的值是依照所存储的安全要求的;如果不是,则BIOS阶段仲裁器可以阻止装置引导。非TEE 118中的仲裁器逻辑102的实例化可以例如是安全控制台应用,其运行在操作***内以评估操作期间的各种硬件配置寄存器的值(例如周期性地或在管理员命令时)。在一些实施例中,非TEE 118可以操作在与报告逻辑104操作在其上的处理设备不同的处理设备上,并且因而仲裁器逻辑102可以操作在与报告逻辑104操作在其上的处理设备不同的处理设备上。在一些实施例中,非TEE 118可以操作在与报告逻辑104操作在其上的处理设备相同的处理设备上。
在其中仲裁器逻辑102被包括在其中实例化报告逻辑104的相同处理设备的非TEE118内进行操作的应用中的一些实施例中,硬件配置报告***100可以建立在报告逻辑104和仲裁器逻辑102之间的“带内”受信任的信道。如以上所指出的,应用可以是安全控制台、策略编配器、安全驱动器或其它安全相关的中间件。安全控制台可以被配置成响应于来自动作逻辑110的指令而向用户提供任何硬件配置寄存器请求的结果的可视显示。在一些实施例中,该可视指示符可以采取“通过/未通过”指示符的形式。在其中用户是管理员并且想要更多详细结果的实施例中,安全控制台可以响应于来自动作逻辑110的指令而提供由请求所表示的每个硬件配置寄存器的值的可视指示符。
在其中仲裁器逻辑102被包括在与其中实例化报告逻辑104的处理设备不同的处理设备的非TEE 118内进行操作的应用中的一些实施例中,硬件配置报告***100可以建立在报告逻辑104和仲裁器逻辑102之间的“带外”受信任的信道。在一些这样的实施例中,仲裁器逻辑102可以在可管理性引擎(ME)、聚合的安全性和可管理性引擎(CSME)或主动管理技术(AMT)中实例化。
如以上所指出的,在一些实施例中,TEE 116可以是SMM,并且TEE存储器可以是SMM存储器(例如***管理随机存取存储器或SMRAM)。图3图示了硬件配置报告***100的这样的实施例。在图3的实施例中,SMM 160可以充当TEE 116,并且报告逻辑104可以操作在SMM160内。BIOS 120可以包括SMM 160,并且还可以包括一个或多个驱动器执行环境(DXE)脚本122。所述一个或多个DXE脚本122可以充当在图2的硬件配置报告***100的实施例中的TEE116中所包括的仲裁器逻辑102。因而,DXE脚本122可以(例如在引导期间)向报告逻辑104提供表示硬件配置寄存器的请求的指示符,并且报告逻辑104可以相应地响应。操作***124可以充当非TEE 118,并且可以包括一个或多个应用126以充当被包括在非TEE 118中的仲裁器逻辑102(例如,如图2中所示)。所述一个或多个应用126可以与SMM 160的报告逻辑104通信地耦合,以执行本文中所公开的硬件配置寄存器请求和响应操作。例如,应用126可以向报告逻辑104提供表示硬件配置寄存器的请求的指示符,并且报告逻辑104可以相应地响应。在其中操作***124在其上操作的处理设备与BIOS 120在其上操作的处理设备相同的实施例中,请求的指示符可以伴随有***管理中断以使得处理设备进入SMM 160中,在所述SMM 160上可以由报告逻辑104来处理请求的指示符。
用于TEE 116的其它潜在候选可能不可配置有具有本文所述功能性的报告逻辑。例如,受信任的平台模块(TPM)通常不记录所有的芯片组寄存器设置,并且代替地,通常仅仅比较当前操作***配置信息与先前的操作***配置信息以便检测这样的信息中的改变。然而,TPM通常不能如以上参考报告逻辑104所描述的那样提供硬件配置寄存器的实际值。另一候选,虚拟机监控器(VMM)不能访问多个硬件配置寄存器(例如SMM有关的硬件配置寄存器),并且通常通用于不同的平台,并且因而不能执行平台特定的查询。
其中SMM 160充当TEE 116的实施例可以具有各种优点。SMM 160可以具有较高级别权限以用于访问被分配给其它模式(例如,操作***运行在其中的那些)的硬件寄存器。在一些实施例中,当在SMM 160中时,处理设备可以能够读取任何盘部分,并且因而可以具有对***资源的完全访问。如以上所讨论的,SMM 160是隔离的执行环境,并且因而SMM存储器中所存储的代码和数据对于运行在操作***中的操作***内核或应用可以不是可见的。由于经由中断而进入SMM 160,所以SMM 160提供触发-响应机制来用于硬件报告,并且可以服务来自外部源(例如来自SMM 160外部的仲裁器逻辑102)的请求。另外,SMM 160还被集成到平台固件中,并且被装运为平台硬件的组件,从而使得恶意用户难以移除或篡改它。
在一些实施例中,来自仲裁器逻辑102的请求的指示符可以至少部分地基于触发处理设备进入TEE 116中的中断的源。例如,如果非TEE 118中的应用访问所指定的输入/输出(I/O)端口,则中断可以被触发以用于处理设备进入TEE 116。存储器158可以存储各种I/O端口的位置;当由对那些端口的访问触发了中断时,该中断指示来自仲裁器逻辑102的请求。在一些实施例中,特定的I/O端口可以对应于特定类型的请求(例如校验或查询)。
在一些实施例中,来自仲裁器逻辑102的请求的指示符可以至少部分地基于在当操作于非TEE 118中时对于处理设备可访问的预定寄存器中所存储的值。例如,特定的硬件寄存器(例如I/O端口)可以被指定由仲裁器逻辑102编程有特定的值作为请求的指示符。当检测到中断使得处理设备进入TEE 116时,报告逻辑104可以被配置成读取该特定硬件寄存器的值。在一些实施例中,该硬件寄存器是其访问触发了中断以使得处理设备进入TEE 116的相同寄存器,如以上所讨论的。特定硬件寄存器的不同值可以对应于不同类型的请求(例如校验或查询)以及由请求指示符所表示的不同硬件配置寄存器。在特定硬件寄存器的值与请求的类型和/或硬件配置寄存器之间的对应性可以被存储在存储器158中并且由报告逻辑104访问。在一些实施例中,通用寄存器可以被指定成由仲裁器逻辑102编程有特定的值,所述特定的值可以充当将被传递到报告逻辑104的参数。任何合适的参数可以经由通用寄存器(例如,报告逻辑104将把查询或校验的结果提供到的特定存储器位置)来被传送。在一些实施例中,该通用寄存器的位置可以被存储在存储器158中,并且报告逻辑104可以被配置成在接收到请求时在该通用寄存器中查看。
图4图示了报告逻辑104的实施例,其中请求服务逻辑112、供应逻辑114和存储器158的功能性被分布在多个驱动器之间。驱动器中的不同驱动器可以能够访问不同的硬件配置寄存器,并且因而表示不同硬件配置寄存器的请求可以至少部分地由不同驱动器来服务。图4图示了其中报告逻辑104包括核驱动器128、芯片组驱动器130和平台驱动器132的实施例。
核驱动器128可以是对于许多装置(例如由单个制造商所生产的许多装置)而言公共的通用芯片组。在报告逻辑104处接收的请求可以在核驱动器128处被接收,所述核驱动器128可以被配置成确定报告逻辑104的驱动器中的哪一个(例如核驱动器128、芯片组驱动器130或平台驱动器132)能够访问由所述请求所表示的硬件配置寄存器。核驱动器128然后可以与所确定的驱动器通信以服务所述请求。例如,核驱动器128可以将请求路由到芯片组驱动器130或平台驱动器132(如果核驱动器128不自己服务所述请求的话),芯片组驱动器130或平台驱动器132可以访问硬件配置寄存器以响应于所述请求,并且芯片组驱动器130或平台驱动器132可以将响应返回到核驱动器128以用于提供给仲裁器逻辑102。
在一些实施例中,核驱动器128可以能够访问基础***资源硬件配置寄存器,诸如***管理范围寄存器(其可以确定SMRAM如何被高速缓存)、模型特定的寄存器(MSR)134(用于各种调试和性能监控任务)、***组件互连(PCI)寄存器140、存储器映射的I/O(MMIO)寄存器136和I/O寄存器138。例如,核驱动器128可以被配置成访问***管理范围寄存器并且返回数据(响应于查询),所述数据包括***管理范围寄存器的值以及***管理范围寄存器的数据类型配置(例如,***管理范围寄存器被配置为8M对准的地址)。
在一些实施例中,芯片组驱动器130可以能够访问芯片组资源硬件配置寄存器,诸如存储器控制器集线器(MCH)寄存器142(用于芯片组重映射)、与直接存储器存取有关的寄存器(诸如VT-d寄存器146)以及根组件基地址(RCBA)寄存器144(诸如用于提供备用引导块的RCBA. TOP_SWAP(顶部交换)寄存器)。
在一些实施例中,平台驱动器132可以能够访问平台资源硬件配置寄存器,诸如闪速部分锁定寄存器148、嵌入式控制器寄存器、并行和串行通信寄存器150、以及与键盘、鼠标或其它***设备有关的寄存器。
图5是根据各种实施例的用于硬件配置报告的方法500的流程图。尽管方法500的操作可以被讨论为由具有被配置有报告逻辑104的TEE 116的处理设备来执行,但是这仅仅用于说明性目的并且这些操作可以由任何合适的硬件执行。以下参考方法500所讨论的任何操作可以根据以上参考硬件配置报告***100所讨论的任何实施例来被执行。
在502处,处理设备可以进入到TEE 116中(例如从非TEE 118)。处理设备可以响应于接收到中断而进入TEE 116。例如,当TEE 116是SMM 160时,处理设备可以响应于***管理中断而进入SMM 160。
在504处,处理设备(其操作于TEE 116中)可以接收表示硬件配置寄存器的请求的指示。在一些实施例中,报告逻辑104的请求服务逻辑112可以接收请求。
在506处,处理设备(其操作于TEE 116中)可以提供在504的请求中所表示的硬件配置寄存器的值的指示符。在一些实施例中,报告逻辑104的供应逻辑114可以提供指示符。
图6是根据各种实施例的用于硬件配置仲裁的方法600的流程图。尽管方法600的操作可以被讨论为由被配置有仲裁器逻辑102的处理设备来执行,但是这仅仅用于说明性目的并且这些操作可以由任何合适的硬件来执行。以下参考方法600所讨论的任何操作可以根据以上参考硬件配置报告***100所讨论的任何实施例来执行。
在602处,处理设备可以向位于处理设备的TEE中的报告逻辑(例如,位于TEE 116中的报告逻辑104)提供表示硬件配置寄存器的请求的指示。在一些实施例中,请求逻辑106可以在602处提供请求的指示。在一些实施例中,请求的指示可以由在接收请求的处理设备的相同TEE中操作的仲裁器逻辑102提供。在一些实施例中,请求的指示可以由在接收请求的处理设备的非TEE中操作的仲裁器逻辑102提供。在一些实施例中,提供请求的指示的处理设备可以是与接收请求的处理设备不同的处理设备。在一些实施例中,TEE可以是SMM。
在604处,处理设备可以确定由报告逻辑响应于请求而提供的硬件配置寄存器的值不满足安全要求。在一些实施例中,安全逻辑108可以执行604的确定。
在606处,处理设备可以响应于确定了安全要求不被满足而执行动作。在一些实施例中,动作逻辑110可以执行606的动作。尽管以上参考604和606讨论了安全要求不被满足的确定,但是可以执行安全要求被满足的确定,并且可以相应地采取动作(例如,如以上参考动作逻辑110所讨论的)。
图7是根据各种实施例的用于硬件配置报告和仲裁的方法700的流程图。方法700可以包括方法500(图5)和方法600(图6)的操作中的各种操作的实施例。特别地,方法700包括报告操作716和仲裁操作730。报告操作716和仲裁操作730可以由不同的逻辑来执行。例如,在一些实施例中,报告操作716可以由报告逻辑104执行并且仲裁操作730可以由仲裁器逻辑102执行。尽管方法700的操作可以被讨论为各自由图4的报告逻辑104和图1的仲裁器逻辑102执行,但是这仅仅用于说明性目的并且这些操作可以由任何合适的硬件执行。以下参考方法700所讨论的任何操作可以根据以上参考硬件配置报告***100所讨论的任何实施例而被执行。
在702处,被包括在报告逻辑中的核驱动器可以被启动。702的核驱动器可以是以上参考图4所讨论的核驱动器128。在一些实施例中,启动可以包括调用驱动器进入点。驱动器(例如核驱动器128)可以在存储器中准备其自己的数据结构,并且该数据结构中的数据可以在稍后的时间被利用。在一些实施例中,启动可以包括寄存可以由其它驱动器稍后调用的一个或多个协议或调回函数。例如,芯片组驱动器(例如,如以下所讨论的)可以寄存ChipsetCheck()和ChipsetReport()函数以供核驱动器使用。当核驱动器(例如从BIOS或OS)得到对应的函数请求时,核驱动器可以将请求分派给适当的芯片组驱动器函数。
在704处,被包括在报告逻辑中的芯片组驱动器可以被启动。704的芯片组驱动器可以是以上参考图4所讨论的芯片组驱动器130。
在706处,被包括在报告逻辑中的平台驱动器可以被启动。706的平台驱动器可以是以上参考图4所讨论的平台驱动器132。
在708处,报告逻辑可以确定是否已经接收到请求。如以上所讨论的,请求可以表示一个或多个硬件配置寄存器,请求的提供者(例如仲裁器逻辑102)希望关于所述一个或多个硬件配置寄存器而接收信息。在一些实施例中,708的确定可以由核驱动器128执行。如果报告逻辑确定了尚未接收到任何请求,则报告逻辑可以返回到708并且继续针对请求而监控。如图7中由点线箭头732所指示的,请求可以由仲裁器逻辑响应于执行了722的操作(以下所讨论的)而提供。
如果在708处报告逻辑确定了已经接收到请求,则报告逻辑可以继续进行到710以确定请求是否是校验。如以上参考请求逻辑106所讨论的,校验请求可以询问一个或多个硬件配置寄存器的值是否等于所指定的值的集合。在一些实施例中,710的确定可以由核驱动器128执行。如果报告逻辑在710处确定了请求不是校验,则报告逻辑可以继续进行到712以确定请求是否是查询。如以上参考请求逻辑106所讨论的,查询可以请求一个或多个硬件配置寄存器的值。在一些实施例中,712的确定可以由核驱动器128执行。如果报告逻辑在712处确定了请求不是查询,并且不存在被准许的其它请求类型,则报告逻辑可以返回到708并且继续针对有效请求的接收而进行监控。
如果报告逻辑在710处确定了请求是校验,或者在712处确定了请求是查询,则报告逻辑可以继续进行到714以提供由所述请求所表示的一个或多个硬件配置寄存器的值的指示符。在一些实施例中,核驱动器128可以确定在报告逻辑104中所包括的驱动器中的另一个(例如,芯片组驱动器130或平台驱动器132)能够访问在所述请求中所表示的硬件配置寄存器,并且可以在适当的时候将请求路由到所确定的驱动器并且与所确定的驱动器通信以接收对校验或查询的响应。在一些实施例中,702的核驱动器可以提供所述一个或多个硬件配置寄存器的值的指示符。所述一个或多个硬件配置寄存器的值的指示符可以被提供给例如仲裁器逻辑(例如仲裁器逻辑102)。如图7中由点线箭头734所指示的,值的指示符可以被提供给仲裁器逻辑。
转到方法700的操作730,在718处,可以生成XML脚本。如以上参考请求逻辑106所讨论的,XML脚本可以由开发者生成或者可以自动生成(例如通过请求逻辑106)。由于XML使用开发者容易理解的语法,所以XML脚本可以允许开发者容易地限定所预期的硬件配置(例如以一个或多个所存储的安全要求或其它安全策略的形式)。XML脚本可以指定特定请求的形式和内容,并且可以被存储在存储器156中。
在720处,718的XML脚本可以被转换成二进制脚本。如以上参考请求逻辑106所讨论的,二进制脚本可以通过请求逻辑106可执行以向报告逻辑(例如报告逻辑104)提供请求的指示。在一些实施例中,二进制脚本可以被包括在固件中并且可以在BIOS引导期间由仲裁器逻辑102发送到报告逻辑104。
在722处,720的二进制脚本可以被执行以向报告逻辑(例如报告逻辑104)提供请求的指示。请求可以表示针对其期望信息的硬件配置寄存器。在一些实施例中,请求可以是被报告逻辑识别的特定类型的(例如,校验或查询,如以上所讨论的)。如图7中由点线箭头732所指示的,请求可以被提供给报告逻辑。
在724处,响应于接收到由请求所表示的硬件配置寄存器的值的指示符(例如,如由箭头734所指示的),接收的指示符可以被评估以确定所存储的安全要求是否被满足。在一些实施例中,安全逻辑108可以根据以上所讨论的任何实施例而执行724的操作。
如果在724处确定了任何存储的安全要求被满足,则仲裁器逻辑可以继续进行到728并且可以恢复与请求所表示的硬件寄存器相关联的计算设备的正常操作。在一些实施例中,在确定了任何存储的安全要求被满足时可以执行一个或多个动作(例如在显示设备上报告所存储的安全要求被满足)。在724处确定了任何存储的安全要求不被满足,仲裁器逻辑可以继续进行到726并且可以执行动作。动作可以是任何安全风险减轻或其它合适的动作,如以上参考动作逻辑110所讨论的。在一些实施例中,动作逻辑110可以执行726的动作。
在一些实施例中,硬件配置报告***100可以包括用于更新其操作的逻辑。图8是根据一些实施例的可以被包括在硬件配置报告***100中的更新***800的框图。更新***800在报告逻辑104(例如根据以上参考图4所讨论的报告逻辑104的实施例)的核驱动器128中包括脚本更新代理152。脚本更新代理可以与在操作***124内操作的安全控制台154通信地耦合。安全控制台154可以被配置成针对报告逻辑104底层的代码的数字签名或版本号而查询报告逻辑104,并且可以确定该代码是否是最新的版本(或可接受的版本)。尽管在TEE 116外操作的组件可能不能直接查看TEE 116的存储器,但是安全控制台154可以被配置成向TEE 116的处置机发送请求以校验数字签名或版本号。在一些实施例中,TEE 116可以被配置成从受信任的源请求报告逻辑104的经更新的映像,并且相应地更新报告逻辑104。
现在参考图9,提供了根据各种实施例的适合于实践所公开的实施例的示例性装置的框图。在各种实施例中,装置900可以是服务器、台式计算机、膝上型计算机、平板计算机、蜂窝电话、智能电话、个人数字助理、游戏控制台、因特网器具、移动因特网设备或其它计算设备。
如所示的,装置900包括多个处理设备902和***存储器904。任何一个或多个处理设备902可以被配置成包括报告逻辑(诸如报告逻辑104)和/或仲裁器逻辑(诸如仲裁器逻辑102)作为硬件配置报告***(例如硬件配置报告***100)的部分。例如,一个或多个处理设备902可以被配置成在TEE中以及在一个或多个非TEE中操作。在一些实施例中,TEE可以是SMM。执行本文中所公开的硬件配置报告***的任何组件的功能的逻辑可以至少部分地被存储在***存储器904(其可以根据TEE的边界而被分区)中。另外,装置900可以包括大容量存储设备906(诸如磁盘、硬驱动器、光盘只读存储器(CD-ROM)等等)、输入/输出设备908(诸如显示器、键盘、光标控制装置等等)以及通信接口910(诸如网络接口卡、调制解调器等等)。元件可以经由***总线912而耦合到彼此,所述***总线912表示一个或多个总线。在多个总线的情况中,它们可以通过一个或多个总线桥(未示出)而被桥接。
这些元件中的每一个可以执行其在本领域中已知的常规功能。特别地,***存储器904和大容量存储装置906可以被采用以存储在被相应的处理设备902执行时实现图5-7中任一个的方法或其部分的编程指令的工作副本和永久副本,其在本文中集体被标示为计算逻辑922。各种组件可以由处理设备902所支持的汇编程序指令或可以被编译到这样的指令中的高级语言(诸如例如C)来实现。处理设备902和***存储器904可以表示宽范围的处理设备和存储器布置,包括各种执行速度和功率消耗的处理核以及各种架构(例如具有一级或多级高速缓存)和各种类型(例如动态随机存取、闪速等等)的存储器的布置。例如,***存储器904可以包括当处理设备902在非TEE中操作时不可访问的TEE存储器。
编程指令的永久副本可以在工厂中或在现场、通过例如机器可访问的分布介质(未示出)、诸如光盘(CD)或通过通信接口910(例如来自分布服务器(未示出))而被置于大容量存储装置906中。也就是说,具有代理程序的实现的一个或多个分布介质可以被采用以将代理程序分布到各种计算设备。在一些实施例中,可以根据更新机制(例如,以上参考图8所讨论的报告逻辑更新机制)来更新报告和/或仲裁器逻辑。元件902-912的构成是已知的,并且因此将不被进一步描述。
用于执行上述技术的机器可读介质(包括非暂时性机器可读介质、诸如机器可读存储介质)、方法、***和设备是本文中所公开的实施例的说明性示例。另外,上述交互中的其它设备可以被配置成执行各种所公开的技术。
本文中所公开的硬件配置报告***的各种实施例可以用于为任何数目的装置提供硬件配置和能力报告。例如,各种实施例可以用于提供BIOS完整性测试。各种实施例可以用于提供硬件和固件安全状态信息。
以下段落描述本文中所公开的各种实施例的示例。示例1是用于硬件配置报告的装置,包括:具有TEE和非TEE的处理设备,其中所述处理设备响应于特定的中断而从非TEE进入到TEE中,并且其中TEE从自非TEE不可访问的存储器中执行;请求服务逻辑,其存储在存储器中,用以在TEE内操作以从仲裁器逻辑接收请求的指示,其中所述请求表示硬件配置寄存器;以及报告逻辑,其存储在存储器中,用以在TEE内操作并且向仲裁器逻辑报告由所述请求所表示的硬件配置寄存器的值的指示符。
示例2可以包括示例1的主题,并且还可以指定来自仲裁器逻辑的请求的指示至少部分地基于存储在预定寄存器中的值,所述预定寄存器当处理设备操作于非TEE中时对所述处理设备而言可访问。
示例3可以包括示例1-2中任一项的主题,并且还可以指定来自仲裁器逻辑的请求的指示至少部分地基于触发处理设备进入到TEE中的特定中断的源。
示例4可以包括示例1-3中任一项的主题,并且还可以指定仲裁器逻辑在处理设备的非TEE中操作。
示例5可以包括示例1-3中任一项的主题,并且还可以指定仲裁器逻辑在与所述处理设备不同的第二处理设备上操作。
示例6可以包括示例1-3中任一项的主题,并且还可以指定仲裁器逻辑在处理设备的TEE中操作。
示例7可以包括示例1-6中任一项的主题,并且还可以指定所述请求是对硬件配置寄存器的值的查询,并且硬件配置寄存器的值的指示符是硬件配置寄存器的值。
示例8可以包括示例1-6中任一项的主题,并且还可以指定所述请求是硬件配置寄存器的值等于所指定的值的校验,并且硬件配置寄存器的值的指示符是硬件配置寄存器的值是否等于所指定的值的二进制指示符。
示例9可以包括示例8的主题,并且还可以指定仲裁器逻辑是操作于处理设备的基本输入/输出操作***(BIOS)中的驱动器执行环境(DXE)脚本。
示例10可以包括示例1-9中任一项的主题,并且还可以指定所述请求服务逻辑还确定多个驱动器中的哪一个能够访问由所述请求所表示的硬件配置寄存器,并且与所确定的驱动器通信以服务所述请求。
示例11可以包括示例1-3和6-10中任一项的主题,并且还可以指定仲裁器逻辑是在引导时执行的基本输入/输出操作***(BIOS)阶段仲裁器。
示例12可以包括示例1-11中任一项的主题,并且还可以指定TEE是***管理模式。
示例13是用于硬件配置仲裁的方法,包括:由计算逻辑向处理设备的受信任的执行环境TEE的报告逻辑提供来自应用的请求的指示,其中:所述处理设备具有TEE和不受信任的执行环境非TEE,所述处理设备响应于特定的中断而从非TEE进入到TEE中,所述TEE从自非TEE不可访问的存储器中执行,所述报告逻辑被存储在存储器中,并且所述请求表示硬件配置寄存器;由计算逻辑确定响应于接收到请求的指示而由报告逻辑所提供的、对由所述请求表示的硬件配置寄存器的值的指示符不满足所存储的安全要求;并且响应于确定了所存储的安全要求不被满足而由计算逻辑来执行动作。
示例14可以包括示例13的主题,并且还可以指定响应于确定了所存储的安全要求不被满足而执行动作包括响应于确定了所存储的安全要求不被满足而使得在显示设备上显示所存储的安全要求不被满足的指示符。
示例15可以包括示例13-14中任一项的主题,并且还可以指定响应于确定了所存储的安全要求不被满足而执行动作包括响应于确定了所存储的安全要求不被满足而使得与硬件配置寄存器相关联的硬件停止运转。
示例16可以包括示例13-15中任一项的主题,并且还可以指定硬件配置寄存器是芯片组重映射寄存器。
示例17可以包括示例13-15中任一项的主题,并且还可以指定硬件配置寄存器是***管理模式锁定寄存器。
示例18可以包括示例13-15中任一项的主题,并且还可以指定硬件配置寄存器是闪速部分锁定寄存器。
示例19可以包括示例13-18中任一项的主题,并且还可以指定计算逻辑的至少一部分在处理设备的非TEE中操作。
示例20可以包括示例13-19中任一项的主题,并且还可以指定计算逻辑的至少一部分在与所述处理设备不同的第二处理设备上操作。
示例21可以包括示例13-20中任一项的主题,并且还可以指定计算逻辑的至少一部分在处理设备的TEE中操作。
示例22可以包括示例13-21中任一项的主题,并且还可以指定TEE是***管理模式。
示例23是在其上具有指令的一个或多个机器可读介质,所述指令响应于通过装置的一个或多个处理设备的执行而使得所述装置执行示例13-22中任一项的方法。
示例24是用于硬件配置仲裁的装置,包括:用于向处理设备的受信任的执行环境TEE的报告逻辑提供来自应用的请求的指示的构件,其中:所述处理设备具有TEE和不受信任的执行环境非TEE,所述处理设备响应于特定的中断而从非TEE进入到TEE中,所述TEE从自非TEE不可访问的存储器中执行,所述报告逻辑被存储在存储器中,并且所述请求表示硬件配置寄存器;用于确定响应于接收到请求的指示而由报告逻辑所提供的、对由所述请求表示的硬件配置寄存器的值的指示符不满足所存储的安全要求的构件;以及用于响应于确定了所存储的安全要求不被满足而执行动作的构件。
示例25可以包括示例24的主题,并且还可以指定用于响应于确定了所存储的安全要求不被满足而执行动作的构件包括用于响应于确定了所存储的安全要求不被满足而使得在显示设备上显示所存储的安全要求不被满足的指示符的构件。
示例26可以包括示例24-25中任一项的主题,并且还可以指定用于响应于确定了所存储的安全要求不被满足而执行动作的构件包括用于响应于确定了所存储的安全要求不被满足而使得与硬件配置寄存器相关联的硬件停止运转的构件。
示例27可以包括示例24-26中任一项的主题,并且还可以指定硬件配置寄存器是芯片组重映射寄存器。
示例28可以包括示例24-26中任一项的主题,并且还可以指定硬件配置寄存器是***管理模式锁定寄存器。
示例29可以包括示例24-26中任一项的主题,并且还可以指定硬件配置寄存器是闪速部分锁定寄存器。
示例30可以包括示例24-29中任一项的主题,并且还可以指定所述装置的至少一部分在处理设备的非TEE中操作。
示例31可以包括示例24-30中任一项的主题,并且还可以指定所述装置的至少一部分在与所述处理设备不同的第二处理设备上操作。
示例32可以包括示例24-31中任一项的主题,并且还可以指定所述装置的至少一部分在处理设备的TEE中操作。
示例33可以包括示例24-32中任一项的主题,并且还可以指定TEE是***管理模式。
示例34是用于硬件配置仲裁的装置,包括:请求逻辑,用以向处理设备的TEE的报告逻辑提供来自应用的请求的指示,其中:所述处理设备具有TEE和非TEE,所述处理设备响应于特定的中断而从非TEE进入到TEE中,所述TEE从自非TEE不可访问的存储器中执行,所述报告逻辑存储在存储器中,并且所述请求表示硬件配置寄存器;安全逻辑,用以确定响应于接收到请求的指示而由报告逻辑所提供的、对由所述请求表示的硬件配置寄存器的值的指示符不满足所存储的安全要求;以及动作逻辑,用以响应于确定了所存储的安全要求不被满足而执行动作。
示例35可以包括示例34的主题,并且还可以指定响应于确定了所存储的安全要求不被满足而执行动作包括响应于确定了所存储的安全要求不被满足而使得在显示设备上显示所存储的安全要求不被满足的指示符。
示例36可以包括示例34-35中任一项的主题,并且还可以指定响应于确定了所存储的安全要求不被满足而执行动作包括响应于确定了所存储的安全要求不被满足而使得与硬件配置寄存器相关联的硬件停止运转。
示例37可以包括示例34-36中任一项的主题,并且还可以指定硬件配置寄存器是芯片组重映射寄存器。
示例38可以包括示例34-36中任一项的主题,并且还可以指定硬件配置寄存器是***管理模式锁定寄存器。
示例39可以包括示例34-36中任一项的主题,并且还可以指定硬件配置寄存器是闪速部分锁定寄存器。
示例40可以包括示例34-39中任一项的主题,并且还可以指定所述装置的至少一部分在处理设备的非TEE中操作。
示例41可以包括示例34-40中任一项的主题,并且还可以指定所述装置的至少一部分在与所述处理设备不同的第二处理设备上操作。
示例42可以包括示例34-41中任一项的主题,并且还可以指定所述装置的至少一部分在处理设备的TEE中操作。
示例43可以包括示例34-42中任一项的主题,并且还可以指定TEE是***管理模式。
示例44是用于硬件配置报告的方法,包括:由计算逻辑从仲裁器逻辑接收请求的指示,其中:所述计算逻辑存储在存储器内以在处理设备的TEE内操作,所述处理设备具有TEE和非TEE,所述处理设备响应于特定的中断而从非TEE进入到TEE中,所述TEE从存储器中执行,所述存储器自非TEE不可访问,并且所述请求表示硬件配置寄存器;以及由计算逻辑向仲裁器逻辑报告由所述请求所表示的硬件配置寄存器的值的指示符。
示例45可以包括示例44的主题,并且还可以指定来自仲裁器逻辑的请求的指示至少部分地基于存储在预定寄存器中的值,所述预定寄存器当处理设备操作于非TEE中时对所述处理设备而言可访问。
示例46可以包括示例44-45中任一项的主题,并且还可以指定来自仲裁器逻辑的请求的指示至少部分地基于触发处理设备进入到TEE中的特定中断的源。
示例47可以包括示例44-46中任一项的主题,并且还可以指定仲裁器逻辑在处理设备的非TEE中操作。
示例48可以包括示例44-46中任一项的主题,并且还可以指定仲裁器逻辑在与所述处理设备不同的第二处理设备上操作。
示例49可以包括示例44-46中任一项的主题,并且还可以指定仲裁器逻辑在处理设备的TEE中操作。
示例50可以包括示例44-49中任一项的主题,并且还可以指定所述请求是对硬件配置寄存器的值的查询,并且硬件配置寄存器的值的指示符是硬件配置寄存器的值。
示例51可以包括示例44-49中任一项的主题,并且还可以指定所述请求是硬件配置寄存器的值等于所指定的值的校验,并且硬件配置寄存器的值的指示符是硬件配置寄存器的值是否等于所指定的值的二进制指示符。
示例52可以包括示例51的主题,并且还可以指定仲裁器逻辑是操作于处理设备的基本输入/输出操作***(BIOS)中的驱动器执行环境(DXE)脚本。
示例53可以包括示例44-52中任一项的主题,并且还可以包括由计算逻辑确定多个驱动器中的哪一个能够访问由所述请求所表示的硬件配置寄存器,并且与所确定的驱动器通信以服务所述请求。
示例54可以包括示例44-46和49-53中任一项的主题,并且还可以指定仲裁器逻辑是在引导时执行的基本输入/输出操作***(BIOS)阶段仲裁器。
示例55可以包括示例44-54中任一项的主题,并且还可以指定TEE是***管理模式。
示例56是用于硬件配置报告的装置,包括:用于从仲裁器逻辑接收请求的指示的构件,其中:所述用于接收的构件存储在存储器内以在处理设备的TEE内操作,所述处理设备具有TEE和非TEE,所述处理设备响应于特定的中断而从非TEE进入到TEE中,所述TEE从存储器中执行,所述存储器自非TEE不可访问,并且所述请求表示硬件配置寄存器;以及用于向仲裁器逻辑报告由所述请求所表示的硬件配置寄存器的值的指示符的构件,其中所述用于接收的构件存储在存储器内以在处理设备的TEE内操作。
示例57可以包括示例56的主题,并且还可以指定来自仲裁器逻辑的请求的指示至少部分地基于存储在预定寄存器中的值,所述预定寄存器当处理设备操作于非TEE中时对所述处理设备而言可访问。
示例58可以包括示例56-57中任一项的主题,并且还可以指定来自仲裁器逻辑的请求的指示至少部分地基于触发处理设备进入到TEE中的特定中断的源。
示例59可以包括示例56-58中任一项的主题,并且还可以指定仲裁器逻辑在处理设备的非TEE中操作。
示例60可以包括示例56-58中任一项的主题,并且还可以指定仲裁器逻辑在与所述处理设备不同的第二处理设备上操作。
示例61可以包括示例56-58中任一项的主题,并且还可以指定仲裁器逻辑在处理设备的TEE中操作。
示例62可以包括示例56-61中任一项的主题,并且还可以指定所述请求是对硬件配置寄存器的值的查询,并且硬件配置寄存器的值的指示符是硬件配置寄存器的值。
示例63可以包括示例56-61中任一项的主题,并且还可以指定所述请求是硬件配置寄存器的值等于所指定的值的校验,并且硬件配置寄存器的值的指示符是硬件配置寄存器的值是否等于所指定的值的二进制指示符。
示例64可以包括示例63的主题,并且还可以指定仲裁器逻辑是操作于处理设备的基本输入/输出操作***(BIOS)中的驱动器执行环境(DXE)脚本。
示例65可以包括示例56-64中任一项的主题,并且还可以包括用于确定多个驱动器中的哪一个能够访问由所述请求所表示的硬件配置寄存器的构件,以及用于与所确定的驱动器通信以服务所述请求的构件,其中所述用于确定的构件和用于通信的构件被存储在存储器内以在处理设备的TEE内操作。
示例66可以包括示例56-58和61-65中任一项的主题,并且还可以指定仲裁器逻辑是在引导时执行的基本输入/输出操作***(BIOS)阶段仲裁器。
示例67可以包括示例56-66中任一项的主题,并且还可以指定TEE是***管理模式。
示例68是在其上具有指令的一个或多个机器可读介质,所述指令响应于通过装置的一个或多个处理设备的执行而使得所述装置执行示例44-55中任一项的方法。

Claims (36)

1.一种用于硬件配置报告的装置,包括:
具有TEE和非TEE的处理设备,其中所述处理设备用于响应于特定中断而从非TEE进入到TEE中,并且其中TEE从自非TEE不可访问的存储器中执行;
请求服务逻辑,存储在所述存储器中,用于在TEE内操作以接收来自仲裁器逻辑的请求的指示,其中所述请求表示硬件配置寄存器;以及
报告逻辑,存储在所述存储器中,用于在TEE内操作并且向所述仲裁器逻辑报告由所述请求所表示的所述硬件配置寄存器的值的指示符。
2.根据权利要求1所述的装置,其中来自所述仲裁器逻辑的所述请求的所述指示至少部分地基于存储在预定寄存器中的值,所述预定寄存器当所述处理设备操作于非TEE中时对所述处理设备而言可访问。
3.根据权利要求1所述的装置,其中来自所述仲裁器逻辑的所述请求的所述指示至少部分地基于触发所述处理设备进入到TEE中的所述特定中断的源。
4.根据权利要求1所述的装置,其中所述仲裁器逻辑在所述处理设备的非TEE中操作。
5.根据权利要求1所述的装置,其中所述仲裁器逻辑在与所述处理设备不同的第二处理设备上操作。
6.根据权利要求1所述的装置,其中所述仲裁器逻辑在所述处理设备的TEE中操作。
7.根据权利要求1所述的装置,其中所述请求是对所述硬件配置寄存器的值的查询,并且所述硬件配置寄存器的值的所述指示符是所述硬件配置寄存器的所述值。
8.根据权利要求1所述的装置,其中所述请求是所述硬件配置寄存器的值等于所指定的值的校验,并且所述硬件配置寄存器的值的所述指示符是所述硬件配置寄存器的值是否等于所指定的值的二进制指示符。
9.根据权利要求8所述的装置,其中所述仲裁器逻辑是操作于所述处理设备的基本输入/输出操作***(BIOS)中的驱动器执行环境(DXE)脚本。
10.根据权利要求1所述的装置,其中所述请求服务逻辑还用于:确定多个驱动器中的哪一个能够访问由所述请求所表示的所述硬件配置寄存器,并且与所确定的驱动器通信以服务所述请求。
11.根据权利要求1所述的装置,其中所述仲裁器逻辑是在引导时执行的基本输入/输出操作***(BIOS)阶段仲裁器。
12.根据权利要求1-11中任一项所述的装置,其中TEE是***管理模式。
13.一种用于硬件配置仲裁的方法,包括:
由计算逻辑向处理设备的受信任的执行环境TEE的报告逻辑提供来自应用的请求的指示,其中:
所述处理设备具有TEE和不受信任的执行环境即非TEE,
所述处理设备用于响应于特定中断而从非TEE进入到TEE中,
所述TEE从自非TEE不可访问的存储器中执行,
所述报告逻辑被存储在所述存储器中,并且
所述请求表示硬件配置寄存器;
由所述计算逻辑确定由所述报告逻辑响应于接收到所述请求的所述指示而提供的、由所述请求表示的所述硬件配置寄存器的值的指示符不满足所存储的安全要求;并且
响应于确定了所存储的安全要求不被满足而由所述计算逻辑来执行动作。
14.根据权利要求13所述的方法,其中响应于确定了所存储的安全要求不被满足而执行动作包括响应于确定了所存储的安全要求不被满足而使得在显示设备上显示所存储的安全要求不被满足的指示符。
15.根据权利要求13-14中任一项所述的方法,其中响应于确定了所存储的安全要求不被满足而执行动作包括响应于确定了所存储的安全要求不被满足而使得与所述硬件配置寄存器相关联的硬件停止运转。
16.一种用于硬件配置仲裁的装置,包括:
请求逻辑,用于向处理设备的TEE的报告逻辑提供来自应用的请求的指示,其中:
所述处理设备具有TEE和非TEE,
所述处理设备用于响应于特定中断而从非TEE进入到TEE中,
所述TEE从自非TEE不可访问的存储器中执行,
所述报告逻辑存储在所述存储器中,并且
所述请求表示硬件配置寄存器;
安全逻辑,用于确定由所述报告逻辑响应于接收到所述请求的所述指示而提供的、由所述请求表示的所述硬件配置寄存器的值的指示符不满足所存储的安全要求;以及
动作逻辑,用于响应于确定了所存储的安全要求不被满足而执行动作。
17.根据权利要求16 所述的装置,其中响应于确定了所存储的安全要求不被满足而执行动作包括响应于确定了所存储的安全要求不被满足而使得在显示设备上显示所存储的安全要求不被满足的指示符。
18.根据权利要求16所述的装置,其中响应于确定了所存储的安全要求不被满足而执行动作包括响应于确定了所存储的安全要求不被满足而使得与所述硬件配置寄存器相关联的硬件停止运转。
19.根据权利要求16所述的装置,其中所述硬件配置寄存器是芯片组重映射寄存器。
20.根据权利要求16所述的装置,其中所述硬件配置寄存器是***管理模式锁定寄存器。
21.根据权利要求16所述的装置,其中所述硬件配置寄存器是闪速部分锁定寄存器。
22.根据权利要求16所述的装置,其中所述装置的至少一部分在所述处理设备的非TEE中操作。
23.根据权利要求16-22中任一项所述的装置,其中所述装置的至少一部分在与所述处理设备不同的第二处理设备上操作。
24.根据权利要求16-22中任一项所述的装置,其中所述装置的至少一部分在所述处理设备的TEE中操作。
25.根据权利要求16-22中任一项所述的装置,其中TEE是***管理模式。
26.一种用于硬件配置报告的方法,包括:
由计算逻辑接收来自仲裁器逻辑的请求的指示,其中:
所述计算逻辑存储在存储器内以在处理设备的TEE内操作,
所述处理设备具有TEE和非TEE,
所述处理设备用于响应于特定中断而从非TEE进入到TEE中,
所述TEE从所述存储器中执行,
所述存储器自非TEE不可访问,并且
所述请求表示硬件配置寄存器;以及
由所述计算逻辑向所述仲裁器逻辑报告由所述请求所表示的所述硬件配置寄存器的值的指示符。
27.根据权利要求26所述的方法,其中来自所述仲裁器逻辑的所述请求的所述指示至少部分地基于存储在预定寄存器中的值,所述预定寄存器当所述处理设备操作于非TEE中时对所述处理设备而言可访问。
28.根据权利要求26-27中任一项所述的方法,其中来自所述仲裁器逻辑的所述请求的所述指示至少部分地基于触发所述处理设备进入到TEE中的所述特定中断的源。
29.一种机器可读介质,在所述机器可读介质上存储有指令,所述指令在被执行时使得计算装置执行权利要求13-15中任一项的方法。
30.一种机器可读介质,在所述机器可读介质上存储有指令,所述指令在被执行时使得计算装置执行权利要求26-28中任一项的方法。
31.一种用于硬件配置仲裁的装置,包括:
用于向处理设备的受信任的执行环境TEE的报告逻辑提供来自应用的请求的指示的部件,其中:
所述处理设备具有TEE和不受信任的执行环境即非TEE,
所述处理设备用于响应于特定中断而从非TEE进入到TEE中,
所述TEE从自非TEE不可访问的存储器中执行,
所述报告逻辑被存储在所述存储器中,并且
所述请求表示硬件配置寄存器;
用于确定由所述报告逻辑响应于接收到所述请求的所述指示而提供的、由所述请求表示的所述硬件配置寄存器的值的指示符不满足所存储的安全要求的部件;并且
用于响应于确定了所存储的安全要求不被满足而执行动作的部件。
32.根据权利要求31所述的装置,其中用于响应于确定了所存储的安全要求不被满足而执行动作的部件包括用于响应于确定了所存储的安全要求不被满足而使得在显示设备上显示所存储的安全要求不被满足的指示符的部件。
33.根据权利要求31-32中任一项所述的装置,其中用于响应于确定了所存储的安全要求不被满足而执行动作的部件包括用于响应于确定了所存储的安全要求不被满足而使得与所述硬件配置寄存器相关联的硬件停止运转的部件。
34.一种用于硬件配置报告的装置,包括:
用于从仲裁器逻辑接收请求的指示的部件,
其中:
所述部件存储在存储器内以在处理设备的TEE内操作,
所述处理设备具有TEE和非TEE,
所述处理设备用于响应于特定中断而从非TEE进入到TEE中,
所述TEE从所述存储器中执行,
所述存储器自非TEE不可访问,并且
所述请求表示硬件配置寄存器;以及
用于向所述仲裁器逻辑报告由所述请求所表示的所述硬件配置寄存器的值的指示符的部件。
35.根据权利要求34所述的装置,其中来自所述仲裁器逻辑的所述请求的所述指示至少部分地基于存储在预定寄存器中的值,所述预定寄存器当所述处理设备操作于非TEE中时对所述处理设备而言可访问。
36.根据权利要求34-35中任一项所述的装置,其中来自所述仲裁器逻辑的所述请求的所述指示至少部分地基于触发所述处理设备进入到TEE中的所述特定中断的源。
CN201480079261.5A 2014-06-25 2014-06-25 硬件配置报告*** Active CN106415575B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/080689 WO2015196381A1 (en) 2014-06-25 2014-06-25 Hardware configuration reporting systems

Publications (2)

Publication Number Publication Date
CN106415575A CN106415575A (zh) 2017-02-15
CN106415575B true CN106415575B (zh) 2020-03-20

Family

ID=54936452

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480079261.5A Active CN106415575B (zh) 2014-06-25 2014-06-25 硬件配置报告***

Country Status (6)

Country Link
US (1) US9870475B2 (zh)
EP (1) EP3161710B1 (zh)
JP (1) JP6481900B2 (zh)
KR (1) KR101881788B1 (zh)
CN (1) CN106415575B (zh)
WO (1) WO2015196381A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9509587B1 (en) * 2015-03-19 2016-11-29 Sprint Communications Company L.P. Hardware root of trust (HROT) for internet protocol (IP) communications
SG10201602449PA (en) 2016-03-29 2017-10-30 Huawei Int Pte Ltd System and method for verifying integrity of an electronic device
US10721185B2 (en) 2016-12-06 2020-07-21 Hewlett Packard Enterprise Development Lp Age-based arbitration circuit
US10944694B2 (en) 2016-12-06 2021-03-09 Hewlett Packard Enterprise Development Lp Predictive arbitration circuit
US10237198B2 (en) 2016-12-06 2019-03-19 Hewlett Packard Enterprise Development Lp Shared-credit arbitration circuit
US10452573B2 (en) * 2016-12-06 2019-10-22 Hewlett Packard Enterprise Development Lp Scripted arbitration circuit
US10402273B2 (en) 2016-12-14 2019-09-03 Microsoft Technology Licensing, Llc IoT device update failure recovery
US10715526B2 (en) 2016-12-14 2020-07-14 Microsoft Technology Licensing, Llc Multiple cores with hierarchy of trust
US10416991B2 (en) * 2016-12-14 2019-09-17 Microsoft Technology Licensing, Llc Secure IoT device update
US20190004818A1 (en) * 2017-06-29 2019-01-03 American Megatrends Inc. Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof
US11294898B2 (en) 2017-07-31 2022-04-05 Pearson Education, Inc. System and method of automated assessment generation
US10693811B2 (en) 2018-09-28 2020-06-23 Hewlett Packard Enterprise Development Lp Age class based arbitration
US11200187B2 (en) 2019-03-27 2021-12-14 Dell Products L.P. Configuring programmatic interfaces of bus bridges in computer systems
CN111967010B (zh) * 2019-05-20 2024-05-24 阿里巴巴集团控股有限公司 一种可信服务方法、装置、设备及存储介质
US11829477B2 (en) 2020-03-24 2023-11-28 Sony Corporation Concept for controlling access to a data memory
US20210110070A1 (en) * 2020-12-22 2021-04-15 Anjo Lucas Vahldiek-Oberwagner Reducing latency of hardware trusted execution environments

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2166478A2 (en) * 2008-09-22 2010-03-24 NTT DoCoMo, Inc. API checking device and state monitor
CN102509046A (zh) * 2010-11-02 2012-06-20 微软公司 带有休眠支持的全局有效的测量的操作***发动

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4601557B2 (ja) * 2005-02-07 2010-12-22 株式会社ソニー・コンピュータエンタテインメント マルチプロセッサシステムにおいてプロセッサのセキュアな連携を行う方法および装置
US20090204823A1 (en) * 2008-02-07 2009-08-13 Analog Devices, Inc. Method and apparatus for controlling system access during protected modes of operation
KR101874081B1 (ko) * 2012-06-07 2018-07-03 에스케이테크엑스 주식회사 개선된 보안 기능 기반의 클라우드 서비스 시스템 및 이를 지원하는 방법
US8955039B2 (en) 2012-09-12 2015-02-10 Intel Corporation Mobile platform with sensor data security
US9292712B2 (en) * 2012-09-28 2016-03-22 St-Ericsson Sa Method and apparatus for maintaining secure time
US9129071B2 (en) * 2012-10-24 2015-09-08 Texas Instruments Incorporated Coherence controller slot architecture allowing zero latency write commit
KR20140114263A (ko) * 2013-03-13 2014-09-26 삼성전자주식회사 어플리케이션 인증 방법 및 이를 구현하는 전자 장치
US9280655B2 (en) * 2013-03-13 2016-03-08 Samsung Electronics Co., Ltd Application authentication method and electronic device supporting the same
JP6067449B2 (ja) * 2013-03-26 2017-01-25 株式会社東芝 情報処理装置、情報処理プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2166478A2 (en) * 2008-09-22 2010-03-24 NTT DoCoMo, Inc. API checking device and state monitor
CN102509046A (zh) * 2010-11-02 2012-06-20 微软公司 带有休眠支持的全局有效的测量的操作***发动

Also Published As

Publication number Publication date
KR20160146967A (ko) 2016-12-21
EP3161710B1 (en) 2019-12-04
US9870475B2 (en) 2018-01-16
CN106415575A (zh) 2017-02-15
KR101881788B1 (ko) 2018-07-25
US20160292423A1 (en) 2016-10-06
EP3161710A1 (en) 2017-05-03
JP6481900B2 (ja) 2019-03-13
EP3161710A4 (en) 2017-11-29
JP2017519281A (ja) 2017-07-13
WO2015196381A1 (en) 2015-12-30

Similar Documents

Publication Publication Date Title
CN106415575B (zh) 硬件配置报告***
JP6761476B2 (ja) 仮想マシンを監査するためのシステムおよび方法
US7127579B2 (en) Hardened extended firmware interface framework
US8099574B2 (en) Providing protected access to critical memory regions
US8856473B2 (en) Computer system protection based on virtualization
US20020169979A1 (en) Hardened extensible firmware framework
US20070079090A1 (en) Validating a memory type modification attempt
CN109074321B (zh) 用于保护虚拟计算实例的存储器的方法和***
JP6370098B2 (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
CN113806745B (zh) 验证检查的方法、计算***及机器可读存储介质
WO2017099922A1 (en) System management mode disabling and verification techniques
US9566158B2 (en) Hardware protection of virtual machine monitor runtime integrity watcher
US7480797B2 (en) Method and system for preventing current-privilege-level-information leaks to non-privileged code
US7143281B2 (en) Method and apparatus for automatically changing kernel tuning parameters
US20220300330A1 (en) Runtime Container Protection
US20210182393A1 (en) Monitoring control-flow integrity
WO2024040508A1 (en) Memory preserved warm reset mechanism
US20220222340A1 (en) Security and support for trust domain operation
US20240070260A1 (en) Process Credential Protection
US10303503B2 (en) Hardware protection of virtual machine monitor runtime integrity watcher
US20210026948A1 (en) Monitoring operating system invariant information
Clark Adoption of the Least Privilege Separation Kernel (LPSK) for the Atom Platform

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant