CN104520872A - 在低功率状态期间保护存储器区的方法和装置 - Google Patents
在低功率状态期间保护存储器区的方法和装置 Download PDFInfo
- Publication number
- CN104520872A CN104520872A CN201280075143.8A CN201280075143A CN104520872A CN 104520872 A CN104520872 A CN 104520872A CN 201280075143 A CN201280075143 A CN 201280075143A CN 104520872 A CN104520872 A CN 104520872A
- Authority
- CN
- China
- Prior art keywords
- signature
- data structure
- str
- district
- processor system
- 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.)
- Granted
Links
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/0625—Power saving in storage systems
-
- 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
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- 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
-
- 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
- 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
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Sources (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
所公开的示例方法涉及当将处理器系统转变到低功率模式时,基于存储了在低功率模式期间被保护的存储器区的存储器地址的数据结构,来至少产生第一签名。在处理器系统从低功率模式的恢复过程期间,基于存储了在低功率模式期间被保护的存储器区的存储器地址的数据结构,来至少产生第二签名。当第一签名匹配第二签名时,使处理器系统从低功率模式恢复。当第一签名不匹配第二签名时,产生错误。
Description
技术领域
本公开通常涉及处理器系统,且更特别地涉及在低功率状态期间保护处理器系统的存储器区的方法和装置。
背景技术
能源之星标准定义电子设备的可接受的低功率消耗额定值的功率水平。为了符合这样的能源之星标准,电子设备常常实现一个或多个低功率模式。这样的低功率模式包括完全断开功率状态、挂起(suspend)到RAM(随机存取存储器)功率状态、挂起到盘(休眠)状态、和/或一种或多种类型的待机功率状态。完全断开功率状态一般消耗任何平台功率状态的最低数量的功率。然而,完全断开功率状态需要平台在通电操作被再次应用之后完成平台软件的完全引导(boot)。这样的完全引导引起不希望有的引导时延。
挂起到RAM功率状态是完全断开状态的替代状态。挂起到RAM功率状态保持平台软件的操作状态(如它紧接着在进入挂起到RAM功率状态之前存在的那样)。因为平台软件操作状态在挂起到RAM功率状态期间保持在RAM中,平台软件只需要执行引导过程的部分,以在它在进入挂起到RAM状态之前的断开处继续。
附图说明
图1示出在活动功率状态和挂起到RAM(随机存取存储器)功率状态之间转变的示例处理器系统。
图2示出可用于在处理器系统的低功率状态期间保护存储器区的图1的示例处理器系统的示例部件。
图3示出用于存储在低功率状态期间存储在系统存储器中的平台软件的被保护区的签名和位置信息的示例数据结构格式。
图4示出表示计算机可读指令的示例流程图,所述计算机可读指令根据本公开的教导可被执行来在低功率模式功率状态和活动功率状态之间转变图1的处理器系统。
图5示出表示计算机可读指令的示例流程图,所述计算机可读指令可被执行来在冷引导或从低功率状态恢复期间,执行主机引导序列以引导处理器系统。
图6示出表示计算机可读指令的示例流程图,所述计算机可读指令可被执行来将处理器系统转变到低功率状态。
图7A和7B示出表示计算机可读指令的示例流程图,所述计算机可读指令可被执行来对软件平台操作状态验证存储数据的系统存储器的被保护区。
图8示出表示计算机可读指令的示例流程图,所述计算机可读指令可在冷引导过程或从低功率状态恢复的恢复过程下,被执行来引导处理器系统。
图9示出表示计算机可读指令的示例流程图,所述计算机可读指令可被执行来产生可用来认证挂起到RAM数据结构的签名。
图10示出表示计算机可读指令的示例流程图,所述计算机可读指令可被执行来验证挂起到RAM数据结构的有效性。
具体实施方式
本文公开的示例方法、装置、系统、以及制品能够在处理器系统的低功率状态期间保护存储器的区。在本文中关于挂起到RAM(随机存取存储器)功率状态描述了所公开的示例。然而,本文公开的示例可此外或可选地用于在处理器系统的其它功率状态期间保护存储器的区。
处理器系统可配置成在不同功率状态之间转变(范围从完全通电到完全断开状态)。这些不同的功率状态被提供以节约功率。中间功率状态例如挂起到RAM功率状态有时用于:达到在较低功率消耗和具有(比或者当从完全断开状态或挂起到盘(例如休眠)功率状态执行冷引导时可能的相对快地)恢复操作(例如退出挂起到RAM功率状态到完全接通状态)的能力之间的平衡。挂起到RAM功率状态是低功率状态,其中处理器系统保持在(当处理器系统发起其到挂起到RAM状态的转变时)运行的平台软件(例如操作系统(OS)和/或应用)的随机存取存储器中的状态。当处理器系统恢复或退出挂起到RAM状态到完全接通功率状态时,处理器系统不需要执行整个平台引导软件,如在从完全断开状态或休眠状态执行冷引导时所需要的。在之前的系统中,在恢复时不执行整个平台引导软件,这引入了潜在的安全风险,因为平台系统存储器可能被危害(当它在挂起到RAM功率状态中时)。例如,恶意代码可被写到存储平台软件的操作状态的存储器区。当从这样的之前的系统的挂起到RAM状态恢复时,被危害的平台软件可被执行,并允许攻击者控制系统或者危害系统。
与(当在挂起到RAM功率状态中时)有安全漏洞的之前的系统不同,在本文公开的示例可用于在处理器系统在挂起功率状态或低功率状态(例如挂起到RAM功率状态)中时,实现可信恢复,以给平台软件和系统集成器提供特征来保护平台软件。
图1示出示例处理器系统100,其可用于在处理器系统100的低功率状态期间实现本文公开的示例以保护存储器区。在所示示例中,处理器系统100被示为在活动功率状态102和挂起到RAM(STR)功率状态104之间转变。在所示示例的活动功率状态102中,微处理器(uP)子系统106、通信子系统108、存储器子系统110、以及用户接口(I/F)子系统112被示为完全被供电。在所示示例的挂起到RAM功率状态104中,微处理器子系统106、通信子系统108、存储器子系统110、以及显示器子系统112被示为在低功率状态中,其中功率从其部分被移除。
在所示示例中,微处理器子系统106、通信子系统108、存储器子系统110、以及显示器子系统112仅仅被部分地供电,而功率保持施加到部分114、116、118、以及120。以这种方式,被供电的部分114、116、118、以及120可用于恢复处理器系统100的活动功率状态102(从挂起到RAM功率状态104)。在所示示例中,被供电的微处理器部分112包括被持续供电的存储器(例如图2的持续被供电的存储器212)以将地址或指针存储到认证表(例如图2的挂起到RAM数据结构216的指针),认证表存储安全参数(例如签名)和在挂起到RAM功率状态104期间存储在RAM(例如图2的系统存储器210)中的平台软件的存储器地址位置。在所示示例中,被供电的通信子系统部分114可包括到唤醒LAN(局域网)电路或其它唤醒网络电路的功率,以使用网络通信来恢复处理器电路100。在所示示例中,被供电的存储器子系统部分116包括用于在处理器系统100在挂起到RAM功率状态104中时存储平台软件的状态的系统存储器(例如图2的系统存储器210)。所示示例的被供电的用户接口部分118可包括功率以检测电源/唤醒按钮的压下或键盘键的压下或任何其它类型的人机接口设备(HID)的其它用户输入。
在本文公开的示例能够使用可信恢复来通过提供各种示例保护特征或信任特征,将处理器系统100从挂起到RAM功率状态104转变到活动状态102。在所示示例中,可信恢复(a)实质上减小了恶意攻击改变系统存储器(例如图2的系统存储器210)的内容的能力,其中所述系统存储器存储当在低功率模式(例如挂起到RAM功率状态104)中时的平台软件的状态;(b)实质上减小执行系统存储器重放攻击和/或回滚攻击的能力;(c)能够指定在系统存储器(例如图2的系统存储器210)中的多个认证/非认证区;(d)使主机处理器(例如图2的主机处理器202)能够产生/认证所选择的被保护区(例如图2的被保护区218)的签名而不知道签名密钥;以及(e)使(例如主机处理器(例如图2的主机处理器202)、安全处理器(例如图2的安全处理器204)、和/或处理器系统)的硬件制造商和第三方销售商能够指定被保护区(例如图2的被保护区218)的量(例如至少最小量),其中所述被保护区将通过使用根据本文公开的可信恢复技术的认证和验证过程被保护。如下面详细描述的,本文公开的示例通过以下来提供这些保护:在转变到挂起到RAM功率状态104期间,认证/签名系统存储器(例如动态随机存取存储器(DRAM))的关键部分,并在从挂起到RAM状态104恢复到活动功率状态102中时,验证系统存储器的那些已认证/签名的关键部分。在所公开的示例中,引导序列的关键部分在引导序列期间聚合,使得引导序列的阶段N添加关于阶段N+1的被保护区(例如图2的被保护区218)。为了抵御回滚攻击,随机或伪随机值(例如临时值)合并到认证/签名过程中,并在挂起到RAM功率状态104期间存储在被持续供电的存储器(例如图2的被持续供电的存储器212)中。
图2示出可用于管理处理器系统100的功率状态转变的图1的示例处理器系统100的示例部件。在所示示例中,处理器系统100包括主机处理器(CPU)202、安全处理器(CPU)204、闪存206、主机引导RAM 208、系统存储器210、以及被持续供电的存储器212。所示示例的处理器系统100可以是例如服务器、个人计算机、移动电话(例如蜂窝电话)、个人数字助理(PDA)、互联网电器、DVD播放器、CD播放器、数字视频记录器、蓝光播放器、游戏控制台、个人视频记录器、机顶盒、或任何其它类型的计算设备。
在所示示例中,主机CPU 202、安全CPU 204、以及主机引导RAM 208位于同一硅管芯上,使得在处理器202和204之间的处理器间通信和与主机引导RAM 208的通信不暴露于硅管芯之外。这通过实质上减小对在主机CPU 202、安全CPU 204、和/或主机引导RAM 208之间的安全通信和交换的安全数据的外部可访问性,来提供在本文公开的示例中进一步的安全性。此外在所示示例中,闪存206和系统存储器210位于单独的集成电路上,集成电路位于与包含主机CPU 202、安全CPU 204、以及主机引导RAM 208的硅管芯相同的电路板上。
可通过使用来自任何期望系列或制造商的处理器或控制器来实现处理器202和204。在所示示例中,处理器间通信(IPC)路径214设置在处理器202和204之间以实现其间的处理器间通信。在所示示例中,主机处理器202包括可使用嵌入式静态随机存取存储器(SRAM)实现的被持续供电的存储器212。因为SRAM是易失性存储器,它在所示示例中在低功率模式(例如图1的挂起到RAM功率状态104)期间,保持被供电(或其一部分保持被供电),使得存储在其中的数据被保存。
处理器202和204与闪存206、主机引导RAM 208、以及系统存储器210通信。虽然未示出,处理器202和204也可与存储操作系统和/或应用的大容量存储器(例如硬盘驱动器)通信。在所示示例中,闪存206是用于存储用于引导处理器系统100的参数(例如安全参数和/或当功率被完全移除时不在易失性存储器中保存的其它参数)的非易失性存储器。所示示例的主机引导RAM 208存储用于引导处理器系统100并装载操作系统的引导代码。所示示例的主机引导RAM 208也存储制造商所需的区表224以指示存储在系统存储器210中的平台软件的被保护区(例如图2的被保护区218)。在所示示例中,主机CPU 202、安全CPU 204、处理器系统100、和/或处理器系统100的一个或多个硬件部件的硬件制造商指定在制造商所需的区表224中指示的区(例如被保护区218),使得那些指定的区使用本文公开的示例在挂起到RAM功率状态104(图1)期间被保护以实现可信恢复。
在所示示例中,主机引导RAM 208也存储条件存取(CA)所需的区表226(例如第三方所需的区表)以指示在系统存储器210中存储的平台软件的第三方指定的被保护区(例如图2的被保护区218)。在所示示例中,CA所需的区表226是可由售后产品或发展(例如在处理器系统100中的售后软件和/或硬件安装)的第三方访问和修改的。例如,一个或多个第三方指定在CA所需的区表226中指示的区(例如被保护区218),使得那些指定区使用本文公开的示例在挂起到RAM功率状态104(图1)期间被保护以实现可信恢复。在所示示例中,安全CPU 204在主机CPU 202开始执行指令之前将CA所需的区表226拷贝到主机引导RAM 208中并从主机引导RAM 208认证。在所示示例中,这在功率状态转变期间发生,其中主机CPU202从其重置矢量引导(例如当从挂起到RAM功率状态104恢复和/或在冷引导期间时)。在一些示例中,CA所需的区表226可存储在阶段1引导装载程序(loader)(例如图5所示的阶段1引导过程)期间被认证的主机引导RAM 208的认证区域中。可选地,CA所需的区表226可被实现为阶段1引导装载程序参数块的部分。
使用制造商所需的区表224和CA所需的区表226使硬件制造商和第三方能够指定他们认为使用本文公开的示例的保护中有用的被保护区(例如被保护区218)。在一些示例中,制造商所需的区表224和CA所需的区表226可以可选地被实现为存储在主机引导RAM 208中的单个表。
所示示例的系统存储器210存储:在处理器系统100从活动功率状态102转变到图1的挂起到RAM功率状态104时运行的平台软件(例如操作系统和/或应用)的操作状态。以这种方式,处理器系统102可基于存储在系统存储器210中的平台软件状态,从挂起到RAM功率状态104转变到活动功率状态102以恢复它在进入挂起到RAM功率状态104之前所处于的相同操作状态。例如,操作系统可恢复到其相同的以前操作状态,且以前装载和运行的应用可恢复到其相同的以前的操作状态。
使用易失性动态随机存取存储器(DRAM)来实现所示示例的系统存储器210。在一些示例中,为了使这样的易失性DRAM能够在挂起到RAM功率状态104中的同时保存其数据,至少最小量的功率被提供到易失性DRAM,且易失性DRAM被设置为在低功率、自我刷新模式中操作,其中存储在其中的数据被保存。在其它示例中,可使用缓存存储器、易失性SRAM、和/或任何其它类型的易失性或非易失性存储器来实现系统存储器210。
在所示示例中,系统存储器210存储平台软件的挂起到RAM(STR)数据结构216和被保护区218。在所示示例中,被保护区218存储在挂起到RAM功率状态104期间存储在系统存储器210中的平台软件的选定部分,所述部分将通过使用安全参数(例如签名)对被保护区218进行签名或认证而被保护免受攻击。STR数据结构216将指向平台软件的被保护区218的地址或指针存储在使用本文公开的示例在挂起到RAM功率状态104期间保护的系统存储器210中。所示示例的STR数据结构216也存储用于认证其数据并在从挂起到RAM功率状态104恢复时确定其数据的有效性的安全参数(例如签名)。下面关于图3描述用于在所示示例中实现STR数据结构216的示例格式。
通过攻击者修改在STR数据结构216中的信息以指向存储恶意软件的系统存储器210的不同区,可在处理器系统100上尝试攻击,以便在处理器系统100恢复到完全活动的功率状态102时使主机CPU 202执行这样的恶意代码。为了检测这样的修改是否存在于STR数据结构216中,在本文公开的验证过程在处理器系统100的可信恢复期间被执行,且验证过程在它检测到在挂起到RAM功率状态104期间STR数据结构216被修改时,产生错误。以这种方式,主机CPU 202和/或安全CPU 204可防止处理器系统100继续进行恢复过程,使得处理器系统100不能被恶意软件危害。
在所示示例中,主机CPU 202的被持续供电的存储器212将指向STR数据结构216的存储位置(例如存储器地址)的示例STR数据结构指针220存储在系统存储器210中。在处理器系统100从挂起到RAM功率状态104转变的可信恢复过程期间,主机CPU 202可取回STR数据结构指针220来定位STR数据结构216以能够验证平台软件的被保护区218的完整性。
在所示示例中,主机CPU 202的被持续供电的存储器212也存储示例随机/伪随机值222。所示示例的随机/伪随机值222用作临时值以产生验证签名来确认在挂起到RAM功率状态104期间存储在系统存储器210中的平台软件的被保护区208的完整性。在所示示例中,当处理器系统100转变到挂起到RAM功率状态104中时,随机/伪随机值222用于产生验证签名。在产生验证签名之后,随机/伪随机值222安全地存储在被持续供电的存储器212中而免受不希望有的访问。以这种方式,当从挂起到RAM功率状态04恢复时,随机/伪随机值222可从被持续供电的存储器212取回,并用于验证平台软件的被保护区218的完整性。在所示示例中,随机/伪随机值222用于通过用作任何潜在的攻击者非常难以访问或修改的唯一秘密值来抵御重放/回滚攻击,因为它存储在主机CPU 202的被持续供电的存储器212中。此外,随机/伪随机值222不容易被攻击者预测,因为它是足够随机的。在一些示例中,选择随机/伪随机值222的相对大数量的位(例如64位或更多)也通过从时间和存储观点看使攻击者发动碰撞攻击变得非常昂贵来抵御重放/回滚攻击。例如,使用具有相对大数量的位的随机/伪随机值222将需要攻击者存储很多DRAM/STR数据结构置换以发动碰撞攻击。
图3示出示例挂起到RAM(STR)数据结构格式300,其可用于实现图2的STR数据结构216以存储签名和位置信息来认证在图1的挂起到RAM功率状态104期间保存在图2的系统存储器210中的平台软件的被保护区218。在所示示例中,STR数据结构格式300包括用于将STR签名存储在零(0)字节偏移处并占据在STR数据结构216中的16字节的数据尺寸的STR头部签名字段302。所示示例的STR头部签名被用于认证STR数据结构216的STR头部(例如存储在STR头部字段308中)以确认它是有效的(例如它在挂起到RAM功率状态104期间没有被改变或危害)。
所示示例的STR数据结构格式300包括用于将STR分散/集合表签名存储在16字节偏移处并占据在STR数据结构216中的16字节的数据尺寸的STR分散/集合表签名字段304。在所示示例中,STR分散/集合表签名用于认证存储在STR数据结构216中的Nx8字节分散/集合表310以确认它是有效的(例如它在挂起到RAM功率状态104期间没有被改变或危害)。在所示示例中,分散/集合表310将指向位置的指针存储在系统存储器210中,系统存储器210存储平台软件的被保护区218。
所示示例的STR数据结构格式300还包括用于将STR DRAM签名存储在32字节偏移处并占据在STR数据结构216中的16字节的数据尺寸的STRDRAM签名字段306。在所示示例中,STR DRAM签名用于认证在存储在STR数据结构216中的分散/集合表310中规定的DRAM区域以确认它是有效的(例如它在挂起到RAM功率状态104期间没有被改变或危害)。在所示示例中,存储在指针-0字段312中的指针指向由分散/集合表310规定的DRAM区域,且它是被保护区218(图2)的第一16字节对齐缓冲区。
在所示示例中,当处理器系统100转变到挂起到RAM功率状态104时,存储在STR头部签名字段302、STR分散/集合表签名字段304、以及STRDRAM签名字段306中的签名用于签名STR数据结构216。以这种方式,当将处理器系统100从挂起到RAM功率状态104恢复以确定STR数据结构216是否是有效的(例如在挂起到RAM功率状态104期间没有被改变或危害)时,所存储的签名可被使用。例如,潜在的攻击者可修改在STR数据结构216中的信息以指向存储恶意软件的系统存储器210的不同区,以便当处理器系统100恢复到完全活动的功率状态102时使主机CPU 202执行这样的恶意代码。如果这样的修改存在于STR数据结构216中,则在处理器系统100的可信恢复期间执行的验证过程基于STR头部签名字段302、STR分散/集合表签名字段304、和/或STR DRAM签名字段306中的一个或多个的签名而产生错误。
虽然在图3中示出三个签名字段302、304、以及306,更少的签名(例如一个签名或两个签名)或更多的签名(例如多于三个签名)可与本文公开的示例一起使用来认证/签名STR数据结构216并确认它在恢复操作期间的有效性。此外,虽然在本文公开了特定类型的签名(例如头部签名、分散/集合表签名、以及DRAM签名),其它类型的签名和/或产生签名的其它方式可与本文公开的示例一起使用来认证/签名STR数据结构216并确认它在恢复操作期间的有效性。例如,可基于在STR数据结构216中的不同信息(例如更多的信息、更少的信息、或不同地分割的信息)来产生一个或多个签名,只要签名可用于在进入低功率模式中时认证/签名STR数据结构216并在恢复过程期间使它生效。
所示示例的STR头部字段308包括指示STR数据结构格式300的修订版的STR数据结构版本字段316,以及指示存储在分散/集合表310中的分散/集合条目的数量的分散/集合阵列条目数量字段318。
在所示示例中,在分散/集合表310中的每个分散/集合条目包括在被保护区218(图2)中的对应存储器区的存储器地址位置和数据尺寸。分散/集合表310包括指针-0字段312以将指向存储器地址位置的指针存储在:由存储在STR DRAM签名字段306中的STR DRAM签名保护的第一16字节对齐缓冲区的系统存储器210中。分散/集合表310的尺寸-0字段320将数据尺寸存在第一16字节对齐缓冲区的字节中。所示示例的分散/集合表310包括多个其它指针/尺寸字段对322,其指示在系统存储器210中的存储器地址位置和其它16字节对齐缓冲区的对应的数据尺寸,一直到对应于指针-N字段324和尺寸-N字段326的第N个16字节对齐缓冲区。在所示示例中,指针和尺寸字段312、320、322、324、以及326指在存储被保护区218的系统存储器210中的16字节对齐缓冲区。通过以这种方式将被保护区218的地址和尺寸存储在STR数据结构216中,在本文公开的示例可通过依赖于STR数据结构216的认证/签名来确定当从挂起到RAM功率状态104恢复时访问被保护区218是否是安全的。
在所示示例中,分散/集合表310可扩展为16字节的倍数的尺寸。为了这个可扩展性,给分散/集合表310提供填充字节328。
虽然在图3中结合特定的数据尺寸(例如4字节、8字节、16字节、32字节等)和字节偏移示出示例STR数据结构格式300,其它数据尺寸和/或字节偏移可用于STR数据结构格式300的参数(例如签名的数据尺寸和/或字节偏移和/或其它参数)。虽然分散/集合表310指16字节对齐缓冲区,分散/集合表310可适合于与其它缓冲区尺寸一起使用。此外,虽然在分散/集合表310中的指针和尺寸值在所示示例中用于指定被保护区218(图2)的位置和尺寸,可此外或可选地使用用于指定被保护区218的位置和/或尺寸的其它适当的方式。
图4、5、6、7A、7B、以及8-10表示可由处理器系统100(图1和2)执行来在低功率状态期间保护存储器的区的机器可读指令,如在本文中公开的。在这些示例中,机器可读指令包括用于由一个或多个处理器(例如图2的主机CPU 202和安全CPU 204)执行的程序。程序可体现在存储在有形计算机可读介质(例如CD-ROM、软盘、硬盘驱动器、数字通用盘(DVD)、蓝光盘)、或与处理器202和204相关联的存储器上的软件中,但整个程序和/或其部分可以可选地由除了处理器202和204以外的设备执行和/或体现在固件或专用硬件中。此外,虽然参考图4、5、6、7A、7B、以及8-10所示的流程图描述了示例程序,可以可选地使用实现示例处理器系统100的很多其它方法。例如可改变块的执行的顺序和/或可改变、消除、或组合一些所描述的块。
如上面提到的,可使用存储在有形计算机可读介质(例如硬盘驱动器、闪存、只读存储器(ROM)、光盘(CD)、数字通用盘(DVD)、缓存、随机存取存储器(RAM))和/或任何其它存储介质上的编码的指令(例如计算机可读指令)来实现图4、5、6、7A、7B、以及8-10的示例过程,其中信息被存储任何持续时间(例如延长的时间段、永久地、短暂时刻、暂时缓冲、和/或信息的缓存)。如在本文中使用的,术语“有形计算机可读介质”明确地被定义为包括任何类型的计算机可读存储设备并排除传播信号。此外或可选地,使用存储在非暂时性计算机可读介质(例如硬盘驱动器、闪存、只读存储器、光盘、数字通用盘、缓存、随机存取存储器)和/或任何其它存储介质上的编码的指令(例如计算机可读指令)来实现图4、5、6、7A、7B、以及8-10的示例过程,其中信息被存储任何持续时间(例如延长的时间段、永久地、短暂时刻、暂时缓冲、和/或信息的缓存)。如在本文中使用的,术语“非暂时性计算机可读介质”明确地被定义为包括任何类型的计算机可读存储设备或存储磁盘并排除传播信号。如在本文中使用的,当短语“至少”在权利要求的序言中用作过渡词时,它以与术语“包括”是开放的相同的方式是开放的。因此,在序言中使用“至少”作为过渡词的权利要求可包括除了在权利要求中明确列举的那些元件以外的元件。
图4是根据本公开的教导的表示在活动功率状态102(图1)和挂起到RAM功率状态104(图1)之间转变图1的处理器系统100的计算机可读指令的示例流程图。为了更详细的讨论,下面描述的图5、6、7A、7B、以及8-10示出可被执行来在活动功率状态102和挂起到RAM功率状态104之间转变处理器系统100的额外的示例操作,如在本文中公开的。
详细地转到图4,最初,主机CPU 202(图2)接收低功率模式指令(块402)。所示示例的低功率模式指令是将处理器系统100(图1和2)转变到挂起到RAM功率状态104(图1)的指令。安全CPU 204(图2)添加条目以识别在图2的STR数据结构216中的被保护区218(块404)。例如,安全CPU 204将指示被保护区218的质量的信息存储在STR数据结构216(图2)的分散/集合阵列条目数量字段318(图3)中,并存储描述被保护区218的位置和尺寸的STR数据结构216的分散/集合表310(图3)中的条目。在所示示例中,安全CPU 204基于在图2的制造商所需的区表224中的由硬件制造商指定的存储器区、和/或在图2的条件存取所需的区表226中的由一个或多个第三方指定的存储器区,来确定哪些存储器区是被保护区218。
安全CPU 204产生用于认证STR数据结构216的签名(块406)。例如,安全CPU 204产生用于存储在图3的STR头部签名字段302、STR分散/集合表签名304、以及STR DRAM签名字段306中的签名。安全CPU 204可使用如下的任何适当的函数以产生签名,包括:例如基于密码的消息认证代码(CMAC)函数、基于散列的消息认证代码(HMAC)、或用于产生签名的任何其它适当函数。在所示示例中,安全CPU 204通过将签名产生函数应用于存储在STR数据结构216的STR头部字段308(图3)中的STR头部来产生STR头部签名。在所示示例中,安全CPU 204通过将签名产生函数应用于存储在STR数据结构216的STR分散/集中表310(图3)中的STR分散/集中表来产生STR分散/集中表签名。在所示示例中,安全CPU204通过将签名产生函数应用于由分散/集合表310的指针-0字段312指向的(并占据被保护区218(图2)的第一16字节对齐缓冲区的)DRAM区域来产生STR DRAM签名。在一些示例中,当产生签名以添加额外的认证强度时可结合其它数据(例如随机/伪随机值)来使用签名产生函数。
安全CPU 204将签名存储在STR数据结构216中(块408)。例如,安全CPU 204将签名存储在STR数据结构216(图2)的STR头部签名字段302、STR分散/集合表签名304、以及STR DRAM签名字段306(图3)中。处理器系统100进入低功率模式(块410)。在所示示例中,低功率模式是图1的挂起到RAM功率状态104。
在某个随后的时间,处理器系统100接收恢复指令(块412)。例如,处理器系统100经由图1的通信子系统108接收唤醒LAN指令,或经由图1的用户接口112接收用户输入,或接收任何其它适当的输入(例如唤醒定时器输入、服务中断等)以将处理器系统100从挂起到RAM状态104转变到活动状态102。
安全CPU 204从系统存储器210读取STR数据结构216(块414)。安全CPU 204确定STR数据结构216是否是有效的(块416)。例如,安全CPU 204以与上面关于块406描述的相同的方式重新产生签名,用于与存储在图3的STR头部签名字段302、STR分散/集合表签名字段304、以及STR DRAM签名字段306中的签名进行比较。以这种方式,安全CPU 204可将在块416产生的每个签名与在块406产生的其对应的签名(例如,STR头部签名、STR分散/集合表签名、以及STR DRAM签名)进行比较,以验证STR数据结构216的不同部分并确认STR数据结构216是否是有效的。如果任何重新产生的签名不匹配来自块406的其对应的签名,则安全CPU204可确定在处理器系统100上的潜在攻击被尝试。
如果安全CPU 204确定STR数据结构216是有效的(块418),则主机CPU 202还原平台软件的状态(块420)。主机CPU 202实现处理器系统100的活动功率状态102(块422)。然而,如果在块418安全CPU 204确定STR数据结构216不是有效的(例如重新产生的签名之一不匹配在块406产生的并存储在STR数据结构216中的其对应的签名),则安全CPU 204将错误返回到主机CPU 204(块424)。以这种方式,主机CPU 204可防止处理器系统100恢复活动状态100,并可执行预先定义的操作或过程以防止对处理器系统100的攻击。在一些示例中,这样的预先定义的操作或过程涉及发起处理器系统100的硬重置。在块422处实现活动功率状态之后或在块424处返回错误之后,图4的示例过程结束。
图5示出表示计算机可读指令的示例流程图,所述计算机可读指令可被执行来在冷引导或从挂起到RAM功率状态104(图1)恢复期间执行主机引导序列以引导处理器系统100(图1和2)。在所示示例中,一直到块518和包括块518的操作,作为阶段-1(S1)引导过程的部分而被执行,且块520、522、以及524的操作在阶段-2(S2)引导过程期间被执行。
最初,主机CPU 202执行存储在主机引导RAM 208中的主机引导RAM指令(块502)。主机CPU 202初始化缓存和闪存206(块504)。主机CPU202初始化外部DRAM(块506)。在所示示例中,外部DRAM是系统存储器210。在一些示例中,主机CPU 202使用存储在主机引导RAM 208中的S1参数(阶段-1引导装载程序参数)来初始化外部DRAM。
主机CPU 202经由图2的处理器间通信路径214将ADD区IPC指令发送到安全CPU 204(块508)。在所示示例中,主机CPU 202发出ADD区IPC指令,使得在阶段2引导过程期间存储/创建的平台软件的区可被表示为被保护区218(图2),以便它们可使用本文公开的签名/认证技术来保护。
主机CPU 202确定它是否从完全断电状态执行冷引导(块510)。如果它执行冷引导,则主机CPU 202记录冷引导(块512)并调用阶段-2认证序列(块514)。否则,如果主机CPU 202确定它不执行冷引导(块510),则它从挂起到RAM功率状态104(图1)恢复,且主机CPU 202调用验证DRAM过程(块516)。下面关于图7A和7B描述可在块516处调用的用于验证DRAM的示例过程。
在块514处调用阶段-2认证序列之后或在块516处调用验证DRAM过程之后,主机CPU 202跳到阶段-2公共条目点(块518)。在所示示例中,阶段-2公共条目点允许主机CPU 202执行阶段-2引导过程。
在阶段-2引导过程期间,主机CPU 202执行其它初始化操作(块520)。这样的其它初始化操作可包括:其它初始化微处理器子系统106和/或存储器子系统110的其它部分、初始化通信子系统108的部分、初始化图1的用户接口子系统112的其它部分、和/或按在阶段-2引导过程期间需要出现的而执行由系统设计者配置的任何其它初始化。
主机CPU 202调用恢复切换过程(块522)。下面关于图8描述可在块522处调用的示例恢复切换过程。在所示示例中,恢复切换过程能够添加ACPI表作为被保护区218。主机CPU 202然后完成引导操作的其余部分(块524)。在所示示例中,所执行的其余引导操作是基于主机CPU 202是否执行冷引导或恢复的。图5的示例过程然后结束。
图6示出表示计算机可读指令的示例流程图,所述计算机可读指令可被执行来将处理器系统100(图1和2)从活动功率状态102(图1)转变到挂起到RAM功率状态104(图1)。在所示示例中,图6的示例过程可通过用户输入(例如用户压下/选择睡眠按钮)、超时中断、或任何其它适当的用户和/或机器输入来调用,以将处理器系统100转变到低功率模式。
最初,主机CPU 202冻结应用和中间件(块602),例如停止执行任何进一步的行动直到处理器系统100恢复回到活动功率状态102。主机CPU202挂起驱动器(块604)。主机CPU 202将被保护区218添加到STR数据结构216(块606)。在所示示例中,主机CPU 202通过根据图3的分散/集合表310的格式将位置和尺寸信息添加在STR数据结构216的分散/集合表中,来将平台软件的被保护区218添加到STR数据结构216。以这种方式,STR数据结构216可用于将被保护区218定位在系统存储器210中。主机CPU 202将IPC指令发送到安全CPU 204以签名/认证DRAM(块608)。所示示例的签名DRAM IPC指令使安全CPU 204签名存储在系统存储器210中的STR数据结构216。
安全CPU 204然后执行签名STR数据结构216的操作。最初,安全CPU204产生临时值(块610)。在所示示例中,所产生的临时值是图2的随机或伪随机值222,且它用于产生用于签名/认证STR数据结构216的签名。所示示例的签名包括存储在图3的STR头部签名字段302、STR分散/集合表签名字段304、以及STR DRAM签名字段306中的签名。在所示示例中,随机/伪随机值222用于临时值以使任何潜在的攻击者难以重放DRAM的内容。
安全CPU 204将临时值(例如随机/伪随机值222)和STR数据结构指针220(图2)存储在被持续供电的存储器212中(块612)。以这种方式,临时值(例如随机/伪随机值222)和STR数据结构指针220在挂起到RAM功率状态104期间被保存,且是可访问的以恢复到活动功率状态102,因为被持续供电的存储器212在挂起到RAM功率状态104期间保持被供电。
安全CPU 204对图2的STR数据结构216进行签名(块614)。在所示示例中,安全CPU通过产生对应于图3的STR头部签名字段302、STR分散/集合表签名字段304、以及STR DRAM签名字段306的签名而签名STR数据结构216。下面关于图9描述可用于实现块614的示例签名过程。
安全CPU 204将STR数据结构216和签名(例如在STR头部签名字段302、STR分散/集合表签名字段304、以及STR DRAM签名字段306中的签名)存储在系统存储器210中(块616)。主机CPU 202将处理器系统100转变到挂起到RAM功率状态104中(块618)。图6的示例过程然后结束。
图7A和7B示出表示计算机可读指令的示例流程图,所述计算机可读指令可被执行来验证存储软件平台操作状态的数据的系统存储器210(图2)中的被保护区218(图2)的有效性。可从图5的块516例示图7A和7B的示例过程。如图7A所示,最初,主机CPU 202将验证IPC命令发送到安全CPU 204(块204)。验证IPC命令使安全CPU 204执行验证过程以验证被保护区218的有效性。安全CPU 204从被持续供电的存储器212读取临时值(例如随机/伪随机值222)(块704)。在所示示例中,临时值是当将处理器系统100转变到挂起到RAM功率状态104时在图6的块610处产生的随机/伪随机值222(图2)。
安全CPU 204例如用任何随机数据重写在被持续供电的存储器212中的临时值(例如随机/伪随机值222)(块706)。在所示示例中,以这种方式重写临时值通过不让临时值暴露给潜在的攻击者以重新使用,来抵御重放攻击。安全CPU 204从被持续供电的存储器212读取STR数据结构指针220(块708)。安全CPU 204使用STR数据结构指针220来从系统存储器210定位和读取STR数据结构216(图2)(块710)。安全CPU 204验证STR数据结构216的有效性(块712)。下面关于图10描述可用于在块712处验证STR数据结构216的有效性的示例过程。
安全CPU 204确定签名是否被验证(块714)(图7B)。在所示示例中,检查有效性的签名是在图3的STR头部签名字段302、STR分散/集合表签名字段304、以及STR DRAM签名字段306中的签名的签名。如果安全CPU204在块714处确定一个或多个签名未被验证为有效的,则安全CPU 204产生错误(块716)。在块716处产生错误之后,或如果安全CPU 204在块714处确定所有签名被验证为有效的,则安全CPU 204读取图2的CA所需的区表226(块718)。安全CPU 204也读取图2的制造商所需的区表224(块720)。在所示示例中,安全CPU 204可在主机CPU 202所提供的地址处从主机引导RAM 208取回CA所需的区表226和制造商所需的区表224。例如,CA所需的区表226和制造商所需的区表224所位于的地址可被存储为在S1参数中的指针,并可由主机CPU 202从S1参数取回。
安全CPU 204确定在CA所需的区表226中指定的区是否被STR数据结构216覆盖(块722)。例如,安全CPU 204将在CA所需的区表226中指定的区与在STR数据结构216的分散/集合表310(图3)中指定的被保护区218进行比较。如果在CA所需的区表226中指定的区没有被STR数据结构216覆盖(块722),则安全CPU 204产生错误(块724)。在块724处产生错误之后或如果安全CPU 204在块722处确定在CA所需的区表226中指定的区被STR数据结构216覆盖,则安全CPU 204确定在制造商所需的区表224中指定的区是否被STR数据结构216覆盖(块726)。例如,安全CPU 204将在制造商所需的区表224中指定的区与在STR数据结构216的分散/集合表310(图3)中指定的被保护区218进行比较。如果在制造商所需的区表224中指定的区没有被STR数据结构216覆盖(块726),则安全CPU 204产生错误(块728)。在块728处产生错误之后,或如果安全CPU204在块726处确定在制造商所需的区表224中指定的区被STR数据结构216覆盖,则安全CPU 204将指示例如任何验证错误是否产生、签名在块714处是否成功地被验证为有效的、和/或在CA所需的区表226和制造商所需的区表224中指定的区是否被STR数据结构216覆盖的状态返回到主机CPU 202(块730)。
主机CPU 202例如基于从安全CPU 204接收的状态(例如错误状态或验证成功状态)确定DRAM(例如系统存储器210)是否被验证为有效的(块732)。如果DRAM未被验证,则主机CPU 202执行硬件重置(块734)。在所示示例中,当DRAM未被验证时,可能可在处理器系统100上进行攻击。因此,硬件重置在块734处用于再次初始化处理器系统100以从冷引导状态重新引导,使得系统存储器210的内容被丢弃并被再次装载和/或再次初始化。在执行硬件重置734之后,或如果DRAM在块732处被验证为有效的,则图7A和7B的示例过程结束和/或返回到调用函数或过程,例如图5的示例过程。
图8示出表示计算机可读指令的示例流程图,其可被执行来在冷引导过程或挂起到RAM恢复过程下引导处理器系统100(图1和2)。可通过图5的块522的调用恢复切换操作例示图8的示例过程。最初,主机CPU 202从片上寄存器读取冷引导恢复标记(块802)。例如,可在主机CPU 202中的片上寄存器中设置冷引导恢复标记以指示引导过程是否是冷引导过程,或是将处理器系统100从低功率模式(例如挂起到RAM功率状态104)转变到图1的活动功率状态102的恢复过程。
主机CPU 202基于在块802处读取的冷引导恢复标记来确定引导过程是否是冷引导或恢复(块804)。如果引导过程是冷引导(块804),则主机CPU 202产生ACPI表(块806)并将ACPI表添加到被保护区218(块808)作为CEFDK(消费者电子设备固件开发套件)阶段-2过程的部分。在所示示例中,ACPI表被添加到被保护区218,使得ACPI表被STR数据结构216的签名/认证保护。主机CPU 202设置ACPI表中的唤醒矢量(块810)作为操作系统过程的部分。控制接着返回到冷引导路径(例如在图5中),且图8的示例过程结束。
如果主机CPU 202在块804处确定引导过程是恢复,则主机CPU 202读取以前产生和存储的ACPI表(块812),并使用在ACPI表中的唤醒矢量作为在操作系统中的条目点(块814)作为CEFDK阶段-2过程的部分以继续恢复过程。在所示示例中,在块812和814处访问的ACPI表可以是在冷引导过程期间在被保护区218中产生和存储的ACPI表(例如在块806和808),且在块814处使用的唤醒矢量可以是在冷引导过程期间设置的唤醒矢量(例如在块810处)。控制接着跳到恢复条目点,图8的示例过程结束。
图9示出表示计算机可读指令的示例流程图,其可被执行来产生可用来认证/签名图2的STR数据结构216的签名。图9的示例过程可用于实现图6的块614的操作。图9的示例过程产生密钥,其用于产生图3的STR头部签名字段302、STR分散/集合表签名字段304、以及STR DRAM签名字段306的签名,以对图2的STR数据结构216进行签名。在图9的过程中产生的密钥是被安全地处理的管芯上秘密密钥,使得它们不可由主机软件访问。在所示示例中,为了确保密钥的安全性,只有安全CPU 204能够产生密钥。此外,所示示例的安全CPU 204配置成使用以下过程来产生密钥:在稍后的时间,通过例如当密钥需要被再次创建时挑选具有相同的值的管芯上密钥发生器,来使安全CPU 204能够相同地再次创建或再次产生密钥。所示示例的密钥被相同地再次创建,使得安全CPU 204可基于在转变到挂起到RAM功率状态104期间产生的密钥来签名STR数据结构216,并使得当从挂起到RAM功率状态104恢复时,安全CPU 204可产生相同的密钥用于确认在进入挂起到RAM功率状态104时出现的STR数据结构216的认证/签名。
如图9所示,最初,安全CPU 204产生STR根产生密钥(块902)。在所示示例中,安全CPU 204使用STR根产生密钥来产生用于产生图3的STR头部签名字段302、STR分散/集合表签名字段304、以及STR DRAM签名字段306的签名的随后密钥。安全CPU 204使用STR根产生密钥来产生STR头部密钥(块904)。安全CPU 204产生例如对应于STR头部签名字段302的STR头部签名(块906)。在所示示例中,安全CPU 204通过将签名函数(例如CMAC函数、HMAC函数等)应用于在块904处产生的STR头部密钥、以及STR头部(例如存储在图3的STR头部308中)和临时值(例如图2的随机/伪随机值222)的连接(concatenation),来产生STR头部签名。例如,在块906处使用的签名产生函数可以是SIGNATURE(STRHEADER KEY,CONCATENATE(STR HEADER,NONCE))。
安全CPU 204使用STR根产生密钥来产生STR分散/集合表密钥(块908)。安全CPU 204产生例如对应于图3的STR分散/集合表310的STR分散/集合表签名(块910)。在所示示例中,安全CPU 204通过将签名函数(例如CMAC函数、HMAC函数等)应用于在块908处产生的STR分散/集合表密钥、以及存储在STR分散/集合表310中的信息(例如在图3的STR分散/集合表310的字段312、320、322、324、326、以及328中存储的指针和尺寸信息)和临时值(例如图2的随机/伪随机值222)的连接,来产生STR分散/集合表签名。例如,在块906处使用的签名产生函数可以是SIGNATURE(STR SCATTER/GATHER TABLEKEY,CONCATENATE(SCATTER/GATHER TABLE,NONCE))。
安全CPU 204使用STR根产生密钥来产生STR DRAM密钥(块912)。安全CPU 204产生例如对应于由存储在分散/集合表310的指针-0字段312中的指针指向的被保护区218的第一16字节对齐缓冲区的STR DRAM签名(块914)。在所示示例中,安全CPU 204通过将签名函数(例如CMAC函数、HMAC函数等)应用于在块912产生的STR DRAM密钥、以及由指针-0字段312中的指针指向的被保护区218的16字节对齐缓冲区和临时值(例如图2的随机/伪随机值222)的连接,来产生STR DRAM签名。例如,在块914处使用的签名产生函数可以是SIGNATURE(STR DRAMKEY,CONCATENATE(STR DRAM AREA,NONCE))。
安全CPU 204破坏在块902、904、908、以及912处产生的密钥(块916)。破坏密钥提供进一步的保护以抵御密钥以不希望的方式被访问。图9的示例过程将STR头部签名、STR SG表签名、以及STR DRAM密钥返回(块918)到调用函数或过程,例如图6的示例过程。图9的示例过程然后结束。
虽然图9的示例过程被描述为产生三个签名(即,在块906、910、以及914产生的签名),在其它示例中,可产生更少的签名(例如一个签名或两个签名)或更多的签名(例如多于三个签名)用于认证/签名STR数据结构216。
图10示出表示计算机可读指令的示例流程图,其可被执行来验证STR数据结构216(图2)的有效性。图10的示例过程可用于在从图1的挂起到RAM功率状态的恢复过程期间验证DRAM时,实现图7A的操作712。为了确认STR数据结构218的有效性,示例过程用于以与上面关于图9描述的相同的方式产生密钥和签名。如上面讨论的,用于产生签名的密钥例如通过挑选具有如在图9的过程中使用的相同的种子值的密钥发生器,在随后的时间由安全CPU 204相同地重新创建。密钥然后用于基于STR数据结构216来产生签名以与存储在STR数据结构216中(例如在图3的STR头部签名字段302、STR分散/集合表签名字段304、以及STR DRAM签名字段306中)的签名进行比较。因为在图10的示例过程中产生的密钥与在图9的示例过程中产生的密钥相同,当从挂起到RAM功率状态104恢复时在图10的验证过程中产生的签名应匹配当进入挂起到RAM功率状态104时在图9的认证过程中产生的签名,如果STR数据结构216的内容没有改变(例如没有被潜在的攻击者危害)。
如图10所示,最初,安全CPU 204产生STR根产生密钥(块1002)。例如,安全CPU 204可以用与它在图9的块902处产生STR根产生密钥相同的方式产生STR根产生密钥。安全CPU 204例如以与它在图9的块904处产生STR头部密钥相同的方式产生STR头部密钥(块1004)。安全CPU204例如以与它在图9的块906产生(例如STR头部签名字段302的)STR头部签名相同的方式产生STR头部签名(块1006)。
安全CPU 204验证STR数据结构216的STR头部(块1008)。例如,安全CPU 204将在块1006处产生的STR头部签名与存储在STR数据结构216中(例如在图3的STR头部签名字段302中)的STR头部签名进行比较,以确定STR数据结构216的STR头部(例如在图3的STR头部字段308中的STR头部)是否是有效的。如果STR头部自从处理器系统100进入挂起到RAM功率状态104以来未改变,则签名将匹配以确认STR头部是有效的。
安全CPU 204例如以与它在图9的块908处产生STR分散/集合表密钥相同的方式产生STR分散/集合表密钥(块1010)。安全CPU 204例如以与它在图9的块910处产生STR分散/集合表签名相同的方式产生STR分散/集合表签名(块1012)。安全CPU 204验证STR数据结构216的STR分散/集合表(块1014)。例如,安全CPU 204将在块1006处产生的STR分散/集合签名与存储在STR数据结构216中(例如在图3的STR分散/集合签名字段304中)的STR分散/集合签名进行比较,以确定STR数据结构216的STR分散/集合表(例如在图3的STR分散/集合表310中的STR分散/集合表位置和尺寸信息)是否是有效的。如果STR分散/集合表信息自从处理器系统100进入挂起到RAM功率状态104以来未改变,则签名将匹配以确认STR分散/集合表信息是有效的。
安全CPU 204例如以与它在图9的块912处产生STR DRAM密钥相同的方式产生STR DRAM密钥(块1016)。安全CPU 204例如以与它在图9的块914产生STR DRAM签名相同的方式产生STR DRAM签名(块1018)。安全CPU 204验证由STR数据结构216指向的STR DRAM区域(块1020)。例如,安全CPU 204将在块1018处产生的STR DRAM签名与存储在STR数据结构216中(例如在图3的STR DRAM签名字段306中)的STR DRAM签名进行比较,以确定由图3的指针-0312指向的被保护区218的16字节对齐缓冲区是否是有效的。如果在16字节对齐缓冲区中的信息自从处理器系统100进入挂起到RAM功率状态104以来未改变,则签名将匹配以确认由在指针-0字段312中的指针指向的被保护区218的16字节对齐缓冲区是有效的。
安全CPU 204破坏在块1002、1004、1010、以及1016处产生的密钥(块1022)。破坏密钥提供进一步的保护以抵御密钥以不希望的方式被访问。图10的示例过程将验证状态返回到调用函数或过程,例如图7A和7B的示例过程,且图10的示例过程然后结束。
虽然图10的示例过程被描述为产生三个签名(即,在块1006、1012、以及1018产生的签名),在其它示例中,可产生更少的签名(例如一个签名或两个签名)或更多的签名(例如多于三个签名)用于验证STR数据结构216的有效性。在任何情况下,在图10的示例过程中应产生与在图9的示例过程中产生的相同数量的签名。
所公开的示例方法在处理器系统中管理功率状态。一些所公开的示例方法涉及:当将处理器系统转变到低功率模式时,基于存储了在低功率模式期间被保护的存储器区的存储器地址的数据结构,来至少产生第一签名。一些所公开的示例方法还涉及:在处理器系统从低功率模式的恢复过程期间,基于存储了在低功率模式期间被保护的存储器区的存储器地址的数据结构,来至少产生第二签名。一些所公开的示例方法还涉及:当第一签名匹配第二签名时,使处理器系统从低功率模式恢复,和/或当第一签名不匹配第二签名时产生错误。在一些示例中,低功率模式是挂起到随机存取存储器功率状态,其中平台软件的操作状态存储于在挂起到随机存取存储器功率状态期间保持被供电的随机存取存储器中。
一些所公开的示例还涉及:产生至少一个密钥和随机或伪随机值,并结合在数据结构中的信息使用至少一个密钥和随机或伪随机值来产生第一签名。在一些示例中,在数据结构中的信息包括以下中的至少一个:数据结构头部、或被保护的存储器区的存储器地址和数据尺寸。一些所公开的示例还涉及:再次产生至少一个密钥,在恢复过程期间从被持续供电的存储器取回随机或伪随机值,以及使用再次产生的密钥和取回的随机或伪随机值来产生第二签名。
一些所公开的示例还涉及:基于制造商所需的区表来确定至少一个或一些待保护的存储器区,在所述制造商所需的区表中处理器系统的硬件制造商或处理器系统的部件指定待保护的至少一些存储器区。一些所公开的示例还涉及:基于第三方所需的区表来确定待保护的另一存储器区,在所述第三方所需的区表中第三方指定待保护的另一存储器区。
一些所公开的示例还涉及:在低功率模式期间将指向数据结构的指针存储在被持续供电的存储器中。一些所公开的示例还涉及在恢复过程期间从被持续供电的存储器取回指针,并基于指针在恢复过程期间定位数据结构。
还公开了包括示例公开的指令的示例有形计算机可读存储介质,指令在被执行时使机器执行本文公开的至少一些示例方法。
所公开的示例装置挂起处理器系统。一些所公开的示例装置包括第一存储器、以及与第一存储器通信的处理器。在一些示例中,第一存储器在处理器系统在低功率模式中时保持被供电,且第一存储器存储随机或伪随机值、以及指向数据结构的指针。在一些示例中,数据结构至少存储第一签名以认证存储在数据结构中的信息,其指定存储器区用于在低功率模式期间存储处理器系统的操作状态。在一些示例中,当处理器系统正转变到低功率模式时,处理器基于数据结构和随机或伪随机值产生第一签名。在一些示例中,当处理器系统在从低功率模式恢复的恢复过程中时,处理器基于数据结构和随机或伪随机值至少产生第二签名,并基于至少对第一签名和第二签名的比较,来确定数据结构是否是有效的。在一些示例中,低功率模式是挂起到随机存取存储器功率状态,其中操作状态存储于在挂起到随机存取存储器功率状态期间保持被供电的随机存取存储器中。在一些示例中,第一存储器是嵌入式静态随机存取存储器,且示例装置还包括动态随机存取存储器以存储数据结构。
在一些示例中,处理器还基于制造商所需的区表来确定至少一些存储器区,在所述制造商所需的区表中处理器系统的硬件制造商或处理器系统的部件指定至少一些存储器区。在一些示例中,处理器还基于第三方所需的区表来确定再一个存储器区,在所述第三方所需的区表中第三方指定再一个存储器区。在一些示例中,处理器基于以下中的至少一个来产生第一和第二签名:数据结构头部、或被保护的存储器区的存储器地址和数据尺寸。
在一些示例中,处理器是与主机处理器通信的安全处理器。在这样的一些示例中,当数据结构基于至少对第一签名和第二签名的比较不是有效的时,安全处理器将错误状态传递到主机处理器,且主机处理器基于错误状态来执行硬件重置。
虽然在本文描述了某些示例方法、装置和制品,本专利的覆盖范围不限于此。相反,本专利涵盖完全落在本专利的权利要求的范围内的所有方法、装置和制品。
Claims (20)
1.一种在处理器系统中管理功率状态的方法,包括:
当将处理器系统转变到低功率模式时,基于存储了在所述低功率模式期间被保护的存储器区的存储器地址的数据结构,来至少产生第一签名;
在所述处理器系统从所述低功率模式的恢复过程期间,基于存储了在所述低功率模式期间被保护的存储器区的存储器地址的数据结构,来至少产生第二签名;
当所述第一签名匹配所述第二签名时,使所述处理器系统从所述低功率模式恢复;以及
当所述第一签名不匹配所述第二签名时,产生错误。
2.如权利要求1所述的方法,其中所述低功率模式是挂起到随机存取存储器功率状态,其中平台软件的操作状态存储于在所述挂起到随机存取存储器功率状态期间保持被供电的随机存取存储器中。
3.如权利要求1所述的方法,还包括产生至少一个密钥和随机或伪随机值,以及结合在所述数据结构中的信息使用所述至少一个密钥和所述随机或伪随机值来产生所述第一签名。
4.如权利要求3所述的方法,其中在所述数据结构中的所述信息包括以下中的至少一个:数据结构头部、或被保护的存储器区的存储器地址和数据尺寸。
5.如权利要求3所述的方法,还包括再次产生所述至少一个密钥,在所述恢复过程期间从被持续供电的存储器取回所述随机或伪随机值,以及使用再次产生的密钥和取回的随机或伪随机值来产生所述第二签名。
6.如权利要求1所述的方法,还包括基于制造商所需的区表来确定至少一些待保护的存储器区,在所述制造商所需的区表中所述处理器系统的硬件制造商或所述处理器系统的部件指定所述至少一些待保护的存储器区。
7.如权利要求6所述的方法,还包括基于第三方所需的区表来确定另一待保护的存储器区,在所述第三方所需的区表中第三方指定所述另一待保护的存储器区。
8.如权利要求1所述的方法,还包括在所述低功率模式期间将指向所述数据结构的指针存储在被持续供电的存储器中。
9.如权利要求8所述的方法,还包括在所述恢复过程期间从所述被持续供电的存储器取回指针,并基于所述指针在所述恢复过程期间定位所述数据结构。
10.一种用于挂起处理器系统的装置,包括:
第一存储器,其在所述处理器系统在低功率模式中时保持被供电,所述第一存储器用于存储:
随机或伪随机值,以及
指向数据结构的指针,所述数据结构用于至少存储第一签名以认证存储在所述数据结构中的信息,所述信息指定存储器区以在所述低功率模式期间存储所述处理器系统的操作状态;以及
处理器,其与所述第一存储器通信,所述处理器用于:
当所述处理器系统正转变到所述低功率模式时,基于所述数据结构和所述随机或伪随机值产生所述第一签名,以及
当所述处理器系统在从所述低功率模式恢复的恢复过程中时:
基于所述数据结构和所述随机或伪随机值至少产生第二签名,以及
基于至少对所述第一签名和所述第二签名的比较来确定所述数据结构是否是有效的。
11.如权利要求10所述的装置,其中所述低功率模式是挂起到随机存取存储器功率状态,其中所述操作状态存储于在所述挂起到随机存取存储器功率状态期间保持被供电的随机存取存储器中。
12.如权利要求10所述的装置,其中所述处理器还基于制造商所需的区表来确定至少一些存储器区,在所述制造商所需的区表中所述处理器系统的硬件制造商或所述处理器系统的部件指定所述至少一些存储器区。
13.如权利要求12所述的装置,其中所述处理器还基于第三方所需的区表来确定再一个存储器区,在所述第三方所需的区表中第三方指定所述再一个存储器区。
14.如权利要求10所述的装置,其中所述处理器基于以下中的至少一个来产生所述第一签名和第二签名:数据结构头部、或被保护的存储器区的存储器地址和数据尺寸。
15.如权利要求10所述的装置,其中所述处理器是安全处理器,且还包括与所述安全处理器通信的主机处理器,当所述数据结构基于至少对所述第一签名和所述第二签名的比较不是有效的时:
所述安全处理器将错误状态传递到所述主机处理器;以及
所述主机处理器基于所述错误状态来执行硬件重置。
16.如权利要求10所述的装置,其中所述第一存储器是嵌入式静态随机存取存储器,且还包括动态随机存取存储器以存储所述数据结构。
17.一种包括指令的有形计算机可读存储介质,所述指令在被执行时使机器至少用于:
当将处理器系统转变到低功率模式时,基于存储了在所述低功率模式期间被保护的存储器区的存储器地址的数据结构,来至少产生第一签名;
在所述处理器系统从所述低功率模式的恢复过程期间,基于存储了在所述低功率模式期间被保护的存储器区的存储器地址的数据结构,来至少产生第二签名;
当所述第一签名匹配所述第二签名时,使所述处理器系统从所述低功率模式恢复;以及
当所述第一签名不匹配所述第二签名时,产生错误。
18.如权利要求17所述的有形计算机可读存储介质,其中所述指令还使所述机器基于制造商所需的区表,来确定待保护的至少一个存储器区,在所述制造商所需的区表中所述处理器系统的硬件制造商或所述处理器系统的部件指定所述待保护的至少一个存储器区。
19.如权利要求18所述的有形计算机可读存储介质,其中所述指令还使所述机器基于第三方所需的区表,来确定再一个待保护的存储器区,在所述第三方所需的区表中第三方指定所述再一个待保护的存储器区。
20.如权利要求17所述的有形计算机可读存储介质,其中所述指令还使所述机器用于:
产生至少一个密钥和随机或伪随机值,并结合在所述数据结构中的信息使用所述至少一个密钥和所述随机或伪随机值来产生所述第一签名;以及
再次产生所述至少一个密钥,在所述恢复过程期间从被持续供电的存储器取回所述随机或伪随机值,以及使用再次产生的密钥和取回的随机或伪随机值来产生所述第二签名。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2012/055580 WO2014042650A1 (en) | 2012-09-14 | 2012-09-14 | Methods and apparatus to protect memory regions during low-power states |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104520872A true CN104520872A (zh) | 2015-04-15 |
CN104520872B CN104520872B (zh) | 2018-02-23 |
Family
ID=50275922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280075143.8A Active CN104520872B (zh) | 2012-09-14 | 2012-09-14 | 在低功率状态期间保护存储器区的方法和装置 |
Country Status (6)
Country | Link |
---|---|
US (3) | US8978135B2 (zh) |
EP (1) | EP2895935A4 (zh) |
JP (1) | JP6026666B2 (zh) |
KR (1) | KR101662616B1 (zh) |
CN (1) | CN104520872B (zh) |
WO (1) | WO2014042650A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114077395A (zh) * | 2020-08-12 | 2022-02-22 | 美光科技公司 | 对在待机模式期间在dram中发生不期望的内容改变的防护 |
WO2023216077A1 (zh) * | 2022-05-09 | 2023-11-16 | 华为技术有限公司 | 一种验证方法、装置和系统 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8978135B2 (en) | 2012-09-14 | 2015-03-10 | Intel Corporation | Methods and apparatus to protect memory regions during low-power states |
JP5796725B2 (ja) | 2013-03-22 | 2015-10-21 | カシオ計算機株式会社 | 認証処理装置、認証処理方法及びプログラム |
US9407636B2 (en) * | 2014-05-19 | 2016-08-02 | Intel Corporation | Method and apparatus for securely saving and restoring the state of a computing platform |
US10055370B2 (en) * | 2014-07-09 | 2018-08-21 | Advanced Micro Devices, Inc. | Method and apparatis for processor standby |
US10032029B2 (en) * | 2014-07-14 | 2018-07-24 | Lenovo (Singapore) Pte. Ltd. | Verifying integrity of backup file in a multiple operating system environment |
EP3474148B1 (en) * | 2014-07-23 | 2019-12-04 | GrammaTech, Inc. | Systems and/or methods for automatically protecting against memory corruption vulnerabilities |
US9621549B2 (en) * | 2014-07-25 | 2017-04-11 | Qualcomm Incorporated | Integrated circuit for determining whether data stored in external nonvolative memory is valid |
US9959124B1 (en) | 2014-09-26 | 2018-05-01 | Apple Inc. | Secure bypass of low-level configuration in reconfiguration of a computing system |
US9639425B1 (en) * | 2015-01-13 | 2017-05-02 | Marvell International Ltd. | Signature-based sleep recovery operation flow |
DE102015202049B3 (de) * | 2015-02-05 | 2016-08-18 | Infineon Technologies Ag | System und Verfahren zur Fehlerdetektion von ausgeführtem Programmcode unter Verwendung komprimierter Anweisungssignaturen |
JP2016206951A (ja) * | 2015-04-22 | 2016-12-08 | 富士通株式会社 | 電子装置及び電子装置の制御方法 |
US9760591B2 (en) | 2015-05-14 | 2017-09-12 | Walleye Software, LLC | Dynamic code loading |
US10297003B2 (en) | 2015-09-21 | 2019-05-21 | Qualcomm Incorporated | Efficient saving and restoring of context information for context switches |
US10185633B2 (en) * | 2015-12-15 | 2019-01-22 | Intel Corporation | Processor state integrity protection using hash verification |
US10152599B2 (en) | 2015-12-18 | 2018-12-11 | Intel IP Corporation | Security mechanisms for extreme deep sleep state |
CN105611409B (zh) * | 2016-01-04 | 2019-12-27 | 京东方科技集团股份有限公司 | 一种广告机控制系统及其控制方法和广告机 |
DE102016109892B4 (de) * | 2016-05-30 | 2018-03-01 | Infineon Technologies Ag | Datenverarbeitungsvorrichtung und Verfahren zum Einsparen von Leistung in einer Datenverarbeitungsvorrichtung |
EP3373178A1 (en) * | 2017-03-08 | 2018-09-12 | Secure-IC SAS | Comparison of execution context data signatures with references |
JP6918576B2 (ja) * | 2017-05-24 | 2021-08-11 | キヤノン株式会社 | システム、情報処理装置、方法及びプログラム |
US10198469B1 (en) | 2017-08-24 | 2019-02-05 | Deephaven Data Labs Llc | Computer data system data source refreshing using an update propagation graph having a merged join listener |
EP3514686B1 (en) * | 2017-12-20 | 2023-11-08 | Samsung Electronics Co., Ltd. | Display apparatus and method of operating the same |
US11354415B2 (en) * | 2019-06-29 | 2022-06-07 | Intel Corporation | Warm boot attack mitigations for non-volatile memory modules |
US11340796B2 (en) * | 2019-08-30 | 2022-05-24 | Dell Products L.P. | Method for managing sleep mode at a data storage device and system therefor |
US11068035B2 (en) * | 2019-09-12 | 2021-07-20 | Dell Products L.P. | Dynamic secure ACPI power resource enumeration objects for embedded devices |
US20210097184A1 (en) * | 2019-09-27 | 2021-04-01 | Advanced Micro Devices, Inc. | Secure buffer for bootloader |
US11573815B2 (en) * | 2020-04-29 | 2023-02-07 | Red Hat, Inc. | Dynamic power management states for virtual machine migration |
US11250891B1 (en) | 2020-08-12 | 2022-02-15 | Micron Technology, Inc. | Validation of DRAM content using internal data signature |
US11843939B2 (en) * | 2020-12-16 | 2023-12-12 | Itron, Inc. | Secure messaging for outage events |
US20230205430A1 (en) * | 2021-12-28 | 2023-06-29 | Micron Technology, Inc. | Verification of a volatile memory using a unique identifier |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69233393T2 (de) | 1991-05-17 | 2005-08-11 | Packard Bell NEC, Inc., Woodland Hills | Leistungsmanagementsfunktion für einen rückwärtskompatiblen mikroprozessor |
JP3024308B2 (ja) * | 1991-09-30 | 2000-03-21 | カシオ計算機株式会社 | データ処理装置 |
US5539879A (en) | 1995-05-24 | 1996-07-23 | Dell U.S.A., L.P. | Checksum technique for verifying integrity of disk space reserved for suspend-to-disk operations |
US6081752A (en) | 1995-06-07 | 2000-06-27 | International Business Machines Corporation | Computer system having power supply primary sense to facilitate performance of tasks at power off |
US5944821A (en) | 1996-07-11 | 1999-08-31 | Compaq Computer Corporation | Secure software registration and integrity assessment in a computer system |
US6708274B2 (en) * | 1998-04-30 | 2004-03-16 | Intel Corporation | Cryptographically protected paging subsystem |
US6247151B1 (en) | 1998-06-30 | 2001-06-12 | Intel Corporation | Method and apparatus for verifying that data stored in a memory has not been corrupted |
US6449683B1 (en) * | 1999-12-14 | 2002-09-10 | Intel Corporation | Using non-volatile memory for power management in a computer |
AU2001247941B2 (en) * | 2000-04-11 | 2007-09-06 | Mathis, Richard M. | Method and apparatus for computer memory protection and verification |
US6968469B1 (en) * | 2000-06-16 | 2005-11-22 | Transmeta Corporation | System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored |
US6694451B2 (en) * | 2000-12-07 | 2004-02-17 | Hewlett-Packard Development Company, L.P. | Method for redundant suspend to RAM |
US7010710B2 (en) | 2002-03-12 | 2006-03-07 | International Business Machines Corporation | Proximity sensor enhanced power management |
US7107487B2 (en) | 2002-04-12 | 2006-09-12 | Lenovo (Singapore) Pte Ltd. | Fault tolerant sleep mode of operation |
US7392415B2 (en) | 2002-06-26 | 2008-06-24 | Intel Corporation | Sleep protection |
US6930949B2 (en) * | 2002-08-26 | 2005-08-16 | Micron Technology, Inc. | Power savings in active standby mode |
US7284136B2 (en) * | 2003-01-23 | 2007-10-16 | Intel Corporation | Methods and apparatus for implementing a secure resume |
US8199686B1 (en) * | 2004-03-04 | 2012-06-12 | Marvell International Ltd. | Wireless local area network infrastructure mode for reducing power consumption |
EP1870814B1 (en) * | 2006-06-19 | 2014-08-13 | Texas Instruments France | Method and apparatus for secure demand paging for processor devices |
MXPA06015236A (es) * | 2004-06-29 | 2007-08-21 | Sk Telecom Co Ltd | Metodo de apagado disfrazado para una terminal de comunicacion movil. |
US7373530B2 (en) * | 2005-03-16 | 2008-05-13 | Microsoft Corporation | Systems and methods for providing power-loss protection to sleeping computers systems |
JP2007121374A (ja) * | 2005-10-25 | 2007-05-17 | Seiko Epson Corp | 情報表示装置 |
US7793127B2 (en) * | 2005-12-30 | 2010-09-07 | Intel Corporation | Processor state restoration and method for resume |
JP4835206B2 (ja) * | 2006-03-06 | 2011-12-14 | 富士ゼロックス株式会社 | 情報処理装置 |
US8248629B2 (en) * | 2007-06-21 | 2012-08-21 | Kyocera Mita Corporation | Image forming apparatus with a power mode control section for allocating a printout for a reserved low-key print setting job |
JP4867892B2 (ja) * | 2007-11-01 | 2012-02-01 | 日本電気株式会社 | メモリ制御装置、システム、プログラム、および、方法 |
JP5565778B2 (ja) * | 2009-01-05 | 2014-08-06 | マーベル ワールド トレード リミテッド | 不揮発性メモリデバイスを利用するハイバネートまたはサスペンド方法およびシステム |
US8510569B2 (en) * | 2009-12-16 | 2013-08-13 | Intel Corporation | Providing integrity verification and attestation in a hidden execution environment |
JP2012173919A (ja) * | 2011-02-21 | 2012-09-10 | Toyota Motor Corp | 情報処理装置、車両用電子制御ユニット、データ記憶方法 |
US8874926B1 (en) * | 2012-03-08 | 2014-10-28 | Sandia Corporation | Increasing security in inter-chip communication |
US8978135B2 (en) | 2012-09-14 | 2015-03-10 | Intel Corporation | Methods and apparatus to protect memory regions during low-power states |
-
2012
- 2012-09-14 US US13/976,342 patent/US8978135B2/en active Active
- 2012-09-14 WO PCT/US2012/055580 patent/WO2014042650A1/en active Application Filing
- 2012-09-14 EP EP12884706.8A patent/EP2895935A4/en not_active Withdrawn
- 2012-09-14 CN CN201280075143.8A patent/CN104520872B/zh active Active
- 2012-09-14 KR KR1020157003891A patent/KR101662616B1/ko active IP Right Grant
- 2012-09-14 JP JP2015531897A patent/JP6026666B2/ja active Active
-
2015
- 2015-03-05 US US14/639,854 patent/US9372993B2/en active Active
-
2016
- 2016-06-20 US US15/187,348 patent/US9542114B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114077395A (zh) * | 2020-08-12 | 2022-02-22 | 美光科技公司 | 对在待机模式期间在dram中发生不期望的内容改变的防护 |
WO2023216077A1 (zh) * | 2022-05-09 | 2023-11-16 | 华为技术有限公司 | 一种验证方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
US8978135B2 (en) | 2015-03-10 |
US20140082724A1 (en) | 2014-03-20 |
KR20150036614A (ko) | 2015-04-07 |
JP6026666B2 (ja) | 2016-11-16 |
CN104520872B (zh) | 2018-02-23 |
KR101662616B1 (ko) | 2016-10-05 |
US9542114B2 (en) | 2017-01-10 |
US20150178500A1 (en) | 2015-06-25 |
EP2895935A4 (en) | 2016-05-11 |
WO2014042650A1 (en) | 2014-03-20 |
US9372993B2 (en) | 2016-06-21 |
US20160299721A1 (en) | 2016-10-13 |
JP2015537274A (ja) | 2015-12-24 |
EP2895935A1 (en) | 2015-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104520872A (zh) | 在低功率状态期间保护存储器区的方法和装置 | |
KR102183852B1 (ko) | 전자 장치의 무결성 검증을 위한 방법, 저장 매체 및 전자 장치 | |
CN102103673B (zh) | 在隐藏执行环境中提供完整性验证和证明 | |
US9135435B2 (en) | Binary translator driven program state relocation | |
CN102955921A (zh) | 电子装置与安全开机方法 | |
CN104205045A (zh) | 针对可上网的计算节点提供不变的防病毒有效载荷 | |
US10185633B2 (en) | Processor state integrity protection using hash verification | |
US20120011353A1 (en) | Information processing apparatus having verification capability of configuration change | |
US20240193264A1 (en) | Fuse based replay protection with aggressive fuse usage and countermeasures for fuse voltage cut attacks | |
US20230237154A1 (en) | Fuse based replay protection with conservative fuse usage | |
US11347858B2 (en) | System and method to inhibit firmware downgrade | |
US11776646B2 (en) | Fuse based replay protection with dynamic fuse usage and countermeasures for fuse voltage cut attacks | |
JP6494143B2 (ja) | 装置、方法、集積回路、プログラム、及び有形のコンピュータ可読記憶媒体 | |
JP2008523494A (ja) | 情報更新方法、プログラム、情報処理装置 | |
JP6316370B2 (ja) | 装置、方法、集積回路、プログラム、及び有形のコンピュータ可読記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |