CN115576483A - 可信计算基础的组件之间的安全身份链接 - Google Patents
可信计算基础的组件之间的安全身份链接 Download PDFInfo
- Publication number
- CN115576483A CN115576483A CN202210642889.8A CN202210642889A CN115576483A CN 115576483 A CN115576483 A CN 115576483A CN 202210642889 A CN202210642889 A CN 202210642889A CN 115576483 A CN115576483 A CN 115576483A
- Authority
- CN
- China
- Prior art keywords
- component
- memory
- memory device
- identity
- digest
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0622—Securing storage systems in relation to access
-
- 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/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/73—Protecting 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 by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/3247—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 digital signatures
-
- 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/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及可信计算基础的组件之间的安全身份链接。存储器装置包含具有基于加密的存取控制的安全存储器区。所述安全存储器区存储关于经配置以在引导期间在第一组件之后执行的第二组件的组件信息。在使用所述第二组件的组件身份产生所述第一组件的复合标识符之前,基于存储于所述安全存储器区中的所述组件信息来验证将执行的所述第二组件的健康状况。
Description
技术领域
本文中公开的至少一些实施例大体上涉及计算机安全,且更特定来说(但不限于),涉及在计算装置的引导期间从存储器装置安全加载软件组件。
背景技术
存储器子***可包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置及易失性存储器装置。一般来说,主机***可利用存储器子***将数据存储在存储器装置处及从所述存储器装置检索数据。
发明内容
本公开的一个方面提供一种存储器装置,其包括:通信接口,其经配置以连接到主机***;存储器单元,其具有存储器区;及逻辑电路,其经配置以基于加密控制通过所述通信接口对所述存储器区进行的存取;其中所述存储器单元经配置以存储第一组件及第二组件;且所述存储器区经配置以存储关于所述第二组件的组件信息;且其中在使用所述第二组件的组件身份产生所述第二组件的复合标识符之前,所述逻辑电路经配置以基于存储于所述存储器区中的所述组件信息验证存储于所述存储器单元中的所述第二组件的健康状况。
本公开的另一方面提供一种方法,其包括:由存储器装置基于加密控制由主机***通过所述存储器装置的通信接口对所述存储器装置中的存储器区进行的存取;将可在所述主机***中执行的第一组件及第二组件存储于所述存储器装置中;将关于所述第二组件的组件信息存储于所述存储器区中;基于存储于所述存储器区中的所述组件信息验证存储于所述存储器装置中的所述第二组件的健康状况;及响应于确定存储于所述存储器装置中的所述第二组件是健康的,使用所述第二组件的组件身份产生所述第二组件的复合标识符。
本公开的另一方面提供一种计算设备,其包括:主机***;及存储器装置,其具有:通信接口,其连接到所述主机***;存储器单元,其具有存储器区;及逻辑电路,其经配置以基于加密控制通过所述通信接口对所述存储器区进行的存取;其中所述计算设备经配置以存储第一组件及第二组件;其中所述存储器区经配置以存储关于所述第二组件的组件信息;及其中在所述计算设备生根期间且在所述第二组件的组件身份被用于所述第二组件的组件标产生所述第二组件的复合标识符之前,所述计算设备经配置以基于存储于所述存储器区中的所述组件信息验证存储于所述存储器单元中的所述第二组件的健康状况。
附图说明
实施例通过实例来说明且不限于附图的图,其中相似的参考元件指示类似元件。
图1说明根据一个实施例的集成电路存储器装置。
图2说明根据一个实施例的集成电路存储器装置中的身份数据的产生。
图3说明根据一个实施例的用于控制存储器装置中的命令执行的技术。
图4说明根据一个实施例的促进可信计算基础的组件之间的安全身份链接的组件信息。
图5展示根据一个实施例的可信计算基础的组件之间的安全身份链接。
图6说明根据一个实施例的促进组件信息的安装的安全服务器。
图7展示根据一个实施例的用于引导计算装置的方法。
图8说明根据本公开的一些实施例的具有存储器子***的实例计算***。
图9是本公开的实施例可操作于其中的实例计算机***的框图。
具体实施方式
本公开的至少一些方面涉及具有可信计算基础的组件的多个层的计算装置的安全引导。
例如物联网(IoT)装置的计算装置可经配置以在一群类似装置当中具有基于加密及存储于计算装置中的唯一机密的唯一身份。举例来说,身份可基于计算装置的硬件与软件/固件的组合根据为装置标识符组合引擎(DICE)指定的操作及要求来建立。计算装置的唯一身份及其确认为计算装置的使用、部署及服务提供信任基础。
计算装置的软件/固件可包含可信计算基础(TCB)的组件的多个层,例如引导加载程序、操作***及应用程序。在引导过程期间,组件可加载到计算装置中以按对应于层顺序的顺序执行。已加载到特定层(例如引导加载程序、操作***或应用程序)处的组件的计算装置可具有表示运行已被加载的组件的计算装置的复合装置标识符(CDI)及可用于证明计算装置具有复合装置标识符(CDI)的对应加密密钥。复合装置标识符(CDI)可为已被加载到计算装置中的特定层的最后一组件的标识符。
每一组件可具有表征组件的TCB组件身份(TCI)。举例来说,软件/固件组件的TCB组件身份(TCI)可基于组件的密码测量及其它信息,例如组件的制造商/供应商的标识、版本号、构建号、序列号、组件名等。举例来说,密码测量可为通过将加密散列函数应用到组件的数据(例如组件的指令及资源)计算得到的值。此测量或值可称为组件的摘要。
组件的层可经链接(linked/chained)以增强信任基础的安全性。举例来说,当前层组件(例如层i)的复合装置标识符(CDI)可由前一层组件(例如层i-1)基于前一层组件的机密及当前组件的TCB组件身份(TCI)产生;且当前层组件(例如层i)的复合装置标识符(CDI)可用作下一层组件(例如层i+1)的唯一机密。
当组件受到损害(例如被破坏、被篡改)时,其复合装置标识符(CDI)及因此加密密钥将与组件没有受到损害时不同且因此无法通过确认。然而,此受损组件的检测可在使用其复合装置标识符(CDI)之后及/或在引导计算装置且加载组件之后延迟到身份确认的后一阶段。
本公开的至少一些方面通过在使用TCB组件身份(TCI)之前确认组件的TCB组件身份(TCI)及组件的完整性来解决上述及其它缺点及/或挑战。举例来说,关于可用于确认其TCB组件身份(TCI)及其完整性的关于组件的信息可存储于安全存储器装置的安全存储器区中。对安全存储器区的存取及/或修改可经由加密及表示存取及/或修改安全存储器区的特权的加密密钥来控制。
举例来说,存储于安全存储器区中的组件信息可包含组件的未受损的健康版本的组件的摘要(密码测量或散列值)及组件的部分的(若干)存储位置。可计算如存储于(若干)存储位置中的组件的当前摘要,且将其与存储于安全存储器区中的组件的未受损的健康版本的摘要进行比较。当在摘要之间存在失配时,如存储于(若干)存储位置中的组件可被确定为已受到损害;且作为响应,可在组件在引导过程中被加载之前及/或在组件的TCB组件身份(TCI)被用于产生复合装置标识符(CDI)及可用于证明拥有复合装置标识符(CDI)的对应加密密钥之前执行修复或恢复操作。
安全存储器装置可存储表示存储器装置的唯一装置机密。加密密钥可至少部分基于唯一装置机密产生。使用加密密钥产生的数字签名可用于证明至少部分由唯一装置机密表示的存储器装置的身份,如在下文结合图2进一步论述。
安全存储器装置可要求在执行命令以存取安全存储器区之前使用加密密钥对所述命令进行签名。加密密钥表示存取安全存储器区的特权。因此,在没有加密密钥的情况下,应用程序或实体无法存取安全存储器区,如在下文结合图3进一步论述。
图1说明根据一个实施例的集成电路存储器装置130。
在图1中,存储器装置130具有存储组件161(例如第零层组件)及组件信息163的安全存储器区133。组件信息163包含关于将在组件161之后被加载用于执行的组件(例如,165、167)(例如由第零层组件加载的第一层组件、由第一层组件加载的第二层组件)的数据。
存储器装置130存储对一群类似存储器装置当中的存储器装置130是唯一的唯一装置机密101。
在具有存储器装置130的计算***的引导期间,组件161的复合装置标识符(CDI)基于唯一装置机密101及组件161的TCB组件身份(TCI)产生;组件165的复合装置标识符(CDI)由组件161基于组件161的复合装置标身份(CDI)及组件165的TCB组件身份(TCI)产生;且组件167的复合装置标识符(CDI)由组件165基于组件165的复合装置标识符(CDI)及组件167的TCB组件身份(TCI)产生;等等。
组件信息163可至少包含将由组件161加载的组件165的摘要及/或将由组件165加载的组件167的摘要。组件信息163可进一步包含组件(例如165、167及/或组件161)的部分的存储位置的标识。存储位置也可称为测量位置。
因此,在组件165的TCB组件身份(TCI)由组件161用于计算其复合装置标识符(CDI)之前,存储器装置130的安全管理器113(及/或运行组件161的存储器装置130的主机***)可计算如存储于由组件信息163标识的存储位置处的组件165的当前摘要。计算得到的当前摘要可与组件信息163中的摘要进行比较以确定组件165的TCB组件身份(TCI)的有效性及/或组件165的完整性。如果所存储的组件165受到损害或是不健康的,那么可暂停引导过程;且可执行修复及/或恢复操作。如果组件165是健康的,那么其复合装置标识符(CDI)可由组件161根据组件165的TCB组件身份(TCI)及组件161的复合装置标识符(CDI)计算。由于组件161的复合装置标识符(CDI)从唯一装置机密101导出,因此拥有组件165的复合装置标识符(CDI)证实组件165可以存取唯一装置机密101。
类似地,另一组件167(例如应用程序)将在组件165(例如操作***)之后及/或由组件165加载。组件167的复合装置标识符(CDI)将基于组件165的复合装置标识符(CDI)计算为组件167的机密,且组件167的TCB组件身份(TCI)将在组件165之后加载。由于组件165的复合装置标识符(CDI)从唯一装置机密101间接导出,因此拥有组件167的复合装置标识符(CDI)证实组件165可以存取唯一装置机密101。组件信息163可包含将在组件165之后加载的组件167的摘要且进一步包含组件167的部分的存储位置的标识。因此,在组件167的TCB组件身份(TCI)用于计算组件167的复合装置标识符(CDI)之前,存储器装置130的安全管理器113(及/或运行组件161及/或组件165的存储器装置130的主机***)可计算如存储于由组件信息163标识的存储位置(测量位置)处的组件167的当前摘要。计算得到的当前摘要可与组件信息163中的摘要进行比较以按类似于组件165的确认的方式确定组件167的TCB组件身份(TCI)的有效性及/或组件167的完整性。
在一些实施方案中,可存在比图1中所说明的更多的组件层。在其它实施方案中,比图1中所说明的更少的组件层可用于计算装置中。因此,本公开不限于经链接(linked/chained)以产生其复合装置标识符的特定数目个组件层。
图1说明其中组件161、165、…、167存储于非安全存储器区131中的实例。经配置以存取非安全存储器区131的命令不需要使用表示在存储器装置130内执行命令的特权的加密密钥产生的签名或确认码。在其它实施方案中,一些或全部组件161、165、…、167也可存储于安全存储器区133中以增强安全性。
集成电路存储器装置130可经围封于单个集成电路封装中。集成电路存储器装置130包含可形成于一或多个集成电路裸片中的多个存储器区131、…、133。
存储器区(例如131或133)可经分配以由主机***用作分区或命名空间。存储器区(例如131或133)中的存储器位置可由主机***经由逻辑块寻址(LBA)的地址指定;且存储器装置130可包含地址映射图,其指定分区或命名空间中的LBA地址与用于提供分配给分区或命名空间的存储空间的对应存储器单元的物理地址之间的关系。在一些实施方案中,存储器装置130经配置于存储器子***(例如图8中说明的110)中;且存储器子***控制器115可经配置以执行存储器装置130的地址映射。
存储器区(例如131、…、133)中的典型存储器单元可经编程以存储一或多个数据位。
存储器装置130具有本地媒体控制器150,其可实施安全管理器113的至少一部分。
存储器装置130的安全管理器113可包含存取控制器109及加密引擎107。
加密引擎107可经由逻辑电路及/或指令或微代码实施以执行加密计算,例如将加密散列函数应用到数据项以产生散列值、使用加密密钥将数据项加密以产生密文、使用对应加密密钥将密文解密以恢复数据项、产生对称加密的加密密钥及/或非对称加密的一对加密密钥等。
存取控制器109基于表示存取特权的加密密钥控制对存储器区131、…、133中的至少一者及/或存储器装置130的其它功能的存取。
举例来说,安全管理器113可基于以下加密密钥来控制对安全存储器区133的存取:基于集成电路存储器装置130的机密101产生的加密密钥及/或表示存储器装置130的拥有者或授权用户的加密密钥。举例来说,当在集成电路存储器装置130中接收到将数据写入到安全存储器区133的请求或命令时,安全管理器113验证所述请求是否是来自具有加密密钥的请求者。如果不是,那么安全管理器113可拒绝写入请求。为了证明所述请求是来自经授权请求者,请求者可使用加密密钥以数字方式对请求或质询信息进行签名。当安全存储器装置130确定数字签名是使用正确的加密密钥进行的时,请求者被视为具有将数据写入到安全存储器区133的权限。举例来说,存储器装置130可存储用于认证经签名请求/命令的数字签名的加密密钥。
存储器装置130可经配置以使用不同加密密钥来对不同命令进行存取控制。举例来说,一个加密密钥可表示在存储器装置130中执行安全命令的特权;且安全命令用于指定另一加密密钥表示在安全存储器区133中进行读取及/或写入的特权。举例来说,存储器装置130可具有多个安全存储器区(例如133);且对安全存储器区中的每一者(例如133)的存取可经由单独加密密钥来控制。
举例来说,存储器装置130可具有表示存储器装置130的身份的唯一装置机密101;且从唯一装置机密101导出的加密密钥可表示操作存储器装置130且因此在存储器装置中执行安全命令的拥有者特权。
一般来说,安全存储器区133可对不同类型的存取(例如读取、写入、擦除)具有不同安全要求。举例来说,安全存储器区133可经配置以需要可经由加密密钥验证的数字签名来将数据写入于安全存储器区133中或改变安全存储器区133中的数据但无需经签名命令来从安全存储器区133读取数据。替代地,安全存储器区133可经配置以需要可经由加密密钥验证的数字签名来读取、写入及/或改变安全存储器区133中的数据。替代地,安全存储器区133可经配置以针对在安全存储器区133中进行的不同操作(例如读取、写入、改变、擦除等)需要可经由不同加密密钥验证的数字签名。
集成电路存储器装置130具有通信接口147以接收具有地址135的命令。响应于地址135标识经配置有存取控制的安全存储器区(例如133),安全管理器113使用加密引擎107执行密码操作来在提供使用地址解码器141从存储器区133检索到的存储器数据之前验证请求是来自具有被授权存取存储器区133的加密密钥的请求者。集成电路存储器装置130的地址解码器141将地址135转换成控制信号以选择集成电路存储器装置130中的一群组存储器单元;且集成电路存储器装置130的本地媒体控制器150执行操作以确定在地址135处存储于存储器单元中的存储器数据。
图2说明根据一个实施例的集成电路存储器装置中的身份数据的产生。举例来说,图2的技术可经实施于图1的存储器装置130中。
在图2中,存储器装置130(例如,如在图1中)的加密引擎107用于使用其唯一装置机密101及装置信息121产生至少一机密密钥137。
举例来说,当使用非对称加密时,机密密钥137是加密密钥对129的私密密钥。相关联公共密钥139与所述私密密钥一起使用加密引擎107产生。
替代地,当使用对称加密时,可在无需公共密钥139且无需密钥对129的情况下产生并使用机密密钥137。
在一些实施方案中,产生并使用多个密钥对129。举例来说,当使用装置身份组合引擎(DICE)及稳健物联网(RIoT)的方法时,第一对非对称密钥称为装置标识密钥;且第二对非对称密钥称为别名密钥。私密装置标识密钥可用于核证别名密钥的真实性,且接着被立即删除且从存储器装置130清除并保护其保密性,尤其是当私密装置标识密钥的产生或使用至少部分发生于主机***120中时。别名密钥可用于另外事务及/或通信中的认证。举例来说,私密装置标识密钥可在引导时产生且用于将例如别名公共密钥的证书等的证书进行签名,且接着被删除。在存储器装置130的身份及公共别名密钥的真实性利用使用私密装置标识密钥作为机密密钥137来签名的证书进行确认(validate/confirm)之后,接着,在后续操作中可将私密别名密钥用作存储器装置130的机密密钥137直到主机***120重新引导为止。
举例来说,存储于存储器单元103中的装置信息121的数据123可包含将由存储器装置130的通信接口147连接到的主机***120的处理装置118执行的一组指令(例如软件、固件、操作***、应用程序)。
举例来说,数据123可包含一组指令的加密散列值。举例来说,一组指令的已知散列值可存储于存储器单元103中;且一组指令的当前散列值可经计算以与已知散列值进行比较。如果两个散列值彼此一致,那么所述组指令的完整性被验证;且一组指令的完整性的散列值可用作装置信息121的部分以计算机密密钥137。
替代地,存储于存储器单元103中的一组指令的当前散列值可直接用于机密密钥137的计算。如果指令已改变(例如,由于数据损坏及/或篡改或黑客攻击),那么由安全服务器进行的机密密钥137的确认将失败。
任选地,数据123可包含一组指令的标识,例如指令的源代码的散列值、由指令表示的软件/固件封装的名称、封装的版本号及/或发行日期等。
任选地,数据123可包含在构建及/或定制具有主机***120及存储器装置130的计算***的过程期间存储到存储器单元103中的跟踪数据。举例来说,当存储器装置130被组装到组件装置(例如存储器子***)中时,表示组件装置的制造商、组件装置的型号及/或组件装置的序列号的一段跟踪数据被存储到存储器单元103中作为装置信息121的部分。随后,当组件装置组装到计算***中时,一段跟踪数据被添加到存储器单元中作为装置信息121的部分。另外的跟踪数据可被添加到存储器单元103作为装置信息121的部分以反映存储器装置130的历史来个性化存储器装置130的身份。
任选地,装置信息121可进一步包含从存储器装置130的通信接口147连接到的主机***120接收到的数据125。
举例来说,计算***可具有至少主机***120及存储器装置130。主机***120中的一些组件可被移除或取代。在启动主机***120时,存储于存储器单元103中的指令的一部分经执行以收集关于在引导时间存在于主机***120中的组件的数据125。因此,装置信息121可表示存储器装置130及/或主机***120的软件/数据及硬件组合的特定配置。基于装置信息121及唯一装置机密101产生的机密密钥137表示具有特定配置的存储器装置130的身份。
为了证明存储器装置130及/或主机***120的身份,加密引擎107根据消息143及机密密钥137产生验证码153。
机密密钥137及消息143的验证码153可使用各种技术构造及/或确认,例如散列摘要、数字签名或基于散列的消息认证码、对称加密及/或非对称加密。因此,验证码153不限于特定实施方案。
一般来说,验证消息(例如143)的发送者是否具有加密密钥(例如145)涉及消息(例如143)的验证码(例如153)的认证。验证码可呈散列摘要、数字签名、基于散列的消息认证码(HMAC)、基于密码的消息认证码(CMAC)等的形式。验证码使用加密密钥及消息作为到例如散列、加密及/或其它计算的密码操作的输入而产生,使得在没有加密密钥的情况下产生验证码及从消息的经修改版本产生验证码通常是不切实际的。因此,当接收者确认接收到的验证码对接收到的消息及加密密钥有效时,接收者可断定发送者具有对应加密密钥且接收到的消息与用于产生接收到的加密密钥的消息相同。
在一些实施方案中,接收者使用与由发送者用于产生验证码的加密密钥相同的加密密钥执行消息的验证码的确认。举例来说,接收者使用相同加密密钥产生接收到的消息的验证码且将所产生的验证码与接收到的验证码进行比较。如果存在匹配,那么接收到的验证码对接收到的消息有效;且发送者可被认为具有加密密钥。否则,接收到的验证码对接收到的消息无效;接收到的消息自验证码产生以来已改变,或接收到的验证码是使用不同加密密钥产生的或两者。
在一些实施方案中,接收者使用密钥对中的公共加密密钥执行消息的验证码的确认;且发送者使用密钥对中的私密加密密钥产生验证码。举例来说,验证码可通过将散列函数应用到消息以产生消息的散列值来产生。通过使用加密密钥执行的将散列值加密获得的散列值的密文可用作验证码。消息及验证码的接收者使用对应解密密钥执行确认,当使用对称加密时解密密钥与加密密钥相同,且当使用非对称加密时解码密钥是密钥对中的不同密钥。在使用解密密钥从密文恢复散列值时,所恢复的散列值可与接收到的消息的散列值进行比较;如果存在匹配,那么接收到的验证码对接收到的消息有效;否则,接收到的验证码对接收到的消息无效。替代地,接收者可使用加密密钥执行确认,而无需执行解密。接收者可使用加密密钥产生消息的验证码以与接收到的验证码进行比较。
在一些实施方案中,消息及加密密钥组合以产生散列值作为验证码,如在基于散列的消息认证码(HMAC)技术中。举例来说,加密密钥可用于产生两个密钥。在组合两个密钥中的一者与消息以产生由密钥修改的消息之后,加密散列函数可应用到密钥修改的消息以产生散列值,其与另一密钥进一步组合以产生另一消息。在将加密散列函数(或另一加密散列函数)应用到另一消息之后,产生基于散列的消息认证码。消息的接收者可使用相同加密密钥产生接收到的消息的基于散列的消息认证码以与接收到的基于散列的消息认证码进行比较。如果存在匹配,那么确认成功;否则,确认失败。
一般来说,用于产生及确认来自发送者的消息的验证码及由发送者用于产生验证码的加密密钥的任何技术可用于确定发送者是否具有加密密钥。接收者将使用适当加密密钥执行确认,其可与用于产生验证码的加密密钥相同或在同一对非对称加密密钥中。因此,本公开不限于散列摘要、数字签名及/或基于散列的消息认证码的特定技术。
为了方便起见,使用加密密钥(例如145)为消息(例如143)产生的用于表示消息(例如143)及加密密钥(例如145)的验证码(例如153)可通常称为使用加密密钥(例如145)进行签名的消息(例如143)的数字签名,应理解,验证码可使用各种技术产生,例如基于散列的消息认证码。
任选地,消息143可包含用户标识,例如其中产生身份数据112的主机***120的拥有者或授权用户的姓名、电子邮箱地址、注册的用户名或另一标识符。
任选地,消息143的部分可提供呈加密形式的信息。举例来说,信息可使用安全服务器的公共密钥来加密使得信息无法被第三方存取。
消息143可为呈现存储器装置130及/或主机***120的唯一标识111的证书。消息143可进一步呈现其它数据127,例如存储器装置130中维持的计数器值、加密随机数及/或与身份数据112的确认有关的其它信息。存储器装置130可单调地增加计数器值以使具有较低计数器值的身份数据无效来防止重放攻击。
在一些实施方案中,数据127可包含用于产生机密密钥137的装置信息121的部分。
在一些实施方案中,机密密钥137是一对非对称密钥中的私密别名密钥。数据127包含呈现所述对非对称密钥中的对应公共别名密钥的证书。呈现公共别名密钥的证书使用存储器装置130的装置标识密钥来签名。公共别名密钥可用于确认消息143的验证码153及用作机密密钥137的私密别名密钥。一旦安全服务器确认呈现使用存储器装置130的装置标识密钥签名且提供为数据127的部分的公共别名密钥的证书,安全服务器就可使用公共别名密钥确认将私密别名密钥用作机密密钥137签名的验证码153。在此实施方案中,安全服务器可使用消息143中提供的公共别名密钥来确认验证码153,而无需重新产生一对别名密钥;且存储器装置130可使用安全服务器不知晓的数据产生别名密钥对129。
呈现公共别名密钥的证书可以如图2中的方式产生及确认,其中机密密钥137是使用装置信息121及唯一装置机密101产生的装置标识密钥。任选地,存储器装置130最初向安全服务器提供具有公共别名密钥的证书。随后,存储器装置130可将私密别名密钥用作机密密钥137,而无需在消息143中包含公共别名密钥或无需在消息143中包含公共别名密钥的证书。
此外,存储器装置130的身份的验证可包含多个机密密钥及使用机密密钥签名的验证码的使用。举例来说,装置标识机密密钥可用于首先建立别名机密密钥的真实性及存储器装置130的身份;且随后,别名机密密钥可用于确认存储器装置130的身份的真实性。一般来说,装置标识机密密钥及别名机密密钥可基于非对称加密或对称加密,因为安全服务器可产生由存储器装置130产生的对应加密密钥。
为了改进安全性,存储器装置130不使用在存储器装置130外的处理能力来产生其机密密钥137的副本且不在存储器装置130外传递机密密钥137。机密密钥137的产生及使用使用密封在存储器装置130内的加密引擎107的逻辑电路来执行。
替代地,产生及使用机密密钥137的操作的部分可经由存储于存储器单元103中且加载到主机***120的处理装置118以供执行的一组指令实施。为了改进安全性,机密密钥137不以明文跨通信接口147传递;且指令可经配置以在产生之后及/或在使用之后从主机***120清除机密密钥137。
身份数据112可响应于存储器装置130加电、响应于在通信接口147中接收到请求及/或响应于主机***120启动(例如,通过执行存储于存储器单元103中的引导加载程序)产生。数据127可包含维持在存储器装置130中的计数值。当执行产生身份数据112的操作时,计数值增加。因此,具有计数值的身份数据112的版本使具有低于计数值的计数值的身份数据112的先前版本无效。
在一些实施方案中,数据123包含多个层的组件(例如组件A 161、组件B 165、组件C 167);且装置信息121包含组件信息163及至少一些组件的复合装置标识符。
图3说明根据一个实施例的用于控制存储器装置中的命令执行的技术。举例来说,图3的技术可经实施于图1的存储器装置130中。
在图3中,存取控制器109经配置有存取控制密钥149以确定在通信接口147中接收到的经签名的命令156是否是来自具有在安全存储器装置130中执行命令155的特权的实体。
当主机***120的控制器116向存储器装置130的通信接口147发送命令155时,存取控制器109确定命令155的发送者是否具有请求存储器装置130执行命令155的特权。主机***120可包含执行实施操作***及/或应用程序的指令的一或多个处理装置118。
加密密钥145经配置以表示将使用存取控制密钥149检查的特权。命令155的发送者可从加密密钥145及含有命令155的消息143产生验证码153。
类似于上文结合图2论述的验证码153,加密密钥145及消息143的验证码153可使用各种技术构造及/或确认,例如散列摘要、数字签名或基于散列的消息认证码、对称加密及/或非对称加密。因此,验证码153不限于特定实施方案;且验证码153可通常称为使用加密密钥145进行签名的消息143的数字签名,应理解,验证码153可使用各种技术产生,例如基于散列的消息认证码。
在图3中,存取控制器109使用对应存取控制密钥149确认针对命令155的提交给通信接口147的验证码153。存取控制器109使用加密引擎107产生接收到的消息143及接收到的验证码153的确认结果159。基于确认结果159,存取控制器109可选择性地允许命令155在存储器装置130内执行或阻止命令155的执行。
举例来说,存取控制密钥149可为存储于存储器装置130中的加密密钥中的一者。不同存取控制密钥可用于控制执行不同命令及/或执行在存储器单元的不同区段或区上操作的命令的不同特权。
举例来说,一个加密密钥145可表示在存储器装置130中执行安全命令的特权。当安全命令被执行时,将存取控制密钥149安装(或卸载)于存储器装置130中以确认表示执行读取命令(或写入命令)以存取安全存储器区133的特权的另一加密密钥的验证码。
任选地,加密密钥145在基于存储器装置130的唯一装置机密101确认存储器装置130的身份的过程中产生;且存储器装置130与存储器装置130的拥有者之间已知的机密允许产生会话密钥作为加密密钥145以表示在通信会话期间在存储器装置130中执行所选择的命令的特权。通信会话可具有时间限制及/或可经由到存储器装置130的命令终止。
在一些实施方案中,相同会话密钥用作表示特权(例如,在安全存储器区133中读取或写入数据)的加密密钥145且用作用于确认使用加密密钥145产生的验证码(例如153)的存取控制密钥149。
在另一实施方案中,非对称加密的一对加密密钥可用于所述会话。所述对中的公共密钥用作存取控制密钥149;且所述对中的私密密钥可用作表示对应特权的加密密钥145。
在将用于确认使用表示在安全存储器区133中进行读取或写入的特权的加密密钥145产生的验证码(例如153)的存取控制密钥149安装于存储器装置130中之后,加密密钥145可由授权实体用于产生经签名的命令156。经签名的命令156可由主机***120传输到存储器装置130的通信接口147。在存取控制器109确认经签名的命令156中的验证码153之后,存取控制器109允许存储器装置130执行命令155。
消息143可包含表示对执行命令155的请求的约束的数据157。
举例来说,数据157可包含被维持于存储器装置130内使得为较低计数产生的验证码无效的执行计数值。
举例来说,数据157可包含密码随机数,其针对执行命令155的请求的特定例子建立使得验证码153无法被重用于另一例子。
举例来说,数据157可包含其中验证码153是有效的时间窗。
举例来说,数据157可包含其中允许执行命令155的存储器区的标识。
举例来说,数据157可包含允许在存储器装置130中执行命令155的操作类型。
图4说明根据一个实施例的促进可信计算基础的组件之间的安全身份链接的组件信息163。举例来说,图4的技术可实施于具有图2及图3的安全特征的图1的存储器装置130中。
在图4中,经指定用于确认组件165的组件信息163包含组件数据位置172、…、174及组件摘要175。
举例来说,位置172、…、174可经由存储器区131中的存储器单元103的物理地址或存储器区131中的存储器单元103的本地地址标识。
当组件165在操作***执行之后加载时,位置172、…、174可经由由操作***控制的文件***中的文件及/或字典标识。此外,存储器区131可在与其中存储组件信息163的存储器装置130分离的另一存储器装置中。部分171、…、173可经由由操作***提供服务的文件***存取。
举例来说,组件信息163可存储于安全存储器区133中以防止被篡改。组件165可存储于另一存储器区131(例如安全区或非安全区)中。位置172、…、174中的每一者标识组件165的相应部分(例如171、…、173)。因此,位置172、…、174允许安全管理器113读取并计算当前摘要175以与在组件165的组件信息163中指定的组件摘要175进行比较。比较可在组件165被使用之前及/或在组件165的TCB组件身份(TCI)被使用(例如,用于产生组件165的复合装置标识符(CDI))之前执行。
安全管理器113可使用组件信息163计算组件165的经确认TCB组件身份(TCI)。举例来说,在确定如存储于位置172、…、174处的组件165的当前摘要与组件摘要175一致之后,安全管理器113可根据摘要175及关于组件165的其它信息计算组件165的TCB组件身份(TCI),所述其它信息例如以下各者的标识:组件的制造商176、组件的版本177、组件的构建178、组件在软件/固件的分层结构中的级别179等。例如组件165的源代码的散列值的额外信息也可用于产生组件165的TCB组件身份(TCI)。在一些实施方案中,组件摘要175根据部分171、…、173的组合及关于组件165的其它信息来计算,所述其它信息例如以下各者的标识:组件的制造商176、组件的版本177、组件的构建178、组件在软件/固件的分层结构中的级别179等。
因此,当如存储于存储器区131中的组件165受到损害时,引导过程可中断(例如,以警告、修复及/或恢复);且可在组件165修复及/或恢复之前防止的组件165的TCB组件身份(TCI)的使用。技术可防止受到损害的组件165执行及/或使用。
图5展示根据一个实施例的可信计算基础的组件之间的安全身份链接。举例来说,图5的技术可用于具有图1的存储器装置、图2及图3的安全特征及存储于存储器装置130的安全存储器区中的组件信息163的计算装置中。
在图5中,计算装置的组件经加载以循序地执行。在当前组件181被加载之前,将当前组件181的测量的到的摘要164与组件181的对应健康版本的所存储的摘要进行比较以确定当前组件181的完整性。
在基于测量得到的摘要164确定当前组件181是健康的之后,计算当前组件181的复合标识符185;且当前组件181可被加载以执行。在当前组件181执行期间,安全管理器113可使用复合标识符185及下一组件182的经确认摘要184产生下一组件181的复合标识符186。
因为复合标识符186是使用复合标识符185产生,因此拥有复合标识符186指示下一组件181具有与复合标识符185相关联的机密。
在一个实例中,当当前组件181是将首先被加载以执行的组件时,复合标识符185可使用存储器装置130的唯一装置机密101(或从唯一装置机密101导出的另一标识符)计算。因此,验证组件181具有正确的复合标识符185指示组件181是从具有唯一装置机密101的存储器装置130加载。
在另一实例中,当当前组件181是在一或多个其它组件已被加载以执行之后才被加载以执行的组件时,标识符185可基于恰在当前组件181之前加载的组件的复合标识符。具有正确的复合标识符185指示当前组件181在具有正确的复合标识符的先前组件之后被加载。通过链结复合标识符,当前组件181被视为是从具有存储器装置130的唯一装置机密101的存储器装置130加载。
复合标识符185可视作存储器装置130及/或计算装置中的机密。为了证明当前组件181具有复合标识符185,加密密钥187从复合标识符185产生。加密密钥187可用于以机密密钥137用于对消息143进行签名且产生图2中的验证码153以进行身份验证的方式对质询消息进行签名以证明当前组件181具有正确的加密密钥187。
举例来说,当使用对称加密时,加密密钥187是机密密钥。替代地,当使用非对称加密时,加密密钥187是一对非对称加密密钥中的私密密钥;且可向第三方透露密钥对中的公共密钥以确认使用私密密钥创建的签名。证书可用于呈现当前组件181的公共密钥。为了防止呈现当前组件181的公共密钥的证书的篡改及/或伪造,证书可使用具有可信公共密钥的私密密钥(例如在当前组件之前加载的组件的私密密钥)来签名或由可信权威或安全服务器签名。
在一些实施方案中,复合标识符186被计算为结果及/或在当前组件181的初始执行期间计算。在其它实施方案中,存储器装置130内的安全管理器113计算复合标识符186且防止复合标识符186通过通信接口147向存储器装置130外透露。
在图5中,在产生下一组件182的复合标识符186并加载下一组件182以执行之前,计算下一组件182的测量得到的摘要194(例如,基于在组件信息163中标识的位置172、…、174)。将测量得到的摘要194与在组件信息163中记录的组件摘要175进行比较以确认183下一组件182的健康状况。如果测量得到的摘要194与组件摘要175相同,那么下一组件182的经确认摘要184可用于计算当前组件181的复合标识符186。举例来说,经确认摘要184可用于形成下一组件182的TCB组件身份(TCI)。在一些实施方案中,下一组件182的TCB组件身份(TCI)是基于经确认摘要184与关于在组件信息163中指定的下一组件182的另外信息的组合。在其它实施方案中,经确认摘要184是基于组件165的部分171、…、173的组合与关于下一组件182的另外信息(例如制造商176、版本177、构建178、级别179)。
如果如存储于存储器区131中的下一组件182是健康的,那么下一组件182的复合标识符186可根据下一组件182的经确认摘要184及当前组件181的复合标识符185来计算。下一组件182的对应加密密钥197可以类似于计算当前组件181的对应加密密钥187的方式来计算。
在实例中,如果在下一组件182之后还有另一组件将被加载,那么另一组件的复合标识符196将根据另一组件的经确认摘要189及复合标识符186计算,就像当前组件181的复合标识符186根据下一组件182的经确认摘要184及复合标识符185计算那样。
图6说明根据一个实施例的促进组件信息的安装的安全服务器201。举例来说,安全服务器201可用于将图4的组件信息163安装于图1的存储器装置130中以促进上文结合图5所论述的安全身份链接。
在图6中,安全服务器201具有存取特权密钥203,所述存取特权密钥可用于对用以将数据写入于安全存储器区133中及/或修改安全存储器区133中的数据的命令进行签名。在主机***120中运行的安全管理器113可在存储器装置130与安全服务器201之间提供通信连接。当(例如,计算***100的制造商的)计算机205将组件182安装到存储器装置130中时,计算机205可请求安全管理器113将关于如存储于存储器装置130中的组件182的组件信息163写入到安全存储器区133中。在确认计算机205的身份之后,安全管理器113可呈现命令155与其数据157以由安全服务器201使用存取特权密钥203进行签名。在安全服务器201产生验证码153(例如,将存取特权密钥203用作图3中说明的加密密钥145)之后,安全管理器113可将经签名的命令156传递到存储器装置130的通信接口147。在存取控制器109使用对应存取控制密钥149确认验证码153之后,命令155可经执行以将组件信息163写入于安全存储器区133中。
当确认184确定组件182受到损害时,安全管理器113可连接到计算机205以检索组件182的最新副本来修复或恢复组件182。替代地,组件182的备份副本存储于安全服务器201中(例如,在初始地将组件182安装到存储器装置130中期间);且恢复或修复可经由安全服务器201使用备份副本来执行。
图7展示根据一个实施例的用于引导计算装置的方法。图7的方法可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路***、专用逻辑、可编程逻辑、微代码、装置的硬件、集成电路等)、软件/固件(例如,运行或执行于处理装置上的指令)或其组合。在一些实施例中,图7的方法可实施于图6的***中且至少部分由图3中的主机***120的处理装置118或控制器116、图8的存储器子***110的控制器115及/或控制器150或图1的存储器装置130中的处理逻辑执行。尽管以特定顺序或次序展示,但除非另外指定,否则过程的次序是可修改的。因此,所说明实施例应被理解为仅作为实例,且所说明过程可以不同次序执行,且一些过程可并行执行。另外,在各个实施例中,可省略一或多个过程。因此,并非在每个实施例中都需要所有过程。其它过程流是可能的。
在框301,存储器装置130基于加密控制由主机***120通过存储器装置130的通信接口147对存储器装置130中的存储器区133进行的存取。
在框303,存储器装置130存储可在主机***120中执行的第一组件181及第二组件182。
在框305,存储器装置130将关于第二组件182的组件信息163存储于存储器区133中。
举例来说,组件信息163可包含第一摘要175且标识存储器装置130中的第二组件182的至少一部分(例如171或173)的存储位置(例如172或174)。
举例来说,第一组件181可为组件161(例如引导加载程序);第二组件182可为由组件161(例如引导加载程序)加载的操作***;且存储位置(例如172或174)可使用存储器装置130中的物理存储器地址标识。
举例来说,第一组件181可为操作***;第二组件182可为在操作***下运行的应用程序;且存储位置(例如172或174)可经由由操作***控制的文件***标识。
在框307,安全管理器113基于存储于存储器区133中的组件信息163验证存储于存储器装置130中的第二组件182的健康状况。
举例来说,安全管理器113可通过以下操作验证第二组件182的健康状况:从存储位置(例如172或174)检索内容(例如部分171或部分173);至少部分基于所述内容计算第二摘要194;及比较第一摘要175与第二摘要194以验证第二组件182的健康状况。
在框309,安全管理器113响应于确定存储于存储器装置130中的第二组件182是健康的,使用第二组件182的组件身份产生第二组件182的复合标识符186。
举例来说,第二组件182的组件身份可至少部分基于第二摘要194。组件信息163可进一步包含以下各者的标识:第二组件182的制造商176;第二组件182的版本177;第二组件182的构建178;或第二组件182的级别179;或其任何组合。第二组件182的组件身份可进一步基于此类标识。
举例来说,在确定第二组件182是健康的之后,安全管理器113可根据包含以下各者的组件信息163计算第二组件182的组件身份:第二组件182的制造商176、第二组件182的版本177、第二组件182的构建178及/或第二组件182的级别179等。
举例来说,安全管理器113可根据第二组件182的组件身份及第一组件181的机密计算第二组件182的复合标识符186。第一组件181的机密可为从存储器装置的唯一装置机密101导出的第一组件181的复合标识符185。
举例来说,第一组件181的复合标识符185可基于存储于存储器装置130中且经配置以在第一组件之前执行的第零不同组件的复合标识符产生(例如,在其中第零不同组件在第一组件181之前执行的实例中,第一组件181在第二组件182之前执行);第一组件181的执行取决于第零不同组件的执行;第二组件182的执行取决于第一组件181的执行。在安全管理器113根据第一组件181的复合标识符185计算加密密钥187之后,可使用加密密钥187(例如,作为机密密钥137)产生消息143的验证码153以证明第一组件181、存储器装置130及/或具有存储器装置130的计算***100具有复合标识符186。
图8说明根据本公开的一些实施例的包含存储器子***110的实例计算***100。存储器子***110可包含媒体,例如一或多个易失性存储器装置(例如,存储器装置140)、一或多个非易失性存储器装置(例如,存储器装置130)或此类事物的组合。
存储器子***110可为存储装置、存储器模块或存储装置与存储器模块的混合体。存储装置的实例包含固态驱动器(SSD)、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡及硬盘驱动器(HDD)。存储器模块的实例包含双列直插式存储器模块(DIMM)、小形DIMM(SO-DIMM)及各种类型的非易失性双列直插式存储器模块(NVDIMM)。
计算***100可为计算装置,例如台式计算机、膝上型计算机、网络服务器、移动装置、运载工具(例如,飞机、无人机、火车、汽车或其它运输工具)、物联网(IoT)启用装置、嵌入式计算机(例如,包含于运载工具、工业设备或联网商用装置中的嵌入式计算机)或包含存储器及处理装置的此计算装置。
计算***100可包含耦合到一或多个存储器子***110的主机***120。图8说明耦合到一个存储器子***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之间传递控制、地址、数据及其它信号的接口。图8将存储器子***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)。
非易失性存储器组件的一些实例包含“与非”(或NOT AND)(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)。虽然已将图8中的实例存储器子***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。在一些实施例中,存储器子***110中的控制器115及/或本地媒体控制器150可包含安全管理器113的至少一部分。在其它实施例中,或组合地,主机***120中的控制器116及/或处理装置118可包含安全管理器113的至少一部分。举例来说,控制器115、控制器116及/或处理装置118可包含实施安全管理器113的逻辑电路***。举例来说,控制器115或主机***120的处理装置118(例如,处理器)可经配置以执行存储于存储器中的用于执行本文中描述的安全管理器113的操作的指令。在一些实施例中,安全管理器113经实施于安置于存储器子***110中的集成电路芯片中。在其它实施例中,安全管理器113可为存储器子***110的固件、主机***120的操作***、装置驱动程序或应用程序或其中的任何组合的部分。
图9说明用于致使机器执行本文中论述的方法论中的任一或多者的一组指令可在其内执行的计算机***400的实例机器。在一些实施例中,计算机***400可对应于主机***(例如图8的主机***120),主机***120包含、耦合到或利用存储器子***(例如,图8的存储器子***110)或可用于执行安全管理器113的操作(例如,执行指令以执行对应于参考图1到8描述的安全管理器113)的操作)。在替代实施例中,机器可连接(例如,联网)到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可进一步包含网络接口装置408以经过网络420通信。
数据存储***418可包含在其上存储有体现本文中所描述的任何一或多种方法或功能的一或多组指令426或软件的机器可读媒体424(也被称为计算机可读媒体)。指令426还可在由计算机***400执行期间完全或至少部分驻存于主存储器404内及/或处理装置402内,主存储器404及处理装置402也构成机器可读存储媒体。机器可读媒体424、数据存储***418及/或主存储器404可对应于图8的存储器子***110。
在一个实施例中,指令426包含用于实施对应于安全管理器113(例如,参考图1到8描述的安全管理器113)的功能性的指令。虽然在实例实施例中将机器可读媒体424展示为单个媒体,但术语“机器可读存储媒体”应被视为包含存储一或多组指令的单个媒体或多个媒体。术语“机器可读存储媒体”也应被视为包含能够存储或编码由机器执行的一组指令且致使机器执行本公开的方法论中的任一或多者的任何媒体。术语“机器可读存储媒体”应相应地理解为包含(但不限于)固态存储器、光学媒体及磁性媒体。
已依据对计算机存储器内的数据位的操作的算法及符号表示呈现前述详细描述的一些部分。这些算法描述及表示是由数据处理领域的技术人员用以向所属领域的其它技术人员最有效地表达其工作实质的方式。算法在本文且通常被设想为导致所期望结果的自相一致的操作序列。操作是需要物理操纵物理量的操作。通常,尽管不是必须的,这些量采取能够被存储、组合、比较及以其它方式操纵的电或磁性信号的形式。已被证明是方便的是,有时出于习惯用法的原因,原则上将这些信号指代为位、值、元素、符号、字符、项、数字等等。
然而,应记住,全部这些及类似术语与适当物理量相关联,且仅为应用于这些量的方便标签。本公开可涉及计算机***或类似电子计算装置的动作及过程,所述计算机***或类似电子计算装置操纵表示为计算机***的寄存器及存储器内的物理(电子)量的数据并将所述数据转换成类似地表示为计算机***存储器或寄存器或其它此类信息存储***内的物理量的其它数据。
本公开还涉及用于执行本文中的操作的设备。此设备可出于预期目的专门构造,或其可包含由存储于计算机中的计算机程序选择性地激活或重新配置的通用计算机。此计算机程序可存储于计算机可读存储媒体中,例如(但不限于)任何类型的磁盘,包含软盘、光盘、CD-ROM及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡或适于存储电子指令的任何类型的媒体,每一者都耦合到计算机***总线。
本文呈现的算法及显示器并不固有地涉及任何特定计算机或其它设备。各种通用***可结合根据本文的教示的程序使用,或可证明为方便的是构造更专门设备来执行方法。多种这些***的结构将如下文描述中陈述那样出现。另外,本公开并非是参考任何特定编程语言描述。应了解,多种编程语言可用于实施本文中所描述的本公开的教示。
本公开可经提供为计算机程序产品或软件,其可包含其上存储有指令的机器可读媒体,指令可用于编程计算机***(或其它电子装置)以执行根据本公开的过程。机器可读媒体包含用于存储呈可由机器(例如计算机)读取的形式的信息的任何机构。在一些实施例中,机器可读(例如计算机可读)媒体包含机器(例如计算机)可读存储媒体,例如只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储媒体、光学存储媒体、快闪存储器组件等。
在本描述中,各种功能及操作被描述为由计算机指令执行或引起以简化描述。然而,所属领域的技术人员将认识到,此类表达意味着功能因通过一或多个控制器或处理器(例如微处理器)执行计算机指令而产生。替代地,或组合地,功能及操作可在用或不用软件指令的情况下使用专用电路***实施,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。实施例可在不使用软件指令的情况下使用硬接线电路***实施,或结合软件指令实施。因此,技术既不限于硬件电路***与软件的任何特定组合,也不限于由数据处理***执行的指令的任何特定来源。
在以上说明中,已参考本公开的特定实例实施例描述其实施例。明显的是,可在不背离所附权利要求书中所陈述的本公开的实施例的更宽精神及范围的情况下对本公开做出各种修改。因此,说明书及图式应以说明性意义而非限制性意义来看待。
Claims (20)
1.一种存储器装置,其包括:
通信接口,其经配置以连接到主机***;
存储器单元,其具有存储器区;及
逻辑电路,其经配置以基于加密控制通过所述通信接口对所述存储器区进行的存取;
其中所述存储器单元经配置以存储第一组件及第二组件;且所述存储器区经配置以存储关于所述第二组件的组件信息;且
其中在使用所述第二组件的组件身份产生所述第二组件的复合标识符之前,所述逻辑电路经配置以基于存储于所述存储器区中的所述组件信息验证存储于所述存储器单元中的所述第二组件的健康状况。
2.根据权利要求1所述的存储器装置,其中所述组件信息包含第一摘要且标识所述存储器单元中的所述第二组件的至少一部分的存储位置;且所述逻辑电路经配置以从所述存储位置检索内容来计算第二摘要及比较所述第一摘要与所述第二摘要以验证所述第二组件的所述健康状况。
3.根据权利要求2所述的存储器装置,其中所述第二组件的所述组件身份是至少部分基于所述第二摘要。
4.根据权利要求3所述的存储器装置,其中所述组件信息包含以下各者的标识且所述第二组件的所述组件身份基于以下各者的标识:
所述第二组件的制造商;
所述第二组件的版本;
所述第二组件的构建;或
所述第二组件的级别;或
其任何组合。
5.根据权利要求4所述的存储器装置,其中所述第一组件是引导加载程序;所述第二组件是操作***;且所述存储位置使用物理存储器地址来标识。
6.根据权利要求4所述的存储器装置,其中所述第一组件是操作***;所述第二组件是应用程序;且所述存储位置经由由所述操作***控制的文件***来标识。
7.根据权利要求4所述的存储器装置,其中所述逻辑电路经配置以在确定所述第二组件是健康的之后根据所述组件信息计算所述第二组件的所述组件身份,及根据所述第二组件的所述组件身份及所述第一组件的机密计算所述第二组件的所述复合标识符。
8.根据权利要求7所述的存储器装置,其进一步包括:
唯一装置机密,其中所述第一组件的所述机密是基于所述唯一装置机密导出的所述第一组件的复合标识符。
9.根据权利要求8所述的存储器装置,其中所述第一组件的所述复合标识符基于存储于所述存储器单元中且经配置以在所述第一组件之前执行的第零组件的复合标识符产生;所述第一组件的执行取决于所述第零组件的执行;且所述第二组件的执行取决于所述第一组件的执行。
10.根据权利要求9所述的存储器装置,其中所述逻辑电路进一步经配置以根据所述第一组件的所述复合标识符计算加密密钥及使用所述加密密钥产生消息的验证码来证明拥有所述第一组件的所述复合标识符。
11.一种方法,其包括:
由存储器装置基于加密控制由主机***通过所述存储器装置的通信接口对所述存储器装置中的存储器区进行的存取;
将可在所述主机***中执行的第一组件及第二组件存储于所述存储器装置中;
将关于所述第二组件的组件信息存储于所述存储器区中;
基于存储于所述存储器区中的所述组件信息验证存储于所述存储器装置中的所述第二组件的健康状况;及
响应于确定存储于所述存储器装置中的所述第二组件是健康的,使用所述第二组件的组件身份产生所述第二组件的复合标识符。
12.根据权利要求11所述的方法,其中所述组件信息包含第一摘要且标识所述存储器装置中的所述第二组件的至少一部分的存储位置;且所述方法进一步包括:
从所述存储位置检索内容;
至少部分基于所述内容计算第二摘要;及
比较所述第一摘要与所述第二摘要以验证所述第二组件的所述健康状况。
13.根据权利要求12所述的方法,其中所述第二组件的所述组件身份是至少部分基于所述第二摘要;且所述组件信息包含以下各者的标识且所述第二组件的所述组件身份基于以下各者的标识:
所述第二组件的制造商;
所述第二组件的版本;
所述第二组件的构建;或
所述第二组件的级别;或
其任何组合。
14.根据权利要求13所述的方法,其中所述第一组件是引导加载程序;所述第二组件是操作***;且所述存储位置使用物理存储器地址来标识。
15.根据权利要求13所述的方法,其中所述第一组件是操作***;所述第二组件是应用程序;且所述存储位置经由由所述操作***控制的文件***来标识。
16.根据权利要求13所述的方法,其进一步包括:
在确定所述第二组件是健康的之后根据所述组件信息计算所述第二组件的所述组件身份;及
根据所述第二组件的所述组件身份及所述第一组件的复合标识符计算所述第二组件的所述复合标识符,其中所述第一组件的所述复合标识符基于所述存储器装置的唯一装置机密产生。
17.根据权利要求16所述的方法,其中所述第一组件的所述复合标识符基于存储于所述存储器装置中且经配置以在所述第一组件之前执行的第零组件的复合标识符产生;所述第一组件的执行取决于所述第零组件的执行;所述第二组件的执行取决于所述第一组件的执行;且所述方法进一步包括:
根据所述第一组件的所述复合标识符计算加密密钥;及
使用所述加密密钥产生消息的验证码以证明拥有所述复合标识符。
18.一种计算设备,其包括:
主机***;及
存储器装置,其具有:
通信接口,其连接到所述主机***;
存储器单元,其具有存储器区;及
逻辑电路,其经配置以基于加密控制通过所述通信接口对所述存储器区进行的存取;
其中所述计算设备经配置以存储第一组件及第二组件;
其中所述存储器区经配置以存储关于所述第二组件的组件信息;及
其中在所述计算设备生根期间且在所述第二组件的组件身份被用于产生所述第二组件的复合标识符之前,所述计算设备经配置以基于存储于所述存储器区中的所述组件信息验证存储于所述存储器单元中的所述第二组件的健康状况。
19.根据权利要求18所述的计算设备,其中所述组件信息包含第一摘要且标识所述第二组件的至少一部分的存储位置;且所述计算设备进一步经配置以在所述主机***中的所述第一组件执行期间:
从所述存储位置检索内容;
至少部分基于所述内容计算第二摘要;及
比较所述第一摘要与所述第二摘要以验证所述第二组件的所述健康状况。
20.根据权利要求19所述的计算设备,其中所述第二组件的所述组件身份是至少部分基于所述第二摘要;且所述组件信息包含以下各者的标识且所述第二组件的所述组件身份基于以下各者的标识:
所述第二组件的制造商;
所述第二组件的版本;
所述第二组件的构建;或
所述第二组件的级别;或
其任何组合。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/353,497 US12039049B2 (en) | 2021-06-21 | 2021-06-21 | Secure identity chaining between components of trusted computing base |
US17/353,497 | 2021-06-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115576483A true CN115576483A (zh) | 2023-01-06 |
Family
ID=84490473
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210642889.8A Pending CN115576483A (zh) | 2021-06-21 | 2022-06-08 | 可信计算基础的组件之间的安全身份链接 |
Country Status (2)
Country | Link |
---|---|
US (1) | US12039049B2 (zh) |
CN (1) | CN115576483A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11895244B2 (en) * | 2021-07-27 | 2024-02-06 | Dell Products L.P. | Secure high-speed communication interface between a basic input and output system and a service processor |
US11741224B2 (en) * | 2021-09-20 | 2023-08-29 | Intel Corporation | Attestation with a quantified trusted computing base |
US20220245252A1 (en) * | 2022-02-22 | 2022-08-04 | Intel Corporation | Seamless firmware update mechanism |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9424200B2 (en) * | 2013-03-15 | 2016-08-23 | Freescale Semiconductor, Inc. | Continuous run-time integrity checking for virtual memory |
US10796002B1 (en) * | 2014-09-08 | 2020-10-06 | Janus Technologies, Inc. | Method and apparatus for establishing a root-of-trust path for a secure computer |
US9923755B2 (en) * | 2016-08-01 | 2018-03-20 | Data I/O Corporation | Device programming with system generation |
US11444846B2 (en) * | 2019-03-29 | 2022-09-13 | Intel Corporation | Technologies for accelerated orchestration and attestation with edge device trust chains |
-
2021
- 2021-06-21 US US17/353,497 patent/US12039049B2/en active Active
-
2022
- 2022-06-08 CN CN202210642889.8A patent/CN115576483A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220405391A1 (en) | 2022-12-22 |
US12039049B2 (en) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12039049B2 (en) | Secure identity chaining between components of trusted computing base | |
US11783044B2 (en) | Endpoint authentication based on boot-time binding of multiple components | |
US11784827B2 (en) | In-memory signing of messages with a personal identifier | |
KR20220091578A (ko) | 메모리 서브시스템에 대한 암호화 키의 위임 | |
US11444780B2 (en) | Secure replaceable verification key architecture in a memory sub-system | |
US20230185483A1 (en) | Solid State Drives with Hardware Accelerators for Proof of Space Computations | |
US20230032885A1 (en) | Mechanism to Support Writing Files Into a File System Mounted in a Secure Memory Device | |
US20230057638A1 (en) | Session Access to Files in a File System Mounted in a Secure Memory Device | |
CN115391844A (zh) | 安全密钥存储装置 | |
US11698970B2 (en) | Double wrapping for verification | |
KR20220128394A (ko) | 다인자 인증 가능 메모리 서브시스템 | |
WO2022155048A1 (en) | Server system to control memory devices over computer networks | |
CN114764504A (zh) | 经由计算机网络对存储器装置的控制的批次转移 | |
US20220382916A1 (en) | Vendor Independent Facilities for Applications to Access a Secure Memory Device | |
US20230057004A1 (en) | Secure Collection of Diagnostics Data about Integrated Circuit Memory Cells | |
CN117150496A (zh) | 装置标识符组合引擎3层架构 |
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 |