CN115408729A - 供应用程序存取安全存储器装置的独立于供应商的设施 - Google Patents

供应用程序存取安全存储器装置的独立于供应商的设施 Download PDF

Info

Publication number
CN115408729A
CN115408729A CN202210577861.0A CN202210577861A CN115408729A CN 115408729 A CN115408729 A CN 115408729A CN 202210577861 A CN202210577861 A CN 202210577861A CN 115408729 A CN115408729 A CN 115408729A
Authority
CN
China
Prior art keywords
command
memory device
memory
abstraction layer
encryption key
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
CN202210577861.0A
Other languages
English (en)
Inventor
O·杜瓦尔
S·夏斯特里
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 CN115408729A publication Critical patent/CN115408729A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic 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 cryptographic hash functions
    • H04L9/3242Cryptographic 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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

本公开涉及供应用程序存取安全存储器装置的独立于供应商的设施。一种用以经由抽象层提供对安全存储器装置的独立于供应商的存取的系统、设备及方法,所述抽象层可经由操作系统内核及一或多个实用程序来实施。在接收到执行功能的请求之后,所述抽象层使用所述请求中提供的参数以独立于所述存储器装置的规范的格式来产生至少一个第一命令。将所述至少一个第一命令提供到在所述请求中识别的所述存储器装置的装置驱动器,致使所述存储器装置根据所述存储器装置的所述规范来产生到所述存储器装置的至少一个第二命令。所述第二命令包含使用所述第二命令的一部分产生的签名;且所述功能是通过在所述存储器装置中执行所述至少一个第二命令来实施。

Description

