休眠保护 背景技术
财经和个人事务越来越多地在计算设备上完成。然而,这种财经和个人事务的持续增长部分地取决于建立安全增强的环境(SE),该环境试图防止私密的丢失,数据的破坏,数据的误用。SE环境可以利用各种技术来防止不同类型的攻击或对受保护数据或秘密(如社会保障号、帐号、银行平衡帐、密钥、授权密码等)的非授权的访问。SE环境试图防止的一类攻击是休眠攻击。
例如,许多计算设备支持挂起到存储器的休眠状态,如在AdvancedConfiguration and Power Interface(ACPI-高级配置与电源接口)规范2000年7月27日的2.0版本中描述的S3休眠状态。在进入到挂起的存储器休眠状态之后,计算设备切断到计算设备的各种组件和/或子组件的电源,但继续向系统存储器供电,以保持系统存储器的内容。作为切断电源的结果,计算设备可能将给用于保护储存在系统存储器中秘密的线路的电源切断。在从休眠状态唤醒之后,计算设备能将电源返回给用于保护储存在系统存储器中的秘密的线路。然而,返回电源之后,保护线路可能处在复位状态,且实际上不能保护系统存储器中的秘密。攻击者可以在重建保护线路提供的保护之前成功地获得对存储的秘密的访问。
【附图说明】
这里描述地本发明在附图中作为例子而不作为限制地示出。为说明的简单和清楚,在图中示出的单元不必须按比例画出。例如,为了清楚起见某些单元的尺寸相对于其他单元被夸大了。此外,在认为合适的地方,参照号在各图中重复使用,以表示对应的或类似的单元。
图1示出计算设备的实施例。
图2示出能由图1的计算设备建立的安全增强(SE)环境为实施例。
图3示出图1的计算设备的休眠方法的实施例。
图4示出图1的计算设备的唤醒方法的实施例。
【具体实施方式】
下面内容描述用于保护秘密免受休眠攻击的技术。在下面描述中,为提供本发明的更透彻的理解列出许多具体的细节,如逻辑工具,操作码,指定操作数的方法,资源划分/共享/复制工具,系统组件的类型和相互关系,和逻辑划分/集成选择等。然而本专业技术人员可以理解,即使没有上述这些具体细节,本发明还是可以实施。在其他情况,为了不模糊本发明,不详细示出控制结构,门线线路,和全部软件指令序列。用这里包括的描述,本专业技术人员能实现合适的功能而不必过多的实践。
在本说明中对“单个实施例”,“一个实施例”,“一个示例实施例”等的引用表明,所描述的实施例可以包括特定的特征,结构或特点,但不必要每个实施例都包括特定的特征,结构或特点。此外,这样的短语不必要关系到同一实施例。而且当结合一个实施例描述特定的特征,结构或特点时,应该理解在本专业的技术人员的知识范围中,可以结合其他实施例实现这样的特征结构或特点,,而无需是否明确描述。
这里对“对称”密码术,密钥,加密或解密的引用,指的是同一密钥用于加密和解密的密码技术。在1993年作为美国联邦信息处理标准FIPS PUB46-2发布的众知的数据加密标准(DES)和在2001年作为FIPS PUB 197发布的高级加密标准(AES)是两个对称密码术的例子。这里对“非对称”密码术、密钥、加密或解密的引用指的是对加密和解密使用不同但有关的密钥的密码技术。包括众知的公开密钥算法(RSA-Rivest-Shamir-Adleman)技术的所谓“公开密钥”密码技术是非对称密钥术的例子。非对称密码系统的两个相关密钥之一在这里称为私有密钥(因为它通常保持秘密),另一密钥称为公开密钥(因为它通常免费可得)。在某些实施例中,私有或公开密钥均能用于加密,而另一密钥用于关联的解密。
这里使用的术语“对象”拟作为广义上的术语,它包括一个或多个位的任何组合而不管其结构,格式,或表示。而且动词“散列”及有关的格式在这里用于意指在操作数或消息上完成操作,以产生摘要值或“散列值”。理想上,散列操作生成摘要值,从该值在计算上不可能找到带有那个散列值的消息,且从该值人们不可能确定有关带有那个散列值的消息的任何有用信息。此外,散列操作理想上产生散列值,使得在计算上不可能确定产生同一散列值的两个消息。虽然散列操作理想上具有上述特征,实际上如Message Digest5函数(MD5)和Secure Hashing Algorithm1(SHA-1)那样的单向函数产生散列值,从它推导消息是困难的,计算量大的,和/或实际上不可行的。
本发明的实施例能以硬件、固件、软件、或其任何组合实现。本发明的实施例也能作为存储在机器可读介质上的指令实现,该介质能由一个或多个处理器读出并执行。机器可读介质是包括以机器(如计算设备)可读的形式存储或发送信息的任何机制。例如,机器可读介质能包括只读存储器(ROM);随机访问存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电、光、声或其他形式的传播信号(如载波、红线外信号、数字信号等)。
图1中示出计算设备100的示例实施例。计算设备100能包括通过处理器总线106连接芯片组104的一个或多个处理器102。芯片组104能包括一个或多个集成电路封装或芯片,它们将处理器102耦合到系统存储器108,权标(token)110,固件112,非易失存储器114(如硬盘、软盘、光盘、闪盘、可编程只读存储器等)和/或其他设备116(如鼠标、键盘、视频控制器等)。
处理器102能支持安全进入(SENTER)指令的执行,以起动建立SE环境,如图2中的示例SE环境。处理器102还能进一步支持安全退出(SEXIT)指令,以起动SE环境的卸除。在一个实施例中,处理器102能在处理器总线106上发出与SENTER、SEXIT和其他指令的执行关联的总线消息。
处理器102还能进一步包括密钥118,例如对称密码密钥、非对称密码密钥、或某些其他类型密钥。处理器102能使用处理器密钥118在执行认证代码(authentic code,AC)模块以前认证一认证代码(AC)模块。在一实施例中,处理器密钥118包括只有处理器102具有对其访问的非对称私有密钥。
处理器102能支持一个或多个操作模式,如实模式、保护模式、虚拟实模式、和虚拟机器模式(VMX模式)。此外,处理器102在每个支持的操作模式中能支持一个或多个特权级或环。一般而言,处理器102的操作模式和特权级定义了可用于执行的指令和执行这样的指令的效果。更具体而言,仅当处理器102处在合适的模式和/或特权级时,处理器102才被允许执行某些特权指令。
芯片组104包括一个或多个芯片或集成电路封装,它们将处理器102接口到计算设备100的各组件,如系统存储器108、权标110、非易失性存储器114,和其他设备116。在一个实施例中,芯片组104包括存储控制器120。然而,在另外实施例中,处理器102能包括整个或部分存储控制器120。一般而言,存储控制器120为计算设备100的各组件提供访问系统存储器108的接口。此外,芯片组104和/或处理器102的存储控制器120能将存储器108的某些区域定义为安全增强(SE)存储器122。在一个实施例中,处理器102在处于合适的操作模式(如保护模式)和特权级(如0P)时,只能访问SE存储器122。
此外,芯片组104能包括密钥124,它可用于在执行之前认证AC模块。类似于处理器密钥118,芯片组密钥124能包括对称密码密钥、非对称密码密钥、或某些其他类型密钥。在一个实施例中,芯片组密钥124包括只有芯片组104能对其访问的非对称私有密钥。在另一实施例中,芯片组104包括存储在计算设备100的另一组件中非对称芯片组密钥124的散列。芯片组104能检索芯片组密钥124,并使用该散列认证该密钥124。
芯片组104还能包括秘密存储器126以表明系统存储器108是否可能包含未经加密的秘密。在一实施例中,秘密存储器126能包括一标志,它能被置位以表明系统存储器108可能包含未经加密的秘密,并能清除以表明系统存储器108不包含未经加密的秘密。在另外实施例中,秘密存储器126能位于其他任何处,如权标110,处理器102,或计算设备100的其他组件。
在一实施例中,秘密存储器126能作为具有由电池支撑的后备电源的单个易失存储器位实现。由电池提供的后备电源经历系统复位,休眠事件,系统关闭,系统掉电,或其他电源移除/丢失事件时,保持秘密存储器126的内容。芯电组104还能包括电池检测线路(未示出),以检测由电池提供电源的中断。该线路还能更新秘密存储126,以表明响应检测电源中断,系统存储器108能包含秘密。在另外实施例中,秘密存储器126作为如闪存位那样的非易失存储器位实现,它不需要电池后备来经历电源移除/丢失事件而保持其内容。在一个实施例中,秘密存储器126用能置位或清除的单个存储器位实现。然而,另外实施例能包括具有不同存储容量和/或利用不同状态编码的秘密存储器126。
芯片组104还能保护秘密存储器126免遭未经授权的更新。在一实施例中,芯片组104包括处理器接口128来解码处理器总线106的事务和/或从处理器102接收消息。处理器104能响应执行请求芯片组104更新该秘密存储器126的一个或多条特权指令,产生总线事务和/或消息。处理器接口128接收总线事务和/或消息,并能根据解码的总线事务和/或消息更新秘密存储器126。在一实施例中,特权指令的有效的执行限于在特定处理器的特权级上的软件执行。例如,在一实施例中,特权指令的有效执行被限于在最高特权的处理器级上执行的监视程序(见图2)。
芯片组104还能允许秘密存储器126的非特权的更新。在一实施例中,响应于执行一条或多条特权指令,处理器102能产生总线事务和/或消息,它们请求芯片组104允许秘密存储器126的非特权更新。此外,响应于执行一条或多条非特权或特权指令,处理器102能产生总线事务和/或消息,它们请求芯片组104拒绝对秘密存储器126的非特权更新。响应于执行一条或多条非特权指令,处理器102能产生总线事务和/或消息,它们请求芯片组104更新秘密存储器126。处理器接口128能接收总线事务和/或消息,并根据解码的总线事务和/或消息能允许非特权更新,拒绝非特权更新,和/或更新秘密存储器126。在一实施例中,为请求非特权更新的特权指令的有效执行被限于在特定处理器特权级上的软件执行。例如,在一实施例中这些特权指令的有效执行被限于在最高特权处理级上执行的监视程序,从而允许监视程序授予选定的非特权代码(如AC模块)对秘密存储器126的写访问。
芯片组104还包括休眠控制器130,休眠类型存储器132,休眠使能存储器134。在一实施例中,休眠控制器130根据休眠类型存储器132和休眠使能存储器134可选地为组件和/或子组件供电。在一实施例中,值能存储在休眠类型存储器,以表明休眠控制器130将计算设备100置于哪个休眠状态(如ACPI休眠状态S1,S2,S3,S4)。休眠使能存储器134能被更新,以调用由休眠状态存储器132表明的休眠状态的入口。例如,休眠使能存储器134能包括一标志,响应于对其的置位,使休眠控制器130将计算设备100置于所请求的休眠状态。
芯片组104还能包括休眠攻击检测逻辑136,它检测可能的休眠攻击。在一实施例中,休眠方法更新秘密存储器126,以表明在更新休眠使能存储器到起动休眠进入过程之前,系统存储器108未包含没有加密的秘密。因而,在一个实施例中,休眠攻击检测逻辑136判断,休眠攻击可能响应于:(i)秘密存储器126表明系统存储器108可能包含未加密的秘密,和(ii)休眠使能存储器134请求调用休眠进入过程。响应于检测可能的休眠攻击,休眠攻击检测逻辑136起动休眠攻击响应,如产生系统复位事件、系统暂停事件、系统关闭事件、系统掉电事件、或某些其他响应,以保护存储在系统存储器108中的秘密。
在另外实施例中,休眠攻击检测逻辑136还根据拟进入的休眠状态判断,是否调用休眠攻击响应。例如,用于保护存储在SE存储器122的秘密的线路能在给定的休眠状态期间保持有效。因而,休眠攻击检测逻辑136或者能确定未发生休眠攻击,或确定若休眠类型存储器132表明处在SE存储器保护保持有效的休眠状态,则不调用休眠攻击响应。
芯片组104也能支持在I/O总线上的标准I/O操作,I/O总线如:外设部件互连(PCI)总线、图形加速端口(AGP)、通用串行总线(USB),低引脚计数(LPC-Low Pin Count)总线,或任何其他类型I/O总线(未示出)。尤其是,芯片组104能包括权标接口138,将芯片组104与包括一个或多个平台配置寄存器(PCR)140的权标110连接。在一个实施例中,权标接口138能包括LPC总线接口(LPC接口规范,Intel公司,1997年12月29日版本1.0)。
一般而言,权标110能以安全增强方式记录规格(metrics),以安全增强方式引用规格,能将秘密密封到特定环境(当前或未来的),且能将秘密解密封到它们以前被密封的环境。权标110能包括用于支持上述操作的一个或多个密钥142。权标密钥142能包括对称密钥,非对称密钥,和/或某种其他类型密钥。权标110还能包括一个或多个平台配置寄存器(PCR寄存器)140,以安全增强的方式记录和报告规格。在一个实施例中,权标110支持PCR扩充的操作,它以安全增强的方式在标识的PCR寄存器140中记录接收的规格。
权标110还能支持PCR引用操作,它返回被标识的PCR寄存器140的引用或内容。权标110还能支持密封操作和非密封操作。响应于密封操作,权标110产生包括密封到权标110的对象和规定的设备环境的密封的对象。相反,仅当一对象用权标110的密钥密封,且当前的设备环境满足对该密封的对象规定的环境准则时,权标110才能响应于未密封的操作返回密封对象的对象。在一实施例中,权标110能包括可信的平台模块(TPM-Trusted PlatformModule),如在2001年12月1日发表的Trusted Computing PlatformAlliance(TCPA)主规范版本1.1a或其变种所描述。
在一个实施例中,固件112包括基本输入/输出系统例程(BIOS)144。BIOS144能包括AC模块、休眠程序、唤醒程序、系统起动程序和/或结构。例如,BIOS 144能包括ACPI结构和ACPI源语言(ASL)代码,它能在休眠事件处理、唤醒事件处理、和/或计算设备初始化期间被访问和/或执行。
图2中示出SE环境200的一实施例。SE环境200能响应各种事件起动,如系统起动、应用程序请求、操作系统请求等。如图所示,SE环境200能包括可信的虚拟机内核或监视程序202、一个或多个标准虚拟机(标准VM)204。和一个或多个可信的虚拟机(可信的VM)206。在一实施例中,SE环境200的监视程序202在最高特权的处理器环(如0P)上以受保护的方式执行,以管理安全性并提供在虚拟机204、206之间的壁垒。
标准的VM 204还包括在VMX方式的最高特权的处理器环(如0D)处执行的操作系统208,和在VMX方式的较低特权的处理器环(如3D)处执行的一个或多个应用程序210。因为监视程序202执行的处理器环比操作系统208执行的处理器环具有更高特权,操作系统208不具有计算设备100无拘束(unfettered)的控制,而相反,受监视程序202的控制和限制。尤其是,监视程序202能防止操作系统208及其应用程序210直接访问SE存储器122和权标110。
监视程序202还能包括休眠逻辑212和一个或多个监视程序密钥214,来加密和/或保护信息。休眠逻辑212包括执行一个或多个休眠操作,如对存储器内容加密和加证明。监视程序密钥214能包括对称密码密钥、非对称密码密钥、或监视程序202对其具有独占控制的其他密钥。例如,监视程序密钥214能包括对称根密钥和一个或多个用该对称根密钥加密的非对称密钥。
监视程序202能执行对可信的内核216的一个或多个测量,如内核代码的散列,以获得一个或多个规格,能使权标110用该内核216的规格扩充PCR寄存器140,能在储存在SE存储器122中的有关PCR日志中记录该规格,监视程序202还能在SE存储器122中建立可信的VM 206,并在该已建立的可信的VM 206中起动可信的内核216。
类似地,可信的内核216能对小应用程序或应用程序218的一个或多个测量,例如小应用程序代码的散列,以获得一个或多个规格。然后经过监视程序202,可信的内核216能使物理权标(physical token)110用小应用程序218的规格扩充PCR寄存器140。可信的内核216还在储存在SE存储器122中的有关PCR日志中记录该规格。此外,可信的内核216能在SE存储器122的已建立的可信的VM 206中起动可信的小应用程序218。
响应于起动图2的SE环境200,计算设备100还在权标110的一个或多个PCR寄存器140中记录监视程序202和该计算设备100的硬件组件的规格。例如,处理器102能获得硬件标识符,如处理器族,处理器版本,处理器微代码版本,芯片组版本,和处理器102、芯片组104及物理权标110的物理权标的版本。然后,处理器102能在一个或多个PCR寄存器140中记录获得的硬件标识符。
现参考图3,示出进入休眠状态的方法的实施例。计算设备100能响应于休眠事件执行该方法。例如若设备和/或操作系统检测到一个设备在一段定长时间内保持空闲,响应于此以产生休眠事件。响应于该休眠事件,在块300中操作系统208确定是否当前建立SE环境200。响应于确定没有建立SE环境,在块302中计算设备100能调用休眠进入过程(下面详述),将计算设备100置于所请求的休眠状态。
响应于确定建立SE环境200的请求,在块304中监视程序202能对SE存储器122的内容加密和加证明。在一实施例中,监视程序202使用监视程序密钥214之一加密SE存储器122的页面,并用加密的页面替代那些页面。监视程序202能保留包含监视程序202的SE存储器的部分或含有监视程序202的休眠逻辑的SE存储器的部分而不加密,使得处理器102能继续执行休眠逻辑212。
在块304中,监视程序202还加证明到SE存储器122的内容。在一实施例中,监视程序202能通过将SE存储器122的加密的内容求散列值以获取存储器散列值,来产生内容的证明。在另外实施例中,监视程序202能通过只对在唤醒过程之后保留在SE存储器122的页面求散列来产生内容的证明。例如,唤醒过程能从非易失存储器114重新加载监视程序202和/或其他代码。因为SE存储器122的这些部分被重新加载,计算设备100能在进入休眠状态之前从系统存储器108擦除这些部分,和/或不将它们存入非易失存储器114。在另外实施例中,监视程序202能通过嵌入内容证明到SE存储器122经证实的内容中,来加证明到SE存储器122的内容,所述内容证明包括例如水印、签名、和/或其它信息。
在块306,监视程序202能产生和加证明到数据结构(如页面表、页面列表、区列表等中)以标识在块304中加密的系统存储器122的页面/段/区域。在一实施例中,监视程序202能通过对数据结构求散列以获得数据结构散列,来产生数据结构证明。在另外实施例中,监视程序202能通过在被加证明的数据结构中嵌入数据结构证明(如水印、签名、和/或其他信息)对数据结构加证明。
在块308中,监视程序202能密封内容证明、数据结构证明、和/或监视程序密钥214,以保护它们免受未经授权的访问和/或更改。在一实施例中,监视程序202通过一个或多个权标110的密封操作密封内容证明、数据结构证明和监视程序密钥214,以获取一个或多个密封的重续对象。在一实施例中,密封操作使用包含监视程序202的规格的PCR寄存器140,以有效地防止如诈骗监视程序那样的另外监视程序访问和/或更改密封的重续对象的非加密的内容。
在块310中,监视程序202卸除SE环境200。监视程序202能完成作为卸除过程的部分的各种操作。在一实施例中,监视程序202更新秘密存储器126,以表明系统存储器108不包含未加密的秘密。例如,监视程序208能清除秘密存储器126的标志,以表明系统存储器108不包含未加密的秘密。此外,监视程序202能关闭可信的虚拟机206并能退出VMX处理器方式。监视程序202还能擦除在唤醒过程中将要从非易失存储器114重新加载的系统存储器108的那些区域。
在块312中,计算设备100能停止监视程序202的执行,并回到操作系统208的执行。在一实施列中,作为返回到操作系统208的结果,监视程序202提供SE环境重续信息给操作系统208,SE环境重续信息标识响应被密封的重续对象的唤醒和其定位和大小拟执行的监控器202的位置和大小。然而,计算设备100能利用其他机制使操作系统208能在唤醒过程中检索监视程序202和密封的重续对象。例如,监视程序202和/或密封的重续对象能储存在预定位置或由BIOS 144设置的位置。
在块314,操作系统208能保存重续信息,使得它能成为唤醒过程的一部分而被检索。操作系统208能在系统存储器108的预定位置、由BIOS 144设置的位置、芯片组104的非易失寄存器、和/或其他位置存储SE环境恢复信息。在一实施例中,监视程序202在块312中将信息储存在合适的位置处,从而使操作系统208不必在块314保存该信息。
操作系统208和/或BIOS 144在块302中能完成休眠进入过程。例如,操作系统208和/或BIOS 144能将休眠类型标识符号写入休眠类型存储器132,以表明计算设备100进入哪个休眠状态,且能更新休眠使能存储器134,以调用进入该休眠状态的入口。在一实施例中,操作系统208和/或BIOS 144能使计算设备100进入不同于所请求的休眠状态的休眠状态。操作系统208和/或BIOS 144能为了各种理由选择改变休眠状态,例如由于计算设备100的一个或多个组件不支持所请求的休眠状态。响应于更新休眠类型存储器132和休眠使能存储器134,休眠控制器130能使计算设备100进入休眠状态,并能完成休眠过程。例如,休眠控制器130能切断计算设备100的组件和/或子组件电源,能要求组件和/或子组件进入低能耗操作模式,和/或能将系统存储器108的内容写入非易失存储器114。
现参考图4,示出从休眠状态唤醒的方法。计算设备100能响应唤醒事件执行唤醒方法。能响应各种激励源产生唤醒事件,如调制解调器检测振铃事件,网络控制器检测网络活动,键盘控制器检测键按下等。响应唤醒事件,在块400休眠控制器130能完成一个或多个唤醒操作,例如唤醒处理器102和将保存的状态信息从非易失存储器114传输到系统存储器108。在一实施例中,休眠控制器130能响应于执行BIOS 144的ASL和/或其他代码,完成一个或多个唤醒操作。在完成唤醒操作之后,休眠控制器130能将控制转移给操作系统208。在一实施例中,休眠逻辑212从由唤醒矢量标识的位置调用操作系统208的执行。
在块402中,操作系统208能完成一个或多个唤醒操作,如唤醒网络控制器、调制解调器、和/或计算设备100的其他设备。在块404,操作系统208判断是否根据储存的重续信息和/或在缺少储存的重续信息情况下恢复SE环境200。响应于确定恢复SE环境200,操作系统208完成各种操作。例如,操作系统208能加载、认证、和起动执行配置计算设备100和/或验证计算设备100的配置的AC模块。此外,在块406,操作系统208能加载和调用重续信息标识的监视程序202的执行。
在块408,监视程序202能通过权标110的一个或多个解密封操作,解密封被密封的重续对象,以获得内容的证明、数据结构的证明、和监视程序密钥214。响应于检测到解密封操作失败(块410),在块412中监视程序202调用休眠攻击响应,以解决可能的休眠攻击。在一实施例中,监视程序202通过写到芯片线104的复位寄存器调用系统复位,来调用休眠攻击响应。然而,监视程序202能以其他方式作出响应,例如,暂停处理器102,擦除系统存储器108,调用系统关闭,切断计算设备100电源,和/或保护秘密免受未授权的访问和/或更改的其他活动。
在块414,监视程序202根据数据结构的证明验证数据结构的可靠性。在一实施例中,监视程序202求数据结构的散列,以获得计算的数据结构的证明。监视程序202还将计算的数据结构与从密封的重续对象获得的数据结构证明进行比较,并响应于具有对未密封的证明的预定关系(如相等)计算的证明,来确定该数据结构是可靠的。响应于确定该数据结构是不可靠的或被更改的,在块412监视程序202调用休眠攻击响应以解决可能的休眠攻击。
在块416,监视程序202能解密系统存储器108的一部分,并将解密的部分存储在SE存储器122中。监视程序202能使用一个或多个未密封的监视程序密钥214,解密由数据结构标识的系统存储器108的诸部分。在块418,监视程序202能验证加密的或解密的SE存储器内容的可靠性。在一实施例中,监视程序202能对加到SE存储器122的解密内容求散列,以获得计算的内容证明。在另外实施例中,监视程序202能对拟加到SE存储器122的加密内容求散列,以获得计算的内容证明。监视程序202还能将计算的内容证明与未密封的内容证明进行比较,并能响应于具有对未密封的证明的预定关系(如相等)的计算的证明,确定该内容是可靠的(如未更改)。响应于确定该内容是不可靠的(如已更改),在块412监视程序202能对可能的休眠攻击调用攻击响应。相反,响应于制定该内容是可靠的,监视程序202通过调用操作系统208的执行完成唤醒过程。
休眠和唤醒方法的上述实施例帮助保护秘密免受攻击。然而,攻击者能试图绕过图3的休眠方法,将计算设备100置于休眠状态,在该休眠状态中,未加密的秘密驻留在系统存储器108和/或未保护的非易失存储器114中。为防止这种绕过,休眠攻击检测逻辑136能调用系统复位事件或另外的攻击响应,以响应检测到可能的休眠攻击。在图3的休眠方法的一实施例中,监视程序202更新秘密存储器126,以表明在更新休眠使能存储器134到起动休眠进入过程之前,系统存储器108未包含未加密的秘密。因而,若秘密存储器420表明系统存储器108能包含未加密的秘密,则休眠攻击检测逻辑136能调用休眠攻击响应,以响应休眠使能存储器134被更新。
在图3的休眠方法的另外实施例中,仅当请求的休眠状态导致SE存储器122未被保护时,监视程序202加密SE存储器122并更新秘密存储器126,以表明该系统存储器108未包含未加密的秘密。因此,若秘密存储器420表明系统存储器108可能包含未加密的秘密,且休眠类型存储器132表明处在SE存储器122映射中的休眠状态未被保护时,休眠攻击检测逻辑136能调用休眠攻击响应,以响应休眠使能存储器134被更新。
虽然参考示例实施例描述了本发明的某些特征,但上述描述并不是在限制的意义上解释。对与本发明有关的专业的技术人员显而易见的本发明的示例及其他实施例的各种修改,都被认为是在本发明的精神和范围之内。