CN117632279A - 安全启动过程 - Google Patents
安全启动过程 Download PDFInfo
- Publication number
- CN117632279A CN117632279A CN202310929401.4A CN202310929401A CN117632279A CN 117632279 A CN117632279 A CN 117632279A CN 202310929401 A CN202310929401 A CN 202310929401A CN 117632279 A CN117632279 A CN 117632279A
- Authority
- CN
- China
- Prior art keywords
- subsystem
- firmware
- boot
- response
- register
- 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
- 238000000034 method Methods 0.000 title claims abstract description 175
- 230000008569 process Effects 0.000 claims abstract description 147
- 230000015654 memory Effects 0.000 claims description 89
- 230000004044 response Effects 0.000 claims description 74
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000012795 verification Methods 0.000 abstract description 9
- 238000011084 recovery Methods 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000251468 Actinopterygii Species 0.000 description 1
- 208000032369 Primary transmission Diseases 0.000 description 1
- 241001627955 Tetraodon lineatus Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 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/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- 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
- 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)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开大体上涉及安全启动过程。除提供与安全启动过程相关联的启动固件的密码验证之外,还可提供对所述启动过程的保护。当正在验证所述启动固件时,可将开放子系统置于暂停状态,在所述暂停状态期间所述开放子系统被阻止执行所述启动过程。随后,当所述启动固件被验证时,可将所述开放子系统置于恢复状态以进一步执行所述启动过程。即使所述启动固件被验证,所述开放子系统仍然被阻止执行所述启动过程,除非再次将所述开放子系统置于所述恢复状态。
Description
技术领域
本公开大体上涉及半导体存储器及方法,且更特定来说,涉及用于安全启动过程的设备、系统及方法。
背景技术
存储器装置通常被提供为计算机或其它电子系统中的内部半导体集成电路。存在许多不同类型的存储器,包含易失性及非易失性存储器。易失性存储器可能需要电力来维持其数据(例如,主机数据、错误数据等),且包含随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、同步动态随机存取存储器(SDRAM)及晶闸管随机存取存储器(TRAM)等等。非易失性存储器可通过在不被供电时保留经存储数据来提供持久数据,且可包含NAND快闪存储器、NOR快闪存储器、铁电随机存取存储器(FeRAM)及电阻可变存储器,例如相变随机存取存储器(PCRAM)、电阻式随机存取存储器(RRAM)及磁阻式随机存取存储器(MRAM),例如自旋力矩转移随机存取存储器(STT RAM)等等。
存储器装置可耦合到主机(例如,主机计算装置)以存储数据、命令及/或指令以供主机在计算机或电子系统操作时使用。例如,可在计算或其它电子系统的操作期间在主机与(若干)存储器装置之间传送数据、命令及/或指令。控制器可用来管理数据、命令及/或指令在主机与存储器装置之间的传送。
发明内容
本公开的实施例提供一种用于安全启动过程的方法,其包括:从第一子系统且在第二子系统处接收用以验证待与启动过程相关联地执行的固件的请求;将第一信号发送到所述第一子系统以将所述第一子系统置于第一状态以阻止所述第一子系统进一步执行所述启动过程;及响应于验证所述固件,将第二信号发送到所述第一子系统以将所述第一子系统置于第二状态,这允许所述第一子系统执行所述固件。
本公开的另一实施例提供一种用于安全启动过程的设备,其包括:处理器;及存储器,其耦合到所述处理器且经配置用于存储可由所述处理器执行的指令,其中所述指令在由所述处理器执行时致使所述处理器响应于从第一子系统接收到用以验证待在启动过程期间执行的固件的请求而进行以下操作:将所述第一子系统的寄存器设置为第一值以阻止所述第一子系统进一步执行所述启动过程;及响应于验证所述固件,将所述第一子系统的所述寄存器设置为第二值以允许所述第一子系统进一步执行所述启动过程。
本公开的又一实施例提供一种用于安全启动过程的方法,其包括:从第一子系统且在第二子系统处接收用以验证启动加载程序的请求;其中所述启动加载程序响应于启动过程的起始而被加载到所述第一子系统;将第一信号发送到所述第一子系统以将所述第一子系统置于第一状态以在所述第一子系统处于所述第一状态时阻止所述第一子系统进一步执行所述启动过程;及响应于所述启动加载程序被验证,将第二信号发送到所述第一子系统以将所述第一子系统置于第二状态以允许所述第一子系统进一步执行所述启动过程。
本公开的再一实施例提供一种用于安全启动过程的系统,其包括:第一子系统,其包括:存储器,其经配置用于第一启动加载程序;及寄存器;以及第二子系统,其通信地耦合到所述第一子系统;其中所述第一子系统经配置以:响应于用以起始启动过程的请求,执行所述第一启动加载程序以将第二启动加载程序加载到所述第一子系统;响应于所述第二启动加载程序被加载到所述第一子系统而将用以验证所述第二启动加载程序的请求发送到所述第二子系统;其中所述第二子系统经配置以响应于从所述第一子系统接收到用以验证所述第二启动加载程序的所述请求而执行以下操作:将所述寄存器设置为第一值以将所述第一子系统置于第一状态以阻止所述第一子系统进一步执行所述启动过程及执行所述第二启动加载程序;及响应于验证所述第二启动加载程序,将所述寄存器设置为第二值以将所述第一子系统置于第二状态以允许所述第一子系统进一步执行所述启动过程及执行所述第二启动加载程序。
附图说明
图1是根据本公开的数个实施例的用于执行安全启动过程的计算系统的功能框图。
图2是根据本公开的数个实施例的包含开放子系统、安全子系统及非易失性存储器的经配置以执行安全启动过程的管理单元的功能框图。
图3是说明根据本公开的数个实施例的安全启动过程的执行的序列图。
图4是根据本公开的数个实施例的用于执行安全启动过程的方法的流程图。
图5是根据本公开的数个实施例的用于执行安全启动过程的方法的流程图。
具体实施方式
描述与安全启动过程相关的系统、设备及方法。响应于计算系统的起动,例如当计算系统通电或重启时,启动过程起始。在启动过程期间,执行构建到计算系统中的集成启动程序(例如,固件)以初始化计算系统,运行自测试,且识别计算系统的硬件/软件资源。此外,启动程序还可执行操作以配置硬件/软件资源以进一步加载及运行计算系统的操作系统。
启动程序(例如,代码)可能需要在启动过程期间被执行之前进行验证。由于专用于验证过程的安全组件的硬件/软件资源通常是有限的,所以安全组件的操作可能不完全独立于计算系统的可能相对容易由攻击者存取的其它组件。攻击者可利用这一点,所述攻击者可选择接管对其它组件而不是安全组件的控制,以最终在启动过程的运行时间期间接管对计算系统的控制。例如,当攻击者获得安全启动代码(其可能具有未知的漏洞)及/或对串行外围接口(SPI)NOR包(在其处存储启动程序)的存取时,这种控制可被攻击者获得。当对计算系统的控制非期望地被攻击者获得时,攻击者可指示计算系统绕过(例如,忽略)验证过程且指示计算系统加载及执行由攻击者实施的固件(例如,恶意固件)。运行时攻击可在系统操作期间的各种时间执行,这可包含在安全启动过程执行期间及/或在所述系统内的不同位置处(其可包含在被视为信任链(CoT)或信任根(RoT)的位置处)执行。如本文中所使用,术语“信任链(CoT)”是指硬件(例如,计算系统)及/或软件的组件,所述组件通过要求从端点一直到信任根(例如,证书)验证每一组件而被确保具有一定信任(例如,安全性)级别。如本文中所使用,术语“信任根(RoT)”是硬件或软件的安全来源。例如,RoT可包含可用于硬件或软件的密码操作(例如,验证)及安全启动过程的密码密钥(一或多个密钥)。
本文中所描述的实施例提供针对运行时攻击的额外保护,所述额外保护进一步确保启动过程不被进一步执行(performed)(例如,执行(executed)),除非验证过程被执行。在数个实施例中,开放子系统(其加载/执行启动固件的相当大的一部分)可包含仅可由安全子系统(其验证加载到开放子系统的启动固件)存取且可将开放子系统置于特定操作状态(在所述特定操作状态下开放子系统被阻止进一步执行启动过程(例如,被阻止执行与启动过程相关联的固件))的寄存器。通过维持特定操作状态直到验证过程成功地完成,安全子系统可确保即使攻击者指示开放子系统绕过验证过程,也不会在开放子系统处执行其它(例如,未经验证)固件。
在一些实施例中,存储器系统可为符合计算快速链路(CXL)的存储器系统。主机接口可利用CXL协议来管理且经由经配置用于外围组件互连快速(PCIe)协议的接口耦合到主机。CXL是经设计以加快下一代数据中心性能的高速中央处理单元(CPU)到装置及CPU到存储器的互连件。CXL技术维持CPU存储器空间与所附接装置上的存储器之间的存储器一致性,这允许资源共享以实现更高的性能、降低的软件栈复杂性及更低的总体系统成本。CXL经设计为用于高速通信的行业开放标准接口,因为加速器越来越多地用来补充CPU以支持例如人工智能及机器学习等的新兴应用。CXL技术构建在PCIe基础结构上,从而利用PCIe物理及电接口来在例如输入/输出(I/O)协议、存储器协议(例如,最初允许主机与加速器共享存储器)及一致性接口等的领域中提供高级协议。
如本文中所使用,单数形式“一”、“一个”及“所述”包含单数及复数指涉物,除非上下文另有明确地规定。此外,单词“可”贯穿本申请以许可性意义(即,有可能、能够)使用,而非强制性意义(即,必须)使用。术语“包含”及其派生词表示“包含但不限于”。术语“耦合”表示直接或间接连接。应理解,数据可通过电子信号(例如,电流、电压等)传输、接收或交换,且短语“指示[数据]的信号”表示在物理媒体中传输、接收或交换的数据本身。
本文中的图遵循编号惯例,其中首位或前几位数字对应于附图图号且其余数字标识附图中的元件或组件。不同图之间的类似元件或组件可通过使用类似数字来标识。例如,110可指代图1中的元件“10”,且类似元件可在图2中被标注为210。图内的类似元件可用连字符及额外数字或字母表示。例如,参见图1中的元件102-1、102-2、102-M。此类类似元件通常可在没有连字符及额外数字或字母的情况下引用。例如,元件102-1、102-2、102-M可被统称为102。如本文中所使用,特别是关于附图中的附图标记的标志符“M”及“N”指示可包含数个如此指定的特定特征。将明白,可添加、交换及/或消除本文在各种实施例中所展示的元件以便提供本公开的数个额外实施例。另外,将明白,图中所提供的元件的比例及相对尺度意在说明本发明的某些实施例且不应以限制性意义进行理解。
图1是根据本公开的数个实施例的包含存储器控制器103的用于执行安全启动过程的计算系统100的功能框图。存储器控制器103可包含前端部分104、中央控制器部分105及后端部分106。计算系统100可包含耦合到存储器控制器103的主机101及存储器装置109-1、…、109-N。
前端部分104包含用以通过输入/输出(I/O)通路102-1、102-2、…、102-M将存储器控制器103耦合到主机101的接口及接口管理电路系统,以及用以管理I/O通路102的电路系统。可存在任何数量的I/O通路102,例如八个、十六个或另一数量的I/O通路102。在一些实施例中,I/O通路102可经配置为单个端口。在至少一个实施例中,存储器控制器103与主机101之间的接口可为根据CXL协议操作的PCIe物理及电接口。
中央控制器部分105可包含及/或被称为数据管理电路系统。中央控制器部分105可响应于从主机101接收到请求而控制存储器操作的执行。存储器操作的实例包含从存储器装置109读取数据的读取操作或将数据写入到存储器装置109的写入操作。
中央控制器部分105可进一步对存储在存储器装置109中的数据提供保护,例如芯片删除保护,其中即使组成芯片(例如存储器装置109)受损,存储器系统也可正常工作;由此,避免所述芯片中的一者成为存储器系统的单点故障(SPOF)的情况。芯片删除保护可通过各种错误校正码(ECC)方案(包含“独立磁盘冗余阵列”(RAID)方案、低功率芯片删除(LPCK)方案等)来提供,其允许通过读取计算系统100的所有组成芯片(例如,存储器装置109)来进行受损芯片的数据恢复。针对任何单个存储器装置109(芯片)故障及/或来自单个存储器芯片的任何部分的多位错误的芯片删除保护可跨存储器装置109的子集或跨所有存储器装置109共同实施。
后端部分106可包含媒体控制器及将存储器控制器103耦合到存储器装置109的物理(PHY)层。如本文中所使用,术语“PHY层”通常是指计算系统的开放系统互连(OSI)模型中的物理层。PHY层可为OSI模型的第一(例如,最低)层且可用来通过物理数据传输媒体传送数据。在一些实施例中,物理数据传输媒体可包含通道108-1、…、108-N。通道108可包含各种类型的数据总线,例如十六引脚数据总线及两引脚数据掩码反转(DMI)总线,以及其它可能的总线。
存储器装置109的实例是根据例如低功率双倍数据速率(LPDDRx)的协议操作的动态随机存取存储器(DRAM),其在本文中可被称为LPDDRx DRAM装置、LPDDRx存储器等。LPDDRx中的“x”是指数代所述协议中的任一者(例如,LPDDR5)。在至少一个实施例中,存储器装置109-1中的至少一者被操作为启用低功率特征的LPDDRx DRAM装置,且存储器装置109-N中的至少一者被操作为停用至少一个低功率特征的LPDDRx DRAM装置。在一些实施例中,尽管存储器装置109是LPDDRx存储器装置,但存储器装置109不包含经配置以为存储器装置109提供低功率功能性的电路系统,例如动态电压频率缩放核心(DVFSC)、亚阈值电流降低电路(SCRC)或其它低功率功能性提供电路系统。提供没有此电路系统的LPDDRx存储器装置109可有利地降低LPDDRx存储器装置109的成本、大小及/或复杂性。举例来说,具有减少的低功率功能性提供电路系统的LPDDRx存储器装置109可用于除移动应用以外的应用(例如,如果存储器并不意在用于移动应用中,那么可为了降低生产存储器的成本而牺牲一些或所有低功率功能性)。
存储器装置109的另一实例是非易失性存储器,例如铁电随机存取存储器(FeRAM)等等。存储器控制器103可管理DRAM存储器装置109及FeRAM存储器装置109。此外,在一些实施例中,代替管理DRAM存储器装置109及FeRAM存储器装置109两者的是,存储器控制器103可经配置以仅管理例如DRAM存储器装置109的易失性存储器装置,或仅管理FeRAM存储器装置109。
在一些实施例中,存储器控制器103可包含用以初始化、配置及/或监测存储器控制器103的特性的管理单元110。此外,管理单元110可用来执行非存储器功能。此类实例可包含日志记录、错误报告、主机对发现的支持、安全协议管理、安全功能等。在一些实施例中,管理单元110可包含用以管理带外数据及/或命令的I/O总线,用以执行与初始化、配置及/或监测存储器控制器的特性相关联的一或多个指令的管理单元控制器,以及用以存储与初始化、配置及/或监测存储器控制器103的特性相关联的数据的管理单元存储器。如本文中所使用,术语“带外数据及/或命令”通常是指通过与网络的主传输媒体不同的传输媒体传送的数据及/或命令。例如,带外数据及/或命令可为使用与用来在网络内传送数据的传输媒体不同的传输媒体传送到网络的数据及/或命令。
此外,如图1中所说明,管理单元110可包含经配置以响应于启动请求(例如,来自主机101)而执行启动过程的开放子系统111及安全子系统116。开放子系统111及安全子系统116可结合各种固件接口(例如统一可扩展固件接口(UEFI)、高级配置及电源接口(ACPI)、基本输入输出系统(BIOS)接口及/或定制应用程序编程接口(API)等等)操作。
开放子系统111可经配置用于(例如,从图2中所说明的非易失性存储器221)存储/加载启动固件且执行专用于初始化硬件资源、加载所述资源的驱动程序及/或执行如针对启动过程定义的操作的启动固件。如本文中所使用,术语“启动固件”是从计算系统被接通的时间开始控制计算系统直到主要操作系统已接管对机器的控制为止的计算机可执行代码。例如,可执行启动固件以加载及/或验证其它启动固件直到主要操作系统已接管对计算系统100的控制为止。
安全子系统116可经配置用于存储计算机可执行指令(例如,代码)以密码验证待加载到开放子系统111及/或安全子系统116/在开放子系统111及/或安全子系统116处执行的启动固件。在一些实施例中,安全子系统116可进一步加载/执行专用于验证从存储器221加载的其它启动固件的启动固件。安全子系统116可根据各种密码算法(例如里维斯-沙米尔-阿德尔曼(RSA)、椭圆曲线密码学(例如椭圆曲线数字签名算法(ECDSA)、椭圆曲线迪菲-赫尔曼(ECDH)、爱德华兹曲线数字签名算法(EdDSA))、帕耶密码系统、克莱姆-舒普密码系统、YAK认证密钥协商协议、高级加密标准(AES)、双鱼算法、河豚算法、国际数据加密算法(IDEA)、MD5(MD5消息摘要算法)、基于散列的消息认证码(HMAC)或其任何组合)对启动固件执行验证过程。
图2是根据本公开的数个实施例的包含开放子系统211、安全子系统216及非易失性存储器221的经配置以执行安全启动过程的系统的一部分的功能框图。在这个实例中,开放子系统211及安全子系统216是管理单元210的部分,所述管理单元210可为例如图1中所说明的110的管理单元;然而,实施例不限于此。例如,子系统211及216中的一或两者可不位于存储器系统的控制器上。
如图2中所说明,开放子系统211可包含存储器212、处理器213、寄存器214及只读存储器(ROM)215。开放子系统211可由另一核准子系统(例如安全子系统216)存取。在一些实施例中,处理器213可包含CPU。
ROM 215经配置用于存储指令(不可变代码)(例如第一阶段启动加载程序(FSBL)223)以执行启动过程。管理单元210在(例如,作为图1中所说明的存储器控制器103的部分)从制造商运送给客户(例如,终端用户、组织或服务提供商)时可已将FSBL 223存储在ROM215中。FSBL(例如,FSBL 223)是用以在启动过程期间首先将其它启动固件加载到开放子系统211及/或安全子系统216的基于ROM的启动固件。如本文中所使用,术语“启动过程”是指从暂停及/或断电状态初始化计算系统的过程。当FSBL 223被执行时,FSBL 223将其它启动固件(例如第二阶段启动加载程序(例如,SSBL 226))加载到存储器212(例如,致使其它启动固件被加载到存储器212)。在一些实施例中,启动过程可由例如管理单元110的复位或电力循环事件触发。管理单元110可能够在没有外部输入的情况下自行复位。
存储器212可经配置用于存储从例如非易失性存储器221加载的启动固件,例如开放固件222及/或SSBL 226。尽管实施例不限于此,但存储器212可为易失性存储器。
寄存器214的二进制值可用来指示例如开放子系统211在启动过程期间处于两种状态(例如,“1”或“0”)中的哪一者。作为实例,第一状态(例如,由二进制“1”所指示)可被称为开放子系统211的“恢复”状态,且可对应于其中开放子系统211被允许执行(或恢复执行)启动过程的状态,这可包含从非易失性存储器221及/或存储器212、217加载及/或执行启动固件。另一方面,第二状态(例如,由二进制“0”所指示)可被称为开放子系统211的“暂停”状态,且可对应于其中开放子系统211被阻止进一步执行启动过程的状态。例如,处于暂停状态的开放子系统211被阻止进一步执行加载到存储器212的启动加载程序及/或固件。当开放子系统211被置于暂停状态时,开放子系统211可保存当前状态(启动过程已被执行到什么程度)以便从刚好在开放子系统211被置于暂停状态之前的时间点开始恢复启动过程的执行,这可避免开放子系统211必须重启启动过程。寄存器214可独立于验证过程进行操作。例如,即使启动固件被验证,开放子系统211仍然可被阻止进一步执行启动过程,除非寄存器被具体地设置(例如,设置为“1”)以指示启动过程的恢复。安全子系统216可存取及设置寄存器214,而开放子系统211不可如此存取寄存器214。
如图2中所说明,安全子系统216可包含存储器217、处理器218、定时器219及ROM220。在一些实施例中,处理器218可包含CPU。
安全子系统216可经配置用于存储待与验证待在启动过程期间执行的固件相关联地使用的密码信息(例如,密码密钥,如公钥及/或私钥)。对存储在安全子系统中的密码信息的存取可受到限制/约束,除非存取来自安全子系统本身。密码信息可存储在存储器217及/或ROM 220中。
ROM 220可为不可变的非易失性存储器,其经配置用于存储可由处理器218执行以初始化安全子系统216及/或提供安全功能性的指令(例如,不可变代码),所述安全功能性例如密码验证加载到存储器(例如,替代地被称为“共享存储器”)、开放子系统211及/或安全子系统216的固件(例如,开放固件222、安全固件224及/或SSBL 226)。在一些实施例中,开放固件222可被加载到存储器225,所述存储器225可由开放子系统211及安全子系统216两者存取。
ROM 220可进一步经配置用于存储待与验证待在启动过程期间执行的启动固件(例如,SSBL 226、开放固件222及/或安全固件224)相关联地使用的密码信息(例如,密码密钥,如公钥及/或私钥)。在一些实施例中,密码信息可由制造商提供且在结合启动过程使用安全子系统的整个过程中是不可变的。
定时器219可指示某一时间段是否已经过去。所述时间段可充当时限,待由安全子系统216执行的验证过程需要在所述时限之前完成。例如,安全子系统216可在每次(例如,从开放子系统211)接收到验证请求时复位定时器219,使得定时器219从其被复位的时刻开始对所述时间段进行计数。当启动固件在由定时器219所指示的时限内被验证时,所述启动固件被认为“被验证”。如果启动固件在所述时限内未被验证(例如,在由定时器219所计数的时间段内未被验证),那么验证过程被视为失败且安全子系统216终止启动过程并可用日志记录所述失败,例如所述失败可被报告给主机101。在一些实施例中,定时器219可为看门狗定时器,其可包含用以从安全子系统216接收复位(“突跳”)信号的一个引脚及用以输出超时信号的另一引脚。定时器219可由处理器218控制。例如,处理器218可执行存储在ROM220中的指令以复位、启用及/或停用定时器219。
如本文中所描述,非易失性存储器221经配置为“启动扇区”且经配置用于存储启动固件。尽管实施例不限于此,但启动固件可包含开放固件222、安全固件224及第二阶段启动加载程序(SSBL)226。可执行SSBL 226以将安全固件224加载到存储器217且将开放固件222加载到存储器212,使得可分别/随后由开放子系统211及安全子系统216的处理器213及218执行安全固件224及开放固件222。安全固件224经设计以确保开放固件222的安全验证/执行。例如,安全固件224在被执行时在开放子系统211执行开放固件222之前验证开放固件222。如本文中所使用,术语“开放固件”是(例如,专有的或非专有的)启动固件,其可在各种类型的处理器及总线上使用以实施按预期操作存储器控制器(例如,如图1中所说明的存储器控制器100)所需的服务、协议及功能性。在实例中,在需要加载操作系统的情况下,开放固件可进一步执行操作(例如,读取及/或写入操作)以加载及运行计算系统的操作系统。在一些实施例中,非易失性存储器221可为例如经由SPI耦合到管理单元110的存储器。
如本文中进一步描述,SSBL 226、安全固件224及开放固件222可在启动过程期间以特定顺序被加载到存储器225或安全子系统216,且一旦被验证就可由安全子系统216执行。例如,它们可按SSBL 226、安全固件224及开放固件222的次序被加载到存储器212、217及/或225中。
启动过程可为多阶段过程,其中可在每一阶段中执行相应固件。可由安全子系统216进一步控制这个多阶段启动过程的进程。例如,在移动到下一阶段之前,安全子系统216可将开放子系统211置于特定操作状态(例如,暂停状态)以暂停启动过程及阻止开放子系统211进一步执行启动过程。当待在下一阶段执行的相应固件被安全子系统216验证时,安全子系统216可将开放子系统211重新置于不同操作状态(例如,恢复状态)以允许开放子系统211执行(继续执行)已被暂停(例如,被置于暂停状态)的启动过程。然而,如果固件未被验证及/或验证失败,那么安全子系统216可终止启动过程,而无需切换开放子系统的操作状态。
在非限制性实例中,设备(例如,图2及3中所说明的安全子系统216)可包含处理器(例如,图2中所说明的处理器218)。所述设备进一步包含耦合到处理器且经配置用于存储可由处理器执行的指令的存储器(例如,图2中所说明的ROM 220)。所述指令在由处理器执行时可致使处理器响应于从第一子系统(例如,图2及3中所说明的开放子系统211及311)接收到用于验证待在启动过程期间执行的固件(例如,分别在图2及3中所说明的SSBL 226及326、安全固件224及324以及开放固件222及322)的请求,将第一子系统的寄存器(例如,分别在图2及3中所说明的寄存器214)设置为第一值以阻止第一子系统进一步执行启动过程。所述指令可进一步致使处理器响应于验证固件而设置第一子系统的寄存器以允许第一子系统进一步执行启动过程。
在一些实施例中,所述设备可进一步包含指示特定时间段是否已经过去的定时器(例如,图2及3中所说明的定时器219及319)。在这个实例中,所述指令可致使处理器响应于固件在特定时间段内未被验证而设置第一子系统的寄存器以允许第一子系统进一步执行启动过程。
在一些实施例中,所述指令可致使处理器响应于固件在特定时间段内未被验证及/或验证失败(尽管特定时间段尚未到期)而终止启动过程。所述指令可进一步致使处理器用日志记录验证失败。在一些实施例中,所述指令可致使处理器响应于将第一子系统的寄存器设置为第一值而复位定时器。
图3是说明根据本公开的数个实施例的安全启动过程的执行的序列图330。第一阶段启动加载程序(FSBL)323、第二阶段启动加载程序(SSBL)326、开放固件322、ROM 320(图3中所展示的“安全ROM”)、安全固件324、定时器319及非易失性存储器(NVM)321分别类似于图2中所说明的FSBL 223、SSBL 226、开放固件222、ROM 220、安全固件224、定时器219及非易失性存储器221。
在331处,激活定时器319。在实例中,定时器319响应于启动过程的起始(例如,在331之前的某个时间点起始)而被激活。如在332处所展示,执行FSBL 323(其可存储在例如图2中所展示的开放子系统的ROM内)以将SSBL从NVM 321加载到存储器(例如,到开放子系统的本地存储器,例如图2中所展示的存储器212)。如在334处所展示,也执行FSBL 323以请求由安全子系统(例如,图2中所展示的安全子系统216)验证SSBL 326。例如,可通过执行存储在安全子系统的ROM 320(例如,图2中所展示的安全子系统216的ROM 220)中的指令来验证SSBL 326。
在336处,可将用以将寄存器(例如,寄存器214)设置为第一值(例如,“0”)的信号从安全子系统216发送到开放子系统211以将开放子系统211置于第一状态,在所述第一状态下开放子系统211可被阻止进一步执行启动过程及执行SSBL 326。此外,在338处,安全子系统216可将信号(例如,复位信号)发送到定时器319以复位定时器319。在340处,可响应于复位信号而复位定时器319以开始对特定(例如,预定)时间段进行计数。
在342处,可验证SSBL 326。一旦SSBL 326被验证,就可在344处将用以将寄存器设置为第二值(例如,“1”)的信号从安全子系统216发送到开放子系统211以将开放子系统211置于第二状态,在所述第二状态下开放子系统211被再次允许进一步执行启动过程及执行SSBL 326。
在346处,可响应于开放子系统被置于第二状态而执行SSBL 326。在348处,作为SSBL 326的执行的结果,可将安全固件324加载到安全子系统216(例如,图2中所说明的存储器217)中。在350处,可将验证安全固件324的请求从开放子系统211发送到安全子系统216。
在352处,可将用以将寄存器设置为第一值(例如,“0”)的信号发送到开放子系统211以将开放子系统211置于第一状态,在所述第一状态下开放子系统211可被阻止进一步执行启动过程。此外,在354处,安全子系统216可将信号(例如,复位信号)发送到定时器319以复位定时器319。在356处,可响应于复位信号而复位定时器319以开始对特定时间段进行计数。
在358处,可验证安全固件324。一旦安全固件324被验证,就可在360处将用以将寄存器设置为第二值(例如,“1”)的信号从安全子系统216发送到开放子系统211以将开放子系统211置于第二状态,在所述第二状态下开放子系统211被再次允许进一步执行启动过程。此外,在362处,可(例如,通过存储在ROM 320中的指令)执行开放子系统安全固件324。
在364处,可进一步执行SSBL 326以将开放固件322加载到可由开放子系统211及安全子系统216两者存取的共享存储器(例如,存储器225)。在366处,可将用以验证开放固件322的请求从开放子系统211发送到安全子系统216。
在368处,可将用以将寄存器设置为第一值(例如,“0”)的信号从安全子系统216发送到开放子系统211以将开放子系统211置于第一状态,在所述第一状态下开放子系统211可被阻止进一步执行启动过程及执行开放固件322。此外,在370处,安全子系统216可将信号(例如,复位信号)发送到定时器319以复位定时器319。在372处,可响应于复位信号而复位定时器319以开始对特定时间段进行计数。
在374处,可验证开放固件322。一旦开放固件322被验证,就可在376处将用以将寄存器设置为第二值(例如,“1”)的信号发送到开放子系统211以将开放子系统211置于第二状态,在所述第二状态下开放子系统211被再次允许进一步执行启动过程及执行开放固件322(例如,从共享存储器225执行)。在378处,可执行开放固件322。此外,在380处,可停用定时器319。
在非限制性实例中,系统可包含第一子系统(例如,分别在图1及2中所说明的开放子系统111及211),所述第一子系统包含经配置用于第一启动加载程序(例如,图2及3中所说明的FSBL 223及323)的存储器(例如,图2中所说明的ROM 215)及寄存器(例如,分别在图2及3中所说明的寄存器214)。所述系统可进一步包含通信地耦合到第一子系统的第二子系统(例如,分别在图1及2中所说明的安全子系统116及216)。
第一子系统可经配置以响应于用以起始启动过程的请求,执行第一启动加载程序以将第二启动加载程序(例如,分别在图2及3中所说明的SSBL 226及326)加载到第一子系统。第一子系统可响应于第二启动加载程序被加载到第一子系统而进一步将用以验证第二启动加载程序的请求发送到第二子系统。
第二子系统可经配置以响应于从第一子系统接收到用以验证第二启动加载程序的请求,将寄存器设置为第一值以将第一子系统置于第一状态以阻止第一子系统进一步执行启动过程及执行第二启动加载程序。第二子系统可响应于第二启动加载程序被验证而进一步将寄存器设置为第二值以将第一子系统置于第二状态以允许第一子系统进一步执行启动过程及执行第二启动加载程序。在一些实施例中,第一子系统可被阻止设置寄存器。
在一些实施例中,第二子系统可进一步经配置以在寄存器被设置为第二值之后,接收用以验证由第二启动加载程序加载到第一子系统的第一固件的请求。第二子系统可进一步经配置以将寄存器设置为第一值以将第一子系统置于第一状态,这阻止第一子系统进一步执行启动过程及执行第二启动加载程序。第二子系统可进一步经配置以响应于所述请求而验证第一固件,且响应于第一固件被验证而将寄存器设置为第二值以将第一子系统重新置于第二状态以允许第一子系统进一步执行启动过程及执行第二启动加载程序。
在一些实施例中,第二子系统进一步包括指示特定时间段是否已经过去的定时器(例如,图2及3中所说明的定时器219及319)。在这个实例中,第二子系统可经配置以响应于第一固件在特定时间段内被验证而将寄存器设置为第二值且响应于接收到用以验证第一固件的请求而复位定时器。
继续这个实例,第二子系统可经配置以接收用以验证由第二启动加载程序加载到第二子系统的第二固件的请求。第二子系统可进一步将寄存器设置为第一值以将第一子系统置于第一状态以阻止第一子系统进一步执行启动过程及执行第二启动加载程序。第二子系统可响应于所述请求而进一步验证第二固件,且响应于第二固件被验证而将寄存器设置为第二值以将第一子系统重新置于第二状态以允许第一子系统进一步执行启动过程及执行第二固件。在一些实施例中,第二子系统经配置以响应于第二固件在特定时间段内被验证而将寄存器设置为第二值,且第二子系统经配置以响应于接收到用以验证第二固件的请求而复位定时器。此外,第二子系统可经配置以响应于第二固件被验证而停用定时器。
图4是根据本公开的数个实施例的用于执行安全启动过程的方法的流程图481。方法481可由处理逻辑来执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法481由图1中所说明的管理单元110来执行。尽管以特定顺序或次序展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例被理解为仅是实例,且所说明过程可以不同次序执行,且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非每个实施例均需要所有过程。其它过程流程也是可能的。
在483处,可从第一子系统(例如,分别在图1及2中所说明的开放子系统111及211)且在第二子系统(例如,分别在图1及2中所说明的安全子系统116及216)处接收用以验证待与启动过程相关联地执行的固件(例如,分别在图2及3中所说明的SSBL 226及326、安全固件224及324以及开放固件222及322)的请求。
在485处,可将第一信号发送到第一子系统以将第一子系统置于第一状态以阻止第一子系统进一步执行启动过程。发送到第一子系统的第一信号可将第一子系统的寄存器(例如,分别在图2及3中所说明的寄存器214)设置为第一值以阻止第一子系统进一步执行启动过程。
在487处,可响应于验证固件而将第二信号发送到第一子系统以将第一子系统置于第二状态,这允许第一子系统执行固件。发送到第一子系统的第二信号可将第一子系统的寄存器设置为第二值以允许第一子系统进一步执行启动过程。在一些实施例中,可响应于固件在特定时间段(由图2及3中所说明的定时器219及319所指示)内被验证而将第二信号发送到第一子系统。在一些实施例中,可响应于固件在特定时间段内未被验证来终止启动过程,而无需将第二信号发送到第一子系统。
图5是根据本公开的数个实施例的用于执行安全启动过程的方法的流程图。方法590可由处理逻辑来执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法590由图1中所说明的管理单元110来执行。尽管以特定顺序或次序展示,但除非另有指定,否则可修改过程的次序。因此,所说明实施例被理解为仅是实例,且所说明过程可以不同次序执行,且一些过程可并行执行。另外,可在各种实施例中省略一或多个过程。因此,并非每个实施例均需要所有过程。其它过程流程也是可能的。
在592处,可从第一子系统(例如,分别在图1及2中所说明的开放子系统111及211)且在第二子系统(例如,分别在图1及2中所说明的安全子系统116及216)处接收用以验证启动加载程序(例如,分别在图2及3中所说明的SSBL 226及326)的请求。启动加载程序可响应于启动过程被起始而被加载到第一子系统。
在594处,可将第一信号发送到第一子系统以将第一子系统置于第一状态以在第一子系统处于第一状态时阻止第一子系统进一步执行启动过程。在596处,可响应于启动加载程序被验证而将第二信号发送到第一子系统以将第一子系统置于第二状态以允许第一子系统进一步执行启动过程。
在一些实施例中,在将第二信号发送到第一子系统之后,可从第一子系统且在第二子系统处接收用以验证由启动加载程序加载到第二子系统的安全固件(例如,分别在图2及3中所说明的安全固件224及324)的请求。随后,可将第三信号发送到第一子系统以将第一子系统置于第一状态以阻止第一子系统进一步执行启动过程及执行启动加载程序。接着,可响应于所述请求而验证安全固件。可响应于安全固件被验证将第四信号发送到第一子系统以将第一子系统重新置于第二状态以允许第一子系统进一步执行启动过程。
继续这个实例,可响应于验证安全固件的请求而复位定时器(例如,图2及3中所说明的定时器219及319)。如本文中所描述,定时器指示特定时间段是否已经过去。可响应于安全固件在特定时间段内被验证而将第四信号发送到第一子系统。
继续这个实例,(在将第四信号发送到第一子系统之后)可从第一子系统且在第二子系统处接收用以验证由安全固件加载到共享存储器(例如,图2中所说明的存储器225)的开放固件(例如,分别在图2及3中所说明的开放固件222及322)的请求。可将第五信号发送到第一子系统发以将第一子系统置于第一状态以阻止第一子系统进一步执行启动过程及开放固件。接着,可使用(例如,通过执行)安全固件验证开放固件。可响应于开放固件被验证而将第六信号发送到第一子系统以将第一子系统重新置于第二状态以允许第一子系统进一步执行启动过程及执行开放固件。在一些实施例中,可响应于用以验证开放固件的请求而复位定时器且可响应于开放固件在特定时间段内被验证而将第四信号发送到第一子系统。
尽管本文中已说明及描述特定实施例,但所属领域的一般技术人员将明白,经计算以实现相同结果的布置可置换所展示的特定实施例。本公开意在涵盖本公开的一或多个实施例的调适或变动。应理解,以说明性方式而非限制性方式进行上述描述。所属领域的技术人员在检阅上述描述之后,上述实施例的组合及本文中未明确地描述的其它实施例将是显而易见的。本公开的一或多个实施例的范围包含其中使用上述结构及过程的其它应用。因此,应参考所附权利要求书连同此权利要求书所授权的等效物的全范围来确定本公开的一或多个实施例的范围。
在前述具体实施方式中,为了简化本公开而将一些特征一起分组在单个实施例中。本公开方法不应被解译为反映本公开的所公开实施例必须使用比每一权利要求中明确地叙述的特征更多的特征的意图。而是,如所附权利要求书反映,发明标的物在于少于所公开单个实施例的所有特征。因此,所附权利要求特此并入到具体实施方式中,其中每一权利要求独立作为单独实施例。
Claims (19)
1.一种用于安全启动过程的方法,其包括:
从第一子系统(111;211)且在第二子系统(116;216)处接收用以验证待与启动过程相关联地执行的固件(222、224、226;322、324、326)的请求;
将第一信号发送到所述第一子系统以将所述第一子系统置于第一状态以阻止所述第一子系统进一步执行所述启动过程;及
响应于验证所述固件,将第二信号发送到所述第一子系统以将所述第一子系统置于第二状态,这允许所述第一子系统执行所述固件。
2.根据权利要求1所述的方法,其中将所述第一信号发送到所述第一子系统进一步包括将所述第一子系统的寄存器(214)设置为第一值以阻止所述第一子系统进一步执行所述启动过程。
3.根据权利要求1所述的方法,其中将所述第二信号发送到所述第一子系统进一步包括将所述第一子系统的寄存器(214)设置为第二值以允许所述第一子系统进一步执行所述启动过程。
4.根据权利要求1至3中任一权利要求所述的方法,其中:
所述第二子系统进一步包含指示特定时间段是否已经过去的定时器(219;319);且
响应于所述固件在所述特定时间段内被验证而将所述第二信号发送到所述第一子系统。
5.根据权利要求1至3中任一权利要求所述的方法,其中:
所述第二子系统进一步包含特定时间段是否已经过去的定时器(219;319);且
响应于所述固件在所述特定时间段内未被验证而终止所述启动过程,而无需将所述第二信号发送到所述第一子系统。
6.一种用于安全启动过程的设备,其包括:
处理器(218);及
存储器(220),其耦合到所述处理器且经配置用于存储能够由所述处理器执行的指令,其中所述指令在由所述处理器执行时致使所述处理器响应于从第一子系统(111;211)接收到用以验证待在启动过程期间执行的固件的请求而进行以下操作:
将所述第一子系统的寄存器(214)设置为第一值以阻止所述第一子系统进一步执行所述启动过程;及
响应于验证所述固件,将所述第一子系统的所述寄存器设置为第二值以允许所述第一子系统进一步执行所述启动过程。
7.根据权利要求6所述的设备,其中:
所述处理器及所述存储器是第二子系统(116;216)的部分;且
所述第二子系统进一步包含指示特定时间段是否已经过去的定时器(219;319),其中所述指令在由所述处理器执行时致使所述处理器响应于所述固件在所述特定时间段内被验证而设置所述第一子系统的所述寄存器以允许所述第一子系统进一步执行所述启动过程。
8.根据权利要求7所述的设备,其中所述指令在由所述处理器执行时致使所述处理器响应于所述固件在所述特定时间段内未被验证而终止所述启动过程。
9.根据权利要求7所述的设备,其中所述指令在由所述处理器执行时致使所述处理器响应于将所述第一子系统的所述寄存器设置为所述第一值而复位所述定时器。
10.一种用于安全启动过程的方法,其包括:
从第一子系统(111;211)且在第二子系统(116;216)处接收用以验证启动加载程序(226;326)的请求;其中所述启动加载程序响应于启动过程的起始而被加载到所述第一子系统;
将第一信号发送到所述第一子系统以将所述第一子系统置于第一状态以在所述第一子系统处于所述第一状态时阻止所述第一子系统进一步执行所述启动过程;及
响应于所述启动加载程序被验证,将第二信号发送到所述第一子系统以将所述第一子系统置于第二状态以允许所述第一子系统进一步执行所述启动过程。
11.根据权利要求10所述的方法,其进一步包括在将所述第二信号发送到所述第一子系统之后:
从所述第一子系统且在所述第二子系统处接收用以验证由所述启动加载程序加载到所述第二子系统的安全固件(224;324)的请求;
将第三信号发送到所述第一子系统以将所述第一子系统置于所述第一状态以阻止所述第一子系统进一步执行所述启动过程及执行所述启动加载程序;
响应于所述请求而验证所述安全固件;及
响应于所述安全固件被验证,将第四信号发送到所述第一子系统以将所述第一子系统重新置于所述第二状态以允许所述第一子系统进一步执行所述启动过程。
12.根据权利要求11所述的方法,其进一步包括:
响应于用以验证所述安全固件的所述请求而复位定时器(219;319),其中所述定时器指示特定时间段是否已经过去;及
响应于所述安全固件在所述特定时间段内被验证而将所述第四信号发送到所述第一子系统。
13.根据权利要求11所述的方法,其进一步包括在将所述第四信号发送到所述第一子系统之后:
从所述第一子系统且在所述第二子系统接收用以验证由所述安全固件加载到能够由所述第一及第二子系统存取的共享存储器(225)的开放固件(222;322)的请求;
将第五信号发送到所述第一子系统以将所述第一子系统置于所述第一状态以阻止所述第一子系统进一步执行所述启动过程及执行所述开放固件;
使用所述安全固件验证所述开放固件;及
响应于所述开放固件被验证,将第六信号发送到所述第一子系统以将所述第一子系统重新置于所述第二状态以允许所述第一子系统进一步执行所述启动过程及执行所述开放固件。
14.根据权利要求13所述的方法,其进一步包括:
响应于用以验证所述开放固件的所述请求而复位定时器(219;319),其中所述定时器指示特定时间段是否已经过去;及
响应于所述开放固件在所述特定时间段内被验证而将所述第四信号发送到所述第一子系统。
15.一种用于安全启动过程的系统,其包括:
第一子系统(111;211),其包括:
存储器(215),其经配置用于第一启动加载程序(223;323);及
寄存器(214);及
第二子系统(116;216),其通信地耦合到所述第一子系统;
其中所述第一子系统经配置以:
响应于用以起始启动过程的请求,执行所述第一启动加载程序以将第二启动加载程序(226;326)加载到所述第一子系统;
响应于所述第二启动加载程序被加载到所述第一子系统而将用以验证所述第二启动加载程序的请求发送到所述第二子系统;
其中所述第二子系统经配置以响应于从所述第一子系统接收到用以验证所述第二启动加载程序的所述请求而执行以下操作:
将所述寄存器设置为第一值以将所述第一子系统置于第一状态以阻止所述第一子系统进一步执行所述启动过程及执行所述第二启动加载程序;及
响应于验证所述第二启动加载程序,将所述寄存器设置为第二值以将所述第一子系统置于第二状态以允许所述第一子系统进一步执行所述启动过程及执行所述第二启动加载程序。
16.根据权利要求15所述的系统,其中所述第二子系统进一步经配置以在所述寄存器被设置为所述第二值之后:
接收用以验证由所述第二启动加载程序加载到所述第一子系统的第一固件(224;
324)的请求;
将所述寄存器设置为所述第一值以将所述第一子系统置于所述第一状态,这阻止所述第一子系统进一步执行所述启动过程及执行所述第二启动加载程序;
响应于所述请求而验证所述第一固件;及
响应于所述第一固件被验证,将所述寄存器设置为所述第二值以将所述第一子系统重新置于所述第二状态以允许所述第一子系统进一步执行所述启动过程及执行所述第二启动加载程序。
17.根据权利要求16所述的系统,其中:
所述第二子系统进一步包括指示特定时间段是否已经过去的定时器(219;319);且
所述第二子系统经配置以响应于所述第一固件在所述特定时间段内被验证而将所述寄存器设置为所述第二值。
18.根据权利要求16所述的系统,其中所述第二子系统进一步经配置以:
接收用以验证由所述第二启动加载程序加载到所述第二子系统的第二固件(222;
322)的请求;
将所述寄存器设置为所述第一值以将所述第一子系统置于所述第一状态以阻止所述第一子系统进一步执行所述启动过程及执行所述第二启动加载程序;
响应于所述请求而验证所述第二固件;及
响应于所述第二固件被验证,将所述寄存器设置为所述第二值以将所述第一子系统置于所述第二状态以允许所述第一子系统进一步执行所述启动过程及执行所述第二固件。
19.根据权利要求18所述的系统,其中:
所述第二子系统进一步包括指示特定时间段是否已经过去的定时器(219;319);且
所述第二子系统经配置以:
响应于所述第二固件在所述特定时间段内被验证而将所述寄存器设置为所述第二值;及
响应于所述第二固件被验证而停用所述定时器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263400747P | 2022-08-24 | 2022-08-24 | |
US63/400,747 | 2022-08-24 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117632279A true CN117632279A (zh) | 2024-03-01 |
Family
ID=90000673
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310929401.4A Pending CN117632279A (zh) | 2022-08-24 | 2023-07-27 | 安全启动过程 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240070284A1 (zh) |
CN (1) | CN117632279A (zh) |
-
2023
- 2023-07-27 CN CN202310929401.4A patent/CN117632279A/zh active Pending
- 2023-08-23 US US18/237,247 patent/US20240070284A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240070284A1 (en) | 2024-02-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12001826B2 (en) | Device firmware update techniques | |
CN107025406B (zh) | 母板、计算机可读存储装置以及固件验证方法 | |
US10999081B2 (en) | Dynamic certificate management for a distributed authentication system | |
US9208292B2 (en) | Entering a secured computing environment using multiple authenticated code modules | |
WO2015149020A1 (en) | In-system provisioning of firmware for a hardware platform | |
TW201224918A (en) | Providing platform independent memory logic | |
CN107567629B (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
US20240104213A1 (en) | Securing node groups | |
US11971993B2 (en) | Firmware-based secure tenancy transfer | |
CN112789574A (zh) | 经由系统及电源管理微型控制器的安全启动 | |
EP4181005A1 (en) | Storage device, storage system having the same and method of operating the same | |
WO2022143429A1 (zh) | 计算机系统、可信功能组件及运行方法 | |
US11900128B2 (en) | Modularized basic input output system (BIOS) firmware activation | |
US20230259629A1 (en) | Secure programming of one-time-programmable (otp) memory | |
US20230289270A1 (en) | Host controlled electronic device testing | |
WO2023179745A1 (zh) | 可信验证方法及装置 | |
CN113448915A (zh) | 固件弹性机构 | |
US20240070284A1 (en) | Secure boot procedure | |
US20240070283A1 (en) | Secure boot procedure | |
CN113515414B (zh) | 数据处理系统和非暂态机器可读介质 | |
CN116244253A (zh) | 硬件完整性验证机制 | |
CN113642050A (zh) | 自配置加密硬盘及其配置方法、系统及系统的启动方法 | |
US11966748B2 (en) | Dynamic boot configuration | |
US20230290427A1 (en) | Host controlled media testing of memory | |
US20220207193A1 (en) | Security management of ferroelectric memory device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |