CN117171824A - 具有安全证书认证的写保护功能 - Google Patents

具有安全证书认证的写保护功能 Download PDF

Info

Publication number
CN117171824A
CN117171824A CN202310655257.XA CN202310655257A CN117171824A CN 117171824 A CN117171824 A CN 117171824A CN 202310655257 A CN202310655257 A CN 202310655257A CN 117171824 A CN117171824 A CN 117171824A
Authority
CN
China
Prior art keywords
entity
signature
determining
firmware
memory
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
CN202310655257.XA
Other languages
English (en)
Inventor
S·A·帕特尔
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.)
Renesas Electronics America Inc
Original Assignee
Renesas Electronics America 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
Priority claimed from US18/066,433 external-priority patent/US20230394160A1/en
Application filed by Renesas Electronics America Inc filed Critical Renesas Electronics America Inc
Publication of CN117171824A publication Critical patent/CN117171824A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/3263Cryptographic 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/3247Cryptographic 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本公开涉及一种具有安全证书认证的写保护功能。在一个实施例中,公开了一种装置,其包括存储器插槽,存储器插槽包括与实体相对应的证书链和存储器块。存储器块已启用保护。该装置包括处理设备。处理设备被配置为从实体的计算设备接收用于清除针对存储器块的保护的请求消息。该请求消息包括至少部分地基于实体的私钥而生成的签名。处理设备被配置为:至少部分地基于证书链来确定与实体相对应的公钥,至少部分地基于公钥来确定签名有效,确定针对存储器块的保护对应于证书链并清除针对存储器块的保护。

Description

