CN117413267A - 经由安全处理器的固件策略强制执行 - Google Patents
经由安全处理器的固件策略强制执行 Download PDFInfo
- Publication number
- CN117413267A CN117413267A CN202280039415.2A CN202280039415A CN117413267A CN 117413267 A CN117413267 A CN 117413267A CN 202280039415 A CN202280039415 A CN 202280039415A CN 117413267 A CN117413267 A CN 117413267A
- Authority
- CN
- China
- Prior art keywords
- firmware
- policy rule
- policy
- secure processor
- computing 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.)
- Pending
Links
- 230000000116 mitigating effect Effects 0.000 claims abstract description 27
- 238000000034 method Methods 0.000 claims description 38
- 238000012545 processing Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 description 12
- 230000003287 optical effect Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 230000006854 communication Effects 0.000 description 10
- 230000001413 cellular effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000026676 system process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000007664 blowing Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/554—Detecting local intrusion or implementing counter-measures involving event detection and direct action
-
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
-
- 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
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)
- Storage Device Security (AREA)
Abstract
本文描述的实施例涉及计算设备的固件策略强制执行。例如,使用计算设备的安全处理器来引导计算设备。在引导会话期间,安全处理器加载并执行专用固件。专用固件在被执行时使安全处理器确定要在计算设备上执行的其他类型的固件是否符合该专用固件所指定的策略。至少基于确定其他固件符合该策略,安全处理器执行其他固件。至少基于确定其他固件不符合该策略,安全处理器执行针对其他固件的缓解。
Description
背景技术
固件是一类特定的计算机软件,其为设备的特定硬件提供低级别控制。固件(诸如计算设备的基本输入/输出系统(BIOS)固件)可以仅包含设备的基本功能并且可以仅向更高级别的软件提供服务。包含固件的设备的典型示例是嵌入式系统、消费类电器、计算机和计算机外围设备(例如,硬盘驱动器、固态驱动器、处理器(例如,CPU)、微控制器、显卡等)。
设备的所有者可以建立规则或策略,该规则或策略是关于如何使用设备和/或将在设备上安装哪些固件和/或软件。一般来说,这些规则是由操作系统进程强制执行的。如此,策略强制执行机制容易受在操作系统上运行的恶意软件的影响,从而为恶意实体劫持固件并将其自己的恶意代码插入到固件中打开了大门。
发明内容
提供本发明内容是为了以简化的形式介绍一些概念的选择,这些概念将在下面的具体实施方式中被进一步描述。本发明内容并不旨在确定所要求保护主题的关键特征或基本特征,也不旨在被用来限制所要求保护主题的范围。
本文描述的方法、系统、装置和计算机可读存储介质涉及计算设备的固件策略强制执行。例如,使用计算设备的安全处理器来引导该计算设备。在引导会话期间,安全处理器加载并执行专用固件。专用固件在被执行时使安全处理器确定要在计算设备上执行的其他类型的固件是否符合专用固件所指定的策略。至少基于确定其他固件符合该策略,安全处理器执行其他固件。至少基于确定其他固件不符合该策略,安全处理器执行针对其他固件的缓解。
下面参考附图详细描述所公开实施例的更多特征和优点以及各个实施例的结构和操作。需要说明的是,所公开的实施例并不限于本文所描述的具体实施例。本文中提出的这种实施例仅用于说明性目的。基于本文所包含的教导,附加实施例对相关领域的技术人员来说将是显而易见的。
附图说明
并入本文并形成说明书一部分的附图图示了实施例,并且与描述一起进一步用于解释实施例的原理并使相关领域的技术人员能够做出和使用这些实施例。
图1描绘了根据示例实施例的系统的框图,该系统被配置为在计算设备的引导会话期间强制执行固件策略。
图2是根据示例实施例的安全处理器的框图。
图3描绘了根据示例实施例的由计算设备的处理器电路执行的示例方法的流程图,该处理器电路用于强制执行用于固件的策略。
图4描绘了根据示例实施例的由计算设备的处理器电路执行的示例方法的流程图,该处理器电路用于对被确定为不符合策略的固件执行缓解。
图5描绘了根据另一示例实施例的用于使对提升特权的请求生效的方法的流程图。
图6是可以被用于实现实施例的示例计算设备的框图。
当结合附图时,所公开实施例的特征和优点将从下面阐述的详细描述中变得更加明显,在附图中,相同的参考数字始终标识对应的元件。在附图中,相似的参考数字通常指示相同的、功能相似的、和/或结构相似的元件。元件在其中首次出现的附图由对应的参考数字中最左边的数字来指示。
具体实施方式
一、简介
以下详细描述公开了众多示例实施例。本专利申请的范围不限于所公开的实施例,而是还涵盖所公开实施例的组合以及对所公开实施例的修改。
说明书中提及“一个实施例”、“实施例”、“示例实施例”等指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例不一定包括该特定的特征、结构或特性。此外,这种短语不一定指的是相同的实施例。此外,当结合实施例来描述特定的特征、结构或特性时,认为结合其他实施例(无论是否明确描述)来实现这种特征、结构或特性是在本领域技术人员的知识范围内。
众多示例性实施例被描述如下。应注意,本文提供的任何章节/子章节标题并不旨在进行限制。在整个文档中描述了实施例,并且任何类型的实施例都可以被包括在任何章节/子章节下。此外,在任何章节/子章节中公开的实施例可以以任何方式与相同的章节/子章节和/或不同的章节/子章节中描述的任何其他实施例进行组合。
二、示例实现
本文描述的实施例涉及计算设备的固件策略强制执行。例如,使用计算设备的安全处理器来引导计算设备。在引导会话期间,安全处理器加载并执行专用固件。专用固件在被执行时使安全处理器确定要在计算设备上执行的其他类型的固件是否符合专用固件所指定的策略。至少基于其他固件符合策略的确定,安全处理器执行其他固件。至少基于其他固件不符合策略的确定,安全处理器执行针对其他固件的缓解。
安全处理器被利用以加载和执行固件,而计算设备的主中央处理单元被利用以执行计算设备的操作系统和软件应用。也就是说,操作系统不在安全处理器上执行。因此,安全处理器被保护免受恶意软件的侵害,恶意软件被设计成利用操作系统的漏洞来执行恶意活动。
例如,图1描绘了根据示例实施例的系统100的框图,系统100被配置为在计算设备的引导会话期间强制执行固件策略。如图1中所示,系统100包括片上系统(SoC)102。SoC102包括多个CPU核104A-104D和安全处理器106。应当注意,虽然SoC 102包括四个CPU核,但是SoC 102可以包括任何数量的CPU核。CPU核104A-104D和安全处理器106经由总线互连108通信地耦合,由此CPU核104A-104D和/或安全处理器106可以在它们之间发射和/或接收数据、控制信号和/或其他信息信号。总线互连108可以经由一根或多根导线、迹线或其他形式的路由/互连来实现;然而,本文描述的实施例不限于此。CPU核104A-104D中的每个CPU核可以被配置为根据特定指令集架构(ISA)(诸如但不限于x86指令集)取得、解码、执行和提交指令并处理数据。根据实施例,CPU核104A-104D可以是基于32位或64位的复杂指令集计算机(CISC)的处理器核;然而本文描述的实施例不限于此。安全处理器106和CPU核104A-104D可以在同一管芯上被实现。CPU核104A-104D中的一个或多个CPU核被配置为执行其中包括了SoC 102的设备的操作系统,而安全处理器106可以不被配置为执行操作系统。因此,安全处理器106与被配置为经由操作系统执行的任何恶意软件安全地隔离,因为这种恶意软件不能在安全处理器106上执行。操作系统的示例包括但不限于由华盛顿州雷德蒙德的微软公司发布的操作系统(OS)、/>操作系统和其他/>变体等。
安全处理器106可以包括硬件安全模块(或平台),该硬件安全模块被配置为管理公钥、执行数字签名的加密和解密功能、和/或执行其他密码功能。根据实施例,安全处理器106被配置为确定为SoC 102和/或包括SoC 102的设备加载的固件是否符合策略。例如,SoC102可以被加载有固件,该固件存储用于SoC 102所加载的其他类型固件的策略。如果特定类型的固件被确定为符合指定的策略,则该固件由安全处理器106执行。相反,如果确定特定类型的固件不符合指定的策略,则针对该特定类型的固件执行一个或多个缓解。其中可以包括SoC 102的设备的示例包括但不限于台式计算机、膝上型计算机、服务器、平板计算机、智能电话等和/或其中包括的各种组件,这些组件包括但不限于硬盘驱动器、固态驱动器、处理器(例如,CPU)、微控制器、图形卡等。下面参考图2来描述关于策略强制执行过程的附加细节。
例如,图2是根据示例实施例的安全处理器200的框图。安全处理器200是上面参考图1描述的安全处理器106的示例。如图2中所示,安全处理器200包括安全处理器核202、存储器204、密码引擎206、访问强制逻辑210、熔断器控制器212和熔断器阵列214。安全处理器核202、存储器204、密码引擎206、访问强制逻辑210、熔断器控制器212和熔断器阵列214经由总线互连208通信地耦合,总线互连208是上面参考图1所描述的总线互连108的示例。总线互连208可以被通信地耦合到未参考图2描述的其他组件,包括但不限于上面参考图1所描述的CPU核104A-104D。
安全处理器核202可以是针对高性能、硬实时和安全关键应用进行了优化的实时处理器核。这种处理器核的示例包括但不限于由英国剑桥的ARM Holdings开发的ARMCortex-R处理器。根据实施例,安全处理器核202可以是基于32位或64位的精简指令集计算机(RISC)的处理器核;然而本文描述的实施例不限于此。
存储器204存储引导代码216和各种类型的固件224。引导代码216包括在引导会话期间(即,当包括安全处理器200的设备在上电或复位后正在启动时)可以由安全处理器核202执行的代码(或指令)。固件224的示例包括但不限于基本输入/输出系统(BIOS)固件、UEFI(统一可扩展固件接口)(UEFI)BIOS固件、以及各种设备特定固件,诸如硬盘驱动器固件、固态硬盘、视频BIOS固件等。应当注意,固件224代表这些不同类型的固件(即,固件224可以表示超过一种类型的固件)。如下所述,存储器204还可以包括指定用于固件224的策略的固件类型(示出为固件218)。这种固件在本文中被称为策略强制固件。存储器204的示例包括但不限于非易失性只读存储器设备(例如,闪存、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)等等)。
熔断器阵列214包括多个熔断器组220A、220B、220C和220D。熔断器组220A、220B、220C和220D中的每个熔断器组包括多个一次性可编程熔断器。熔断器可以是电子熔断器(即,eFuse)或具有两种不同状态之一的反熔断器。电子熔断器是计算机芯片中的微观熔断器,其可以由半导体材料(例如,硅)和/或金属迹线制成。电子熔断器可以通过电迁移或以其他合适的方式熔断。然而,本文描述的实施例不限于此。可以通过选择性地熔断熔断器组中的熔断器将数据写入(或编程)到熔断器组,其中熔断的熔断器可以对应于值“1”,而未熔断的熔断器可以对应于值“0”,反之亦然。熔断器组220A、220B、220C和220D中的每一个被配置为存储拥有SoC 102的特定实体的公钥。如本文所定义的,实体可以包括但不限于个人、公司、组织、企业等。根据实施例,熔断器组220A、220B、220C和220D中的每个熔断器组存储代表公钥的哈希。该哈希可以包括384位哈希值。根据这种实施例,熔断器组220A、220B、220C和220D中的每个熔断器组包括384个熔断器。然而,应当注意,哈希可以包括任意位数,包括但不限于128位、256位等,并且熔断器组220A、220B、220C和220D中的每个熔断器组可以包括对应数量的熔断器。在制造之后,特定熔断器组(例如,熔断器组220A)的熔断器可以被编程以存储第一所有者的公钥。如果在安全处理器200流片时公钥已知,则该公钥也可以被硬编码在存储器204中。这保证了当安全处理器200被制造出来时,在熔断任何熔断器之前,它都具有起始的默认所有者。
熔断器组220A、220B、220C和220D中的每个熔断器组还与所有者撤销熔断器相关联。例如,熔断器组220A与所有者撤销熔断器222A相关联,熔断器组220B与所有者撤销熔断器222B相关联,熔断器组220C与所有者撤销熔断器222C相关联,而熔断器组220D与所有者撤销熔断器222D相关联。所有者撤销熔断器222A、222B、222B和222D中的每个熔断器可以被用于使存储在其对应的熔断器组中的公钥无效(或撤销)。所有者撤销熔断器222A、222B、222B和222D中的每个熔断器最初可以处于未熔断状态。为了撤销公钥,可以熔断对应的撤销熔断器。例如,为了撤销在组220A中存储的公钥,所有者撤销熔断器222A可以被熔断。为了撤销在组220B中存储的公钥,所有者撤销熔断器222B可以被熔断。为了撤销在组220C中存储的公钥,所有者撤销熔断器222C可以被熔断。为了撤销在组220D中存储的公钥,所有者撤销熔断器222D可以被熔断。
熔断器阵列214的熔断器可以通过向熔断器控制器212发送命令而被编程。这些命令可以由安全处理器核202提供。响应于接收到这种命令,熔断器控制器212可以根据该命令对熔断器阵列214的对应熔断器进行编程。
访问强制逻辑210被配置为允许或拒绝对熔断器阵列214中的熔断器进行编程的能力。例如,访问强制逻辑210可以仅允许在有效的所有权转移操作期间对熔断器阵列214中的熔断器进行编程。例如,访问强制逻辑210可以向熔断器控制器212发送第一命令,这使熔断器控制器212准许对熔断器阵列214中的熔断器进行编程的请求。当确定不执行所有权转移时,访问强制逻辑210阻止熔断器阵列214中的熔断器被编程。例如,访问强制逻辑210可以向熔断器控制器212发送第二命令,这使熔断器控制器212拒绝对熔断器阵列214中的熔断器进行编程的请求。根据实施例,熔断器控制器212和访问强制逻辑210默认阻止熔断器阵列214中的熔断器被编程。根据这种实施例,不向熔断器控制器212提供第二命令。
为了促进所有权的转移,设备的第一实体(即,当前所有者)可以创作一种包括有使安全处理器核202执行以下操作的代码的固件:用新所有者的公钥对熔断器组220A、220B、220C和220D中的熔断器组进行编程;以及还撤销前一所有者的公钥(经由熔断与存储前一所有者的公钥的熔断器组相关联的所有者撤销熔断器)。
在引导会话期间,安全处理器核202加载并执行引导代码216。在被执行时,引导代码216使安全处理器核202将策略强制固件218从存储器204复制到并入安全处理器核202内的存储器,诸如但是不限于静态随机存取存储器(SRAM)。根据实施例,引导代码216可以使安全处理器核202验证公钥(例如,包括在策略强制固件218的报头中)以确保策略强制固件218是由授权实体提供的。为了验证该公钥,安全处理器核202可以向熔断器控制器212发送读取请求。熔断器控制器212读取熔断器组220A、220B、220C和220D中的每个熔断器组,并且将存储在其中的值与由相关联的所有者撤销熔断器222A、222B、222C和222D所表示的值一起返回到安全处理器核202。安全处理器核202读取从熔断器控制器212返回的值,并且确定这些值中的一个值是否等于与第一实体相关联的公钥。如果在熔断器组220A、220B、220C和220D中的任意一个中都没有找到该公钥,则引导会话可能会失败。
在其中熔断器组220A、220B、220C和220D被配置为存储公钥的哈希的实施例中,安全处理器核202可以将第一实体的公钥提供给密码引擎206。密码引擎206被配置为生成公钥的哈希。密码引擎206可以根据加密算法生成该哈希。加密算法的示例包括但不限于基于高级加密标准(AES)的算法、基于安全哈希算法(SHA)的算法、基于公钥算法(PKA)的算法等等。密码引擎206将该哈希返回到安全处理器核202。
如果发现公钥(或其哈希)之间的匹配,则安全处理器核202使用公钥来验证策略强制固件218的签名。根据实施例,策略强制固件218是加密的。根据这种实施例,安全处理器核202可以向密码引擎206提供策略强制固件218以供其解密。然后,安全处理器核202分析策略强制固件218以确定由此指定的策略。根据实施例,该策略可以包括一个或多个策略规则。例如,第一规则指定固件224的一个或多个有效版本号。例如,策略强制固件218可以指定固件224的版本号的允许列表和/或固件224的版本号的拒绝列表。例如,第二规则指定固件224的一个或多个有效哈希。例如,策略强制固件218可以指定固件224的哈希的允许列表和/或固件224的哈希的拒绝列表。在另一示例中,第三策略规则指定固件224的一个或多个有效数字签名。例如,策略强制固件218可以指定固件224的数字签名的允许列表和/或固件224的数字签名的拒绝列表。应当注意,本文描述的策略规则纯粹是示例性的,并且策略强制固件218可以指定其他类型的策略规则。
策略强制固件218包括代码(例如,指令),当由安全处理器核202执行时,该代码使安全处理器核202确定固件224是否符合策略强制固件218所指定的策略。例如,固件224中的每个固件可以存储各种信息,诸如但不限于固件标识符、其版本号、数字签名等。这些信息中的一些或全部可以被存储在固件的报头中。安全处理器核202可以读取这种信息,并且确定这种信息是否符合由策略强制固件218指定的策略。根据实施例,安全处理器核202可以首先加载固件224的每个固件,随后读取上述信息。根据这种实施例,固件224可以被加载到存储器(例如,SRAM)中,该存储器被并入安全处理器核202内。
例如,策略强制固件218的代码可以使安全处理器核202在其执行该代码时确定固件224的每个固件是否用第一策略规则(如上所述)进行编译。例如,安全处理器核202可以将固件224的每个固件的版本号与策略强制固件218所指定的允许列表的版本号和/或拒绝列表的版本号进行比较。版本的允许列表和/或拒绝列表版本号可以将由此指定的每个版本号关联到与其相关联的固件的标识符。对于固件224的每个固件,安全处理器核202可以确定该固件的标识符,并且确定在允许列表和/或拒绝列表中为其指定的关联版本号。如果固该件的版本号被包括在允许列表中,则安全处理器核202确定该固件符合第一策略规则。如果版本号未被包括在允许列表中和/或被包括在拒绝列表中,则安全处理器核202确定该固件不符合第一策略规则。
在另一示例中,策略强制固件218的代码可以使安全处理器核202在其执行该代码时确定固件224的每个固件是否符合第二策略规则(如上所述)。例如,安全处理器核202可以确定固件224的每个固件的哈希,并且将其与策略强制固件218所指定的允许列表的哈希号和/或哈希的拒绝列表进行比较。哈希的允许列表和/或拒绝列表可以将由此指定的每个哈希关联到与其相关联的固件的标识符。对于固件224的每个固件,安全处理器核202可以通过将该固件提供给密码引擎206来确定该固件的哈希。密码引擎206根据加密算法来生成该固件的哈希。加密算法的示例包括但不限于基于高级加密标准(AES)的算法、基于安全哈希算法(SHA)的算法、基于公钥算法(PKA)的算法等等。密码引擎206将哈希返回到安全处理器核202。安全处理器核202将该哈希与在允许列表和/或拒绝列表中为该固件指定(经由固件标识符)的哈希进行比较。如果该固件的哈希被包括在允许列表中,则安全处理器核202确定该固件符合第二策略规则。如果该哈希不被包括在允许列表中和/或被包括在拒绝列表中,则安全处理器核202确定该固件不符合第二策略规则。
在另一示例中,策略强制固件218的代码可以使安全处理器核202在其执行该代码时确定固件218的每个固件是否符合第三策略规则(如上所述)。根据实施例,为了使固件224的每个固件的数字签名生效,安全处理器核202可以将该固件提供给密码引擎206。密码引擎206根据加密算法生成该固件的哈希。密码引擎206将哈希返回到安全处理器核202。密码引擎206还可以根据解密算法使用实体的公钥使该固件的数字签名生效。该公钥可以在固件本身(例如,在报头中)、在存储器204和/或熔断器组220A、220B、220C和220D中被提供。密码引擎206将解密的数字签名提供给安全处理器核202。安全处理器核202将密码引擎206生成的哈希与该固件的解密数字签名进行比较。如果哈希和解密数字签名相匹配,则安全处理器核202确定该固件符合第三策略规则。如果哈希和解密数字签名不匹配,则安全处理器核202确定该固件不符合第三策略规则。
根据另一个实施例,安全处理器核202可以将解密的数字签名与包括在由策略强制固件218指定的数字签名的允许列表和/或拒绝列表中的数字签名进行比较。数字签名的允许列表和/或拒绝列表可以将由此指定的每个数字签名关联到与其相关联的固件的标识符。安全处理器核202可以将密码引擎206提供的解密的数字签名与允许列表和/或拒绝列表中的固件的数字签名(由固件的标识符标识的)进行比较。如果解密的签名与允许列表中的数字签名相匹配,则安全处理器核202确定该固件符合第三策略规则。如果解密的签名与允许列表中的数字签名不匹配和/或与拒绝列表中的数字签名相匹配,则安全处理器核202确定该固件不符合第三策略规则。
至少基于确定固件224的特定固件符合由策略强制固件218指定的所有策略规则,安全处理器核202执行该特定固件。至少基于确定固件224的特定固件不符合由策略强制固件218指定的策略规则中的至少一个策略规则,安全处理器核202执行对特定固件的缓解。例如,安全处理器核202可以生成并记录指示特定固件不符合的事件。例如,安全处理器核202可以生成日志226并将其存储在存储器204(用于存储事件)中。日志226可以指定固件不符合的(多个)策略规则和/或指定固件所符合的(多个)策略规则。日志226还可以指定违反(多个)策略规则的固件224的每个固件的版本号、哈希和/或数字签名。随后,可以分析日志226以找出特定固件被确定为不符合的根本原因。注意,当固件符合所有策略规则时,也可以生成日志226。在这种情况下,日志226指定固件所符合的策略规则。
根据实施例,至少基于确定固件224的特定固件不符合,安全处理器核202不执行该特定固件。在某些情况下,加载了固件的计算设备可能会由于不执行该固件而无法启动或无法正确启动。在这种情况下,可以经由基板管理控制器(未示出)对日志226进行访问和/或取回。
根据另一个实施例,至少基于固件224的特定固件不符合的确定,安全处理器核202仍然执行该特定固件。根据这种实施例,计算进程可以周期性地检索和/或分析日志226,以确定固件224的特定固件是否符合由策略强制固件218指定的策略。该计算进程可以是操作或软件应用(例如,在CPU核104A-104D中的一个或多个CPU核上执行)的操作系统进程。在示例中,至少基于确定固件224的特定固件不符合,计算进程可以将其上安装有这种固件的设备断电。在另一示例中,至少基于确定固件224的特定固件不符合,计算设备可以阻止安装有特定固件的设备访问某些资源(例如,文件、目录、数据库等)。在缓解不兼容的固件之后,可以分析日志226以确定不兼容的原因。可以经由基板管理控制器对日志226进行访问和/或取回。
根据实施例,由策略强制固件218指定的策略是可配置的。例如,策略强制固件224可以暴露计算进程(例如,操作系统的操作系统进程)可访问的应用编程接口(API)228。操作系统在CPU核104A-104D中的一个或多个上执行,而不在安全处理器106上执行。操作系统可以经由API 228向策略强制固件224提供一个或多个策略参数。该(多个)策略参数包括但不限于为其提供(多个)策略参数的固件标识符、固件的版本号、固件的哈希、固件的数字签名等。响应于接收(多个)这种策略参数,策略强制固件224的(多个)策略规则被更新。例如,安全处理器核202可以使(多个)这种策略参数被写入策略强制固件224。更新的策略可以在其上安装有固件的计算设备(例如,SoC 102)下一次重启并发起引导会话时被实现和强制执行。作为附加的安全措施,可以经由被授权更新和/或改变策略的实体(例如,SoC 102的所有者)数字签名的配置文件来提供策略参数。安全处理器核202可以根据本文描述的实施例使数字签名生效,并且仅当数字签名被认为是有效时才更新策略。
因此,可以以任何方式强制执行用于安装在设备上的固件的策略。例如,图3描绘了根据示例实施例的示例方法的流程图300,该方法由计算设备的处理器电路执行用于强制执行用于固件的策略。在实施例中,流程图300可以由安全处理器200来实现。因此,将继续参考图2的安全处理器200来描述流程图300的方法,然而该方法不限于该实现方式。基于关于流程图300和图2的安全处理器200的讨论,其他结构和操作实施例对(多个)相关领域的技术人员来说会是明显的。
如图3中所示,流程图300的方法在步骤302处开始,其中在计算设备的引导会话期间,确定在引导会话期间加载的第一固件是否符合由在引导会话期间加载的第二固件所指定的至少一个策略规则。至少基于确定第一固件不符合至少一个策略规则,流程继续到步骤304。否则,流程继续到步骤306。例如,参考图2,策略强制固件218可以包括代码,该代码在被执行时使安全处理器核202确定在引导会话期间加载的固件224是否符合由在引导会话期间加载的策略强制固件218所指定的至少一个策略规则。
根据一个或多个实施例,至少一个策略规则包括指定第一固件的有效版本号的第一策略规则、指定第一固件的有效哈希的第二策略规则、或指定第一固件的有效数字签名的第三策略规则中的至少一个。例如,参考图2,策略强制固件218包括指定固件224的有效版本号的第一策略规则、指定固件224的有效哈希的第二策略规则、和/或指定固件224的有效数字签名的第三策略规则。
在步骤304处,至少基于确定第一固件不符合至少一个策略规则,执行针对第一固件的缓解。例如,参考图2,安全处理器核202可以执行策略强制固件218的代码,该代码使安全处理器核202执行针对固件224的缓解。
根据一个或多个实施例,该缓解包括阻止第一固件的执行。例如,参考图2,安全处理器核202阻止固件224的执行(即,安全处理器核202不执行固件224)。
根据一个或多个实施例,根据如下所述的图4来执行缓解。
根据一个或多个实施例,第二固件包括应用编程接口,其被配置为从操作系统接收至少一个策略规则的策略参数。例如,参考图2,策略强制固件218包括API 228,其被配置为从操作系统接收至少一个策略规则的策略参数。
根据一个或多个实施例,操作系统在多个中央处理电路核的中央处理电路上执行。例如,参考图1,操作系统在CPU核104A-104D中的一个或多个上执行。
根据一个或多个实施例,处理电路在与多个中央处理电路核相同的管芯上被实现。例如,参考图1,处理器电路(即,安全处理器106)在与CPU核104A-104D相同的管芯上被实现。
在步骤304处,至少基于确定第一固件符合至少一个策略规则,第一固件被执行。例如,参考图2,安全处理器核202可以执行固件224。
图4描绘了根据示例实施例的示例方法的流程图400,该方法由计算设备的处理器电路执行以用于对被确定为不符合策略的固件执行缓解。在实施例中,流程图400可以由安全处理器200来实现。因此,将继续参考图2的安全处理器200来描述流程图400的方法,然而该方法不限于该实现。基于关于流程图400和图2的安全处理器200的讨论,其他的结构和操作实施例对相关领域的技术人员来说会是明显的。
如图4中所示,流程图400的方法在步骤402处开始,其中指示第一固件不符合的事件被记录。例如,参考图2,安全处理器核202在日志226中记录事件。该事件指示固件224不符合。
在步骤404处,第一固件被执行。例如,参考图2,安全处理器202执行固件224。
三、示例计算机系统实现
上述的系统和方法(包括参考图1-图4的固件的策略强制执行)可以以硬件、或以硬件与软件和/或固件之一或其两者组合来实现。例如,引导代码216和策略强制固件218、固件224、日志226、API 228和/或流程图300和400可以各自被实现为计算机程序代码/指令,其被配置为在一个或多个处理器(例如,安全处理器核202)中被执行并被存储在计算机可读存储介质(例如,存储器204)中。安全处理器106、CPU核104A-104D、存储器204、安全处理器核202、密码引擎206、访问强制逻辑210、熔断器控制器212和熔断器阵列214可以被实现为硬件逻辑/电路系统。在实施例中,安全处理器106、CPU核104A-104D、存储器204、安全处理器核202、密码引擎206、访问强制逻辑210、熔断器控制器212和熔断器阵列214、和/或其中所描述的每个组件、以及流程图300和/或400可以在一个或多个SoC(片上系统)(例如,SoC 102)中被实现。SoC可以包括集成电路芯片,集成电路芯片包括处理器(例如,CPU核104A-104D)、微控制器、微处理器、数字信号处理器(DSP)、安全处理器106等)、存储器(例如,存储器204)、一个或多个通信接口(例如,总线互连108和208)、和/或更多电路系统中的一个或多个,并且可以可选地执行接收到的程序代码和/或包括嵌入式固件以执行功能。
图5示出了示例性移动设备500的框图,移动设备500包括各种各样的可选硬件和软件组件(总体上示为组件502)。安全处理器106、CPU核104A-104D、存储器204、安全处理器核202、密码引擎206、访问强制逻辑210、熔断器控制器212和熔断器阵列214、和/或其中描述的每个组件、以及流程图300和/或400可以被实现为在移动设备中包括的组件502以及附加和/或替代的特征/元件,这是相关领域技术人员所知道的。应注意,组件502中的任何一个组件可以与组件502中的任何其他组件通信,然而为了便于说明,未示出所有的连接。移动设备500可以是在本文别处描述或提到的或以其他方式知道的多种移动设备中的任何一种(例如,蜂窝电话、智能电话、手持计算机、个人数字助理(PDA)等),并且可以允许一个或多个通信网络504(诸如蜂窝或卫星网络)与一个或多个移动设备(或者与局域网或广域网)进行无线双向通信。
所图示的移动设备500可以包括被称为处理器电路510的控制器或处理器(可以包括CPU核104A-104N),以用于执行诸如信号编码、图像处理、数据处理、输入/输出处理、功率控制或其他功能之类的任务。处理器电路510是在一个或多个物理硬件电路设备元件和/或集成电路设备(半导体材料芯片或管芯)中实现的电气和/或光学电路,物理硬件电路设备元件和/或集成电路设备比如是中央处理单元(CPU)、微控制器、微处理器、和/或其他物理硬件处理器电路。处理器电路510可以执行在计算机可读介质中存储的程序代码,诸如一个或多个应用514的程序代码、操作系统512、存储在存储器520(是存储器204的示例)中的任何程序代码等。操作系统512可以控制组件502的分配和使用、以及对一个或多个应用514(也称为应用、“apps”等)的支持。应用514可以包括常见的移动计算应用(例如,电子邮件应用、日历、联系人管理器、网页浏览器、消息传送应用)和任何其他的计算应用(例如,文字处理应用、地图应用、媒体播放器应用)。安全处理器核202可以被通信地耦合到处理器电路510。
如图所示,移动设备500可以包括存储器520。存储器520可以包括不可移除存储器522和/或可移除存储器524。不可移除存储器522可以包括RAM、ROM、闪存、硬盘或其他熟知的存储器存储技术。可移除存储器524可以包括闪存或用户识别模块(SIM)卡(在GSM通信系统中是熟知的)、或其他熟知的存储器存储技术(诸如“智能卡”)。存储器520可以被用于存储用于运行操作系统512和应用514的数据和/或代码。示例数据可包括网页、文本、图像、声音文件、视频数据、或其他数据集,它们经由一个或多个有线或无线网络要被发送到一个或多个网络服务器或其他设备和/或从一个或多个网络服务器或其他设备接收。存储器520可以被用于存储订户标识符(诸如国际移动订户身份(IMSI))和设备标识符(诸如国际移动设备标识符(IMEI)。这种标识符可以被传输到网络服务器以识别用户和设备。
若干程序可以被存储在存储器520中。这些程序包括操作系统512、一个或多个应用514、以及其他程序模块和程序数据。这种应例如,用或程序模块的示例可以包括用于实现上述系统和方法(包括参考图1至图4所描述的实施例)的计算机程序逻辑(例如,计算机程序代码或指令)。
移动设备500可以支持一个或多个输入设备530,诸如触摸屏532、麦克风534、相机536、物理键盘538和/或轨迹球540、以及一个或多个输出设备550(诸如扬声器552和显示器554)。
其他可能的输出设备(未示出)可以包括压电或其他触觉输出设备。有些设备可以提供多于一种的输入/输出功能。例如,触摸屏532和显示器554可以被组合在单个输入/输出设备中。输入设备530可以包括自然用户界面(NUI)。
如本领域所熟知的,(多个)无线调制解调器560可以被耦合到(多个)天线(未示出)并且可以支持处理器电路510和外部设备之间的双向通信。调制解调器560被一般地示出并且可以包括蜂窝调制解调器566,蜂窝调制解调器566用于与移动通信网络504和/或其他基于无线电的调制解调器(例如,蓝牙564和/或Wi-Fi562)通信。蜂窝调制解调器566可以被配置为根据任何合适的通信标准或技术(诸如GSM、3G、4G、5G等)使能进行电话呼叫(并且可选地传输数据)。无线调制解调器560中的至少一个通常被配置为与一个或多个蜂窝网络(诸如用于在单个蜂窝网络内进行数据和语音通信的GSM网络),在蜂窝网络之间、或在移动设备与公共交换电话网络(PSTN)之间通信。
移动设备500还可以包括至少一个输入/输出端口580、电源582、卫星导航系统接收器584(诸如全球定位系统(GPS)接收器)、加速计586和/或物理连接器560(可以是USB端口、IEEE 1394(FireWire)端口和/或RS-232端口)。本领域技术人员将认识到,所图示的组件502不是必需的或穷尽的,因为可以不存在任何组件而是可以附加地存在其他组件。
图6描绘了可以在其中实现实施例的计算设备600的示例性实现,计算设备600包括安全处理器106、CPU核104A-104D、存储器204、安全处理器核202、密码引擎206、访问强制逻辑210、熔断器控制器212、熔断器阵列214、和/或其中描述的每个组件,以及流程图300和/或400。本文提供的对计算设备600的描述是为了说明而提供的,并且其并不旨在进行限制。(多个)相关领域中的技术人员会知道,实施例可以在更多类型的计算机系统中被实现。
如图6中所示,计算设备600包括一个或多个处理器(称为处理器电路602)、系统存储器604、以及总线606,总线606将包括系统存储器604在内的各种系统组件耦合到处理器电路602。处理器电路602是电和/或在一个或多个物理硬件电路设备元件和/或集成电路设备(半导体材料芯片或管芯)中实现的光学电路,如中央处理单元(CPU)、微控制器、微处理器和/或其他物理硬件处理器电路。处理器电路602可以执行在计算机可读介质中存储的程序代码,诸如操作系统630的程序代码、应用程序632、其他程序634等。总线606表示数种类型的总线结构中的任意一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种各样总线架构中的任何一种的处理器或本地总线。系统存储器604包括只读存储器(ROM)608(是存储器204的示例)和随机存取存储器(RAM)610。基本输入/输出系统612(BIOS)被存储在ROM 608中。CPU核104A-104D可以被包括在处理器电路602中。安全处理器106可以经由总线606被通信地耦合到处理器电路602。
计算设备600还具有以下驱动器中的一个或多个:用于从硬盘读取和向硬盘写入的硬盘驱动器614、用于从可移除磁盘618读取或向可移除磁盘618写入的磁盘驱动器616、以及用于从可移除光盘622读取或向可移除光盘622写入的光盘驱动器620(诸如CD ROM、DVD ROM或其他光学介质)。硬盘驱动器614、磁盘驱动器616和光盘驱动器620分别通过硬盘驱动器接口624、磁盘驱动器接口626和光盘驱动器接口628被连接到总线606。驱动器及其关联的计算机可读介质为计算机提供计算机可读指令、数据结构、程序模块、以及其他数据的非易失性存储。尽管描述了硬盘、可移除磁盘和可移除光盘,但是也可以使用其他类型的基于硬件的计算机可读存储介质来存储数据,诸如闪存卡、数字视频盘、RAM、ROM、以及其他硬件存储介质。
若干程序模块可以被存储在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作系统630、一个或多个应用程序632、其他程序634、以及程序数据636。例如,应用程序632或其他程序634可以包括用于实现上述系统(包括参考图1-图4描述的实施例)的计算机程序逻辑(例如,计算机程序代码或指令)。
用户可以通过输入设备(诸如键盘638和定点设备640)将命令和信息输入到计算设备600中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、卫星天线、扫描仪、触摸屏和/或触摸板、接收语音输入的语音识别系统、接收手势输入的手势识别系统等。通过耦合到总线606的串行端口接口642,这些和其他输入设备常常被连接到处理器电路602,但也可以通过诸如并行端口、游戏端口或通用串行总线(USB)的其他接口进行连接。
显示屏644还经由诸如视频适配器646之类的接口被连接到总线606。显示屏644可以在计算设备600的外部,或者被并入计算设备600中。显示屏644可以显示信息,并且可以作为用户界面来接收用户命令和/或其他信息(例如,通过触摸、手指手势、虚拟键盘等)。除了显示屏644之外,计算设备600还可以包括其他的外围输出设备(未示出),诸如扬声器和打印机。
计算设备600通过适配器或网络接口650、调制解调器652、或用于通过网络建立通信的其他部件而被连接到网络648(例如,互联网)。调制解调器652(可以是内部的或外部的)可以经由串行端口接口642被连接到总线606,如图6中所示,或者可以使用另一种接口类型(包括并行接口)被连接到总线606。
如本文所使用的,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”通常被用于指代物理硬件介质,诸如与硬盘驱动器614相关联的硬盘、可移除磁盘618、可移除光盘622、其他物理硬件介质(诸如RAM、ROM)、闪存卡、数字视频盘、zip盘、MEM、基于纳米技术的存储设备、以及其他类型的物理/有形硬件存储介质(包括图6的系统存储器604)。这种计算机可读存储介质与有区别且与通信介质不重叠(不包括通信介质)。通常,通信介质将计算机可读指令、数据结构、程序模块或诸如载波之类的调制数据信号中的其他数据具体化。术语“调制数据信号”指这样一种信号,其具有以对信号中的信息进行编码的方式来设置或改变的一个或多个特性。作为示例而非限制,通信介质包括无线介质(诸如声学、RF、红外和其他无线介质)和有线介质。实施例还涉及这种通信介质。
如上所提到的,计算机程序和模块(包括应用程序632和其他程序634)可以被存储在硬盘、磁盘、光盘、ROM、RAM或其他硬件存储介质上。这种计算机程序还可以经由网络接口650、串行端口接口652或任何其他接口类型来接收。当由应用来执行或加载时,这种计算机程序使计算设备600能够实现本文所讨论实施例的特征。因此,这种计算机程序表示计算设备600的控制器。
实施例还涉及一种包括存储在任何计算机可读介质上的计算机代码或指令的计算机程序产品。这种计算机程序产品包括硬盘驱动器、光盘驱动器、存储设备封装、便携式存储棒、存储器卡、以及其他类型的物理存储硬件。
四、附加的示例性实施例
本文描述了一种系统。该系统包括:至少一个处理器电路;第一熔断器集,其存储与第一实体相关联的第一公钥;第二熔断器集;以及至少一个存储器,其存储被配置为由至少一个处理器电路执行的第一固件,第一固件的执行使至少一个处理器电路:在系统的引导会话期间:确定在引导会话期间加载的第二固件是否符合由第一固件指定的至少一个策略规则;至少基于确定第二固件符合至少一个策略规则,执行第二固件;以及至少基于确定第二固件不符合至少一个策略规则,执行针对第二固件的缓解。
在该系统的实施例中,至少一个策略规则包括以下至少一项:第一策略规则,其指定第二固件的有效版本号;第二策略规则,其指定第二固件的有效哈希;或者第三策略规则,其指定第二固件的有效数字签名。
在该系统的实施例中,至少一个处理器被配置为通过以下来执行缓解:阻止第二固件的执行。
在该系统的实施例中,至少一个处理器被配置为通过以来执行缓解:记录指示第二固件不符合的事件;以及执行第二固件。
在该系统的实施例中,第一固件包括应用编程接口,该应用编程接口被配置为从操作系统接收针对至少一个策略规则的策略参数。
在该系统的实施例中,操作系统在多个中央处理电路核的中央处理电路上执行。
在该系统的实施例中,处理电路在与多个中央处理电路核相同的管芯上被实现。
本文还描述了由计算设备的处理器电路实现的方法。该方法包括:在计算设备的引导会话期间:确定在引导会话期间加载的第一固件是否符合由在引导会话期间加载的第二固件指定的至少一个策略规则;至少基于确定第一固件符合至少一个策略规则,执行第一固件;以及至少基于确定第一固件不符合至少一个策略规则,执行针对第一固件的缓解。
在该方法的实施例中,至少一个策略规则包括以下至少一项:第一策略规则,其指定第一固件的有效版本号;第二策略规则,其指定第一固件的有效哈希;或者第三策略规则,其指定第一固件的有效数字签名。
在该方法的实施例中,所述执行缓解包括:阻止第一固件的执行。
在该方法的实施例中,所述执行缓解包括:记录指示第一固件不符合的事件;以及执行第一固件。
在该方法的实施例中,第二固件包括应用编程接口,该应用编程接口被配置为从操作系统接收至少一个策略规则的策略参数。
在该方法的实施例中,操作系统在多个中央处理电路核的中央处理电路上执行。
在该方法的实施例中,处理电路在与多个中央处理电路核相同的管芯上被实现。
本文还描述了一种其上记录有程序指令的计算机可读存储介质,当由计算设备的处理器执行时,该程序指令执行方法。该方法包括:在计算设备的引导会话期间:确定在引导会话期间加载的第一固件是否符合由在引导会话期间加载的第二固件指定的至少一个策略规则;至少基于确定第一固件符合至少一个策略规则,执行第一固件;以及至少基于确定第一固件不符合至少一个策略规则,执行针对第一固件的缓解。
在计算机可读存储介质的实施例中,至少一个策略规则包括以下至少一项:第一策略规则,其指定第一固件的有效版本号;第二策略规则,其指定第一固件的有效哈希;或者第三策略规则,其指定第一固件的有效数字签名。
在计算机可读存储介质的实施例中,所述执行缓解包括:阻止第一固件的执行。
在计算机可读存储介质的实施例中,所述执行缓解包括:记录指示第一固件不符合的事件;以及执行第一固件。
在计算机可读存储介质的实施例中,第二固件包括应用编程接口,该应用编程接口被配置为从操作系统接收针对至少一个策略规则的策略参数。
在计算机可读存储介质的实施例中,操作系统在多个中央处理电路核的中央处理电路上执行。
五、结论
尽管上面已经描述了各种实施例,但是应当理解,它们仅通过示例而非限制的方式被呈现。对相关领域的技术人员来说显而易见的是,在不脱离实施例的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。因此,实施例的广度和范围不应受到任何上述示例性实施例的限制,而应仅根据所附权利要求及其等同物进行限定。
Claims (15)
1.一种系统,包括:
至少一个处理器电路;
至少一个存储器,所述至少一个存储器存储第一固件,所述第一固件被配置为由所述至少一个处理器电路执行,所述第一固件的所述执行使所述至少一个处理器电路:
在所述系统的引导会话期间:
确定在所述引导会话期间加载的第二固件是否符合由所述第一固件指定的至少一个策略规则;
至少基于确定所述第二固件符合所述至少一个策略规则,执行所述第二固件;以及
至少基于确定所述第二固件不符合所述至少一个策略规则,执行针对所述第二固件的缓解。
2.根据权利要求1所述的系统,其中所述至少一个策略规则包括以下至少一项:
第一策略规则,所述第一策略规则指定所述第二固件的有效版本号;
第二策略规则,所述第二策略规则指定所述第二固件的有效哈希;或者
第三策略规则,所述第三策略规则指定所述第二固件的有效数字签名。
3.根据权利要求1所述的系统,其中所述至少一个处理器被配置为通过以下来执行所述缓解:
阻止所述第二固件的所述执行。
4.根据权利要求1所述的系统,其中所述至少一个处理器被配置为通过以下来执行所述缓解:
记录指示所述第二固件不符合的事件;以及
执行所述第二固件。
5.根据权利要求1所述的系统,其中所述第二固件包括应用编程接口,所述应用编程接口被配置为从操作系统接收针对所述至少一个策略规则的策略参数。
6.根据权利要求5所述的系统,其中所述操作系统在多个中央处理核的中央处理电路上执行。
7.根据权利要求6所述的系统,其中所述处理电路在与所述多个中央处理电路核相同的管芯上被实现。
8.一种由计算设备的处理器电路实现的方法,包括:
在所述计算设备的引导会话期间:
确定在所述引导会话期间加载的第一固件是否符合由在所述引导会话期间加载的第二固件指定的至少一个策略规则;
至少基于确定所述第一固件符合所述至少一个策略规则,执行所述第一固件;以及
至少基于确定所述第一固件不符合所述至少一个策略规则,执行针对所述第一固件的缓解。
9.根据权利要求8所述的方法,其中所述至少一个策略规则包括以下至少一项:
第一策略规则,所述第一策略规则指定所述第一固件的有效版本号;
第二策略规则,所述第二策略规则指定所述第一固件的有效哈希;或者
第三策略规则,所述第三策略规则指定所述第一固件的有效数字签名。
10.根据权利要求8所述的方法,其中执行所述缓解包括:
阻止所述第一固件的所述执行。
11.根据权利要求8所述的方法,其中执行所述缓解包括:
记录指示所述第一固件不符合的事件;以及
执行所述第一固件。
12.根据权利要求8所述的方法,其中所述第一固件包括应用编程接口,所述应用编程接口被配置为从操作系统接收针对所述至少一个策略规则的策略参数。
13.根据权利要求12所述的方法,其中所述操作系统在多个中央处理电路核的中央处理电路上执行。
14.根据权利要求13所述的方法,其中所述处理电路在与所述多个中央处理电路核相同的管芯上被实现。
15.一种计算机可读存储介质,所述计算机可读存储介质上记录有程序指令,所述程序指令在由计算设备的处理器执行时执行根据权利要求8-14中任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/337,251 | 2021-06-02 | ||
US17/337,251 US11853428B2 (en) | 2021-06-02 | 2021-06-02 | Firmware policy enforcement via a security processor |
PCT/US2022/027967 WO2022256128A1 (en) | 2021-06-02 | 2022-05-06 | Firmware policy enforcement via a security processor |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117413267A true CN117413267A (zh) | 2024-01-16 |
Family
ID=81975111
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280039415.2A Pending CN117413267A (zh) | 2021-06-02 | 2022-05-06 | 经由安全处理器的固件策略强制执行 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11853428B2 (zh) |
EP (1) | EP4348469A1 (zh) |
CN (1) | CN117413267A (zh) |
WO (1) | WO2022256128A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12069169B2 (en) * | 2022-01-31 | 2024-08-20 | Hewlett Packard Enterprise Development Lp | Managing use of management controller secrets based on firmware ownership history |
US20240028734A1 (en) * | 2022-07-21 | 2024-01-25 | Dell Products L.P. | Automated update of a customized secure boot policy |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8417962B2 (en) | 2010-06-11 | 2013-04-09 | Microsoft Corporation | Device booting with an initial protection component |
US10242197B2 (en) * | 2016-09-23 | 2019-03-26 | Intel Corporation | Methods and apparatus to use a security coprocessor for firmware protection |
US10880099B2 (en) | 2018-05-23 | 2020-12-29 | Wipro Limited | Method and system for protecting computing devices from malwares |
WO2019231445A1 (en) | 2018-05-31 | 2019-12-05 | Hewlett-Packard Development Company, L.P. | Trusted sequence for computing devices via hashes |
US11252193B2 (en) | 2019-04-26 | 2022-02-15 | Microsoft Technology Licensing, Llc | Attestation service for enforcing payload security policies in a data center |
EP3877883B1 (en) * | 2019-06-10 | 2024-08-07 | Google LLC | Secure verification of firmware |
EP3933630A1 (en) * | 2020-06-30 | 2022-01-05 | Nxp B.V. | Method and apparatus to adjust system security policies based on system state |
-
2021
- 2021-06-02 US US17/337,251 patent/US11853428B2/en active Active
-
2022
- 2022-05-06 EP EP22728710.9A patent/EP4348469A1/en active Pending
- 2022-05-06 WO PCT/US2022/027967 patent/WO2022256128A1/en active Application Filing
- 2022-05-06 CN CN202280039415.2A patent/CN117413267A/zh active Pending
-
2023
- 2023-11-14 US US18/508,959 patent/US20240211601A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240211601A1 (en) | 2024-06-27 |
US11853428B2 (en) | 2023-12-26 |
EP4348469A1 (en) | 2024-04-10 |
WO2022256128A1 (en) | 2022-12-08 |
US20220391510A1 (en) | 2022-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11893118B2 (en) | Transfer of ownership of a computing device via a security processor | |
JP4874288B2 (ja) | モバイル機器およびユーザー・モジュールへのデータの格納およびアクセス | |
KR101061332B1 (ko) | 메모리 카드의 이용을 제어하기 위한 장치 및 방법 | |
US20240211601A1 (en) | Firmware policy enforcement via a security processor | |
US20140075502A1 (en) | Resource management of execution environments | |
US9830457B2 (en) | Unified extensible firmware interface (UEFI) credential-based access of hardware resources | |
TW200941278A (en) | Secure update of boot image without knowledge of secure key | |
JP2013065340A (ja) | リトリーブ可能なトークン(例えば、スマートカード)内の独立した実行環境におけるアプリケーション間のセキュリティで保護されたリソース共有 | |
US11347862B2 (en) | Credential management for an information handling system | |
EP2175393A1 (en) | Data exchange between protected memory cards | |
US10805802B1 (en) | NFC-enhanced firmware security | |
US8359635B2 (en) | System and method for dynamic creation of privileges to secure system services | |
CN111245620B (zh) | 一种在终端中的移动安全应用架构及其构建方法 | |
EP3586234B1 (en) | Methods and apparatus for controlling access to secure computing resources | |
CN112613011B (zh) | U盘系统认证方法、装置、电子设备及存储介质 | |
KR101297527B1 (ko) | 회로 카드 데이터 보호 | |
JP4507569B2 (ja) | 情報処理装置および情報処理方法、プログラム、並びに記録媒体 | |
US8621557B2 (en) | Information processing system judging whether manipulation is possible or not based on access control policy and method of operation thereof | |
KR101391508B1 (ko) | 저장된 파일을 보호하는 단말기 및 방법 | |
CN115859308A (zh) | 一种数据处理方法、装置及设备 | |
US20080244163A1 (en) | Portable data access device | |
KR101264305B1 (ko) | 파일 보호 장치, 파일 보호 방법, 및 컴퓨터 판독가능 기록 매체 | |
CN117676582A (zh) | 通信方法、装置、计算机设备和存储介质 | |
CN112512034A (zh) | 终端快速加载用户识别卡文件方法、装置、计算机设备 | |
KR20150042024A (ko) | 메모리파일시스템과 파일 고유값을 사용한 악성코드 배포방지 방법 |
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 |