CN116420145A - 基于多个组件的启动时间绑定的端点验证 - Google Patents
基于多个组件的启动时间绑定的端点验证 Download PDFInfo
- Publication number
- CN116420145A CN116420145A CN202180071772.2A CN202180071772A CN116420145A CN 116420145 A CN116420145 A CN 116420145A CN 202180071772 A CN202180071772 A CN 202180071772A CN 116420145 A CN116420145 A CN 116420145A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory device
- credential
- component
- 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
Links
- 238000012795 verification Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000004891 communication Methods 0.000 claims abstract description 15
- 230000015654 memory Effects 0.000 claims description 142
- 238000003860 storage Methods 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 10
- 238000012545 processing Methods 0.000 description 31
- 230000008569 process Effects 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000011065 in-situ storage Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/034—Test or assess a computer or a system
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Analysis (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种验证具有安全存储器装置的端点的系统、方法及设备。举例来说,在所述端点的启动时间,使用存储于所述存储器装置中的启动加载程序的密码散列值来产生所述存储器装置的装置标识符;且所述端点的多个组件的标识数据搭配所述存储器装置的所述装置标识符使用以产生第一密钥对密钥及第二密钥。从单调计数器检索计数器值以产生使用所述第一密钥对中的私密密钥签署的凭证。可经由计算机网络将所述凭证发送到远程服务器以使用所述第一密钥对中的公共密钥进行验证。所述第二密钥对可经验证且用于针对所述端点与所述服务器之间的通信连接建立加密。
Description
相关申请案
本申请案主张在2020年10月26日申请且标题为“基于多个组件的启动时间绑定的端点验证(Endpoint Authentication based on Boot-Time Binding of MultipleComponents)”的序列号为17/080,684号美国专利申请案的优先权,所述美国专利申请案的全部公开内容特此以引用方式并入本文中。
技术领域
本文中公开的至少一些实施例大体上涉及验证,且更特定来说,但不限于具有安全存储器装置的通信端点的验证。
背景技术
存储器子系统可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置及易失性存储器装置。一般来说,主机系统可利用存储器子系统以将数据存储于存储器装置处且从存储器装置检索数据。
附图说明
在随附图式的图中,以实例方式且非限制地说明实施例,其中相似元件符号指示类似元件。
图1说明根据本公开的一些实施例的具有存储器子系统的实例计算系统。
图2说明根据一个实施例的具有安全管理器的集成电路存储器装置。
图3说明根据一个实施例的用于端点验证的凭证的产生。
图4说明根据一个实施例的用于端点验证的凭证的使用。
图5展示根据一个实施例的端点验证的方法。
图6是其中可操作本公开的实施例的实例计算机系统的框图。
具体实施方式
本公开的至少一些方面涉及配置成具有安全管理器的存储器子系统,所述安全管理器经由存储器子系统与其主机系统的启动时间绑定来产生用于主机系统的验证的凭证。下文结合图1描述存储装置及存储器模块的实例。一般来说,主机系统可利用包含一或多个组件(例如存储数据的存储器装置)的存储器子系统。主机系统可提供待存储于存储器子系统处的数据且可请求待从存储器子系统检索的数据。
安全存储器装置可存储装置秘密以用于其验证。举例来说,唯一装置秘密(UDS)可注入安全设施中的存储器装置中且存储于存储器装置的寄存器中。遵循由装置标识符合成引擎(DICE)及稳健物联网络(RIoT)标准定义的算法,可在启动时间基于唯一装置秘密(UDS)及存储于安全存储器装置中的其它非秘密数据的组合而产生密钥。接着,可使用密钥作为存储器装置的秘密及标识符。
举例来说,可通过验证存储器装置具有密钥及因此唯一秘密且存储非秘密数据的未篡改版本来执行安全存储器装置的验证。存储器装置可使用密钥数字签署凭证。如果可验证数字签名使用密钥创建,那么看见存储器装置拥有密钥且因此具有与唯一装置秘密相关联的标识符。
可通过将密码函数应用于消息且使用密钥来实现所述消息的数字验证。此类密码函数包含散列及加密,其通常用于产生添加到消息的标头以用于验证。在使用对称密码时,标头可为散列摘要,或在应用非对称密码时,标头可为数字签名。接着,消息的接收者可将类似密码函数应用于所接收消息且使用密钥来验证由拥有适当密钥的受信任方发送消息的内容。可解密标头中的加密散列值以与从消息独立计算的散列值进行比较。如果从消息计算的散列值与从解密标头(例如,数字签名及/或散列摘要)复原的散列值之间存在匹配,那么可鉴于散列值确认消息的完整性;且可见标头使用密钥创建。
在启动时间产生的密钥可用于在启动时间签署凭证且立即丢弃以保护其保密性。替代地,在启动时间产生的密钥可保存在存储器中以稍后在运行时间使用。在一些情况中,在启动时间使用的密钥被称为DICE装置ID密钥且在运行时间使用的密钥被称为DICE别名密钥。在一些情况中,装置ID私密密钥可用于签署包含别名公共密钥的凭证以证明从安全存储器装置产生别名密钥。
然而,恶意行为者可通过窃取在启动时间产生的凭证及来自有效安全存储器装置的别名私密密钥而冒充安全存储器装置且使用其来建立到远程主机的连接。保护端点上的别名私密密钥的保密性的对策可包含将密钥存储于硬件安全模块(HSM)中,但此类装置可能并非在全部系统中可用,从而使别名私密密钥暴露于盗窃及冒充攻击。
此外,在一些应用中,仅验证通信的端点处的装置含有安全存储器装置可能不够。举例来说,端点可含有在其试图与远程系统建立通信时提供端点的标识符的子系统。这些子系统可包含硬件组件及其可用时的其唯一标识符编号以及其固件内容。可期望验证端点含有此类子系统的适当组合。
本公开的至少一些方面借助于通过在启动时间凭证中包含多个组件加强端点的标识符而解决上述及其它缺陷。安全存储器装置的标识符及端点的一或多个其它组件的标识符/若干标识符的组合可在启动时将端点表示为一个整体。此实体的验证验证端点不但具有安全装置,而且具有其它所需组件,例如硬件及/或软件。
举例来说,端点经配置以具有作为其多个组件中的一者的安全存储器装置且使用安全存储器装置来存储待在端点的启动时间期间执行的指令。安全存储器装置可具有安全管理器,其防止未授权存取存储器容量。此外,在允许执行例如固件、启动加载程序、操作系统及/或软件应用程序的指令之前,安全管理器可在启动时间期间验证存储于安全存储器装置中的指令的完整性。
此外,端点的标识符可包含时间相关信息以使冒充攻击更困难,这是因为凭证可能变得过时。尝试向主机呈现过时凭证的恶意行动者将在其尝试冒充有效端点时被检测到。由于凭证还包含在启动时间产生的别名公共密钥,因此远程主机可验证端点使用与所述公共密钥相关联的别名私密密钥而非先前获取的被盗别名私密密钥。
在启动时间,安全存储器装置经配置以建立具有安全存储器装置及在安全存储器装置外部的端点的至少一个额外组件的端点的标识符。标识表示在启动时安全存储器装置与至少一个额外组件绑定以形成端点。举例来说,可在启动时间基于端点的组件的标识符(例如存储于安全存储器装置外部的一或多个软件图像的密码度量、硬件组件(例如处理器、网络适配器、另一存储器/存储装置等)的唯一标识符)而产生端点的标识符。可通过使用在启动时间期间收集的标识符的组合产生的凭证表示端点的标识符。在启动时间产生的端点的此标识符将端点表示为一个整体且可由远程服务器使用与用于签署凭证及关于装置的状态的旁侧信息的私密密钥相关联的对应公共密钥进行验证。
举例来说,在启动时间,安全存储器装置可测量其自身的第一阶段启动加载程序软件图像以产生安全存储器装置的标识符。此外,安全存储器装置的标识符可取决于存储器装置的唯一秘密。第一阶段启动加载程序可经编程以在端点处询问计算系统中的多个组件以获取标识符。举例来说,在端点的处理器中执行的第一阶段启动加载程序可确定端点的额外组件(例如处理器及/或配置于端点中的另一装置)的标识符。组件标识符可为基于组件的存储序列号及/或组件的一组属性的唯一标识符。当组件是软件/固件时,标识符可基于组件的度量(例如,密码散列值)及/或组件的其它属性(例如,版本号、序列号)。配置于第一阶段启动加载程序中的安全管理器可将组件的标识符与安全存储器装置的标识符组合以产生一对私密密钥及公共密钥。可使用至少一单调增加计数器值及装置ID私密密钥来产生凭证。举例来说,可使用装置ID私密密钥来产生施加于凭证上的数字签名。在创建凭证之后,安全管理器可丢弃装置ID私密密钥且不会将装置ID私密密钥存储于端点中,如DICERIoT要求中描述。
在端点的计算系统完成启动序列的至少一部分之后,端点到达运行时间且可经由计算机网络通信。接着,计算系统尝试经由计算机网络与了解对应于所丢弃装置ID私密密钥的装置ID公共密钥及对应于别名私密密钥的别名公共密钥两者的远程计算机通信。远程计算机可使用凭证及公共密钥来验证端点的标识符。验证不但验证端点在启动时间具有安全存储器装置,而且具有通过由产生私密密钥的标识符表示的额外组件且验证最近已签署凭证。
图1说明根据本公开的一些实施例的包含存储器子系统110的实例计算系统100。存储器子系统110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类的组合。
存储器子系统110可为存储装置、存储器模块或存储装置及存储器模块的混合物。存储装置的实例包含固态硬盘(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储器储器(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插存储器模块(DIMM)、小轮廓DIMM(SO-DIMM)及各种类型的非易失性双列直插存储器模块(NVDIMM)。
计算系统100可为计算装置,例如桌面计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它交通工具)、物联网络(IoT)启用装置、嵌入式计算机(例如,包含于运载工具、产业设备或网络商业装置中的嵌入式计算机)或包含存储器及处理装置的此计算装置。
计算系统100可包含耦合到一或多个存储器子系统110的主机系统120。图1说明耦合到一个存储器子系统110的主机系统120的一个实例。如本文中使用,“耦合到”或“与…耦合”通常是指组件之间的连接,其可为间接通信连接或直接通信连接(例如,无中介组件)(有线或无线),包含例如电气、光学、磁性等的连接。
主机系统120可包含处理器芯片组(例如,处理装置118)及由所述处理器芯片组执行的软件栈。处理器芯片组可包含一或多个核心、一或多个高速缓存、存储器控制器(例如,控制器116)(例如,NVDIMM控制器)及存储协议控制器(例如,PCIe控制器、SATA控制器)。主机系统120使用存储器子系统110(举例来说)以将数据写入到存储器子系统110且从存储器子系统110读取数据。
主机系统120可经由物理主机接口耦合到存储器子系统110。物理主机接口的实例包含(但不限于)串行高级附接技术(SATA)接口、外围组件互连快速(PCIe)接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)接口、双倍数据速率(DDR)存储器总线接口、小型计算机系统接口(SCSI)、双列直插存储器模块(DIMM)接口(例如,支持双倍数据速率(DDR)的DIMM套接字接口)、开放式NAND快闪接口(ONFI)、双倍数据速率(DDR)接口、低功率双倍数据速率(LPDDR)接口或任何其它接口。可使用物理主机接口以在主机系统120与存储器子系统110之间传输数据。当存储器子系统110通过PCIe接口与主机系统120耦合时,主机系统120可进一步利用NVM快速(NVMe)接口来存取组件(例如,存储器装置130)。物理主机接口可提供用于在存储器子系统110与主机系统120之间传递控制、地址、数据及其它信号的接口。图1说明存储器子系统110作为实例。一般来说,主机系统120可经由相同通信连接、多个单独通信连接及/或通信连接的组合存取多个存储器子系统。
主机系统120的处理装置118可为举例来说微处理器、中央处理单元(CPU)、处理器的处理核心、执行单元等。在一些例子中,控制器116可被称为存储器控制器、存储器管理单元及/或启动器。在一个实例中,控制器116经由耦合在主机系统120与存储器子系统110之间的总线控制通信。一般来说,控制器116可将命令或请求发送到存储器子系统110以期望存取存储器装置130、140。控制器116可进一步包含与存储器子系统110通信的接口电路系统。接口电路系统可将从存储器子系统110接收的响应转换成用于主机系统120的信息。
主机系统120的控制器116可与存储器子系统110的控制器115通信以执行例如在存储器装置130、140处读取数据、写入数据或擦除数据及其它此类操作的操作。在一些例子中,控制器116集成于处理装置118的相同封装内。在其它例子中,控制器116与处理装置118的封装分离。控制器116及/或处理装置118可包含硬件,例如一或多个集成电路(IC)及/或离散组件、缓冲存储器、高速缓存、或其组合。控制器116及/或处理装置118可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)、或另一适合处理器。
存储器装置130、140可包含不同类型的非易失性存储器组件及/或易失性存储器组件的任何组合。易失性存储器装置(例如,存储器装置140)可为(但不限于)随机存取存储器(RAM),例如动态随机存取存储器(DRAM)及同步动态随机存取存储器(SDRAM)。
非易失性存储器组件的一些实例包含与非(或,非与)(NAND)型快闪存储器及原位写入存储器,例如三维交叉点(“3D交叉点”)存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格数据存取阵列基于体电阻的变化来执行位存储。此外,与许多基于快闪的存储器相比,交叉点非易失性存储器可执行原位写入操作,其中非易失性存储器胞元可在所述非易失性存储器胞元先前未被擦除的情况下编程。NAND型快闪存储器包含(举例来说)二维NAND(2D NAND)及三维NAND(3D NAND)。
存储器装置130中的每一者可包含一或多个存储器胞元阵列。一种类型的存储器胞元(举例来说,单电平胞元(SLC))可每胞元存储一个位。其它类型的存储器胞元(例如多电平胞元(MLC)、三电平胞元(TLC)、四电平胞元(QLC)及五电平胞元(PLC))可每胞元存储多个位。在一些实施例中,存储器装置130中的每一者可包含一或多个存储器胞元(例如SLC、MLC、TLC、QLC、PLC或此类的任何组合)阵列。在一些实施例中,特定存储器装置可包含存储器胞元的SLC部分、MLC部分、TLC部分、QLC部分及/或PLC部分。可将存储器装置130的存储器胞元分组为可指代用于存储数据的存储器装置的逻辑单元的页面。对于一些类型的存储器(例如,NAND),页面可经分组以形成块。
尽管描述例如3D交叉点型及NAND型存储器(例如,2D NAND、3D NAND)的非易失性存储器装置,但存储器装置130可基于任何其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选择存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移扭矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻式随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、或非(NOR)快闪存储器及电可擦除可编程只读存储器(EEPROM)。
存储器子系统控制器115(或为简单起见,控制器115)可与存储器装置130通信以执行操作,例如在存储器装置130处读取数据、写入数据或擦除数据及其它此类操作(例如,响应于由控制器116在命令总线上调度的命令)。控制器115可包含硬件,例如一或多个集成电路(IC)及/或离散组件、缓冲存储器、或其组合。硬件可包含具有专用(例如,硬编码)逻辑的数字电路系统以执行本文中描述的操作。控制器115可为微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)、或另一适合处理器。
控制器115可包含经配置以执行存储于本地存储器119中的指令的处理装置117(例如,处理器)。在所说明实例中,控制器115的本地存储器119包含嵌入式存储器,其经配置以存储用于执行各种过程、操作、逻辑流程、及控制存储器子系统110的操作(包含处置存储器子系统110与主机系统120之间的通信)的例程的指令。
在一些实施例中,本地存储器119可包含存储存储器指针、提取数据等的存储器寄存器。本地存储器119还可包含用于存储微代码的只读存储器(ROM)。虽然图1中的实例存储器子系统110已被说明为包含控制器115,但在本公开的另一实施例中,存储器子系统110可不包含控制器115,且可替代地依靠外部控制(例如,由外部主机或与存储器子系统分离的处理器或控制器提供)。
一般来说,控制器115可从主机系统120接收命令或操作且可将所述命令或操作转换成指令或适当命令以实现对存储器装置130的期望存取。控制器115可负责其它操作,例如损耗均衡操作、废弃项目收集操作、错误检测及错误校正码(ECC)操作、加密操作、高速缓存操作、及与存储器装置130相关联的逻辑地址(例如,逻辑块地址(LBA)、命名空间)与物理地址(例如,物理块地址)之间的地址转译。控制器115可进一步包含经由物理主机接口与主机系统120通信的主机接口电路系统。主机接口电路系统可将从主机系统接收的命令转换成存取存储器装置130的命令指令以及将与存储器装置130相关联的响应转换成主机系统120的信息。
存储器子系统110还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统110可包含高速缓存或缓冲器(例如,DRAM)及可从控制器115接收地址且解码地址以存取存储器装置130的地址电路系统(例如,行解码器及列解码器)。
在一些实施例中,存储器装置130包含本地媒体控制器150,其结合存储器子系统控制器115操作以对存储器装置130的一或多个存储器胞元执行操作。外部控制器(例如,存储器子系统控制器115)可在外部管理存储器装置130(例如,对存储器装置130执行媒体管理操作)。在一些实施例中,存储器装置130是受管理存储器装置,其是与用于在相同存储器装置封装内的媒体管理的本地控制器(例如,本地媒体控制器150)组合的原始存储器装置。受管理存储器装置的实例是受管理NAND(MNAND)装置。
控制器115及/或存储器装置130可包含经配置以产生凭证的安全管理器113,所述凭证可用于验证作为计算机网络中的端点的计算系统100具有存储器装置130与一或多个其它组件的特定组合。在一些实施例中,存储器子系统110中的控制器115及/或本地媒体控制器150可包含安全管理器113的至少一部分。在其它实施例中,或组合地,主机系统120中的控制器116及/或处理装置118可包含安全管理器113的至少一部分。举例来说,控制器115、控制器116及/或处理装置118可包含实施安全管理器113的逻辑电路系统。举例来说,控制器115或主机系统120的处理装置118(例如,处理器)可经配置以执行存储于存储器中的指令以用于执行本文中描述的安全管理器113的操作。在一些实施例中,在安置于存储器子系统110中的集成电路芯片中实施安全管理器113。在其它实施例中,安全管理器113可为存储器子系统110的固件的部分、主机系统120的操作系统、装置驱动程序、或应用程序、或其中的任何组合。
举例来说,安全管理器113可确定待在计算系统100的启动时间期间执行的指令集的密码散列值。安全管理器113可通过比较在启动时间计算的散列值与预计算散列值而检查所述指令集的完整性。如果两个散列值彼此一致,那么可认为指令集尚未被篡改及/或损坏。因此,可在计算系统100中执行指令集以进一步实施安全管理器113的安全操作及/或计算系统100的启动操作。任选地,散列值的验证可为使用通过在计算系统100的启动时间期间执行指令集的至少一部分产生的凭证来验证作为端点的计算系统100的部分。
举例来说,可至少部分基于所述指令集的散列值来产生存储器装置130的标识符。因此,当通过使用凭证验证来验证存储器装置130的标识符时,可认为指令集的散列值已被验证为正确;且用于产生凭证且启动计算系统100的指令集尚未被篡改及/或损坏。
计算系统100中的指令集的执行导致计算系统100确定计算系统100的其它组件的标识符,例如处理装置118的标识符、控制器116的标识符、存储器子系统控制器115的标识符、存储器装置140的标识符、及/或软件程序(例如,操作系统、装置驱动程序、应用程序等)的标识符。具有存储器装置130的计算系统100中的组件的所述组标识符(包含存储器装置130的标识符)可经组合以产生用于签署凭证的密钥。凭证基于每当启动计算系统100时及/或每当存储器装置130执行安全操作时增加的单调增加计数器值。任选地,凭证可展示用于产生用于签署凭证的密钥的一些标识符。凭证还可包含在启动时间产生的DICE别名公共密钥。
凭证可经由计算机网络与远程计算机通信以进行验证。当验证凭证时,可推断用于产生凭证的指令集的完整性是完整的,且计算系统100具有与由用于产生用于签署凭证的密钥的标识符表示的所述一组组件组合的存储器装置130。此外,包含于凭证中的单调计数器值允许其接收者验证其是最近产生的,且因此其可被信任。凭证持有DICE别名公共密钥,其可与存储于远程计算机上的DICE别名公共密钥进行比较。如果两个密钥匹配,那么远程计算机可信任由端点发送且用DICE别名私密密钥签署的另外消息。
图2说明根据一个实施例的具有安全管理器的集成电路存储器装置。举例来说,可使用图2的集成电路存储器装置130来实施图1的存储器子系统110中的存储器装置130。
集成电路存储器装置130可围封于单个集成电路封装中。集成电路存储器装置130包含可形成于一或多个集成电路裸片中的多个存储器区131、…、133。存储器区131、…、133中的典型存储器胞元可经编程以存储一或多个数据位。
本地媒体控制器150可包含经配置以控制对存储器区131、…、133中的至少一者的存取的安全管理器113的至少一部分。
举例来说,安全管理器113可基于基于集成电路存储器装置130的秘密产生的密钥及/或表示存储器装置130的拥有者或授权用户的密钥而控制对存储器区131的存取。当在集成电路存储器装置130中接收到将数据写入到存储器区131中的请求时,安全管理器113可基于请求者是否拥有密钥而验证是否可允许请求。举例来说,请求者可使用密钥数字签署请求或质询消息以指示请求者有权将数据写入到存储器区131中。
集成电路存储器装置130具有通信接口147以从存储器子系统110的控制器115接收具有地址135的命令。响应于识别需要存取控制的存储器区131的地址135,在提供使用地址解码器141从存储器区131检索的存储器数据之前,安全管理器113执行密码操作以验证请求来自具有授权存取存储器区131的密钥的请求者。集成电路存储器装置130的地址解码器141将地址135转换成控制信号以选择集成电路存储器装置130中的存储器胞元群组;且集成电路存储器装置130的本地媒体控制器150执行操作以确定存储于地址135处的存储器胞元中的存储器数据。
举例来说,存储器区131可存储启动加载程序171。在启动时间,安全管理器113可通过计算启动加载程序171的密码散列值而测量启动加载程序171。可使用启动加载程序171的密码散列值来产生集成电路存储器装置130的装置标识符151。启动加载程序171(及/或操作系统或装置驱动程序、或安全应用程序)可包含实施安全管理器113的部分的指令。在启动时间期间,指令可确定其中集成电路存储器装置130是组件的计算系统100的配置。
举例来说,图1的计算系统100的配置可包含存储器子系统110的主要软件/固件组件。可将软件/固件存储于其它存储器装置(例如,140)或存储器区133中的存储器装置130中。举例来说,集成电路存储器装置130中的存储器区133中的指令173可包含计算系统100的操作系统、装置驱动程序、固件及/或软件应用程序。存储器子系统110的一些主要软件/固件组件可在安全管理器113的存取控制下存储于存储器区外部及/或集成电路存储器装置130外部。软件/固件组件的标识符可包含软件/固件组件的组件标识、版本号、序列号及/或密码散列值。
图1的计算系统100的配置可包含存储器子系统110的主要硬件组件,例如处理装置118及/或控制器116。主机系统120可进一步包含外围装置,例如网络适配器、通信装置、另一存储器子系统等。硬件组件的标识符可包含序列号、地址、q个标识号等。
可使用包含装置标识符151的计算系统100的配置信息来产生密钥以签署使用至少来自单调计数器153的值产生的凭证。安全管理器113经配置以针对启动加载程序171的每次使用增加单调计数器153以起动其中配置存储器装置130的计算系统100。
图3说明根据一个实施例的用于端点验证的凭证的产生。举例来说,图1及/或2中说明的安全管理器113可在计算系统100的启动时间使用图3的技术来产生凭证。
在图3中,计算系统100具有一组组件181、183、…、185。组件181、183、…、185可包含软件组件及/或硬件组件。组件181到185可具有对应标识符191、193、…、195。举例来说,组件S 183可为具有标识符S 193的软件组件;且组件T 185可为具有单独标识符T 195的硬件组件。
组件的标识符识别组件的至少一些唯一方面。在一些例子中,标识符可在具有相同或类似功能的类似组件中唯一地识别组件。举例来说,软件组件的标识符可包含或基于软件组件的密码散列值及/或软件组件的序列号。举例来说,硬件组件的标识符可基于硬件组件的类型、描述、序列号及/或地址。
执行密钥产生155的操作以获取第一对装置ID私密密钥160及装置ID公共密钥162及第二对别名私密密钥161及别名公共密钥163。举例来说,使用非对称密码,可使用别名公共密钥163来解密使用别名私密密钥161产生的密文;且可使用别名私密密钥161来解密使用别名公共密钥163产生的密文。由于从别名公共密钥163确定别名私密密钥161是非常困难的,因此揭露别名公共密钥163将不会损及别名私密密钥161的保密性。
执行凭证产生157的操作以产生含有使用装置ID私密密钥160签署的数字签名169的凭证165。凭证165含有待签署的数据,包含别名公共密钥163及当前单调计数器值168。凭证产生157的副作用是增加单调计数器153的值168。
任选地,凭证165可包含用户ID 167,例如名称、电子邮件地址、注册用户名称、或其中创建凭证165的计算系统100的拥有者或授权用户的另一标识符。
任选地,凭证165可包含一些标识符191到195及/或单调计数器153的值。
任选地,经由凭证提供的一些信息可呈加密形式。举例来说,可使用经授权以存取加密信息的服务器(例如经配置以验证数字签名169的服务器)的公共密钥来加密信息。
安全管理器113经配置以在使用固定于存储器装置130中的启动加载程序171启动计算系统100的每一例子期间产生凭证165。基于单调计数器153的较高值产生的凭证165使用户单调计数器153的较低值产生的凭证无效。远程主机将拒绝具有低于用于上次成功连接的凭证的单调计数器值的任何凭证。
优选地,在产生凭证165之后,从计算系统100及存储器装置130清除装置ID私密密钥160。可执行由安全管理器113保护的指令集以使用在启动时间产生的凭证165以将计算系统100验证为计算机网络中的端点。具有装置ID公共密钥162的远程服务器可验证所述数字签名169及计算系统100的配置,如由密钥产生155中使用的标识符191到195识别。
图4说明根据一个实施例的用于端点验证的凭证的使用。举例来说,图4中的端点205可为具有配置于图2的集成电路存储器装置130中的安全管理器113的图1的计算系统100。可使用使用图3的技术产生的凭证165来执行验证。
在图4中,端点205包含具有唯一装置秘密175的存储器装置130。可使用唯一装置秘密175及启动加载程序171的密码度量来产生存储器装置130的装置标识符151。举例来说,可通过在其执行之前读取启动加载程序171且将密码散列函数应用于启动加载程序171以获取待执行的启动加载程序171的密码散列值而获取启动加载程序171的密码度量。
端点205具有具标识数据197的额外组件187。可使用装置标识符151及标识数据197的组合以如图3中说明的方式产生凭证165。
经由计算机网络203连接到端点205的服务器201经布建以含有对应于用于签署凭证165的装置ID私密密钥160的装置ID公共密钥162。服务器201可通过使用装置ID公共密钥162解密数字签名169而确定凭证165是否有效。
举例来说,当最初在端点205中使用存储器装置130来启动端点205时,端点205可通过提供装置ID公共密钥162而向服务器201注册其标识符。注册操作可包含存储装置ID公共密钥162以指示具有可经由装置ID公共密钥162验证的凭证的端点205是授权用户。装置ID公共密钥162可与端点205的拥有者及/或授权用户的标识相关联。
凭证165包含在启动端点205时单调计数器153的值168。
任选地,凭证165可包含用于产生别名私密密钥161、别名公共密钥163、装置ID私密密钥160及装置ID公共密钥162的一些标识符191到195。
在一些实施例中,服务器201具有唯一装置秘密175的副本。举例来说,可在存储器装置130的制造设施中注册存储器装置130,使得可在安全服务器(例如,201)中独立地重新产生装置标识符151。当服务器201从端点205接收额外标识符(例如,193到195,例如标识数据197)时,安全服务器(例如,201)可独立地计算用于验证数字签名169的公共密钥163。任选地,凭证165可包含额外标识符(例如,193到195,例如标识数据197)。因此,当一些组件187已被替换时,服务器201可确定接受端点205的改变或要求进一步验证端点205是合法的及/或与已知拥有者或授权用户相关联。
举例来说,可在端点205中执行经由存储器装置130保全的指令集以将凭证165从端点205传送到服务器201以用于验证。在启动端点205时产生端点205的凭证165以经由所述一组标识符191到195表示端点205的配置。在验证使用表示标识符191到195的装置ID私密密钥160产生凭证165之后,服务器201可确定是否允许具有配置的端点205操作及/或接收器服务。在一些例子中,服务器201可允许端点205替换某些组件及/或具有低于阈值的替换频率以通过验证。基于响应,端点205可提示用户注册,证实拥有权或用户许可证,或关闭。
任选地,服务器201可跟踪端点205的单调计数器153的最高值,如来自端点205及/或存储器装置130的凭证中所见。基于等于或低于在一个端点205到服务器201的成功连接中使用的最新计数器值的计数器值产生的凭证可被描述为过时的。呈现过时凭证的端点205将不会被允许存取服务器201。
在一些实施例中,服务器201具有别名公共密钥163的副本。在与端点205建立连接时,且在验证凭证165具有有效数字签名169及非过时单调计数器值168之后,服务器201可验证凭证的别名公共密钥163部分。如果存储于服务器201中的别名公共密钥163及包含于凭证165中的别名公共密钥163不匹配,那么可能不允许与端点205的连接。此检查可用于防止攻击,其中恶意行为者能够从有效装置窃取别名私密密钥161且将其用在具有损及标识符(例如,装置标识符151、191、193、…、195中的一者)的装置上。如果密钥匹配,那么在运行时间在端点205上可用的别名私密密钥161可用于签署可由服务器201验证的内容。
举例来说,作为连接建立程序的部分,服务器201可向端点205发出质询,其用别名私密密钥161签署响应且将其发送回到服务器201。接着,服务器201可使用其别名公共密钥163的副本且验证由有效端点205签署的质询。
图5展示根据一个实施例的端点验证的方法。可由可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件/固件(例如,在处理装置上运行或执行的指令)或其组合的处理逻辑执行图5的方法。在一些实施例中,图5的方法至少部分由图1的控制器150及/或控制器115或图2的存储器装置130中的处理逻辑执行。尽管以特定序列或顺序展示,但除非另外指定,否则可修改过程的顺序。因此,所说明的实施例应仅理解为实例,且可以不同顺序执行所说明过程,且可并行地执行一些过程。此外,在各个实施例中可省略一或多个过程。因此,并非每一实施例中需要全部过程。其它过程流程是可能的。
在图5中,在框301,在作为计算机网络203中的端点205连接的计算设备中接收从存储器装置130加载第一指令以启动的请求。
举例来说,第一指令可包含启动加载程序171、操作系统、装置驱动程序、或安全应用程序、或其任何组合。
在框303,存储器装置130确定第一指令的密码度量。
举例来说,可通过将密码散列函数应用于表示第一指令的数据以产生密码散列值而确定密码度量。
在框305,存储器装置130至少部分基于密码度量而产生存储器装置130的装置标识符151。
在框307,端点205执行第一指令以启动。
在框309,端点205确定作为计算设备的部分但非存储器装置130的部分的至少一个组件187的额外标识数据197。
举例来说,标识数据197可包含组件187的描述、组件187的序列号、组件187的属性、组件187的地址、或组件187的唯一标识符、或其任何组合。
举例来说,当组件187包含具有第二指令的软件组件时,组件187的属性可包含软件组件的密码度量,例如通过将密码散列函数应用于表示软件组件的数据而计算的值。
在框311,端点205基于装置标识符151及额外标识数据197而产生具有第一私密密钥(例如,装置ID私密密钥160)及第一公共密钥(例如,装置ID公共密钥162)的第一对非对称密钥,及具有第二私密密钥(例如,别名私密密钥161)及第二公共密钥(例如,别名公共密钥163)的第二对非对称密钥。
任选地,存储器装置130具有唯一装置秘密175。装置秘密可用于非对称密钥对及/或装置标识符151的产生。
在框313,端点205从单调计数器153检索单调计数器值168且指示/导致单调计数器153增加其值。
在框315,端点205产生含有单调计数器值168、第二公共密钥(例如,别名公共密钥163)及一或多个标识符的凭证165且用第一私密密钥(例如,装置ID私密密钥160)签署凭证。
举例来说,可通过使用第一私密密钥(例如,装置ID私密密钥160)将数字签名169应用于凭证165而产生凭证165。数字签名169可包含凭证165中提供的消息的密码散列值的密文,其中通过使用第一私密密钥(例如,装置ID私密密钥160)加密散列值而产生密文。
任选地,端点205在产生凭证165之后从端点205及/或存储器装置130清除第一私密密钥(例如,装置ID私密密钥160)。优选地,在存储器装置130内产生凭证165;且存储器装置130未将第一私密密钥(例如,装置ID私密密钥160)传送到存储器装置130外部。
举例来说,凭证165的消息可明确识别从配置于存储器装置130中的单调计数器153检索的值。举例来说,可使用对安全存储器装置130的命令响应于读取其存储值而指示单调计数器153增加其存储值。
任选地,凭证165的消息可识别在第一私密密钥(例如,装置ID私密密钥160)的密钥产生155中使用的至少一些标识符191、193、…、195。
举例来说,第一公共密钥162及第二公共密钥(例如,别名公共密钥163)及/或经配置为凭证165的部分的标识符191、193、…、195可在注册过程期间传输到服务器201。随后,可使用第一公共密钥162来验证使用第一私密密钥(例如,装置ID私密密钥160)签署的凭证165。当凭证165有效时,服务器201可推断由具有具完整第一指令(例如,启动加载程序171)的存储器装置130的端点205产生凭证165,其中端点205具有由所述一组标识符191到195表示的组件配置。
在框317,端点205经由计算机网络203将凭证165传送到远程服务器201以用于验证。作为响应,远程服务器201可使用第一公共密钥162来验证应用于凭证165上的数字签名169,验证凭证165中提供的单调计数器值168高于在上次连接期间使用的单调计数器值,且验证凭证165中提供的第二公共密钥(例如,别名公共密钥163)匹配存储于服务器201上的密钥。
在验证凭证165之后,服务器201及端点205可使用标准协议(例如传输层安全(TLS)或安全套接字层(SSL))及第二密钥对来建立安全连接,相信从具有未篡改启动加载程序171的有效装置产生端点的私密密钥。
举例来说,可经由第一指令的至少一部分的执行来执行框309到315中的操作及/或框317中的操作。
图6说明计算机系统400的实例机器,在所述实例机器内可执行用于导致所述机器执行本文中论述的方法论的任一或多者的指令集。在一些实施例中,计算机系统400可对应于主机系统(例如,图1的主机系统120),所述主机系统包含、耦合到或利用存储器子系统(例如,图1的存储器子系统110)或可用于执行安全管理器113的操作(例如,执行指令以执行对应于参考图1到5描述的安全管理器113的操作)。在替代实施例中,机器可连接(例如,联网)到LAN、内部网、外部网及/或因特网中的其它机器。机器可在客户端-服务器网络环境中作为服务器或客户端机器操作,在对等间(或分布式)网络环境中作为对等机器操作,或在云计算基础设施或环境中作为服务器或客户端机器操作。
机器可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、网络设备、服务器、网络路由器、交换机或网桥、或能够执行指定由所述机器采取的动作的指令集(循序或以其它方式)的任何机器。此外,虽然说明单个机器,但术语“机器”还应被视为包含个别或联合执行一(或多个)指令集以执行本文中论述的方法论中的任一或多者的任何机器集合。
实例计算机系统400包含经由总线430(其可包含多个总线)彼此通信的处理装置402、主存储器404(例如,只读存储器(ROM)、快闪存储器、动态随机存取存储器(DRAM)(例如同步DRAM(SDRAM)或Rambus DRAM(RDRAM))、静态随机存取存储器(SRAM)等)及数据存储系统418。
处理装置402表示一或多个通用处理装置,例如微处理器、中央处理单元或类似者。更特定来说,处理装置可为复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、或实施其它指令集的处理器、或实施指令集的组合的处理器。处理装置402还可为一或多个专用处理装置,例如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、或类似者。处理装置402经配置以执行指令426以用于执行本文中论述的操作及步骤。计算机系统400可进一步包含用以经由网络420通信的网络接口装置408。
数据存储系统418可包含机器可读媒体424(还称为计算机可读媒体),其上存储器现本文中描述的方法论或功能中的任一或多者的一或多个指令集426或软件。指令426在其由还构成机器可读存储媒体的计算机系统400、主存储器404及处理装置402执行期间还可完全或至少部分驻留在主存储器404及/或处理装置402内。机器可读媒体424、数据存储系统418、及/或主存储器404可对应于图1的存储器子系统110。
在一个实施例中,指令426包含用以实施对应于安全管理器113(例如,参考图1到5描述的安全管理器113)的功能性的指令。虽然机器可读媒体424在实例实施例中展示为单个媒体,但术语“机器可读存储媒体”应被视为包含存储一或多个指令集的单个媒体或多重媒体。术语“机器可读存储媒体”还应被视为包含能够存储或编码指令集以由机器执行且可导致机器执行本公开的方法论中的任一或多者的任何媒体。因此,术语“机器可读存储媒体”应被视为包含(但不限于)固态存储器、光学媒体及磁性媒体。
已依据对计算机存储器内的数据位的操作的算法及符号表示呈现前述[具体实施方式]的一些部分。这些算法描述及表示是数据处理领域的技术人员用于将其工作主旨最有效地传达给所属领域的其它技术人员的方式。算法在此处且通常被认为是导致所要结果的自行一致操作序列。操作是需要物理量的实体操纵的操作。通常但并非一定地,这些量采取能够被存储、组合、比较且以其它方式操纵的电气或磁性信号的形式。有时,主要出于通用的原因,已证明将这些信号称为位、值、元件、符号、字符、术语、数字、或类似者是方便的。
然而,应记住,全部这些及类似术语与适当物理量相关联且仅为应用于这些量的方便标签。本公开可指操纵表示为计算机系统的寄存器及存储器内的物理(电子)量的数据且将所述数据变换成类似地表示为计算机系统存储器或寄存器或其它此类信息存储系统内的物理量的其它数据的计算机系统或类似电子计算装置的动作及过程。
本公开还涉及一种用于执行本文中的操作的设备。此设备可经特别构造用于预期目的,或其可包含由存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储于计算机可读存储媒体中,例如(但不限于)任何类型的磁盘(包含软盘、光盘、CD-ROM、及磁光盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁性或光学卡、或适于存储电子指令的任何类型的媒体,其各自耦合到计算机系统总线。
本文中所呈现的算法及显示并非固有地与任何特定计算机或其它设备相关。根据本文中的教示,各种通用系统可搭配过程使用,或可证明建构更专用设备来执行方法系方便的。用于各种这些系统的结构将如下文描述中陈述般呈现。另外,未参考任何特定编程语言来描述本公开。将了解,可使用各种编程语言来实施如本文中描述的本公开的教示。
本公开可提供为可包含其上存储有指令的机器可读媒体的计算机程序产品或软件,所述指令可用于编程计算机系统(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于存储呈可由机器(例如,计算机)读取的形式的信息的任何机构。在一些实施例中,机器可读(例如,计算机可读)媒体包含机器(例如,计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在此描述中,各种功能及操作被描述为通过计算机指令执行或通过计算机指令引起,以简化描述。然而,所属领域的技术人员将辨识,此类表达的意思是功能由通过一或多个控制器或处理器(例如微处理器)执行计算机指令所致。替代地或组合地,可使用具有或不具有软件指令的专用电路系统(例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA))来实施功能及操作。可使用无软件指令的硬接线电路系统或结合软件指令来实施实施例。因此,技术既不限于硬件电路系统及软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定来源。
在前述说明书中,已参考本公开的特定实例实施例描述本公开的实施例。显而易见的是,可在不脱离如以下权利要求书中所陈述的本公开的实施例的更广泛精神及范围的情况下对本公开进行各种修改。因此,说明书及图式应被视为说明性意义而非限制性意义。
Claims (20)
1.一种方法,其包括:
接收从存储器装置加载第一指令以启动作为计算机网络中的端点连接的计算设备的请求;及
响应于所述请求,
确定所述第一指令的密码度量;
至少部分基于所述密码度量而产生所述存储器装置的装置标识符;及
执行所述第一指令以启动所述计算设备,包含:
确定作为所述计算设备的部分但非所述存储器装置的部分的至少一个组件的标识数据;
基于所述标识数据及所述装置标识符而产生第一对非对称密钥及第二对非对称密钥,所述第一对具有第一私密密钥及第一公共密钥,且所述第二对具有第二私密密钥及第二公共密钥;
从单调计数器检索计数器值;
基于所述计数器值、所述第二公共密钥及所述第一私密密钥而产生凭证;及
经由所述计算机网络将所述凭证传送到远程服务器以用于验证。
2.根据权利要求1所述的方法,其中所述标识数据包含所述组件的描述、所述组件的序列号、所述组件的属性、所述组件的地址、或所述组件的唯一标识符、或其任何组合。
3.根据权利要求2所述的方法,其中所述组件包含具有第二指令的软件组件;且所述组件的所述属性包含所述软件组件的密码度量。
4.根据权利要求1所述的方法,其中所述第一指令包含启动加载程序、操作系统、装置驱动程序、或安全应用程序、或其任何组合。
5.根据权利要求4所述的方法,其中所述第一指令的所述密码度量的所述确定包含将密码散列函数应用于表示所述第一指令的数据以产生密码散列值。
6.根据权利要求5所述的方法,其中所述凭证识别从配置于所述存储器装置中的所述单调计数器检索的所述计数器值。
7.根据权利要求6所述的方法,其中所述凭证中提供的所述计数器值使由所述计算设备产生的先前凭证无效以提供小于所述凭证中提供的所述计数器值的计数器值。
8.根据权利要求7所述的方法,其中所述凭证识别所述第二公共密钥以与存储于所述远程服务器中的对应密钥匹配以用于验证。
9.根据权利要求8所述的方法,其进一步包括:
使用所述第二私密密钥在所述计算设备与所述远程服务器之间建立安全通信连接。
10.一种存储器装置,其包括:
存储器区,其经配置以存储可执行以启动具有所述存储器装置且作为计算机网络中的端点连接的计算设备的第一指令;及
控制器,其经配置以响应于加载用于执行的所述第一指令的请求而:
确定存储于所述存储器区中的所述第一指令的密码度量;
至少部分基于所述密码度量而产生所述存储器装置的装置标识符;
提供用于在所述计算设备中执行的所述第一指令以启动所述计算设备,其中所述第一指令的执行导致所述计算设备确定作为所述计算设备的部分但非所述存储器装置的部分的至少一个组件的标识数据;
基于所述标识数据及所述装置标识符而产生第一对非对称密钥及第二对非对称密钥,所述第一对具有第一私密密钥及第一公共密钥,且所述第二对具有第二私密密钥及第二公共密钥;
从单调计数器检索计数器值;
基于所述计数器值、所述第二公共密钥及所述第一私密密钥而产生凭证;且
经由所述计算机网络将所述凭证传送到远程服务器以用于验证。
11.根据权利要求10所述的存储器装置,其进一步包括:
集成电路封装,其经配置以围封所述存储器装置。
12.根据权利要求11所述的存储器装置,其中所述控制器经配置以:
通过使用所述第一私密密钥将数字签名应用于所述凭证而产生所述凭证;且
在产生所述凭证之后从所述计算设备清除所述第一私密密钥。
13.根据权利要求12所述的存储器装置,其中所述标识数据包含所述组件的描述、所述组件的序列号、所述组件的属性、所述组件的地址、或所述组件的唯一标识符、或其任何组合;且所述第一指令包含启动加载程序、操作系统、装置驱动程序、或安全应用程序、或其任何组合。
14.根据权利要求13所述的存储器装置,其中所述密码度量包含通过将密码散列函数应用于所述第一指令而产生的密码散列值。
15.根据权利要求14所述的存储器装置,其进一步包括:
所述单调计数器,其经配置以在从所述单调计数器检索所述计数器值时增加存储于所述计数器中的所述计数器值。
16.一种存储指令的非暂时性计算机存储媒体,所述指令在从存储器装置检索以在具有所述存储器装置的计算设备中执行时导致所述计算设备执行方法,所述方法包括:
确定存储于所述存储器装置中的所述指令的密码度量;
至少部分基于所述密码度量而产生所述存储器装置的装置标识符;
启动所述计算设备;
确定作为所述计算设备的部分但非所述存储器装置的部分的至少一个组件的标识数据;
基于所述标识数据及所述装置标识符而产生第一对非对称密钥及第二对非对称密钥,所述第一对具有第一私密密钥及第一公共密钥,且所述第二对具有第二私密密钥及第二公共密钥;
从单调计数器检索计数器值;
基于所述计数器值及所述第一私密密钥而产生凭证;及
经由计算机网络将所述凭证传送到远程服务器以促进作为所述计算机网络中的端点的组件设备的验证。
17.根据权利要求16所述的非暂时性计算机存储媒体,其中所述方法进一步包括:
使用所述第一私密密钥将数字签名应用于所述凭证;及
在产生所述凭证之后从所述计算设备清除所述私密第一密钥。
18.根据权利要求17所述的非暂时性计算机存储媒体,其中所述方法进一步包括:
将所述第一公共密钥提供到所述远程服务器以与用户标识相关联。
19.根据权利要求18所述的非暂时性计算机存储媒体,其中所述凭证识别所述第二公共密钥;且所述方法进一步包括:
使用所述第二私密密钥在所述计算设备与所述远程服务器之间建立安全通信连接。
20.根据权利要求18所述的非暂时性计算机存储媒体,其中所述凭证进一步提供所述计数器值以呈现使用所述第一私密密钥签署的过时凭证且识别小于所述凭证中提供的所述计数器值的计数器值。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/080,684 | 2020-10-26 | ||
US17/080,684 US11423154B2 (en) | 2020-10-26 | 2020-10-26 | Endpoint authentication based on boot-time binding of multiple components |
PCT/US2021/055011 WO2022093542A1 (en) | 2020-10-26 | 2021-10-14 | Endpoint authentication based on boot-time binding of multiple components |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116420145A true CN116420145A (zh) | 2023-07-11 |
Family
ID=81258508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180071772.2A Pending CN116420145A (zh) | 2020-10-26 | 2021-10-14 | 基于多个组件的启动时间绑定的端点验证 |
Country Status (4)
Country | Link |
---|---|
US (2) | US11423154B2 (zh) |
CN (1) | CN116420145A (zh) |
TW (1) | TW202223702A (zh) |
WO (1) | WO2022093542A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11423154B2 (en) | 2020-10-26 | 2022-08-23 | Micron Technology, Inc. | Endpoint authentication based on boot-time binding of multiple components |
EP4009602B1 (en) * | 2020-12-07 | 2022-11-09 | Siemens Healthcare GmbH | Providing a first digital certificate and a dns response |
US12056244B2 (en) * | 2021-04-06 | 2024-08-06 | Hewlett Packard Enterprise Development Lp | Deferred authentication in a secure boot system |
US12015706B2 (en) * | 2021-12-14 | 2024-06-18 | Micron Technology, Inc. | Combined cryptographic key management services for access control and proof of space |
US12045504B2 (en) | 2021-12-14 | 2024-07-23 | Micron Technology, Inc. | Burn-in solid state drives through generation of proof of space plots in a manufacturing facility |
US12086432B2 (en) | 2022-02-02 | 2024-09-10 | Micron Technology, Inc. | Gradually reclaim storage space occupied by a proof of space plot in a solid state drive |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8677466B1 (en) * | 2009-03-10 | 2014-03-18 | Trend Micro Incorporated | Verification of digital certificates used for encrypted computer communications |
US10148761B2 (en) * | 2015-04-09 | 2018-12-04 | Web Sensing, Llc | System-on-chip data security appliance and methods of operating the same |
US9697359B2 (en) * | 2015-04-15 | 2017-07-04 | Qualcomm Incorporated | Secure software authentication and verification |
US10051059B2 (en) * | 2015-06-05 | 2018-08-14 | Fisher-Rosemount Systems, Inc. | Methods and apparatus to control communications of endpoints in an industrial enterprise system based on integrity |
US9798887B2 (en) * | 2015-08-26 | 2017-10-24 | Qualcomm Incorporated | Computing device to securely activate or revoke a key |
US10073661B2 (en) * | 2016-07-20 | 2018-09-11 | Atmel Corporation | Security extensions for non-volatile memory |
EP3934203A1 (en) | 2016-12-30 | 2022-01-05 | INTEL Corporation | Decentralized data storage and processing for iot devices |
US10162968B1 (en) * | 2017-11-30 | 2018-12-25 | Mocana Corporation | System and method for securely updating a registered device using a development system and a release management system operated by an update provider and an update publisher |
WO2019117951A1 (en) * | 2017-12-15 | 2019-06-20 | Hewlett-Packard Development Company, L.P. | Boot authentication |
US10785028B2 (en) * | 2018-06-29 | 2020-09-22 | Intel Corporation | Protection of keys and sensitive data from attack within microprocessor architecture |
EP3903518A1 (en) * | 2018-12-28 | 2021-11-03 | Apple Inc. | Providing verified claims of user identity |
US11494523B2 (en) * | 2020-08-14 | 2022-11-08 | Intel Corporation | Direct memory access mechanism |
CN111770201B (zh) | 2020-08-31 | 2020-12-04 | 支付宝(杭州)信息技术有限公司 | 一种数据验证方法、装置及设备 |
US11423154B2 (en) | 2020-10-26 | 2022-08-23 | Micron Technology, Inc. | Endpoint authentication based on boot-time binding of multiple components |
-
2020
- 2020-10-26 US US17/080,684 patent/US11423154B2/en active Active
-
2021
- 2021-10-14 CN CN202180071772.2A patent/CN116420145A/zh active Pending
- 2021-10-14 WO PCT/US2021/055011 patent/WO2022093542A1/en active Application Filing
- 2021-10-15 TW TW110138307A patent/TW202223702A/zh unknown
-
2022
- 2022-07-15 US US17/865,941 patent/US11783044B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11423154B2 (en) | 2022-08-23 |
WO2022093542A1 (en) | 2022-05-05 |
US20220350894A1 (en) | 2022-11-03 |
US20220129559A1 (en) | 2022-04-28 |
TW202223702A (zh) | 2022-06-16 |
US11783044B2 (en) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11783044B2 (en) | Endpoint authentication based on boot-time binding of multiple components | |
US11784827B2 (en) | In-memory signing of messages with a personal identifier | |
CN114830595B (zh) | 将密码密钥委托给存储器子系统 | |
US11736453B2 (en) | Secure key storage devices | |
US11271720B2 (en) | Validating data stored in memory using cryptographic hashes | |
US20220405391A1 (en) | Secure Identity Chaining between Components of Trusted Computing Base | |
KR20220128394A (ko) | 다인자 인증 가능 메모리 서브시스템 | |
US20230057638A1 (en) | Session Access to Files in a File System Mounted in a Secure Memory Device | |
US20240146525A1 (en) | Batch Transfer of Control of Memory Devices over Computer Networks | |
US20220231858A1 (en) | Control of Memory Devices over Computer Networks | |
CN113647050B (zh) | 基于块链的存储器命令验证 | |
CN113826071A (zh) | 空中更新确认 | |
US20220231838A1 (en) | Server System to Control Memory Devices over Computer Networks | |
CN115051823B (zh) | 存储器装置作为安全令牌的利用 | |
US11968296B2 (en) | Utilization of a memory device for per-user encryption | |
US20240323016A1 (en) | Verify Public Keys by Devices without Secrets for the Generation of Respective Private Keys | |
CN118694516A (zh) | 装置在不具有用于生成相应私钥的秘密的情况下校验公钥 | |
CN115408729A (zh) | 供应用程序存取安全存储器装置的独立于供应商的设施 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20230711 |
|
WD01 | Invention patent application deemed withdrawn after publication |