具有安全证书认证的写保护功能
相关申请的交叉引用
本申请要求2022年6月3日提交的美国临时申请第63/348,783号的权益,其全部内容通过引用并入本文。
技术领域
本公开涉及数据保护。更具体地,本公开在一些实施例中涉及使用安全证书认证的数据的读写保护。
背景技术
关于写保护,存储器模块中的一些非易失性存储器块,诸如例如双列直插式存储器模块(DIMM)或动态随机存取存储器(DRAM),在被明确清除之前被写保护。在一些情况下,例如,某些数据块被保留以供参与存储器模块生产的各种实体使用,各种实体包括例如存储器模块制造商、芯片制造商、系统环境制造商或其他实体。
一旦为特定块设置了写保护,通常不能在没有从服务中移除存储器模块的情况下清除写保护,因为修改写保护功能或写保护块内容通常需要建立可能存在于测试环境中——但在正常使用期间通常不可用——的特定连接。在正常操作系统环境中以安全方式管理写保护和对写保护块的清除或重写可能具有挑战性。
发明内容
在一个实施例中,公开了一种装置,其包括:存储器插槽,该存储器插槽包括与实体相对应的证书链;以及存储器块。存储器块已启用保护。该装置还包括耦合到存储器的至少一个处理设备。该至少一个处理设备被配置为从实体的计算设备接收用于清除针对存储器块的保护的请求消息。该请求消息包括至少部分地基于实体的私钥而生成的签名。该至少一个处理设备被配置为:至少部分地基于证书链来确定与实体相对应的公钥,至少部分地基于公钥来确定签名有效,确定针对存储器块的保护对应于证书链,并且至少部分地基于确定签名有效并且针对存储器块的保护对应于证书链来清除针对存储器块的保护。
在一些实施例中,至少一个处理设备还被配置为从实体的计算设备接收用于使证书链作废的请求消息。该请求消息包括至少部分地基于实体的私钥而生成的签名。至少一个处理设备还被配置为:至少部分地基于证书链来确定与实体相对应的公钥,至少部分地基于公钥来确定签名有效,并且至少部分地基于确定签名有效来使证书链作废。
在另一个实施例中,公开了一种装置,其包括:存储器插槽,该存储器插槽包括与实体相对应的证书链;以及耦合到存储器的至少一个处理设备。该至少一个处理设备被配置为接收用于更新装置的固件的请求消息。该请求消息包括至少部分地基于实体的私钥而生成的签名。该至少一个处理设备被配置为:至少部分地基于证书链来确定与实体相对应的公钥,至少部分地基于公钥来确定签名有效,并且至少部分地基于确定签名有效来执行固件更新操作。
在另一个实施例中,公开了一种由包括硬件的至少一个处理设备实现的方法。该方法包括从实体的计算设备接收用于清除针对装置的存储器块的保护的请求消息。该请求消息包括至少部分地基于实体的私钥而生成的签名。该方法还包括至少部分地基于安装在该装置的存储器插槽中的证书链来确定与实体相对应的公钥。证书链对应于实体。该方法还包括:至少部分地基于公钥来确定签名有效,确定针对存储器块的保护对应于证书链,以及至少部分地基于确定签名有效并且针对存储器块的保护对应于证书链来清除针对存储器块的保护。
在一些实施例中,该方法还包括从实体的计算设备接收用于使证书链作废的请求消息。该请求消息包括至少部分地基于实体的私钥而生成的签名。该方法还包括:至少部分地基于证书链来确定与实体相对应的公钥,至少部分地基于公钥来确定签名有效,并且至少部分地基于确定签名有效来使证书链作废。
前述发明内容仅是说明性的,并不旨在以任何方式进行限制。除了上述说明性方面、实施例和特征之外,进一步的方面、实施例和特征通过参考附图和以下详细描述而将变得显而易见。在附图中,相同的附图标记指示相同或功能相似的元件。
附图说明
图1是根据实施例的示例存储器系统的图。
图2是根据实施例的图1的存储器系统的示例串行存在检测(SPD)集线器的图。
图3是根据实施例的图2的示例SPD集线器的框图。
图4是根据实施例的图2的SPD集线器的示例存储器块的框图。
图5是根据实施例的图2的SPD集线器的示例读写保护数据结构的框图。
图6是根据实施例的被配置用于存储证书链的图2的SPD集线器的示例存储器插槽的框图。
图7是根据实施例的存储在图6的存储器插槽之一中的示例证书链的框图。
图8是根据实施例的存储在图6的存储器插槽之一中的另一个示例证书链的框图。
图9是根据实施例的存储在图6的存储器插槽之一中的另一个示例证书链的框图。
图10是根据实施例的示例请求消息格式的图。
图11是根据实施例的示例响应消息格式的图。
图12是根据实施例的用于设置和清除图2的SPD集线器的块的写保护的示例过程的流程图。
图13是根据实施例的用于设置和清除图2的SPD集线器的块的写保护的另一个示例过程的流程图。
图14是根据实施例的用于使图2的SPD集线器的证书链作废的示例过程的流程图。
图15是根据实施例的用于更新图2的SPD集线器的固件的示例过程的流程图。
具体实施方式
图1和图2图示了信息处理系统10的示例实施例,诸如包括存储器模块20、连接器70、存储器控制器80和实体85的存储器系统15。虽然在本文中被描述和图示为具有特定类型、布置和数量的组件,但是在其他实施例中,信息处理系统10可以包括任何其他类型、布置或数量的组件。
参考图1,在一个示例实施例中,存储系统15包括存储器模块20,该存储器模块20包括双列直插式存储器模块(DIMM)、动态随机存取存储器(DRAM)模块或任何其他存储器模块。在一些实施例中,存储器模块20可以被实现为双倍数据速率(DDR)RAM模块。在一些实施例中,存储器模块20可以被实现为DDR第五代(DDR5)同步动态随机存取存储器(SDRAM)模块或任何其他代的DDR模块。在一个示例中,所公开的实施例可以包括无缓冲双列直插式存储器模块(UDIMM)。例如,对于笔记本电脑,所公开的实施例可以包括小型双列直插式存储器模块(SODIMM),诸如例如DDR5 SODIMM。在另一个示例中,所公开的实施例可以包括寄存双列直插式存储器模块(RDIMM)。虽然存储器模块20在本文中被描述和图示为具有特定类型、布置和数量的组件,但是在其他实施例中,存储器模块20可以包括任何其他类型、布置或数量的组件。
如图1中所示,示例存储器系统15包括存储器模块20,该存储器模块20包括数据缓冲器30、存储器设备40、寄存时钟驱动器(RCD)50、电力管理集成电路(PMIC)60、串行存在检测(SPD)集线器65、连接器70、温度传感器75和任何其他块、电路、引脚、连接器、迹线或存储器模块中常见的其他组件。虽然存储器模块20在本文中被描述为包括特定组件,但是存储器模块20还可以或可备选地包括在存储器模块20中常见的任何其他组件。
在一些实施例中,数据缓冲器30和存储器设备40包括SDRAM设备、芯片或模块。在一些实施例中,数据缓冲器30和存储器设备40还包括或可备选地包括任何其他类型的存储设备,诸如例如SRAM、DRAM、MROM、PROM、EPROM和EEPROM。
PMIC 60被配置为执行存储器模块20的电力管理。例如,PMIC 60可以被配置为放大或缩小电压、执行DC-DC转换或执行其他类似的电力管理操作。在一些实施例中,PMIC 60可以包括低压降稳压器(LDO)、诸如例如降压或升压转换器之类的DC-DC转换器、脉冲频率调制(PFM)、脉冲宽度调制(PWM)、功率场效应晶体管(FET)、实时时钟(RTC)或者在PMIC中通常可以找到的任何其他电路。
连接器70可以包括例如引脚、迹线或其他连接,其被配置为将存储器模块20连接到计算系统的其他组件,诸如例如存储器控制器80、母板或其他组件。在一些实施例中,连接器70可以包括例如288引脚配置或任何其他引脚配置。
在一些实施例中,存储器模块20包括连接器70。在其他实施例中,母板、存储器控制器80或计算设备的任何其他组件包括连接器70。在另一个实施例中,连接器70中的一个或多个可以是存储器模块20并且连接器70中的一个或多个可以是母板、存储器控制器80或计算设备的其他组件的一部分。
存储器模块20可以例如通过连接器70而连接到母板、存储器控制器80或计算设备的其他组件,以在计算设备的组件和存储器模块20之间传送数据。例如,在实现UDIMM的实施例中,连接器70可以包括64位总线、72位总线或任何其他位值总线。
存储器模块20被示为连接到计算设备的存储器控制器80。在示例实施例中,存储器控制器80可以被实现为计算设备的计算机母板或主板的组件,例如,在母板的北桥上。在另一个示例中,存储器控制器80可以被实现为计算设备的微处理器的组件。在又一个示例中,存储器控制器80可以被实现为计算设备的中央处理单元(CPU)的组件。在其他实施例中,存储器控制器80可以被实现为计算设备的任何其他组件的一部分。
在一些实施例中,存储器模块20被实现为DDR5 SDRAM存储器模块。作为示例,取决于存储器模块,存储器模块20可以包括128吉字节(GB)、512GB、1太字节(TB)或更高的存储器模块密度。存储器模块20可以以大约1.2至大约3.2吉赫兹(GHz)的频率和大约3.2GT/s至大约4.6GT/s的数据速率范围并且在一些情况下高达大约8GT/s或更打的数据速率来操作。在一些实施例中,存储器模块20可以备选地包括更小或更大的密度,以更低或更高的频率来操作以及以更低或更高的数据速率来操作。
继续参考图1,存储器模块20被示为与存储器控制器80通信。存储器控制器80被示为电路90的一部分,诸如例如母板、主板或与存储器模块20通信的计算设备的其他组件。存储器控制器80被配置为生成各种信号,包括时钟信号(CLK)、控制信号(例如,ADDR和CMD)和命令信号。CLK、ADDR和CMD信号中的一个或多个可以例如经由一个或多个总线23而被提供给RCD 50。
来自存储器控制器80的信号也可以经由总线24从存储器控制器80被传输到PMIC60,总线24在本文中也被称为主机接口总线24。在一些实施例中,主机接口总线24是双向的并且被配置为在PMIC 60和存储器控制器80或存储器模块20的其它组件之间传送命令或其它数据。主机接口总线24可以实现I2C协议、I3C协议或任何其它协议。
来自存储器控制器80的信号也可以经由总线66从存储器控制器80被传输到SPD集线器65,总线66在本文中也被称为主机接口总线66。在一些实施例中,主机接口总线66是双向的并且被配置为在SPD集线器65和存储器控制器80或存储器模块20的其他组件之间传送命令或其他数据。主机接口总线66可以实现I2C协议、I3C协议、I2C和I3C协议的组合或任何其他协议或协议的组合。
数据总线72可以连接在存储器控制器80和数据缓冲器30之间,并且可以包括在存储器控制器80和数据缓冲器30之间的连接器70,例如迹线、引脚和其他连接。在一些实施例中,存储器控制器80也可以或备选地经由数据总线72和连接器70而与存储器设备40连接。
RCD 50被配置为与存储器控制器80、数据缓冲器30、存储器通道(未示出)、PMIC60、SPD集线器65和温度传感器75通信。RCD 50被配置为解码从存储器控制器80接收到的指令,例如控制字。例如,RCD 50可以被配置为接收和解码寄存器命令字(RCW)。在另一个示例中,RCD 50可以被配置为接收和解码缓冲器控制字(BCW)。RCD 50被配置为在RCD 50和存储器控制器80之间训练数据缓冲器30、存储器设备40以及命令和总线23中的一个或多个。例如,RCW可以从存储器控制器80流向RCD 50并且被用来配置RCD 50。
在一些实施例中,RCD 50可以实现命令/地址寄存器,例如,32位1:2命令/地址寄存器。RCD 50可以支持全速总线,例如RCD 50和数据缓冲器30之间的单向缓冲器通信(BCOM)总线。在一些实施例中,RCD 50可以实现如下中的一个或多个:自动阻抗校准、命令/地址奇偶校验、控制寄存器RCW回读、诸如例如1MHz内部集成电路(I2C)总线和12.5MHz内部集成电路(I3C)总线之类的串行总线。RCD 50的输入可以是使用外部和内部电压中的一个或多个的伪差分。RCD 50的时钟输出、命令/地址输出、控制输出和数据缓冲器控制输出可以成组地被启用并以不同强度被独立地驱动。
RCD 50被配置为从存储器控制器80接收CLK、ADDR和CMD信号或其他信号,诸如例如RCW和BCW,并利用各种数字逻辑组件基于CLK、ADDR和CMD信号来生成对应的输出信号。例如,RCD 50被配置为基于接收到的CLK、ADDR和CMD信号来生成对应的信号,诸如例如CLK'、ADDR'和CMD'信号。CLK'、ADDR'和CMD'信号可以被呈现给存储器设备40。例如,CLK'信号可以在公共总线25上从RCD 50被传输到存储器设备40并且ADDR'和CMD'信号可以在公共总线26上从RCD 50被传输到存储器设备40。RCD 50还被配置为生成一个或多个数据缓冲器控制(DBC)信号,该信号例如在公共总线27上被传输到数据缓冲器30,公共总线27在本文中也被称为数据缓冲器控制总线27。
数据缓冲器30被配置为从数据缓冲器控制总线27接收命令和数据并且生成数据、从数据总线72接收数据或向数据总线72传输数据。每个数据路径还包括其数据缓冲器30和存储器设备40之间的总线28,其被配置为在其数据缓冲器30和存储器设备40之间携带数据。
数据缓冲器30被配置为缓冲总线72和28上的数据以用于写操作,例如从存储器控制器80到对应的存储器通道的数据传送,以及读操作,例如从对应的存储器通道到存储器控制器80的数据传送。
实体85可以包括SPD集线器组件提供商、DIMM提供商、系统提供商、数据中心提供商、组件制造商或服务或生产存储器模块20的一些或所有组件的任何其他实体。在说明性实施例中,实体85包括多个实体85,其例如可以是多个提供商、服务商或制造商。在一些实施例中,实体85包括一个或多个计算设备,该计算设备包括被配置为向存储器控制器80提供消息或命令的处理器和存储器。
现在参考图2和图3,将更详细地描述SPD集线器65。在说明性实施例中,SPD集线器65包括具有集线器、认证、安全功能的DDR5增强型串行存在检测EEPROM以及被用于存储器模块应用的集成温度传感器,有时也被称为增强型SPD(ESPD)集线器或安全集线器。SPD集线器65提供本地总线与控制器总线的隔离。在其他实施例中,SPD集线器65可以包括与其他类型的存储器模块20或其他类型的设备一起使用的功能性。
在说明性实施例中,如图2中所示,SPD集线器65包括一个9引脚热增强型DFN封装,其包括LSDA引脚(1)、HSDA引脚(2)、HSCL引脚(3)、LSCL引脚(4)、VDDSPD引脚(5)、GND引脚(6)、VDDIO引脚(7)、HSA引脚(8)和GND/Thermal Pad热焊盘(9)。
LSDA引脚(1)是本地总线输入/输出(IO)引脚,其被配置用于发送和接收I2C/I3C数据。HSDA引脚(2)是主机总线IO引脚,其被配置用于发送和接收I2C/I3C基本数据。HSCL引脚(3)是主机总线输入引脚,其被配置用于接收I2C/I3C基本输入时钟。LSCL引脚(4)是本地总线输出引脚,其被配置用于发送I2C/I3C基本输出时钟。VDDSPD引脚(5)是被配置为接收输入电力供应的电力引脚,例如,在一些实施例中为1.8V输入电力供应。GND引脚(6),也被称为VSS,是被配置为接地的接地引脚。VDDIO引脚(7),也被称为VIO,是被配置为接收输入电力供应的电力引脚,例如,在一些实施例中为1.1V输入电力供应。HSA引脚(8)是主机总线输入引脚,其被配置用于接收I2C/I3C基本地址。GND/Thermal Pad(9)是连接到接地平面的接地引脚。虽然上面将引脚1-9描述为具有特定功能,但是引脚1-9中的任何一个也可以或备选地执行其他功能。在一些实施例中,更多或更少数量的引脚也可以被用于SPD集线器65。
参考图3,SPD集线器65包括稳压器,诸如例如低压降稳压器(LDO)302、温度传感器304、包括主机端口306和本地端口308的I2C/I3C接口、诸如例如EEPROM之类的非易失性存储器310和HSA感测电路312。SPD集线器65还包括认证块314,作为认证过程的一部分,认证块314被系统控制器使用以进行质询和质询响应,如下面所讨论的。
HSA感测电路208被配置为确定HSA引脚(8)上的电阻值,SPD集线器65利用该电阻值来确定对应的3位主机标识符(HID)地址。例如,10.0KΩ的电阻可以对应于000的HID地址,15.4KΩ的电阻可以对应于001的HID地址等。在一些实施例中,SPD集线器65可以被置于离线模式并且写保护可以通过将HSA引脚(8)接地而被覆盖。
参考图4和图5,SPD集线器65的非易失性存储器310包括2KB的非易失性存储器300,其被布置为每个块为64字节的32个块以供最终使用,64字节的每个块可选地经由软件命令被读或写保护。虽然被描述为包括以每个块为64字节的32个块来布置的2KB非易失性存储器,但是在其他实施例中,可以备选地利用以任何其他方式来布置的任何其他数量的非易失性存储器。例如,在一些实施例中,SPD集线器65被配置为通过在诸如例如位图或其他数据结构之类的数据结构310中设置对应的位来为存储器300的每个块分开地设置写保护,其中数据310中的每位对应于存储器300的块之一。例如,数据结构310中的位可以被设置为1以指示对应的块被写保护并且可以被设置为0以指示对应的块未被写保护,反之亦然。在正常运行时间操作期间,数据结构310中的任何位例如可以被设置为1,以启用针对对应块的写保护。在一些实施例中,除非在下面的说明性实施例中被描述,否则数据结构310的位可以不被重置或清除,例如被设置为0,以移除写保护。
在说明性实施例中,现在将描述用于移除SPD集线器65的非易失性存储器300的写保护的HSA引脚方法。
在也在上面提及的HSA引脚方法中,SPD集线器65使用HSA引脚(8)来确定位图310中的写保护位是否可以被清除或覆盖。如上面所提及的,在正常运行时间操作期间,HSA引脚(8)经由电阻值接地以选择HID。当SPD集线器65在上电期间检测到HSA引脚(8)上的电阻值时,SPD集线器65禁止清除或覆盖位图310中的写保护位。一旦被写保护,针对每个块的写保护在诸如测试台之类的离线编程环境中可以例如通过将HSA引脚(8)连接到地而被覆盖。当SPD集线器65在上电期间检测到HSA引脚(8)接地时,不再禁止清除或覆盖位图310中的位,并且可以例如通过将位图310的对应位设置为0来清除或覆盖针对存储器300的块的写保护。在一些情况下,单独使用HSA引脚方法可能存在漏洞。例如,即使在正常运行时间操作期间禁止通过使用HSA引脚(8)来移除或覆盖写保护,写保护也可能不安全,因为例如在测试台或离线环境中,一旦HSA引脚(8)连接到地,则任何用户都可以在SPD集线器65上电之后修改存储器300的块。
在说明性实施例中,现在将描述用于移除SPD集线器65的非易失性存储器300的写保护的安全协议方法。在一些实施例中,安全协议方法可以与HSA引脚方法一起使用或与之并行使用。在一些实施例中,可以在不启用HSA引脚方法的情况下使用安全协议方法,例如,写保护可以不再通过在离线或测试台环境中将HSA引脚(8)接地并为SPD集线器65上电而被移除。在一些实施例中,HSA引脚方法也可能需要安全协议方法来实现覆盖或清除对应的块。
安全协议方法是一种增强的安全方法,它使用基于安装在SPD集线器65中的证书的安全协议来管理和清除存储器块300的读或写保护。安全协议方法使得SPD集线器65的授权用户能够在正常运行时间操作期间以安全的方式为它们拥有所有权的块设置和清除读或写保护。在安全协议方法中,SPD集线器65无需上电,HSA引脚直接连接到地无需任何电阻器即可清除读或写保护并修改存储器300的内容。此外,安全协议方法保持读取或对其他实体安全所设置的块进行写保护。例如,一旦实体85设置了存储器300的一个或多个块的读或写保护,在正常运行时间操作期间只有那个实体85可以清除那些相同块的读或写保护。在正常运行时间操作期间,没有其他实体85可以清除那些块的读或写保护。
作为安全协议方法的一部分,参考图6,SPD集线器65还包括被配置为容纳证书链的16KB非易失性不可变存储装置320和被配置为存储与每个证书链相关联的散列摘要值和叶私钥的附加的1KB非易失性不可变存储装置322。存储装置320和322是对上述2KB存储器300的补充。在说明性实施例中,存储装置320和322被用于安全协议方法的认证功能并且可能不可由最终用户使用。在其他实施例中,最终用户可能能够访问一些或所有非易失性不可变存储装置。
如图6中所示,存储装置320包括用于存储证书链的八个插槽3240、3241、....3246和3247,在本文中被统称为(多个)插槽324。在一些实施例中,每个插槽324对应于并被配置为存储单个相应的证书链3260、3261、....3266和3267以及对应的摘要3280、3281、....3286和3287,在本文中分别被统称为(多个)证书链326和(多个)摘要328。虽然被描述为具有八个插槽,但是用于存储证书链的任何其他数量的插槽可以备选地由SPD集线器65实现。
在一些实施例中,每个证书链可以包括两个证书、三个证书、四个证书、五个证书或任何其他数量的证书。SPD集线器65被配置为将其自己的证书链信息存储在插槽3240、3241、....3246和3247之一中,例如,在一些实施例中,在插槽3240中,其中每个证书链只被允许被写入或加载一次。例如,一旦证书链被加载到对应的插槽324中,它可能就是不可变的,例如,SPD集线器65不允许重写或修改证书链。
在一些实施例中,SPD集线器65将其证书链存储在插槽3240中,并将剩余的七个插槽324留给其他证书链。例如,在一些实施例中,在剩余的七个插槽324中,一个插槽324可以由DIMM提供商利用,一个插槽324可以由系统提供商利用,一个插槽324可以由数据中心提供商利用,剩余的插槽324可用于其他目的。例如,剩余的插槽324可以在将来被用于DIMM证书链或系统证书链被吊销并且需要安装另一个证书链的情形中。
在一些实施例中,证书链326中的每个证书的最大尺寸为800字节。在其他实施例中,可以备选地利用证书的其他最大尺寸。在给定的证书链326中,可以使用的最大存储是证书链326中的证书数量的函数。例如,在一些实施例中,没有为任何证书链326分配固定量的存储空间。相反,对于任何给定的证书链326,每个证书可以小于800字节并且证书链326可以包括任何数量的证书。如果一个证书链326具有更小的证书尺寸或更少的证书,则更多的存储空间可用于剩余的证书链326。
除了16KB的总证书存储空间之外,SPD集线器65还包括用于每个插槽324用于存储整个证书链326的摘要328的64字节的不可变存储。此外,SPD集线器65包括用于存储叶证书私钥的64字节的不可变存储。不管插槽324如何,叶证书密钥对在所有叶证书中是通用的。在一些实施例中,SPD集线器65中的总不可变存储空间是16KB+8*64B+64B。在其他实施例中,可以备选地利用不同量的存储空间。在说明性实施例中,允许SPD集线器65外部的用户对存储摘要328的存储空间的读取访问,而不允许SPD集线器65外部的用户对存储叶证书私钥的64字节的存储空间的读取访问。例如,叶证书私钥保持私有并且只能由SPD集线器65的内部逻辑访问。
现在参考图7,现在将描述例如由SPD集线器组件提供商存储在插槽3240中的示例证书链3260。在此实施例中,证书链3260包括根证书330、中间证书332、解密证书334和叶证书336。
根证书330由可信证书颁发机构(CA)提供。在一些实施例中,例如,CA可以包括外部第三方CA。例如,根证书330可以由第三方CA提供并进行签名。在其他实施例中,根证书330可以由另一个实体85提供,例如SPD集线器组件提供商或另一个实体。根证书330向DIMM和系统提供商提供标识。在一些实施例中,根证书330的CA名称及其公钥由SPD集线器组件提供商预先提供给DIMM和系统提供商。
平台信任根(RoT)安全处理器(例如集成在底板管理控制器(BMC)或另一个处理设备中)或者平台固件/BIOS维护包括用于SPD集线器组件提供商的自证实CA和与每个CA相关联的公钥的CA列表。根证书330具有唯一的序列号。对于给定的SPD集线器组件提供商,根证书330在一些实施例中可能总是相同的,例如,CA的公钥和序列号对于所有SPD集线器组件可能是相同的。如果SPD集线器65通过设备版本,则它也使用相同的根证书330。
与根证书330相关联,CA生成被称为私钥l/公钥l的唯一密钥对。私钥l对CA保持私有。在说明性实施例中,私钥1不被存储在SPD集线器65内。私钥1被用来对证书链3260中的中间证书332进行签名。公钥1在根证书330上被通告并且由存储器控制器80使用来核实中间证书332和根证书330的签名。根证书330的发行者字段是CA,并且根证书330的主题字段是SPD集线器组件提供商。
中间证书332具有唯一的序列号。对于给定的SPD集线器组件提供商,中间证书332对于设备版本内的所有SPD集线器组件可能是相同的,包括公钥和序列号。如果SPD集线器65通过设备版本,则它可以使用相同或不同的中间证书。
与中间证书332相关联,SPD集线器组件提供商生成被称为私钥2/公钥2的唯一密钥对。私钥2对SPD集线器组件提供商保持私有,并且在说明性实施例中不被存储在SPD集线器65内。公钥2也不被存储在SPD集线器65中。在说明性实施例中,私钥2/公钥2对对于设备版本内的每个SPD集线器65是相同的,并且对于不同设备版本可能是相同或不同的。私钥2被用来对证书链3260中的解密证书334和叶证书336进行签名。
公钥2在中间证书332上被通告,并由存储器控制器80使用来核实解密证书334和叶证书336的签名。中间证书332由根证书330的CA私钥1来进行签名。中间证书332的发行者字段是SPD集线器组件提供商。中间证书332的主题字段携带产品和设备特定标识。
解密证书334在一些实施例中是给定SPD集线器组件提供商的所有SPD集线器组件的公共证书并且是唯一证书。解密证书334被利用来向SPD集线器65指示SPD集线器65应该将公钥2用于某些功能消息,诸如已签名的密钥管理或固件管理。
与解密证书334相关联,SPD集线器组件提供商生成被称为私钥4/公钥4的唯一密钥对。私钥4对SPD集线器组件提供商保持私有。在说明性实施例中,私钥4不被存储在SPD集线器65内。
私钥4被存储器控制器80用来对功能特定消息进行签名。公钥4在解密证书334上被通告并且SPD集线器65从解密证书334中提取公钥4以在执行消息之前对签名进行解密并验证消息。解密证书334由中间证书332的私钥2来进行签名。解密证书334的发行者字段是SPD集线器组件提供商。在说明性实施例中,解密证书334的主题字段被标记为解密功能。
叶证书336是SPD集线器组件提供商产生的针对每个SPD集线器65的唯一证书。与根证书330和中间证书332不同,叶证书336包括对于每个SPD集线器65是唯一的序列号。叶证书336的序列号由SPD集线器组件提供商生成。在一些实施例中,通过按照从40位SPD集线器组件序列号的第一字节到第五字节的顺序执行SPD集线器65的序列号340的摘要342来生成叶证书336的序列号。
与叶证书336相关联,SPD集线器65生成被称为私钥3/公钥3的唯一密钥对。私钥3对SPD集线器65保持私有,并被存储在SPD集线器65内。公钥3在叶证书336上被通告。这个私钥3/公钥3对由给定SPD集线器65的每个插槽中的所有叶证书使用,并且对每个SPD集线器65都是唯一的。叶证书336由中间证书332的私钥2来进行签名。作为所有插槽324的认证过程的一部分,私钥3/公钥3对被DIMM和系统提供商用于质询和质询响应。在说明性实施例中,叶证书336的发行者字段是SPD集线器组件提供商并且叶证书336的主题字段不携带任何信息。
证书链3260的摘要338由SPD集线器65生成并存储在插槽3240的摘要328中。叶证书336的私钥3被存储在存储装置322中并且只能由SPD集线器65内部地访问。
现在参考图8,现在将描述可以例如由DIMM提供商存储在插槽3241中的示例证书链3261。作为示例,在SPD集线器组件提供商将证书链3260安装在插槽3240中之后,集线器65可以由SPD集线器组件提供商SPD提供给DIMM提供商。在此实施例中,证书链3261包括根证书350、中间证书352、属性证书354、解密证书356和叶证书358。
根证书350由CA提供。在一些实施例中,DIMM提供商可以充当CA,其中根证书350由DIMM提供商自证实并进行签名。在其他实施例中,DIMM提供商可以利用外部第三方CA,其中根证书350由第三方CA提供并进行签名。
DIMM提供商的根证书350向系统提供商提供DIMM标识。在一些实施例中,根证书350的CA名称及其公钥由DIMM提供商预先提供给系统提供商。
在一些实施例中,平台RoT安全处理器或平台固件/BIOS可以维护CA的列表,包括用于DIMM组件提供商的自证实CA和与每个CA相关联的公钥。
在说明性实施例中,根证书350包括唯一的序列号,其中在一些实施例中,对于给定的DIMM提供商,根证书对于所有DIMM组件和各种DIMM配置(例如速度、等级、密度等)是相同的,例如CA的公钥、序列号等。在一些实施例中,如果DIMM组件通过PCB版本,则它也可以使用相同的根证书350。
与根证书350相关联,CA生成被称为私钥5/公钥5的唯一密钥对。在一些实施例中,私钥5对CA(例如DIMM提供商)保持私有。在说明性实施例中,私钥5不被存储在SPD集线器65内。在一些实施例中,如果DIMM提供商充当CA,则私钥5可能仅在安全设计/ATE(自动测试装备)环境中是已知的。私钥5也可被利用来对中间证书352进行签名。公钥5在根证书350上被通告并且由存储器控制器80使用来核实根证书350和中间证书352的签名。
在说明性实施例中,中间证书352包括唯一的序列号。对于给定的DIMM提供商,中间证书352对于所有DIMM组件可能是相同的。如果DIMM提供商通过设备版本,则它可以使用相同或不同的中间证书352。
与中间证书352相关联,DIMM提供商生成被称为私钥6/公钥6的唯一密钥对。私钥6可以对DIMM提供商保持私有,并且在说明性实施例中不被存储在SPD集线器65内。在一些实施例中,公钥6也不被存储在SPD集线器组件内。私钥6被用来对证书链3261中的属性证书354、解密证书356和叶证书358进行签名。
公钥6在中间证书352上被通告,并由存储器控制器80使用来核实属性证书354、解密证书356和叶证书358的签名。中间证书352由根证书350的CA私钥5来进行签名。在说明性实施例中,中间证书352的发行者字段是DIMM提供商并且中间证书352的主题字段携带组件特定标识。
在一些实施例中,属性证书354是DIMM提供商提供的每个DIMM组件的唯一证书。属性证书354包括对于每个DIMM组件是唯一的并且由DIMM提供商生成的序列号。在说明性实施例中,属性证书354不包括私钥/公钥对。属性证书354由中间证书352的私钥6来进行签名。属性证书354的发行者字段是DIMM提供商,并且属性证书354的主题字段是DIMM组件清单。
在说明性实施例中,解密证书356对于由给定DIMM提供商提供的所有DIMM组件是公共的并且是唯一证书。解密证书356的一个目的是向SPD集线器65指示它应该将其自己的公钥用于某些功能消息,诸如已签名的写保护或作废证书链。备选地,解密证书356的另一个目的是向SPD集线器65指示它应该将其自己的公钥用于其他功能消息,诸如已签名的读保护。
与解密证书356相关联,DIMM提供商生成被称为私钥8/公钥8的唯一密钥对。在说明性实施例中,私钥8对DIMM提供商保持私有并且不被存储在SPD集线器65内。私钥8被存储器控制器80使用来对功能特定消息进行签名。在执行消息之前,SPD集线器65利用所提取的公钥8来对签名进行解密以验证消息。公钥8在解密证书356上被通告,并且SPD集线器65从解密证书356中提取公钥8。解密证书356由中间证书352的私钥6来进行签名。
在说明性实施例中,解密证书356的发行者字段是DIMM提供商并且解密证书356的主题字段被标记为解密功能。
叶证书358是DIMM提供商提供的每个DIMM组件的唯一证书。叶证书358包括对于每个DIMM组件是唯一的序列号。在说明性实施例中,作为证书链3261的一部分而被存储在插槽3241中的叶证书358使用与插槽3240的证书链3260中的叶证书336相同的私钥3/公钥3对和序列号。作为包括插槽3241在内的所有插槽324的认证过程的一部分,私钥3/公钥3对被系统控制器用于质询和质询响应。DIMM提供商在其认证SPD集线器之后从插槽3240中提取叶证书336的序列号65和公钥3,然后为插槽3241形成叶证书358。叶证书358由中间证书352的私钥6来进行签名。在说明性实施例中,叶证书358的发行者字段是DIMM组件提供商并且叶证书358的主题字段不携带任何信息。
现在参考图9,现在将描述可以例如由系统提供商存储在另一个插槽324中的示例证书链3262。系统提供商和最终用户可以各自可选地创建和安装他们自己的证书链326。例如,系统提供商可以将证书链3262加载到可用插槽324中。类似地,最终用户或其他实体可以将证书链加载到剩余的插槽324中。证书链中的证书的数量可能是系统提供商特定的。在一些实施例中,例如,证书链3262包括根证书360、中间证书362、解密证书364和叶证书366。在说明性实施例中,被用来对证书链3262中的证书的私钥进行签名可以保持私有并且不被加载或存储在SPD集线器65中。
根证书360由CA提供。在一些实施例中,根证书360可以由充当CA的系统提供商提供,其中根证书360由系统提供商自证实并进行签名。在其他实施例中,系统提供商可以利用外部第三方CA,其中根证书360由第三方CA提供并进行签名。
根证书360向系统提供商提供DIMM标识。根证书360的CA名称及其公钥可能是系统提供商预先已知的。在一些实施例中,根证书360具有唯一的序列号。与根证书360相关联,CA生成被称为私钥9/公钥9的唯一密钥对。在一些实施例中,私钥9对CA保持私有并且不被存储在SPD集线器65内。在一些实施例中,如果系统提供商充当CA,则私钥9可以被存储在安全设计/ATE环境中。
私钥9被用来对证书链3262中的中间证书362进行签名。公钥9在根证书360上被通告并且被存储器控制器80使用来核实根证书360和中间证书362的签名。根证书360的发行者字段证书360是CA,并且根证书360的的主题字段是系统提供商。如果系统提供商充当CA,则根证书360的发行者和主题字段都可以是系统提供商本身。
在一些实施例中,中间证书362具有唯一的序列号。对于给定的系统提供商,中间证书362对于所有已安装的DIMM组件都是相同的,例如公钥和序列号。与中间证书362相关联,系统提供商生成被称为私钥10/公钥10的唯一密钥对。在一些实施例中,私钥10对系统提供商保持私有并且不被存储在SPD集线器65内。在一些实施例中,公钥10也不被存储在SPD集线器65中。
私钥10被用来对证书链3262中的解密证书364和叶证书366进行签名。公钥10在中间证书362上被通告并且由存储器控制器80使用来核实解密证书364和叶证书366的签名。中间证书362由根证书360的私钥9来进行签名。中间证书362的发行者字段是系统提供商,并且中间证书362的主题字段携带组件特定标识。
在说明性实施例中,解密证书364对于由给定系统提供商安装在系统中的所有DIMM组件是公共的并且是唯一证书。解密证书被利用来向SPD集线器65指示SPD集线器65应该将其公钥用于某些功能消息,诸如已签名的写保护或作废证书链。备选地,解密证书可以被用来向SPD集线器65指示SPD集线器65应该将其公钥用于其他功能消息(诸如已签名的读保护)。
与解密证书364相关联,系统提供商生成被称为私钥12/公钥12的唯一密钥对。在一些实施例中,私钥12对系统提供商保持私有,并且不被存储在SPD集线器65内。私钥12被存储器控制器80使用来对功能特定消息进行签名。在执行消息之前,SPD集线器65被配置为利用所提取的公钥12来对签名进行解密以验证消息。公钥12在解密证书364上被通告,并且SPD集线器65被配置为从解密证书364中提取公钥12。解密证书364由中间证书362的私钥10来进行签名。解密证书364的发行者字段是系统提供商,并且解密证书364的主题字段被标记为解密功能。
在说明性实施例中,叶证书366是系统提供商产生的针对每个DIMM组件的唯一证书。叶证书366包括对于每个DIMM组件是唯一的序列号。在一些实施例中,叶证书366使用与插槽3240的叶证书336相同的序列号和私钥3/公钥3对。公钥3在叶证书366上被通告。系统提供商在其认证SPD集线器65时提取公钥3。
作为包括插槽3242在内的所有插槽324的认证过程的一部分,私钥3/公钥3对被系统控制器用于质询和质询响应。系统提供商在其认证SPD集线器65之后从插槽3240中提取叶证书336的序列号和公钥3,然后为插槽3242形成叶证书366。叶证书366由中间证书362的私钥10来进行签名。在说明性实施例中,叶证书366的发行者字段是系统组件提供商并且叶证书366的主题字段不携带任何信息。
虽然示例证书链326在上面被描述为具有特定证书,但是在其他实施例中,其他证书也可以或可备选地作为证书链236的一部分而被存储在插槽3240到3247中。
在一些实施例中,SPD集线器65强制执行存储器300的写保护的以下规则。如果违反规则,则SPD集线器65可以被配置为向存储器控制器80报告错误。在继续进行下一个纠正操作之前存储器控制器80然后可能需要清除错误。例如,存储器300的读保护可以利用相同的技术来保持数据安全,使得没有其他人可以读取它,或者防止访问配置寄存器。
一旦一个实体85设置了块的写保护,其他实体就不再能够设置或修改同一块的写保护。当使用HSA引脚方法设置写保护时,此规则也可能是适用的。例如,一旦用HSA引脚方法或安全协议方法设置了块的写保护,为了另一个实体85将它们自己的写保护设置到同一块,则必须首先通过该方法清除该写保护。在一些实施例中,如果块的写保护是使用HSA引脚方法来设置的,那么只有用HSA引脚直接连接到地的为SPD集线器65供电的HSA引脚方法可以去除针对该块的写保护。类似地,如果块的写保护是使用安全协议方法来设置的,那么只有安全协议方法才能去除针对该块的写保护。以这种方式,可以同时一起使用HSA引脚方法和安全协议方法。当块被写保护时,SPD集线器65将丢弃对受保护块的任何写事务。
作为安全协议方法的一部分,SPD集线器65被配置为从为每个插槽324所安装的证书链326中提取解密证书的公钥,例如证书链3260的公钥4。针对每个插槽324的公钥被SPD集线器65内部地存储,例如存储在存储器300中或存储在另一位置。
现在参考图10和图11,将描述请求消息400和响应消息500的示例格式。请求消息400可以由存储器控制器80提供给SPD集线器65并且后面跟着为请求消息400提供认证的签名。在一些实施例中,每个请求消息400都被进行签名。在一些实施例中,当存储器控制器80传输的请求消息是退出设置/清除写保护模式的请求时,可以对签名进行例外处理。
请求消息400由与证书链326的解密证书相关联的私钥进行签名,证书链326被安装在对应插槽324中,以供实体85请求改变写保护。SPD集线器65通过使用来自该插槽324的证书链326的解密证书的对应公钥来验证签名。在一些实施例中,SPD集线器响应消息不携带签名。
当存储器控制器80在请求消息400中向SPD集线器65传达设置写保护的意图时,SPD集线器65执行数个确定以检查消息准确性和有效性。例如,SPD集线器65可以确定请求消息400是否指示包括有效证书链326的插槽324,SPD集线器65可以确定所请求的插槽324是否包括与实体85相匹配并且与要被修改或清除写保护的所请求的块相对应的证书链326,SPD集线器65可以确定请求消息400是否具有有效签名,或者可以基于接收到的请求消息400做出任何其他确定。作为示例,如果请求消息400由存储控制器80提交并指示与DIMM提供商相关联的块,但是请求与系统提供商或终端的证书链326相对应的插槽324,SPD集线器65可以确定请求消息400中存在不匹配。在说明性实施例中,对签名的验证对于请求消息400可以是显式的,其中,例如,后续请求消息400也可能需要被验证。
如果SPD集线器65确定所有检查成功或有效,则SPD集线器65生成响应消息500。在一些实施例中,为了防止盲目重放攻击,响应消息500包括可以被利用来验证后续请求消息400的唯一随机数。SPD集线器65向存储器控制器80返回包括随机数和当前块状态的响应消息500。SPD集线器65还可以将所生成的随机数暂时存储在其内部存储装置中以供以后比较。在说明性实施例中,每个生成的随机数仅由SPD集线器65使用一次,并且在它已被用来验证从存储器控制器80接收到的后续请求消息之后由SPD集线器65自动清除。SPD集线器65使用随机数来与当存储器控制器80发送包括用于设置或清除写保护的命令在内的后续请求消息400时由存储器控制器80提供的对应的随机数进行比较。在一些实施例中,即使SPD集线器65不使用它,例如当它接收到退出设置/清除写保护模式消息时,这在一些实施例中可能不需要验证,则随机数也被自动清除。
如果一个或多个检查导致错误,则SPD集线器65标注适当的错误,清除随机数并发送错误消息。在一些实施例中,SPD集线器65可能不允许进一步的操作,直到错误标志被存储器控制器80显式地清除。存储器控制器80然后可以提交新的请求消息400并重新验证。
后续请求消息400包括用于设置或清除对应块的写保护的命令并且由对应实体85的私钥进行签名。当SPD集线器65接收到后续请求消息400时,SPD集线器65执行一个或多个检查以确定后续请求消息400的准确性和有效性。例如,SPD集线器65可以确定后续请求消息400是否具有与原始请求消息400相同的信息,例如在参数1和参数2中除了命令之外。作为另一个示例,SPD集线器65可以确定后续请求消息400是否包括用于设置对已被写保护的块的写保护的命令。作为另一个示例,SPD集线器65可以确定后续请求消息400是否包括由SPD集线器65在响应消息500中提供给存储器控制器80的相同随机数。作为另一个示例,SPD集线器65可以确定后续请求消息400是否包括有效签名。SPD集线器65可以单独或组合地利用任何上述检查或附加的或备选的检查来核实后续请求消息400的准确性和有效性。
如果所有检查都成功,则SPD集线器65从其内部临时存储装置中清除随机数,执行命令以将数据写入到适当块的存储器,为块设置写保护,更新任何相关状态寄存器,更新适当的状态寄存器并返回指示成功完成的响应消息500。
如果检查中的一个或多个导致错误,则SPD集线器65标注适当的错误,清除随机数并向存储器控制器80发送错误消息。在一些实施例中,SPD集线器65可能不允许进一步的操作直到错误标志被存储器控制器80显式地清除。
存储器控制器80然后向SPD集线器65发送请求消息,命令SPD集线器65退出设置/清除写保护模式。SPD集线器65返回确认退出的响应消息并且存储器控制器80恢复正常运行时间操作。在一些实施例中,从设置/清除写保护模式退出的请求消息不需要被进行签名和验证。
在一些实施例中,诸如例如SPD集线器提供商、DIMM提供商、系统提供商或任何其他实体之类的实体85可能希望使它们对应的证书链326作废或废除。在一些实施例中,只有在给定插槽324中安装了对应证书链326的实体85可以使该插槽324的证书链326作废。例如,SPD集线器65可以被配置为确保诸如例如SPD集线器组件提供商、DIMM提供商、系统提供商或任何其他实体之类的实体85无法使不属于该实体85的证书链326作废。
在一些实施例中,如果SPD集线器组件证书链326被作废,则叶证书336的相关联的公钥/私钥对也被作废。这意味着如果在其他插槽324中为其他实体安装了其他证书链326,则那些证书链326不会自动被作废但是将不再起作用,因为叶证书私钥/公钥对在所有插槽324中是公共的。如果一个新的SPD集线器组件证书链326被加载到另一个插槽中,例如,除了插槽0之外,则其他证书链也可能需要被重新安装。
在一些实施例中,当SPD集线器65由通过电连接到接地的HSA引脚来供电时,可以随时设置存储器300的块的写保护。
参考图12,将描述用于设置写保护的示例过程。图12的过程包括步骤600到640。
在步骤600处,例如使用请求消息400(图10)的格式,请求设置或清除写保护的实体85生成请求消息。请求消息包括用于进入设置/清除写保护模式的命令。
在步骤602处,实体85计算针对请求消息的摘要328。
在步骤604处,实体85使用其解密私钥至少部分地基于摘要来生成签名。
在步骤605处,实体85将签名附加到请求消息并将包括签名的请求消息发送到存储器控制器80。存储器控制器80将请求消息连同附加的签名一起提供给SPD集线器65。在一些实施例中,请求消息可以包括随机数。
在步骤606处,例如通过使用在插槽中找到的证书链的公钥来验证签名,SPD集线器65检查插槽和签名的有效性。
如果实体85的插槽和签名中的任何一个无效,则SPD集线器65在步骤608处用错误消息向存储器控制器80响应。在一些实施例中,该过程不会继续,直到存储器控制器80或实体85在步骤610处清除错误标志并且该过程然后返回到步骤600。
如果实体85的插槽和签名有效,则在步骤612处,SPD集线器65例如以响应消息500(图11)的格式用响应消息来对请求消息进行响应,并向存储器控制器80提供随机数。存储器控制器80向实体85提供响应和随机数。
在步骤614处,例如以请求消息400的格式,实体85生成命令消息,包括用于设置或清除一个或多个块的写保护的命令。命令消息包括SPD集线器65响应于请求消息而提供给存储器控制器80的相同随机数。
在步骤616处,实体85计算针对其命令消息的摘要。
在步骤618处,实体85使用其解密私钥至少部分地基于摘要来生成签名。
在步骤620处,实体85将签名附加到命令消息并将包括签名的命令消息发送到存储器控制器80。存储器控制器80将命令消息连同附加的签名一起提供给SPD集线器65。
在步骤622处,例如,使用对应于命令消息的证书链,SPD集线器65检查与命令消息一起包括的签名和插槽的有效性。SPD集线器65还确认与命令消息一起接收的随机数与SPD集线器65在对请求消息的响应中提供的随机数相同。
如果插槽、签名和随机数中的任何一个无效,则SPD集线器65在步骤624处用错误消息向存储器控制器80响应并设置错误标志。在一些实施例中,该过程不会继续,直到存储器控制器80或实体85在步骤626处清除错误标志并且该过程继续进行到步骤628。在步骤628处,SPD集线器65退出设置/清除写保护模式,并且在步骤630处例如以响应消息(图11)的格式500向存储器控制器80提供响应,指示已退出设置/清除写保护模式。过程然后返回到开始并再次继续进行到步骤600。
返回到步骤622,如果插槽、签名和随机数有效,则在步骤632处,SPD集线器65例如通过更新对应块的状态寄存器并清除随机数来执行命令,并且在步骤634处例如以响应消息500的格式还向存储控制器80提供响应,指示命令的成功完成。
在步骤636处,例如,以请求消息400的格式,实体85生成退出设置/清除写保护模式消息,包括用于退出设置/清除写保护模式的命令,并且将退出设置/清除写保护模式消息发送给存储器控制器80。存储器控制器80向SPD集线器65提供退出设置/清除写保护模式消息。在一些实施例中,退出设置/清除写保护模式消息可以由签名来进行签名。在一些实施例中,退出设置/清除写保护模式消息不需要签名。
在步骤638处,SPD集线器65至少部分地基于退出设置/清除写保护模式消息来退出设置/清除写保护模式,并且例如以响应消息500的格式向存储器控制器80提供响应,指示已退出设置/清除写保护模式。
在步骤640处,实体85、存储器控制器80和SPD集线器65返回正常运行时间操作。
虽然以上示例过程被描述为具有特定步骤或以特定顺序的步骤,但是在其他实施例中,可以仅执行一些步骤或者可以以任何其他顺序执行这些步骤。
现在参考图13,描述了根据说明性实施例的用于设置和清除写保护的示例过程。图13的过程包括步骤700到720。
在步骤700处,SPD集线器65在插槽X中安装证书链,例如如上所述。
在步骤702处,SPD集线器65从存储在插槽X中的证书链的中间证书中提取公钥。
在步骤704处,例如,响应于从存储器控制器80接收到的进入写保护模式的请求,SPD集线器65进入写保护模式。
在步骤706处,SPD集线器65例如从存储器控制器80接收用于设置写保护的命令,随后是签名。
在步骤708处,SPD集线器65使用所提取的公钥来核实签名。
在步骤710处,SPD集线器65从用于设置写保护的命令中取回插槽ID和块ID。
在步骤712处,例如使用存储在插槽ID(例如插槽X)中的签名链,SPD集线器65设置针对与取回的块ID相对应的块的写保护。一旦被设置,写保护只能被安装了存储在插槽ID(例如插槽X)中的签名链的实体85清除。
在步骤714处,SPD集线器65例如从存储器控制器80接收用于清除写保护的命令。
在步骤716处,SPD集线器65使用所提取的公钥来核实用于清除写保护的命令的签名。
在步骤718处,SPD集线器65从用于清除写保护的命令中取回插槽ID和块ID。
在步骤720处,SPD集线器65清除针对与块ID相对应的块的写保护。
虽然以上示例过程被描述为具有特定步骤或以特定顺序的步骤,但是在其他实施例中,可以仅执行一些步骤或者可以以任何其他顺序执行这些步骤。
现在参考图14,描述了根据说明性实施例的用于使证书作废的示例过程。图14的过程包括步骤800到844。
在步骤800处,例如,使用请求消息400(图10)的格式,请求使证书作废的实体85生成请求消息。请求消息包括用于进入作废证书模式的命令。
在步骤802处,实体85计算针对请求消息的摘要328。
在步骤804处,实体85使用其解密私钥至少部分地基于摘要来生成签名。
在步骤805处,实体85将签名附加到请求消息并将包括签名的请求消息发送到存储器控制器80。存储器控制器80将请求消息连同附加的签名一起提供给SPD集线器65。在一些实施例中,请求消息可以包括随机数。
在步骤806处,例如通过使用在插槽中找到的证书链的公钥来验证摘要和签名,SPD集线器65检查插槽、摘要和签名的有效性。例如,SPD集线器65可以确定在指定插槽中是否安装了有效证书链,插槽证书链实体ID是否与请求消息中的实体类型相匹配,在请求消息中的指定插槽的摘要值是否与指定插槽的内部存储的摘要值相匹配,控制器请求消息签名是否有效或者可以做出任何其他确定。
如果实体85的插槽、摘要和签名无效,则SPD集线器65在步骤808处用错误消息向存储器控制器80响应。在一些实施例中,该过程不会继续,直到存储器控制器80或实体85在步骤810处清除错误标志并且该过程然后返回到步骤800。
如果实体85的插槽、摘要和签名有效,则在步骤812处,SPD集线器65例如以响应消息500(图11)的格式用响应消息来对请求消息进行响应,并向存储器控制器80提供随机数。存储器控制器80向实体85提供响应和随机数。
在步骤814处,例如以请求消息400的格式,实体85生成命令消息,包括用于使一个或多个插槽324的证书链326作废的命令。该命令包括SPD集线器65响应于请求消息而提供给存储器控制器80的相同随机数。
在步骤816处,实体85为计算针对其命令消息的摘要。
在步骤818处,实体85使用其解密私钥至少部分地基于摘要来生成签名。
在步骤820处,实体85将签名附加到命令消息并将包括签名的命令消息发送到存储器控制器80。存储器控制器80将命令消息连同附加的签名一起提供给SPD集线器65。
在步骤822处,例如,使用对应于命令消息的证书链,SPD集线器65检查与命令消息一起包括的签名和插槽的有效性。SPD集线器65还确认与命令消息一起接收的随机数与SPD集线器65在对请求消息的响应中提供的随机数相同。例如,SPD集线器65可以确定命令消息是否指示与在请求消息期间传达的信息相同的信息,命令消息中的指定插槽的摘要值是否与指定插槽的内部存储的摘要值相匹配,命令消息是否指示SPD集线器65响应于请求消息而生成的相同随机数,命令消息签名是否有效或任何其他确定。
如果插槽、签名和随机数中的任何一个无效,则SPD集线器65在步骤824处用错误消息向存储器控制器80响应并设置错误标志。在一些实施例中,该过程不会继续,直到存储器控制器80或者实体85在步骤826处清除错误标志并且该过程继续进行到步骤828。
在步骤828处,SPD集线器65退出作废证书模式,并且在步骤830处例如以响应消息500(图11)的格式向存储器控制器80提供响应,指示已退出作废证书模式。过程然后返回到开始并再次继续进行到步骤800。
返回到步骤822,如果插槽、签名和随机数有效,则在步骤832处,SPD集线器65例如通过使对应插槽324的证书链326作废并清除随机数来执行命令,并且在步骤834处例如以响应消息500的格式还向存储器控制器80提供响应,指示命令的成功完成。作为示例,证书链326可以通过清除或删除证书链、用预定值(例如全0、全1或另一种模式)覆盖证书链、或以任何其他方式而被作废。
在步骤836处,例如,以请求消息400的格式,实体85生成退出作废证书模式消息,包括用于退出作废证书模式的命令,并且将退出作废证书模式消息发送给存储器控制器80。存储器控制器80向SPD集线器65提供退出作废证书模式消息。在一些实施例中,退出作废证书模式消息可以由签名来进行签名。在一些实施例中,退出作废证书模式消息不需要签名。
在步骤838处,SPD集线器65至少部分地基于退出作废证书模式消息来退出作废证书模式,并且例如以响应消息500的格式向存储器控制器80提供响应,指示已退出作废证书模式消息。
在步骤840处,例如以请求消息400的格式,实体85生成获取版本消息,包括用于获取版本的命令,并且将获取版本消息发送到存储器控制器80。存储器控制器80将获取版本消息提供给SPD集线器65。
在步骤842处,SPD集线器65获得版本并且例如以响应消息500的格式向存储器控制器80提供包括版本的响应。
在步骤844处,实体85、存储器控制器80和SPD集线器65返回正常运行时间操作。
虽然以上示例过程被描述为具有特定步骤或以特定顺序的步骤,但是在其他实施例中,可以仅执行一些步骤或者可以以任何其他顺序执行这些步骤。
在一些实施例中,可以以与写保护类似的方式保护固件。例如,为了禁止授权实体以外的实体对固件进行恶意固件更新或修改,可以利用基于证书链认证的过程来验证固件更新或修改。
在一些实施例中,固件更新过程可以包括多个层,包括例如将SPD集线器65置于固件管理模式并执行固件更新操作。在说明性实施例中,将SPD集线器65置于固件管理模式的消息和执行固件更新过程的消息可以包括两个不同的SPDM消息以确保固件更新中的有效性。例如,在一些实施例中,SPD集线器65可能需要接收消息,该消息包括用于首先进入固件管理模式的命令,以便使得能够接收固件更新消息。
在说明性实施例中,固件更新可能仅基于安装在插槽0中的SPD集线器65的证书链而被允许,例如由SPD集线器组件提供商进行。在其他实施例中,其他特定实体可以具有执行固件更新的授权。
现在参考图15,描述了根据说明性实施例的用于执行针对SPD集线器65的固件更新的示例过程。图15的过程包括步骤900到946。
在步骤900处,在说明性实施例中,例如使用请求消息400(图10)的格式),请求执行固件更新的实体85(例如SPD集线器组件提供商)生成固件管理模式请求消息。固件管理模式请求消息包括用于进入固件管理模式的命令。在一些实施例中,固件管理模式请求消息还包括不透明数据字段,该字段被配置为使SPD集线器65基于包括在该字段中的数据输入来生成新的私钥/公钥对(在步骤906处)。SPD集线器被配置为使用新公钥来对固件更新消息进行解密并认证固件映像。私钥不被SPD集线器65使用并保持私有或被删除。
在步骤902处,实体85计算针对请求消息的摘要328。
在步骤904处,实体85使用其解密私钥至少部分地基于摘要来生成签名,在这种情况下,私钥对应于由SPD集线器组件提供商安装在插槽0中的证书链326。
在步骤905处,实体85将签名附加到固件管理模式请求消息并将包括签名的固件管理模式请求消息发送到存储器控制器80。存储器控制器80将固件管理模式请求消息连同附加的签名一起提供给SPD集线器65。在一些实施例中,存储器控制器还生成随机数并将其与固件管理模式请求消息一起提供例如在有效载荷中。存储器控制器80还基于不透明数据字段的相同数据输入来生成与SPD集线器65相同的私钥/公钥对。存储器控制器80被配置为利用新私钥来对以后的固件更新消息进行签名。
在步骤906处,例如,通过使用在插槽0中找到的证书链326的解密证书的公钥来验证签名,SPD集线器65检查签名的有效性。
如果签名无效,则SPD集线器65在步骤908处用错误消息向存储器控制器80响应。在一些实施例中,该过程不会继续,直到存储器控制器80或实体85在步骤910处清除错误标志并且该过程然后返回到步骤900。
如果签名有效,则在步骤912处SPD集线器65生成随机数、新的私钥/公钥对并且通过进入固件更新模式来启用对固件更新的接受。
在步骤914处,例如以响应消息500(图11)的格式,SPD集线器65还用响应消息来向存储器控制器80响应,该响应消息包括随机数、当前活跃固件插槽状态和版本号。存储器控制器80向实体85提供响应消息和随机数。SPD集线器65将新生成的随机数和公钥/私钥对存储在其内部临时存储装置中。该随机数被用于随后的固件更新消息,直到新固件被激活或者SPD集线器65退出固件管理模式。例如,在一些实施例中,一旦新固件被激活或SPD集线器65退出固件管理模式,SPD集线器65被配置为自动清除随机数和新公钥/私钥对。在一些实施例中,新固件的激活使SPD集线器65自动退出固件管理模式。
在一些实施例中,SPD集线器65携带两个用于固件的插槽,尽管备选地可以使用任何其他数量的插槽。插槽包括活跃插槽和未来更新插槽。活跃插槽包含当前在SPD集线器65上运行的固件。未来更新插槽是加载新固件的地方。一旦新固件被激活,未来更新插槽将成为活跃插槽,并且活跃插槽将变成未来更新插槽。固件尺寸可以取决于SPD集线器65的属性而变化,并且在一些情况下可以包括大数据尺寸。
在步骤916处,例如,以请求消息400(图10)的格式,实体85可以通过向存储器控制器80提交固件更新消息来发起固件加载操作,该固件更新消息包括完整固件传送命令、部分固件传送命令、结束固件传送命令或另一固件传送命令。固件更新消息还包括由SPD集线器65在步骤912处生成的随机数。存储器控制器80将固件更新消息提供给SPD集线器65。
作为示例,部分或全部固件传送命令可以被包括在第一固件更新消息中,部分或结束固件传送命令可以被包括在第二或后续固件传送消息中,并且一旦固件数据传送完成并且固件数据被安装到未来更新插槽中,结束固件传送命令就可以被包括在最终固件传送消息中。结束固件传送命令可以被配置为触发SPD集线器65来认证新安装的固件。固件包携带固件数据加上由存储器控制器80使用由存储器控制器80基于不透明数据字段的数据输入所生成的新私钥而生成的签名。在一些实施例中,签名是由私钥进行签名的整个固件数据的散列值。
在步骤918处,SPD集线器65使用它使用从不透明数据字段输入的数据所生成的新公钥来检查签名和随机数的有效性。在说明性实施例中,固件更新消息仅在存储器控制器80已经发送具有有效签名的固件管理模式请求消息并且SPD集线器65成功核实签名之后才被SPD集线器65接受。在没有这个核实的情况下,固件更新消息与错误消息一起被返回到存储器控制器80。
如果签名和随机数中的任何一个无效,则SPD集线器65在步骤920处以错误消息向存储器控制器80响应并设置错误标志。在一些实施例中,该过程不会继续,直到存储器控制器80或实体85在步骤922处清除错误标志并且该过程返回到步骤916。
返回到步骤918,如果签名和随机数有效,则在步骤924处,SPD集线器65例如通过执行部分固件命令、完整固件传送命令或结束固件传送命令来执行固件更新消息,并且在步骤926处,例如以响应消息500的格式,还向存储器控制器80提供响应,指示在固件更新消息中找到的固件传送命令的成功执行。
在步骤928处,实体85确定固件传送操作是否完成。如果固件传送操作未完成,例如,固件传送仍在进行中,则过程返回到步骤916并且实体85生成包括部分固件传送命令的新固件更新消息,或者如果固件数据已经完全被传送,则生成结束固件传送命令。该过程然后再次继续到步骤918。
如果固件传送操作完成,例如,在步骤926处接收到集线器响应,其包括已成功执行结束固件传送命令的指示,则过程继续进行到步骤930(对于SPD集线器65)和938(对于实体85)。
在步骤930处,例如使用基于不透明数据字段所生成的新公钥,SPD集线器65从固件包中提取签名信息并对签名进行解密以获得固件数据包的固件数据散列。
在步骤932处,SPD集线器65基于安装在未来更新插槽中的固件数据来计算固件(FM)数据散列。
在步骤934处,SPD集线器65通过将获得的固件数据散列与计算出的固件数据散列进行比较来检查固件签名的有效性。
如果固件签名无效,例如,在获得的固件数据散列和计算出的固件数据散列之间存在不匹配,则SPD集线器65丢弃固件数据包,例如,清除、删除或重写未来更新插槽中的固件数据,设置错误标志并在步骤936处例如以响应消息500(图10)的格式生成包括错误标志的响应消息。SPD集线器65还清除随机数和新密钥对并退出固件管理模式。该过程然后继续进行到开始并且实体85将需要请求SPD集线器65再次进入固件管理模式以便再次尝试更新固件。
如果固件签名有效,例如在获得的固件数据散列和计算出的固件数据散列之间存在匹配,则SPD集线器65启用固件激活并等待来自存储器控制器80的激活固件命令,并且该过程继续进行到步骤938以发起激活固件操作。
在步骤938处,例如,以请求消息400(图10)的格式,实体85生成固件更新消息,该固件更新消息包括激活固件命令。实体85向存储器控制器80提供固件更新消息并且固件更新消息由存储器控制器80提供给SPD集线器65。在一些实施例中,固件更新消息用新私钥进行签名并且以类似于上述步骤916的固件更新消息的方式包括由SPD集线器65生成的随机数。以这种方式,作为固件更新包的一部分,存储器控制器80使在固件数据包中包括第二签名和第二随机数的固件传送请求生效。
响应于接收到包括激活固件命令的固件更新消息,在步骤940处,SPD集线器65被配置为例如通过使未来更新插槽成为活跃插槽并且使活跃插槽成为未来更新插槽来激活固件,清除随机数、清除新密钥对并退出固件管理模式。在步骤942处,SPD集线器65还被配置为例如以响应消息500(图10)的格式生成响应消息,该响应消息指示固件更新命令被执行并向存储器控制器80提供响应消息。在一些实施例中,SPD集线器65对固件更新消息执行有效性检查,这类似于上面针对步骤918和934所描述的那些。
在步骤944处,SPD集线器65执行电力循环操作以安装新固件。
在步骤946处,一旦SPD集线器65重新启动,新固件就生效。
虽然以上示例过程被描述为具有特定步骤或以特定顺序的步骤,但是在其他实施例中,可以仅执行一些步骤或者可以以任何其他顺序执行这些步骤。
如说明性实施例中所描述的,SPD集线器65被配置为通过使用由实体85中的每一个安装在对应插槽324中的个体证书链在正常运行时间操作期间在逐个实体的基础上管理针对个体块和成组的块的写保护并且管理固件更新326。通过使用每个实体85的秘密私钥结合由SPD集线器65临时生成并提供给存储器控制器80的唯一随机数,提供对请求和响应消息的附加保护,以用于在由经验证的实体85进行签名并从其中接收的随后的请求消息中使用。
虽然在说明性实施例中,SPD集线器65被描述为被用于存储器模块,诸如例如DDR存储器模块,但是在其他实施例中,包括上述组件和过程的SPD集线器65可以被利用来管理任何其他设备或系统中的写保护或固件更新。
本文中所使用的术语仅用于描述特定实施例的目的,并不旨在限制本发明。如本文中所使用的,除非上下文清楚地另有说明,否则单数形式“一”、“一个”和“该”旨在也包括复数形式。还应理解,术语“包含”和/或“包含”在本说明书中被使用时,指定了所陈述的特征、整数、步骤、操作、元素和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或其组的存在或添加。
下面的权利要求中的所有部件或步骤加功能元素(如果有的话)的对应结构、材料、动作和等同物旨在包括用于与其他要求保护的元素组合来执行该功能的任何结构、材料或动作,正如特别要求保护的那样。已经出于说明和描述的目的呈现了本发明所公开的实施例,但是并不意在穷尽或限制所公开形式的本发明。在不脱离本发明的范围和精神的情况下,许多修改和变型对本领域的普通技术人员来说将是显而易见的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,并使本领域的其他普通技术人员能够理解本发明的各种实施例以及适合于预期的特定用途的各种修改。

