CN116933242A - 单次使用密码产生 - Google Patents

单次使用密码产生 Download PDF

Info

Publication number
CN116933242A
CN116933242A CN202310977451.XA CN202310977451A CN116933242A CN 116933242 A CN116933242 A CN 116933242A CN 202310977451 A CN202310977451 A CN 202310977451A CN 116933242 A CN116933242 A CN 116933242A
Authority
CN
China
Prior art keywords
key
password
request
cryptographic
processing device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202310977451.XA
Other languages
English (en)
Inventor
J·鲁安
R·W·斯特朗
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
Publication of CN116933242A publication Critical patent/CN116933242A/zh
Pending legal-status Critical Current

Links

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN

Abstract

本公开涉及单次使用密码产生。从主机系统接收密码产生的请求。响应于接收到所述请求,基于密钥导出种子产生密码导出密钥。密码是从所述密码导出秘钥导出,且包装秘钥是从所述密码导出。所述包装密钥用于包装存储在本地内存中的授权状态指示。经加密数据是使用非对称加密密钥基于所述密钥导出种子的加密来产生。所述经加密数据是响应于所述请求而提供。

Description

单次使用密码产生
分案申请的相关信息
本案是分案申请。该分案的母案是申请日为2020年11月06日、申请号为202080085398.7、发明名称为“单次使用密码产生”的发明专利申请案。
优先权申请
此申请案主张2019年11月7日申请的序列号为16/677,270的美国申请案的优先权的权益,所述申请案的全部内容以引用的方式并入本文中。
技术领域
本公开的实施例大体上涉及存储器子系统,且更具体来说,涉及用于在存储器子系统中使用的单次密码产生。
背景技术
存储器子系统可为存储系统(例如固态硬盘(SSD)),且可包含存储数据的一或多个存储器组件。举例来说,所述存储器组件可为非易失性存储器组件及易失性存储器组件。一般来说,主机系统可利用存储器子系统以将数据存储于存储器组件处及从存储器组件检索数据。
附图说明
从下面给出的详细描述及从本公开的各种实施例的附图中,将更全面地理解本公开。
图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。
图2是根据本公开的一些实施例的说明在执行用于产生及使用单次使用密码的实例方法时安全通信环境中的组件之间的交互的数据流程图。
图3A及3B是说明根据本公开的一些实施例的在执行用于单次使用密码产生及认证的实例方法时安全通信环境中的组件之间的交互的泳道图。
图4是说明根据本公开的一些实施例产生的密码对象的组件的框图。
图5到7是根据本公开的一些实施例的用于在存储器子系统中进行单次使用密码产生及认证的实例方法的流程图。
图8A到8C是说明根据本公开的一些实施例的实例认证会话过程的流程图。
图9是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的方面涉及存储器子系统中的单次使用密码产生及认证。存储器子系统在下文中也被称为“存储器装置”。存储器子系统的实例是存储系统,例如SSD。在一些实施例中,存储器子系统是混合存储器/存储子系统。一般来说,主机系统可利用包含一或多个存储器组件的存储器子系统。主机系统可提供待存储在存储器子系统处的数据,并且可请求待从存储器子系统检索的数据。存储器子系统控制器通常从主机系统接收命令或操作,并将命令或操作转换为指令或适当命令以实现对存储器子系统的存储器组件的期望存取。
存储器子系统可存储应仅由特定授权的用户(如现场工程师)存取的机密、专有或其它敏感信息。作为此信息的实例,存储器子系统可维护并存储调试日志,所述调试日志包含关于存储器子系统的操作的信息,所述信息可用于诊断及校正在存储器子系统上发生的问题。在许多例子中,此类型的敏感信息需要传达到由被授权存取信息的人员操作的外部计算机器(如服务器)。在常规存储器子系统的情况下,由于缺乏安全性协议,从存储器子系统检索信息及将信息传达到外部计算机两者都容易受到窥探。常规存储器子系统的这些安全性漏洞可能导致对其中包含的敏感信息的未经授权存取。
公钥基础设施(PKI)通常在这些通信中用于对敏感信息进行加密签名及验证,并且以此方式,可导出来源信任及检测未经授权修改的能力。
PKI的实例用途包含固件签名及验证,以及可能损害存储器子系统的安全性的命令授权。在某些实施方案中,非对称加密密钥对的公钥由存储器子系统维护以执行验证过程,而私钥由安全系统的硬件安全性模块(HSM)保护,所述安全系统位于存储器子系统外部且独立于存储器子系统。
Rivest-Shamir-Adleman(RSA)PKI操作允许加密及解密操作。通过公钥加密的数据仅能够通过对应私钥解密。如果此私钥在外部安全系统处得到保护,那么存储器子系统可对敏感信息进行加密,所述敏感信息可从存储器子系统传出,并通过未经保护的通道输送到安全系统用于在安全系统处解密。为促进经加密敏感信息的此传达,用户(通常是现场应用工程师(FAE))必须直接或通过虚拟专用网络存取专有网络,以与安全系统通信。然而,在其中部署存储器子系统的某些环境中,不可能存取外部网络。这些环境的网络存取限制对安全解锁及查询存储器子系统(例如,用于调试目的)提出困难的挑战。
本公开的方面通过实施用于在存储器子系统处产生单次使用密码的安全机制来解决上述及其它缺陷。虽然密码本身不存储在存储器子系统处,但可从其导出密码的信息安全地传送到安全服务器用于重新产生密码。一旦安全服务器从信息重新产生密码,就将其传回到请求用户(例如,FAE),所述用户可使用其解锁存储器子系统或执行特权命令。
与一些实施例一致,产生包括公钥及私钥的非对称密钥对,并且向存储器子系统控制器供应公钥以加密敏感信息。向安全服务器供应私钥以解密敏感信息。主机系统可请求从存储器子系统产生密码,并且存储器子系统用密码重新产生对象作出响应,所述密码重新产生对象包含经加密数据,所述经加密数据包括可从其导出密码的密钥导出种子。存储器子系统的安全性组件使用公钥来产生经加密数据。由于仅安全服务器具有私钥,因此仅安全服务器可存取密钥导出种子并从其导出密码。因此,主机系统的用户可将密码对象转发到安全服务器作为密码重新产生请求的部分,且安全服务器又使用私钥解密经加密数据,并使用密钥导出种子来导出响应于请求而传回的密码。
在一些实施例中,存储器子系统的安全性组件使用随机或伪随机数产生器产生密钥导出种子,并使用密钥导出函数(KDF)从密钥导出种子导出密码导出密钥。安全性组件使用密码导出函数(PDF)从密码导出密钥导出密码。安全性组件使用基于密码的密钥导出函数(PBKDF)从密码导出包装密钥以包装授权/解锁状态指示。安全性组件在本地存储器中存储经包装授权/解锁状态指示,而不是密码本身。安全性组件使用公钥产生包含密钥导出种子的经加密数据,并产生包含经加密数据的密码导出对象。密码对象响应于请求而提供。
在响应于请求接收到密码对象后,主机系统的用户可向安全服务器提交包含密码对象的密码重新产生请求。安全服务器使用对应私钥来解密密码对象中的经加密数据。安全服务器使用KDF从经解密数据中包含的密钥导出种子导出密码导出密钥,且安全服务器使用PDF从密码导出密钥导出密码。安全服务器响应于密码重新产生请求提供密码。在接收到密码后,用户可使用密码来解锁存储器子系统。在被用于解锁存储器子系统之后,密码可能永远不会再次被使用。因此,密码仅可使用一次。
利用上文描述的安全性协议通过防止未经授权方存取敏感信息减少了常规存储器子系统中存在的敏感信息的通信中的漏洞。举例来说,在最坏的情况下,仅经加密数据而不是原始数据可经由窥探存取。另外,安全性协议提供一种供经授权人员从存储器子系统安全存取敏感信息的安全机制。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112-1到112-N。存储器组件112-1到112-N可为易失性存储器组件、非易失性存储器组件或此组合。在一些实施例中,存储器子系统110是存储系统。存储系统的实例是SSD。在一些实施例中,存储器系统110是混合存储器/存储子系统。一般来说,计算环境100可包含使用存储器子系统110的主机系统120。举例来说,主机系统120可将数据写入存储器子系统110并从存储器子系统110读取数据。
主机系统120可为例如桌上型计算机、膝上型计算机、网络服务器、移动装置的计算装置,或者包含存储器及处理装置的此计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或向存储器子系统110写入数据。主机系统120可经由物理主机接口耦合到存储器子系统110。如本文使用,“耦合到”通常指组件之间的连接,其可为间接通信连接或直接通信连接(例如,没有中间组件),无论是有线还是无线,包含例如电连接、光学连接、磁连接及类似者的连接。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道接口、串行附接SCSI(SAS)接口等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。主机系统120可进一步利用NVM快速(NVMe)接口以在存储器子系统110通过PCIe接口与主机系统120耦合时存取存储器组件112-1到112-N。所述物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。
存储器组件112-1到112-N可包含不同类型的非易失性存储器组件及/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(NAND)型快闪存储器。存储器组件112-1到112-N中的每一者可包含一或多个存储器单元阵列,例如单电平单元(SLC)或多电平单元(MLC)(例如,三电平单元(TLC)或四电平单元(QLC))。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分及MLC部分两者。存储器单元中的每一者可存储由主机系统120使用的一或多个数据位(例如,数据块)。尽管描述例如NAND型闪存的非易失性存储器组件,但是存储器组件112-1到112-N可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112-1到112-N可为(但不限于)随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、或非(NOR)闪存、电可擦可编程只读存储器(EEPROM)以及非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可根据体电阻的变化与可堆叠的交叉网格数据存取阵列一起执行位存储。另外,与许多基于快闪的存储器相反,交叉点非易失性存储器可执行就地写入操作,其中可对非易失性存储器单元进行编程而无需事先擦除非易失性存储器单元。此外,如上所述,存储器组件112-1到112-N的存储器单元可被分组为数据块,其可是指用于存储数据的存储器组件的单位。
存储器子系统控制器115(此后称为“控制器”)可与存储器组件112-1到112-N通信以执行例如在存储器组件112-1到112-N处读取数据、写入数据或擦除数据的操作以及其它此类操作。控制器115可包含例如一或多个集成电路及/或离散组件、缓冲存储器或其组合的硬件。控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适处理器。控制器115可包含经配置以执行存储在本地存储器119中的指令的处理器(处理装置)117。在所说明实例中,控制器115的本地存储器119包含经配置以存储用于执行控制存储器子系统110的操作的各种过程、操作、逻辑流程的指令的嵌入式存储器,所述操作包含处置存储器子系统110与主机系统120之间的通信。在一些实施例中,本地存储器119可包含存储存储器指针、提取数据等的存储寄存器。本地存储器119还可包含用于存储微代码的ROM。尽管图1中的实例存储器子系统110已经说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可不包含控制器115,而是可依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,控制器115可从主机系统120接收命令或操作,并且可将命令或操作转换为指令或适当命令以实现对存储器组件112-1到112-N的期望存取。控制器115可负责其它操作,例如损耗均衡操作、垃圾收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作及与存储器组件112-1到112-N相关联的逻辑块地址及物理块地址之间的地址转译。控制器115可进一步包含主机接口电路系统以经由物理主机接口与主机系统120通信。主机接口电路系统可将从主机系统120接收的命令转换为命令指令以存取存储器组件112-1到112-N,以及将与存储器组件112-1到112-N相关联的响应转换为用于主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含可从控制器115接收地址并解码所述地址以存取存储器组件112-1到112-N的高速缓存或缓冲器(例如,DRAM)及地址电路系统(例如,行解码器及列解码器)。
存储器子系统110还包含安全性组件113,其促进与存储器子系统110的安全通信。安全性组件113可包含在控制器115或存储器组件112-1到112-N中的任何一或多者中。在一些实施例中,控制器115包含安全性组件113的至少一部分。举例来说,控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的用于执行本文描述的操作的指令。在一些实施例中,安全性组件113是主机系统120、应用程序或操作系统的部分。
安全性组件113负责产生密码对象,并基于从其导出的密码授权存取由存储器子系统110存储的数据。更具体地说,安全性组件113产生可从其导出单次使用密码的密码对象。每一单次使用密码仅可用于解锁存储器子系统110一次。密码本身不由安全性组件113或存储器子系统110的任何其它组件存储。而是,安全性组件113产生并存储可与密码进行比较以验证正在使用正确密码的数据。在密码用于解锁存储器子系统110之后,用于验证密码的基础数据被丢弃。
安全性组件113从主机系统120接收密码产生请求,并响应于所述请求向主机系统120提供密码对象。密码对象包含经加密数据,所述经加密数据包括密钥导出种子,密码导出密钥可从所述密钥导出种子导出并用于导出密码。安全性组件113可进一步包含密钥存储区109以存储由安全性组件113用于加密信息的一或多个加密密钥。在一些实施例中,密钥存储区109在存储器子系统控制器115(例如,本地存储器119)的本地存储器内实施。在一些实施例中,密钥存储区109在存储器组件112-1到112-N中的一或多者内实施。
安全性组件113还接收用于存取存储器子系统110的认证请求。每一认证请求包含密码,所述密码可由负责从由安全性组件113产生的密码对象导出密码的安全服务器提供到主机系统120的用户(例如,现场工程师)。安全性组件113将密码与所存储信息进行比较以确定密码是否正确,且如果是,那么安全性组件113提供解锁/授权指示,解锁存储器子系统110,并丢弃用于确定密码是否正确的所存储信息。
安全性组件113可经由物理主机接口或本机边带通信端口(例如,通用异步接收器/发射器(UART)端口或支持双向通信的其它串行通信端口)与主机系统120通信,所述端口可被特别配置为诊断或维护端口。
图2是根据本公开的一些实施例的说明在执行用于产生及使用单次使用密码的实例方法时安全通信环境中的组件之间的交互的数据流程图。在图2的上下文中,非对称加密密钥对—公钥及私钥—可预先产生,并且可向安全性组件113供应公钥以加密数据,而向安全服务器200供应有私钥以解密数据。
如所展示,在202处,主机系统120发送密码产生请求。响应于所述请求,控制器115的安全性组件113产生密码对象。密码对象本身不包含密码,安全性组件113也不存储密码本身。代替地,密码对象包括使用公钥产生的经加密数据,并且经加密数据包括密钥导出种子,密码导出密钥可从所述密钥导出种子导出并用于导出密码。
在204处,控制器115用密码对象响应来自主机系统120的请求,并且在206处,主机系统120的用户201(例如,FAE)又将密码对象作为密码重新产生请求的一部分提供到能够解密经加密数据的安全服务器200。安全服务器200又解密经加密数据并从密钥导出种子导出密码导出密钥。然后,安全服务器200从密码导出密钥导出密码210,并且在208处,安全服务器200响应于密码重新产生请求提供密码210(例如,回到主机系统120或主机系统120的用户201)。
如下面将进一步论述,主机系统120的用户201可单次使用密码来解锁存储器子系统110。如上所述,安全性组件113不存储密码本身。代替地,安全性组件113还从密码导出包装密钥并使用包装密钥包装授权指示。经包装授权指示由安全性组件113存储(例如,在本地存储器119中),并且在安全性组件113在认证请求中接收到密码后,可用从密码导出的解包装密钥来解包装。假设最初由安全性组件113导出的密码与认证请求中提供的密码匹配,那么解包装密钥将与包装密钥等同,并且因此能够解包装经包装授权指示。在安全性组件113成功地解包装经包装授权指示时,提供授权指示,并且存储器子系统110进入解锁状态。在密码用于解锁存储器子系统110之后,丢弃对应于密码的经包装数据。
图3A及3B是说明根据一些实施例的在执行用于单次使用密码产生及认证的实例方法300时安全通信环境中的组件之间的交互的泳道图。如在图3A中所展示,方法300在操作302处开始,其中主机系统120向控制器115的安全性组件113发送密码产生请求。响应于接收到请求,安全性组件113在操作304处使用密钥导出函数(KDF)(例如,基于散列的消息认证码(HMAC)导出)产生密码导出密钥。KDF使用确定性随机位产生器(DRBG)函数从密钥导出种子导出密码导出密钥。密钥导出种子包括使用随机或伪随机数产生器产生的随机或伪随机值。
在操作306处,安全性组件113使用密码导出函数(PDF)从密码导出密钥导出密码。在操作308处,安全性组件113使用基于密码的密钥导出函数(PBKDF)(例如,PBKDF1或PBKDF2)基于密码产生包装密钥。在操作310处,安全性组件113使用包装密钥包装授权状态指示,所述授权状态指示存储在控制器115的本地存储器(例如,内部SRAM)中。安全性组件113可使用许多已知包装机制中的一者来使用包装密钥包装授权状态指示。所存储包装数据在成功认证之后被丢弃,并且在存储器子系统110的重新启动或复位时不留存。
在操作312处,安全性组件113使用公钥(例如,作为使用RSA算法作为密钥对的部分产生并存储在密钥存储区109中的非对称加密密钥)产生经加密数据。经加密数据包含密钥导出种子等其它数据,这将在下面进一步论述。在操作314处,安全性组件113基于经加密数据产生密码对象。安全性组件113可通过连结经加密数据与对象标头来产生密码对象。在操作316处,安全性组件113用密码对象响应来自主机系统120的请求。举例来说,在将密码对象提供到主机系统120之前,安全性组件113可使用例如BASE64的二进制到文本编码方案对密码对象或其一部分进行编码。
主机系统120未供应有对应私钥,且因此,主机系统120无法解密密码对象中的经加密数据。因此,在操作318处,在接收到密码对象后,主机系统120或主机系统120的用户(例如,FAE)将密码对象发送到安全服务器200,作为密码重新产生请求的部分。
安全服务器200维护对应于用于产生包含在密码对象中的经加密数据的公钥的私钥。因此,安全服务器200能够解密经加密数据。因此,在接收到密码对象后,安全服务器200在操作320处使用私钥解密经加密数据。公钥可包含在密码对象中并用作识别适当私钥表示的句柄。在其中密码对象或其一部分被编码的实施例中,安全服务器200可在使用私钥进行解密之前对密码对象或所述部分进行解码。
在解密加密数据后,在操作322处,安全服务器200使用KDF从密钥导出种子导出密码导出密钥。在操作324处,安全服务器200使用PDF从密码导出密钥导出密码。在操作326处,安全服务器200响应于密码重新产生请求向主机系统120提供密码。FAE或其它人员接着可使用所述密码来解锁存储器子系统110。
举例来说,如在图3B中所展示,在操作328处,主机系统120向安全性组件113提供认证请求。认证请求包含在操作326处供应到主机系统120的密码。在接收到密码后,在操作330处,安全性组件113使用PBKDF从密码导出解包装密钥。假设密码正确,那么解包装密钥与用于包装授权状态指示(在操作310处)的包装密钥等同。在操作332处,安全性组件113使用解包装密钥解包装存储在本地存储器中的经包装授权状态指示。在操作334,安全性组件113基于授权状态指示的成功解包装提供授权状态指示,并且在操作336处,安全性组件113解锁存储器子系统110。在操作338处,安全性组件113基于密码的使用丢弃经包装数据。以此方式,密码无法再次用于解锁存储器子系统110。
图4是说明根据本公开的一些实施例产生的密码对象400的组件的框图。如所展示,密码对象400包括对象标头402及经加密数据404。对象标头402包含多个字段,其包括关于密码对象400的信息,例如标识符、大小、版本、保护方案、密码密钥属性、密码密钥长度及公钥。
经加密数据404包含最优非对称加密填充(OAEP)406、二进制数据408及二进制数据408的散列410。通过将二进制数据408作为输入提供到例如安全散列算法256(SHA256)的加密散列函数来产生散列410。
二进制数据408包含多个字段,例如版本412、包装类型414、选项416、密码长度418、时间戳420、装置信息422、密钥导出种子424及加扰密钥426。版本412、包装类型414、选项416、密码长度418、时间戳420及装置信息422字段在本文中可统称为“非随机字段”,因为所述字段是用非随机值填充的。相反,密钥导出种子424及加扰密钥426可统称为“随机字段”,因为这些字段是用随机值填充的。
版本412字段用于指定正被使用的密码对象结构的版本。版本412字段可用于确定对象生产者与消费者之间的兼容性。包装类型414字段用于指定经包装对象类型并且用于区分不同的经包装对象。
选项416字段用于指定密码对象400中的任选配置信息,并且可隐式地定义处理要求。举例来说,选项416字段可用于指示设置时间戳420字段,其可用于实施对密码对象400的期满时间限制。作为另一实例,选项416字段可用于指示额外任选种子数据将被用作密码导出密钥导出过程的部分。作为又一实例,选项416字段可用于指示KDF是单个HMAC导出。
密码长度418字段用于指定正在使用的密码的长度(例如,以字节为单位)。长度可为按程序配置的,或者可为由存储器子系统110随机确定的范围。时间戳420字段含有有关何时创建密码对象400的信息。装置信息422字段含有装置特定信息,其可用于识别哪个存储器子系统110创建了密码对象400。
密钥导出种子424用于导出密码导出密钥。密钥导出种子424由存储器子系统110使用DRBG函数产生。加扰密钥426可用于模糊非随机字段以及密钥导出种子424中的值以进一步防止对数据的已知应答攻击。安全性组件113还使用用于产生密钥导出种子424的DRBG函数产生加扰密钥426。
如在图4中所展示,密钥导出种子424作为输入提供到KDF 428以产生密码导出密钥430。如在图4中所说明,在一些实施例中,任选补充文本432(例如,由用户201供应)可与密钥导出种子424一起提供为到KDF 428的输入以产生密码导出密钥430。安全性组件113使用PDF 434从密码导出密钥430导出密码436。
图5到7是根据本公开的一些实施例的用于在存储器子系统中进行单次使用密码产生及认证的实例方法500的流程图。方法500可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,方法500由图1的安全性组件113执行。尽管以特定序列或顺序展示所述过程,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可能的。
在操作505处,处理装置接收密码产生请求。可从主机系统120接收请求。在一些实施例中,接收请求包含经由主机系统接口从主机系统接收一或多个命令。在一些实施例中,接收请求包含经由通信端口(例如,UART端口或支持双向通信的其它串行通信端口)从主机系统接收请求。通信端口可为专门为诊断或维护目的配置的本机端口。
在操作510处,处理装置基于密钥导出种子产生密码导出密钥。处理装置使用KDF从至少密钥导出种子导出密码导出密钥。举例来说,处理装置可利用HMAC导出函数来导出密码导出密钥。密钥导出种子是由处理装置使用例如DRBG函数产生的随机或伪随机值。与一些实施例一致,KDF的输出是256位对称密钥,其对应于密码导出密钥。应注意,密码导出密钥不由存储器子系统110存储。密码导出密钥仅由存储器子系统110或安全服务器200从密钥导出种子导出。
在一些实施例中,可通过将由主机系统120提供的任选补充数据附加到密钥导出种子将其并入密码导出密钥导出过程中。举例来说,由主机系统120提供的任选补充数据可包括由用户产生的文本。与这些实施例一致,处理装置可使用KDF从密钥导出种子与补充数据的组合导出密码导出密钥。
在操作515处,处理装置从密码导出密钥导出密码。举例来说,处理装置可利用PDF从密码导出密钥导出密码。类似于密码导出密钥,所导出密码本身不由存储器子系统110存储。
如在操作520中所展示,处理装置使用PBKDF(例如,PBKDF1或PBKDF2)基于密码产生包装密钥。举例来说,处理装置可向PBKDF提供密码,且PBKDF的输出可为包装密钥。在操作525处,处理装置使用包装密钥包装授权状态指示。处理装置可利用许多已知包装技术中的一者来包装授权状态指示(例如,基于AES密钥包装规范或美国标准委员会ANSX9.102规范)。授权状态指示可由安全性组件113在认证请求中接收到密码后提供。授权状态指示的确切定义及使用可为特定于程序的,并且可取决于存储器子系统110的能力。授权状态指示包括关于用于在操作505提交密码产生请求的接口(例如,UART、主机接口或多端口启用的系统的端口号)的信息。在一些实施例中,在其中在同一接口上允许授权能力的实施方案中,授权状态指示可用于强制执行严格的密码产生及授权接口一致性。
如在操作530处所展示,处理装置将经包装授权状态指示存储在本地存储器(例如,本地存储器119)中。举例来说,处理装置可将经包装授权状态指示存储在SRAM中。
此后,处理装置基于密钥导出种子的加密使用非对称加密密钥来产生经加密数据(参见操作535)。经加密数据的产生包括加密二进制数据(例如,二进制数据408)及二进制数据的散列(例如,散列410),其中二进制数据包含密钥导出种子以及其它信息。非对称加密密钥是使用RSA算法作为密钥对的部分产生并供应到处理装置的公钥。因此,处理装置可使用RSA加密来加密二进制数据及二进制数据的散列。
在操作540处,处理装置基于经加密数据产生密码对象(例如,密码对象400)。密码对象的产生可包括将连结经加密数据与对象标头。上文参考图4解决有关实例密码对象的进一步细节。
在操作545处,处理装置响应于请求提供密码对象。举例来说,处理装置可响应于从主机系统120接收的请求而将密码对象传回到主机系统120。
如在图6中所展示,在一些实施例中,方法500可包含操作605、610、615、620、625、630、635及640中的任何一或多者。与这些实施例一致,操作605、610及615可在处理装置接收密码产生请求的操作505之后执行。
如所展示,在操作605处,处理装置为密码对象构造对象标头(例如,对象标头402)。对象标头部包含多个字段,其包括关于密码对象的信息,例如标识符、大小、版本、保护方案、密码密钥属性、密码密钥长度及用于产生经加密数据的公共非对称加密密钥。
处理装置产生密钥导出种子(参见操作610)。密钥导出种子是由处理装置使用DRBG函数产生的随机或伪随机值。
如在操作615处所展示,处理装置产生加扰密钥。加扰密钥也是由处理装置使用DRBG函数产生的随机或伪随机值。
与这些实施例一致,操作620、625、630及635可作为540的部分(例如,子操作)执行,其中处理装置产生密码对象。在操作620处,处理装置在密码对象的一或多个非随机数据字段中设置值。如上所述,非随机数据字段可包含版本字段(例如,412)、包装类型字段(例如,414)、选项字段(例如,416)、密码长度字段(例如,418)、时间戳字段(例如,420)及装置信息字段(例如,422)。
在操作625处,处理装置使用加扰密钥对密码对象的一或多个数据字段进行加扰。举例来说,处理装置可对非随机字段及/或密钥导出种子中的非随机值进行加扰以防止对数据的已知应答攻击。处理装置可使用异或(XOR)逻辑以加扰密钥及数据作为输入对数据进行加扰。
处理装置产生密钥导出种子、加扰密钥及非随机数据字段的值的散列(参见操作630)。处理装置使用加密散列函数来产生散列。举例来说,处理装置可使用SHA-256来产生散列。在操作635处,处理装置连结经加密数据与对象标头。在一些实施例中,可省略操作625。也就是说,在产生散列之前,可不对非随机数据字段进行加扰。与这些实施例一致,处理装置产生密钥导出种子的散列及非随机字段的未经加扰值。
与这些实施例一致,可在操作540之后执行操作640,其中处理装置产生密码对象。在操作640处,处理装置使用二进制到文本编码方案(例如,BASE64)对密码对象进行编码。经编码格式希望促进通过多个接口(例如,UART)检索二进制数据。基于所需的输送类型,编码可为特定于实施方案及/或程序的。本质上,对密码对象的编码将密码对象转换为适于从存储器子系统110传出以进行外部处理并且适于通过包含电子邮件的各种机制进行输送的格式。在一些实施例中,经编码数据可以指示经编码数据的起始及结束的描述性注释用括号括起来。
如在图7中所展示,在一些实施例中,方法500可包含操作705、710、715、720及725。与这些实施例一致,操作705、710、715、720及725可在操作545之后执行,其中处理装置响应于密码产生请求提供密码对象。更具体来说,操作705、710、715、720及725可在用户将在操作545处提供到主机系统120的密码对象作为密码重新产生请求的部分提交到安全服务器(例如,安全服务器200)并从安全服务器接收包含密码的响应之后执行。
如在操作705处所展示,处理装置接收包括密码的认证请求。可从主机系统120接收请求。在一些实施例中,接收请求包含经由主机系统接口从主机系统接收一或多个命令。在一些实施例中,接收请求包含经由通信端口(例如,UART端口或支持双向通信的其它串行通信端口)从主机系统接收请求。如上所述,可由主机系统120的用户响应于密码重新产生请求而从安全服务器接收密码。
处理装置使用PBKDF从密码导出解包装密钥(参见操作710)。假设作为认证请求的部分供应的密码是在操作515处导出的相同密码,那么解包装密钥将与用于包装授权状态指示的包装密钥等同。否则,认证请求失败。
在操作715处,处理装置使用解包装密钥来解包装授权状态指示。在操作720处,处理装置基于授权状态指示的解包装来提供授权状态指示。
在操作725处,处理装置基于成功解包装丢弃经包装数据。以此方式,密码无法再次用于解锁存储器子系统110。
图8A到8C是说明根据本公开的一些实施例的实例认证会话过程800的流程图。过程800可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,过程800由图1的安全性组件113执行。尽管以特定序列或顺序展示所述过程,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可能的。
在操作802处,处理装置存取指示是否需要认证来解锁存储器子系统110的变量(“AUTH REQUIRED”)。所述变量具有三个可能的值:“TRUE”、“FALSE”及“PENDING”。如果变量被设置为“FALSE”,那么不需要认证,并且在操作804处处理装置进入成功认证状态。
否则,在操作806处,处理装置确定变量是否被设置为“PENDING”。如果变量被设置为“PENDING”,那么处理装置在操作808处使密码重试计数器递增。密码重试计数器包括在认证会话中尝试使用密码的计数。在操作810处,在使密码重试计数器递增后,处理装置确定密码重试计数器是否已达到预定最大允许值(“Max”)。如果密码重试计数器已达到预定最大允许值,那么在操作812处,处理装置清除授权会话定时器。授权会话定时器包括程序特定计数器,其指示活动授权会话期满之前的超时值(例如,以秒为单位)。在清除定时器后,处理装置将变量设置为“TRUE”(在操作814处),并丢弃包括授权状态指示的经包装数据(在操作816处)。处理装置此后在操作818处进入失败认证状态。如果密码重试计数器在操作810处未达到最大允许值,那么处理装置执行操作830,这在下面论述。
返回到在操作806处的确定,如果变量未设置为“PENDING”,那么处理装置在操作820处确定认证重试计数器是否已达到预定最大允许值(“Max”)。认证重试计数器包括在认证会话期间的认证尝试的计数。如果认证重试计数器已达到预定最大允许值,那么处理装置在操作818处进入失败认证状态。
否则,处理装置使认证重试计数器递增并在操作822处将变量设置为“PENDING”。在操作824处,处理装置初始化认证会话定时器。在操作826处,处理装置以上文论述的方式产生密码对象并将经包装解锁/授权状态指示存储在本地存储器中。在操作828处,处理装置清除密码重试计数器并将密码对象输出到主机系统120。
如在操作830处所展示,处理装置检查是否已从主机系统120接收到响应。具体来说,在操作832处,处理装置确定是否已从主机系统120接收到密码。如果尚未接收到密码,那么在操作834处,处理装置检查是否从主机系统120接收到另一命令。如果已接收到命令,那么处理装置在操作812处清除认证会话定时器,并继续到操作814等。如果尚未接收到命令,那么在操作836处,处理装置确定认证会话定时器是否已期满。如果定时器尚未期满,那么处理装置执行操作830。如果定时器已过期,那么处理装置在操作814将变量设置为“TRUE”。
如果在操作832处接收到密码,那么在操作838处,处理装置使用PBKDF从密码导出解包装密钥。在操作840处,处理装置尝试使用解包装密钥来解经包装授权指示。如果解包装不成功,那么在操作808处,处理装置使密码重试计数器递增,并如上文说明及描述那样继续进行。不成功解包装指示在操作832处接收到不正确密码。如果解包装成功,那么处理装置输出授权状态指示并将变量设置为“FALSE”(在操作842)。处理装置此后进入成功认证状态(在操作804处)。
实例
实例1是一种系统,其包括:存储器组件;及处理装置,其可操作地与所述存储器组件耦合,以执行包括以下的操作:从主机系统接收密码产生请求;响应于接收到所述请求,基于密钥导出种子产生密码导出密钥;从所述密码导出密钥导出密码;基于所述密码产生包装密钥;使用所述包装密钥包装授权状态指示;将所述经包装授权状态指示存储在所述存储器组件中;基于所述密钥导出种子的加密,使用非对称加密密钥产生经加密数据;及提供对包括所述经加密数据的所述请求的响应。
在实例2中,实例1的操作任选地进一步包括:接收包括所述密码的认证请求;从所述密码导出解包装密钥;使用所述解包装密钥解包装所述经包装授权状态指示;及响应于所述认证请求,基于所述解包装来提供所述授权状态指示。
在实例3中,实例1或2的操作任选地进一步包括:基于所述经加密数据产生密码对象,所述密码对象包括:对象标头及所述经加密数据;及响应于所述请求提供所述密码对象。
在实例4中,实例1到3中任一实例的操作任选地包括构造对象标头;及连结所述经加密数据与所述对象标头以形成所述密码对象。
在实例5中,实例1到4中任一实例的操作任选地进一步包括使用随机或伪随机数产生器产生加扰密钥;及使用所述加扰密钥对所述密码对象的一或多个字段进行加扰。
在实例6中,实例1到5中任一实例的操作任选地进一步包括在所述响应中提供所述密码对象之前,使用二进制到文本编码方案对所述密码对象进行编码。
在实例7中,实例1到6中任一实例的操作任选地包括加密二进制数据及所述二进制数据的散列,所述二进制数据包括:一或多个非随机数据字段、所述密钥导出种子及加扰密钥。
在实例8中,实例1到7中任一实例的操作任选地进一步包括:使用密钥导出函数来产生所述密码导出密钥;使用密码导出函数来导出所述密码;及使用基于密码的密钥导出函数来产生所述包装密钥。
在实例9中,实例1到8中任一实例的标的物任选地包括包括由随机或伪随机数产生器产生的随机或假随机数的密钥导出种子。
在实例10中,实例1到9中任一实例的操作任选地进一步包括基于由所述主机系统提供的补充数据来产生所述密码导出密钥。
实例11是一种方法,其包括:从主机系统接收密码产生请求;响应于接收到所述请求,由存储器子系统控制器的至少一个处理器基于密钥导出种子产生密码导出密钥;由所述存储器子系统控制器的至少一个处理器从所述密码导出密钥导出密码;由所述存储器子系统控制器的至少一个处理器基于所述密码产生包装密钥;由所述存储器子系统控制器的至少一个处理器使用所述包装密钥包装授权状态指示;将所述经包装授权状态指示存储在所述存储器子系统控制器的存储器中;由所述存储器子系统控制器的至少一个处理器基于所述密钥导出种子的加密,使用非对称加密密钥产生经加密数据;及由所述存储器子系统控制器的至少一个处理器提供向所述主机系统提供对所述请求的响应,所述请求包括所述经加密数据。
在实例12中,实例11的标的物任选地包括:接收包括所述密码的认证请求;从所述密码导出解包装密钥;使用所述解包装密钥解包装所述经包装授权状态指示;及响应于所述认证请求,基于所述解包装来提供所述授权状态指示。
在实例13中,实例11或12中任一者的标的物任选地包括:基于所述经加密数据产生密码对象,所述密码对象包括:对象标头及所述经加密数据;及响应于所述请求提供所述密码对象。
在实例14中,实例11到13中任一实例的标的物任选地包括构造对象标头;及连结所述经加密数据与所述对象标头以形成所述密码对象。
在实例15中,实例11到14中任一实例的标的物任选地包括使用密钥导出函数来所述产生所述密码导出密钥;使用密码导出来导出所述密码;及使用基于密码的密钥导出函数来产生所述包装密钥。
在实例16中,实例11到15中任一实例的标的物任选地进一步包括:在所述响应中提供所述密码对象之前,使用二进制到文本编码方案对所述密码对象进行编码。
在实例17中,实例11到16中任一实例的标的物任选地包括:加密二进制数据及所述二进制数据的散列,所述二进制数据包括:一或多个非随机数据字段,及所述密钥导出种子。
在实例18中,实例11到17中任一实例的标的物任选地包括:使用加密散列函数产生二进制数据的散列。
在实例19中,实例11到18中任一实例的标的物任选地包括:包括由随机或伪随机数产生器产生的随机或伪随机数的所述密钥导出种子。
实例20是一种非暂时性计算机可读存储媒体,其包括指令,当所述指令由处理装置执行时配置所述处理装置以执行包括以下的操作:从主机系统接收密码产生请求;响应于接收到所述请求,基于密钥导出种子产生密码导出密钥;从所述密码导出密钥导出密码;基于所述密码产生包装密钥;使用所述包装密钥包装授权状态指示;将所述经包装授权状态指示存储在本地存储器中;基于所述密钥导出种子的加密,使用非对称加密密钥产生经加密数据;及提供对包括所述经加密数据的所述请求的响应。
机器架构
图9说明呈计算机系统900的形式的实例机器,在计算机系统900内可执行用于致使所述机器执行本文所论述的方法中的任一或多者的一组指令。在一些实施例中,计算机系统900可对应于主机系统(例如,图1的主机系统120),其包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或者可用以执行控制器的操作(例如,执行操作系统以执行对应于图1的安全性组件113的操作)。在替代实施例中,所述机器可连接(例如,联网)到局域网(LAN)、内联网、外联网及/或因特网中的其它机器。所述计算机可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器械、服务器、网络路由器、交换机或网桥或能够执行指定待由所述机器采取的动作的一组指令(循序或以其它方式)的任何机器。此外,虽然说明单个机器,但是术语“机器”也应被认为包含机器的任何集合,其个别地或共同地执行一组(或多组)指令以执行本文所论述的方法中的任一者或多者。
实例计算机系统900包含处理装置902、主存储器904(例如,ROM、快闪存储器、DRAM,例如SDRAM或Rambus DRAM(RDRAM)等)、静态存储器906(例如,快闪存储器、静态随机存取存储器(SRAM)等)及数据存储器装置918,其经由总线930彼此通信。
处理装置902表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置902可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置902也可为一或多个专用处理装置,例如ASIC、FPGA、数字信号处理器(DSP)、网络处理器或类似者。处理装置902经配置以执行用于执行本文所论述的操作及步骤的指令926。计算机系统900可进一步包含用于通过网络920进行通信的网络接口装置908。
数据存储系统918可包含机器可读存储媒体924(也称为计算机可读媒体),在其上存储体现本文所描述的方法或功能中的任一者或多者的一或多组指令926或软件。在由计算机系统900执行指令926期间,指令926也可全部或至少部分地驻留在主存储器904内及/或处理装置902内,主存储器904及处理装置902也构成机器可读存储媒体。机器可读存储媒体924、数据存储系统918及/或主存储器904可对应于图1的存储器子系统110。
在一个实施例中,指令926包含指令以实施对应于安全性组件(例如,图1的安全性组件113)的功能性。尽管在实例实施例中将机器可读存储媒体924展示为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被认为包含能够存储或编码一组指令以供机器执行并且致使机器执行本公开的方法中的任一者或多者的任何媒体。因此,术语“机器可读存储媒体”应被认为包含(但不限于)固态存储器、光学媒体及磁性媒体。
已经根据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的某些部分。这些算法描述及表示是数据处理领域的技术人员用来最有效地向所属领域的其它技术人员传达其工作实质的方式。此处,算法通常被认为是导致所需结果的自洽操作序列。所述操作是需要对物理量的物理操纵的操作。通常但不是必须的,这些量采用能够被存储、组合、比较及以其它方式操纵的电或磁信号的形式。已经证明,有时主要出于通用的原因将这些信号称为位、值、元素、符号、字符、项、数字或类似者是方便的。
然而,应牢记,所有这些及类似术语均应与适当物理量相关联并且仅仅是应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,所述计算机系统或类似电子计算装置将表示为计算机系统的寄存器及存储器内的物理(电子)数的数据操纵及变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量。
本公开还涉及用于执行本文的操作的设备。此设备可经特定构造用于预期目的,或者其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘;ROM;RAM;可擦除可编程只读存储器(EPROM);EEPROM;磁卡或光卡或适用于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文提出的算法及显示并非固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文的教示的程序一起使用,或者可证明构造更专用设备来执行所述方法是方便的。各种这些系统的结构将如上文描述中所阐述那样出现。另外,未参考任何特定编程语言来描述本公开。将了解,可使用各种编程语言来实施如本文所描述的本公开的教示。
本公开可被提供为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以由机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器可读(例如,计算机可读)存储媒体,例如ROM、RAM、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在前述说明书中,已经参考本公开的特定实例实施例描述本公开的实施例。显而易见的是,在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神及范围的情况下,可对其进行各种修改。因此,说明书及图式应被认为是说明意义而不是限制意义的。

Claims (20)

1.一种用于单次使用密码产生的系统,其包括:
存储器组件;及
处理装置,其可操作地与所述存储器组件耦合,以执行包括以下的操作:
从主机系统接收密码产生的请求;
响应于接收到所述请求,产生用于导出密码的密钥导出种子,所述密钥导出种子包括由随机或伪随机数产生器产生的随机或伪随机数;
基于用于导出所述密码的所述密钥导出种子来产生密码对象;及
提供对所述请求的响应,所述响应包括所述密码对象。
2.根据权利要求1所述的系统,其中所述操作进一步包括使用加扰密钥对所述密码对象的一或多个字段进行加扰。
3.根据权利要求1所述的系统,其中所述操作进一步包括使用二进制到文本编码方案对所述密码对象进行编码。
4.根据权利要求1所述的系统,其中所述密码对象包括对象标头及经加密数据,所述经加密数据基于所述密钥导出种子的加密。
5.根据权利要求4所述的系统,其中所述密码对象的所述产生包括:
构造所述对象标头;及
连结所述经加密数据及所述对象标头以形成所述密码对象。
6.根据权利要求4所述的系统,其中所述操作进一步包括通过加密二进制数据和所述二进制数据的散列来产生所述经加密数据,所述二进制数据包括所述密钥导出种子。
7.根据权利要求6所述的系统,其中所述二进制数据进一步包括一或多个非随机数据字段。
8.根据权利要求1所述的系统,其中所述操作进一步包括:
使用包装密钥包装授权状态指示;及
将经包装授权状态指示存储在所述存储器组件中。
9.根据权利要求8所述的系统,其中所述操作进一步包括:
接收包括所述密码的认证请求;
从所述密码导出解包装密钥;
使用所述解包装密钥来解包装所述经包装授权状态指示;及
响应于所述认证请求,基于所述解包装来提供所述授权状态指示。
10.根据权利要求9所述的系统,其中所述操作进一步包括:
接收来自用户的补充文本;
通过提供所述密钥导出种子和所述补充文本用作密钥导出函数的种子来产生密码导出密钥;及
从所述密码导出密钥导出所述密码。
11.一种用于单次使用密码产生的方法,其包括:
从主机系统接收密码产生请求;
响应于接收到所述请求,由处理装置产生用于导出密码的密钥导出种子,所述密钥导出种子包括由随机或伪随机数产生器产生的随机或伪随机数;
由所述处理装置基于用于导出所述密码的所述密钥导出种子来产生密码对象;及
提供对所述请求的响应,所述响应包括所述密码对象。
12.根据权利要求11所述的方法,其进一步包括使用加扰密钥对所述密码对象的一或多个字段进行加扰。
13.根据权利要求11所述的方法,其进一步包括使用二进制到文本编码方案对所述密码对象进行编码。
14.根据权利要求11所述的方法,其中所述密码对象包括对象标头及经加密数据,所述经加密数据基于所述密钥导出种子的加密。
15.根据权利要求14所述的方法,其中所述密码对象的所述产生包括:
构造所述对象标头;及
连结所述经加密数据及所述对象标头以形成所述密码对象。
16.根据权利要求14所述的方法,其进一步包括通过加密二进制数据和所述二进制数据的散列来产生所述经加密数据,所述二进制数据包括所述密钥导出种子。
17.根据权利要求16所述的方法,其中所述二进制数据进一步包括一或多个非随机数据字段。
18.根据权利要求11所述的方法,其进一步包括:
使用包装密钥包装授权状态指示;及
将经包装授权状态指示存储在存储器组件中,所述存储器组件可操作地与所述处理装置耦合。
19.根据权利要求18所述的方法,其进一步包括:
接收包括所述密码的认证请求;
从所述密码导出解包装密钥;
使用所述解包装密钥来解包装所述经包装授权状态指示;及
响应于所述认证请求,基于所述解包装来提供所述授权状态指示。
20.一种非暂时性计算机可读存储媒体,其包括指令,当所述指令由处理装置执行时配置所述处理装置以执行包括以下的操作:
从主机系统接收密码产生的请求;
响应于接收到所述请求,产生用于导出密码的密钥导出种子,所述密钥导出种子包括由随机或伪随机数产生器产生的随机或伪随机数;
基于用于导出所述密码的所述密钥导出种子来产生密码对象;及
提供对所述请求的响应,所述响应包括所述密码对象。
CN202310977451.XA 2019-11-07 2020-11-06 单次使用密码产生 Pending CN116933242A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16/677,270 2019-11-07
US16/677,270 US11271731B2 (en) 2019-11-07 2019-11-07 Single-use password generation
CN202080085398.7A CN114830110B (zh) 2019-11-07 2020-11-06 单次使用密码产生
PCT/US2020/059508 WO2021092461A1 (en) 2019-11-07 2020-11-06 Single-use password generation

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202080085398.7A Division CN114830110B (zh) 2019-11-07 2020-11-06 单次使用密码产生

Publications (1)

Publication Number Publication Date
CN116933242A true CN116933242A (zh) 2023-10-24

Family

ID=75847188

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202080085398.7A Active CN114830110B (zh) 2019-11-07 2020-11-06 单次使用密码产生
CN202310977451.XA Pending CN116933242A (zh) 2019-11-07 2020-11-06 单次使用密码产生

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202080085398.7A Active CN114830110B (zh) 2019-11-07 2020-11-06 单次使用密码产生

Country Status (6)

Country Link
US (3) US11271731B2 (zh)
JP (1) JP2022554287A (zh)
KR (1) KR20220085811A (zh)
CN (2) CN114830110B (zh)
DE (1) DE112020005474T5 (zh)
WO (1) WO2021092461A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11271731B2 (en) 2019-11-07 2022-03-08 Micron Technology, Inc. Single-use password generation
CN113434885B (zh) * 2021-06-30 2022-12-09 湖南国科微电子股份有限公司 一种密钥派生方法、装置、设备及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305548B2 (en) * 2001-10-22 2007-12-04 Microsoft Corporation Using atomic messaging to increase the security of transferring data across a network
US20050235145A1 (en) * 2002-12-05 2005-10-20 Canon Kabushiki Kaisha Secure file format
US8059814B1 (en) 2007-09-28 2011-11-15 Emc Corporation Techniques for carrying out seed or key derivation
EP2247986B1 (en) 2008-01-30 2014-12-31 Neology, Inc. Rfid authentication architecture and methods for rfid authentication
US20120137137A1 (en) 2010-11-30 2012-05-31 Brickell Ernest F Method and apparatus for key provisioning of hardware devices
US9306741B1 (en) * 2010-12-22 2016-04-05 Emc Corporation Updating keys for use in authentication
EP3077946A1 (en) 2013-12-02 2016-10-12 Gemalto SA System and method for securing offline usage of a certificate by otp system
KR20150101683A (ko) * 2014-02-27 2015-09-04 삼성전자주식회사 자기 암호화 드라이브 및 그것을 포함한 유저 장치
US9798677B2 (en) * 2014-10-23 2017-10-24 Microsoft Technology Licensing, Llc Hybrid cryptographic key derivation
US9904629B2 (en) * 2015-05-31 2018-02-27 Apple Inc. Backup system with multiple recovery keys
US10313129B2 (en) * 2015-06-26 2019-06-04 Intel Corporation Keyed-hash message authentication code processors, methods, systems, and instructions
US9769157B2 (en) 2015-09-21 2017-09-19 American Express Travel Related Services Company, Inc. Systems and methods for secure one-time password validation
US10057065B2 (en) * 2016-04-28 2018-08-21 Arnold G. Reinhold System and method for securely storing and utilizing password validation data
US11283600B2 (en) * 2017-06-20 2022-03-22 Hewlett-Packard Development Company, L.P. Symmetrically encrypt a master passphrase key
US11212093B2 (en) * 2018-09-14 2021-12-28 Htc Corporation Method of social key recovery and related device
US11271731B2 (en) 2019-11-07 2022-03-08 Micron Technology, Inc. Single-use password generation

Also Published As

Publication number Publication date
CN114830110A (zh) 2022-07-29
US20210143992A1 (en) 2021-05-13
US11271731B2 (en) 2022-03-08
CN114830110B (zh) 2023-08-11
US20220191015A1 (en) 2022-06-16
KR20220085811A (ko) 2022-06-22
JP2022554287A (ja) 2022-12-28
US11728982B2 (en) 2023-08-15
DE112020005474T5 (de) 2022-11-03
US20230336337A1 (en) 2023-10-19
WO2021092461A1 (en) 2021-05-14

Similar Documents

Publication Publication Date Title
US11487908B2 (en) Secure memory
TWI736837B (zh) 記憶體設備、非揮發性雙直列記憶體模組、記憶體系統、及加密方法
TWI491239B (zh) 認證元件、被認證元件、及認證方法
CN114830595B (zh) 将密码密钥委托给存储器子系统
US20230336337A1 (en) Single-use password generation
US11748273B2 (en) Secure data communication with memory sub-system
US20220129559A1 (en) Endpoint Authentication based on Boot-Time Binding of Multiple Components
CN112100696A (zh) 存储器装置及其安全读取方法
CN113228021A (zh) 存储器子系统中日志报告的安全传送
CN116648688A (zh) 包含使用认证逻辑产生用于存储器区的存取代码的实例的存储器系统和装置
CN116635853A (zh) 包含存取存储器且使用经验证流密码来产生存取代码的实例的存储器系统和装置
CN115391844A (zh) 安全密钥存储装置
US11677560B2 (en) Utilization of a memory device as security token
US20230177173A1 (en) Electronic device and method for performing permission management of storage device
CN116627314A (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