CN112149190A - 用于非易失性存储器模块的热启动攻击缓解 - Google Patents
用于非易失性存储器模块的热启动攻击缓解 Download PDFInfo
- Publication number
- CN112149190A CN112149190A CN202010221746.0A CN202010221746A CN112149190A CN 112149190 A CN112149190 A CN 112149190A CN 202010221746 A CN202010221746 A CN 202010221746A CN 112149190 A CN112149190 A CN 112149190A
- Authority
- CN
- China
- Prior art keywords
- computing system
- host computing
- nonce value
- nvdimm
- 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
Links
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
- 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/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1416—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
- G06F12/1425—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
- G06F12/1433—Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
-
- 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/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/79—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
-
- 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/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1052—Security improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7204—Capacity control, e.g. partitioning, end-of-life degradation
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Storage Device Security (AREA)
Abstract
本文公开的技术提供了针对存储器模块上的热启动攻击的缓解措施。例如,在一个实施例中,主机计算系统中的非易失性双列直插式存储器模块(NVDIMM)可以检测从低功率状态到全功率状态的转变;在转变之后,从主机计算系统的处理器接收nonce值;验证nonce值;以及基于成功验证nonce值,允许对存储在NVDIMM上的数据的访问。在另一实施例中,可以响应于检测到主机计算系统中的从全功率状态到低功率状态的转变而锁定NVDIMM。在从低功率状态到全功率状态的转变之后,NVDIMM可以获得一个或多个密语,验证一个或多个密语,并基于成功验证一个或多个密语,允许对存储在NVDIMM上的数据的访问。
Description
技术领域
本公开总体涉及计算机系统领域,并且更具体地,涉及用于对非易失性存储器模块的热启动攻击的缓解。
背景技术
当在低功率系统状态期间(例如,S3或“睡眠”系统功率状态),存储器模块(例如,双列直插式存储器模块(DIMM)或非易失性DIMM(NVDIMM))处于自刷新状态时,可能会发生“热启动”攻击。如JEDEC规范所定义的,在自刷新状态期间,不发生到/自存储器的事务,并且保留存储器内容。热启动攻击依赖于攻击者独立于主机计算系统而向存储器模块提供外部电源,使得攻击者在物理上将存储器模块与受害主机计算系统断开连接的同时,他/她可以将存储器模块保持在“自刷新”状态。通过这样做,攻击者能够在所有存储器内容原封不动的情况下,从受害系统中窃取存储器模块,将它连接到攻击者的系统(与受害系统不同),读取数据和/或破坏数据。此外,攻击者可以将具有已破坏/恶意的数据的存储器模块插回到受害主机计算系统,使受害系统在不检测的情况下使用它。
附图说明
为了提供对本公开及其特征和优点的更完整的理解,结合附图参考以下描述,其中,相同的附图标记表示相同的部分,其中:
图1是示出根据本公开的至少一个实施例的对存储器模块的示例性热启动攻击的简化框图;
图2是示出根据至少一个实施例的主机计算系统中的示例非易失性双列直插式存储器模块(NVDIMM)的简化框图;
图3是示出根据至少一个实施例的在CPU与NVDIMM之间的用于防止热启动攻击的示例握手过程的简化流程图;
图4是示出根据至少一个实施例的,响应于从全功率系统状态到低功率系统状态的转变而锁定NVDIMM以防止热启动攻击的示例过程的简化流程图;
图5A-5B是示出根据至少一个实施例的分别锁定非易失性存储器模块的永久性存储器(PM)区域和第二级存储器(2LM)区域的示例过程的简化流程图;
图6是示出根据至少一个实施例的示例处理器核和存储器的框图;和
图7是根据至少一个实施例的示例计算机架构的框图。
具体实施方式
以下公开提供了用于减轻对存储器模块的热启动攻击的各种可能的实施例或示例。“热启动”攻击可以使攻击者物理访问通电的受害计算系统,但在没有特权(例如,环3、环0或环-1)的情况下,获得对存储器模块的整个存储器内容的访问。这种攻击与传统的“冷启动”攻击之间的区别在于,攻击者可以获取100%的数据,而没有数据丢失。此外,热启动攻击可以适用于所有DDR存储器模块,而与制造商无关,可以与存储器模块的温度无关,并且可以与时间无关。
当存储器模块(例如,双列直插式存储器模块(DIMM)或非易失性DIMM(NVDIMM))处于自刷新状态时(这可能主要发生在低功率系统状态期间(例如,S3/睡眠系统功率状态)),可能会发生热启动攻击。如JEDEC规范所定义的,在自刷新状态期间,可能没有到/自存储器的事务,并且存储器内容可以保留在存储器中。存储器内容保留在存储器中的原因(例如,与内容被移动到磁盘的S4休眠状态相反)是,系统能够快速唤醒并转变到S0(正常操作)状态。在自刷新状态期间,存储器模块可以负责发射周期性刷新命令,以维持其存储器电容器上的电荷(例如,其中,存在电荷等于二进制1,而不存在电荷等于二进制0)。为了执行刷新,存储器模块从它所耦合到的主机计算系统接收电源并使用电源。
热启动攻击依赖于攻击者独立于主机计算系统而向存储器模块提供外部电源,使得攻击者在物理上将存储器模块与受害主机计算系统断开连接的同时,他/她可以将存储器模块保持在自刷新状态。通过这样做,攻击者能够在所有存储器内容原封不动的情况下从受害系统中移除存储器模块,将它连接到攻击者自己的计算系统(与受害系统不同),然后读取或破坏数据。此外,攻击者可以将具有损坏/恶意的数据的存储器模块插回到受害系统,使受害系统在不检测的情况下使用它。该攻击适用于所有符合通用JEDEC DDR规范的存储器模块。
针对该攻击的一种当前的缓解措施是,类似于Software GuardExtensions Memory Encryption Engine(SGX MEE)那样,使用存储器加密、完整性保护和重放保护。不幸的是,MEE可能具有相对较高的性能开销,这使得与本公开的缓解措施相比,不太适合于保护存储器模块的整个内容。
另一种当前的缓解措施包括,使用带Integrity的(MK)TME来部分防御热启动攻击。MKTME使用每系统密钥对存储器内容进行加密,并且Integrity将MAC存储在与数据内容关联的存储器中。然而,攻击者仍然可以访问密文和MAC,并且可以执行重放攻击,即捕获密文+MAC的旧图像并在稍后的时间点重放该图像。换句话说,攻击者可以执行热启动攻击,并且可以保存感兴趣的地址的密文+MAC,返回存储器,然后在稍后阶段再次执行攻击,并用旧副本替换存储器内容。仅使用MKTME即可提供一定程度的保护,因为攻击者现在只能访问密文。然而,MKTME不是足够的,因为已经有关于攻击者可以如何破坏加密的存储器以绕过操作系统登录认证的论文发表。
因此,如下所述,本公开的某些方面提供了针对例如NVDIMM的存储器模块的热启动攻击的缓解措施,包括:(1)隐藏攻击者需要开放以执行物理攻击的迹线,(2)定义CPU-NVDIMM握手,(3)修改NVDIMM驱动器以阻止进入S3系统功率状态,以及(4)在由转变到S3系统功率状态引起的自刷新状态期间锁定NVDIMM。在一些情况下,这些缓解措施中的一项或多项措施可以相互结合,或者可以与其他缓解措施结合以防御热启动攻击。在下文进一步描述这些概念的示例实施例。
图1是示出根据本公开的至少一个实施例的对存储器模块的示例热启动攻击的简化框图。在所示的示例中,主机计算系统102包括经由链路105耦合到处理器106的存储器模块104。在一些实现方式中,存储器模块104可以被实现为双列直插式存储器模块(DIMM),例如非易失性DIMM(NVDIMM)。为了实现热启动攻击,攻击者可以在主机计算系统102处于低功率状态(例如,S3系统功率状态)时,独立于主机计算系统102向存储器模块104施加外部电源。通过这样做,在攻击者在物理上将存储器模块104与主机计算系统102断开连接的同时,可以将存储器模块104维持在自刷新状态(如上所述)(保持存储器模块104的内容原封不动)。
然后,攻击者将存储器模块104放置到攻击者的计算系统112的存储器插槽114中。通常,攻击者计算系统112(经由链路115使用处理器116)可以能够读取或破坏存储器模块104上的数据。然而,用本文描述的一个或多个缓解措施实现的存储器模块104可以防止攻击者计算系统112访问存储器模块104上的数据,从而防止对数据或主机计算系统102的任何潜在攻击。
图2是示出根据至少一个实施例的主机计算系统200中的示例性非易失性双列直插式存储器模块(NVDIMM)210的简化框图。在所示的示例中,主机计算系统200包括处理器202(其包括存储器控制器203)、软件和固件204以及Flash存储器206。处理器202可以类似于下文关于图6-图7描述的处理器来实现。在一些情况下,Flash存储器206可以实现在主机计算系统的芯片组或其他控制器中(例如,在管理引擎(ME)芯片组中)。
NVDIMM 210包括控制器212(其包括固件213)和存储器220,存储器220在逻辑上被分成:永久性存储器(PM)区域214,其存储数据215;第二级存储器(2LM)区域216,其存储数据217;和安全性元数据区域218,其存储与数据215、217的加密或解密关联的一个或多个密钥(例如,221、222、224、225)以及控制对相应的PM和2LM区域的访问的锁定位(例如,223、226)。控制器212可以由微处理器、微控制器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或另一类型的数据处理装置来实现。控制器212可以控制对数据215、217的访问,并且还可以实现下文描述的某些缓解措施的功能(例如,生成和验证nonce值,或者在转变到低功率系统状态时锁定NVDIMM)。
在所示的示例中,对PM区域214进行密码保护,其中,使用PM区域密语(passphrase)207(与PM静态密钥221一起)导出用于加密/解密PM区域214中的数据215的PM端密钥(end key)222。例如,当用户启动耦合有NVDIMM 210的主机计算系统200时,用户被提示输入密语,以获得对NVDIMM PM数据215的访问。一旦用户输入密语,主机计算系统就存储该密语(作为PM密语207),并且NVDIMM基于PM密语207(例如,使用PM密语207和PM静态密钥221)来生成PM端密钥222,并且任何后续的PM数据215访问使用PM端密钥222来正确地对数据215进行解密并将明文传递给处理器202。通常,在单个功率周期期间可以保留PM端密钥。这意味着,如果合法用户在第一次启动时解锁了NVDIMM PM区域,接着主机计算系统200稍后进入低功耗模式(例如,S3睡眠状态)并返回到正常操作的全功率模式(例如,恢复到S0功率状态),则将不会再次请求密语,并且NVDIMM PM区域214将对任何用户保持解锁。如上所述,该漏洞使得对NVDIMM 210执行潜在的热启动攻击成为可能。
为了阻止该漏洞,在某些实现方式中,在转变为低功率(例如,S3)状态时可以将PM区域214锁定。可以通过设定PM锁定位223来锁定PM区域214。当设定了PM锁定位时,主机计算系统不可访问PM区域中的数据。为了解锁PM区域,主机计算系统需要将PM密语提供给NVDIMM以用于重新验证。在验证成功后,PM锁定位被重置。在一些情况下,锁定PM区域214可以包括:擦除(例如,归零)PM端密钥222(要求NVDIMM 210从主机计算系统200获取PM密语207并重新生成PM端密钥222),或者在其他情况下,在从低功率状态转变为全功率状态之后,要求用户重新输入PM密语207。在一些实现方式中,PM端密钥222具有32字节的固定长度。在一些情况下,主机计算系统200(经由软件或固件204)可以将PM密语207提供给NVDIMM210。可以从用户(例如,经由基板管理控制器(BMC)接口)透明地提供密语207,或者用户可以手动提供它。为了避免过多的用户交互,在一些情况下,用户可以在启动时仅提供一次密语,并且主机计算系统200可以将它存储在Flash存储器206(例如,ME SPI Flash存储器,其中,它可以用平台密钥加密)中,使得在从低功率状态到全功率状态的任何后续转变时获取密语207。
虽然2LM区域216是用永久性存储器实现的,但是该区域216模仿传统易失性DRAM的行为。2LM区域216中的数据217是使用每次启动时由NVDIMM 210生成的每启动2LM端密钥225加密的。为了生成2LM端密钥225,主机计算系统可以在启动时生成2LM密语209,并且NVDIMM获取和使用2LM密语209,以生成2LM端密钥225(例如,使用2LM静态密钥224,类似于用于生成PM端密钥222的过程)。在启动周期后,丢失/擦除旧的2LM端密钥,并生成新的2LM端密钥。这意味着,即使来自先前启动周期的旧数据仍然在2LM区域216中,它也是用旧的不可恢复的2LM端密钥加密的。通常,在转变到低功率状态(例如,S3状态)期间,将2LM端密钥225保留在NVDIMM 210上,以允许主机计算系统200的合法用户在转变回到全功率状态(例如,S0状态)之后访问其数据,这使得对NVDIMM 210执行潜在的热启动攻击成为可能。
为了阻止该漏洞,在某些实现方式中,可以以与上面关于PM区域214所讨论的类似方式,在转变到低功率状态(例如,S3)时锁定2LM区域216。例如,在转变到低功率状态时,可以设定2LM锁定位226。在一些情况下,锁定2LM区域216可以包括:在一些情况下,擦除(例如,归零)2LM端密钥225,要求NVDIMM 210从主机计算系统200获取2LM密语209并重新生成2LM端密钥225。在一些实现方式中,2LM端密钥225具有32字节的固定长度。类似于上述的PM区域机制,可以在每次从低功率到全功率状态转变时,将2LM密语209提供给NVDIMM 210,以解锁2LM区域216。可以在每次重置时,由主机固件204新生成2LM密语(即,每次重置可以有不同的密语)。一旦主机固件生成了2LM密语209,就可以将它存储在Flash存储器206(例如,ME SPI Flash存储器)中。可以经由基于DDR-T的命令接口或系统管理总线(SMBus)接口,将2LM密语209提供给NVDIMM(例如,提供给固件213)。固件213可以用2LM静态密钥224封装2LM密语209,并将它存储在安全性元数据区域218中(其可以被实现为3DXP安全性元数据区域)。在从低功率状态到全功率状态的每个后续转变中(在同一重置周期期间),主机固件204可以在访问任何2LM数据217之前将2LM密语209重新发送到NVDIMM 210。NVDIMM固件213可以用2LM静态密钥224封装接收到的密语,并将它与存储的2LM端密钥225进行比较。如果它们匹配,则允许主机计算系统200对2LM数据217的访问。否则,阻止/不允许对2LM数据217(或一般而言,2LM区域216)的访问,直到执行重置为止。在重置时,2LM端密钥225将被重置,并且主机计算系统200将无法访问任何先前的2LM数据。
在一些情况下,处理器202(经由存储器控制器203)和NVDIMM210可以执行握手过程,以防止对NVDIMM 210的热启动攻击。握手过程允许处理器202向NVDIMM 210证明其“身份”,同样,允许NVDIMM 210向处理器202证明其“身份”。因此,握手能够保护其良性NVDIMM被恶意DIMM替换的受害系统,免于良性DIMM被插入恶意系统以提取或修改数据。
在一种形式中,可以通过使用两个秘密nonce,NNVDIMM和NCPU来实现握手。NVDIMM210可以在通电阶段期间生成NNVDIMM,并且可以将它存储在控制器中的本地控制寄存器中。类似地,处理器202可以在通电期间生成NCPU,并且可以将它存储在存储器控制器203的控制寄存器中。在每次启动和每个系统上,这两个nonce将是不同的。在NVDIMM通电阶段(其包括存储器校准)完成之前,并且在存储器初始化阶段之前,存储器控制器203可以将NCPU发送到NVDIMM 210,并且NVDIMM可以将它存储在控制器212中的其控制寄存器空间中。类似地,NVDIMM将NNVDIMM发送到存储器控制器203,存储器控制器203可以将它存储在其控制寄存器中。
在低功率状态下退出自刷新模式之后,NVDIMM 210和存储器控制器203均可以分别发送NNVDIMM和NCPU,并对比它们已存储的nonce检查它们接收的nonce,以验证另一方的身份。这可以确保a)攻击者没有用恶意的NVDIMM替换良性的NVDIMM,并且b)攻击者没有窃取良性的NVDIMM并将它放置在恶意系统中。如果nonce存在任何不匹配,则系统应当无法进入正常操作,并且可能需要对主机计算系统200和NVDIMM的功率周期。重启动将擦除先前的2LM NVDIMM数据并锁定PM NVDIMM数据。另外,在攻击者已将恶意的NVDIMM放入良性系统的情况下,系统BIOS将在重启动时尝试验证NVDIMM制造商和NVDIMM FW,作为其正常通电/启动过程的一部分,并且不会成功验证NVDIMM。这种潜在的缓解措施可以将攻击的大致成本从大约$2k(无缓解措施)提高到$200k+(例如,存储器内插器的大致成本)。在一些情况下,为了也防御内插器攻击,可以使用加密技术(例如,Diffie-Hellman密钥交换)、完整性保护技术(例如,AES-GCM技术)、重放保护技术(例如,Merkle树技术)或认证技术(例如,数字签名技术)来增强该方案。作为示例,在一些实现方式中,根据Diffie-Hellman密钥交换过程,在每次启动时在处理器202与NVDIMM210之间建立秘密密钥。然后可以使用秘密密钥来加密(例如,经由AES-256)nonce值。在其他实现方式中,可以使用认证的Diffie-Hellman密钥交换技术,其中,处理器202和NVDIMM 210各自具有公-私非对称密钥对,用于对它们发送的每个消息以数字方式进行签名,以及用于验证它们从彼此接收的每个消息。该技术可以避免任何中间人攻击(例如,经由内插器)。
热启动攻击的另一种潜在的缓解措施包括:在物理上隐藏或遮盖NVDIMM 210上的执行攻击所需的关键电气迹线。例如,NVDIMM 210可以被散热器垫片包围,但是在一些情况下,可以使用化学溶液轻松去除它,从而可以访问关键迹线。另外,这些信号/迹线可能暴露在NVDIMM 210的金属指上和/或NVDIMM 210的PCB上。为了防止该漏洞,这些迹线可以被“隐藏”在NVDIMM 210的PCB的内层内,从而要求攻击者要么移除外部PCB层以暴露必要的迹线,要么通过NVDIMM金属指访问迹线。这将使攻击变得更难以执行,因为当模块被插入插座时,不容易触及金属指,攻击者将会有使电路短路的风险。在一些实现方式中,还可以在NVDIMM210上实现篡改检测传感器(例如,227),以检测旨在取得对关键迹线的访问的任何篡改。例如,NVDIMM 210可以实现有在散热器下的隐藏开关,如果散热器被移除(例如,以访问迹线),则该开关被触发。作为另一示例,NVDIMM 210可以被修改为包括不透明外壳,不透明外壳被设计为包括篡改检测传感器(例如,开关)。如果传感器227检测到篡改,则NVDIMM 210可以将存储在NVDIMM 210上的任何密钥(例如,端密钥222、225)归零或擦除,从而使数据不可访问。通过实现该缓解措施的概念,对NVDIMM 210执行热启动攻击的大致成本从约$2k(无缓解措施)增加到>$10k(例如,DIMM Riser或用于暴露金属指的类似技术的成本)。另一方面,实现该缓解措施的成本相对较低。
热启动攻击的又一种潜在的缓解措施包括:修改NVDIMM的驱动器(例如,驱动器205)。由于能够执行这种攻击时的易受攻击状态是当NVDIMM 210处于自刷新状态时,因此一种非常简单的缓解措施是从不让系统进入启用自刷新模式的低功率状态(例如,S3状态)。为此,可以将NVDIMM驱动器205更新为从不支持这种低功率状态。如果系统确实进入了这种低功率状态,则驱动器205可以触发系统重启动。由于将执行重启动,因此这能够防止攻击者用恶意NVDIMM替换良性NVDIMM。虽然攻击者可以替换或修补了驱动器,但是攻击者将需要ring-0特权,如果攻击者设法获得了ring-0特权,则他/她已经可以访问全部存储器内容,没有必要再替换或修补驱动器以窃取存储器内容。
图3是示出了根据至少一个实施例的在CPU 310与NVDIMM 320之间的用于防止热启动攻击的示例握手过程300的示例的简化流程图。可以类似于图2的处理器202实现CPU310,并且可以类似于图2的NVDIMM 210实现NVDIMM 320。CPU 310和NVDIMM 320可以是类似于图2的主机计算系统200实现的主机计算系统的一部分。示例过程300可以包括附加的或不同的操作,并且可以以所示的顺序或以另一顺序执行操作。在一些情况下,可以将图3所示的一个或多个操作实现为包括多个操作、子过程或其他类型的例程的过程。在一些情况下,操作可以被组合,以另一顺序执行,并行执行,迭代,或者以另一方式重复或执行。在一些实现方式中,图3中所示的操作可以被实现为体现在非瞬时性计算机可读存储介质中的可由至少一个处理器执行的指令。
在301,主机计算系统通电并启动。此后,在311,CPU生成nonce值NCPU,并且在321,NVDIMM生成nonce值NNVDIMM。在一些情况下,这可以在NVDIMM通电阶段(其包括存储器校准)完成之前并且在存储器初始化阶段之前完成。在312,CPU将nonce值NCPU发送到NVDIMM,并且在323,NVDIMM存储该值(例如,存储在NVDIMM控制器的本地控制寄存器中)。同样,在322,NVDIMM将nonce值NNVDIMM发送到CPU,并且在313,CPU存储该值(例如,存储在其存储器控制器中的控制寄存器中)。
然后,在302,主机计算系统从其全功率(S0)系统状态转变为低功率(S3)系统状态。在稍后的某个时间,在303,主机计算系统从其低功率(S3)系统状态转变到其全功率(S0)系统状态。响应于此,在314,CPU将nonce值NCPU发送到NVDIMM,并且在324,NVDIMM将nonce值NNVDIMM发送到CPU。在315,CPU对比先前在313处存储的nonce值NNVDIMM验证接收到的nonce值NNVDIMM。同样地,在325,NVDIMM对比先前在323处存储的nonce值NCPU验证接收到的nonce值NCPU。如果两个nonce值在315和325处都被成功验证(例如,nonce值匹配),则在304,主机计算系统进入其正常操作模式。然而,如果一个或两个nonce值在315和325未成功验证(例如,nonce值不匹配),则在304,强制主机计算系统重启动。
在一些实现方式中,nonce值NCPU和NNVDIMM可以是随机数。在一些实现方式中,CPU310和NVDIMM 320在每次启动时,根据Diffie-Hellman密钥交换过程建立秘密密钥。然后,可以使用秘密密钥来加密(例如,经由AES-256)nonce值。在其他实现方式中,可以使用认证的Diffie-Hellman密钥交换技术,其中,CPU 310和NVDIMM 320各自具有公-私非对称密钥对,用于对它们发送的每个消息以数字方式进行签名,并且用于验证它们从彼此接收的每个消息。该技术可以避免任何中间人攻击(例如,经由内插器)。
图4是示出根据至少一个实施例的响应于从全功率系统状态到低功率系统状态的转变而锁定NVDIMM以防止热启动攻击的示例过程的简化流程图。示例过程400中的操作可以由存储器模块的一个或多个组件(例如,图2的NVDIMM 210的控制器212)来执行。示例过程400可以包括附加的或不同的操作,并且可以以所示的顺序或以另一顺序来执行操作。在一些情况下,可以将图4中所示的一个或多个操作实现为包括多个操作、子过程或其他类型的例程的过程。在一些情况下,操作可以被组合,以另一顺序执行,并行执行,迭代,或者以另一方式重复或执行。在一些实现方式中,图4中所示的操作可以被实现为体现在非瞬时性计算机可读存储介质中的可由至少一个处理器执行的指令。
在402,在主机计算系统中检测到从S0到S3的状态转变,并且在404,NVDIMM进入自刷新模式并锁定自身。在一些实现方式中,这可以包括锁定NVDIMM的PM区域(例如,图2的PM区域214)和NVDIMM的2LM区域(例如,图2的2LM区域216)中的一个或多个。在一些实现方式中,这可以包括锁定NVDIMM,锁定NVDIMM包括擦除用于解密存储在NVDIMM上的数据的一个或多个密钥(例如,图2的PM端密钥222、2LM密钥225或两者)。
在406,在主机计算系统中检测到从S3到S0的状态转变,并且在408,NVDIMM获得一个或多个密语以解锁NVDIMM。密语可以包括PM区域密语(例如,图2的PM区域密语207)、2LM区域密语(例如,图2的2LM区域密语209)或两者。在一些实现方式中,可以通过从主机计算系统的Flash存储器(例如,ME SPI Flash存储器)中获取或收集一个或多个密语,来获得它们。在一些实现方式中,可以通过经由主机计算系统上的固件(例如,图2的固件204)接收一个或多个密语,来获得它们。
在410,NVDIMM验证在408处获得的密语。在一些实现方式中,可以通过基于获得的密语和NVDIMM的静态密钥生成新的端密钥,并将新的端密钥与先前存储在NVDIMM上的端密钥进行比较,来验证该密语。在一些实现方式中,可以通过与先前存储的密语(例如,而不是基于密语生成的端密钥)进行比较来验证密语。
如果在410成功验证了密语,则在412,NVDIMM允许主机计算系统(包括主机计算系统的处理器)访问NVDIMM上的数据。如果在410未成功验证密语,则在414,NVDIMM阻止对NVDIMM上的数据访问。在一些实现方式中,在410处未成功验证的情况下,NVDIMM可以强制重启动主机计算系统,或者可以执行另一功能(例如,生成警报)。
图5A-5B是示出根据至少一个实施例的分别锁定非易失性存储器模块的永久性存储器(PM)区域和第二级存储器(2LM)区域的示例过程500、520的简化的流程图。示例过程500、520中的操作可以由存储器模块的一个或多个组件(例如,图2的NVDIMM 210的控制器212)来执行。示例过程500、520可以包括附加的或不同的操作,并且可以以所示的顺序或以另一顺序来执行操作。在一些情况下,可以将图5A-图5B中所示的一个或多个操作实现为包括多个操作、子过程或其他类型的例程的过程。在一些情况下,操作可以被组合,以另一顺序执行,并行执行,迭代,或者以另一方式重复或执行。在一些实现方式中,图5A-图5B中所示的操作可以被实现为体现在非瞬时性计算机可读存储介质中的可由至少一个处理器执行的指令。
参照图5A,在502,主机计算系统启动,并且在504,从主机计算系统的用户接收PM密语。可以由主机计算系统将PM密语存储在Flash存储器(例如,ME SPI Flash)中,以供NVDIMM稍后使用或获取。
在506,初始验证在504处接收到的PM密语。可以通过用静态密钥(例如,图2的PM静态密钥221)封装(例如,使用AES Keywrap技术)密语(例如,图2的PM密语207)以产生端密钥(例如,图2的PM端密钥222),来验证该密语。然后将产生的端密钥与先前存储在NVDIMM上的PM端密钥进行比较。如果在506,成功验证了PM密语,则在508,重置PM区域锁定位(例如,图2的PM锁定位223),并且在510,主机计算系统进入正常操作。一段时间之后,在512,在主机计算系统中检测到S0到S3的状态转变,并且响应于此,在514,通过设定PM区域锁定位(例如,图2的PM锁定位223),将PM区域锁定。
在另一段时间之后,在516,在主机计算系统中检测到S3到S0的状态转变,并且在518,NVDIMM获得用于解锁NVDIMM的PM区域的PM密语(例如,图2的PM密语207)。在一些实现方式中,可以经由主机固件透明地提供PM密语(例如,经由BMC接口),通过用户手动地重新提供PM密语,或者通过NVDIMM从主机计算系统获取PM密语,来获得PM密语。
然后,在506,NVDIMM验证PM密语,如上所述那样。如果在506成功验证了密语,则主机计算系统重新进入正常操作,并且允许主机计算系统对PM区域中的数据的访问(例如,通过重置PM区域锁定位并进入正常操作)。如果在506未成功验证PM密语,则在519,NVDIMM阻止主机计算系统对存储器模块上的PM区域数据的访问。
参照图5B,在522,主机计算系统启动,并且在524,从主机计算系统接收2LM密语。2LM密语可以已由主机计算系统在启动序列期间生成。例如,主机计算系统固件可以被配置为在每次重置时生成新的2LM密语。主机固件可以将2LM密语存储在主机计算系统的Flash存储器中,并且可以将2LM密语提供给NVDIMM(例如,经由基于DDR-T的命令接口或SMBus接口)。
在526,用静态密钥(例如,图2的2LM静态密钥224)封装(例如,使用AES Keywrap技术)在524处接收到的密语,以产生端密钥(例如,图2的2LM端密钥225),并且将端密钥存储在NVDIMM的安全性元数据区域(例如,图2的安全性元数据区域218)中。在528,主机计算系统进入正常操作。一段时间后,在530,在主机计算系统中检测到S0到S3的状态转变,并且在532,通过设定2LM锁定位(例如,图2的2LM锁定位226),将NVDIMM的2LM区域锁定。
在另一段时间之后,在534,在主机计算系统中检测到S3到S0的状态转变,并且在536,从主机计算系统获得2LM密语。可以经由主机计算系统固件透明地提供2LM密语(例如,经由BMC接口),或者通过NVDIMM从主机计算系统获取2LM密语,来获得2LM密语。
在538,验证在536处接收到的2LM密语。可以通过如上所述的封装新接收到的2LM密语,并将得到的端密钥与先前存储在NVDIMM上的2LM端密钥进行比较,来验证2LM密语。如果封装的密语匹配,则在539,重置2LM区域锁定位,并且在528,主机计算系统重新进入正常操作,其中,允许主机计算系统访问2LM区域中的数据。如果在538未成功验证2LM密语,则在540,NVDIMM阻止主机计算系统访问NVDIMM上的2LM数据。在一些实现方式中,响应于在538未成功验证密码,可能需要重启动。
为了实现图4和图5A-图5B中描述的特征,在一些实现方式中,可以在NVDIMM上利用opt-in(选择加入)机制。opt-in机制可以类似于Apache SubversionTM(SVN)Downgrade特征,并且原始设备制造商(OEM)可能启用该保护或者忽略它,这将导致无低功率状态锁定。为此,可以使用控制状态寄存器(CSR)中的对于外部软件可见的两位。首先,S3_Lock_Opt_In位用作全局启用/禁用特征。OEM可以仅在opt-in时间窗口期间使用SMBus邮箱固件调用来设定该位。一旦启用,它将保持“True”状态,并且只能使用Red Unlock进行重置。默认值可以是“False”。其次,假设S3_Lock_Opt_In位被设定为“True”,可以将S3_Lock_Enable位用作启用/禁用特征。在建立唯一的每启动nonce之后,基本输入/输出系统(BIOS)或SMBus管理模块(SMM)可以随时设定S3_Lock_Enable位。默认值可以是“False”。OEM客户可以在opt-in时间窗口(其可以是NVDIMM处于OEM工厂/平台时)期间设定S3_Lock_Opt_In位,直到配置被锁定(Opt_in_feature=Locked)。然后,CSR可以反映opt-in状态。接下来,如果OEM已经选择加入,则在平台与NVDIMM之间已经建立了安全nonce之后,OEM可以选择随时使用BIOS/SMM调用启用/禁用该特征(例如,当NVDIMM处于OEM/平台所有者中时)。这两个位可以保留在NVDIMM的参数区域中,并在每个功率周期复制到CSR位。鉴于SMM/BIOS nonce在每个启动周期中可以是不同的,这可以防止攻击者尝试在S3状态时将NVDIMM移入攻击者平台并禁用S3_Lock_Enable位。为了更改S3_Lock_Enable位,攻击者将需要与NVDIMM重新建立新的nonce,这将需要重启动,从而锁定PM和2LM区域,如上所述那样。
图6-图7是可以根据本文公开的实施例使用的示例计算机架构的框图。通常,可以使用本领域已知的用于处理器和计算系统的任何计算机架构设计。在示例中,本领域已知的用于以下设备的系统设计和配置也适合于本文描述的计算系统的实施例:膝上型计算机、台式计算机、手持式PC、个人数字助理、平板电脑、工程工作站、服务器、网络设备、电器、网络集线器、路由器、交换机、嵌入式处理器、数字信号处理器(DSP)、图形设备、视频游戏设备、机顶盒、微控制器、智能电话、移动设备、可穿戴电子设备、便携式媒体播放器、手持设备以及各种其他电子设备。通常,适合于本文公开的实施例的计算机架构可以包括但不限于图6-7所示的配置。
图6是根据实施例的处理器的示例说明。处理器600是可以结合上述实现方式使用的一种类型的硬件设备的示例。处理器600可以是任何类型的处理器,例如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、多核处理器、单核处理器或执行代码的其他设备。虽然在图6中仅示出了一个处理器600,但是处理元件可以替换地包括多于一个图6中所示的处理器600。处理器600可以是单线程核,或者对于至少一个实施例,处理器600可以是多线程的,因为它可以包括每核多于一个硬件线程上下文(或“逻辑处理器”)。
图6还示出了根据实施例的耦合到处理器600的存储器602。存储器602可以是本领域技术人员已知的或可获得的多种存储器(包括存储器层级结构的各个层)中的任一个。这种存储器元件可以包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、现场可编程门阵列(FPGA)的逻辑块、可擦除可编程只读存储器(EPROM)和电可擦除可编程ROM(EEPROM)。
处理器600可以执行与本文详述的算法、处理或操作关联的任何类型的指令。通常,处理器600可以将元素或物品(例如,数据)从一个状态或事物转变为另一状态或事物。
代码604(其可以是要由处理器600执行的一个或多个指令)可以存储在存储器602中,或者可以存储在软件、硬件、固件或其任何合适的组合中,或者存储在任何其他内部或外部组件、设备、元件或对象(视情况且基于特定需求)。在一个示例中,处理器600可以遵循由代码604指示的指令的程序序列。每个指令进入前端逻辑606,并由一个或多个解码器608进行处理。解码器可以生成微操作(例如,预定义格式的固定宽度微操作)作为其输出,或者可以生成反映原始代码指令的其他指令、微指令或控制信号。前端逻辑606还包括寄存器重命名逻辑610和调度逻辑612,它们通常分配资源并将与指令对应的操作进行排队,以便执行。
处理器600还可以包括具有一组执行单元616a、616b、616n等的执行逻辑614。一些实施例可以包括专用于特定功能或功能集的多个执行单元。其他实施例可以包括仅一个执行单元或可以执行特定功能的一个执行单元。执行逻辑614执行由代码指令指定的操作。
在完成由代码指令指定的操作的执行之后,后端逻辑618可以回退代码604的指令。在一个实施例中,处理器600允许乱序执行,但是要求顺序回退指令。回退逻辑620可以采用多种已知的形式(例如,重排序缓冲区等)。以此方式,在代码604的执行期间,至少依据解码器生成的输出、寄存器重命名逻辑610所利用的硬件寄存器和表、以及执行逻辑614所修改的任何寄存器(未示出),对处理器600进行变换。
虽然在图6中未示出,但是处理元件可以包括与处理器600一起在芯片上的其他元件。例如,处理元件可以包括存储器控制逻辑与处理器600。处理元件可以包括I/O控制逻辑和/或可以包括与存储器控制逻辑集成的I/O控制逻辑。处理元件还可以包括一个或多个缓存。在一些实施例中,非易失性存储器(例如,闪存或熔丝)也可以与处理器600一起被包括在芯片上。
图7示出了根据一个实施例的以点对点(PtP)配置布置的计算系统700。特别地,图7示出了在其中处理器、存储器和输入/输出设备通过多个点对点接口互连的系统。通常,可以以与计算系统700相同或相似的方式来配置本文描述的一个或多个计算系统或计算设备(例如,主机计算系统200)。
处理器770和780可以被实现为单核处理器774a和784a或多核处理器774a-774b和784a-784b。处理器770和780可以各自包括由它们各自的一个或多个核使用的缓存771和781。共享缓存(未示出)可以包括在任一处理器中,或者在两个处理器外部(但是仍然经由P-P互连与处理器连接),使得如果处理器被置于低功率模式,则任一或两个处理器的本地缓存信息可以被存储在共享缓存中。
处理器770和780还可以各自包括集成存储器控制器逻辑(MC)772和782,用于与存储器元件732和734通信,存储器元件732和734可以是本地附连到相应处理器的主存储器的一部分。在替代实施例中,存储器控制器逻辑772和782可以是与处理器770和780分离的分立逻辑。存储器元件732和/或734可以存储处理器770和780在实现本文概述的操作和功能时要使用的各种数据。
处理器770和780可以是任何类型的处理器,例如结合其他附图讨论的那些处理器。处理器770和780可以分别使用点对点接口电路778和788,经由点对点(PtP)接口750交换数据。处理器770和780可以各自使用点对点接口电路776、786、794和798,经由各点对点接口752和754与输入/输出(I/O)子系统790交换数据。I/O子系统790还可以使用接口电路792(其可以是PtP接口电路),经由高性能图形接口739与高性能图形电路738交换数据。在一个实施例中,高性能图形电路738是专用处理器,例如高吞吐量MIC处理器、网络或通信处理器、压缩引擎、图形处理器、GPGPU、嵌入式处理器等。I/O子系统790还可以与显示器733通信,以用于显示人类用户可见的数据。在替代实施例中,图7所示的任何或所有PtP链路可以被实现为多点总线而不是PtP链路。
I/O子系统790可以经由接口电路796与总线710通信。总线720可以具有通过它进行通信的一个或多个设备,例如总线桥718和I/O设备716。经由总线710,总线桥718可以与其他设备通信,例如用户接口712(例如,键盘、鼠标、触摸屏或其他输入设备)、通信设备726(例如,调制解调器、网络接口设备、或可以通过计算机网络760进行通信的其他类型的通信设备)、音频I/O设备714和/或数据存储设备728。数据存储设备728可以存储代码和数据730,代码和数据730可以由处理器770和/或780执行。在替代实施例中,可以用一个或多个PtP链路来实现总线架构的任何部分。
图7中描绘的计算系统是可以用于实现本文讨论的各种实施例的计算系统的实施例的示意图。应理解,图7中描绘的系统的各种组件可以组合在片上系统(SoC)架构上,或者以能够实现本文提供的示例和实现方式的功能和特征的任何其他合适的配置来组合。
虽然已经根据某些实现方式和通常关联的方法描述了本公开,但是这些实现方式和方法的变更和置换对于本领域技术人员将是显而易见的。例如,本文描述的动作可以以与所描述的不同的顺序执行,并且仍然实现期望的结果。作为一个示例,附图中所描绘的过程不一定需要所示的特定顺序或时序顺序来实现期望的结果。在某些实现方式中,多任务和并行处理可以是有利的。其他变型在所附权利要求的范围内。
本文提出的架构仅以示例的方式提供,并且旨在是非排他性的和非限制性的。此外,所公开的各个部分仅意图是逻辑划分,不一定需要表示物理上分开的硬件和/或软件组件。某些计算系统可以在单个物理存储器设备中提供存储器元件,并且在其他情况下,存储器元件在功能上可以分布在许多物理设备上。在虚拟机管理器或管理程序的情况下,可以以在虚拟化层上运行的软件或固件的形式来提供全部或部分功能,以提供所公开的逻辑功能。
注意到,对于本文提供的示例,可能关于单个计算系统描述了交互。然而,这样做仅是出于清楚和示例的目的。在某些情况下,通过仅参考单个计算系统来描述给定的一组流程中的一个或多个功能可以是更容易的。此外,用于深度学习和恶意软件检测的系统易于扩展,并且可以跨大量组件(例如,多个计算系统)以及用更复杂/高深的布置和配置来实现。因此,所提供的示例不应限制潜在地应用于无数其他架构的计算系统的范围或抑制其广泛教导。
如本文所使用的,除非明确相反地指出,否则短语“至少一个”的使用指代所提及的要素、条件或活动的任何组合。例如,“X、Y和Z中的至少一个”旨在表示以下任一项:1)至少一个X,但没有Y也没有Z;2)至少一个Y,但没有X也没有Z;3)至少一个Z,但没有X也没有Y;4)至少一个X和Y,但没有Z;5)至少一个X和Z,但没有Y;6)至少一个Y和Z,但没有X;或7)至少一个X、至少一个Y和至少一个Z。
此外,除非明确相反地指出,否则术语“第一”、“第二”、“第三”等旨在区分它们修饰的特定名词(例如,元素、条件、模块、活动、操作、权利要求元素等),而并不旨在指示所修饰的名词的任何类型的顺序、等级、重要性、时间顺序或层级结构。例如,“第一X”和“第二X”旨在表示两个分开的X元素,它们不一定受两个元素的任何顺序、等级、重要性、时间顺序或层级结构所限制。
说明书中对“一个实施例”、“实施例”、“一些实施例”等的引用指示,所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以或可以不一定包括该特定特征、结构或特性。此外,这些短语不一定指代同一实施例。
虽然本说明书包含许多特定的实现细节,但是这些不应当被解释为对任何实施例或要求保护的范围的限制,而是解释为对专用于特定实施例的特征的描述。在本说明书中在分开的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中分开实现,或者以任何合适的子组合来实现。此外,虽然以上可能将特征描述为以某些组合起作用,甚至最初如此声明,但是在一些情况下,可以从该组合中删除所要求的组合中的一个或多个特征,并且所要求的组合可以涉及子组合或子组合的变型。
类似地,上述实施例中的各种系统组件和模块的分离不应理解为在所有实施例中都需要这种分离。应理解,所描述的程序组件、模块和系统通常可以被集成在一起,在单个软件产品中,或者被封装成多个软件产品。
因此,已经描述了本主题的特定实施例。其他实施例在本公开的范围内。本领域技术人员可以查明许多其他改变、替换、变型、变更和修改,并且意图是本公开涵盖落入所附权利要求范围内的所有这样的改变、替换、变型、变更和修改。
其他注解&示例
以下示例属于根据本说明书的实施例。将理解的是,以下描述的某些示例的一个或多个方面可以与某些其他示例(包括未明确指出的示例)组合或在其中实现。
示例1包括一种要包括在主机计算系统中的数据存储装置。数据存储装置包括:存储器和耦合到存储器的控制器电路。控制器电路用于:检测主机计算系统中的从低功率状态到全功率状态的转变;在转变之后,从主机计算系统的处理器接收nonce值;验证从处理器接收到的nonce值;以及基于成功验证接收到的nonce值,允许主机计算系统访问存储在存储器中的数据。
示例2包括示例1的主题,并且可选地,其中,nonce值是第一nonce值,并且控制器电路还用于:响应于主机计算系统中的启动序列,从主机计算系统的处理器接收第二nonce值;将第二nonce值存储在存储器中;以及基于第二nonce值,验证第一nonce值。
示例3包括示例2的主题,并且可选地,控制器电路用于:通过比较第一nonce值和第二nonce值来验证第一nonce值。
示例4包括示例1的主题,并且可选地,其中,控制器电路用于:使用在处理器与控制器电路之间建立的秘密密钥来解密接收到的nonce值,或者控制器电路用于:通过验证与接收到的nonce值关联的处理器的数字签名来验证接收到的nonce值。
示例5包括示例1的主题,并且可选地,其中,nonce值是第一nonce值,并且控制器电路还用于:响应于主机计算系统中的启动序列而生成第二nonce值;以及将第二nonce值发送到主机计算系统的处理器,以用于主机计算系统进行的验证。
示例6包括示例1的主题,并且可选地,其中,低功率状态是S3系统功率状态,并且全功率状态是S0系统功率状态。
示例7包括示例1的主题,并且可选地,还包括篡改检测传感器,其中,控制器电路还用于:响应于篡改检测传感器检测到篡改,禁用对存储在存储器中的数据的访问。
示例8包括示例7的主题,并且可选地,其中,控制器电路用于:通过擦除用于解密存储在存储器中的数据的一个或多个密钥,来禁用对存储在存储器中的数据的访问。
示例9包括一种方法,包括:由主机计算系统中的非易失性双列直插式存储器模块(NVDIMM)检测主机计算系统中的从低功率状态到全功率状态的转变;在转变之后,从主机计算系统的处理器接收nonce值;由NVDIMM验证从处理器接收到的nonce值;以及基于成功验证接收到的nonce值,允许主机计算系统访问存储在NVDIMM上的数据。
示例10包括示例9的主题,并且可选地,其中,nonce值是第一nonce值,并且所述方法还包括:响应于主机计算系统中的启动序列,从主机计算系统的处理器接收第二nonce值;将第二nonce值存储在NVDIMM中;其中,验证第一nonce值是基于对比第二nonce值验证第一nonce值。
示例11包括示例10的主题,并且可选地,其中,验证第一nonce值包括比较第一nonce值和第二nonce值。
示例12包括示例9的主题,并且可选地,还包括:使用在处理器与NVDIMM之间建立的秘密密钥解密接收到的nonce值,或者验证与接收到的nonce值关联的处理器的数字签名。
示例13包括示例9的主题,并且可选地,其中,nonce值是第一nonce值,并且该方法还包括:响应于主机计算系统中的启动序列,由NVDIMM生成第二nonce值;将第二nonce值发送到主机计算系统的处理器,以用于主机计算系统进行的验证。
示例14包括示例9的主题,并且可选地,其中,低功率状态是S3系统功率状态,并且全功率状态是S0系统功率状态。
示例15包括一种系统,包括:处理器和耦合到主机处理器的非易失性双列直插式存储器模块(NVDIMM)。NVDIMM包括存储器和控制器,控制器用于:检测系统中的从低功率状态到全功耗状态的转变;在转变之后,从处理器接收nonce值;验证从处理器接收到的nonce值;以及基于成功验证接收到的nonce值,允许处理器访问存储在存储器中的数据。
示例16包括示例15的主题,并且可选地,其中,nonce值是第一nonce值,并且NVDIMM的控制器还用于:响应于系统中的启动序列,生成第二nonce值;将第二nonce值发送到处理器;从处理器接收第三nonce值;将第三nonce值存储在存储器中;以及基于第三nonce值验证第一nonce值。
示例17包括示例16的主题,并且可选地,其中,验证第一nonce值包括比较第一nonce值和第二nonce值。
示例18包括示例15的主题,并且可选地,其中,控制器还用于:使用在处理器与控制器之间建立的秘密密钥解密接收到的nonce值,或者控制器还用于:通过验证与接收到的nonce值关联的处理器的数字签名来验证nonce值。
示例19包括示例15的主题,并且可选地,其中,低功率状态是S3系统功率状态,并且全功率状态是S0系统功率状态。
示例20包括一种非瞬时性计算机可读存储介质,包括计算机可执行指令,指令在由至少一个计算机处理器执行时可操作以:检测主机计算系统中的从低功率状态到全功率状态的转变;在转变之后,从主机计算系统的处理器获得nonce值;验证从处理器获得的nonce值;以及基于成功验证接收到的nonce值,允许主机计算系统访问存储在非易失性双列直插式存储器模块(NVDIMM)中的数据。
示例21包括示例20的主题,并且可选地,其中,指令还可操作以:响应于主机计算系统中的启动序列,生成第二nonce值;将第二nonce值发送到主机计算系统的处理器;从处理器接收第三nonce值;存储第三nonce值;以及基于第三nonce值验证第一nonce值。
示例22包括要包含在主机计算系统中的存储器模块,该存储器模块包括:用于检测主机计算系统中放入从低功率状态到全功率状态的转变的单元;用于在转变之后从主机计算系统的处理器接收nonce值的单元;用于验证从处理器接收到的nonce值的单元;以及用于基于成功验证接收到的nonce值,允许主机计算系统访问存储在存储器模块上的数据的单元。
示例23包括示例22的主题,并且可选地,还包括:用于响应于主机计算系统中的启动序列而生成第二nonce值的单元;用于将第二nonce值发送到主机计算系统的处理器的单元;用于从处理器接收第三nonce值的单元;用于存储第三nonce值的单元;用于基于第三nonce值验证第一nonce值的单元。
示例24包括要包含在主机计算系统中的数据存储装置。数据存储装置包括存储器和耦合到存储器的控制器电路。控制器电路用于:检测主机计算系统中的从全功率状态到低功率状态的第一转变;响应于检测到第一转变而锁定装置;检测主机计算系统中的从低功率状态到全功率状态的第二转变;响应于检测到第二转变而获得一个或多个密语;验证一个或多个密语;以及基于成功验证一个或多个密语,允许主机计算系统访问存储在存储器中的数据。
示例25包括示例24的主题,并且可选地,其中,控制器电路用于:锁定存储器的永久性存储器(PM)区域和存储器的第二级存储器(2LM)区域中的一个或多个。
示例26包括示例24的主题,并且可选地,其中,控制器电路用于:擦除用于解密存储在存储器中的数据的一个或多个密钥。
示例27包括示例24的主题,并且可选地,其中,控制器电路用于:从主机计算系统的Flash存储器获得一个或多个密语。
示例28包括示例24的主题,并且可选地,其中,控制器电路用于:通过以下步骤来验证一个或多个密语:基于获得的密码和装置的静态密钥生成第一端密钥;以及将第一端密钥与先前存储在装置上的第二端密钥进行比较。
示例29包括示例24的主题,并且可选地,其中,低功率状态是S3系统功率状态,并且全功率状态是S0系统功率状态。
示例30包括示例24的主题,并且可选地,还包括篡改检测传感器,其中,控制器电路还用于:响应于篡改检测传感器检测到篡改,禁用对存储在存储器中的数据的访问。
示例31包括示例30的主题,并且可选地,其中,控制器电路用于:通过擦除用于解密存储在存储器中的数据的一个或多个密钥来禁用对存储在存储器中的数据的访问。
示例32包括一种方法,包括:由主机计算系统中的非易失性双列直插存储器模块(NVDIMM)检测主机计算系统中的从全功率状态到低功率状态的第一转变;响应于检测到第一转变,锁定NVDIMM;由NVDIMM检测主机计算系统中的从低功率状态到全功率状态的第二转变;响应于检测到第二转变,获得一个或多个密语;验证一个或多个密语;以及基于成功验证一个或多个密语,允许主机计算系统访问存储在NVDIMM上的数据。
示例33包括示例32的主题,并且可选地,其中,锁定NVDIMM包括:锁定NVDIMM的永久性存储器(PM)区域和NVDIMM的第二级存储器(2LM)区域中的一个或多个。
示例34包括示例32的主题,并且可选地,其中,锁定NVDIMM包括:擦除用于解密存储在NVDIMM上的数据的一个或多个密钥。
示例35包括示例32的主题,并且可选地,其中,获得一个或多个密语包括:从主机计算系统的Flash存储器获得一个或多个密语。
示例36包括示例32的主题,并且可选地,其中,验证一个或多个密语包括:基于获得的密语和NVDIMM的静态密钥生成第一端密钥;以及将第一端密钥与先前存储在NVDIMM中的第二端密钥进行比较。
示例37包括示例32的主题,并且可选地,其中,低功率状态是S3系统功率状态,并且全功率状态是S0系统功率状态。
示例38包括一个系统,包括:处理器和耦合到主机处理器的非易失性双列直插式存储器模块(NVDIMM)。NVDIMM包括存储器和控制器,控制器用于:检测系统中的从全功率状态到低功率状态的第一转变;响应于检测到第一转变,锁定NVDIMM;由NVDIMM检测主机计算系统中的从低功率状态到全功率状态的第二转变;响应于检测到第二转变,获得一个或多个密语;验证一个或多个密语;以及基于成功验证一个或多个密语,允许主机计算系统访问存储在NVDIMM上的数据。
示例39包括示例38的主题,并且可选地,其中,NVDIMM的控制器用于:锁定NVDIMM的永久性存储器(PM)区域和NVDIMM的第二级存储器(2LM)区域中的一个或多个。
示例40包括示例38的主题,并且可选地,其中,NVDIMM的控制器用于:擦除用于解密存储在NVDIMM上的数据的一个或多个密钥。
示例41包括示例38的主题,并且可选地,其中,NVDIMM的控制器用于:从主机计算系统的Flash存储器获得一个或多个密语。
示例42包括示例38的主题,并且可选地,其中,NVDIMM的控制器用于:通过以下步骤验证一个或多个密语:基于获得的密语和NVDIMM的静态密钥生成第一端密钥;以及将第一端密钥与先前存储在NVDIMM中的第二端密钥进行比较。
示例43包括示例38的主题,并且可选地,其中,低功率状态是S3系统功率状态,并且全功率状态是S0系统功率状态。
示例44包括一种非瞬时性计算机可读存储介质,包括计算机可执行指令,指令在由至少一个计算机处理器执行时可操作以:检测主机计算系统中的从全功率状态到低功率状态的第一转变;响应于检测到第一转变,锁定非易失性双列直插式存储器模块(NVDIMM);检测主机计算系统中的从低功率状态到全功率状态的第二转变;响应于检测到第二转变,获得一个或多个密语;验证一个或多个密语;以及基于成功验证一个或多个密语,允许主机计算系统访问存储在NVDIMM上的数据。
示例45包括示例44的主题,并且可选地,其中,指令用于:锁定NVDIMM的永久性存储器(PM)区域和NVDIMM的第二级存储器(2LM)区域中的一个或多个。
示例46包括示例44的主题,并且可选地,其中,指令用于:擦除用于解密存储在NVDIMM上的数据的一个或多个密钥。
示例47包括示例44的主题,并且可选地,其中,指令用于:从主机计算系统的Flash存储器获得一个或多个密语。
示例48包括示例44的主题,并且可选地,其中,指令用于:通过以下步骤来验证一个或多个密语:基于获得的密语和NVDIMM的静态密钥生成第一端密钥;以及将第一端密钥与先前存储在NVDIMM中的第二端密钥进行比较。
示例49包括要包含在主机计算系统中的非易失性双列直插式存储器模块(NVDIMM),该NVDIMM包括:用于检测主机计算系统中的从全功率状态到低功率状态的第一转变的单元;用于响应于检测到第一转变,锁定NVDIMM的单元;用于检测主机计算系统中的从低功率状态到全功率状态的第二转变的单元;用于响应于检测到第二转变而获得一个或多个密语的单元;用于验证一个或多个密语的单元;以及用于基于成功验证一个或多个密语,允许主机计算系统访问存储在NVDIMM上的数据的单元。
示例50包括示例49的主题,并且可选地,还包括:用于基于获得的密语和NVDIMM的静态密钥生成第一端密钥的单元;和用于将第一端密钥与先前存储在NVDIMM中的第二端密钥进行比较的单元。
Claims (24)
1.一种要包括在主机计算系统中的数据存储装置,所述数据存储装置包括:
存储器;和
控制器电路,耦合到所述存储器,用于:
检测所述主机计算系统中的从低功率状态到全功率状态的转变;
在所述转变之后,从所述主机计算系统的处理器接收nonce值;
验证从所述处理器接收到的nonce值;
基于成功验证接收到的nonce值,允许所述主机计算系统访问存储在所述存储器中的数据;以及
基于未成功验证接收到的nonce值,阻止所述主机计算系统访问存储在所述存储器中的数据。
2.根据权利要求1所述的装置,其中,所述nonce值是第一nonce值,并且所述控制器电路还用于:
响应于所述主机计算系统中的启动序列,从所述主机计算系统的处理器接收第二nonce值;
将所述第二nonce值存储在所述存储器中;以及
基于所述第二nonce值,验证所述第一nonce值。
3.根据权利要求2所述的装置,其中,所述控制器电路用于:
通过比较所述第一nonce值和所述第二nonce值来验证所述第一nonce值。
4.根据权利要求1-3任一项所述的装置,其中,所述控制器电路用于:
使用在所述处理器与所述控制器电路之间建立的秘密密钥来解密接收到的nonce值。
5.根据权利要求1-3中任一项所述的装置,其中,所述nonce值是第一nonce值,并且所述控制器电路还用于:
响应于所述主机计算系统中的启动序列,生成第二nonce值;以及
将所述第二nonce值发送到所述主机计算系统的处理器,以用于所述主机计算系统进行的验证。
6.根据权利要求1-3中任一项所述的装置,还包括篡改检测传感器,其中,所述控制器电路还用于:
响应于所述篡改检测传感器检测到篡改,禁用对存储在所述存储器中的数据的访问。
7.一种方法,包括:
由主机计算系统中的非易失性双列直插式存储器模块(NVDIMM)检测所述主机计算系统中的从低功率状态到全功率状态的转变;
在所述转变之后,从所述主机计算系统的处理器接收nonce值;
由所述NVDIMM验证从所述处理器接收到的nonce值;以及
基于成功验证接收到的nonce值,允许所述主机计算系统访问存储在所述NVDIMM上的数据。
8.根据权利要求7所述的方法,其中,所述nonce值是第一nonce值,并且所述方法还包括:
响应于所述主机计算系统中的启动序列,从所述主机计算系统的处理器接收第二nonce值;
将所述第二nonce值存储在所述NVDIMM中;
其中,验证所述第一nonce值是基于对比所述第二nonce值验证所述第一nonce值。
9.根据权利要求8所述的方法,其中,验证所述第一nonce值包括:
比较所述第一nonce值和所述第二nonce值。
10.根据权利要求7-9中任一项所述的方法,还包括:
使用在所述处理器与所述控制器之间建立的秘密密钥来解密接收到的nonce值。
11.根据权利要求7-9中任一项所述的方法,其中,所述nonce值是第一nonce值,并且所述方法还包括:
响应于所述主机计算系统中的启动序列,由所述NVDIMM生成第二nonce值;以及
将所述第二nonce值发送到所述主机计算系统的处理器,以用于所述主机计算系统进行的验证。
12.根据权利要求7-9中任一项所述的方法,其中,所述低功率状态是S3系统功率状态,并且所述全功率状态是S0系统功率状态。
13.一种要包括在主机计算系统中的数据存储装置,所述数据存储装置包括:
存储器;和
控制器电路,耦合到所述存储器,用于:
检测所述主机计算系统中的从全功率状态到低功率状态的第一转变;
响应于检测到所述第一转变,锁定所述装置;
检测所述主机计算系统中的从低功率状态到全功率状态的第二转变;
响应于检测到所述第二转变,获得一个或多个密语;
验证所述一个或多个密语;
基于成功验证所述一个或多个密语,允许所述主机计算系统访问存储在所述存储器中的数据;
基于未成功验证所述一个或多个密语,阻止所述主机计算系统访问存储在所述存储器中的数据。
14.根据权利要求13所述的装置,其中,所述控制器电路用于:
锁定所述存储器的永久性存储器(PM)区域和所述存储器的第二级存储器(2LM)区域中的一个或多个。
15.根据权利要求13所述的装置,其中,所述控制器电路用于:
擦除用于解密存储在所述存储器中的数据的一个或多个密钥。
16.根据权利要求13所述的装置,其中,所述控制器电路用于:
从所述主机计算系统的Flash存储器获得所述一个或多个密语。
17.根据权利要求13-16中任一项所述的装置,其中,所述控制器电路用于:通过以下步骤来验证所述一个或多个密语:
基于所获得的密语和所述装置的静态密钥,生成第一端密钥;以及
将所述第一端密钥与先前存储在所述装置上的第二端密钥进行比较。
18.根据权利要求13-16中任一项所述的装置,还包括篡改检测传感器,其中,所述控制器电路还用于:
响应于所述篡改检测传感器检测到篡改,禁用对存储在所述存储器中的数据的访问。
19.一种非瞬时性计算机可读存储介质,包括计算机可执行指令,所述计算机可执行指令在由至少一个计算机处理器执行时,可操作以:
检测主机计算系统中的从全功率状态到低功率状态的第一转变;
响应于检测到所述第一转变,锁定所述主机计算系统中的非易失性双列直插式存储器模块(NVDIMM);
检测所述主机计算系统中的从低功率状态到全功率状态的第二转变;
响应于检测到所述第二转变,获得一个或多个密语;
验证所述一个或多个密语;以及
基于成功验证所述一个或多个密语,允许所述主机计算系统访问存储在所述NVDIMM上的数据。
20.根据权利要求19所述的计算机可读存储介质,其中,所述指令用于:
锁定所述NVDIMM的永久性存储器(PM)区域和所述NVDIMM的第二级存储器(2LM)区域中的一个或多个。
21.根据权利要求19所述的计算机可读存储介质,其中,所述指令用于:
擦除用于解密存储在所述NVDIMM上的数据的一个或多个密钥。
22.根据权利要求19所述的计算机可读存储介质,其中,所述指令用于:
从所述主机计算系统的Flash存储器获得所述一个或多个密语。
23.根据权利要求19-22中任一项所述的计算机可读存储介质,其中,所述指令用于:通过以下步骤来验证所述一个或多个密语:
基于所获得的密语和所述NVDIMM的静态密钥,生成第一端密钥;以及
将所述第一端密钥与先前存储在所述NVDIMM中的第二端密钥进行比较。
24.根据权利要求19-22中任一项所述的计算机可读存储介质,其中,所述低功率状态是S3系统功率状态,并且所述全功率状态是S0系统功率状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/457,928 US11354415B2 (en) | 2019-06-29 | 2019-06-29 | Warm boot attack mitigations for non-volatile memory modules |
US16/457,928 | 2019-06-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112149190A true CN112149190A (zh) | 2020-12-29 |
Family
ID=68237869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010221746.0A Pending CN112149190A (zh) | 2019-06-29 | 2020-03-26 | 用于非易失性存储器模块的热启动攻击缓解 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11354415B2 (zh) |
EP (1) | EP3757838B1 (zh) |
CN (1) | CN112149190A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11743058B2 (en) * | 2020-03-05 | 2023-08-29 | International Business Machines Corporation | NVDIMM security with physically unclonable functions |
US20210319143A1 (en) * | 2021-06-25 | 2021-10-14 | Intel Corporation | Memory bus link authentication and encryption mechanisms for hardware-based replay protection |
US20230061037A1 (en) * | 2021-09-01 | 2023-03-02 | Micron Technology, Inc. | Apparatus with power-based data protection mechanism and methods for operating the same |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6009495A (en) | 1989-12-29 | 1999-12-28 | Packard Bell Nec | Protected address range in an electrically erasable programmable read only memory |
US6185678B1 (en) * | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap architecture |
US7216110B1 (en) * | 1999-10-18 | 2007-05-08 | Stamps.Com | Cryptographic module for secure processing of value-bearing items |
US7003676B1 (en) * | 2001-05-10 | 2006-02-21 | Advanced Micro Devices, Inc. | Locking mechanism override and disable for personal computer ROM access protection |
US7149854B2 (en) * | 2001-05-10 | 2006-12-12 | Advanced Micro Devices, Inc. | External locking mechanism for personal computer memory locations |
US7007300B1 (en) * | 2001-05-10 | 2006-02-28 | Advanced Micro Devices, Inc. | Secure booting of a personal computer system |
US9613215B2 (en) * | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
US8335931B2 (en) * | 2008-06-20 | 2012-12-18 | Imation Corp. | Interconnectable personal computer architectures that provide secure, portable, and persistent computing environments |
US8032707B2 (en) * | 2008-09-15 | 2011-10-04 | Microsoft Corporation | Managing cache data and metadata |
CA2743958C (en) * | 2008-11-24 | 2016-11-08 | Certicom Corp. | System and method for hardware based security |
US9208459B2 (en) * | 2009-07-10 | 2015-12-08 | Certicom Corp. | System and method for performing serialization of devices |
US8341393B2 (en) * | 2009-12-17 | 2012-12-25 | Lenovo (Singapore) Pte. Ltd. | Security to extend trust |
US8745366B2 (en) * | 2011-03-31 | 2014-06-03 | Nvidia Corporation | Method and apparatus to support a self-refreshing display device coupled to a graphics controller |
KR101662616B1 (ko) * | 2012-09-14 | 2016-10-05 | 인텔 코포레이션 | 저전력 상태시 메모리 영역 보호 방법 및 장치 |
US10389709B2 (en) * | 2014-02-24 | 2019-08-20 | Amazon Technologies, Inc. | Securing client-specified credentials at cryptographically attested resources |
US10303879B1 (en) * | 2014-11-06 | 2019-05-28 | Amazon Technologies, Inc. | Multi-tenant trusted platform modules |
US9710651B2 (en) * | 2015-04-10 | 2017-07-18 | Vixs Systems Inc. | Secure processor for SoC initialization |
US9813395B2 (en) * | 2015-05-19 | 2017-11-07 | Anvaya Solutions, Inc. | System and method for authenticating and enabling an electronic device in an electronic system |
US20170168747A1 (en) * | 2015-12-11 | 2017-06-15 | Intel Corporation | Intelligent memory support for platform reset operation |
US10516533B2 (en) | 2016-02-05 | 2019-12-24 | Mohammad Mannan | Password triggered trusted encryption key deletion |
US9977914B1 (en) * | 2016-02-25 | 2018-05-22 | Sprint Communications Company L.P. | Electronic device security through boot cycles |
US10318737B2 (en) * | 2016-06-30 | 2019-06-11 | Amazon Technologies, Inc. | Secure booting of virtualization managers |
US10536266B2 (en) * | 2017-05-02 | 2020-01-14 | Seagate Technology Llc | Cryptographically securing entropy for later use |
US11233650B2 (en) * | 2019-03-25 | 2022-01-25 | Micron Technology, Inc. | Verifying identity of a vehicle entering a trust zone |
US20200396054A1 (en) * | 2019-06-17 | 2020-12-17 | Macronix International Co., Ltd. | Secure Memory Read |
-
2019
- 2019-06-29 US US16/457,928 patent/US11354415B2/en active Active
-
2020
- 2020-03-19 EP EP20164179.2A patent/EP3757838B1/en active Active
- 2020-03-26 CN CN202010221746.0A patent/CN112149190A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11354415B2 (en) | 2022-06-07 |
US20190325142A1 (en) | 2019-10-24 |
EP3757838A1 (en) | 2020-12-30 |
EP3757838B1 (en) | 2023-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10762216B2 (en) | Anti-theft in firmware | |
US11374967B2 (en) | Systems and methods for detecting replay attacks on security space | |
US10516533B2 (en) | Password triggered trusted encryption key deletion | |
JP6137499B2 (ja) | 方法および装置 | |
JP6053786B2 (ja) | Arm(登録商標)トラストゾーン実施のためのファームウェア基盤トラステッドプラットフォームモジュール(tpm) | |
US5937063A (en) | Secure boot | |
US7917741B2 (en) | Enhancing security of a system via access by an embedded controller to a secure storage device | |
EP3757838B1 (en) | Warm boot attack mitigations for non-volatile memory modules | |
EP2619707B1 (en) | Verification and protection of genuine software installationv using hardware super key | |
US10148444B2 (en) | Systems and methods for storing administrator secrets in management controller-owned cryptoprocessor | |
Buhren et al. | Fault attacks on encrypted general purpose compute platforms | |
US8108905B2 (en) | System and method for an isolated process to control address translation | |
US20110302660A1 (en) | Method and apparatus for securing digital devices with locking clock mechanism | |
US9177160B1 (en) | Key management in full disk and file-level encryption | |
JP5767657B2 (ja) | 不揮発性メモリが記憶するデータを保護する方法およびコンピュータ | |
CN111357003A (zh) | 预操作系统环境中的数据保护 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |