Secure capsule for enabling restricted features of a memory device
By using a secure capsule and a digital signature mechanism for private/public key pairs, the problem of network HSM dependency and long time required to enable restricted features in the memory subsystem in existing technologies is solved, and a solution for securely and quickly enabling restricted commands at customer sites is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- MICRON TECHNOLOGY INC
- Filing Date
- 2021-12-17
- Publication Date
- 2026-05-19
AI Technical Summary
Existing memory subsystems rely on network and USB-based hardware security modules when enabling restricted features, which has limitations in use and long turnaround times. Furthermore, traditional methods make it difficult to securely enable specific or all vendor-proprietary commands at customer sites.
The security capsule uses an in-band mechanism to transform the memory device from an unauthenticated state to an authenticated state, uses a dedicated private/public key pair for digital signature and verification, eliminates the dependence on the network HSM, and ensures security through an anti-replay mechanism.
It enables securely enabling the restricted features of storage devices at customer sites, reduces turnaround time, avoids the limitations of network HSM usage, and supports secure capsule transfer in portable and electronic ways.
Smart Images

Figure CN114647874B_ABST
Abstract
Description
Technical Field
[0001] Embodiments of this disclosure generally relate to memory subsystems, and more specifically, to security capsules for enabling restricted features of memory devices in memory subsystems. Background Technology
[0002] The memory subsystem may include one or more memory devices for storing data. Memory components may be, for example, non-volatile memory devices and volatile memory devices. Typically, a host system may utilize the memory subsystem to store data at the memory devices and retrieve data from the memory devices. Summary of the Invention
[0003] One aspect of this disclosure provides a system comprising: a memory device; and a processing device coupled to the memory device, the processing device being configured to perform operations including: initializing the memory device to an unauthenticated state in which the memory device is unable to execute one or more restricted commands; accessing a secure capsule digitally signed using a private key; and transforming the memory device to an authenticated state based on verification using a public key corresponding to the private key that the secure capsule has been validly signed, the memory device being able to execute the one or more restricted commands while in the authenticated state.
[0004] Another aspect of this disclosure provides a method comprising: initializing a memory device to an unauthenticated state in which the memory device is incapable of executing one or more restricted commands; accessing a secure capsule digitally signed using a private key; verifying that the secure capsule has been validly signed using a public key corresponding to the private key; and transforming the memory device to an authenticated state based on the verification that the secure capsule has been validly signed, wherein the memory device is capable of executing the one or more restricted commands while in the authenticated state.
[0005] Another aspect of this disclosure provides a computer-readable storage medium including instructions that, when executed by a processing device, configure the processing device to perform operations including: initializing a memory device to an unauthenticated state in which the memory device is unable to execute one or more restricted commands; accessing a secure capsule digitally signed using a private key; and verifying the secure capsule, the verification of the secure capsule including verifying that the secure capsule has been validly signed using a public key corresponding to the private key; and transforming the memory device to an authenticated state based on the verification of the secure capsule, the memory device being able to execute the one or more restricted commands while in the authenticated state. Attached Figure Description
[0006] This disclosure will be more fully understood from the detailed description given below and the accompanying drawings of various embodiments thereof.
[0007] Figure 1 This describes an instance computing environment including a memory subsystem according to some embodiments of the present disclosure.
[0008] Figure 2 This is a data flow diagram illustrating the interactions between components in the instance computing environment when using the restricted features of the memory device to enable the security capsule, according to some embodiments of the present disclosure.
[0009] Figure 3 This is a state diagram illustrating the behavior of a memory device according to an example embodiment.
[0010] Figure 4-6 This is a flowchart illustrating an example method for enabling restricted features of a memory device using a security capsule, according to some embodiments of the present disclosure.
[0011] Figure 7 This is a block diagram of an example computer system in which embodiments of this disclosure may be operated. Detailed Implementation
[0012] This disclosure relates to a security capsule for accessing restricted features of a memory device in a memory subsystem. The memory subsystem may be a storage device, a memory module, or a mixture of both. The following is combined with… Figure 1 Describe examples of storage devices and memory modules. Typically, a host system may utilize a memory subsystem, which includes one or more components, such as a memory device for storing data. The host system can provide data to be stored in the memory subsystem and can request to retrieve data from the memory subsystem.
[0013] Memory devices can be non-volatile memory devices. An example of a non-volatile memory device is a NAND flash memory device. (The following text is in conjunction with...) Figure 1 Other examples of non-volatile memory devices are described. For example, some memory devices, such as NAND memory devices, contain arrays of memory cells (e.g., flash cells) for storing data. Each cell contains a transistor, and within each cell, data is stored as a threshold voltage of the transistor based on the logic value of the cell (e.g., 0 or 1). Memory cells in these devices may be grouped into pages, which may refer to the logic cells of the memory device used to store data. For example, memory cells in a NAND memory device are horizontally connected to word lines at their control gates to form pages. For some types of memory devices (e.g., NAND), pages are grouped to form blocks (also referred to herein as “memory blocks”).
[0014] Data operations can be performed by the memory subsystem. These data operations can be host-initiated operations. For example, the host system can initiate data operations (e.g., write, read, erase, etc.) targeting the memory subsystem. The host system can send access requests (e.g., write commands, read commands) to the memory subsystem to store data on and read data from memory devices located on the memory subsystem.
[0015] Many memory subsystems support vendor-specific (VS) commands to leverage memory device capabilities beyond those defined by standardized commands in the device interface specification (e.g., SATA, NVMe, etc.). For example, most memory device vendors implement vendor-specific commands for high-level debugging and security enabling (e.g., security state modification) of device features.
[0016] Typically, memory devices are initialized to an unauthenticated state where only unrestricted VS commands can be processed by the memory device. Traditional memory subsystems employ security mechanisms to transition the memory device from an unauthenticated state to an authenticated state, in which restricted VS commands can be executed by the memory device. A command is considered restricted if it can cause a change in the behavior or state of the memory device, or if it can be used to extract confidential information. Traditional methods rely on host system interactions requiring access to protected resources such as Hardware Security Modules (HSMs) managed in a secure environment. HSMs are typically only accessible via Virtual Private Network (VPN) connections or direct network connections on the memory device manufacturer's corporate network; in some cases, USB-based portable HSMs may be used. Network-based HSMs can be problematic because their use is often limited to authorized personnel of the memory device manufacturer. Furthermore, even if authorized personnel are at a customer site, customer security policies may restrict VPN use. Portable USB HSMs can also be problematic due to limited availability and password import restrictions in some jurisdictions.
[0017] This disclosure addresses the above and other problems by using a secure capsule to enable restricted features in a memory device within a memory subsystem. Specifically, the secure capsule transforms the memory device from an unauthenticated state, where it is inaccessible to execute restricted commands for invoking restricted features, to an authenticated state, where the restricted commands are executable. The secure capsule is delivered to the memory subsystem using an in-band mechanism (e.g., firmware download). The secure capsule is digitally signed and verified using a dedicated private / public key pair. The memory subsystem can transform the memory device from an unauthenticated state to an authenticated state based on verification that the secure capsule has been validly signed.
[0018] Each security capsule includes a replay protection mechanism to prevent reuse. That is, once a security capsule is successfully downloaded to a storage device, it cannot be used again. The security capsule may be limited to use with a single storage device, or it may be made applicable to virtually any storage device. Advantageously, after the security capsule is constructed, it can be stored on portable media (e.g., a USB stick) or electronically transferred to a customer site.
[0019] The use of security capsules eliminates the challenges associated with networking and USB-based HSMs. Furthermore, security capsules allow for the secure activation of specific or all VS commands. Security capsules also reduce turnaround time associated with current methods. For example, security capsules can be pre-built and provided to customers on demand or when delivering storage devices to customers. Additionally, security capsules can be used to securely restrict the use of certain commands or allow only a subset of commands to be invoked.
[0020] Figure 1 This description describes an example computing environment 100 including a memory subsystem 110 according to some embodiments of the present disclosure. The memory subsystem 110 may include media, such as one or more volatile memory devices (e.g., memory device 140), one or more non-volatile memory devices (e.g., memory device 130), or a combination of such devices.
[0021] The memory subsystem 110 may be a storage device, a memory module, or a combination of a storage device and a memory module. Examples of storage devices include solid-state drives (SSDs), flash drives, universal serial bus (USB) flash drives, embedded multimedia controller (eMMC) drives, universal flash memory (UFS) drives, secure digital cards (SD cards), and hard disk drives (HDDs). Examples of memory modules include dual in-line memory modules (DIMMs), small form factor DIMMs (SO-DIMMs), and various types of non-volatile dual in-line memory modules (NVDIMMs).
[0022] The computing system 100 may be a computing device, such as a desktop computer, laptop computer, web server, mobile device, vehicle (e.g., airplane, drone, train, car or other means of transport), device with Internet of Things (IoT) capabilities, embedded computer (e.g., embedded computer contained in a vehicle, industrial equipment or networked commercial device), or such computing device containing memory and processing devices.
[0023] The computing system 100 may include multiple host systems coupled to one or more memory subsystems 110. In some embodiments, the host system 120 is coupled to different types of memory subsystems 110. Figure 1This describes an example host system 120 coupled to a memory subsystem 110. As used herein, “coupled to” or “coupled with” generally refers to a connection between components, which can be an indirect communication connection or a direct communication connection (e.g., without an intermediary component), whether wired or wireless, including connections such as electrical connections, optical connections, magnetic connections, etc.
[0024] Each host system 120 may include a processor chipset and a software stack executed by the processor chipset. The processor chipset may include one or more cores, one or more caches, a memory controller (e.g., an NVDIMM controller), and a storage protocol controller (e.g., a Peripheral Component Interconnect High Speed (PCIe) controller, a Serial Advanced Technology Attachment (SATA) controller). The host system 120 may use the memory subsystem 110 to, for example, write data to and read data from the memory subsystem 110.
[0025] Host system 120 can be coupled to memory subsystem 110 via a host interface. Examples of host interfaces include, but are not limited to, SATA interfaces, PCIe interfaces, USB interfaces, Fibre Channel, Serial Attached SCSI (SAS), Small Computer System Interface (SCSI), Dual Data Rate (DDR) memory bus, DIMM interfaces (e.g., DIMM socket interfaces supporting Dual Data Rate (DDR)), Open NAND Flash Interface (ONFI), Dual Data Rate (DDR), Low Power Dual Data Rate (LPDDR), or any other interface. The host interface can be used to transfer data between host system 120 and memory subsystem 110. When memory subsystem 110 is coupled to host system 120 via a PCIe interface, either host system 120 can also access components (e.g., memory device 130) using an NVM High Speed (NVMe) interface. The host interface provides an interface for transferring control, address, data, and other signals between memory subsystem 110 and host system 120. Figure 1 The memory subsystem 110 is described as an example. In general, the host system 120 can access multiple memory subsystems via the same communication connection, multiple separate communication connections, and / or a combination of communication connections.
[0026] Memory devices 130 and 140 may comprise any combination of different types of non-volatile memory devices and / or volatile memory devices. Volatile memory devices (e.g., memory device 140) may be, but are not limited to, random access memory (RAM), such as dynamic random access memory (DRAM) and synchronous dynamic random access memory (SDRAM).
[0027] Some examples of non-volatile memory devices (e.g., memory device 130) include NAND-type flash memory and in-place write memory, such as three-dimensional (3D) crosspoint memory devices, which are crosspoint arrays of non-volatile memory cells. Crosspoint arrays of non-volatile memory can perform bit storage based on changes in volume resistance in conjunction with stackable cross-grid data access arrays. Furthermore, compared to many flash-based memories, crosspoint non-volatile memory can perform in-place write operations, where non-volatile memory cells can be programmed without pre-erasing them. NAND-type flash memory includes, for example, two-dimensional NAND (2D NAND) and 3D NAND.
[0028] Each of the memory devices 130 may include one or more arrays of memory cells. One type of memory cell, such as a single-level cell (SLC), may store one bit per cell. Other types of memory cells, such as multi-level cell (MLC), three-level cell (TLC), four-level cell (QLC), and five-level cell (PLC), may store multiple bits per cell. In some embodiments, each of the memory devices 130 may include one or more arrays of memory cells, such as SLC, MLC, TLC, QLC, or any combination thereof. In some embodiments, a particular memory device may include an SLC portion, an MLC portion, a TLC portion, a QLC portion, or a PLC portion of memory cells. The memory cells of the memory device 130 may be grouped into pages, which may refer to logical cells of the memory device used to store data. For example, memory cells in a NAND memory device are horizontally connected to word lines at their control gates to form pages. For some types of memory (e.g., NAND), pages may be grouped to form blocks. In addition, word lines within a memory device can be organized into multiple word line groups, each containing one or more word lines, but each word line group contains fewer word lines than a block contains.
[0029] While a non-volatile memory assembly, such as a NAND flash memory (e.g., 2D NAND, 3D NAND) and a 3D cross-point array of non-volatile memory cells, is described, the memory device 130 may be based on any other type of non-volatile memory, such as read-only memory (ROM), phase-change memory (PCM), select memory, other chalcogenide-based memories, ferroelectric transistor random access memory (FeTRAM), ferroelectric random access memory (FeRAM), magnetic random access memory (MRAM), spin-transfer torque (STT)-MRAM, conductive bridged RAM (CBRAM), resistive random access memory (RRAM), oxide-based RRAM (OxRAM), NOR flash memory, and electrically erasable programmable read-only memory (EEPROM).
[0030] The memory subsystem controller 115 (or, for simplicity, controller 115) can communicate with the memory device 130 to perform operations, such as reading data, writing data, or erasing data at the memory device 130, and other such operations. The memory subsystem controller 115 may include hardware, such as one or more integrated circuits and / or discrete components, buffer memories, or combinations thereof. The hardware may include a digital circuit system with dedicated (i.e., hard-decoded) logic to perform the operations described herein. The memory subsystem controller 115 may be a microcontroller, a dedicated logic circuit system (e.g., a field-programmable gate array (FPGA), an application-specific integrated circuit (ASIC), etc.), or other suitable processor.
[0031] The memory subsystem controller 115 may include a processor 117 (processing device) configured to execute instructions stored in local memory 119. In the illustrated example, the local memory 119 of the memory subsystem controller 115 includes embedded memory configured to store instructions for executing various processes, operations, logic flows, and routines to control the operation of the memory subsystem 110, including handling communication between the memory subsystem 110 and the host system 120.
[0032] In some embodiments, local memory 119 may include memory registers storing memory pointers, retrieved data, etc. Local memory 119 may also include ROM for storing microcode. Although... Figure 1 The instance memory subsystem 110 is described as including a memory subsystem controller 115, but in another embodiment of this disclosure, the memory subsystem 110 does not include a memory subsystem controller 115 and may instead rely on external control (e.g., provided by an external host or by a processor or controller separate from the memory subsystem).
[0033] In general, the memory subsystem controller 115 can receive commands or operations from the host system 120 and can translate these commands or operations into instructions or appropriate commands to enable desired access to memory devices 130 and / or 140. The memory subsystem controller 115 may handle other operations such as wear leveling, unused cell collection, error detection and ECC operations, encryption, caching, and address translation between logical addresses (e.g., logical block addresses, namespaces) and physical addresses (e.g., physical block addresses) associated with memory device 130. The memory subsystem controller 115 may also include a host interface circuitry for communicating with the host system 120 via a physical host interface. The host interface circuitry can translate commands received from the host system 120 into command instructions to access memory devices 130 and / or 140, and translate responses associated with memory devices 130 and / or 140 into information for the host system 120.
[0034] In some embodiments, the memory device 130 includes a local media controller 135 that operates in conjunction with a memory subsystem controller 115 to perform operations on one or more memory cells of the memory device 130.
[0035] The memory subsystem 110 also includes an authentication component 113 responsible for authenticating security capsules received from the host system 120. For example, each security capsule is digitally signed, and the authentication component 113 authenticates the security capsule by verifying that it has been validly signed. The security capsule is used to enable restricted features of memory devices 130 and 140. For example, memory devices 130 and 140 are initialized to an unauthenticated state, in which they cannot execute restricted VS commands to invoke restricted features. The host system 120 may provide a security capsule to the authentication component 113 to access the restricted features of one of the memory devices 130 or 140, and once the authentication component 113 verifies the security capsule's validity, it transitions the memory device 130 or 140 to an authenticated state, in which commands to invoke the restricted features can be executed. Further details regarding the operation of the authentication component 113 are described below.
[0036] In some embodiments, the memory subsystem controller 115 includes at least a portion of the authentication component 113. For example, the memory subsystem controller 115 may include a processor 117 (processing means) configured to execute instructions stored in local memory 119 for performing the operations described herein. In some embodiments, at least a portion of the authentication component 113 is part of the host system 120, an application, or an operating system.
[0037] Figure 2 This is a data flow diagram illustrating the interactions between components in a secure communication environment when performing an example method for enabling restricted features of a memory device using a secure capsule, according to some embodiments of this disclosure. Figure 2 In this context, a public / private key pair—public key 200 and private key 201—can be pre-generated, and public key 200 can be pre-configured for authentication component 113 during manufacturing or in the field. Authentication component 113 stores public key 200 in a storage component (e.g., a ROM component, OTP circuitry, e-fuse (one-time programmable memory), or other dedicated hardware component). Private key 201 is protected in the HSM of the secure computing environment. Data can be digitally signed using private key 201, and the corresponding public key 200 can be used to verify the digital signature.
[0038] At point 202, host system 120 obtains security capsule 204. For example, security capsule 204 can be transferred to host system 120 electronically (e.g., via email). In another instance, host system 120 may obtain a portable storage device, such as a USB flash drive, that stores security capsule 204.
[0039] The security capsule 204 is a data structure (e.g., a vendor-defined data structure) containing a Manufacturing Identifier (MID) field 205, a counter value 206, and (in some embodiments) a command list 207. The MID field 205 is used to associate the security capsule 204 with a specific memory device. If a zero value is used, the security capsule 204 can be used with any memory device. If an actual MID (a non-zero value) is included in the MID field 205, the security capsule 204 can only be used with memory devices having the specified MID. The counter value 206 is used to support replay protection. That is, the counter value 206 is used to ensure that the security capsule 204 can only be used with a limited number of instances (e.g., once). The command list 207 specifies one or more permitted or prohibited commands. In some embodiments, the command list 207 may specify one or more restricted commands that can be accessed after successful capsule verification. For example, a memory device may support 100 restricted commands, but the command list 207 in the security capsule 204 may specify only 5 of the 100 restricted commands that will be enabled after capsule verification.
[0040] Use private key 201 to digitally sign secure capsule 204. That is, as follows: Figure 2 The security capsule 204 shown contains a digital signature 208.
[0041] exist Figure 2In the context of the example procedure described, memory device 130 is initialized to an unauthenticated state. In the unauthenticated state, certain restricted commands (e.g., restricted VS commands) cannot be issued to or executed by memory device 130. These restricted commands for invoking restricted features of memory device 130 can only be issued and executed by memory device 130 in the authenticated state. To transition memory device 130 to the authenticated state, host system 120 provides security capsule 204 to memory subsystem 110 at 209, where it is processed by authentication component 113. In response to receiving an authentication initiation command (not shown) from host system 120, memory device 130 is placed in an authenticating state. While in the authenticating state, authentication component 113 receives and verifies security capsule 204 at 210. Verification of security capsule 204 includes verifying that security capsule 204 has been validly signed. To verify that the security capsule 204 has been validly signed, the authentication component 113 uses the public key 200 to perform verification of the digital signature 208. If verification fails (e.g., if the security capsule 204 was signed using a revoked key or if it was signed with an invalid key), the authentication component 113 discards the security capsule 204 and returns the memory device 130 to an unauthenticated state. Additionally, the authentication component 113 maintains a retry counter, incrementing it if verification fails. The retry counter is compared to a maximum retry count, and when the maximum retry count is reached, the authentication component 113 ignores further attempts by the host system 120 to download the security capsule. That is, the authentication component 113 returns an error to the host system 120. If a power cycle occurs, or the security capsule has been successfully verified and the maximum retry count has not yet been reached, the retry counter is reset. In this way, the retry counter provides protection against brute-force attacks.
[0042] Verification of the security capsule 204 also includes verifying that the value in the MID field 205 corresponds to the memory device 130 and that the verification counter value 206 is equal to or greater than the counter 211 maintained by the authentication component 113. If any verification fails, the authentication component 113 discards the security capsule 204 and returns the memory device 130 to an unauthenticated state.
[0043] In response to successful verification of the security capsule 204, the authentication component 113 transitions the memory device 130 to an authenticated state at 212. In the authenticated state, the memory device 130 is capable of executing restricted commands (e.g., restricted VS commands) that are not allowed in the unauthenticated and authentication-in-progress states. Based on the successful verification of the security capsule 204, the authentication component 113 updates and increments the counter 211 based on the counter value 206.
[0044] Memory device 130 remains in an authenticated state until a power cycle event occurs, or until an authentication termination command is received from host system 120 to restore memory device 130 to an unauthenticated state. Memory subsystem 110 restores memory device 130 to an unauthenticated state in response to a power cycle event or in response to receiving the authentication termination command. See below for further details. Figure 4 Further details regarding various security states of the memory device 130 are discussed according to some embodiments.
[0045] Figure 3 This is a state diagram illustrating the behavior of a memory device (e.g., memory device 130 or 140) according to an example embodiment. As shown, the memory device is initialized to an unauthenticated state 300. While in unauthenticated state 300, the memory device cannot execute certain restricted commands (e.g., restricted VS commands) from host system 120. If an authentication termination command (“VS: End”) is received from host system 120, the memory device remains in unauthenticated state 300.
[0046] The memory device remains in the unauthenticated state 300 until a security capsule (e.g., security capsule 204) is received from the host system 120. Receipt of the security capsule causes the memory device to transition to the authentication in progress state 305. The host system 120 can use commands to provide the security capsule to the memory device. While in the authentication in progress state 305, the authentication component 113 performs authentication of the security capsule, which includes verifying that the security capsule has been validly signed, as noted above. If authentication fails, a power cycle occurs, or an authentication termination command (“VS: End”) is received from the host system 120, the memory device returns to the unauthenticated state 300.
[0047] If authentication is successful, the memory device transitions to authenticated state 310. While in authenticated state 310, the memory device is able to accept and execute restricted commands from host system 120. The memory device remains in authenticated state 310 until a power cycle occurs or until an authentication termination command is received from host system 120.
[0048] Figure 4-6This is a flowchart illustrating an example method 400 for replacing an authentication key using a security capsule in a memory subsystem, according to some embodiments of this disclosure. Method 400 can be executed by processing logic, which may include hardware (e.g., processing device, circuit system, dedicated logic, programmable logic, microcode, device hardware, integrated circuit, etc.), software (e.g., instructions that run or execute on the processing device), or a combination thereof. In some embodiments, method 400 is performed by… Figure 1 The authentication component 113 is executed. Although the processes are shown in a specific order or sequence, the order of the processes may be modified unless otherwise specified. Therefore, the illustrated embodiments should be understood as examples only, and the illustrated processes may be executed in different orders, and some processes may be executed in parallel. In addition, one or more processes may be omitted in various embodiments. Therefore, not all processes are required in every embodiment. Other process flows are also possible.
[0049] At operation 405, the processing device initializes a memory device (e.g., memory device 130) to an unauthenticated state. When in an unauthenticated state, the memory device cannot execute at least some restricted commands. For example, when in an unauthenticated state, the memory device cannot execute restricted VS commands to invoke certain restricted functions. In some cases, these commands correspond to vendor-proprietary commands. That is, in some embodiments, the memory device cannot execute vendor-proprietary commands.
[0050] The processing device switches the memory device to an authentication in progress state (operation 410) in response to receiving the security capsule. The security capsule may be provided with commands received from the host system (e.g., host system 120).
[0051] At operation 415, the processing device accesses a secure capsule digitally signed using a private key. The private key corresponds to a public / private key pair, and the public key of the pair can be maintained by the processing device. The secure capsule can be digitally signed in a secure environment using a digital signature algorithm (e.g., RSASA, Elliptic Curve Digital Signature Algorithm (EC-DSA), etc.).
[0052] A security capsule can be received from a host system. In some embodiments, receiving a security capsule includes receiving one or more commands from the host system via a host system interface. For example, the security capsule may be provided by the host system as part of an authentication initiation command or part of a subsequent command.
[0053] At operation 420, the processing device verifies the security capsule while authentication is in progress. As part of verifying the security capsule, the processing device uses a public key to verify that the security capsule has been validly signed. In other words, the processing device uses the public key to determine whether the digital signature of the security capsule is valid. The processing device verifies the digital signature against the digital signature algorithm used to create the digital signature (e.g., RSASA, EC-DSA, etc.). If the security capsule is invalid (e.g., because the digital signature is invalid), the processing device may discard the security capsule, create an entry in the error log, and return the error to the host system. Additionally, the processing device may maintain a retry counter to prevent brute-force attacks. For example, if the security capsule is invalid, the processing device increments the retry counter. The processing device compares the retry counter to a maximum retry count, and once the retry counter reaches the maximum retry count, the processing device ignores further attempts to download the security capsule. If a power cycle occurs, or the security capsule has been successfully verified and the maximum retry count has not yet been reached, the retry counter is reset.
[0054] In some embodiments, authentication of the security capsule includes authentication combined with security credentials (e.g., a password or PIN) provided by the security capsule. For example, the security credentials may be provided by the host system in an authentication initiation command or a subsequent command providing the security capsule. The security credentials may be subject to a maximum retry limit. For example, the processing device may utilize a retry counting mechanism for the security credentials, which provides resistance to brute-force and guessing attacks.
[0055] At operation 425, the processing device switches the memory device to an authenticated state in response to verifying the security capsule. While in the authenticated state, the memory device can execute restricted commands that are not allowed in the unauthenticated or authentication-in-progress states. The memory device remains in the authenticated state until it undergoes a power cycle or until a command to switch back to the unauthenticated state is issued to the memory device.
[0056] like Figure 5 As shown, in some embodiments, method 400 may include operations 505, 510, 515, and 520. According to these embodiments, operations 505, 510, 515, and 520 may be performed as part of operation 420 in which the processing device verifies the safety capsule.
[0057] At operation 505, the processing device authenticates the security credentials associated with the security capsule. For example, a password or PIN may be established as the initial authentication mechanism for the security capsule, and the password or PIN may be provided in conjunction with the security capsule (e.g., as part of an authentication initiation command).
[0058] As noted above, the secure capsule contains a digital signature (e.g., digital signature 208), a MID (e.g., MID 205), and a counter value (e.g., counter value 206). At operation 510, the processing device verifies the digital signature. The processing device uses the public key corresponding to the public / private key pair to verify the digital signature. If verification fails (e.g., if the secure capsule was signed using a revoked key or if the secure capsule was signed with an invalid key), the processing device discards the secure capsule and returns the memory device to an unauthenticated state.
[0059] At operation 515, the processing device verifies that the MID corresponds to the memory device. That is, the processing device verifies that the MID contained in the security capsule matches the MID of the memory device. In some cases, the MID in the security capsule may be a value used to indicate that the security capsule can be used with any memory device (e.g., all zeros). In these cases, the processing device successfully verifies the MID in the security capsule regardless of the MID of the memory device.
[0060] At operation 520, the processing device verifies the counter in the security capsule. To verify the counter contained in the security capsule, the processing device verifies that the counter contained in the security capsule is equal to or greater than the counter maintained by the processing device. If the MID or counter verification fails, the processing device discards the security capsule 204 and returns the memory device 130 to an uncertified state.
[0061] like Figure 6 As shown, in some embodiments, method 400 may include operations 605, 610, 615, and 620. According to these embodiments, operations 605, 610, 615, and 620 may be performed as part of operation 420 in which the processing device verifies the safety capsule.
[0062] At operation 605, the processing device receives a command. The command may be received from the host system or based on a command from the host system. At operation 610, the processing device determines whether the command is a permitted command type. The processing device determines whether the command is a permitted command type based on a list of commands included with the safety capsule (e.g., command list 207). Depending on the embodiment, the command list may specify prohibited or permitted command types. The processing device may determine whether the command is a permitted command type based on whether its command type is included in the list of permitted command types or not included in the list of prohibited command types.
[0063] If the processing device determines that the command corresponds to a permitted command type, the processing device enables the execution of the command at operation 615. That is, depending on the embodiment, the processing device may execute the command or cause the component to execute the command by providing an appropriate command or instruction to another component, such as a local media controller.
[0064] If the processing device determines that the command is a prohibited command type, the processing device aborts the command at operation 620. The processing device may further provide the host system with an indication that the command is prohibited and / or the command has been aborted.
[0065] In view of the above disclosure, various examples are described below. It should be noted that one or more features of an example used independently or in combination should be considered as being within the disclosure of this application.
[0066] Example 1 is a system including a memory device and a processing device coupled to the memory device, the processing device being configured to perform operations including: initializing the memory device to an unauthenticated state, in which the memory device is unable to execute one or more restricted commands; accessing a secure capsule digitally signed using a private key; and transforming the memory device to an authenticated state based on verification using a public key corresponding to the private key that the secure capsule has been validly signed, the memory device being able to execute the one or more restricted commands in the authenticated state.
[0067] Example 2 includes the system of Example 1, wherein the operation further includes: verifying the security capsule before transforming the memory device to the authenticated state, the verification of the security capsule including verifying that the security capsule has been validly signed.
[0068] Example 3 includes a system comprising any one or more of Examples 1 or 2, wherein: the security capsule includes a manufacturing identifier; and the verification of the security capsule further includes verifying that the manufacturing identifier corresponds to the memory device.
[0069] Example 4 includes a system comprising any one or more of Examples 1-3, wherein: the security capsule includes a first counter value; the memory device maintains a second counter value; and the verification of the security capsule further includes determining that the second counter value is greater than or equal to the first counter value before transitioning to the authenticated state.
[0070] Example 5 includes a system of any one or more of Examples 1-4, wherein the operation further includes: updating the second counter value based on the first counter value.
[0071] Example 6 includes a system of any one or more of Examples 1-5, wherein the verification of the security capsule further includes authenticating the security credentials provided by the security capsule.
[0072] Example 7 includes a system comprising any one or more of Examples 1-6, wherein: the security capsule specifies a list of command types; and the operation further includes: receiving a command when the memory device is in the authenticated state; and determining whether the command is a prohibited command type based on the list of command types.
[0073] Example 8 includes a system comprising any one or more of Examples 1-7, wherein the operation further includes: suspending the command based on determining that the command is a prohibited command type.
[0074] Example 9 includes a system comprising any one or more of Examples 1-8, wherein the operation further includes: restoring the memory device to the unauthenticated state in response to a power cycling event.
[0075] Example 10 includes a system comprising any one or more of Examples 1-9, wherein the operation further includes: restoring the memory device to the unauthenticated state in response to an authentication termination command.
[0076] Example 11 is a method comprising: initializing a memory device to an unauthenticated state in which the memory device is incapable of executing one or more restricted commands; accessing a secure capsule digitally signed with a private key; verifying that the secure capsule has been validly signed using a public key corresponding to the private key; and transitioning the memory device to an authenticated state based on the verification that the secure capsule has been validly signed, wherein the memory device is capable of executing the one or more restricted commands while in the authenticated state.
[0077] Example 12 includes the method of Example 11, and further includes: verifying the security capsule before transforming the memory device to the authenticated state, wherein the verification of the security capsule includes verifying that the security capsule has been validly signed.
[0078] Example 13 includes the method of any one or more of Examples 11 or 12, wherein: the security capsule includes a manufacturing identifier; and the verification of the security capsule further includes verifying that the manufacturing identifier corresponds to the memory device.
[0079] Example 14 includes the method of any one or more of Examples 11-13, wherein: the security capsule includes a first counter value; the memory device maintains a second counter value; and the verification of the security capsule further includes determining that the second counter value is less than or equal to the first counter value before transitioning to the authenticated state.
[0080] Example 15 includes the method of any one or more of Examples 11-14, and further includes: updating the second counter value based on the first counter value.
[0081] Example 16 includes the method of any one or more of Examples 11-15, wherein the verification of the security capsule further includes authenticating the security credentials provided by the security capsule.
[0082] Example 17 includes the method of any one or more of Examples 11-16, wherein: the security capsule specifies a list of command types; and the method further includes: receiving a command when the memory device is in the authenticated state; and determining whether the command is a prohibited command type based on the list of command types.
[0083] Example 18 includes the method of any one or more of Examples 11-17, and further includes: suspending the command based on determining that the command is a prohibited command type.
[0084] Example 19 includes the method of any one or more of Examples 11-18, and further includes: restoring the memory device to the unauthenticated state in response to a power cycle event or authentication termination command.
[0085] Example 20 is a computer-readable storage medium including instructions that, when executed by a processing device, configure the processing device to perform operations including: initializing a memory device to an unauthenticated state in which the memory device is unable to execute one or more restricted commands; accessing a secure capsule digitally signed with a private key; and verifying the secure capsule, the verification of the secure capsule including verifying that the secure capsule has been validly signed using a public key corresponding to the private key; and transforming the memory device to an authenticated state based on the verification of the secure capsule, the memory device being able to execute the one or more restricted commands while in the authenticated state.
[0086] Figure 7 An example machine in the form of a computer system 700 is described, within which an instruction set is executable to cause the machine to perform any one or more methods discussed herein. Figure 7 An example machine is described as a computer system 700, within which an instruction set is executable to cause the machine to perform any one or more methods discussed herein. In some embodiments, computer system 700 may correspond to including, coupled to, or utilizing a memory subsystem (e.g., Figure 1 The host system (e.g., memory subsystem 110) of the memory subsystem 110 Figure 1 The host system 120, or a system that can be used to perform controller operations (e.g., run an operating system to perform operations related to...). Figure 1(The operation corresponding to authentication component 113). In an alternative embodiment, the machine may be connected (e.g., networked) to other machines in a local area network (LAN), intranet, extranet, and / or the Internet. The machine may operate as a peer machine in a peer-to-peer (or distributed) network environment or as a server or client machine in a cloud computing infrastructure or environment, with the capabilities of a server or client machine in a client-server network environment.
[0087] The machine may be a personal computer (PC), tablet PC, set-top box (STB), personal digital assistant (PDA), cellular phone, network device, server, network router, switch, or bridge, or any machine capable of (sequentially or otherwise) executing a set of instructions specifying actions to be taken by the machine. Furthermore, although a single machine has been described, the term "machine" should be understood to include any collection of machines that individually or collectively execute a set (or more) of instructions to perform any of the methods discussed herein.
[0088] The example computer system 700 includes a processing device 702 that communicates with each other via a bus 730, a main memory 704 (e.g., ROM, flash memory, DRAM such as SDRAM or RDRAM, etc.), a static memory 706 (e.g., flash memory, static random access memory (SRAM), etc.), and a data storage system 718.
[0089] Processing device 702 represents one or more general-purpose processing devices, such as microprocessors, central processing units, etc. More specifically, the processing device may be a Complex Instruction Set Computing (CISC) microprocessor, a Reduced Instruction Set Computing (RISC) microprocessor, a Very Long Instruction Word (VLIW) microprocessor, or a processor implementing other instruction sets, or a combination of instruction sets. Processing device 702 may also be one or more special-purpose processing devices, such as ASICs, FPGAs, digital signal processors (DSPs), network processors, etc. Processing device 702 is configured to execute instructions 726 for performing the operations and steps discussed herein. Computer system 700 may also include a network interface device 708 for communication via network 720.
[0090] The data storage system 718 may include a machine-readable storage medium 724 (also referred to as a computer-readable medium) storing one or more sets of instructions 726 or software embodying any one or more methods or functions described herein. The instructions 726 may also reside wholly or at least partially within main memory 704 and / or processing device 702 during execution by computer system 700, the main memory 704 and processing device 702 also constituting machine-readable storage media. The machine-readable storage medium 724, the data storage system 718, and / or main memory 704 may correspond to... Figure 1The memory subsystem 110.
[0091] In one embodiment, instruction 726 includes instructions for implementing a security component (e.g., Figure 1 The machine-readable storage medium 724 is shown as a single medium in the exemplary embodiment, but the term "machine-readable storage medium" should be considered to include a single medium or multiple media storing one or more sets of instructions. The term "machine-readable storage medium" should also be considered to include any medium capable of storing or encoding a set of instructions for machine execution and causing the machine to perform any one or more methods of this disclosure. Therefore, the term "machine-readable storage medium" should be considered to include, but is not limited to, solid-state memory, optical media, and magnetic media.
[0092] Some parts of the previously described algorithms and symbolic representations of operations on data bits within computer memory have been presented. These algorithmic descriptions and representations are the means by which those skilled in the art of data processing most effectively communicate the essence of their work to others skilled in the art. Algorithms here, and generally are considered, are self-consistent sequences of operations that produce desired results. These operations are those that require physical manipulation of physical quantities. These quantities are typically, but not necessarily, in the form of electrical or magnetic signals that can be stored, combined, compared, and otherwise manipulated. It has proven convenient, primarily for general reasons, to refer to these signals as bits, values, elements, symbols, characters, items, numbers, etc.
[0093] However, it should be remembered that all these and similar terms should be associated with appropriate physical quantities and are merely convenient labels applied to those quantities. This disclosure may refer to the actions and processes of a computer system or similar electronic computing device that manipulate and transform data represented as physical (electronic) quantities in the registers and memories of the computer system into other data similarly represented as physical quantities in the computer system's memory or registers or other such information storage systems.
[0094] This disclosure also relates to apparatus for performing the operations described herein. Such apparatus may be specifically constructed for a particular purpose, or may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in a computer. Such computer programs may be stored in computer-readable storage media, each coupled to a computer system bus, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic cards, or optical cards, or any type of media suitable for storing electronic instructions.
[0095] The algorithms and demonstrations presented herein are not inherently related to any particular computer or other device. Various general-purpose systems can be used with the programs taught herein, or it may be proven convenient to construct more specialized devices to perform the methods. The architectures of various such systems will be presented as described below. Furthermore, this disclosure is described without reference to any particular programming language. It should be understood that the teachings of this disclosure described herein can be implemented using various programming languages.
[0096] This disclosure can be provided as a computer program product or software, which may include a machine-readable medium having instructions stored thereon that can be used to program a computer system (or other electronic device) to perform processes according to this disclosure. The machine-readable medium includes any mechanism for storing information in a machine-readable (e.g., computer-readable) form. In some embodiments, the machine-readable (e.g., computer-readable) medium includes machine-readable storage media, such as ROM, RAM, disk storage media, optical storage media, flash memory components, etc.
[0097] In the foregoing description, embodiments of the present disclosure have been described with reference to specific examples. It will be apparent that various modifications can be made to the present disclosure without departing from the broader spirit and scope of the embodiments set forth in the appended claims. Therefore, the description and drawings should be viewed in an illustrative rather than restrictive sense.
Claims
1. A system for memory operations, comprising: Memory devices; as well as A processing device coupled to the memory device, the processing device being configured to perform operations including the following: The memory device is initialized to an unauthenticated state in which the memory device is unable to execute one or more restricted commands; Access a secure capsule that has been digitally signed using a private key, the secure capsule specifying a manufacturing identifier; Verifying the security capsule, wherein the verification of the security capsule includes verifying that the manufacturing identifier specified by the security capsule corresponds to the memory device; as well as The memory device is switched to an authenticated state based on verifying the security capsule and verifying that the security capsule has been validly signed using the public key corresponding to the private key. The memory device is able to execute one or more restricted commands while in the authenticated state.
2. The system of claim 1, wherein verifying that the manufacturing identifier specified by the safety capsule corresponds to the memory device includes verifying that the manufacturing identifier specified by the safety capsule matches the manufacturing identifier of the memory device.
3. The system of claim 1, wherein verifying that the manufacturing identifier specified by the safety capsule corresponds to the memory device includes determining that the manufacturing identifier specified by the safety capsule indicates that the safety capsule can be used with any memory device.
4. The system according to claim 1, wherein: The safety capsule includes a first counter value; The memory device maintains the second counter value; and The verification of the safety capsule also includes determining that the second counter value is less than or equal to the first counter value before transitioning to the certified state.
5. The system according to claim 4, wherein the operation further comprises: Update the second counter value based on the first counter value.
6. The system of claim 4, wherein the verification of the security capsule further includes authenticating a security credential provided by the security capsule.
7. The system according to claim 1, wherein: The security capsule specifies a list of command types; and The operation also includes: Receive commands when the memory device is in the authenticated state; as well as The list of command types is used to determine whether a command is a prohibited command type.
8. The system of claim 7, wherein the operation further comprises: The command is aborted based on the determination that it is a prohibited command type.
9. The system according to claim 1, wherein the operation further comprises: In response to a power cycling event, the memory device is restored to the unauthenticated state.
10. The system of claim 1, wherein the operation further comprises: In response to an authentication termination command, the memory device is restored to the unauthenticated state.
11. A method for memory operations, comprising: The memory device is initialized to an unauthenticated state in which the memory device is unable to execute one or more restricted commands; Access a secure capsule that has been digitally signed using a private key, the secure capsule specifying a manufacturing identifier; Verifying the security capsule, wherein the verification of the security capsule includes verifying that the manufacturing identifier specified by the security capsule corresponds to the memory device; as well as Use the public key corresponding to the private key to verify that the security capsule has been validly signed; The memory device is switched to an authenticated state based on the verification of the security capsule and the verification that the security capsule has been validly signed. The memory device is able to execute one or more restricted commands while in the authenticated state.
12. The method of claim 11, wherein verifying that the manufacturing identifier specified by the safety capsule corresponds to the memory device includes verifying that the manufacturing identifier specified by the safety capsule matches the manufacturing identifier of the memory device.
13. The method of claim 11, wherein verifying that the manufacturing identifier specified by the safety capsule corresponds to the memory device includes determining that the manufacturing identifier specified by the safety capsule indicates that the safety capsule can be used with any memory device.
14. The method of claim 11, wherein: The safety capsule includes a first counter value; The memory device maintains the second counter value; and The verification of the safety capsule also includes determining that the second counter value is less than or equal to the first counter value before transitioning to the certified state.
15. The method of claim 14, further comprising: Update the second counter value based on the first counter value.
16. The method of claim 14, wherein the verification of the safety capsule further includes authenticating a security credential provided by the safety capsule.
17. The method of claim 11, wherein: The security capsule specifies a list of command types; and The method further includes: Receive commands when the memory device is in the authenticated state; as well as The list of command types is used to determine whether a command is a prohibited command type.
18. The method of claim 17, further comprising: The command is aborted based on the determination that it is a prohibited command type.
19. The method of claim 11, further comprising: The memory device is restored to the uncertified state in response to a power cycle event or an authentication termination command.
20. A computer-readable storage medium including instructions that, when executed by a processing means, configure the processing means to perform operations including: The memory device is initialized to an unauthenticated state in which the memory device is unable to execute one or more restricted commands; Access a secure capsule that has been digitally signed using a private key, the secure capsule specifying a manufacturing identifier; as well as Validating the safety capsule, the validation of the safety capsule includes: The public key corresponding to the private key is used to verify that the secure capsule has been validly signed; and Verify that the manufacturing identifier specified by the safety capsule corresponds to the memory device; and Based on the verification of the security capsule, the memory device is switched to an authenticated state, and the memory device is able to execute the one or more restricted commands while in the authenticated state.