供应用程序存取安全存储器装置的独立于供应商的设施
相关申请案
本申请案主张2021年5月28日申请的序列号为63/194,417的临时美国专利申请案的优先权,所述申请案的全部公开内容特此以引用的方式并入文本中。
技术领域
本文公开的至少一些实施例大体上涉及存取安全存储器装置,且更特定来说(但不限于),涉及允许应用程序以独立于来自不同制造商的安全存储器装置的实施方案或规范的方式来存取安全存储器装置的技术。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。举例来说,所述存储器装置可为非易失性存储器装置及易失性存储器装置。一般来说,主机系统可利用存储器子系统以将数据存储于存储器装置处及从存储器装置检索数据。
发明内容
一方面,本公开涉及一种方法,其包括:在为配置有基于加密的存取控制的存储器装置实施的抽象层中,接收执行功能的请求,所述请求包含一或多个参数并且识别存储器装置;由所述抽象层使用所述一或多个参数以独立于所述存储器装置的命令时序、格式或语法配置的格式来产生至少一个第一命令;由所述抽象层识别所述存储器装置的装置驱动器;及将所述至少一个第一命令传输到所述装置驱动器,以致使所述装置驱动器根据所述存储器装置的所述命令时序、格式或语法配置而产生到所述存储器装置的至少一个第二命令,所述第二命令包含使用所述第二命令的一部分产生的签名,其中所述功能是通过在所述存储器装置中执行所述至少一个第二命令来实施。
另一方面,本公开涉及一种存储指令的非易失性存储媒体,所述指令在计算装置上执行时致使所述计算装置执行方法,所述方法包括:在为配置有基于加密的存取控制的存储器装置实施的抽象层中,接收执行功能的请求,所述请求包含一或多个参数并且识别存储器装置;由所述抽象层使用所述一或多个参数以独立于所述存储器装置的命令及响应时序、格式或语法配置的格式来产生至少一个第一命令;由所述抽象层识别所述存储器装置的装置驱动器;及将所述至少一个第一命令发送到所述装置驱动器,以致使所述装置驱动器根据所述存储器装置的所述命令及响应时序、格式或语法配置而产生到所述存储器装置的至少一个第二命令,所述第二命令包含使用所述第二命令的一部分产生的签名,其中所述功能是通过在所述存储器装置中执行所述至少一个第二命令来实施。
另一方面,本公开涉及一种设备,其包括:存储器装置;及至少一个麦克风,其经由指令经配置以:在为配置有基于加密的存取控制的存储器装置实施的抽象层中,接收执行功能的请求,所述请求包含一或多个参数并且识别存储器装置;由所述抽象层使用所述一或多个参数以独立于关于针对所述存储器装置的命令及响应时序、格式或语法配置的制造商规范的格式来产生至少一个第一命令;由所述抽象层识别所述存储器装置的装置驱动器;及将所述至少一个第一命令发送到所述装置驱动器,以致使所述装置驱动器根据针对所述存储器装置的所述制造商规范而产生到所述存储器装置的至少一个第二命令,所述第二命令包含使用所述第二命令的一部分产生的签名,其中所述功能是通过在所述存储器装置中执行所述至少一个第二命令来实施。
附图说明
在附图的图式中通过实例而非限制的方式说明实施例,其中相似参考指示类似元件。
图1展示一种系统,其具有用于安全存储器装置的抽象层以允许应用程序以独立于安全存储器装置的硬件实施方案的方式存取安全存储器装置。
图2说明一个实施例的用于存取安全存储器装置的命令及响应结构。
图3说明根据一个实施例的具有安全管理器的集成电路存储器装置。
图4说明根据一个实施例的用以控制在存储器装置中执行命令的技术。
图5展示根据一个实施例的存取安全存储器装置的方法。
图6说明根据本公开的一些实施例的具有存储器子系统的实例计算系统。
图7是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的至少一些方面涉及用于安全存储器装置的抽象层。
安全存储器装置使用加密来控制对安全存储器装置的功能的存取。举例来说,在安全存储器装置中接收的特权命令将使用正确加密密钥来进行签名,在这之后可在安全存储器装置内执行所述命令;且加密密钥代表在安全存储器装置中执行命令的特权。不同供应商/制造商可提供类似的安全特征,所述安全特征在供应商/制造商的安全存储器装置中具有不同的存取控制实施方案。举例来说,用于支持基于加密的存取控制的命令可具有针对来自不同制造商的安全存储器装置的不同语法、格式及/或规范。
抽象层提供安全存储器装置的标准化模型,所述装置具有预定义应用程序编程接口(API)以供应用程序以标准化方式存取安全特征。举例来说,一组实用程序可针对由不同供应商/制造商供应的安全特征的典型使用提供一组公共命令。实用程序可从应用程序接收参数,并通过调取操作系统内核及调用针对安全存储器装置的标准化模型定义的命令来实施其功能。操作系统内核可将命令路由到来自相应供应商/制造商的安全存储器装置的对应装置驱动器。装置驱动器可使用特定于由相应供应商/制造商供应并由相应装置驱动器操作的安全存储器装置的命令来实施基于安全存储器装置的标准化模型定义的所接收命令。因此,经编程以使用实用程序存取安全存储器装置的应用程序可与由安全存储器装置的不同供应商或制造商提供的不同安全存储器装置一起工作。
可在存储器子系统中配置安全存储器装置。下面结合图6描述作为存储器子系统的存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个组件的存储器子系统,所述组件例如存储数据的存储器装置。主机系统可提供待存储在存储器子系统处的数据,并且可请求待从存储器子系统检索的数据。
图1展示一种系统,其具有用于安全存储器装置(例如,121、122)的抽象层108,以允许应用程序以独立于安全存储器装置(例如,121、122)的硬件实施方案的方式存取安全存储器装置(例如,121、122)。
在图1中,使用实用程序103及操作系统内核101来实施抽象层108。
操作系统内核101根据安全存储器装置(例如,121及122)的标准化装置模型102来实施。由标准化装置模型102处理的命令105提供响应107。举例来说,命令105包含将在标准化装置模型102提供提供由命令105请求的结果的响应107之前针对基于加密的存取控制进行检查的签名;如果签名无效,那么响应107指示错误。
标准化装置模型102的命令105及响应107可使用装置驱动器(例如,111或112)及由装置驱动器(例如,111或112)支持及/或操作的对应安全存储器装置(例如,121或122)的组合来实施。
举例来说,可根据规范123制造存储器装置121,使得在存储器装置121中接收的命令125提供响应127。制造商规范123识别到存储器装置121的命令及来自存储器装置121的响应的时序、格式、语法及/或其它方面的配置。装置驱动器111使用到存储器装置121的命令125来实施向标准化装置模型102发出的命令105,并使用来自存储器装置121的响应127产生对命令105的响应107。
类似地,可根据不同规范124制造另一存储器装置122,使得在存储器装置122中接收的命令126提供响应128。装置驱动器112使用到存储器装置121的命令126实施向标准化装置模型102发出的命令105,并使用来自存储器装置122的响应128产生对命令105的响应107。
为实施相同命令105,装置驱动器111及112可根据用于相应安全存储器装置121及122的不同装置规范123及124产生不同命令125及126。对相应命令125及126的对应响应127及128通常是不同的(例如,在语法、格式及/或序列上)。装置驱动器111及112可基于不同响应127及128为命令105产生相同响应107。因此,由装置驱动器111操作的存储器装置121及由装置驱动器112操作的存储器装置122可在产生针对命令105的响应107时实施相同标准化装置模型102。
在图1中,实用程序103提供一组预定义的应用程序编程接口(API)以用于根据装置使用模型104存取安全特征。可由应用程序(例如,117或119)使用的实用程序103在标准化装置模型102上执行安全功能。实用程序103可检查从应用程序(例如,117或119)接收的参数,分配用于实施功能的资源,格式化参数以产生供操作系统内核101向相关装置驱动器(例如,111或112)发出命令105的数据,及用所产生数据调取操作系统内核101以致使操作系统内核发出命令105。命令105的序列可用于实施实用程序103的功能以提供友好的响应,同时向应用程序117、…、119屏蔽标准化装置模型102的细节。因此,可针对应用程序117、…、119大大简化标准化装置模型102的安全特征的使用。
在一些实施方案中,实用程序103及/或装置驱动器(例如,111、112)经配置以存取加密密钥以对待传输到相应存储器装置(例如,121、122)的命令(例如,125、126)进行签名。替代地,应用程序(例如,117、119)经配置以将签名传达到实用程序103以允许产生包含签名的命令(105、125、126)。举例来说,实用程序103及/或装置驱动器(例如,111、112)可产生待签名的消息,并请求应用程序(例如117、119)为由实用程序103及/或装置驱动器(例如,111、112)格式化的消息提供签名。
举例来说,实用程序103可作为命令行命令来实施。应用程序(例如,117或119)可请求操作系统运行实用程序103,将实用程序103所需的数据作为命令行参数进行传递。一些参数可指定含有待由实用程序103使用的数据的文件。实用程序103可调取操作系统内核101以发出命令105,并基于响应107在标准输出通道(或文件)中提供响应。
图2说明根据一个实施例的用于存取安全存储器装置的命令及响应结构。
举例来说,图2的命令及响应结构可用于标准化装置模型102的命令105及响应107,用于根据装置规范123的来自一个供应商的存储器装置121的命令125及响应127,及/或用于根据另一装置规范124的来自另一供应商的另一存储器装置122的命令126及响应128。标准化装置模型102以及规范123及124可使用与图2中类似的命令及响应的总体结构,但语法、字段、操作序列、大小及/或值解释等的定义不同。
在图2中,典型命令131具有待传输或写入到存储器装置中的数个字节,所述存储器装置例如根据标准化装置模型102的虚拟存储器装置,或具有来自一个供应商的规范123的存储器装置121,或具有来自不同供应商/制造商的不同规范124的另一存储器装置122。
命令131可包含用以指定待对命令执行的操作的操作码132及命令类型133,以及用以指定待与命令131一起使用的参数一或多个字段134、135、…、。命令131的总大小可取决于操作码132及命令类型133的组合。
对于至少某些类型的命令,命令131的字段将提供为命令131创建的用于基于加密的存取控制的签名。签名可为基于散列的消息认证码(HMAC),其可使用存储在安全存储器装置中的加密密钥来验证。
任选地,命令131可包含识别安全存储器装置中的密钥列表当中的用于验证签名的特定加密密钥的字段。任选地,密钥中的每一者可具有对应单调计数器;并且可在命令131中经由对与密钥预先关联的对应单调计数器的参考来对所述密钥进行参考。
在命令131的字段中提供的签名将根据包含命令131的字段(例如,134、135)及操作码132及/或命令类型133中的一或多者的内容的消息进行验证。
在图2中,典型响应141具有将由对应存储器装置响应于命令131返回的数个字节。响应141的总大小可取决于在对应命令131中指定的操作码132与命令类型133的组合。对于一些类型的命令,响应141中的字段(例如,142或143)可包含由安全存储器装置(例如,121或122)响应于命令131创建的签名以证明存储器装置的身份及/或响应141中提供的内容的完整性。
举例来说,命令131可包含操作码132及命令类型133,其经配置以请求安全存储器装置将根密钥写入安全存储器装置。安全存储器装置可为根据标准化装置模型102的装置,或者根据规范123的装置121,或者根据规范124的装置122。此命令131可包含用于指定待存储到安全存储器装置中的根密钥的字段134,以及用于指定针对命令131的签名(或签名的截断部分)的另一字段135。在安全存储器装置中执行命令131以存储根密钥之前,签名(或其一部分)将由安全存储器装置验证。
举例来说,命令131可包含操作码132及命令类型133,其经配置以请求安全存储器装置基于其根密钥及在命令131的字段134中提供的数据来更新由安全存储器装置使用来验证签名的加密密钥。此命令131可包含字段135以指定针对命令131的签名;并且针对包含字段134中提供的数据的消息产生签名。
举例来说,命令131可包含操作码132及命令类型133,其经配置以请求安全存储器装置使在安全存储器装置内维持的单调计数器递增。此命令131可包含用以指定单调计数器的当前值的字段134,以及用以指定命令131的签名的字段135;并且为包含在字段134中提供的单调计数器的当前值的消息产生签名。
举例来说,命令131可包含操作码132及命令类型133,其经配置以请求安全存储器装置提供在安全存储器装置内的单调计数器中维持的值。此命令131可包含用以指定标签的字段134及用以指定针对命令131的签名的字段135;并且为包含标签的消息产生签名。
举例来说,命令131可包含操作码132及命令类型133,其经配置以请求安全存储器装置提供从先前命令的执行产生的扩展状态数据。此命令131可包含用以指定针对命令131的签名的字段135。
举例来说,命令131可包含操作码132及命令类型133,其经配置以请求安全存储器装置提供安全存储器装置的唯一ID(UID)。此命令131可包含用以指定随机数值(例如,随机数)的字段134,但不需要针对命令131的签名。作为响应,安全存储器装置将为其UID提供针对包含随机数值及UID的消息的HMAC签名。
举例来说,命令131可包含操作码132及命令类型133,其经配置以提供/激活提供可信测量核心根(CRTM)的安全特征。此命令131可包含用以指定随机数值的字段134,以及用以指定针对命令131的签名的字段135。命令131可进一步包含用以指定安全存储器装置中的预定单调计数器的当前值的字段。使用服务器根密钥为包含随机数值的消息产生签名。作为响应,如果安全存储器装置尚未被提供,那么安全存储器装置可使用随机数值产生根密钥,并激活基于加密的存取控制并去激活其它锁定/存取控制。
举例来说,命令131可包含操作码132及命令类型133,其经配置以取消提供/去激活提供可信测量核心根CRTM)的安全特征。此命令131可包含用以指定安全存储器装置中的预定单调计数器的当前值的字段134,以及用以指定针对命令131的签名的字段135。使用服务器根密钥为命令内容(而不是签名自身)产生签名。作为响应,如果安全存储器装置尚未被取消提供,那么安全存储器装置可去激活基于加密的存取控制并允许激活其它锁定/存取控制。
举例来说,命令131可包含操作码132及命令类型133,其经配置以允许修改以阻止锁定安全存储器装置中的寄存器。此命令131可包含用以指定安全存储器装置中的预定单调计数器的当前值的字段134,及用以指定针对命令131的签名的字段135。使用服务器会话密钥为命令内容(不包含签名自身)产生签名。
举例来说,命令131可包含操作码132及命令类型133,其经配置以请求安全存储器装置计算存储在安全存储器装置中的内容的一部分的摘要并将其扩展到寄存器,或将其写入另一寄存器。可使用存储在预定义寄存器中的值来识别所述部分,所述值指定所述部分在安全存储器装置中的位置及大小。此命令131可包含用以指定安全存储器装置中的预定单调计数器的当前值的字段134,及用以指定针对命令131的签名的字段135。使用服务器会话密钥为命令内容(排除签名自身)产生签名。
举例来说,命令131可包含操作码132及命令类型133,其经配置以指示寄存器更新的开始或指示恢复块或恢复模式的更新的开始。此命令131可包含用以指定安全存储器装置中的预定单调计数器的当前值的字段134,及用以指定针对命令131的签名的字段135。使用服务器会话密钥为命令内容(排除签名)产生签名。
举例来说,命令131可包含操作码132及命令类型133,其经配置以将数据写入寄存器。此命令131可包含用以指定安全存储器装置中的预定单调计数器的当前值的字段134,及用以指定针对命令131的签名的字段135。命令131可包含用以指定待被写入的寄存器的标识及待写入寄存器的数据的其它字段;并且使用服务器会话密钥为命令内容(排除签名)产生签名。
举例来说,命令131可包含操作码132及命令类型133,其经配置以从寄存器读取数据。此命令131可包含用以指定安全存储器装置中的预定单调计数器的当前值的字段134,及用以指定待读取的寄存器的标识的字段135,但不需要针对命令131的签名。
举例来说,命令131可包含操作码132及命令类型133,其经配置以指示寄存器更新的结束或指示恢复块更新或恢复模式的完成。此命令131可包含用以指定安全存储器装置中的预定单调计数器的当前值的字段134,及用以指定针对命令131的签名的字段135。使用服务器会话密钥为命令内容(排除签名)产生签名。
举例来说,命令131可包含操作码132及命令类型133,其经配置以请求安全存储器装置改变根密钥、会话密钥或唯一装置机密(UDS)。此命令131可包含用以指定安全存储器装置中的预定单调计数器的当前值、随机数值的字段134,及用以指定针对命令131的签名的字段135。使用服务器会话密钥为命令内容(排除签名)产生签名。
举例来说,命令131可包含操作码132及命令类型133,其经配置以请求安全存储器装置根据命令131中提供的输入来计算摘要或HMAC。此命令131可包含用以指定安全存储器装置中的预定单调计数器的当前值,基于计算哪一个所请求摘要或HMAC的存储器装置中的存储器的一部分的标识的字段134,及用以指定针对命令131的任选签名的字段135。使用会话密钥为命令内容(排除签名)产生签名。
举例来说,命令131可包含操作码132及命令类型133,其经配置以基于自动签名验证来请求安全存储器装置执行与编程/写入、擦除及/或附加相关的操作。此命令131可包含用以指定安全存储器装置中的预定单调计数器的当前值的字段134,及用以指定针对命令131的任选签名的字段135。命令131可进一步包含用以指定待执行的操作、用于所述操作的选项、存储用于所述操作的数据的存储器装置中的存储器的源区域的标识及用于所述操作的存储器装置中的存储器的目的地区域的标识的字段;并且使用会话密钥为命令内容(排除签名)产生签名。
图3说明根据一个实施例的具有安全管理器的集成电路存储器装置。举例来说,图1中的存储器装置121或122可使用图3的存储器装置230来实施。
集成电路存储器装置230可围封在单个集成电路封装中。集成电路存储器装置230包含多个存储器区域231、…、233,其可形成在一或多个集成电路裸片中。
可分配存储器区域(例如,231或233)以由主机系统用作分区、逻辑单元或名称空间。存储器区域(例如,231或233)中的存储器位置可由主机系统经由逻辑块寻址(LBA)的地址来指定;并且存储器装置230可包含地址映射,所述地址映射指定分区、逻辑单元或名称空间中的LBA地址与用于提供分配给分区、逻辑单元或名称空间的存储空间的对应存储器单元的物理地址之间的关系。在一些实施方案中,在存储器子系统(例如,图6中所说明的210)中配置存储器装置230;并且存储器子系统控制器215可经配置以执行针对存储器装置230的地址映射。
存储器区域(例如,231、…、233)中的典型存储器单元可经编程以存储一或多个数据位。
存储器装置230具有本地媒体控制器250,其可实施安全管理器213的至少一部分。
存储器装置230的安全管理器213可包含存取控制器209、加密引擎207、抽象层108及/或一或多个装置驱动器(例如,111、112)。
加密引擎207可经由逻辑电路及/或指令或微码来实施以执行加密计算,例如对数据项应用加密散列函数以产生散列值,使用加密密钥对日期项进行加密以产生密码文本,使用对应加密密钥对密码文本进行解密以恢复数据项,产生对称加密的加密密钥及/或非对称加密的一对加密密钥等。
存取控制器209基于代表存取特权的加密密钥来控制对存储器区域231、…、233及/或存储器装置230的其它功能中的至少一者的存取。
举例来说,安全管理器213可基于基于集成电路存储器装置230的机密201产生的加密密钥及/或代表存储器装置230的所有者或授权用户的加密密钥来控制对安全存储器区域233的存取。举例来说,当在集成电路存储器装置230中接收将数据写入安全存储器区域233的请求或命令时,安全管理器213验证所述请求是否来自具有加密密钥的请求者。如果不是,那么安全管理器213可拒绝写入请求。为证明请求来自经授权请求者,请求者可使用加密密钥对请求或质询消息进行数字签名。当安全存储器装置230确定数字签名是使用正确加密密钥进行的时,请求者被视为具有将数据写入安全存储器区域233的权限。举例来说,存储器装置230可存储用于认证所签名请求/命令的数字签名的一或多个加密密钥251。
存储器装置230可经配置以使用不同加密密钥251来对不同命令进行存取控制。举例来说,一个加密密钥251可代表在存储器装置230中执行安全命令的特权;并且安全命令用于指定另一加密密钥251代表在安全存储器区域233中读取及/或写入的特权。举例来说,存储器装置230可具有多个安全存储器区域(例如,233);并且可经由单独加密密钥251来控制对安全存储器区域(例如,233)中的每一者的存取。
举例来说,存储器装置230可具有表示存储器装置230的身份的唯一装置机密201;并且从唯一装置机密201导出的加密密钥251可代表操作存储器装置230且因此在存储器装置中执行安全命令的所有者特权。
一般来说,安全存储器区域233对于不同类型的存取(例如,读取、写入、擦除)可具有不同的安全性要求。举例来说,安全存储器区域233可经配置以要求可经由加密密钥251验证的数字签名来在安全存储器区域233中写入或改变数据,但不要求已签名命令来从安全存储器区域233读取数据。替代地,安全存储器区域233可经配置以要求可经由加密密钥251验证的数字签名来在安全存储器区域233中读取、写入及/或改变数据。替代地,安全存储器区域233可经配置以要求可经由不同加密密钥验证的数字签名来在安全存储器区域233中进行不同操作,例如读取、写入、改变、擦除等。
集成电路存储器装置230具有通信接口247以接收具有地址235的命令。响应于地址235标识配置有存取控制的安全存储器区域(例如,233),安全管理器213使用加密引擎207来执行加密操作以验证请求是来自具有经授权对存储器区域233进行存取的加密密钥的请求者,然而提供使用地址解码器241从存储器区域233检索的存储器数据。集成电路存储器装置230的地址解码器241将地址235转换为控制信号以选择集成电路存储器装置230中的一群组存储器单元;且集成电路存储器装置230的本地媒体控制器250执行操作以确定在地址235处存储在存储器单元中的存储器数据。
图4说明根据一个实施例的用以控制在存储器装置中执行命令的技术。举例来说,图4的技术可在图3的存储器装置230中实施。
在图4中,存取控制器209配置有存取控制密钥249以确定在通信接口247中接收的已签名命令263是否来自具有在安全存储器装置230中执行命令255的特权的实体。
当主机系统220的控制器216向存储器装置230的通信接口247发送命令255时,存取控制器209确定命令255的发送者是否具有请求存储器装置230执行命令255的特权。主机系统220可包含执行实施操作系统及/或应用程序的指令的一或多个处理装置218。
加密密钥245经配置以表示将使用存取控制密钥249进行检查的特权。命令255的发送者可从加密密钥245及含有命令255的消息243产生验证码253。
加密密钥245及消息243的验证码253可使用各种技术来构造及/或验证,例如散列摘要、数字签名或基于散列的消息认证码、对称加密及/或非对称加密。因此,验证码253不限于特定实施方案。
一般来说,验证消息(例如243)的发送者是否具有加密密钥(例如,245)涉及验证消息(例如,243)的验证码(例如,253)。验证码可呈散列摘要、数字签名、基于散列的消息认证码(HMAC)、基于密码的消息认证码(CMAC)等的形式。使用加密密钥及消息来产生验证码作为加密操作(例如散列、加密及/或其它计算)的输入,使得在没有加密密钥的情况下产生验证码以及从消息的经修改版本产生验证码通常是不切实际的。因此,当接收者确认所接收验证码对所接收消息及加密密钥有效时,接收者可断定发送者具有对应加密密钥,并且所接收消息与用于产生所接收密钥的消息相同。
在一些实施方案中,接收者使用与由发送者用来产生验证码的加密密钥相同的加密密钥来执行对消息的验证码的验证。举例来说,接收者使用相同加密密钥来产生所接收消息的验证码并将所产生验证码与所接收验证码进行比较。如果存在匹配,那么所接收验证码对所接收消息有效;且发送者可被认为具有加密密钥。否则,所接收验证码对所接收消息无效;所接收消息在自产生验证码以来已发生改变,或者所接收验证码是使用不同加密密钥产生的,或者两者兼而有之。
在一些实施方案中,接收者使用密钥对中的公开加密秘钥执行对消息的验证码的验证;并且发送者使用密钥对中的私有加密秘钥来产生验证码。举例来说,可通过对消息应用散列函数以产生消息的散列值来产生验证码。通过使用加密密钥对散列值进行加密而获得的散列值的密码文本可用作验证码。消息及验证码的接收者使用对应解密密钥执行验证,所述解密密钥在使用对称加密时与加密密钥相同,并且在使用非对称加密时是密钥对中的不同密钥。在使用解密密钥从密码文本恢复散列值之后,可将恢复的散列值与所接收消息的散列值进行比较;如果存在匹配,那么所接收验证码对所接收消息有效;否则,所接收验证码对所接收消息无效。替代地,接收者可使用加密密钥来执行验证而不执行解密。接收者可使用加密密钥产生消息的验证码以用于与所接收验证码进行比较。
在一些实施方案中,消息与加密密钥经组合以产生散列值作为验证码,如在基于散列的消息认证码(HMAC)技术中。举例来说,加密密钥可用于产生两个密钥。在将两个密钥中的一者与消息组合以产生通过密钥修改的消息之后,可对经密钥修改的消息应用加密散列函数以产生散列值,所述散列值进一步与另一密钥组合以产生进一步消息。在将加密散列函数(或另一加密散列函数)应用于进一步的消息之后,产生基于散列的消息认证码。消息的接收者可使用相同加密密钥来产生所接收消息的基于散列的消息认证码以用于与所接收的基于散列的消息认证码进行比较。如果存在匹配,那么验证成功;否则,验证将失败。
一般来说,用于产生及验证来自发送者的消息以及由发送者用来产生验证码的加密密钥的验证码的任何技术都可用于确定发送者是否具有加密密钥。接收者将使用适当加密密钥来执行验证,所述密钥可与用于产生验证码的加密密钥相同,或在同一对非对称加密密钥中。因此,本公开不限于散列摘要、数字签名及/或基于散列的消息认证码的特定技术。
为方便起见,使用加密密钥(例如,245)针对消息(例如,243)产生以表示消息(例如,243)及加密密钥(例如,245)两者的验证码(例如,253)通常可称为使用加密密钥(例如,245)进行签名的消息(例如,243)的数字签名,而且应理解,可使用各种技术产生验证码,例如基于散列的消息认证码。
在图4中,存取控制器209使用对应存取控制密钥249来验证提交给通信接口247的用于命令255的验证码253。存取控制器209使用加密引擎207来产生所接收消息243及所接收验证码253的验证结果259。基于验证结果259,存取控制器209可选择性地允许命令255在存储器装置230内执行或阻止命令255的执行。
举例来说,存取控制密钥249可为存储在存储器装置230中的加密密钥251中的一者。不同存取控制密钥可用于控制用于执行不同命令及/或执行在存储器单元的不同区段或区域上操作的命令的不同特权。
举例来说,一个加密密钥245可代表在存储器装置230中执行安全命令的特权。当执行安全命令时,在存储器装置230中安装(或卸载)用于验证代表执行读取命令(或写入命令)以存取安全存储器区域233的的特权的另一加密密钥的验证码的存取控制密钥249。
任选地,在基于存储器装置230的唯一装置机密201验证存储器装置230的身份的过程中产生加密密钥245;并且存储器装置230与存储器装置230的所有者之间已知的机密允许产生会话密钥作为加密密钥245以表示在通信会话期间在存储器装置230中执行选定命令的特权。通信会话可具有时间限制及/或经由到存储器装置230的命令来终止。
在一些实施方案中,相同会话密钥被用作代表特权的加密密钥245及用于验证使用加密密钥245产生的验证码(例如,253)的存取控制密钥249。
在另一实施方案中,非对称加密的一对加密密钥可用于会话。所述对中的公开秘钥用作存取控制密钥249;并且所述对中的私有秘钥可用作代表对应特权的加密密钥245。
在存储器装置230中安装用于验证使用代表在安全存储器区域233中读取或写入的特权的加密密钥245产生的验证码(例如,253)的存取控制密钥249之后,可由经授权实体使用加密密钥245来产生已签名命令263。已签名命令263可由主机系统220传输到存储器装置230的通信接口247。在存取控制器209验证已签名命令263中的验证码253之后,存取控制器209允许存储器装置230执行命令255。
消息243可包含表示对执行命令255的请求的约束的数据257。
举例来说,数据257可包含在存储器装置230内维持的执行计数值,使得以较低计数产生的先前使用的验证码不能被重放并且使其无效。
举例来说,数据257可包含为执行命令255的请求的特定例子而建立的加密随机数值,使得验证码253不能被重新用于另一例子。
举例来说,数据257可包含验证码253在其中有效的时间窗口。
举例来说,数据257可包含在其中允许执行命令255的存储器区域的标识。
举例来说,数据257可包含允许在存储器装置230中执行命令255的操作类型。
图5展示根据一个实施例的存取安全存储器装置的方法。图5的方法可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令)或其组合。在一些实施例中,图5的方法至少部分地由图4中的主机系统220的处理装置218或控制器216、图6的存储器子系统210的控制器215及/或控制器250、或图3的存储器装置230中的处理逻辑来执行。尽管以特定序列或顺序展示,除非另有指定,否则可修改过程的顺序。因此,所说明实施例应仅被理解为实例,并且所说明过程可以不同顺序执行,并且一些过程可并行执行。另外,在各种实施例中可省略一或多个过程。因此,并非在每一个实施例中都需要所有过程。其它过程流程是可能的。
在框301处,为配置有基于加密的存取控制的存储器装置实施的抽象层108接收执行功能的请求,所述请求包含一或多个参数并识别存储器装置(例如,121或122)。
举例来说,抽象层108可部分地在操作系统内核101及/或至少一个实用程序103中实施。
举例来说,实用程序103可经配置为可作为命令行命令执行。
在框303处,抽象层108使用一或多个参数以独立于存储器装置(例如,121)的规范(例如,123)的格式产生至少一个第一命令(例如,105)。
在框305处,抽象层108识别存储器装置(例如,121)的装置驱动器(例如,111)。
在框307处,抽象层108(例如,通过调取、调用、执行装置驱动器121)向装置驱动器(例如,121)提供(例如,传输或发送)至少一个第一命令(例如,105)。
在框309处,装置驱动器(例如,121)根据存储器装置(例如,121)的规范(例如,123)产生到存储器装置(例如,121)的至少一个第二命令(例如,125)以实施功能。第二命令(例如,125)包含使用第二命令(例如,125)的一部分产生的签名。
举例来说,签名可为验证码253,例如使用加密密钥245为具有第二命令(例如,125)的部分的消息243产生的基于散列的消息认证码(HMAC)。
举例来说,提供到实用程序的一或多个参数可包含使用加密密钥245产生的签名。
在一些实施方案中,抽象层108不能存取加密密钥245;并且具有加密密钥245的单独应用程序或程序将为待签名的消息243提供验证码253。
举例来说,基于所请求功能,抽象层108经配置以提供操作码及命令类型以用于根据规范从至少一个第一命令(例如,105)产生第二命令(例如,125)。
举例来说,操作码及命令类型在第二命令中经配置以:将加密密钥写入存储器装置;更新存储器装置中的加密密钥;使存储器装置中的单调计数器递增;或从存储器装置检索数据;或其任一组合。
举例来说,操作码及命令类型在第二命令中经配置以:激活存储器装置的安全特征;去激活存储器装置的安全特征;开始更新存储器装置中寄存器的会话;结束更新存储器装置中的寄存器的会话;计算存储在存储器装置中的内容的一部分的摘要;改变存储在存储器装置中的数据的一部分;或替换存储器装置中的加密密钥;或其任一组合。
图6说明根据本公开的一些实施例的包含存储器子系统210的实例计算系统200。存储器子系统210可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置240)、一或多个非易失性存储器装置(例如,存储器装置230)或此组合。
存储器子系统210可为存储器装置、存储器模块或存储装置与存储器模块的混合体。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算系统200可为计算装置,例如桌上型计算机、膝上型计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它交通工具)、物联网(IoT)启用装置、嵌入式计算机(例如,包含在交通工具、工业装备或联网商业装置中的装置),或包含存储器及处理装置的此计算装置。
计算系统200可包含耦合到一或多个存储器子系统210的主机系统220。图6说明耦合到一个存储器子系统210的主机系统220的一个实例。如本文使用,“耦合到”或“与...耦合”一般是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,不具有中介组件),无论是有线的还是无线的,包含例如电连接、光学连接、磁连接等的连接。
主机系统220可包含处理器芯片组(例如,处理装置218)及由处理器芯片组执行的软件堆栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,控制器216)(例如,NVDIMM控制器)及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统220例如使用存储器子系统210将数据写入存储器子系统210并从存储器子系统210读取数据。
主机系统220可经由物理主机接口耦合到存储器子系统210。物理主机接口的实例包含(但不限于)串行高级技术附件(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)接口、双数据速率(DDR)存储器总线接口、小型计算机系统接口(SCSI)、双列直插式存储器模块(DIMM)接口(例如,支持双数据速率(DDR)的DIMM插槽接口)、开放式NAND快闪接口(ONFI)、双数据速率(DDR)接口、低功率双数据速率(LPDDR)接口或任何其它接口。物理主机接口可用于在主机系统220与存储器子系统210之间传输数据。主机系统220可进一步利用NVM快速(NVMe)接口以在存储器子系统210通过PCIe接口与主机系统220耦合时存取组件(例如,存储器装置230)。所述物理主机接口可提供用于在存储器子系统210与主机系统220之间传递控制、地址、数据及其它信号的接口。图6说明存储器子系统210作为实例。一般来说,主机系统220可经由相同通信连接、多个单独通信连接及/或通信连接的组合来存取多个存储器子系统。
主机系统220的处理装置218可为例如微处理器、中央处理单元(CPU)、处理器的处理核心、执行单元等。在一些例子中,控制器216可被称为存储器控制器、存储器管理单元及/或启动器。在一个实例中,控制器216控制通过耦合在主机系统220与存储器子系统210之间的总线的通信。一般来说,控制器216可向存储器子系统210发送命令或请求用于对存储器装置230、240进行期望存取。控制器216可进一步包含接口电路系统以与存储器子系统210通信。接口电路系统可将从存储器子系统210接收的响应转换为用于主机系统220的信息。
主机系统220的控制器216可与存储器子系统210的控制器215通信以执行例如在存储器装置230、240处读取数据、写入数据或擦除数据的操作以及其它此类操作。在一些例子中,控制器216集成在处理装置218的同一封装中。在其它例子中,控制器216与处理装置218的封装分离。控制器216及/或处理装置218可包含硬件,例如一或多个集成电路(IC)及/或离散组件、缓冲存储器、高速缓存存储器或其组合。控制器216及/或处理装置218可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)或另一合适处理器。
存储器装置230、240可包含不同类型的非易失性存储器组件及/或易失性存储器组件的任一组合。易失性存储器装置(例如,存储器装置240)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
非易失性存储器组件的一些实例包含与非(或,NOT AND)(NAND)型快闪存储器及就地写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格数据存取阵列基于体积电阻的改变执行位存储。另外,与许多基于快闪的存储器相反,交叉点非易失性存储器可执行就地写入操作,其中可对非易失性存储器单元进行编程而无需事先擦除非易失性存储器单元。NAND型快闪存储器包含例如二维NAND(2D NAND)及三维NAND(3D NAND)。
存储器装置230中的每一者可包含存储器单元的一或多个阵列。一种类型的存储器单元(例如单电平单元(SLC))可每单元存储一个位。其它类型的存储器单元(例如多电平单元(MLC)、三电平单元(TLC)、四电平单元(QLC)及五电平单元(PLC))可每单元存储多个位。在一些实施例中,存储器装置230中的每一者可包含存储器单元的一或多个阵列,例如SLC、MLC、TLC、QLC、或PLC或此任一组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分、MLC部分、TLC部分、QLC部分及/或PLC部分。存储器装置230的存储器单元可被分组为可指代用于存储数据的存储器装置的逻辑单位的页面。对于一些类型的存储器(例如,NAND),页面可经分组以形成块。
尽管描述例如3D交叉点型及NAND型存储器(例如,2D NAND、3D NAND)的非易失性存储器装置,但存储器装置230可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它硫属化物基存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、氧化物基RRAM(OxRAM)、或非(NOR)快闪存储器以及电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器215(或为简单起见控制器215)可与存储器装置230通信以执行例如在存储器装置230处读取数据、写入数据或擦除数据的操作以及其它此类操作(例如,响应于由控制器216在命令总线上调度的命令)。控制器215可包含例如一或多个集成电路(IC)及/或离散组件、缓冲存储器或其组合的硬件。硬件可包含具有专用(例如,硬编码)逻辑的数字电路系统以执行本文所描述的操作。控制器215可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA),专用集成电路(ASIC)等)或另一合适处理器。
控制器215可包含经配置以执行存储在本地存储器219中的指令的处理装置217(例如,处理器)。在所说明实例中,控制器215的本地存储器219包含经配置以存储用于执行控制存储器子系统210的操作的各种过程、操作、逻辑流程以及例程的嵌入式存储器,所述操作包含处置存储器子系统210与主机系统220之间的通信。
在一些实施例中,本地存储器219可包含存储存储器指针、获取数据等的存储器寄存器。本地存储器219还可包含用于存储微代码的只读存储器(ROM)。尽管图6中的实例存储器子系统210已经说明为包含控制器215,但在本发明的另一实施方案中,存储器子系统210可不包含控制器215,而是可依赖于外部控制(例如,由外部主机或由与存储器子系统分离的处理器或控制器提供)。
一般来说,控制器215可从主机系统220接收命令或操作,并且可将命令或操作转换为指令或适当命令以实现对存储器装置230的期望存取。控制器215可负责其它操作,例如损耗均衡操作、垃圾收集操作、错误检测及错误纠正代码(ECC)操作、加密操作、高速缓存操作以及与存储器装置230相关联的逻辑地址(例如,逻辑块地址(LBA)、名称空间)与物理地址(例如,物理块地址)之间的地址转译。控制器215可进一步包含主机接口电路系统以经由物理主机接口与主机系统220通信。主机接口电路系统可将从主机系统接收的命令转换为命令指令以存取存储器装置230以及将与存储器装置230相关联的响应转换为用于主机系统220的信息。
存储器子系统210还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统210可包含可从控制器215接收地址并解码所述地址以存取存储器装置230的高速缓存或缓冲器(例如,DRAM)及地址电路系统(例如,行解码器及列解码器)。
在一些实施例中,存储器装置230包含本地媒体控制器250,其与存储器子系统控制器215结合操作以对存储器装置230的一或多个存储器单元执行操作。外部控制器(例如,存储器子系统控制器215)可在外部管理存储器装置230(例如,对存储器装置230执行媒体管理操作)。在一些实施例中,存储器装置230是受管存储器装置,其是与用于同一存储器装置封装内的媒体管理的本地控制器(例如,本地媒体控制器250)组合的原始存储器装置。被管理存储器装置的实例是被管理NAND(MNAND)装置。
控制器215及/或存储器装置230可包含上文论述的安全管理器213。在一些实施例中,存储器子系统210中的控制器215及/或本地媒体控制器250可包含安全管理器213的至少一部分。在其它实施例中,或在组合中,主机系统220中的控制器216及/或处理装置218可包含安全管理器213的至少一部分。举例来说,控制器215、控制器216及/或处理装置218可包含实施安全管理器213的逻辑电路系统。举例来说,控制器215或主机系统220的处理装置218(例如,处理器)可经配置以执行存储在存储器中的指令以用于执行本文描述的安全管理器213的操作。在一些实施例中,安全管理器213在安置在存储器子系统210中的集成电路芯片中实施。在其它实施例中,安全管理器213可为存储器子系统210、主机系统220的操作系统、装置驱动器或应用程序或其任一组合的固件的部分。
图7说明计算机系统400的实例机器,在计算机系统400内可执行用于致使所述机器执行本文所论述的方法中的任一或多者的一组指令。在一些实施例中,计算机系统400可对应于主机系统(例如,图6的主机系统220),所述主机系统包含、耦合到、或利用存储器子系统(例如,图6的存储器子系统210)或可用于执行安全管理器213的操作(例如,执行指令以执行对应于参考图1到5描述的安全管理器213的操作)。在替代实施例中,所述机器可连接(例如,联网)到LAN、内联网、外联网及/或因特网中的其它机器。所述计算机可在客户端-服务器网络环境中以服务器或客户端机器的身份操作,在对等(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络器械、服务器、网络路由器、交换机或网桥或能够执行指定待由所述机器采取的动作的一组指令(循序或以其它方式)的任何机器。此外,虽然说明单个机器,但是术语“机器”也应被认为包含机器的任何集合,其个别地或共同地执行一组(或多组)指令以执行本文所论述的方法中的任一者或多者。
实例计算机系统400包含处理装置402、主存储器404(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM))、静态随机存取存储器(SRAM)等)以及数据存储系统418,其经由总线430(其可包含多个总线)彼此通信。
处理装置402表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器,或者是实施其它指令集的处理器,或者是实施指令集的组合的处理器。处理装置402也可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器或类似者。处理装置402经配置以执行用于执行本文所论述的操作及步骤的指令426。计算机系统400可进一步包含用于通过网络420进行通信的网络接口装置408。
数据存储系统418可包含机器可读媒体424(也称为计算机可读媒体),在其上存储体现本文所描述的方法或功能中的任一者或多者的一或多组指令426或软件。在由计算机系统400执行指令426期间,指令426也可全部或至少部分地驻留在主存储器404内及/或处理装置402内,主存储器404及处理装置402也构成机器可读存储媒体。机器可读媒体424、数据存储系统418及/或主存储器404可对应于图6的存储器子系统210。
在一个实施例中,指令426包含用以实施对应于安全管理器213(例如,参考图1到5描述的安全管理器213)的功能性的指令。尽管在实例实施例中将机器可读媒体424展示为单个媒体,但是术语“机器可读存储媒体”应被认为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被认为包含能够存储或编码供机器执行并且致使机器执行本公开的方法中的任一者或多者的一组指令的任何媒体。因此,术语“机器可读存储媒体”应被认为包含(但不限于)固态存储器、光学媒体及磁性媒体。
已经根据对计算机存储器内的数据位的操作的算法及符号表示来呈现前述详细描述的某些部分。这些算法描述及表示是数据处理领域的技术人员用来最有效地向所属领域的其它技术人员传达其工作实质的方式。此处,算法通常被认为是导致所需结果的自洽操作序列。所述操作是需要对物理量的物理操纵的操作。通常但不是必须的,这些量采用能够被存储、组合、比较及以其它方式操纵的电或磁信号的形式。已经证明,有时主要出于通用的原因将这些信号称为位、值、元素、符号、字符、项、数字或类似者是方便的。
然而,应牢记,所有这些及类似术语均应与适当物理量相关联并且仅仅是应用于这些量的方便标签。本公开可涉及计算机系统或类似电子计算装置的动作及过程,所述计算机系统或类似电子计算装置将表示为计算机系统的寄存器及存储器内的物理(电子)量的数据操纵及变换为类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量。
本公开还涉及用于执行本文的操作的设备。此设备可经特定构造用于预期目的,或者其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储在计算机可读存储媒体中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适用于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文提出的算法及显示并非固有地与任何特定计算机或其它设备相关。各种通用系统可与根据本文的教示的程序一起使用,或者可证明构造更专用设备来执行所述方法是方便的。各种这些系统的结构将如下文描述中所阐述那样出现。另外,未参考任何特定编程语言来描述本公开。将了解,可使用各种编程语言来实施如本文所描述的本公开的教示。
本公开可被提供为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,所述指令可用于对计算机系统(或其它电子装置)进行编程以执行根据本公开的过程。机器可读媒体包含用于以由机器(例如,计算机)可读的形式存储信息的任何机制。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在此描述中,各种功能及操作被描述为由计算机指令执行或由计算机指令引起以简化描述。然而,所属领域的技术人员将认识到,此类表达的意思是功能是由一或多个控制器或处理器(例如微处理器)执行计算机指令而产生的。替代地或组合地,可使用具有或不具有软件指令的专用电路来实施功能及操作,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。可使用没有软件指令的硬接线电路或结合软件指令来实施实施例。因此,技术既不限于硬件电路及软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。
在前述说明书中,已经参考本公开的特定实例实施例描述本公开的实施例。显而易见的是,在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛精神及范围的情况下,可对其进行各种修改。因此,说明书及图式应被认为是说明意义而不是限制意义的。

Claims (20)

1.一种方法,其包括:
在为配置有基于加密的存取控制的存储器装置实施的抽象层中,接收执行功能的请求,所述请求包含一或多个参数并且识别存储器装置;
由所述抽象层使用所述一或多个参数以独立于所述存储器装置的命令时序、格式或语法配置的格式来产生至少一个第一命令;
由所述抽象层识别所述存储器装置的装置驱动器;及
将所述至少一个第一命令传输到所述装置驱动器,以致使所述装置驱动器根据所述存储器装置的所述命令时序、格式或语法配置而产生到所述存储器装置的至少一个第二命令,所述第二命令包含使用所述第二命令的一部分产生的签名,其中所述功能是通过在所述存储器装置中执行所述至少一个第二命令来实施。
2.根据权利要求1所述的方法,其中所述抽象层包含操作系统内核及至少一个实用程序。
3.根据权利要求2所述的方法,其中所述实用程序能够作为命令行命令执行。
4.根据权利要求2所述的方法,其中所述签名是使用加密密钥为具有所述第二命令的所述部分的消息产生的基于散列的消息认证码。
5.根据权利要求4所述的方法,其中所述一或多个参数包含所述签名。
6.根据权利要求5所述的方法,其中所述抽象层不能存取所述加密密钥。
7.根据权利要求5所述的方法,其中所述抽象层经配置以提供操作码及命令类型以用于根据来自所述至少一个第一命令的所述命令时序、格式或语法配置来产生所述第二命令。
8.根据权利要求7所述的方法,其中所述操作码及所述命令类型针对所述第二命令经配置以:
将加密密钥写入所述存储器装置;
更新所述存储器装置中的加密密钥;
使所述存储器装置中的单调计数器递增;或
从所述存储器装置检索数据;或
其任一组合。
9.根据权利要求7所述的方法,其中所述操作码及所述命令类型针对所述第二命令经配置以:
激活所述存储器装置的安全特征;
去激活所述存储器装置的安全特征;
开始更新所述存储器装置中的寄存器的会话;
结束更新所述存储器装置中的寄存器的会话;
计算存储在所述存储器装置中的内容的一部分的摘要;
改变存储在所述存储器装置中的数据的一部分;或
替换所述存储器装置中的加密密钥;或
其任一组合。
10.一种存储指令的非易失性存储媒体,所述指令在计算装置上执行时致使所述计算装置执行方法,所述方法包括:
在为配置有基于加密的存取控制的存储器装置实施的抽象层中,接收执行功能的请求,所述请求包含一或多个参数并且识别存储器装置;
由所述抽象层使用所述一或多个参数以独立于所述存储器装置的命令及响应时序、格式或语法配置的格式来产生至少一个第一命令;
由所述抽象层识别所述存储器装置的装置驱动器;及
将所述至少一个第一命令发送到所述装置驱动器,以致使所述装置驱动器根据所述存储器装置的所述命令及响应时序、格式或语法配置而产生到所述存储器装置的至少一个第二命令,所述第二命令包含使用所述第二命令的一部分产生的签名,其中所述功能是通过在所述存储器装置中执行所述至少一个第二命令来实施。
11.根据权利要求10所述的非易失性存储媒体,其中所述抽象层包含操作系统内核及至少一个实用程序。
12.根据权利要求11所述的非易失性存储媒体,其中所述实用程序能够作为命令行命令执行。
13.根据权利要求11所述的非易失性存储媒体,其中所述签名是使用加密密钥为具有所述第二命令的所述部分的消息产生的基于散列的消息认证码。
14.根据权利要求13所述的非易失性存储媒体,其中所述一或多个参数包含所述签名。
15.根据权利要求14所述的非易失性存储媒体,其中所述抽象层不能存取所述加密密钥。
16.根据权利要求14所述的非易失性存储媒体,其中所述抽象层经配置以提供操作码及命令类型以用于根据来自所述至少一个第一命令的所述命令及响应时序、格式或语法配置来产生所述第二命令。
17.根据权利要求16所述的非易失性存储媒体,其中所述操作码及所述命令类型针对所述第二命令经配置以:
将加密密钥写入所述存储器装置;
更新所述存储器装置中的加密密钥;
使所述存储器装置中的单调计数器递增;或
从所述存储器装置检索数据;或
其任一组合。
18.根据权利要求16所述的非易失性存储媒体,其中所述操作码及所述命令类型针对所述第二命令经配置以:
激活所述存储器装置的安全特征;
去激活所述存储器装置的安全特征;
开始更新所述存储器装置中的寄存器的会话;
结束更新所述存储器装置中的寄存器的会话;
计算存储在所述存储器装置中的内容的一部分的摘要;
改变存储在所述存储器装置中的数据的一部分;或
替换所述存储器装置中的加密密钥;或
其任一组合。
19.一种设备,其包括:
存储器装置;及
至少一个麦克风,其经由指令经配置以:
在为配置有基于加密的存取控制的存储器装置实施的抽象层中,接收执行功能的请求,所述请求包含一或多个参数并且识别存储器装置;
由所述抽象层使用所述一或多个参数以独立于关于针对所述存储器装置的命令及响应时序、格式或语法配置的制造商规范的格式来产生至少一个第一命令;
由所述抽象层识别所述存储器装置的装置驱动器;及
将所述至少一个第一命令发送到所述装置驱动器,以致使所述装置驱动器根据针对所述存储器装置的所述制造商规范而产生到所述存储器装置的至少一个第二命令,所述第二命令包含使用所述第二命令的一部分产生的签名,其中所述功能是通过在所述存储器装置中执行所述至少一个第二命令来实施。
20.根据权利要求19所述的设备,其中所述抽象层包含操作系统内核及至少一个实用程序。
CN202210577861.0A 2021-05-28 2022-05-25 供应用程序存取安全存储器装置的独立于供应商的设施 Pending CN115408729A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163194417P 2021-05-28 2021-05-28
US63/194,417 2021-05-28
US17/727,623 2022-04-22
US17/727,623 US20220382916A1 (en) 2021-05-28 2022-04-22 Vendor Independent Facilities for Applications to Access a Secure Memory Device

Publications (1)

Publication Number Publication Date
CN115408729A true CN115408729A (zh) 2022-11-29

Family

ID=84157728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210577861.0A Pending CN115408729A (zh) 2021-05-28 2022-05-25 供应用程序存取安全存储器装置的独立于供应商的设施

Country Status (2)

Country Link
US (1) US20220382916A1 (zh)
CN (1) CN115408729A (zh)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7222349B1 (en) * 2003-06-30 2007-05-22 Veritas Operating Corporation External device support for device abstraction layer
US9645752B1 (en) * 2014-04-07 2017-05-09 Western Digital Technologies, Inc. Identification of data committed to non-volatile memory by use of notification commands
US20170187831A1 (en) * 2015-12-29 2017-06-29 Itron, Inc. Universal Abstraction Layer and Management of Resource Devices
US10620855B2 (en) * 2016-09-06 2020-04-14 Samsung Electronics Co., Ltd. System and method for authenticating critical operations on solid-state drives
US10853273B2 (en) * 2018-08-01 2020-12-01 Micron Technology, Inc. Secure memory system programming
US20210390004A1 (en) * 2020-06-16 2021-12-16 Nvidia Corporation Accelerated fifth generation (5g) new radio operations
US20220209959A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Isa support for programming hardware over untrusted links

Also Published As

Publication number Publication date
US20220382916A1 (en) 2022-12-01

Similar Documents

Publication Publication Date Title
US11784827B2 (en) In-memory signing of messages with a personal identifier
US11736276B2 (en) Delegation of cryptographic key to a memory sub-system
US11783044B2 (en) Endpoint authentication based on boot-time binding of multiple components
US11748273B2 (en) Secure data communication with memory sub-system
US20210243035A1 (en) Multi-factor authentication enabled memory sub-system
US11736453B2 (en) Secure key storage devices
US12039049B2 (en) Secure identity chaining between components of trusted computing base
US20230057638A1 (en) Session Access to Files in a File System Mounted in a Secure Memory Device
KR20220123550A (ko) 메모리 서브시스템을 위한 동적 커맨드 확장
US20230032885A1 (en) Mechanism to Support Writing Files Into a File System Mounted in a Secure Memory Device
US20220382916A1 (en) Vendor Independent Facilities for Applications to Access a Secure Memory Device
US20240323016A1 (en) Verify Public Keys by Devices without Secrets for the Generation of Respective Private Keys
CN118694516A (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