CN112789574B - 经由系统及电源管理微控制器的安全启动 - Google Patents

经由系统及电源管理微控制器的安全启动 Download PDF

Info

Publication number
CN112789574B
CN112789574B CN201980064985.5A CN201980064985A CN112789574B CN 112789574 B CN112789574 B CN 112789574B CN 201980064985 A CN201980064985 A CN 201980064985A CN 112789574 B CN112789574 B CN 112789574B
Authority
CN
China
Prior art keywords
memory
host
secure
memory controller
microcontroller
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
CN201980064985.5A
Other languages
English (en)
Other versions
CN112789574A (zh
Inventor
R·W·斯特朗
D·J·卡特
N·莱维内
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.)
Micron Technology Inc
Original Assignee
Micron Technology Inc
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 Micron Technology Inc filed Critical Micron Technology Inc
Priority to CN202210817956.5A priority Critical patent/CN115016626A/zh
Publication of CN112789574A publication Critical patent/CN112789574A/zh
Application granted granted Critical
Publication of CN112789574B publication Critical patent/CN112789574B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3249Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

各种应用可包含控制存储器系统的安全启动模式的设备及/或方法。在实施例中,系统包含存储器组件及处理装置,其中所述处理装置经配置以控制所述系统的启动过程以操作所述存储器组件并与主机执行密码验证以对所述主机进行鉴别。所述处理装置可响应于所述鉴别而与所述主机交互,以接收用以在安全启动模式下控制所述启动过程的设置。所述处理装置可与所述系统的另一处理装置进行交互以存储所述设置并接收来自所述另一处理装置的安全启动信号,其中所述安全启动信号为取决于所述设置的值来断言或取消断言所述安全启动模式的信号。本发明还公开额外设备、系统及方法。

Description

经由系统及电源管理微控制器的安全启动
优先权申请
本申请案主张2018年9月6日提出申请的美国申请案第16/123,084号的优先权权益,所述美国申请案以全文引用的方式并入本文中。
技术领域
本公开的实施例总体上涉及存储器子系统,且更具体地,涉及经由系统及电源管理微控制器的安全启动。
背景技术
存储器子系统可为存储系统,例如固态硬盘(SSD),且可包含一或多个存储数据的存储器组件。存储器组件可为例如非易失性存储器组件及易失性存储器组件。通常,主机系统可利用存储器子系统来将数据存储在存储器组件处并从存储器组件检索数据。
附图说明
从下文给出的详细描述及从本公开的各种实施例的附图将更全面理解本公开。然而,不应将图式用于将本公开限制于特定实施例,而仅为了解释及理解。
图1说明根据各种实施例的包含存储器子系统的实例计算环境。
图2为根据各种实施例的实例性存储器子系统的框图,所述实例性存储器子系统具有存储器控制器及布置成与主机交互的微控制器。
图3为根据各种实施例的在主机系统与实施安全机制以将安全启动模式设置从主机系统传送到存储器子系统的存储器子系统之间的实例命令流。
图4说明根据各种实施例的针对供应商特定命令的,例如图2的存储器子系统的存储器子系统所支持的鉴别状态。
图5根据各种实施例说明例如图2的存储器子系统的存储器子系统的寿命状态。
图6为根据各种实施例的提供安全启动模式的实例方法的特征的流程图。
图7为其中本公开的实施例可操作的实例计算机系统的框图。
具体实施方式
本公开的各方面针对于管理包含用于存储器子系统的安全启动的存储器子系统。存储器子系统在本文中也被称作为“存储器装置”。存储器子系统的实例为存储系统,例如固态硬盘(SSD)。在一些实施例中,存储器子系统为混合存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供待存储在存储器子系统处的数据,且可请求待从存储器子系统检索的数据。
当例如SSD的存储器子系统通电时,会在SSD中启动启动过程,以使得能够在存储器子系统内加载操作系统。在存储器子系统的启动过程中,存储器控制器可读取一组指令,所述组指令通常为驻留在只读存储器(ROM)中的代码。驻留代码为被称为初级启动加载程序(PBL)的小型固件(FW)程序,所述程序可运行自测并搜索启动装置,所述启动装置通常可为非易失性存储器组件,存储次级启动加载程序(SBL)。SBL可将程序从存储媒体读取并将其加载到主存储器中,且可将控制传递给存储器子系统的操作程序。如果ROM中的PBL无法加载SBL,那么通过由存储器控制器执行的PBL可通过接口(例如快速外围组件互连(PCIe)接口)与主机进行通信。PCIe为高速总线标准。在通信中,PBL可向主机公开最小的PCIe标头。
通过公开的PCIe标头,主机可向存储器控制器发出命令,以将固件下载到存储器子系统。例如,在存储器子系统的制造期间,主机可下载制造测试FW。此机制的问题在于,PBL不会对主机下载的FW执行验证,例如数字签名验证。数字签名验证的实例为Rivest–Shamir–Adleman(RSA)签名验证。在未进行此类验证的情况下,此机制具有漏洞,即充当主机的攻击者可使用所述漏洞将恶意软件下载到存储器子系统上。
通过在启动过程期间将存储器子系统置于安全启动模式(SBM),可避免这种情况。在一些实施例中,PBL不受资源限制,且可支持以FW及/或硬件(HW)实施的数字签名验证,而在其它实施例中,例如但不限于缺少资源的情况,可实施SBM方案。在SBM中,阻止PBL从主机下载FW。从主机或存储器子系统外部的其它实体下载FW的功能性可通过存储器控制器禁用。在一些常规设计中,存储器控制器可经由电子保险丝(eFuse)执行此禁用。EFuse技术允许对集成电路进行动态实时重新编程,所述集成电路也可被称为IC、芯片或微芯片。芯片中的逻辑通常固定至芯片中,且在芯片制造后不会改变。通过利用一组eFuse,芯片制造商可允许通过熔断一或多个eFuse来重新布线芯片逻辑出来对电路进行改变。eFuse通常仅可在存储器控制器的制造阶段期间由存储器控制器编程。具有存储器控制器制造商程序eFuse可为非所要的,因为一旦进行编程,eFuse编程无法还原到先前的配置,这不允许与存储器控制器制造商分开的存储器子系统的制造商直接编程eFuse。
在对SBM eFuse进行编程时,PBL不允许主机将FW下载到存储器子系统。这种情况可在存储器子系统制造及故障分析(FA)期间引起质询。在此类情况下的制造期间,预编程“或非”(NOR)存储器组件或“与非”(NAND)存储器组件,这可为非所要的。在FA期间,在用于启动过程的主FW不起作用时,将不存在用于下载调试FW的机制,从而导致无用的、砖化(bricked)存储器子系统。在一些状况下,对SBM进行编程的副作用可包含存储器控制器自动禁用JTAG及SMBus两者。JTAG(联合测试操作组)是用于调试及编程装置的接口,如同控制器、复杂可编程逻辑装置(CPLD),及现场可编程门阵列(FPGA)。SMBus(系统管理总线)为用于轻量级通信用途的单端简单双线总线。相对于存储器子系统中的其它总线结构,可将SMBus布置为从总线。在存储器控制器的JTAG接口及SMBus两者被禁用的情况下,外部计算机次级报告(CAR)被禁用。禁止存取JTAG及SMBus接口防止未经授权的参与者将恶意软件注入到存储控制器的非易失性及/或易失性存储器中,并防止对用于保护存储控制器并提供静态数据保护的关键安全参数(CSP)未经授权的存取。
本公开的各方面通过生成到存储器子系统的处理器的安全启动信号来解决与存储器子系统的安全启动相关联的上述及其它缺陷,其中处理器控制存储器子系统的启动过程。将安全启动信号发送到处理器以断言或取消断言安全启动模式。安全启动信号由存储器子系统的另一处理器发送到处理器。安全启动信号是基于处理器与主机进行密码验证后从主机接收到的设置,所述设置控制启动过程以对主机进行鉴别。在各种实例实施例中,系统包括存储器组件及耦合到所述存储器组件的处理装置,所述处理装置经配置以控制系统的启动过程以操作所述存储器组件。处理装置可与主机执行密码验证,以对主机进行鉴别,并响应于鉴别而与主机交互,以接收用以在安全启动模式下控制启动过程的设置。处理装置可与系统的另一处理装置进行交互以存储设置并接收来自另一处理装置的安全启动信号,其中安全启动信号为取决于设置的值来断言或取消断言安全启动模式的信号。
在安全启动模式由两个处理装置之间的安全启动信号控制的情况下,这两个处理装置可灵活地对检测到启动过程中的故障作出响应,例如确定PBL无法加载SBL。两个处理装置中的每一个中的固件可提供用于两个处理装置之间的通信的指令,使得可改变安全启动信号以取消断言安全启动模式。响应于接收到用以取消断言安全启动模式的安全启动信号,控制启动过程的处理装置可与主机交互以允许下载用以执行指令的固件作为次级启动加载程序。这种安全启动的方法可避免在控制启动过程的处理装置的制造中对SBM熔丝进行编程的问题。另外,这种方法还可避免对NOR存储器组件进行预编程,且还允许下载FA固件和制造测试FW。FA固件为特殊固件映像,其可直接在随机存取存储器(RAM)中加载并执行,而无需先在存储器子系统的存储媒体中进行编程。所述存储媒体可为NAND存储器组件。
图1根据本公开的一些实施例说明包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112A到112N。存储器组件112A到112N可为易失性存储器组件、非易失性存储器组件或此类组合。在一些实施例中,存储器子系统110为存储系统。存储系统的实例为SSD。在一些实施例中,存储器子系统110为混合存储器/存储子系统。通常,计算环境100可包含使用存储器子系统110的主机系统120。例如,主机系统120可将数据写入到存储器子系统110,且从存储器子系统110读取数据。
主机系统120可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置,或包含存储器及处理装置的此类计算装置。主机系统120可以包含或耦合到存储器子系统110,以使得主机系统120可从存储器子系统110读取数据或将数据写入到存储器子系统110。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文中所使用,“耦合到”通常是指组件之间的连接,所述连接可为间接通信连接或直接通信连接(例如,无需中间组件),无论有线还是无线的,包含例如电、光学、磁性等连接。物理主机接口的实例包含但不限于串行先进技术总线附属(SATA)接口、PCIe接口、通用串行总线(USB)接口、光纤通道、串行连接SCSI(SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间发射数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用高速NVM(NVMe)接口来存取存储器组件112A到112N。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。
存储器组件112A到112N可包含不同类型的非易失性存储器组件及/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含NAND型快闪存储器。存储器组件112A到112N中的每一者可包含一或多个存储器单元阵列,例如单层级单元(SLC)或多层级单元(MLC)(例如,三层级单元(TLC)或四层级单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分及MLC部分两者。存储器单元中的每一个可存储由主机系统120使用的一或多个位的数据(例如,数据块)。尽管描述例如NAND型快闪存储器的非易失性存储器组件,但存储器组件112A到112N可基于例如易失性存储器的任何其它类型的存储器。在一些实施例中,存储器组件112A到112N可为但不限于RAM、ROM、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、NOR快闪存储器、电可擦除可编程只读存储器(EEPROM)及非易失性存储器单元的交叉点阵列。非易失性存储器的交叉点阵列可结合可堆叠的交叉网格化数据存取阵列基于体电阻的改变执行位存储。此外,与许多基于快闪存储器的存储器相比,交叉点非易失性存储器可执行原地写入操作,其中可在不预先擦除非易失性存储器单元的情况下编程非易失性存储器单元。此外,存储器组件112A到112N的存储器单元可经分组为存储器页或数据块,其可指代用于存储数据的存储器组件的单元。
存储器子系统控制器115(本文中被称作为“控制器”)可与存储器组件112A到112N通信以执行例如在存储器组件112A到112N处读取数据、写入数据或擦除数据的操作以及其它此类操作。控制器115可包含例如一或多个集成电路及/或离散组件的硬件、缓冲存储器或其组合。控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适处理器。控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明实例中,控制器115的本地存储器119包含嵌入式存储器,所述嵌入式存储器经配置以存储用于执行控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的各种过程、操作、逻辑流以及例程的指令。在一些实施例中,本地存储器119可包含存储存储器指针、所提取数据等的存储器寄存器。本地存储器119还可包含用于存储微码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可不包含控制器115,且替代地可依赖于外部控制(例如,由外部主机,或由与存储器子系统分离的处理器或控制器提供)。
通常,控制器115可从主机系统120接收命令或操作,且可将命令或操作转换为指令或适当的命令,以实现对存储器组件112A到112N的期望存取。控制器115可负责与存储器组件112A到112N相关联的其它操作,例如损耗均衡操作、无用信息收集操作、错误检测及纠错码(ECC)操作、加密操作、高速缓存操作以及逻辑块地址与物理块地址之间的地址转换。控制器115可进一步包含主机接口电路系统,以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120接收的命令转换为命令指令以存取存储器组件112A到112N,以及将与存储器组件112A至112N相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓冲存储器或缓冲器(例如,DRAM)及地址电路系统(例如,行解码器及列解码器),其可从控制器115接收地址并解码所述地址以存取存储器组件112A到112N。
存储器子系统110包含安全启动模式组件113,其可与主机系统120执行密码验证以对主机系统120进行鉴别且响应于所述鉴别而与主机系统120交互以接收用以在安全启动模式下控制存储器子系统110的启动过程的设置。在一些实施例中,控制器115包含安全启动模式组件113的至少一部分。例如,控制器115可包含处理器117(处理装置),所述处理器经配置以执行存储在本地存储器119中的指令以执行本文中所描述的操作。在一些实施例中,安全启动模式组件113为存储器子系统110、应用程序或操作系统的一部分。
安全启动模式组件113可包含由处理器117执行的固件,以与微控制器(MC)116交互,所述微控制器(MC)为存储器子系统110的另一处理装置,用于以安全机制存储从主机系统120接收的设置。安全启动模式组件113的固件可响应于控制器115从MC 116接收到安全启动信号而执行关于启动过程的指令。安全启动信号为取决于设置的值来断言或取消断言安全启动模式的信号。
MC 116可包含经配置以执行存储在本地MC存储器109中的指令的MC处理器107。在所说明实例中,控制器116的本地MC存储器109包含嵌入式存储器,所述嵌入式存储器经配置以存储用于执行在存储器子系统110的启动过程中支持存储器子系统110的操作的各种过程、操作、逻辑流以及例程的指令。在一些实施例中,本地MC存储器109可包含存储寄存器,所述存储器寄存器存储存储器指针,所提取数据等。本地MC存储器109还可包含只读存储器(ROM),所述只读存储器(ROM)用于存储与用于安全启动模式的设置有关的微码及参数。
MC 116可包含安全启动模式支持组件114,所述安全启动模式支持组件支持控制器115对安全启动过程的控制。MC 116响应于控制器115与主机系统120执行成功的密码操作以从主机系统120获取设置而接收用于安全启动模式的设置。安全启动模式支持组件114可包含固件,所述固件具有由MC处理器107执行的指令,以生成至控制器115的安全启动信号,以基于设置的值来断言或取消断言安全启动模式。MC 116可实现为控制控制器115的电源的系统及电源管理微控制器。替代地,控制器115及MC 116可为具有一或多个ROM以用内部安全启动模式信号来促进安全启动模式状态的集成装置。集成装置与主机系统120进行交互,这可从存储器子系统110通电使用一或多个密码安全机制来进行直至SBL成功操作,所述操作可包含在存储器子系统110中执行的操作固件或用户操作。下文描述关于安全启动模式组件113的操作的更多细节。
图2为实例性存储器子系统210的实施例的框图,所述存储器子系统具有经布置以与主机220交互的存储器控制器215及微控制器216,所述交互可包含使用与控制用于存储器子系统210的安全启动模式相关联的密码机制。存储器控制器215可对应于图1中的控制器115,且微控制器216可对应于微控制器116。存储器子系统210可对应于图1的存储器子系统110,且存储器组件212-A到212-M可对应于存储器组件112A到112-N。
存储器子系统210可经配置为存储器子系统。主机220可通过例如但不限于PCIe主机接口的接口221与存储器子系统210通信,其中PCIe线247将PCIe主机接口221耦合到存储器控制器215。还可将参考时钟(Ref CLk)234从PCIe主机接口221提供到存储器控制器215。主机220还可经由将PCIe主机接口221耦合到存储器控制器215的SMBus 207,通过PCIe主机接口221与存储器子系统210通信。SMBus 207还可将PCIe主机接口221,且因此将主机220耦合到重要产品数据(VPD)单元227,后者提供特定于存储器子系统210及相关联用户的数据,且由许多不同的字段组成。主机系统220可查询此数据。可在PCIe主机接口221与存储器控制器215之间的SMBus 207的路径中插入热交换单元236。热交换为在实时系统中插入及移除存储器子系统以及管理安全地施加及移除电源的方式的能力。其还可确保以良性方式完成主机SMBus的连接及断开连接。
存储器子系统210可包含耦合到存储器控制器215的媒体,例如存储器组件212-A到212-M。存储器控制器215可与存储器组件212-A到212-M通信以执行例如在存储器组件212-A到212-M处读取数据、写入数据或擦除数据的操作以及其它此类操作。存储器控制器215可包含例如一或多个集成电路及/或离散组件的硬件、缓冲存储器或其组合。存储器控制器215可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适处理器。存储器控制器215可包含处理器,所述处理器经配置以执行存储在本地存储器中的指令,类似于图1的存储器控制器115。存储器控制器215可耦合到例如DRAM 242的其它存储器组件。
存储器控制器215可耦合到许多其它组件以执行存储器子系统210的功能。此类其它组件可包含但不限于系统时钟203、具有到存储器控制器215的JTAG连接246的调试连接器231、具有到存储器控制器215的SPI连接242的串行外围接口(SPI)NOR启动装置222,以及具有到存储器控制器215的通用输入/输出(GPIO)连接243的发光二极管(LED)233。SPI NOR启动装置222为非易失性存储器,其可存储用于存储器子系统210的SBL。LED 233可通过各种闪烁代码提供对存储器子系统210状态的指示。存储器控制器215可耦合到温度传感器(TS)234,所述温度传感器经由I2C总线提供对存储器控制器215的温度的测量。I2C总线为用于一或多个主机与单个或多个从装置之间通信的总线。
在用于存储器子系统210的启动过程中,存储器控制器215可读取只读存储器(ROM)223中的PBL。替代地,PBL可任选地驻留在耦合到I2C总线的EEPROM 226中,所述I2C总线耦合到存储器控制器215。存储器控制器215运行包含ROM代码,ROM代码来自ROM 223的PBL,或呈来自EEPROM 226的替代配置。ROM 223的PBL尝试从SPI NOR启动装置222加载SBL。SB可受CRC-16保护。一旦加载SBL,控制权就传送到SBL,所述SBL从NAND(例如NAND 212-A到212-M)中定位并加载主FW,然后控制权转移到主FW。
存储器子系统210、存储器控制器215及微控制器216的启动过程可一起操作以提供安全启动模式。在一些实施例中,安全启动包含过程,其中从存储器子系统210通电密码地验证FW,直到执行主FW为止。支持安全启动假定启动过程以信任根开始。信任根通常为ROM代码,因为它是不可变的。在实施例中,如本文中进一步论述,安全启动阻止主机220使用PBL下载FW,而不是在设备启动期间执行FW的密码验证,因为FW可未经数字签名且将是不可信的,且禁用可用于将不受信任FW下载到装置上的调试接口。另外,当主机220试图经由PBL下载FW时,安全启动的实施例还可以支持数字签名验证。可通过在ROM/PBL及SBL启动过程期间禁用对存储器子系统210的外部存取来定义存储器子系统210的安全启动模式。当电源子系统及板管理单元211断言安全启动信号217时,侵入式调试是不可能的,直到主机220以安全方式启用调试为止。一个经启用调试可为临时的,且可在对存储器控制器215电源重启时或在主机220安全地禁用安全启动模式特征时被禁用。禁用外部存取确保可避免侵入式调试及配置改变。
在各种实施例中,存储器控制器215可基于由存储器控制器215接收的信号,通过控制来启用安全启动模式。所述信号为安全启动信号217,其也可被称为安全启动模式信号217,其用作可用来断言或取消断言安全启动模式的安全启动使能信号。安全启动信号217可由存储器控制器215从微控制器216接收。微控制器216可包含用以将安全启动信号217发送到存储器控制器215的输出引脚,且存储器控制器215可包含用以接收安全启动信号217的输入引脚。输入到存储器控制器215的安全启动模式信号217是来自微控制器216的数字输出信号。存储器控制器215可通过I2C总线将用于微控制器216断言(或取消断言)安全启动模式信号217的命令代码发送给微控制器216。
微控制器216可被实现为系统及电源管理微控制器,所述系统及电源管理微控制器为电源子系统及板管理单元211的一部分,所述电源子系统及板管理单元可从PCIe主机接口221接收功率,以12伏及辅助3.3伏的形式,且可向存储器子系统210的其它组件提供驱动功率。电源子系统及板管理单元211可在微控制器216的控制下向存储器控制器215提供功率。可将其它电压供应给电源子系统及板管理单元211。在微控制器216控制向存储器控制器215发送安全启动信号217的情况下,由于微控制器216控制存储器子系统210的电源,因此一旦存储器子系统退出复位,就可避免争用条件。例如,存储器子系统210保持复位,直到由于例如通电的事件导致电源稳定为止。
在由存储器控制器215对主机220进行密码验证以鉴别主机220之后,微处理器216基于从主机220接收到的SBM设置,将安全启动信号217发送到存储器控制器215,以断言或取消断言SBM。SBM设置可存储在微处理器216中。为了启用或禁用微处理器216中的SBM设置,存储器控制器215的固件213可包含用以经由内部I2C总线237与微处理器216通信的指令。微控制器216及存储器控制器215可耦合到内部I2C总线237,其中微控制器216及存储器控制器215可通过内部I2C总线237交互以通过由微控制器216执行微控制器固件214中的指令以及由存储器控制器215执行存储器控制器固件213中的指令来禁用或启用安全启动模式。
SBM设置可存储在作为非易失性存储器(NVM)的铁电RAM(FRAM)224内。FRAM可如同标准SRAM进行读取及写入。I2C命令格式及地址可用于启用/禁用SBM。可由微控制器216中的固件214控制从主机220接收SBM设置以及基于SBM设置的值向存储器控制器215生成安全启动信号217。一旦已通过执行微控制器FW 214的代码来执行控制器FW 213的代码,就可将存储器子系统210的电源重启用于微控制器216以识别SBM设置的改变。
在存储器子系统210已转换为部署状态之后,主机220可负责为微控制器预配正确的(经启用的)SBM设置。为了支持此预配,可实施两个命令,这些命令可为特定于供应商(VS)的命令。两个命令可为get_SBM_state命令及set_SBM_state命令。可将get_SBM_state命令指定为良性命令,且将_SBM_state命令指定为非良性命令。
例如存储器子系统210的存储装置可使用VS命令(其也可被称为供应商唯一(VU)命令)来利用存储装置的功能,这些功能超出与储存装置相关联的接口规范所定义的标准命令。这意味着存储装置可具有比满足存储装置的操作的技术标准的功能更多的功能性。VS命令可用于调试及故障分析、制造、装置预配等。指定为非良性的VS命令也可被称为受限命令。存储装置执行非良性VS命令可改变存储装置的状态,改变存储装置的行为或导致存储装置泄露机密信息。存储装置执行良性VS命令不会改变存储装置的状态,不会改变存储装置的行为或不会导致存储装置泄露机密信息。
存储器控制器固件213具有存储指令,所述指令可由存储器控制器215执行,以致使存储器控制器215与主机220执行密码验证,以对主机220进行鉴别,且响应于鉴别,与主机220进行交互以接收用以在安全启动模式下控制启动过程的SBM设置。存储器控制器固件213可具有在被执行时使存储器控制器215与微处理器216交互以存储SBM设置并接收来自微处理器216的安全启动信号217的指令,其中安全启动信号217为用以取决于设置的值来断言或取消断言安全启动模式。密码验证可包含RSA签名验证。RSA为密码系统,其中加密密钥为公用的,且与解密密钥不同,解密密钥为私有的。基于两个大素数以及辅助值来创建及发布公钥,其中素数为保密的。可使用其它密码技术来实施用于安全启动过程的安全机制。响应于接收到用以取消断言安全启动模式的安全启动信号217,存储器控制器215可与主机220交互以允许下载用以执行指令的固件作为次级启动加载程序。
微控制器FW 214具有可由微控制器216执行的指令,以响应于转换到安全启动启用状态而通过存储器控制器215与主机220有效地交互,以经由一或多个特定命令向微控制器216预配启用的安全启动模式设置。在安全启动模式处于在转换时的状态的情况下,一或多个特定命令可包含用于获取安全启动模式的状态的命令。一或多个特定命令可包含用以设置安全启动模式的状态的命令,其中用以设置安全启动模式的状态的命令与密码安全鉴别协议关联。密码安全鉴别协议可包含数字签名的使用。
图3为在主机系统与存储器子系统之间的实例命令流,所述存储器子系统实施将SBM设置从主机系统传送到存储器子系统的安全机制。例如,主机系统可为主机220,且存储器子系统可为图2的存储器子系统210。可在主机220与存储器控制器FW 213之间实施安全机制。主机220具有主机存储装置工具323,所述主机存储装置工具为对含有主机220的主机系统及包含存储器控制器215及微控制器216的存储器子系统210执行的应用。在操作310处,主机存储装置工具323将引入命令发送到存储器控制器FW 213,以开始对主机220的鉴别。在操作320处,存储器控制器FW 213将响应的引入命令发送到主机存储装置工具323。主机220的主机存储装置工具323可与硬件安全模块(HSM)325通信,HSM为保护及管理用于强鉴别的数字密钥的物理计算装置,其中HSM为安全的、受控资源。主机存储装置工具323可使用来自存储器控制器FW 213作为凭证的随机数、公钥以及来自具有同质及异质性签名密钥的多个存储器子系统的管理、检测与发现(MID)数据来构建质询包,且可在操作324处将所述质询包发送到HSM 325。HSM 325可使用RSA签名质询包,并在操作328将其发送到主机存储装置工具323。
在操作330处,从主机存储装置工具323向存储器控制器FW 213发送质询命令,包含来自HSM 325的RSA签名。可验证质询,其中验证可包含验证鉴别公钥,使用鉴别公钥对RSA签名进行计算及比较,以及与在质询命令中发送的数据结构的字段中的参数相关的其它准则。存储器子系统210可实施停用计数器,使得如果预定数目的连续质询请求失败,那么在可尝试另一引入/质询交换之前使用电源重启。在操作340处,可将质询状态从存储器控制器213发送到主机存储装置工具323。
如果质询命令成功完成,那么所有VS命令被解锁。如果质询命令失败,那么仅允许良性VS命令。在操作350处,从主机存储装置工具323向存储器控制器FW 213发送SBM VS命令。在操作360处,从存储器控制器FW 213向主机存储装置工具323发送SBM状态。在操作370处,将结束命令从主机存储装置工具323发送到存储器控制器FW 213。在操作380处,将结束命令从存储器控制器FW 213发送到主机存储装置工具323。一旦主机220在执行结束命令时未被授权,那么对VS命令的存取被限制为仅良性VS命令。除非重新鉴别成功完成,否则主机220尝试存取非良性VS命令将被存储器子系统210中止。对于SBM改变,如果质询成功完成,那么主机220可向存储器控制器FW 213发送VS命令,以指示其启用或禁用安全启动模式。一旦接收到VS命令,存储器控制器FW 213将此请求传递到微控制器216以设置启用或禁用。可使用不需要安全性的API来执行请求的传递。在替代方法中,可在主机存储装置工具323与微控制器FW 214之间的交互中实施类似的方法,以向微控制器216提供SBM设置。
鉴别为主机在存储装置被锁定时与存储装置建立信任的过程。如果主机尚未成功通过存储装置进行鉴别,那么主机具有受限的VS存取权限;存储装置仅服务来自主机的非良性VS命令请求。当主机已成功通过存储装置进行鉴别时,主机将具有不受限制的VS存取权限,且存储装置服务来自主机的所有良性及非良性VS命令请求。
图4说明相对于VS命令由例如图2的存储器子系统210的存储器子系统支持的鉴别状态。存储器子系统210可为具有ASIC存储器控制器215的SSD。在存储器子系统210处于未鉴别状态410的情况下,从主机220向存储器子系统210的存储器控制器215提供用于执行VS命令的引导命令405。存储器子系统210进入鉴别状态420,在所述状态下,存储器子系统210在鉴别过程中与主机220进行交互实现从主机220发送到存储器子系统210的质询。如果质询失败,那么存储器子系统210还原回到未鉴别状态410,在所述状态中,存储器子系统210没有主动处理质询且确实允许非良性VS命令。如果质询成功,那么存储器子系统210处于经鉴别状态430,在所述状态中,存储器子系统可处理良性及非良性VS命令。当从主机220接收到结束会话的命令或在存储器控制器215执行电源重启的情况下,存储器子系统210可进行返回到未鉴别状态410。
图5说明例如图2的存储器子系统210的存储器子系统的寿命状态。存储器子系统210可为具有包含存储器控制器FW 213的ASIC存储器控制器215的SSD。在生命状态510处,存储器子系统210处于初始状态,所述初始状态与其在制造状态相关联。寿命状态520处,存储器子系统210处于预配状态,其可包含用于存储器子系统210的操作设置,包含SBM设置,可从源530有效地将其设置为原始参数。在离开制造时,可将存储器子系统210置于部署状态540,这可有效地通知存储器控制器FW 213强制执行存储器子系统210支持的所有安全特征,包含安全启动。在部署状态540中,如上文所描述,在存储器控制器FW 213将处理非良性VS命令之前,例如主机220的主机执行与存储器子系统210的鉴别过程。使用非良性VS命令来完成启用及禁用存储器子系统210的安全启动模式。使用非良性VS命令执行不同生命周期状态的转换。如果主机220命令存储器控制器215进入预配状态520或初始状态510,那么假定存储器子系统210处于安全的环境中,且因此存储器控制器FW 213可不需要鉴别。从预配状态520或从部署状态540,存储器子系统210可进入寿命终止(EOL)状态550。
由于与在所部署存储器子系统(例如所部署SSD)上未启用SBM相关联的安全后果,制造中的主机可在客户出货之前在所有存储器子系统上启用SBM。为了简化存储器子系统的首次制造,默认可禁用SBM,在这种状况下,微控制器(例如图2的微控制器216)不向图2的存储器子系统210的存储器控制器215断言安全启动信号217。微控制器FW 214及存储器控制器FW 213提供对用于启用及禁用SBM的安全机制的支持。
图6为提供安全启动模式的实例性方法600的实施例的特征的流程图。在操作610处,系统的存储器控制器在存储器控制器与主机之间执行密码验证,以对主机进行鉴别。执行密码验证可包含使用Rivest–Shamir–Adleman签名验证。在操作620处,响应于鉴别,存储器控制器将设置存储在系统的微控制器中,其中所述设置为用于存储器控制器控制启动过程的安全启动模式的设置。在操作630处,存储器控制器接收来自微控制器的安全启动信号,其中安全启动信号将取决于设置的值来断言或取消断言安全启动模式。方法600或类似于方法600的方法可包含:响应于与主机的成功密码验证而取消断言安全启动模式,以允许下载用以执行指令的固件作为次级启动加载程序。
方法600或类似于方法600的方法的变型可包含许多不同的实施例,其可取决于此类方法的应用及/或在其中实施此类方法的系统的架构而组合。此类方法可包含:响应于转换到安全部署状态,经由一或多个特定命令为微控制器预配启用的安全启动模式设置。在安全启动模式处于转换时的状态的情况下,一或多个特定命令包含用以获取安全启动模式的状态的命令及用以设置安全启动模式的状态的命令,用以设置安全启动模式的状态的命令与密码鉴别协议关联。此类方法可包含在密码鉴别协议中使用数字签名。
方法600或与方法600类似的方法的变型可包含:响应于在存储器控制器与主机之间执行的鉴别协议的满足,经由主机将固件映像直接加载到耦合到存储器控制器的随机存取存储器中。此类方法可包含在安全启动模式下用存储器控制器执行固件映像的指令。
固件可包括例如微码的指令,其在由存储器控制器执行时可致使包括以下的操作的执行:在系统的存储器控制器中,在存储器控制器与主机之间执行密码验证,以对主机进行鉴别;响应于鉴别,将设置存储在系统的微控制器中,所述设置是用于存储器控制器控制启动过程的安全启动模式的设置;及在所述存储器控制器中,接收来自所述微控制器的安全启动信号,所述安全启动信号取决于所述设置的值来断言或取消断言所述安全启动模式。执行密码验证可包含使用Rivest–Shamir–Adleman签名验证。可使用其它密码验证。固件可包括例如微码的指令,其在由控制器执行时可致使包括以下的操作的执行:操作微控制器以经由存储器控制器从主机接收SBM设置,及生成到存储器控制器的安全启动信号。
固件的指令在由存储器控制器执行时,可致使操作的执行,所述操作可包含响应于转换到安全部署状态,经由一或多个特定命令为微控制器预配启用的安全启动模式设置。在安全启动模式处于转换时的状态的情况下,一或多个特定命令可包含用以获取安全启动模式的状态的命令及用以设置安全启动模式的状态的命令,用以设置安全启动模式的状态的命令与密码鉴别协议关联。密码鉴别协议可包含在密码鉴别协议中使用数字签名。
固件指令在由存储器控制器执行时可致使操作的执行,所述操作可包含响应于与主机的成功密码验证而取消断言安全启动模式,以允许下载用执行指令的固件作为次级启动加载程序。此类指令还可提供包含以下的操作:响应于在存储器控制器与主机之间执行的鉴别协议的满足,经由主机将固件映像直接加载到耦合至存储器控制器的随机存取存储器中;及在安全启动模式下,用存储器控制器执行固件映像的指令。
固件可包括指令,诸如微码,当由控制器执行时,可致使包括以下的操作:与耦合到如与图1到7相关联的主机的存储器子系统的安全启动相关联的操作。固件的指令,当由控制器执行时,可致使操作的执行,所述操作可包含如本文中教示的操作。
图7说明计算机系统700的实例机器,在所述计算机系统内可执行用于致使机器执行本文中所论述的方法中的任何一或多个的指令集。在一些实施例中,计算机系统700可对应于主机系统(例如,图1的主机系统120),其包含,耦合到,或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的安全启动模式组件113及安全启动模式支持组件114的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内联网、外联网及/或因特网中的其它机器。机器可在客户端-服务器网络环境中以服务器或客户端机器的身份运行,作为对等(或分布式)网络环境中的对等机器运行,或作为云计算基础设施或环境中的服务器或客户端机器运行。
所述机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、服务器、网络路由器、交换机或网桥,或能够执行规定由所述机器进行的动作的指令集(按顺序或其它方式)的任何机器。此外,虽然说明单个机器,但术语“机器”还应被视为包含单独或联合执行一(或多个)指令集以执行本文所论述的方法中的任何一或多个的任何机器集合。
实例计算机系统700包含经由总线730彼此通信的处理装置702、主存储器704(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)例如同步DRAM(SDRAM)或寄存DRAM(RDRAM)等)、静态存储器706(例如,快闪存储器、静态随机存取存储器(SRAM)等)以及数据存储系统718。
处理装置702表示一或多个通用处理装置,例如微处理器、中央处理单元,等等。更具体地,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或实施其它指令集的处理器,或实施指令集组合的处理器。处理装置702还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器,等等。处理装置702经配置以执行用于执行本文中所论述的操作及步骤的指令726。计算机系统700可进一步包含网络接口装置708以经由网络720进行通信。
数据存储系统718可包含机器可读存储媒体724(也被称作为计算机可读媒体),其上存储体现本文中所描述的方法或功能中的任何一或多个的一或多个集合的指令726或软件。指令726可包含安全启动组件713,其可包含与图1的安全启动模式组件113、安全启动模式支持组件114或安全启动模式组件113与安全启动模式支持组件114的组合中的指令相似的指令。指令726还可在计算机系统700执行所述指令期间完全或至少部分地驻留在主存储器704内及/或处理装置702内,主存储器704及处理装置702也构成机器可读存储媒体。机器可读存储媒体724、数据存储系统718及/或主存储器704可对应于图1的存储器子系统110。
在一个实施例中,指令726包含用以实施对应于安全启动组件713(例如,图1的安全启动模式组件113及安全启动模式支持组件114的组合)的功能性的指令。虽然机器可读存储媒体724在实例实施例中被展示为单个媒体,但术语“机器可读存储媒体”应被视为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被视为包含能够存储或编码指令集以供机器执行且使机器执行本公开的方法中的任何一或多个的任何媒体。因此,术语“机器可读存储媒体”应被视为包含(但不限于)固态存储器、光学媒体及磁媒体。
已在计算机存储器内的算法及数据位的操作的符号表示的形式来呈现前面的详细描述的一些部分。这些算法描述及表示为由所属数据处理领域的技术人员用于以向所属领域的其它技术人员传达其工作的本质的方式。算法此处且通常被认为导致所要结果的自洽操作序列。操作为需要物理操纵物理量的操作。通常,但非必需地,这些量可采取能够存储、组合、比较或以其它方式操纵的电或磁信号的形式。将这些信号称作位、值、元素、符号、字符、项、数字等等有时已证明是便利的(主要出于共用的原因)。
然而,应记住,所有这些术语及类似术语均与适当的物理量相关联,且仅作为应用于这些量的方便标签。本公开可是指计算机系统或类似电子计算装置的动作及过程,其将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据操纵及变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储器系统内的物理量的其它数据。
本公开还涉及用于执行本文中操作的设备。此设备可为特定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘,只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡,或适用于存储电子指令的任何类型的媒体,每一者都耦合到计算机系统总线。
本文中所呈现的算法及显示并不与任何特定计算机或其它设备内在地相关。根据本文中的教示,各种通用系统可与程序一起使用,或可证明构造更专用的装置以执行所述方法为方便的。各种这些系统的结构将如下文描述中所述。另外,不参考任何特定编程语言描述本公开。应理解,可使用各种编程语言来实施如本文中所描述的本公开的教示。
本公开可经提供作为计算机程序产品或软件,其可包含机器可读媒体,具有存储于其上的指令,所述指令可用于对计算机系统(或其它电子装置)进行编程以根据本公开执行处理。机器可读媒体包含用于以机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁性磁盘存储媒体、光存储媒体、快闪存储器组件等。
根据本文中的教导,以下为方法、设备及系统的实例实施例。
实例存储器系统1可包括:存储器组件;及处理装置,其耦合到所述存储器组件,经配置以执行包括以下的操作:与主机执行密码验证以对所述主机进行鉴别;响应于所述鉴别,与所述主机交互以接收用以在安全启动模式下控制所述存储器系统的启动过程的设置;与存储所述设置的所述存储器系统的另一处理装置交互以存储所述设置;及接收来自所述另一处理装置的安全启动信号,所述安全启动信号基于所述设置的值来断言或取消断言所述安全启动模式。
实例存储器系统2可包括实例存储器系统1的特征,且可包括:所述密码验证包括Rivest-Shamir-Adleman签名验证。
实例存储器系统3可包括前述实例存储器系统中的任一个的特征,且可包括:所述处理装置,响应于接收到用以取消断言所述安全启动模式的所述安全启动信号,与所述主机交互以允许下载用以执行指令的固件作为次级启动加载程序。
实例存储器系统4可包括前述实例存储器系统中的任一个的特征,且可包括:到处理装置的功率由另一处理装置控制。
实例存储器系统5可包括:存储器组件;存储器控制器,其耦合到所述存储器组件,经配置以控制所述存储器系统的启动过程以操作所述存储器组件;微控制器,其耦合至所述存储器控制器;非易失性存储器,其存储次级启动加载程序,所述次级启动加载程序在所述启动过程中的初级启动加载程序的操作之后而操作;及存储控制器固件,其具有存储指令,所述存储指令可由所述存储器控制器执行,以致使所述存储器控制器执行包括以下的操作:对主机执行密码验证以对所述主机进行鉴别;响应于所述鉴别,与所述主机交互以接收用以在安全启动模式下控制所述启动过程的设置;与所述微控制器交互以将所述设置存储在所述微控制器中;及接收来自所述微控制器的安全启动信号,所述安全启动信号基于所述设置的值来断言或取消断言所述安全启动模式。
实例存储器系统6可包括实例存储器系统5的特征,且可包括:用于所述安全启动模式的所述设置存储在所述微控制器的非易失性存储器中。
实例存储器系统7可包括任何先前实例存储器系统5及6的特征,且可包括:所述非易失性存储器为铁电随机存取存储器。
实例存储器系统8可包括任何先前实例存储器系统5到7的特征,且可包括:所述微控制器包括用以将所述安全启动信号发送到所述存储器控制器的输出引脚,且所述存储器控制器包括用以接收所述安全启动信号的输入引脚。
实例存储器系统9可包括任何先前实例性存储器系统5到8的特征,且可包括:所述存储器系统包括总线,所述微控制器及所述存储器控制器耦合到所述总线,且所述微控制器及所述存储器控制器在所述总线上交互以通过由所述微控制器执行微控制器固件中的指令并由所述存储控制器执行所述存储器控制器固件中的指令来禁用或启用所述安全启动模式。
实例存储器系统10可包括任何先前实例存储器系统5到9的特征,且可包括:所述存储系统包括微控制器固件,所述微控制器固件具有指令,所述指令可由所述微控制器执行以响应于转换到安全启动启用状态通过所述存储器控制器与主机交互以经由一或多个特定命令为所述微控制器预配启用的安全启动模式设置。
实例存储器系统11可包括任何先前实例存储器系统5到10的特征,且可包括:在所述安全启动模式处于所述转换时的状态的情况下,所述一或多个特定命令包括用以获取所述安全启动模式的所述状态的命令及用以设置所述安全启动模式的所述状态的命令,用以设置所述安全启动模式的所述状态的所述命令与密码安全鉴别协议关联。
实例存储器系统12可包括任何先前实例存储器系统5到11的特征,且可包括:所述加密安全鉴别协议包括数字签名的使用。
实例存储器系统13可包括任何先前实例存储器系统5到12的特征,且可包括:所述微控制器控制到所述存储器组件、所述存储器控制器及所述非易失性存储器的的功率。
实例方法1可包括:在存储器系统的存储器控制器中,在所述存储器控制器与主机之间执行密码验证,以对所述主机进行鉴别;响应于所述鉴别,将设置存储在所述存储器系统的微控制器中,所述设置为用于所述存储器控制器控制启动过程的安全启动模式的设置;及在所述存储器控制器中,接收来自所述微控制器的安全启动信号,所述安全启动信号基于所述设置的值来断言或取消断言所述安全启动模式。
实例方法2可包括实例方法1的特征,且可包括:响应于与主机的成功密码验证而取消断言所述安全启动模式,以允许下载用以执行指令的固件作为次级启动加载程序。
实例方法3可包括任何先前实例方法1及2的特征,且可包括:响应于转换到安全部署状态,经由一或多个特定命令向所述微控制器预配启用的安全启动模式设置。
实例方法4可包括任何先前实例方法1到3的特征,且可包括:在所述安全启动模式处于所述转换时的状态的情况下,所述一或多个特定命令包括用以获取所述安全启动模式的所述状态的命令及用以设置所述安全启动模式的所述状态的命令,用以设置所述安全启动模式的所述状态的所述命令与密码安全鉴别协议关联。
实例方法5可包括任何先前实例方法1到4的特征,且可包括在所述密码鉴别协议中使用数字签名。
实例方法6可包括任何前述实例方法1到5的特征,且可包括:响应于在所述存储器控制器与所述主机之间执行的鉴别协议的满足,经由所述主机将固件映像直接加载到耦合至所述存储器控制器的随机存取存储器中;及在所述安全启动模式下,用所述存储器控制器执行所述固件映像的指令。
实例方法7可包括任何先前实例方法1到6的特征,且可包括:执行所述密码验证包含使用Rivest-Shamir-Adleman签名验证。
在上述说明书中,本公开的实施例已参考其特定实例实施例进行描述。显而易见的是,在不脱离所附权利要求书中所阐明的本公开的实施例的更广泛的精神及范围的情况下,可对其进行各种修改。因此,说明书及图式应考虑说明性而非限制性。

Claims (20)

1.一种存储器系统,其包括:
存储器组件;及
存储器控制器,其包括第一处理装置,所述第一处理装置耦合到所述存储器组件且经配置以执行包括以下的操作:
与主机执行密码验证以对所述主机进行鉴别;以及
在所述鉴别成功之后:
与所述主机交互以接收用以在安全启动模式下控制所述存储器系统的启动过程的设置,与所述主机交互以接收所述设置包括从所述主机接收一或多个特定命令,所述一或多个特定命令包括用于获取所述安全启动模式的状态的第一命令和用于设置所述安全启动模式的所述状态的第二命令;
响应于接收所述一或多个特定命令中的至少一个特定命令,与微控制器的第二处理装置交互以存储所述设置,所述微控制器包括具有指令的固件,所述固件致使所述第二处理装置响应于转换到安全启动启用状态而通过所述存储器控制器与所述主机交互;及
从所述第二处理装置接收安全启动信号以执行断言所述安全启动模式或取消断言所述安全启动模式中的至少一者,所述第二处理装置基于所述设置的值来产生所述安全启动信号。
2.根据权利要求1所述的存储器系统,其中所述密码验证包括李维斯特-沙米尔-阿德尔曼签名验证。
3.根据权利要求1所述的存储器系统,其中所述第一处理装置,响应于接收到用以取消断言所述安全启动模式的所述安全启动信号,与所述主机交互以允许下载用以执行指令的固件作为次级启动加载程序。
4.根据权利要求1所述的存储器系统,其中到所述第一处理装置的功率由所述第二处理装置控制。
5.根据权利要求1所述的存储器系统,其中所述密码验证包括使用数字签名的密码安全鉴别协议。
6.根据权利要求1所述的存储器系统,其中所述设置存储在所述微控制器中的非易失性存储器中。
7.根据权利要求1所述的存储器系统,其中所述微控制器包括用以将所述安全启动信号发送到所述存储器控制器的输出引脚,且所述存储器控制器包括用以接收所述安全启动信号的输入引脚。
8.一种存储器系统,其包括:
存储器组件;
存储器控制器,耦合到所述存储器组件,经配置以控制所述存储器系统的启动过程以操作所述存储器组件;
微控制器,其耦合到所述存储器控制器,所述微控制器包括具有指令的固件,所述固件用于响应于转换到安全启动启用状态而通过所述存储器控制器与主机交互;非易失性存储器,存储次级启动加载程序,所述次级启动加载程序在所述启动过程中操作初级启动加载程序的操作之后而操作;及
存储器控制器固件,其具有存储指令,所述存储指令可由所述存储器控制器执行,以致使所述存储器控制器执行包括以下的操作:
与所述主机执行密码验证以对所述主机进行鉴别;以及
在所述鉴别成功之后:
与所述主机交互以接收用于在安全启动模式下控制所述启动过程的设置,
与所述主机交互以接收所述设置包括从所述主机接收一或多个特定命令,所述一或多个特定命令包括用于获取所述安全启动模式的状态的第一命令和用于设置所述安全启动模式的所述状态的第二命令;
响应于接收所述一或多个特定命令中的一或多个特定命令,与所述微控制器进行交互以将所述设置存储在所述微控制器中;及
从所述微控制器接收安全启动信号以执行断言所述安全启动模式或取消断言所述安全启动模式中的至少一者,所述微控制器基于所述设置的值来产生所述安全启动信号。
9.根据权利要求8所述的存储器系统,其中用于所述安全启动模式的所述设置存储在所述微控制器中的所述非易失性存储器中。
10.根据权利要求9所述的存储器系统,其中所述非易失性存储器为铁电随机存取存储器。
11.根据权利要求8所述的存储器系统,其中所述微控制器包括用以将所述安全启动信号发送到所述存储器控制器的输出引脚,且所述存储器控制器包括用以接收所述安全启动信号的输入引脚。
12.根据权利要求8所述的存储器系统,其进一步包括总线,所述总线耦合所述微控制器及所述存储器控制器,且启用所述微控制器和所述存储器控制器之间的交互。
13.根据权利要求8所述的存储器系统,其中所述密码验证包括使用数字签名的密码安全鉴别协议。
14.根据权利要求9所述的存储器系统,其中所述微控制器控制到所述存储器组件、所述存储器控制器和所述非易失性存储器的电力。
15.一种方法,其包括:
在存储器系统的存储器控制器中,在所述存储器控制器与主机之间执行密码验证,以对所述主机进行鉴别;以及
在所述鉴别成功之后:
所述存储器控制器与所述主机交互以接收设置以在安全启动模式下控制启动过程,与所述主机交互以接收所述设置包括从所述主机接收一或多个特定命令,所述一或多个特定命令包括用于获取所述安全启动模式的状态的第一命令和用于设置所述安全启动模式的所述状态的第二命令;
响应于接收所述一或多个特定命令中的一或多个特定命令,所述存储器控制器将所述设置存储在所述存储器系统的微控制器中,所述微控制器包括具有指令的固件,所述固件用于响应于转换到安全启动启用状态而通过所述存储器控制器与所述主机交互,所述设置为用于所述存储器控制器控制所述启动过程的安全启动模式的设置;及
在所述存储器控制器中,接收来自所述微控制器的安全启动信号以执行断言所述安全启动模式或取消断言所述安全启动模式中的至少一者,所述微控制器基于所述设置的值来产生所述安全启动信号。
16.根据权利要求15所述的方法,其进一步包括:响应于与主机的成功密码验证而取消断言所述安全启动模式,以允许下载用以执行指令的固件作为次级启动加载程序。
17.根据权利要求15所述的方法,其进一步包括:响应于转换到安全部署状态,经由所述一或多个特定命令为所述微控制器预配启用的安全启动模式设置。
18.根据权利要求15所述的方法,其中所述密码验证包括使用数字签名的密码安全鉴别协议。
19.根据权利要求15所述的方法,其进一步包括:
响应于在所述存储器控制器与所述主机之间执行的鉴别协议的满足,经由所述主机将固件映像直接加载到耦合到所述存储器控制器的随机存取存储器中;及
在所述安全启动模式下用所述存储器控制器执行所述固件映像的指令。
20.根据权利要求15所述的方法,其中执行所述密码验证包括使用李维斯特-沙米尔-阿德尔曼签名验证。
CN201980064985.5A 2018-09-06 2019-09-05 经由系统及电源管理微控制器的安全启动 Active CN112789574B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210817956.5A CN115016626A (zh) 2018-09-06 2019-09-05 经由系统及电源管理微控制器的安全启动

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/123,084 2018-09-06
US16/123,084 US10956576B2 (en) 2018-09-06 2018-09-06 Secure boot via system and power management microcontroller
PCT/US2019/049782 WO2020051355A1 (en) 2018-09-06 2019-09-05 Secure boot via system and power management micro controller

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210817956.5A Division CN115016626A (zh) 2018-09-06 2019-09-05 经由系统及电源管理微控制器的安全启动

Publications (2)

Publication Number Publication Date
CN112789574A CN112789574A (zh) 2021-05-11
CN112789574B true CN112789574B (zh) 2022-07-12

Family

ID=69719196

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210817956.5A Pending CN115016626A (zh) 2018-09-06 2019-09-05 经由系统及电源管理微控制器的安全启动
CN201980064985.5A Active CN112789574B (zh) 2018-09-06 2019-09-05 经由系统及电源管理微控制器的安全启动

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210817956.5A Pending CN115016626A (zh) 2018-09-06 2019-09-05 经由系统及电源管理微控制器的安全启动

Country Status (5)

Country Link
US (2) US10956576B2 (zh)
EP (1) EP3847567A4 (zh)
KR (1) KR20210036989A (zh)
CN (2) CN115016626A (zh)
WO (1) WO2020051355A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10956576B2 (en) 2018-09-06 2021-03-23 Micron Technology, Inc. Secure boot via system and power management microcontroller
US11016755B2 (en) * 2019-07-31 2021-05-25 Dell Products L.P. System and method to secure embedded controller flashing process
US12010217B2 (en) * 2020-07-31 2024-06-11 Micron Technology, Inc. Secure memory system programming for host device verification
US11809566B2 (en) * 2020-10-02 2023-11-07 Infineon Technologies LLC Methods for fast, secure boot from nonvolatile memory device and corresponding systems and devices for the same
TWI797932B (zh) * 2021-12-30 2023-04-01 新唐科技股份有限公司 韌體驗證系統及韌體驗證方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7235999B2 (en) * 2004-04-30 2007-06-26 Xilinx, Inc. System monitor in a programmable logic device
CN107025406A (zh) * 2016-02-01 2017-08-08 广达电脑股份有限公司 母板、计算机可读存储装置以及固件验证方法
US9798625B2 (en) * 2015-06-23 2017-10-24 Dell Products, L.P. Agentless and/or pre-boot support, and field replaceable unit (FRU) isolation

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6546489B1 (en) * 1999-03-04 2003-04-08 Western Digital Ventures, Inc. Disk drive which provides a secure boot of a host computer system from a protected area of a disk
US20060123339A1 (en) * 2004-09-16 2006-06-08 Dimichele Carmen General purpose user interface system and method
US8984265B2 (en) * 2007-03-30 2015-03-17 Intel Corporation Server active management technology (AMT) assisted secure boot
US9164925B2 (en) * 2008-01-15 2015-10-20 Samsung Electronics Co., Ltd. Method and apparatus for authorizing host to access portable storage device
US20090327741A1 (en) * 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
KR20120107336A (ko) * 2011-03-21 2012-10-02 삼성전자주식회사 메모리 시스템 및 그것의 어드레싱 방법
US9183415B2 (en) 2011-12-01 2015-11-10 Microsoft Technology Licensing, Llc Regulating access using information regarding a host machine of a portable storage drive
US20150121054A1 (en) 2013-10-31 2015-04-30 Advanced Micro Devices, Inc. Platform Secure Boot
CN106033398A (zh) * 2015-03-13 2016-10-19 联发科技(新加坡)私人有限公司 数据处理系统、外接装置启动方法以及数据处理方法
US9886285B2 (en) * 2015-03-31 2018-02-06 Western Digital Technologies, Inc. Communication interface initialization
US9756146B2 (en) 2015-05-19 2017-09-05 Intel IP Corporation Secure boot download computations based on host transport conditions
KR101887974B1 (ko) 2016-12-01 2018-08-13 현대오트론 주식회사 엔진제어기의 안전부팅을 위한 시스템 및 방법
KR20180092596A (ko) 2017-02-10 2018-08-20 경희대학교 산학협력단 임베디드 보안 모듈을 이용한 IoT 디바이스 플랫폼의 보안 부팅 방법 및 시스템
US10956576B2 (en) 2018-09-06 2021-03-23 Micron Technology, Inc. Secure boot via system and power management microcontroller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7235999B2 (en) * 2004-04-30 2007-06-26 Xilinx, Inc. System monitor in a programmable logic device
US9798625B2 (en) * 2015-06-23 2017-10-24 Dell Products, L.P. Agentless and/or pre-boot support, and field replaceable unit (FRU) isolation
CN107025406A (zh) * 2016-02-01 2017-08-08 广达电脑股份有限公司 母板、计算机可读存储装置以及固件验证方法

Also Published As

Publication number Publication date
US11468171B2 (en) 2022-10-11
KR20210036989A (ko) 2021-04-05
US20200082089A1 (en) 2020-03-12
EP3847567A1 (en) 2021-07-14
CN112789574A (zh) 2021-05-11
US20210081537A1 (en) 2021-03-18
CN115016626A (zh) 2022-09-06
EP3847567A4 (en) 2022-05-04
WO2020051355A1 (en) 2020-03-12
US10956576B2 (en) 2021-03-23

Similar Documents

Publication Publication Date Title
CN112789574B (zh) 经由系统及电源管理微控制器的安全启动
US10324864B2 (en) Storage system and method for performing and authenticating write-protection thereof
US10747687B2 (en) Storage system and method for performing and authenticating write-protection thereof
KR102026393B1 (ko) 판독 전용 메모리의 부트 코드 패칭
US8478973B2 (en) System and method for providing a secure application fragmentation environment
US9208292B2 (en) Entering a secured computing environment using multiple authenticated code modules
US11106798B2 (en) Automatically replacing versions of a key database for secure boots
US11281768B1 (en) Firmware security vulnerability verification service
JP2011210129A (ja) 記憶装置、データ処理装置、登録方法、及びコンピュータプログラム
TWI754219B (zh) 更新信號技術
US8386763B1 (en) System and method for locking down a capability of a computer system
US11068599B2 (en) Secure initialization using embedded controller (EC) root of trust
US20200134232A1 (en) Information processing apparatus and control method thereof
US20230259629A1 (en) Secure programming of one-time-programmable (otp) memory
CN113642050B (zh) 自配置加密硬盘及其配置方法、系统及系统的启动方法
US20200344066A1 (en) Information processing apparatus and data verification method
US20210243035A1 (en) Multi-factor authentication enabled memory sub-system
US11113399B2 (en) Electronic apparatus and control method of electronic apparatus
US11966748B2 (en) Dynamic boot configuration
US20230129942A1 (en) Method for locking a rewritable non-volatile memory and electronic device implementing said method
US11989305B2 (en) Automated update of a customized secure boot policy
US20240028734A1 (en) Automated update of a customized secure boot policy
TW202341162A (zh) 一次性可程式化記憶體的安全程式化

Legal Events

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