Claims (20)

1.一种装置,包括:
存储器插槽,所述存储器插槽包括与实体相对应的证书链;
存储器块,所述存储器块已启用保护;
耦合到存储器的至少一个处理设备,所述至少一个处理设备被配置为:
从所述实体的计算设备接收用于清除针对所述存储器块的保护的请求消息,所述请求消息包括至少部分地基于所述实体的私钥而生成的签名;
至少部分地基于所述证书链来确定与所述实体相对应的公钥;
至少部分地基于所述公钥来确定所述签名有效;
确定针对所述存储器块的所述保护对应于所述证书链;以及
至少部分地基于确定所述签名有效并且针对所述存储器块的所述保护对应于所述证书链,来清除针对所述存储器块的所述保护。
2.根据权利要求1所述的装置,其中所述至少一个处理设备还被配置为:
从所述实体的所述计算设备接收所述证书链;以及
将所述证书链安装在所述存储器插槽中,以及
其中针对所述存储器块的所述保护为写保护和读保护中的一种。
3.根据权利要求1所述的装置,其中:
所述存储器块包括多个存储器块中的第一存储器块;
所述多个存储器块中的第二存储器块已启用保护;
所述请求信息包括第一请求信息;
所述签名包括第一签名;以及
所述至少一个处理设备还被配置为:
从所述实体的所述计算设备接收用于清除针对所述第二存储器块的所述保护的第二请求消息,所述第二请求消息包括至少部分地基于所述实体的所述私钥而生成的第二签名;
至少部分地基于所述证书链来确定与所述实体相对应的所述公钥;
至少部分地基于所述公钥来确定所述第二签名有效;
确定针对所述第二存储器块的所述保护不对应于所述证书链;以及
至少部分地基于确定针对所述第二存储器块的所述保护不对应于所述证书链,返回包括错误的响应消息。
4.根据权利要求3所述的装置,其中:
所述存储器插槽包括多个存储器插槽;
所述证书链包括安装在所述多个存储器插槽中的第一存储器插槽中的第一证书链,并且所述实体包括第一实体;
所述多个存储器插槽中的存储器第二插槽包括与第二实体相对应的第二证书链;
所述至少一个处理设备还被配置为:
从所述第二实体的计算设备接收用于清除针对所述第二存储器块的所述保护的第三请求消息,所述第三请求消息包括至少部分地基于所述第二实体的私钥而生成的第三签名;
至少部分地基于所述第二证书链来确定与所述第二实体相对应的第二公钥;
至少部分地基于所述第二公钥来确定所述第三签名有效;
确定针对所述第二存储器块的所述保护对应于所述第二证书链;以及
至少部分地基于确定所述第二签名有效并且针对所述第二存储器块的所述保护对应于所述第二证书链,来清除针对所述第二存储器块的所述保护。
5.根据权利要求1所述的装置,其中所述证书链包括多个证书,所述多个证书包括解密证书,所述解密证书存储与所述实体的所述私钥相对应的所述公钥。
6.根据权利要求1所述的装置,其中:
所述请求信息包括第一请求信息;
所述签名包括第一签名;
所述至少一个处理设备还被配置为:
从所述实体的所述计算设备接收用于进入设置/清除保护模式的第二请求消息,所述第二请求消息包括至少部分地基于所述实体的所述私钥而生成的第二签名;
至少部分地基于所述证书链来确定与所述实体相对应的所述公钥;
至少部分地基于所述公钥来确定所述第二签名有效;以及
至少部分地基于确定所述第二签名有效,向所述实体的所述计算设备返回包括第一随机数的响应消息;
所述第一请求消息包括第二随机数;
所述至少一个处理设备还被配置为确定所述第二随机数与所述第一随机数匹配;以及
清除针对所述存储器块的所述保护至少部分地基于确定所述第二随机数与所述第一随机数匹配。
7.根据权利要求1所述的装置,其中所述至少一个处理设备还被配置为:
从所述实体的计算设备接收用于使所述证书链作废的请求消息,所述请求消息包括至少部分地基于所述实体的私钥而生成的签名;
至少部分地基于所述证书链来确定与所述实体相对应的所述公钥;
至少部分地基于所述公钥来确定所述签名有效;以及
至少部分地基于确定所述签名有效来使所述证书链作废。
8.一种装置,包括:
存储器插槽,所述存储器插槽包括与实体相对应的证书链;
耦合到存储器的至少一个处理设备,所述至少一个处理设备被配置为:
接收用于更新所述装置的固件的请求消息,所述请求消息包括至少部分地基于所述实体的私钥而生成的签名;
至少部分地基于所述证书链来确定与所述实体相对应的公钥;
至少部分地基于所述公钥来确定所述签名有效;以及
至少部分地基于确定所述签名有效来执行固件更新操作。
9.根据权利要求8所述的装置,其中:
所述请求消息包括一字段,所述字段包括从不透明数据字段输入的数据;
所述装置包括第一固件插槽,所述第一固件插槽是活跃固件插槽;
所述装置包括第二固件插槽;以及
所述固件更新操作包括:
至少部分地基于确定所述签名有效而进入固件更新模式;
生成第一随机数;
至少部分地基于从所述不透明数据字段输入的所述数据来生成新公钥;
将所述第一随机数提供给与所述装置相关联的存储器控制器;
从所述存储器控制器接收固件传送请求,所述固件传送请求包括第二签名、第二随机数和固件数据包;
至少部分地基于所述新公钥来确定所述第二签名有效;
确定所述第二随机数与所述第一随机数匹配;以及
至少部分地基于确定所述第二签名有效以及确定所述第二随机数与所述第一随机数匹配,发起所述固件数据包到所述第二固件插槽的传送,所述第二签名有效是至少部分地基于所述新公钥来确定的。
10.根据权利要求9所述的装置,其中所述固件更新操作还包括:
从所述存储器控制器接收第二固件传送请求,所述第二固件传送请求包括第三签名、第三随机数和结束固件传送命令;
至少部分地基于所述新公钥来确定所述第三签名有效;
确定所述第三随机数与所述第一随机数匹配;以及
至少部分地基于所述新公钥以及确定所述第二随机数与所述第一随机数匹配,来执行所述结束固件传送命令。
11.根据权利要求10所述的装置,其中所述固件更新操作还包括:
至少部分地基于所述结束固件传送命令的执行,从所述固件数据包中提取第四签名;
使用所述新公钥来对所述第四签名进行解密,以获得第一固件数据散列;
至少部分地基于所述固件数据包的固件数据来计算第二固件数据散列;
确定所述第一固件数据散列与所述第二固件数据散列匹配;以及
至少部分地基于确定所述第一固件数据散列与所述第二固件数据散列匹配,来执行激活固件操作。
12.根据权利要求11所述的装置,其中所述激活固件操作包括:
从所述存储控制器接收激活固件命令;
将包括所述固件数据包的所述第二固件插槽设置为所述活跃固件插槽;以及
对所述装置进行电力循环,所述电力循环激活所述固件数据包。
13.根据权利要求12所述的装置,其中所述激活固件操作还包括:
清除所述第一随机数;以及
清除所述新公钥。
14.一种由包括硬件的至少一个处理设备实现的方法,所述方法包括:
从实体的计算设备接收用于清除针对装置的存储器块的保护的请求消息,所述请求消息包括至少部分地基于所述实体的私钥而生成的签名;
至少部分地基于安装在所述装置的存储器插槽中的证书链来确定与所述实体相对应的公钥,所述证书链对应于所述实体;
至少部分地基于所述公钥来确定所述签名有效;
确定针对所述存储器块的所述保护对应于所述证书链;以及
至少部分地基于确定所述签名有效并且针对所述存储器块的所述保护对应于所述证书链,来清除针对所述存储器块的所述保护。
15.根据权利要求14所述的方法,其中所述方法还包括:
从所述实体的所述计算设备接收所述证书链;以及
将所述证书链安装在所述存储器插槽中,以及
其中针对所述存储器块的所述保护为写保护和读保护中的一种。
16.根据权利要求14所述的方法,其中:
所述存储器块包括多个存储器块中的第一存储器块;
所述多个存储器块中的第二存储器块已启用保护;
所述请求信息包括第一请求信息;
所述签名包括第一签名;以及
所述方法还包括:
从所述实体的所述计算设备接收用于清除针对所述第二存储器块的所述保护的第二请求消息,所述第二请求消息包括至少部分地基于所述实体的所述私钥而生成的第二签名;
至少部分地基于所述证书链来确定与所述实体相对应的公钥;
至少部分地基于所述公钥来确定所述第二签名有效;
确定针对所述第二存储器块的所述保护不对应于所述证书链;以及
至少部分地基于确定针对所述第二存储器块的所述保护不对应于所述证书链,返回包括错误的响应消息。
17.根据权利要求16所述的方法,其中:
所述存储器插槽包括多个存储器插槽;
所述证书链包括安装在所述多个存储器插槽中的第一存储器插槽中的第一证书链,并且所述实体包括第一实体;
所述多个存储器插槽中的存储器第二插槽包括与第二实体相对应的第二证书链;
所述方法还包括:
从所述第二实体的计算设备接收用于清除针对所述第二存储器块的所述保护的第三请求消息,所述第三请求消息包括至少部分地基于所述第二实体的私钥而生成的第三签名;
至少部分地基于所述第二证书链来确定与所述第二实体相对应的第二公钥;
至少部分地基于所述第二公钥来确定所述第三签名有效;
确定针对所述第二存储器块的所述保护对应于所述第二证书链;以及
至少部分地基于确定所述第二签名有效并且针对所述第二存储器块的所述保护对应于所述第二证书链,来清除针对所述第二存储器块的所述保护。
18.根据权利要求14所述的方法,其中所述证书链包括多个证书,所述多个证书包括解密证书,所述解密证书存储与所述实体的所述私钥相对应的所述公钥。
19.根据权利要求14所述的方法,其中:
所述请求信息包括第一请求信息;
所述签名包括第一签名;
所述方法还包括:
从所述实体的所述计算设备接收用于进入设置/清除保护模式的第二请求消息,所述第二请求消息包括至少部分地基于所述实体的所述私钥而生成的第二签名;
至少部分地基于所述证书链来确定与所述实体相对应的所述公钥;
至少部分地基于所述公钥来确定所述第二签名有效;以及
至少部分地基于确定所述第二签名有效,向所述实体的所述计算设备返回包括第一随机数的响应消息;
所述第一请求消息包括第二随机数;
所述方法还包括确定所述第二随机数与所述第一随机数匹配;以及
清除针对所述存储器块的所述保护至少部分地基于确定所述第二随机数与所述第一随机数匹配。
20.根据权利要求14所述的方法,其中所述方法还包括:
从所述实体的所述计算设备接收用于使所述证书链作废的请求消息,所述请求消息包括至少部分地基于所述实体的私钥而生成的签名;
至少部分地基于所述证书链来确定与所述实体相对应的所述公钥;
至少部分地基于所述公钥来确定所述签名有效;以及
至少部分地基于确定所述签名有效来使所述证书链作废。
CN202310655257.XA 2022-06-03 2023-06-05 具有安全证书认证的写保护功能 Pending CN117171824A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US63/348,783 2022-06-03
US18/066,433 US20230394160A1 (en) 2022-06-03 2022-12-15 Write protect function with secure certificate authentication
US18/066,433 2022-12-15

Publications (1)

Publication Number Publication Date
CN117171824A true CN117171824A (zh) 2023-12-05

Family

ID=88932509

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310655257.XA Pending CN117171824A (zh) 2022-06-03 2023-06-05 具有安全证书认证的写保护功能

Country Status (2)

Country Link
KR (1) KR20240093323A (zh)
CN (1) CN117171824A (zh)

Also Published As

Publication number Publication date
KR20240093323A (ko) 2024-06-24

Similar Documents

Publication Publication Date Title
CN106462509B (zh) 用于保全存取保护方案的设备及方法
JP4646900B2 (ja) 下位互換性のあるセキュアプロセッサとそれによるセキュアソフトウェアの実行方法
US8843732B2 (en) Mechanism for detecting a no-processor swap condition and modification of high speed bus calibration during boot
KR20170095163A (ko) 하드웨어 디바이스 및 그 인증 방법
US9208292B2 (en) Entering a secured computing environment using multiple authenticated code modules
US11822669B2 (en) Systems and methods for importing security credentials for use by an information handling system
US10860500B2 (en) System, apparatus and method for replay protection for a platform component
CN113841129A (zh) 存储器中的数据证明
CN112560120B (zh) 安全内存条及安全内存条的启动方法
US9331855B2 (en) Apparatus, system, and method for providing attribute identity control associated with a processor
JP2022527163A (ja) 暗号ハッシュを用いたメモリに格納されたデータの正当性確認
KR20210134054A (ko) 보안 전자 제어 유닛 업데이트를 위한 로컬 원장 블록 체인
CN115858424A (zh) 用于认证存储器模块的方法和装置
US20230009032A1 (en) Systems and methods for authenticating the identity of an information handling system
EP4020295A1 (en) Platform security mechanism
US20230342459A1 (en) Platform security mechanism
US20230394160A1 (en) Write protect function with secure certificate authentication
JP2022526936A (ja) ブロックチェーンにおけるブロックとしてのメモリの使用
CN117171824A (zh) 具有安全证书认证的写保护功能
US11822668B2 (en) Systems and methods for authenticating configurations of an information handling system
KR20180066601A (ko) 메모리 시스템의 구동 방법
US11843707B2 (en) Systems and methods for authenticating hardware of an information handling system
US11816252B2 (en) Managing control of a security processor in a supply chain
US20230010319A1 (en) Deriving independent symmetric encryption keys based upon a type of secure boot using a security processor
TWM583978U (zh) 使用實體載具儲存數位憑證以進行線上交易之系統

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication