CN104335223A - 用于安全睡眠状态的方法和装置 - Google Patents
用于安全睡眠状态的方法和装置 Download PDFInfo
- Publication number
- CN104335223A CN104335223A CN201380028646.4A CN201380028646A CN104335223A CN 104335223 A CN104335223 A CN 104335223A CN 201380028646 A CN201380028646 A CN 201380028646A CN 104335223 A CN104335223 A CN 104335223A
- Authority
- CN
- China
- Prior art keywords
- storer
- sleep state
- dram
- key
- encryption key
- 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
- 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
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- 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
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- 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
- G06F1/3243—Power saving in microcontroller unit
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- 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/81—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- 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
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- 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/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- 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/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2143—Clearing memory, e.g. to prevent the data from being stolen
-
- 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
-
- 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
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Abstract
公开了用于安全睡眠状态的方法和装置。示例方法包括:响应于计算平台的睡眠状态的发起,加密该计算平台的存储器;以及当从该睡眠状态恢复该计算平台时解密该存储器,其中,将该计算平台置于该睡眠状态包括对该计算设备的部分掉电以及保留该计算平台的状态。
Description
公开领域
本公开总体上涉及功率状态管理并且更具体地涉及用于安全睡眠状态的方法和装置。
背景
许多计算平台(诸如桌上计算机和膝上计算机)可被置于除打开状态或关闭状态之外的一种或多种功率状态。例如,某些计算平台可被置于休眠(hibernation)状态。将计算平台置于休眠涉及对系统掉电,同时保留系统的状态(例如,通过将随机存取存储器(RAM)的内容写入硬盘)。可替代地,某些计算平台可被置于睡眠(sleep)状态。将计算平台置于睡眠状态涉及切断系统的许多但不是所有组件的电源并且保留系统的状态。通常,从睡眠状态进入打开状态耗费的时间比从休眠状态进入打开状态的时间少。
附图简要说明
图1是包括在此所公开的示例安全睡眠状态模块的示例计算平台的框图。
图2是图1的示例解密器的第一示例实现方式的框图。
图3A至图3D是可被执行以便实现图1的示例安全睡眠状态模块的示例机器可读指令的流程图表示。
图4是图1的示例解密器的第二示例实现方式的框图。
图5是可被执行以便实现图4的示例解密器的示例机器可读指令的流程图表示。
图6是能够执行图3A至图3D的示例机器可读指令以便实现图1的示例安全睡眠状态模块和/或图5的示例机器可读指令从而实现图4的示例解密器的示例处理系统的框图。
详细描述
计算平台(诸如桌上计算机和膝上计算机)可存储相应的用户可认为秘密、敏感、和/或以其他方式不是可公共访问的信息。某些计算平台包括当计算平台被置于关闭状态(例如,完全关闭)或休眠状态(例如,系统被掉电,同时保留系统的状态)时保护这种数据的全盘加密能力。即,除非用户将计算平台置于关闭状态或休眠状态,否则可访问丢失或被盗计算机上的信息。然而,将计算平台置于关闭状态或休眠状态具有缺点。例如,关闭状态不保留计算平台的状态并且因此用户不被强制保存所有打开的文档(或其他类型的未保存数据)并退出所有应用(或其他类型的程序)。进一步地,从关闭状态启动计算平台需要大量时间并且要求用户重新打开文档和/或应用。在许多情况下,用户可能已经忘记计算平台的状态和/或不能导航到计算平台的先前状态。而休眠状态保留计算平台的状态,从休眠状态恢复也耗费大量时间,尤其是在膝上计算机、笔记本计算机、上网本计算机等等上。
有时被称为S3功率状态的睡眠状态避免了这些缺点。例如,从睡眠状态恢复比从关闭状态或休眠恢复相对更快(例如,从睡眠状态恢复可基本上是即时的)并且使得用户能够立即恢复在打开的文档和/或应用上的工作。然而,睡眠状态下的计算平台上的敏感信息易于受到不希望的访问(例如,在被盗或丢失计算平台的情况下)。例如,可通过将睡眠状态下的计算平台的动态随机存取存储器(DRAM)移动到其中DRAM可被扫描的另一个计算机,来访问该DRAM。可替代地,可通过执行冷启动攻击访问睡眠状态下的计算平台的DRAM。而且,如果这种攻击导致攻击者发现DRAM中的加密密钥,可访问盘上的所有数据。
在此公开的示例方法、装置、以及制品提供了安全睡眠状态,该安全睡眠状态对存储在睡眠状态下的计算平台上的数据提供保护。如以下更详细描述的,在此公开的示例方法、装置、以及制品使得用户能够激活安全睡眠状态,从而使得每次相应的计算平台被置于睡眠状态下时,对数据进行加密。进一步地,在此公开的示例方法、装置、以及制品检测计算平台何时退出睡眠状态(例如,进入打开状态)并且作为响应,如果用户提供适当的证书则对安全数据进行解密。因此,使用在此公开的示例方法、装置、以及制品提供的安全睡眠状态,用户可将计算平台置于睡眠状态下以便避免关闭状态和休眠的缺点,并且同时保护存储在计算平台上的数据免于不希望的访问。
图1示出可在其中实现在此公开的示例方法、装置、和/或制品的示例计算平台100。图1包括基本输入/输出系统(BIOS)102、操作系统(OS)104、以及DRAM 106。然而,示例计算平台100可包括附加组件,诸如附加或替代类型的存储器、网络接口、数据总线、处理器等等。简而言之,BIOS 102启动计算平台100,从而使得操作系统104可控制例如对存储器的访问和指令的执行(例如,通过处理器)。在所示示例中,DRAM106实现计算平台的用于存储与例如执行应用、文档等等相关联的数据的主存储器。
为了提供在此所公开的安全睡眠状态下的示例计算平台100,示例BIOS 102包括示例安全睡眠状态模块108。尽管在图1的示例中在BIOS 102中实现,可结合附加或替代组件(诸如可扩展固件接口(EFI))实现示例安全睡眠状态模块108。如以下更详细描述的,图1的示例安全睡眠状态模块108检测计算平台100何时被置于睡眠状态,并且作为响应加密DRAM 106,从而使得睡眠状态是安全的(例如,包括保护DRAM 106的数据)。进一步地,如以下更详细描述的,当计算平台100从安全睡眠状态恢复时,安全睡眠状态模块108解密DRAM 106。
在图1的所示示例中,示例安全睡眠状态模块108与BIOS设置接口110交互和/或使用其,以使得用户能够激活安全睡眠状态。在平台100启动的同时,通过用户按压专用键(例如,在键盘上)访问图1的示例BIOS设置接口110。示例BIOS设置接口110向用户展现包括启用或激活安全睡眠状态的选项的菜单。在图1的示例中,该选项指令用户提供当将平台100从安全睡眠状态恢复时用户将需要输入的密码(passphrase)(例如,符合如由例如存储在BIOS 102中的规则所指示的最小安全强度要求的口令)。当安全睡眠状态当前是无效的或禁用的时,用户提供密码充当安全睡眠状态的激活或启用。附加地或可替代地,示例BIOS设置接口110允许或要求(例如,周期性地)用户改变密码。示例BIOS设置接口110还可向用户提供有关睡眠状态以及如何对其进行使用的指令和其他信息。例如,BIOS设置接口110通知用户,每当平台100恢复(例如,从安全睡眠状态)时将需要输入密码。当已经输入密码和/或安全睡眠状态以其他方式生效时,通过例如在访问BIOS设置接口110的菜单之前要求用户输入当前密码来保护BIOS设置接口110免于访问。
示例安全睡眠状态模块108包括接收和/或以其他方式获得用户输入到BIOS设置接口110中的密码的密码接口112。示例密码接口112对密码进行散列(例如,对密码执行散列函数)并且存储所得散列值114。在所示示例中,密码本身未被存储。反而,所存储的散列值114根据对密码执行的散列函数表示密码。示例安全睡眠状态模块108包括使用所存储的散列值114来加密DRMA 106的数据的加密器116。具体而言,示例加密器116包括使用所存储的散列值114生成包装密钥(wrapping key)的密钥生成器118。示例密钥生成器118还使用例如随机数生成器结合加密引擎生成加密密钥。已经从所存储的散列值114生成包装密钥以及随机加密密钥,图1的示例密钥生成器118在包装密钥中包装随机加密密钥。BIOS存储器120(例如,系统管理随机存取存储器(SMRAM))用于存储经包装的加密密钥122和加密密钥124。图1的示例BIOS存储器120由闪存实现。如上所述,密码被损毁(例如,未被存储)。进一步地,用于包装加密密钥124的包装密钥122也被损毁。如下所述,当进入安全睡眠状态时,加密密钥124用于保护DRAM 106的数据,并且当从安全睡眠状态恢复时,经包装的加密密钥122用于(例如,向授权用户)提供对所保护DRAM的访问。
在提供密码以便激活安全睡眠状态之后,BIOS 102将控制传递到OS 104。OS 104在正常操作期间控制平台100,在此期间,DRAM 106的数据同样被修改(例如,响应于执行应用和相关联的文档)。OS 104继续控制平台,直至例如用户发起睡眠状态。用户可通过例如关闭平台的盖子(例如,当平台100由膝上计算机实现时)、按压功率或睡眠按钮、或从OS 104管理的菜单选择睡眠状态发起睡眠状态。可替代地,可响应于不活动时间段发起睡眠状态。在图1的所示示例中,用户所采取的发起睡眠状态的行动(例如,合上盖子或按压按钮)或不活动时间段生成由OS 104侦听和/或导致对OS 104的功能调用(例如,通过选择专用于睡眠状态的菜单选项)的系统控制中断(SCI)。在图1的示例中,OS 104包括表示检测用户在平台100上发起睡眠状态的睡眠状态检测器126。响应于睡眠状态检测器126确定已经发起睡眠状态,OS使平台100为睡眠状态做准备并且将值写入专用高级配置和功率接口(ACPI)寄存器。在所示示例中,写入ACPI致使中断生成器128生成与安全状态发起相对应的系统管理中断(SMI)。
示例安全睡眠状态模块108包括对OS 104的中断生成器128所生成的SMI作出相应的SMI处理器(例如,专用于中断生成器128所生成的中断类型的处理器)。图1的示例SMI处理器130通过例如检查散列值当前是否存储在BIOS 102中确定是否启用睡眠状态。在所示示例中,SMI处理器130确定密码接口112的散列值114是否是非空(或者并非是表示缺少所存储的散列的任何其他值)。如果是,示例SMI处理器130确定安全睡眠状态被启用并且将在进入睡眠状态之前加密DRAM 106。示例SMI处理器130触发加密逻辑132来加密DRAM 106。具体而言,加密逻辑132使用任何合适的加密技术将存储在BIOS存储器120中的加密密钥124应用到DRAM 106的数据。在已经加密DRAM 106之后,加密密钥124被损毁。另一方面,保留经包装的加密密钥122。在某些示例中,BIOS存储器120未被加密,从而使得当从安全睡眠状态恢复时可访问经包装的加密密钥122。
示例加密逻辑132还将加密映射134存储在BIOS存储器120中,BIOS存储器120表示在OS 104可被恢复(例如,从安全睡眠状态)之前必须被解密的关键DRAM区域。具体而言,图1的示例加密映射134包括有关OS 104恢复并且在平台100上运行所需的数据结构(例如,页表、描述符表、和/或其他数据结构)的位置和大小的信息。如以下结合图4和图5详细描述的,可在当平台100从安全睡眠状态恢复时执行的解密过程中使用示例加密映射134。
当加密逻辑132已经完成DRAM 106的加密和加密映射134的创建时,平台100被置于安全睡眠状态。用户可通过例如打开盖子、按压专用按钮等等恢复平台100(例如,使平台100退出安全睡眠状态)。响应于这种动作,BIOS 102开始启动平台100。图1的示例BIOS 102包括用于确定平台100是否从安全睡眠状态或不安全睡眠状态(例如,禁用安全睡眠状态模块108所提供的DRAM 106的睡眠保护)恢复的安全睡眠状态检测器136。在所示示例中,安全睡眠状态检测器136检查密码接口122以便展现散列值。即,图1的示例安全睡眠状态检测器136确定非空值(或者并非表示缺少所存储的散列的任何其他值)是否存储在散列值114处。存在散列值114指示启用安全睡眠状态并且将解密DRAM 106。缺少散列值114指示未进入安全睡眠状态并且无需解密DRAM 106。
当安全睡眠状态检测器136确定平台100正在从安全睡眠状态恢复时,图1的示例密码接口112提醒用户输入与安全睡眠状态相对应的密码。响应于该提醒提供的输入由比较器138与散列值114进行比较。比较器138确定用户提供的输入是否与散列值匹配,其与之前由用户提供以便激活或启用安全睡眠状态的密码相对应。如果用户提供的输入与所存储的散列值114不匹配,用户被拒绝访问平台100。在某些示例中,用户可被提供多次尝试来输入正确的密码。
另一方面,如果用户提供的输入与所存储的散列值114匹配,示例安全睡眠状态模块108的解密器140被触发。示例解密器140对DRAM106的加密进行解码,从而使得OS 104可在DRAM 106在进入睡眠状态之前所处于的状态下访问DRAM 106的数据。图2中示出解密器140的第一示例实现方式。图2的示例解密器140包括从用户响应于密码接口112的提醒而提供的密码重新导出包装密钥的包装密钥导出器200。如上所述,由用户提供以便发起或激活安全睡眠状态的密码在用于生成加密密钥124之后被损毁。因此,当从安全睡眠状态恢复时,解密器140的示例包装密钥导出器200使用用户在恢复平台100时提供的密码,其被确定与之前提供的密码匹配(例如,通过与所存储的散列值114进行比较)。
图2的示例解密器140还包括用于使用所重新导出的包装密钥对BIOS存储器120的经包装的解密密钥122进行解包装的解包装器202。如上所述,在加密DRAM 106并且将平台置于安全睡眠状态之后保留经包装的加密密钥122,从而使得当从安全睡眠状态恢复时,加密密钥可被解包装并且由解密器140使用。因此,图2的示例解包装器202使用加密密钥的所保留的经包装版本122以及重新导出的包装密钥(从包装密钥导出器200)来生成由加密逻辑132用于保护DRAM 106的加密密钥。
图2的示例解密器140包括使用所获得的加密密钥来解密DRAM 106的解密逻辑204,从而使得当BIOS 102将控制传递到OS 104时,OS 104将能够访问DRAM 106。在解密逻辑204已经解密DRAM 106之后,密钥损毁器206损毁解密器140所使用的加密密钥以及BIOS存储器120的经包装的加密密钥122。在某些情景下,在解密逻辑204已经完成DRAM 106的解密之前,平台100可被置于睡眠状态。在这种情况下,密钥损毁器206不损毁加密密钥或经包装的解密密钥122。而是,保留密钥,从而使得当平台100从(第二)睡眠状态恢复时,DRAM 106可被解密。
因为在解密过程中损毁经包装的加密密钥122并且在用于加密DRAM 106之后并且在重新导出加密密钥供解密器140使用之后损毁加密密钥124,当平台100再次被置于睡眠状态时(例如,下一次用户合上盖子、按压专用睡眠按钮、从菜单选择睡眠状态等等),需要新的加密密钥(不同于先前的加密密钥)和新的经包装的加密密钥以供使用。相应地,由用户响应于密码接口122的提示提供的用于访问平台的密码由密钥生成器118用于生成包装密钥。密钥生成器118还生成随机加密密钥。因为随机功能(例如,随机数生成器)用于生成加密密钥,来自安全睡眠状态的一次迭代的加密密钥不同于安全睡眠状态的另一次迭代(或者至少不同于下一次迭代,因为随机值可重复许多次可能上百万次迭代)。如前所述,包装密钥用于包装随机生成的加密密钥并且经包装的加密密钥122以及加密密钥122存储在BIOS存储器120中。进一步地,如前所述,包装密钥和密码被损毁。
BIOS 102然后将控制传递到OS 104,其被恢复,从而使得平台100在进入安全睡眠状态之前的状态下操作。如上所述,OS 104继续管理平台100的操作,直到平台100的功率状态改变(例如,由用户)。如果改变对应于平台100被置于睡眠状态下(例如,通过用户动作、通过达到不活动阈值等等),睡眠状态检测器126确定安全睡眠状态是否被启用,并且如果被启用,中断生成器128生成由安全睡眠状态模块108的SMI处理器130处理的中断。示例SMI处理器130触发加密器116再次加密DRAM106,这次使用新的加密密钥124。当平台100处于睡眠状态下时,DRAM 106的数据再次得到保护。因此,每当平台100被置于睡眠状态下时,示例安全睡眠状态模块108提供DRAM 106的重复保护。
尽管已经在图1中示出实现平台100的示例方式,可组合、划分、重新安排、省略、清除和/或以任何其他方式实现图1中示出的元件、过程和/或设备中的一个或多个。进一步地,图1的示例安全睡眠状态模块108、示例BIOS设置接口110、示例密码接口112、示例加密器116、示例密钥生成器118、示例睡眠状态检测器126、示例中断生成器128、示例SMI处理器130、示例加密逻辑132、示例安全睡眠状态检测器136、示例比较器138、示例解密器140和/或更一般地示例平台100可由硬件、软件、固件、和/或硬件、软件和/或固件的任何组合实现。因此,例如,图1的示例安全睡眠状态模块108、示例BIOS设置接口110、示例密码接口112、示例加密器116、示例密钥生成器118、示例睡眠状态检测器126、示例中断生成器128、示例SMI处理器130、示例加密逻辑132、示例安全睡眠状态检测器136、示例比较器138、示例解密器140和/或更一般地示例平台100中的任一项可由一个或多个电路、可编程处理器、专用集成电路(ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件(FPLD)等等实现。当本专利的所附系统或装置权利要求中的任一项被解读为覆盖仅软件和/或固件实现方式时,图1的示例安全睡眠状态模块108、示例BIOS设置接口110、示例密码接口112、示例加密器116、示例密钥生成器118、示例睡眠状态检测器126、示例中断生成器128、示例SMI处理器130、示例加密逻辑132、示例安全睡眠状态检测器136、示例比较器138、示例解密器140和/或更一般地示例平台100中的至少一个在此明确地被定义为包括存储软件和/或固件的有形计算机可读存储介质,诸如存储器、DVD、CD、蓝光、等等。仍进一步地,图1的示例平台100可包括除图1中示出的那些之外或者作为替代的一个或多个元件、过程和/或设备,和/或可包括所示出的元件、过程和设备中的任一个或全部中的多于一个。
尽管已经在图2中示出实现图1的解密器140的示例方式,可组合、划分、重新安排、省略、清除和/或以任何其他方式实现图2中示出的元件、过程和/或设备中的一个或多个。进一步地,图2的示例包装密钥导出器200、示例解包装器202、示例解密逻辑204、示例密钥损毁器206和/或更一般地示例解密器140可由硬件、软件、固件和/或硬件、软件和/或固件的任何组合实现。因此,例如,图2的示例包装密钥导出器200、示例解包装器202、示例解密逻辑204、示例密钥损毁器206和/或更一般地示例解密器140中的任一个可由一个或多个电路、可编程处理器、专用集成电路(ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件(FPLD)等等实现。当本专利的所附系统或装置权利要求中的任一项被解读为覆盖仅软件和/或固件实现方式时,图2的示例包装密钥导出器200、示例解包装器202、示例解密逻辑204、示例密钥损毁器206和/或更一般地示例解密器140中的至少一个在此明确地被定义为包括存储软件和/或固件的有形计算机可读存储介质,诸如存储器、DVD、CD、蓝光、等等。仍进一步地,图2的示例解密器140可包括除图2中示出的那些之外或者作为替代的一个或多个元件、过程和/或设备,和/或可包括所示出的元件、过程和设备中的任一个或全部中的多于一个。
图3A-D是表示用于实现图1和/或图2的示例平台100的示例机器可读指令的流程图。在图3A-D的示例流程图中,机器可读指令包括用于由处理器(诸如在以下结合图6讨论的示例计算机600中示出的处理器612)执行的程序。程序可被实施在存储在有形计算机可读介质(诸如与处理器612相关联的CD-ROM、软盘、硬盘驱动器、数字通用盘(DVD)、蓝光盘、或存储器)上的软件中,但是整个程序和/或其部分可替代地可由除处理器612之外的设备实现和/或实施在固件或专用硬件中。进一步地,尽管参照图3A-D中示出的流程图描述了示例程序,可替代地可使用实现示例平台100的许多其他方法。例如,框的执行顺序可改变,和/或所描述的某些框可改变、清除或组合。
如上所述,图3A-D的示例过程可使用存储在有形计算机可读介质(诸如信息可被存储在其中持续任何时长(例如,持续延长时间段、永久地、短暂片刻、暂时地缓冲、和/或高速缓存信息)的硬盘驱动器、闪存、只读存储器(ROM)、致密盘(CD)、数字通用盘(DVD)、高速缓存、随机存取存储器(RAM)和/或任何其他存储介质)上的编码指令(例如,计算机可读指令)实现。如在此所使用的,术语“有形计算机可读介质”被明确地定义为包括任何类型的计算机可读存储并且不包括传播信号。附加地或可替代地,图3A-D的示例过程可使用存储在非瞬态计算机可读介质(诸如信息可被存储在其中持续任何时长(例如,持续延长时间段、永久地、短暂片刻、暂时地缓冲、和/或高速缓存信息)的硬盘驱动器、闪存、只读存储器、致密盘、数字通用盘、高速缓存、随机存取存储器和/或任何其他存储介质)上的编码指令(例如,计算机可读指令)实现。如在此所使用的,术语“非瞬态计算机可读介质”被明确地定义为包括任何类型的计算机可读介质并且不包括传播信号。如在此所使用的,当术语“至少”被用作权利要求前导部分中的过渡术语时,其与术语“包括”是开放式的相同的方式是开放式的。因此,使用术语“至少”作为其前导部分中的过渡术语的权利要求可包括除在该权利要求中明确引述的那些之外的元素。
图3A以打开平台100(例如,由用户)开始(框300)。BIOS102被启动以便发起一个或多个进程,诸如加电自检(POST)和/或任何其他合适的与启动平台100有关的过程(框302)。如果BIOS 102确定平台100正在从睡眠状态恢复(框304),图1的示例安全睡眠状态检测器136确定平台100正在从其恢复的睡眠状态是否是安全睡眠状态(框306)。例如,安全睡眠状态检测器136确定是否结合图1的密码接口112存储了散列值。如果平台100正在从其恢复的睡眠状态是安全睡眠状态(框306),控制传递到以下进一步详细描述的图3B。如果平台100正在从其恢复的睡眠状态不是安全睡眠状态(框306),OS 104被恢复(框308)进一步地,OS 104被执行(框328)并且控制传递到以下进一步详细描述的图3C。
返回参考框304,如果平台100未正在从睡眠状态恢复,示例安全睡眠状态模块108确定由其提供的安全睡眠状态当前是否被启用(框310)。如果安全睡眠状态当前被启用(框310),控制传递到以下描述的图3B。如果安全睡眠状态当前未被启用(框310),用户可进入BIOS设置接口110以便启用安全睡眠状态。为了确定BIOS设置接口110是否已经由用户激活,捕捉击键(例如,从键盘)(框312)。如果已经过去对应于超时的过多时间(框314),控制进行到框326并且OS 104被启动。否则,BIOS设置接口110确定是否有任何输入的击键与进入BIOS设置接口110的请求相对应(框316)。如果没有,捕获附加的击键(框312)并且BIOS102再次确定是否已经发生超时(框314)。
当用户已经结合BIOS设置接口110时(框316),BIOS接口110向用户展现菜单(框318)。密码接口112确定用户是否已经将密码输入到所展现的菜单中以便激活或启用在此公开的安全睡眠状态功能(框320)。如果没有这种密码被输入到BIOS设置接口110中(框320),OS 104被启动(框326)并执行(框328)。另一方面,如果与激活安全睡眠状态相对应的密码被输入到BIOS设置接口110中(框320),该密码被散列并且所得散列值114被存储(框322)。进一步地,加密器116的密钥生成器118从该密码生成包装密钥并且损毁该密码(框324)。然后,控制进行到以下描述的图3D。
现在参考图3B,如上所述,当平台100从安全睡眠状态恢复时(框306)或者当平台100从除睡眠状态之外的状态恢复并且安全睡眠状态被启用时(框310),控制传递到图3B。因此,图3B以密码接口112从用户获得密码开始(框330)。因为安全睡眠状态被启用,用户被要求输入正确的密钥以便访问平台100的数据(例如,DRAM 106)。当从用户接收到密码时,比较器138确定所输入的密钥是否与所存储的散列值114匹配(框332)。如果所接收的密码与所存储的散列值114不对应,向用户提供若干次尝试来重新输入密码。如果已经输入不正确的密码过多次(例如,超过所允许的尝试次数)(框338),登录过程被暂停(框340)。进一步地,拒绝访问平台100并且所示示例结束(框342)。
返回参考框332,如果用户输入的密码与所存储的散列值114相对应,密钥生成器118从所输入的密码导出包装密钥(框334)。进一步地,所输入的密码被损毁(框336)。然后,控制进行到以下描述的图3D。
参考图3C,如上所述,当OS 104已经开始运行并且平台100执行应用和/或文档时,控制被传递到图3C。换言之,当平台100处于打开状态时,控制传递到图3C。当处于打开状态时,用户可决定将平台置于睡眠状态,以便例如保留平台的状态同时显著地降低平台100的功耗一段时间。为了这样做,用户可例如合上盖子、按压专用按钮、或者从OS 104所管理的菜单选择睡眠状态。当睡眠状态检测器126确定用户已经采取这种行动时(框344),OS 104使平台100准备进入睡眠状态并且对相应的ACPI寄存器进行写入(框346)。如上所述,对ACPI寄存器的写入致使中断生成器128调用安全睡眠状态模块108的SMI处理器130(框348)。
作为响应,SMI处理器130通过检查是否存在结合密码接口112(或者任务是存储散列值114的任何其他组件)存储的散列值,确定安全睡眠状态是否被启用(框350)。如果安全睡眠状态未被启用,SMI处理器130将平台100置于睡眠状态而不加密DRAM 106(框354)。否则,加密逻辑132使用所存储的加密密钥124加密DRAM 106(框352)。进一步地,加密逻辑132损毁加密密钥124但是维护经包装的加密密钥122(框352)。当DRAM 106已经被加密时(框352),平台100被置于睡眠状态(框354)。然后,所示示例结束(框356)。
参考图3D,如上所述,当新的密码已经被输入以便激活安全睡眠状态时(框320-324)或者在平台恢复后期当匹配密码已经被输入时(框332-336),控制被传递到图3D。在所示示例中,安全状态检测器136确定平台100是否正在从安全睡眠状态恢复(框358)。如果没有,响应于正在输入新的密码,控制已经到达图3D,并且DRAM 106无需被解密。否则,如果平台100正在从安全睡眠状态恢复,DRAM 106需要被解密。因此,在框358,如果确定平台100正在从安全睡眠状态恢复,包装密钥导出器200重新导出包装密钥并且解包装器202对经包装的加密密钥122解包装(框360)。使用经解包装的加密密钥,解密逻辑204解密DRAM 106(框362)。进一步地,如果整个DRAM 106已经被解密,密钥损毁器206损毁用于解密DRAM 106的加密密钥124以及获得加密密钥所用的经包装的加密密钥122(框364)。如上所述,如果例如在DRAM 106完全被损毁之前平台100被置于睡眠状态或者如果在DRAM 106被完全解密之前平台100被置于任何其他状态(例如,休眠状态),保留密钥。然后,控制进行到框366。当确定平台100未正在从安全睡眠状态恢复时,控制还从框358进行到框366。
在平台100再次被置于睡眠状态的情况下,密钥生成器118生成并存储新的随机加密密钥124用于加密DRAM 106(框366)。进一步地,在框324或框334生成的包装密钥中包装加密密钥124。经包装的加密密钥122被存储在BIOS存储器120中(框370)。用于生成经包装的加密密钥122的包装密钥被损毁(框372)。OS 104被恢复(框374)并运行(框376)。然后,控制进行到以上描述的图3C。
图4是图1的解密器140的另一个示例实现方式。类似于图2中示出和以上描述的解密器140的示例实现方式,图4的示例解密器400包括类似于图2的包装密钥导出器200、解包装器202以及密钥损毁器206进行操作的包装密钥导出器402、解包装器404以及密钥损毁器406,以便获得密钥用于解密DRAM 106。然而,图4的示例解密器400包括不同于图2的示例解密器140的解密逻辑408。具体而言,当OS 104正在恢复时,图4的示例解密逻辑408使用虚拟机监视器(VMM)410来启用解密器400以按需方式解密DRAM 106的区域或部分。因此,不是等待在将控制从BIOS 102传递到OS 104之前解密DRAM 106的每个经加密的区域(如以上结合图2所述),图4的示例解密器400解密DRAM 106的某些关键区域,然后允许OS 104在DRAM 106的关键区域已经被解密时恢复,并且然后当DRAM 106的剩余经加密的区域被OS 104访问时,开始解密这些区域。在这样做时,图4的示例解密器400解决与当从睡眠状态恢复时必须解密DRAM 106相关联的附加延迟问题。例如,图4的示例解密器所使用的虚拟化使OS 104能通过首先解密相应的区域来恢复其最关键的功能并且然后以按需方式或换言之按照OS 104所需要的那样解密剩余的DRAM 106。结果,OS 104可被至少部分地恢复并执行,而无需等待解密DRAM 106的所有经加密的区域,当DRAM 106相对大时,这会耗费大量的时间。
当平台100正在从安全睡眠状态模块108提供的安全睡眠状态恢复时,BIOS 102和安全睡眠状态模块108执行以上结合图1至图3所述的初始操作以便将平台100过渡到打开状态,诸如重新导出加密密钥以便在解密过程中使用(例如,通过包装密钥导出器402和解包装器404)。然而,在图4的示例中,解密器400启动VMM 410解密DRAM 106。在所示示例中,VMM 410被加载(例如,当首先启用安全睡眠状态时)到BIOS存储器120(例如,SMRAM)和/或任何其他OS 104不可访问的存储器中。图4的示例VMM 410相对较小并且受限于将DRAM 106虚拟化。即,除DRAM 106之外,VMM 410使其他组件处于OS 104的控制之下。
为了虚拟化DRAM 106,示例VMM 410包括DRAM虚拟化器412。示例DRAM虚拟化器412使用任何合适的技术将DRAM 106虚拟化。例如,DRAM虚拟化器412可通过扩展页表(EPT)将DRAM 106虚拟化。当使用EPT来虚拟化DRAM 106时,DRAM虚拟化器412创建EPT以便将宾客物理地址映射到主机物理地址。OS 104中的页表(PT)将线性地址映射到宾客物理地址。当OS 104中的程序执行并访问未在OS 104的PT中的线性地址时,页故障(#PF)被触发。在这种情况下,#PF由OS 104处理。另一方面,当相应的宾客物理地址和主机物理地址之间不存在映射时,EPT违反被触发。在所示示例中,EPT违反由VMM 410(而不是OS 104)处理。
作为EPT的替代方案,示例DRAM虚拟化器412可通过虚拟转换后援缓冲器(TLB)虚拟化DRAM 106。当使用虚拟TLB虚拟化DRAM 106时,DRAM虚拟化器412创建OS 104的PT的副本并且使用#PF和/或其他触发器使该副本与OS 104中的相应的版本一致。类似于上述ETP违反,当虚拟TLB已经用于虚拟化DRAM 106时,#PF向VMM 410指示,宾客物理地址未被映射到主机物理地址。
因此,当DRAM虚拟化器412使用EPT虚拟化DRAM 106时,EPT违反指示VMM 410需要解密DRAM 106的相应区域。换言之,当DRAM虚拟化器412使用EPT虚拟化DRAM 106时,EPT违反(由OS 104访问DRAM 106的特定(经加密的)地址造成)触发VMM 410处理异常,从而使得DRAM 106的特定地址被解密用于由OS 104使用。类似地,当DRAM虚拟化器412使用虚拟TLB虚拟化DRAM 106时,#PF指示VMM410需要解密DRAM 106的相应区域。换言之,当DRAM虚拟化器412使用虚拟TLB虚拟化DRAM 106时,#PF(由OS 104访问DRAM 106的特定(经加密的)地址造成)触发VMM 410处理异常,从而使得DRAM 106的特定地址被解密用于由OS 104使用。示例VMM 410可使用附加或替代类型的虚拟化和/或触发以便虚拟化DRAM 106和/或触发VMM 410来处理尝试访问DRAM 106的经加密区域的OS 104的实例以及因此解密DRAM106的需要。
在所示示例中,当VMM 410最初被启动时,DRAM 106的有待被解密的第一区域是以上结合图1所描述的加密映射134中跟踪的关键区域。加密映射134指示DRAM 106的哪些区域对应于DRAM 106的关键区域,诸如OS 104发起或开始恢复所需的区域。示例VMM 410使用加密映射134解密关键区域,从而使得OS 104可恢复并开始执行。当VMM410解密DRAM 106的区域时,经解密的区域被存储在解密映射414中。如上所述,解密映射414可包括例如EPT、虚拟TLB或DRAM虚拟化器412正在用于虚拟化DRAM 106的任何类型的虚拟化表。换言之,因为DRAM 106的区域被解密,那些区域被添加到解密映射414。因此,解密映射414跟踪DRAM 106的哪些区域已经被解密。
在所示示例中,当DRAM 106的关键区域已经被解密时,OS104开始执行。OS 104的执行包括尝试访问(例如,从其读取和/或向其写入)DRAM 106中的特定地址。如上所述,当OS 104尝试访问DRAM 106中的尚未被解密的地址时,将生成触发。在所示示例中,当解密映射414不包括与OS 104尝试访问的地址相对应的条目时,生成这种触发。例如,当通过EPT实现解密映射414时,EPT违反(例如,触发)由OS 104尝试访问不(尚未)具有EPT中的相应条目的地址而导致。可替代地,当通过虚拟TLB实现解密映射414时,#PF(例如,触发)由OS 104尝试访问不(尚未)具有虚拟TLB中的相应条目的地址而导致。示例VMM 410包括检测这种触发的触发检测器416。当示例触发检测器416确定OS已经访问过(或已经尝试访问)DRAM 106的尚未被解密(并且因此不具有解密映射414中的相应条目)的特定区域时,示例VMM 410解密DRAM 106的那些区域。如上所述,用于加密DRAM 106的加密密钥由包装密钥导出器402和解包装器404重新导出。在所示示例中,图4的VMM 410和解密逻辑408使用经重新导出的加密密钥解密导致相应触发的DRAM 106的区域。即,当OS 104访问DRAM 106的区域时(例如,以按需方式),VMM 410启用图4的示例解密器400解密那些区域。当DRAM 106的与当前触发相对应的区域已经被解密时,解密映射414被更新以便包括映射到那些区域的条目。例如,当DRAM虚拟化器412使用EPT虚拟化DRAM 106时,DRAM 106的经解密的区域被添加到EPT。可替代地,当DRAM虚拟化器412使用虚拟TLB虚拟化DRAM 106时,DRAM 106的经解密的区域被添加到TLB的PT。
在某些示例中,不是当DRAM 106被解密时将条目添加到解密映射414以及当OS 104尝试访问不具有解密映射414中的条目的区域时触发VMM 410解密DRAM 106,示例解密器400可使用指定为指示DRAM106中的相应区域是否仍被加密的位。具体而言,可在解密过程的开始时生成解密映射414,以便通过对于经加密的DRAM 106的每个区域包括相应条目来反映经加密的DRAM 106。进一步地,可向解密逻辑414的PT的条目添加位。当设置用于特定区域的位时(例如,设置为‘1’或真),该区域仍是被加密的。另一方面,当未设置用于特定区域的位时(例如,‘0’或假),该区域已经被解密。在这种情况下,当OS 104尝试访问DRAM 106的区域时,检查相应的位。如果该位被设置,生成触发(例如EPT违反或#PF),并且因此解密DRAM 106的相应区域。如果该位未被设置,无需解密,因为DRAM 106的相应区域不再被加密。
当DRAM 106的所有经加密的区域已经被解密时(例如,在平台100从安全睡眠状态恢复的迭代期间),VMM 410将控制传递到OS104,由此完成OS 104从安全睡眠状态的恢复。在某些示例中,采用机制来确保DRAM 106在特定(例如,预定义)时间段内被解密。例如,图4的VMM 410包括时间约束强制执行器418,该时间约束强制执行器包括与以上述按需方式解密DRAM 106的时间限制相对应的可调整的或固定的时间段。换言之,当OS 104访问DRAM 106的不同部分时,示例时间约束强制执行器418允许VMM 410在定义时间段内逐区域地解密DRAM 106。如果定义的时间段已经过去并且整个DRAM 106尚未被解密,示例时间约束强制执行器418致使解密逻辑408开始解密DRAM 106,而不管OS 104的访问尝试。结果,当时间段已经过期时,即便是OS 104从自安全睡眠状态恢复时起尚未尝试访问的DRAM 106的部分也会被解密。
在某些示例中,时间约束强制执行器418的时间限制的强制执行包括设置与VMM 410相关联的VMX抢先计时器。具体而言,VMX抢先计时器可被设置为周期性地将控制转移到VMM 410以便使VMM 410能以预定义方式解密DRAM 106(例如,DRAM 106的经加密的地址空间中数字上的下一个地址)。结果,除DRAM 106的按需解密(例如,响应于EPT违反或#PF)之外,在时间约束强制执行器418的VMX抢先计时器的每次循环之后,VMM 410解密DRAM 106的区域。因此,即使当OS 104未访问DRAM 106并且因此未触发解密时,DRAM 106最终在该时间段内被解密。
附加地或可替代地,时间约束强制执行器418的时间限制的强制执行可使用OS 104中的一个或多个空闲循环。可通过中断指令(例如,STI)后跟暂停OS 104直到下一次外部中断发生的暂停指令(例如,HLT)实现这种循环。在这种情况下,当结合OS 104发出暂停指令时,VMM 410可接收控制并且因此能够解密DRAM 106的区域,直到下一个中断被触发。这种方法允许VMM 410在OS 104不忙碌时解密DRAM 106的区域,由此避免在OS 104忙碌时使用资源。
EPT或虚拟TLB中映射的页的尺寸可以是任何合适的尺寸,诸如例如4k、2MB、1GB等等。较小的页尺寸导致每次触发(例如,EPT违反或#PF)发生时较短的解密时间,但是导致解密整个DRAM 106之前较长的总体时间。在所示示例中,解密器140基于试探法(诸如例如DRAM尺寸、CPU速度、DRAM速度、总线速度等等)设置页的尺寸。
尽管已经在图4中示出实现图1的解密器140的示例方式,可组合、划分、重新安排、省略、清除和/或以任何其他方式实现图4中示出的元件、过程和/或设备中的一个或多个。进一步地,图4的示例包装密钥导出器402、示例解包装器404、示例密钥损毁器406、示例解密逻辑408、示例VMM 410、示例DRAM虚拟化器412、示例解密映射414、示例触发检测器416、示例时间约束强制执行器418和/或更一般地示例解密器400可由硬件、软件、固件和/或硬件、软件和/或固件的任何组合实现。因此,例如,图4的示例包装密钥导出器402、示例解包装器404、示例密钥损毁器406、示例解密逻辑408、示例VMM 410、示例DRAM虚拟化器412、示例解密映射414、示例触发检测器416、示例时间约束强制执行器418和/或更一般地示例解密器400中的任一个可由一个或多个电路、可编程处理器、专用集成电路(ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件(FPLD)等等实现。当本专利的所附系统或装置权利要求中的任一项被解读为覆盖仅软件和/或固件实现方式时,图4的示例包装密钥导出器4020、示例解包装器404、示例密钥损毁器406、示例解密逻辑408、示例VMM 410、示例DRAM虚拟化器412、示例解密映射414、示例触发检测器416、示例时间约束强制执行器418和/或更一般地示例解密器400中的至少一个在此明确地被定义为包括存储软件和/或固件的有形计算机可读存储介质,诸如存储器、DVD、CD、蓝光、等等。仍进一步地,图4的示例解密器400可包括除图4中示出的那些之外或者作为替代的一个或多个元件、过程和/或设备,和/或可包括所示出的元件、过程和设备中的任一个或全部中的多于一个。
图5是表示可用于实现图4的示例解密器400的示例机器可读指令的流程图。在图5的示例流程图中,机器可读指令包括用于由处理器(诸如在以下结合图6讨论的示例计算机600中示出的处理器612)执行的程序。程序可被实施在存储在有形计算机可读介质(诸如与处理器612相关联的CD-ROM、软盘、硬盘驱动器、数字通用盘(DVD)、蓝光盘、或存储器)上的软件中,但是整个程序和/或其部分可替代地可由除处理器612之外的设备实现和/或实施在固件或专用硬件中。进一步地,尽管参照图5中示出的流程图描述了示例程序,可替代地可使用实现图4的示例解密器400的许多其他方法。例如,框的执行顺序可改变,和/或所描述的某些框可改变、清除或组合。
如上所述,图5的示例过程可使用存储在有形计算机可读介质(诸如信息可被存储在其中持续任何时长(例如,持续延长时间段、永久地、短暂片刻、暂时地缓冲、和/或高速缓存信息)的硬盘驱动器、闪存、只读存储器(ROM)、致密盘(CD)、数字通用盘(DVD)、高速缓存、随机存取存储器(RAM)和/或任何其他存储介质)上的编码指令(例如,计算机可读指令)实现。如在此所使用的,术语“有形计算机可读介质”被明确地定义为包括任何类型的计算机可读存储并且不包括传播信号。附加地或可替代地,图5的示例过程可使用存储在非瞬态计算机可读介质(诸如信息可被存储在其中持续任何时长(例如,持续延长时间段、永久地、短暂片刻、暂时地缓冲、和/或高速缓存信息)的硬盘驱动器、闪存、只读存储器、致密盘、数字通用盘、高速缓存、随机存取存储器和/或任何其他存储介质)上的编码指令(例如,计算机可读指令)实现。如在此所使用的,术语“非瞬态计算机可读介质”被明确地定义为包括任何类型的计算机可读介质并且不包括传播信号。如在此所使用的,当术语“至少”被用作权利要求前导部分中的过渡术语时,其与术语“包括”是开放式的相同的方式是开放式的。因此,使用术语“至少”作为其前导部分中的过渡术语的权利要求可包括除在该权利要求中明确引述的那些之外的元素。
图5以指示计算平台100从在此公开的安全睡眠状态过渡到打开状态的指示开始(框500)。BIOS 102通过例如加载恢复平台100所需的一个或多个驱动器和/或测试使平台100准备好从安全睡眠状态恢复(框502)。当BIOS 102确定有待执行DRAM 106的解密时,控制被传递到VMM 410(框504)。DRAM虚拟化器412使用任何合适的技术(诸如例如如上所述的EPT或虚拟TLB)虚拟化DRAM 106(框506)。进一步地,在图5的所示示例中,时间约束强制执行器418设立将致使OS 104周期性地将控制转移到VMM 410的计时器(框506)。如上所述,向VMM 410的周期性控制转移强制执行解密DRAM 106的时间限制。
当DRAM 106已经被虚拟化时(并且虚拟化表已经被存储在解密映射414中),VMM 410和解密逻辑408解密DRAM 106的关键区域(框508)。在当加密DRAM 106时创建的加密映射134中跟踪表示OS 104开始恢复平台100的控制所需的DRAM 106部分的关键区域。关键区域的解密被添加到解密映射414,从而使得解密器400可跟踪目前为止已经解密了DRAM 106的哪些部分。
平台100然后恢复并运行OS 104(框512和514)。即,OS104开始处理其状态在安全睡眠状态期间被保留的文档和/或应用的正常操作。当OS 104执行指令时,在OS 104尝试访问DRAM 106的加密部分或者时间约束强制执行器418设立的周期时间间隔可能到期时,触发(例如,EPT违反或#PF)可发生。在这种情况下,OS 104引起退出并且控制被传递到VMM 410(框516)。如果由于虚拟化故障(例如,EPT违反或#PF),控制已经被传递到VMM 410(框518),DRAM 106的相应故障区被解密(框526)。如果解密映射414指示DRAM 106的加密区域保持(框528),控制传递到框510。否则,如果整个DRAM 106已经被解密(框528),虚拟化过程结束(框530)并且图5的示例结束(框532)。
返回参考框518,如果从OS 104的退出与虚拟化故障不对应,VMM 410解密DRAM 106的区域(例如,根据地址空间组织的下一顺序加密区域)(框520)。如上所述,从OS 104的这种退出可对应于例如VMX抢先计时器的过期或OS 104空闲的指示。当VMM 410已经解密DRAM的预期区域时(例如,当从OS 104的退出对应于计时器的过期时)或者当OS 104中发生中断时(例如,当从OS 104的退出对应于OS 104空闲时)(框522),控制传递到框528。否则,如果VMM 410需要解密DRAM 410的更多区域(例如,当从OS 104的退出对应于计时器的过期)或者当OS 104中发生中断时(例如,当从OS 104的退出对应于OS 104空闲时)(框522),DRAM 106的区域的解密被添加到解密映射414(框524)并且控制返回框520。
图6是能够执行图3A至图3D的指令以便实现图1和图2的示例平台100和/或图5的指令从而实现图4的示例解密器400的处理器平台600的框图。处理器平台600可以是例如服务器、个人计算机、互联网电器、DVD播放器、CD播放器、蓝光播放器、游戏控制台、个人视频记录仪、智能电话、平板计算机、打印机、或任何其他类型的计算设备。
本示例的处理器平台600包括处理器612。例如,处理器612可由来自任何期望的家族或制造商的一个或多个微处理器或控制器实现。
处理器612包括本地存储器613(例如,高速缓存)并且通过总线618与包括易失性存储器614和非易失性存储器616的主存储器通信。易失性存储器614可由同步动态随机存取存储器(SDRAM)、动态随机存储存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)和/或任何其他类型的随机存取存储器设备实现。非易失性存储器616可由闪存和/或任何期望类型的存储器设备实现。对主存储器614、616的访问由存储器控制器控制。
处理器平台600还包括接口电路620。接口电路620可由任何类型的接口标准(诸如以太网接口、通用串行总线(USB)和/或PCI快速接口)实现。
一个或多个输入设备622连接到接口电路620。输入设备622允许用户向处理器612输入数据和命令。输入设备可由例如键盘、鼠标、触摸屏、跟踪垫、轨迹球、等位点(isopoint)和/或语音识别系统实现。
一个或多个输出设备624也连接到接口电路620。输出设备624可由例如显示设备(例如,液晶显示器、阴极射线管显示器(CRT)、打印机和/或扬声器)实现。接口电路620因此可通常包括图形驱动卡。
接口电路620还包括通信设备(诸如调制解调器或网络接口卡)以便促进通过网络626(例如,以太网连接、数字用户线(DSL)、电话线、同轴电缆、蜂窝电话系统等等)与外部计算机交换数据。
处理器平台600还包括用于存储软件和数据的一个或多个大容量存储设备628。这种大容量存储设备628的示例包括软盘驱动、硬盘驱动、致密盘驱动和数字通用盘(DVD)驱动。
图3A-3D和/或图5的编码指令可存储在大容量存储设备628中、易失性存储器614中、非易失性存储器616中、和/或可移除存储介质(诸如CD或DVD)上。
示例方法包括:响应于计算平台的睡眠状态的发起,加密该计算平台的存储器;以及当从该睡眠状态恢复该计算平台时解密该存储器,其中,将该计算平台置于该睡眠状态包括对该计算设备的部分掉电以及保留该计算平台的状态。
某些示例方法进一步包括使用密码来生成包装密钥以便包装随机生成的加密密钥从而形成经包装的加密密钥。
某些示例方法进一步包括在生成该包装密钥之后和用该加密密钥加密该存储器之前损毁该密码。
某些示例方法进一步包括在加密该存储器之后损毁该加密密钥并且保留该经包装的加密密钥。该示例方法还可包括在解密该存储器之前验证正确的密码。
某些示例方法进一步包括当从该睡眠状态恢复时基于该密码和所存储的经包装的加密密钥导出加密密钥。
在某些示例方法中,解密该存储器包括虚拟化该经加密的存储器。
某些示例方法进一步包括响应于操作系统尝试访问被加密的该存储器的第一部分,解密该存储器的该第一部分。
某些示例方法进一步包括响应于该操作系统空闲,解密该存储器的第二部分。
某些示例方法进一步包括响应于预定义的时间段结束,解密该存储器的第二部分。
示例有形机器可读存储介质,包括指令,当被执行时,该指令致使机器至少:响应于计算平台的睡眠状态的发起,加密该计算平台的存储器;以及当从该睡眠状态恢复该计算平台时解密该存储器,其中,将该计算平台置于该睡眠状态包括对该计算设备的部分掉电以及保留该计算平台的状态。
在某些示例中,该指令致使该机器使用密码来生成包装密钥以便包装随机生成的加密密钥从而形成经包装的加密密钥。
在某些示例中,该指令致使该机器在生成该包装密钥之后和用该加密密钥加密该存储器之前损毁该密码。
在某些示例中,该指令致使该机器在加密该存储器之后损毁该加密密钥并且保留该经包装的加密密钥。
在某些示例中,该指令致使该机器在解密该存储器之前验证正确的密码。
在某些示例中,该指令致使该机器当从该睡眠状态恢复时基于该密码和所存储的经包装的加密密钥导出加密密钥。
在某些示例中,该指令致使该机器通过虚拟化该经加密的存储器解密该存储器。
在某些示例中,该指令致使该机器通过响应于操作系统尝试访问被加密的该存储器的第一部分而解密该存储器的该第一部分来解密该存储器。
在某些示例中,该指令致使该机器通过响应于该操作系统空闲而解密该存储器的第二部分来解密该存储器。
示例装置,包括:检测器,用于确定计算设备要被置于睡眠状态,其中,该计算平台的当前状态将在该睡眠状态期间保留;加密器,用于当该检测器检测到该睡眠状态的发起时在该当前状态下加密该计算平台的存储器;以及解密器,用于当从该睡眠状态恢复该计算平台时解密该存储器。
某些示例装置进一步包括密钥生成器,用于使用密码来生成包装密钥以便包装随机生成的加密密钥从而形成经包装的加密密钥,在生成该包装密钥之后和用该加密密钥加密该存储器之前损毁该密码。
在某些示例装置中,可在加密该存储器之后损毁该加密密钥以及保留该经包装的加密密钥。
在某些示例装置中,该解密器用于当从该睡眠状态恢复时使用用户提供的密码和所存储的经包装的加密密钥导出加密密钥。
在某些示例装置中,该解密器用于通过响应于操作系统尝试访问被加密的该存储器的第一部分而解密该存储器的该第一部分来解密该存储器。
在某些示例装置,该解密器用于通过响应于该操作系统空闲而解密该存储器的第二部分来解密该存储器。
尽管已经在此公开了某些示例装置、方法、以及制品,本专利的覆盖范围不限于此。相反,本专利覆盖合理地落入本专利的权利要求书的范围内的所有装置、方法、以及制品。
Claims (25)
1.一种方法,包括:
响应于计算平台的睡眠状态的发起,加密所述计算平台的存储器;以及
当从所述睡眠状态恢复所述计算平台时解密所述存储器,其中将所述计算平台置于所述睡眠状态包括对所述计算设备的部分掉电以及保留所述计算平台的状态。
2.如权利要求1所述的方法,进一步包括使用密码来生成包装密钥以便包装随机生成的加密密钥从而形成经包装的加密密钥。
3.如权利要求2所述的方法,进一步包括在生成所述包装密钥之后和用所述加密密钥加密所述存储器之前损毁所述密码。
4.如权利要求3所述的方法,进一步包括在加密所述存储器之后损毁所述加密密钥并且保留所述经包装的加密密钥。
5.如权利要求1所述的方法,进一步包括在解密所述存储器之前验证正确的密码。
6.如权利要求5所述的方法,进一步包括当从所述睡眠状态恢复时,基于所述密码和所存储的经包装的加密密钥导出加密密钥。
7.如权利要求1所述的方法,其中,解密所述存储器包括虚拟化所述经加密的存储器。
8.如权利要求1所述的方法,进一步包括响应于操作系统尝试访问被加密的所述存储器的第一部分,解密所述存储器的所述第一部分。
9.如权利要求8所述的方法,进一步包括响应于所述操作系统空闲,解密所述存储器的第二部分。
10.如权利要求8所述的方法,进一步包括响应于预定义的时间段结束,解密所述存储器的第二部分。
11.一种包括指令的有形机器可读存储介质,当被执行时,所述指令致使机器至少:
响应于计算平台的睡眠状态的发起,加密所述计算平台的存储器;以及
当从所述睡眠状态恢复所述计算平台时解密所述存储器,其中将所述计算平台置于所述睡眠状态包括对所述计算设备的部分掉电以及保留所述计算平台的状态。
12.如权利要求11所述的有形机器可读存储介质,所述指令致使所述机器使用密码来生成包装密钥以便包装随机生成的加密密钥从而形成经包装的加密密钥。
13.如权利要求12所述的有形机器可读存储介质,所述指令致使所述机器在生成所述包装密钥之后和用所述加密密钥加密所述存储器之前损毁所述密码。
14.如权利要求13所述的有形机器可读存储介质,所述指令致使所述机器在加密所述存储器之后损毁所述加密密钥并且保留所述经包装的加密密钥。
15.如权利要求11所述的有形机器可读存储介质,所述指令致使所述机器在解密所述存储器之前验证正确的密码。
16.如权利要求15所述的有形机器可读存储介质,所述指令致使所述机器当从所述睡眠状态恢复时基于所述密码和所存储的经包装的加密密钥导出加密密钥。
17.如权利要求11所述的有形机器可读存储介质,所述指令致使所述机器通过虚拟化所述经加密的存储器来解密所述存储器。
18.如权利要求11所述的有形机器可读存储介质,所述指令致使所述机器通过响应于操作系统尝试访问被加密的所述存储器的第一部分而解密所述存储器的所述第一部分来解码所述存储器。
19.如权利要求18所述的有形机器可读存储介质,所述指令致使所述机器通过响应于所述操作系统空闲而解密所述存储器的第二部分来解密所述存储器。
20.一种装置,包括:
检测器,用于确定计算设备要被置于睡眠状态,其中所述计算平台的当前状态将在所述睡眠状态期间被保留;
加密器,用于当所述检测器检测到所述睡眠状态的发起时在所述当前状态下加密所述计算平台的存储器;以及
解密器,用于当从所述睡眠状态恢复所述计算平台时解密所述存储器。
21.如权利要求20所述的装置,进一步包括密钥生成器,用于使用密码来生成包装密钥以便包装随机生成的加密密钥从而形成经包装的加密密钥,在生成所述包装密钥之后和用所述加密密钥加密所述存储器之前损毁所述密码。
22.如权利要求21所述的装置,在加密所述存储器之后,所述加密密钥被损毁以及所述经包装的加密密钥被保留。
23.如权利要求20所述的装置,所述解密器用于当从所述睡眠状态恢复时使用由用户提供的密码和所存储的经包装的加密密钥导出加密密钥。
24.如权利要求20所述的装置,所述解密器用于通过响应于操作系统尝试访问被加密的所述存储器的第一部分而解密所述存储器的所述第一部分来解密所述存储器。
25.如权利要求25所述的装置,所述解密器用于通过响应于所述操作系统空闲而解密所述存储器的第二部分来解密所述存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/538,154 US9811475B2 (en) | 2012-06-29 | 2012-06-29 | Methods and apparatus for a secure sleep state |
US13/538,154 | 2012-06-29 | ||
PCT/US2013/045853 WO2014004123A1 (en) | 2012-06-29 | 2013-06-14 | Methods and apparatus for a secure sleep state |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104335223A true CN104335223A (zh) | 2015-02-04 |
CN104335223B CN104335223B (zh) | 2017-09-01 |
Family
ID=49779500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380028646.4A Expired - Fee Related CN104335223B (zh) | 2012-06-29 | 2013-06-14 | 用于安全睡眠状态的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9811475B2 (zh) |
EP (1) | EP2867822B1 (zh) |
CN (1) | CN104335223B (zh) |
WO (1) | WO2014004123A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107633185A (zh) * | 2017-09-21 | 2018-01-26 | 联想(北京)有限公司 | 一种保护存储设备数据安全的方法及电子设备 |
CN111356965A (zh) * | 2018-01-05 | 2020-06-30 | 惠普发展公司,有限责任合伙企业 | 睡眠状态检测 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2869230B1 (en) * | 2013-10-29 | 2019-02-20 | Nxp B.V. | Method of operating a security token, computer program product and security token |
US9313199B2 (en) * | 2014-07-25 | 2016-04-12 | Verizon Patent And Licensing Inc. | Secure BIOS access and password rotation |
US10198274B2 (en) * | 2015-03-27 | 2019-02-05 | Intel Corporation | Technologies for improved hybrid sleep power management |
US10671762B2 (en) * | 2015-09-29 | 2020-06-02 | Apple Inc. | Unified addressable memory |
US10503796B2 (en) * | 2015-10-26 | 2019-12-10 | Facebook, Inc. | Searching for application content with social plug-ins |
US10235526B2 (en) * | 2015-12-18 | 2019-03-19 | Intel Corporation | Secure resume from a low power state |
WO2017155516A1 (en) * | 2016-03-08 | 2017-09-14 | Hewlett-Packard Development Company, L.P. | Securing data |
EP3614293A1 (en) * | 2018-08-24 | 2020-02-26 | Nagravision S.A. | Securing data stored in a memory of an iot device during a low power mode |
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 |
US20220129527A1 (en) * | 2020-10-26 | 2022-04-28 | Apple Inc. | Secure Reduced Power Mode |
JP2022097174A (ja) * | 2020-12-18 | 2022-06-30 | 東芝テック株式会社 | 制御装置及びその起動方法、ならびに電気機器 |
TWI783410B (zh) * | 2021-03-16 | 2022-11-11 | 瑞昱半導體股份有限公司 | 電子裝置以及其休眠恢復方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003273A1 (en) * | 2002-06-26 | 2004-01-01 | Grawrock David W. | Sleep protection |
CN1694032A (zh) * | 2004-04-29 | 2005-11-09 | 国际商业机器公司 | 自举具有冗余可信平台模块的可信服务器的方法和系统 |
US7210045B2 (en) * | 2003-08-19 | 2007-04-24 | Intel Corporation | Storing encrypted and/or compressed system context information when entering a low-power state |
CN101091147A (zh) * | 2005-05-10 | 2007-12-19 | 索尼计算机娱乐公司 | 计算系统中功率管理的方法和设备 |
US20110246767A1 (en) * | 2010-03-30 | 2011-10-06 | Pradeep Kumar Chaturvedi | Secure virtual machine memory |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8386797B1 (en) * | 2002-08-07 | 2013-02-26 | Nvidia Corporation | System and method for transparent disk encryption |
NZ564196A (en) * | 2007-12-10 | 2010-08-27 | Resonance Holdings Ltd | Electronic lock for security system and key on a wireless device including methods of encoding data |
US8181046B2 (en) | 2008-10-29 | 2012-05-15 | Sandisk Il Ltd. | Transparent self-hibernation of non-volatile memory system |
US8423092B2 (en) | 2008-12-12 | 2013-04-16 | Qualcomm Incorporated | Power management in a mobile device |
US8639874B2 (en) | 2008-12-22 | 2014-01-28 | International Business Machines Corporation | Power management of a spare DRAM on a buffered DIMM by issuing a power on/off command to the DRAM device |
US8799691B2 (en) | 2009-01-07 | 2014-08-05 | Hewlett-Packard Development Company, L.P. | Hierarchical power management |
US20120133484A1 (en) * | 2010-11-29 | 2012-05-31 | Research In Motion Limited | Multiple-input device lock and unlock |
-
2012
- 2012-06-29 US US13/538,154 patent/US9811475B2/en not_active Expired - Fee Related
-
2013
- 2013-06-14 CN CN201380028646.4A patent/CN104335223B/zh not_active Expired - Fee Related
- 2013-06-14 WO PCT/US2013/045853 patent/WO2014004123A1/en active Application Filing
- 2013-06-14 EP EP13810562.2A patent/EP2867822B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003273A1 (en) * | 2002-06-26 | 2004-01-01 | Grawrock David W. | Sleep protection |
US7210045B2 (en) * | 2003-08-19 | 2007-04-24 | Intel Corporation | Storing encrypted and/or compressed system context information when entering a low-power state |
CN1694032A (zh) * | 2004-04-29 | 2005-11-09 | 国际商业机器公司 | 自举具有冗余可信平台模块的可信服务器的方法和系统 |
CN101091147A (zh) * | 2005-05-10 | 2007-12-19 | 索尼计算机娱乐公司 | 计算系统中功率管理的方法和设备 |
US20110246767A1 (en) * | 2010-03-30 | 2011-10-06 | Pradeep Kumar Chaturvedi | Secure virtual machine memory |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107633185A (zh) * | 2017-09-21 | 2018-01-26 | 联想(北京)有限公司 | 一种保护存储设备数据安全的方法及电子设备 |
CN111356965A (zh) * | 2018-01-05 | 2020-06-30 | 惠普发展公司,有限责任合伙企业 | 睡眠状态检测 |
Also Published As
Publication number | Publication date |
---|---|
EP2867822A1 (en) | 2015-05-06 |
CN104335223B (zh) | 2017-09-01 |
EP2867822B1 (en) | 2019-08-14 |
EP2867822A4 (en) | 2015-12-23 |
WO2014004123A1 (en) | 2014-01-03 |
US20140006799A1 (en) | 2014-01-02 |
US9811475B2 (en) | 2017-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104335223B (zh) | 用于安全睡眠状态的方法和装置 | |
US10762216B2 (en) | Anti-theft in firmware | |
TWI245182B (en) | Method, chipset, system and recording medium for responding to a sleep attack | |
US8335931B2 (en) | Interconnectable personal computer architectures that provide secure, portable, and persistent computing environments | |
US7900252B2 (en) | Method and apparatus for managing shared passwords on a multi-user computer | |
EP2795829B1 (en) | Cryptographic system and methodology for securing software cryptography | |
US11379586B2 (en) | Measurement methods, devices and systems based on trusted high-speed encryption card | |
US10536274B2 (en) | Cryptographic protection for trusted operating systems | |
CN107707981B (zh) | 一种基于Trustzone技术的微码签名安全管理系统及方法 | |
Buhren et al. | Fault attacks on encrypted general purpose compute platforms | |
Mannan et al. | Unicorn: Two-factor attestation for data security | |
Rutkowska | Intel x86 considered harmful | |
EP3757838B1 (en) | Warm boot attack mitigations for non-volatile memory modules | |
CN110245495A (zh) | Bios校验方法、配置方法、设备及系统 | |
JP4724107B2 (ja) | リムーバブル・デバイスを用いたユーザの認証方法およびコンピュータ | |
Zhao et al. | Hypnoguard: Protecting secrets across sleep-wake cycles | |
CN110334532B (zh) | 文件的加密、解密处理方法及加解密系统 | |
US11960737B2 (en) | Self-deploying encrypted hard disk, deployment method thereof, self-deploying encrypted hard disk system and boot method thereof | |
JP5355351B2 (ja) | コンピュータ | |
ES2798077T3 (es) | Sistema criptográfico y metodología para asegurar criptografía de software | |
Sim et al. | Secure firmware architecture using virtual hard disks |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170901 Termination date: 20210614 |