掌桥专利:专业的专利平台
掌桥专利
首页

将密码密钥委托给存储器子系统

文献发布时间:2023-06-19 16:08:01



本申请要求于2019年11月7日提交的第16/677,306号美国申请的优先权,所述美国申请以全文引用的方式并入本文中。

技术领域

本公开的实施例大体上涉及存储器子系统,且更具体地说,涉及将密码密钥委托给存储器子系统。

背景技术

存储器子系统可包含存储数据的一或多个存储器组件。存储器组件可例如为非易失性存储器组件和易失性存储器组件。一般来说,主机系统可利用存储器子系统以在存储器组件处存储数据以及从存储器组件检索数据。

附图说明

根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。

图1说明根据本公开的一些实施例的包含存储器子系统的实例计算环境。

图2是说明根据本公开的一些实施例的在安全通信环境中执行委托密码密钥的实例方法时组件之间的交互的数据流图。

图3是说明根据本公开的一些实施例的在安全通信环境中执行委托密码密钥的实例方法时组件之间的交互的泳道图。

图4和5是说明根据本公开的一些实施例的将密码密钥委托在存储器子系统中的实例方法的流程图。

图6是本公开的实施例可在其中操作的实例计算机系统的框图。

具体实施方式

本公开的各方面涉及将密码密钥委托给存储器子系统。存储器子系统可以是存储装置、存储器模块或存储装置与存储器模块的混合。下文结合图1描述存储装置和存储器模块的实例。通常,主机系统可利用存储器子系统,所述存储器子系统包含存储数据的一或多个存储器装置。主机系统可提供数据以存储在存储器子系统处,且可请求从存储器子系统检索数据。

存储器子系统可存储应仅由例如现场工程师等专门授权的用户存取的机密的、专属的或其它敏感信息。为了保护由存储器子系统存储的敏感信息,通常使用公钥基础设施(PKI)以密码方式对敏感信息进行签名和验证。以此方式,可获得来源信任和检测出未经授权修改的能力。PKI的实例使用包含固件签名和验证,以及对可能危及存储器子系统安全的命令的授权。

在某些实施方案中,非对称密钥对(在本文中也称为“密码密钥”)中的公钥在发货给客户之前由原始设备制造商(OEM)预配给存储器子系统,而私钥由处于存储器子系统外部且与存储器子系统无关的安全系统(例如,由OEM操作)的硬件安全模块(HSM)保护。最初预配给存储器子系统的公钥可称作“根”公钥,而由安全服务器的HSM存储的对应私钥可称作“根”私钥。芮韦斯特-莎米尔-艾德曼(Rivest-Shamir-Adleman,RSA)PKI操作允许加密和解密操作以及签名生成和验证操作。通过公钥加密的数据仅可通过对应私钥进行解密。

在一些情况下,可能需要改变由存储器子系统使用的公钥。即,可能需要使存储器子系统使用新公钥而非根公钥来加密和/或验证敏感信息。举例来说,可能需要使存储器子系统利用对应于由(例如,膝上型计算机中包含的)便携式HSM而非安全服务器的HSM存储的新私钥的新公钥。在另一实例中,可能需要使存储器子系统利用对应于由包含密码库的智能卡存储的新私钥的新公钥。在又一实例中,可能需要使存储器子系统利用对应于由安全服务器的同一HSM存储的新私钥的新公钥。在任何情况下,必须以安全方式将新公钥委托给存储器子系统,所述安全方式保留信任的网页以避免产生可被利用来获得存储器子系统所存储的敏感信息的未经授权存取的安全漏洞。

本公开的各方面通过实施用于将新密码密钥委托给存储器子系统的安全协议来解决以上和其它问题。如上所指出,生成包括根公钥和根私钥的非对称密钥对,且存储器子系统控制器最初预配有所述根公钥,而安全服务器存储所述根私钥。为了将新公钥委托给存储器子系统,主机系统的用户(例如,现场应用工程师(FAE))可使主机系统将新密钥委托请求发布到存储器子系统控制器。新密钥委托请求包含待委托给存储器子系统控制器的新公钥。响应于接收到所述请求,存储器子系统控制器生成包含新公钥、根公钥和唯一数据(例如,随机数和/或装置唯一数据)的质询且将所述质询返回到主机系统。举例来说,所述唯一数据可包含装置唯一数据和/或唯一且不同于随后生成的质询的随机数。包含于质询中的唯一数据确保所述质询可仅由存储器子系统控制器生成且防止所述质询被其它装置复制。所述唯一数据还防止质询响应在稍后时间被重播到所述装置。

为了使存储器子系统控制器在密码操作中接受和使用新公钥,主机系统的用户必须使质询由根私钥和对应于新公钥的新私钥两者签名,且将两个数字签名提供到存储器子系统。这两个数字签名证明OEM批准将新密钥委托给存储器子系统且用户拥有新私钥。为了获得这些签名,主机系统的用户可将第一签名请求提交到存储根私钥的安全服务器,且将第二签名请求提交到密钥委托安全执行环境(例如,便携式HSM、智能卡或安全服务器)。

响应于第一签名请求,安全服务器返回通过用根私钥对质询进行密码签名而生成的第一数字签名,且基于第二签名请求,密钥委托安全执行环境返回通过用新私钥对质询进行密码签名而生成的第二数字签名。主机系统的用户经由主机系统将两个数字签名提供到存储器子系统控制器,且存储器子系统控制器继而分别使用根公钥和新公钥验证所述两个数字签名。基于两个签名的成功验证,存储器子系统控制器将新公钥复制到存储器,此后可在一或多个密码操作中使用新公钥。

利用上文所描述的安全协议通过防止未经授权的各方存取敏感信息减少了存储器子系统中的漏洞。另外,所述安全协议为已授权人员提供安全机制以在允许使用除最初预配给存储器子系统的根密钥外的密码密钥时从存储器子系统安全存取敏感信息。

图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算环境100。存储器子系统110可包含媒体,例如存储器组件112-1到112-N(下文还称为“存储器装置”)。存储器组件112-1到112-N可以是易失性存储器组件、非易失性存储器组件或此类组件的组合。存储器子系统110可以是存储装置、存储器模块,或存储装置与存储器模块的混合。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器以及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小型DIMM(SO-DIMM)以及非易失性双列直插式存储器模块(NVDIMM)。

计算环境100可包含耦合到存储器系统的主机系统120。存储器系统可包含一或多个存储器子系统110。在一些实施例中,主机系统120耦合到不同类型的存储器子系统110。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。主机系统120使用存储器子系统110,以例如将数据写入到存储器子系统110和从存储器子系统110读取数据。如本文中所使用,“耦合到”通常是指组件之间的连接,所述连接可以是间接通信连接或直接通信连接(例如不具有居间组件),无论有线或无线,包含例如电连接、光学连接、磁连接等连接。

主机系统120可以是计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、嵌入式计算机(例如,包含在载具、工业设备或联网的商业装置中的计算机),或包含存储器和处理装置的此类计算装置。主机系统120可包含或耦合到存储器子系统110,使得主机系统120可从存储器子系统110读取数据或将数据写入所述存储器子系统。主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、外围组件互连高速(PCIe)接口、通用串行总线(USB)接口、光纤通道接口、串行连接的SCSI(SAS)等。物理主机接口可用于在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120还可利用NVM高速(NVMe)接口来存取存储器组件112-1到112-N。物理主机接口可提供用于在存储器子系统110与主机系统120之间传送控制、地址、数据以及其它信号的接口。

存储器组件112-1到112-N可包含不同类型的非易失性存储器组件和/或易失性存储器组件的任何组合。非易失性存储器组件的实例包含与非(NAND)型快闪存储器。存储器组件112-1到112-N中的每一者可包含存储器单元的一或多个阵列,所述存储器单元例如单层级单元(SLC)、多层级单元(MLC)、三层级单元(TLC)或四层级单元(QLC)。在一些实施例中,特定存储器组件可包含存储器单元的SLC部分以及另一类型(例如,MLC、TLC、QLC)的部分。存储器单元中的每一者可存储供主机系统120使用的一或多位数据。尽管描述如NAND型快闪存储器的非易失性存储器组件,但存储器组件112-1到112-N可基于任何其它类型的存储器,例如易失性存储器。在一些实施例中,存储器组件112-1到112-N可以是但不限于随机存取存储器(RAM)、只读存储器(ROM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、相变存储器(PCM)、磁随机存取存储器(MRAM)、或非(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)以及非易失性存储器单元的交叉点阵列。非易失性存储器单元的交叉点阵列可结合可堆叠交叉网格化数据存取阵列基于体电阻的改变来执行位存储。另外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。此外,如上所指出,存储器组件112-1到112-N的存储器单元可经分组以形成页,所述页可指用于存储数据的存储器组件的单元。对于一些类型的存储器(例如,NAND),页可经分组以形成块。

存储器子系统控制器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可包含高速缓存或缓冲器(例如DRAM)以及地址电路系统(例如行解码器和列解码器),所述地址电路系统可从控制器115接收地址且对地址进行解码以存取存储器组件112-1到112-N。

存储器子系统110还包含促进与存储器子系统110的安全通信的安全组件113。安全组件113可包含于控制器115或存储器组件112-1到112-N中的任何一或多者中。在一些实施例中,控制器115包含安全组件113的至少一部分。举例来说,控制器115可包含处理器117(处理装置),其经配置以执行存储在本地存储器119中的指令以用于执行本文所描述的操作。在一些实施例中,安全组件113是主机系统120、应用程序或操作系统的部分。

安全组件113可进一步包含密钥存储区109以存储由安全组件113用以加密和/或验证信息的一或多个密码密钥。举例来说,密钥存储区109可存储由安全组件113用以加密信息或验证使用对应的根私钥签名的信息的根公钥。在一些实施例中,密钥存储区109实施于存储器子系统控制器115的本地存储器(例如,本地存储器119)内。在一些实施例中,密钥存储区109实施于存储器组件112-1到112-N中的一或多者内。密钥存储区109可实施于非易失性存储器内,使得在系统重启后,存储于其中的密码密钥不会丢失。

安全组件113可从主机系统120接收在密码操作中使用新公钥的请求。响应于所述请求,安全组件113向主机系统120提供质询,所述质询包含根公钥、包含于所述请求中的新公钥以及随机数。在一些实施例中,质询可进一步包含特定于装置的信息。由安全组件113生成的每个质询对于请求是唯一的。在使用新公钥之前,安全组件113接收基于所述质询的两个数字签名。第一数字签名通过使用根私钥对所述质询进行签名而生成,且第二数字签名通过使用对应于新公钥的新私钥对所述质询进行签名而生成。第一签名验证新公钥是已授权密钥(例如,由OEM授权),而第二签名验证请求用户拥有新私钥。在接收且验证两个签名之后,安全组件113可将新公钥复制到存储器且在一或多个密码操作中使用所述新公钥。

安全组件113可经由物理主机接口或可专门配置为诊断或维护端口的本机边带通信端口(例如,通用异步收/发器(UART)端口或支持双向通信的其它串行通信端口)与主机系统120通信。

图2是说明根据本公开的一些实施例的在安全通信环境中执行委托密码密钥的实例方法时组件之间的交互的数据流图。在图2的上下文中,可预先生成初始非对称加密密钥对——根公钥207和根私钥211,且可为安全组件113预配根公钥207,而为安全服务器200预配根私钥211。安全组件113将根公钥207存储在密钥存储区109中。安全服务器200包括用以存储根私钥211的HSM。另外,在图2的上下文中,可生成新非对称密钥对——新公钥205和新私钥213。新公钥205将以下文描述的方式委托给安全组件113,且新私钥213由密钥委托安全执行环境202存储。

在一些实施例中,密钥委托安全执行环境202可以是或包含智能卡。智能卡是包含嵌入式电路系统以执行一或多个功能且包含内部存储器以至少存储私钥的装置。智能卡可通过直接物理接触或通过远程非接触式射频接口连接到读取器组件(未展示)。读取器组件可从智能卡读取信息且经由接口与主机系统120通信。举例来说,存储器子系统110可包含允许读取器组件与存储器子系统110交换信息的API。在一些实施例中,用户可能需要将个人标识号(PIN)供应到智能卡,以便存取由智能卡存储的信息,例如私钥。在其中利用智能卡来存储私钥的实施例中,多因素认证过程将存储器子系统110绑定到特定用户,即,所述智能卡被指派到的用户。根据这些实施例,存储器子系统110将保持在无法存取任何数据的锁定状态中,直到智能卡被读取器组件读取。

在一些实施例中,密钥委托安全执行环境202可以是或包括便携式HSM(例如,嵌入于膝上型计算机中)。在一些实施例中,密钥委托安全执行环境202可以是或包括第二安全服务器(例如,由OEM操作的安全服务器200或由第三方操作的安全服务器)。

如所展示,在204处,主机系统120将密钥委托请求发送到控制器115。密钥委托请求包括正委托给控制器115的新公钥205。

响应于所述请求,控制器115的安全组件113生成质询206。质询206包括新公钥205、根公钥207和随机数。质询206中包含的随机数是唯一的且不同于后续生成的质询。以此方式,随机数确保质询206可仅由控制器115生成且防止质询206被其它装置复制。在208处,控制器115用质询206对来自主机系统120的请求作出响应。

在210处,主机系统120的用户201(例如,FAE)将第一签名请求传输到密钥委托安全执行环境202,以通过用根私钥211对质询206进行密码签名来生成第一数字签名。在212处,主机系统120的用户201(例如,FAE)将第二签名请求传输到安全服务器200,以通过用新私钥213对质询206进行密码签名来生成第二数字签名。在214处,密钥委托安全执行环境202通过用新私钥213对质询206进行密码签名而生成的第一数字签名215来对第一签名请求作出响应,且在216处,安全服务器200通过用根私钥211对质询206进行密码签名而生成的第二数字签名217来对第二签名请求作出响应。

在218处,主机系统120将双重签名的质询206提供到控制器115。即,主机系统120将第一数字签名215和第二数字签名217提供到控制器115。在接收到第一数字签名215和第二数字签名217之后,控制器115使用新公钥205来验证第一数字签名215且使用根公钥207来验证第二数字签名217。在成功验证两个签名之后,控制器115将新公钥205复制到存储器且随后在一或多个密码操作中使用新公钥205。如果任一签名的验证不成功,则控制器115舍弃新公钥205。

图3是说明根据本公开的一些实施例的在安全通信环境中执行委托密码密钥的实例方法300时组件之间的交互的泳道图。在方法300之前,预先生成初始非对称加密密钥对——根公钥和根私钥,且可为安全组件113预配所述根公钥,而为安全服务器200预配所述根私钥。安全组件113将根公钥存储在密钥存储区109中。另外,生成新的非对称密钥对——新公钥和新私钥。新公钥将以下文描述的方式委托给安全组件113,且新私钥由密钥委托安全执行环境(例如,202)存储。

如图3中展示,方法300开始于操作302,其中主机系统120将密钥委托请求发送到控制器115。所述密钥委托请求包括被委托给控制器115的新公钥。

响应于所述请求,控制器115的安全组件113在操作304处生成质询,所述质询包括所述新公钥、所述根公钥和仅使用一次的数字(临时数)。因此,在生成质询时,安全组件113生成临时数,且将所述临时数与根公钥和新公钥组合。在一些实施例中,质询可包含额外字段,例如特定于装置的信息(例如,描述存储器子系统110的信息)。包含于质询中的随机数(和特定于装置的信息)确保所述质询可仅由控制器115生成且防止所述质询被其它装置复制。

在操作306处,控制器115用质询对来自主机系统120的请求作出响应。在操作308处,在接收到质询后,主机系统120将第一签名请求发送到密钥委托安全执行环境202,以通过用根私钥211对质询进行密码签名来生成第一数字签名。密钥委托安全执行环境202可以是或包括便携式HSM(例如,嵌入膝上型计算机中)、智能卡或安全服务器(例如,由OEM操作的安全服务器200或由第三方操作的安全服务器)。

与传输第一签名请求并行,在操作310处,主机系统120将第二签名请求发送到安全服务器200,以通过用新私钥对质询进行密码签名来生成第二数字签名。可经由有线或无线网络连接来传输第二签名请求。所述请求可例如经由安全服务器200提供的应用程序编程接口(API)接收。

在操作312处,密钥委托安全执行环境202通过使用新私钥对质询进行密码签名而生成第一数字签名,且在操作314处,密钥委托安全执行环境202用第一数字签名对第一签名请求作出响应。

在操作316处,安全服务器200通过使用根私钥对质询进行密码签名而生成第二数字签名,且在操作318处,安全服务器200用第二数字签名来对第二签名请求作出响应。

主机系统120将第一数字签名215和第二数字签名217提供到安全组件113(在操作320处)。控制器115在操作322处验证第一和第二数字签名。更具体地说,安全组件113使用新公钥来验证第一数字签名且使用根公钥来验证第二数字签名。举例来说,在验证数字签名时,安全组件113使用公钥来基于质询生成散列数据,且安全组件113使用所述公钥对数字签名进行解密。如果散列数据和经解密数据匹配,则密钥被视为有效。否则,将密钥视为无效,因为用了不同密钥来生成数字签名,或已更改用于数字签名(例如,质询)中的基础数据。

在成功验证两个签名之后,控制器115在操作324处将新公钥复制到存储器。在将新公钥复制到存储器的情况下,安全组件113可随后在一或多个密码操作中使用新公钥。在一些实施例中,所述新公钥可存储在易失性存储器中,使得所述新公钥在系统重启后被舍弃。

图4和5是说明根据本公开的一些实施例的将密码密钥委托在存储器子系统中的实例方法400的流程图。方法400可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。在一些实施例中,由图1的安全组件113执行方法400。尽管以特定顺序或次序来展示过程,但除非另有指定,否则可修改所述过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序执行,且一些过程可并行地执行。另外,在各种实施例中可省去一或多个过程。因此,并非每个实施例中都需要所有过程。其它过程流也是可能的。

在操作405处,处理装置接收密钥委托请求。所述密钥委托请求包含新公钥。可从主机系统120接收请求。在一些实施例中,接收所述请求包含经由主机系统接口从主机系统接收一或多个命令。在一些实施例中,接收所述请求包含经由通信端口(例如,UART端口或支持双向通信的其它串行通信端口)从主机系统接收所述请求。

在操作410处,处理装置响应于接收到所述请求而生成质询。所述质询的生成包含生成临时数且将所述临时数与所述新公钥和由处理装置存储的根公钥组合。可在制造期间将根公钥预配给处理装置且将其存储在密钥存储区(例如,密钥存储区109)中。所述临时数包括随机数。因此,临时数的生成包含生成随机数。处理装置可使用许多已知随机数发生器中的一者生成随机数。在一些实施例中,质询可包含额外字段,所述额外字段包含某些特定于装置的信息。包含于质询中的随机数确保所述质询可仅由控制器115生成且防止所述质询被其它装置复制。在随机数也是仅使用一次的唯一数字的条件下,随机数还防御对先前已签名质询的重播。

在操作415处,处理装置响应于所述请求而提供所述质询。举例来说,处理装置可响应于从主机系统120接收的请求而将质询返回到主机系统120。

处理装置接收通过用与新公钥相关联的新私钥对质询进行密码签名而生成的第一数字签名(在操作420处)。即,所述新私钥和所述新公钥形成非对称密钥对。

在操作425处,处理装置接收通过用与根公钥相关联的根私钥对质询进行密码签名而生成的第二数字签名。即,所述根私钥和所述根公钥形成非对称密钥对。

在操作430处,处理装置使用新公钥验证第一数字签名。举例来说,处理装置可使用新公钥计算质询的第一散列,使用新公钥对第一数字签名进行解密,且将第一散列与经解密数据进行比较。如果两个值匹配(例如,第一散列和经解密数据相同),则第一数字签名的验证成功。如果所述值匹配,则签名被视为有效。如果值不匹配,则这意味着不同密钥用于生成第一签名,或质询已被更改(有意地或无意地)。因此,如果两个值之间存在差异,则验证失败。

处理装置使用根公钥验证第二数字签名(在操作435处)。举例来说,处理装置可使用根公钥计算质询的第二散列,使用根公钥对第二数字签名进行解密,且将第二散列与经解密数据进行比较。如同第一数字签名,如果两个值匹配,则第一数字签名的验证成功。否则,验证失败。

在操作440处,处理装置基于对两个数字签名的成功验证而将新公钥复制到存储器。在实例中,处理装置将新公钥存储在易失性存储器组件中,使得处理装置的电力中断会使新公钥丢失。

在操作445处,处理装置基于对第一和第二数字签名两者的成功验证而在密码操作中利用新公钥。举例来说,处理装置可使用新公钥对信息加密。

如图5中所展示,在一些实施例中,方法400可包含操作450和455。根据这些实例,在操作440处,处理装置将新公钥存储在易失性存储器组件中。在操作450处,处理装置接收使新公钥永久化的命令。可经由主机系统接口从主机系统120接收所述命令。在操作455中,基于接收到命令,处理装置将新公钥存储在非易失性存储器组件中,使得新公钥在系统重启后得以维持。举例来说,处理装置可将新公钥存储在密钥存储区109中。下文阐述一些实例系统。

实例1是一种系统,其包括存储器组件以及存储器子系统控制器,所述存储器子系统控制器以操作方式与所述存储器组件耦合以执行包括以下各项的操作:从主机系统接收包括新公钥的密钥委托请求;基于接收到所述请求,基于所述新公钥和根公钥生成质询;响应于所述密钥委托请求向所述主机系统提供所述质询;从所述主机系统接收通过用对应于所述新公钥的新私钥对所述质询进行密码签名而生成的第一数字签名;从所述主机系统接收通过用对应于所述根公钥的根私钥对所述质询进行密码签名而生成的第二数字签名;使用所述新公钥验证所述第一数字签名;使用所述根公钥验证所述第二数字签名;以及基于验证所述第一和第二数字签名,在一或多个密码操作中利用所述新公钥。

在实例2中,实例1的系统任选地包括易失性存储器组件,且实例1的操作任选地包括基于验证所述第一和第二数字签名而将新公钥复制到所述易失性存储器组件。

在实例3中,实例1到2中任一项所述的系统任选地包括非易失性存储器组件以存储所述根公钥,且实例1到2中任一项所述的操作任选地包括从所述主机系统接收使所述新公钥永久化的命令,以及基于所述命令,将所述新公钥存储在非易失性存储器组件中。

在实例4中,实例1到3中任一项所述的质询任选地包括临时数、新公钥和根公钥。

在实例5中,实例1到4中任一项中的质询的生成任选地包括:生成所述临时数,所述临时数包括随机数;以及组合所述临时数、所述新公钥和所述根公钥。

在实例6中,实例1到5中任一项所述的主题任选地包括用以存储所述根私钥的安全服务器和用以存储所述新私钥的安全执行环境。

在实例7中,实例1到6中任一项所述的主题任选地包括安全服务器和安全执行环境,所述安全服务器包括硬件安全模块(HSM),所述安全执行环境包括便携式HSM、智能卡或第二安全服务器中的一者。

在实例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中任一项所述的主题任选地包括安全服务器和安全执行环境,所述安全服务器包括硬件安全模块(HSM),所述安全执行环境包括便携式HSM、智能卡或第二安全服务器中的一者。

在实例18中,实例11到17中任一项所述的方法任选地包括:使用所述新公钥基于所述质询生成第一散列数据;使用所述新公钥解密所述第一数字签名,解密所述第一数字签名产生第一经解密数据;以及将所述第一散列数据与所述第一经解密数据进行比较;使用所述根公钥基于所述质询生成第二散列数据;使用所述根公钥解密所述第二数字签名,解密所述第二数字签名产生第二经解密数据;以及将所述第二散列数据与所述第二经解密数据进行比较。

在实例19中,实例11到18中任一项所述的一或多个硬件处理器任选地对应于存储器子系统控制器。

实例20是一种包括指令的非暂时性计算机可读存储媒体,所述指令在由处理装置执行时配置所述处理装置以执行包括以下各项的操作:从主机系统接收包括新公钥的密钥委托请求;基于接收到所述请求,基于所述新公钥和根公钥生成质询;响应于所述密钥委托请求向所述主机系统提供所述质询;从所述主机系统接收通过用对应于所述新公钥的新私钥对所述质询进行密码签名而生成的第一数字签名;从所述主机系统接收通过用对应于所述根公钥的根私钥对所述质询进行密码签名而生成的第二数字签名;使用所述新公钥验证所述第一数字签名;使用所述根公钥验证所述第二数字签名;以及基于验证所述第一和第二数字签名,在一或多个密码操作中利用所述新公钥。

图6说明呈计算机系统600形式的实例机器,其中可执行一组指令以使机器执行本文所论述的任何一或多个方法。在一些实施例中,计算机系统600可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110),或可用于执行控制器的操作(例如,执行操作系统以执行对应于图1的安全组件113的操作)。在替代实施例中,所述机器可连接(例如联网)到局域网(LAN)、内联网、外联网和/或互联网中的其它机器。机器可作为对等(或分布式)网络环境中的对等机器或作为云计算基础设施或环境中的服务器或客户端机器而以客户端-服务器网络环境中的服务器或客户端机器的能力进行操作。

所述机器可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥,或能够(顺序或以其它方式)执行指定待由所述机器采取的动作的一组指令的任何机器。此外,尽管说明了单个机器,但还应认为术语“机器”包含分别或共同地执行一组(或多组)指令以执行本文所论述的任何一或多个方法的任何机器集合。

实例计算机系统600包含经由总线630彼此通信的处理装置602、主存储器604(例如,ROM、快闪存储器、DRAM,例如SDRAM或Rambus DRAM(RDRAM)等)、静态存储器606(例如,快闪存储器、静态随机存取存储器(SRAM)等),以及数据存储系统618。

处理装置602表示一或多个通用处理装置,例如微处理器、中央处理单元等。更具体地说,处理装置602可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置602也可以是一或多个专用处理装置,例如ASIC、FPGA、数字信号处理器(DSP)、网络处理器等。处理装置602经配置以执行指令626以用于执行本文所论述的操作和步骤。计算机系统600还可包含网络接口装置608以通过网络620通信。

数据存储系统618可包含机器可读存储媒体624(也称为计算机可读媒体),其上存储有体现本文所描述的任何一或多个方法或功能的一或多组指令626或软件。指令626还可在其由计算机系统600执行的期间完全或至少部分地驻存在主存储器604内和/或处理装置602内,主存储器604和处理装置602也构成机器可读存储媒体。机器可读存储媒体624、数据存储系统618和/或主存储器604可对应于图1的存储器子系统110。

在一个实施例中,指令626包含用以实施对应于安全组件(例如图1的安全组件113)的功能的指令。尽管在实例实施例中将机器可读存储媒体624展示为单个媒体,但术语“机器可读存储媒体”应被认为包含存储一组或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行且使机器执行本公开的任何一或多个方法的一组指令的任何媒体。因此,应认为术语“机器可读存储媒体”包含但不限于固态存储器、光学媒体以及磁性媒体。

已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域中的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。算法在此处以及通常被认为是产生所要结果的操作的自洽序列。所述操作是要求对物理量进行物理操控的操作。这些量通常但未必呈能够被存储、组合、比较和以其它方式操控的电或磁信号的形式。有时,已证明主要出于通用的原因将这些信号称为位、值、元件、符号、字符、项、数字等是方便的。

然而,应牢记,所有这些和类似术语应与适当物理量相关联,且仅仅是应用于这些量的方便标签。本公开可指计算机系统或类似电子计算装置的动作和过程,其操控且将计算机系统的寄存器和存储器内表示为物理(电子)量的数据变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据。

本公开还涉及用于执行本文中的操作的设备。此设备可出于既定目的而专门构造,或其可包含由存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储在计算机可读存储媒体中,例如但不限于任何类型的盘(包含软盘、光盘、CD-ROM和磁性光盘)、ROM、RAM、可擦除可编程只读存储器(EPROM)、EEPROM、磁卡或光卡或适于存储电子指令的任何类型的媒体,它们各自耦合到计算机系统总线。

本文中呈现的算法和显示在本质上不与任何特定计算机或其它设备相关。各种通用系统可与根据本文中的教示的程序一起使用,或可证明构建更专用设备以执行所述方法是方便的。如上文描述中所阐述的那样来呈现各种这些系统的结构。另外,未参考任何特定编程语言来描述本公开。应了解,可使用各种编程语言来实施本文中所描述的本公开的教示。

本公开可提供为计算机程序产品或软件,其可包含机器可读媒体,所述机器可读媒体上存储有指令,所述指令可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于以机器(例如,计算机)可读形式存储信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器可读(例如,计算机可读)存储媒体,例如ROM、RAM、磁盘存储媒体、光学存储媒体、快闪存储器组件等。

在前述说明书中,已参考其特定实例实施例描述了本公开的实施例。应显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和附图。

技术分类

06120114712945