基于在线密钥的密钥保护装置的制作方法

文档序号:7695787阅读:178来源:国知局
专利名称:基于在线密钥的密钥保护装置的制作方法
技术领域
本发明涉及密钥保护。
背景技术
随着计算机存储技术的进步,大容量存储设备已经变得越来越普遍。这些设备可以存储大量的数据,这些设备中的某些本质上是便携的,并容易丢失或被盗。类似地,诸如虚拟硬盘之类的虚拟存储介质也使得数据在多个设备之间更容易转移。在存储设备上或虚拟存储介质上存储大量的数据对于用户来说是有问题的,因为如果存储设备或虚拟存储介质丢失、被盗或以其他方式被泄露,它会导致大量数据向恶意用户公开。由于用户可能希望存储在这样的存储设备或虚拟存储介质上的数据的脆弱性,这会导致用户产生挫败感。

发明内容
提供本发明内容是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。根据一个或多个方面,为存储介质创建密钥保护装置的方法包括获取在线密钥。 至少部分地基于在线密钥,加密用于加密和解密存储介质或加密和解密用于加密存储介质的一个或多个存储介质加密密钥的主密钥。在线密钥可以是例如由远程服务保护的密钥或其他信息。存储用于存储介质的密钥保护装置,该密钥保护装置包括已加密的主密钥。根据一个或多个方面,在计算设备中实现了用于访问用户保护的存储介质的方法。从远程服务获取与用户保护的存储介质相关联的在线密钥。获取包括已加密的主密钥的密钥保护装置,该主密钥用于解密用户保护的存储介质或解密用于解密用户保护的存储介质的一个或多个存储介质加密密钥。使用在线密钥来从密钥保护装置中解密主密钥。


在各附图中,使用相同的标号来指示相同的特征。图1示出了根据一个或多个实施例的实现基于在线密钥的密钥保护装置的示例系统。图2是示出了根据一个或多个实施例的基于在线密钥的示例密钥保护装置的框图。图3是示出了根据一个或多个实施例的用于创建基于在线密钥的示例过程的流程图。图4是示出了根据一个或多个实施例的用于使用基于在线密钥的密钥保护装置来解密存储介质上的数据的示例过程的流程图。图5示出了根据一个或多个实施例的可以被配置成实现基于在线密钥的密钥保护装置的示例计算设备。
具体实施例方式此处讨论了基于在线密钥的密钥保护装置。一个或多个密钥保护装置存储在存储介质上,并允许一个用户或用户组访问该存储介质上的已加密的数据。一种密钥保护装置是基于在线密钥的密钥保护装置。存储介质上的数据是使用主密钥或使用该主密钥加密的一个或多个密钥加密的。基于在线密钥的密钥保护装置存储基于在线密钥加密的主密钥。 可以单独地基于在线密钥,或者可另选地基于在线密钥与一个或多个本地密钥的组合,来加密主密钥。可以基于各种用户输入(如用户输入的密码,用户输入的来自智能卡的个人标识号等等),获取本地密钥。在线密钥受与访问存储介质的设备分开的远程服务的保护。 访问存储介质的设备,或该设备的用户,向远程服务认证其本身,以便从远程服务获取在线密钥。此处将参考对称密钥加密、公钥加密、和公/私钥对。虽然这样的密钥加密对于本领域的技术人员是已知的,但是,这里仍对它们进行简要概述以帮助读者。在公钥加密中, 一个实体(如用户、硬件或软件组件、设备、域等等)具有与它相关联的公/私钥对。可以使公钥公开可用,但是,该实体使私钥保密。若没有私钥,从计算上来说很难解密使用公钥加密的数据。如此,数据可以由具有公钥的任何实体加密,而只能由具有对应的私钥的实体解密。另外,也可以通过使用数据和私钥来生成该数据的数字签名。若没有私钥,从计算上来说很难创建可以使用公钥验证的签名。具有公钥的任何实体都可以使用公钥,通过对公钥、签名以及被签名的数据执行合适的数字签名验证算法,来验证数字签名。另一方面,在对称密钥加密中,共享的密钥(也被称为对称密钥)被一个或多个实体知道,并由它们保密。具有共享密钥的任何实体通常都能够解密利用该共享密钥加密的数据。若没有共享密钥,从计算上来说很难解密利用共享密钥加密的数据。如此,如果两个实体都知道共享密钥,则每一实体都可以加密数据,并可以由另一个实体解密该数据,但是,如果其他实体不知道共享密钥,则这些其他实体不能解密该数据。类似地,一个具有共享密钥的实体可以加密数据,并可以由该同一个实体解密该数据,但是,如果其他实体不知道共享密钥,则这些其他实体不能解密该数据。图1示出了根据一个或多个实施例的实现基于在线密钥的密钥保护装置的示例系统100。系统100包括可以耦合到存储介质104的计算设备102。存储介质104可以是使用各种不同的技术实现的存储设备,如闪存设备、磁盘、光盘、其组合等等。存储介质104 也可以是由计算设备和操作系统在逻辑上当作存储设备的存储设备的一部分。例如,存储介质可以是硬盘驱动器的一个分区,闪存设备的一部分等等。存储介质104也可以是可以由计算设备102安装的(例如,由在计算设备102上运行的虚拟机安装的)虚拟存储介质, 如虚拟磁盘。例如,存储介质可以是虚拟硬盘(VHD)文件(例如,闪存设备上的,磁盘上的, 等等),并由在计算设备102上运行的虚拟机作为磁盘安装。位于美国华盛顿州雷德蒙市的微软公司提供关于VHD文件的额外的信息。如此,存储介质104可以是物理存储介质或虚拟存储介质。存储介质104可以以各种不同的有线和/或无线方式耦合到设备102。例如,存储介质104可以通过通用串行总线(USB)连接、无线USB连接、IEEE1394连接、蓝牙连接等等,耦合到设备102。存储介质104可以被设计成耦合到不同的计算设备(同时或在不同的时间)。在一个或多个实施例中,存储介质104是可移动介质,如被设计成能轻松地耦合到计算设备102并从计算设备102分离并转移到其他计算设备的存储设备的一部分。拇指驱动器(thumb drive)或USB闪存设备是这样的可移动存储介质的一个示例。可另选地,存储介质104可以采取其他形式,如作为通过网络(例如,因特网、局域网(LAN)、公用电话网、内联网、其他公共和/或专有的网络,其组合,等等)耦合到计算设备102的网络存储设备,计算设备102的内部存储介质(例如,内部硬盘驱动器)等等。例如,存储介质104可以是可通过网络访问的虚拟存储介质,如作为可以通过网络被设备102 访问的一个或多个服务上的一个或多个VHD文件来存储。计算设备102可以是能够与存储介质104进行通信的各种不同类型的设备。例如, 计算设备102可以是台式计算机、移动站、笔记本电脑或膝上型计算机、笔记本型机、娱乐设备、可通信地耦合到显示设备的机顶盒、蜂窝式或其他无线电话、音乐或视频播放设备、 游戏控制台、车载计算机等等。如此,计算设备102可以从带有相当大的存储器和处理器资源的完全资源设备(例如,个人计算机、游戏控制台)到具有有限的存储器和/或处理资源的低资源设备(例如,传统的机顶盒、手持式游戏控制台)。系统100还包括远程服务106。远程服务106可以通过一个或多个相同或不同类型的计算设备来实现。类似于上文关于计算设备102的讨论,远程服务106可以使用各种不同类型的计算设备来实现。远程服务106是在与计算设备102分开的一个或多个设备上实现的,且因此被称为“远程的”。远程服务106可以在物理上位于计算设备102的附近 (例如,在同一房间或建筑物中)或者离得很远(例如,在不同的州,不同的国家等等)。计算设备102通过诸如因特网、局域网(LAN)、公用电话网、内联网、其他公共和/或专有的网络、其组合等等之类的网络,与远程服务106进行通信。计算设备102可以通过一个或多个有线和/或无线连接与远程服务106进行通信。为保护存储在存储介质104上的数据,使用基于卷的或基于驱动器的加密技术, 加密存储介质104。在一个或多个实施例中,响应于用户的保护存储介质104的请求(或来自另一组件或模块的为用户加密存储介质104的请求),加密存储介质,因此存储介质104 也可以被称为用户保护的存储介质。在基于卷或基于驱动器的加密技术中,加密整个卷和 /或驱动器,而并非存储在那些卷和/或驱动器上的单个文件。在一个或多个实施例中,用于加密和解密存储介质104的加密技术是位于美国华盛顿州雷德蒙市的微软公司推出的 BitLocker 驱动器加密技术。可另选地,也可以使用其他公共和/或专有的加密技术。计算设备102包括加密存储器112、卷保护模块114,以及输入/输出(I/O)模块 116。可以理解,计算设备102也可以包括用于提供计算设备102的各种功能的一个或多个附加的组件或模块。模块114和116可以以软件、固件、硬件或其组合来实现。当以软件或固件实现时,模块114和116中的每一个都包括由计算设备102的处理器或控制器执行的一个或多个指令。模块114和116通常被实现为计算设备102的操作系统的一部分,虽然模块114和116可以可另选地与操作系统分开实现。例如,并非作为计算设备102的操作系统的一部分,可以从另一源(诸如远程设备、存储介质104等等)获得卷保护模块114,并由计算设备102运行,以便访问存储介质104上的已加密的数据。加密存储器112存储密钥和/或支持由卷保护模块114执行的加密与解密的其他信息。例如,加密存储器112可以存储公/私钥对的公钥、公/私钥对的私钥、证书、对称密钥和/或用于加密和/或解密数据的其他数据中的一个或多个。加密存储器112可以维护在设备102的各种不同的计算机存储介质中,如随机存取存储器(RAM)、闪存、磁盘等等。加密存储器112也可以可任选地包括允许计算设备102的其他组件和模块访问由加密存储器 112存储的数据的接口部分。存储器112的这样的接口部分可以以软件、固件、硬件或其组合来实现。I/O模块116管理从存储介质104输入数据和向存储介质104输出数据。取决于存储介质104被配置成与计算设备102进行通信的方式,I/O模块116可以使用各种不同的连接和/或网络协议与存储介质104进行通信。I/O模块116还管理往返于远程服务106 的数据传输。I/O模块116可以使用各种不同的连接和/或网络协议与远程服务106进行
ififn。卷保护模块114支持用于保护存储介质104的特定加密技术。因此,当存储介质 104耦合到计算设备102或由计算设备102安装时,计算设备102能够使用如下面比较详细地讨论的密钥保护装置来访问存储介质104上的已加密的数据。存储介质104包括元数据部分120和已加密的数据部分122。已加密的数据部分 122存储已经被加密的(逐一地或以其他方式)数据文件,以及关于对存储介质104的保护的各种其他数据,如各种数据结构或其他信息在存储介质104上的位置,对于存储介质104 的一个或多个部分的数字签名等等。元数据部分120存储关于存储介质104和/或已加密的数据部分122的各种信息,如一个或多个基于在线密钥的密钥保护装置(基于在线密钥的密钥保护装置)124,元数据验证字段,等等。在一个或多个实施例中,如上文所讨论地,已加密的数据部分122是使用基于卷的或基于驱动器的加密技术加密的,而元数据部分120 是存储介质104中没有如上文所讨论使用基于卷的或基于驱动器的加密技术来加密的未加密的部分。虽然元数据部分120可以是存储介质104的未加密的部分,但是,存储在元数据部分120中的一些数据可以是加密的(例如,如下面比较详细地讨论的基于在线密钥的密钥保护装置124的某些部分)。在线密钥是指由远程服务106保护的并且与特定计算设备102和/或计算设备 102的特定用户相关联的密钥。如下面比较详细地讨论的,在线密钥可以由远程服务106存储和/或由远程服务106解密。在线密钥可以以各种不同的方式生成,如通过使用各种不同的常规随机或伪随机数发生器中的一个。在线密钥也可以基于或使用其他信息来生成, 如基于令牌(例如,包括由远程服务106所提供的计算设备102的用户的用户名的陈述) 或由远程服务106所提供的标识计算设备102的用户的其他信息。例如,可以通过将常规散列函数应用到由远程服务106为计算设备102的用户生成的令牌,获取散列值,并将该散列值用作在线密钥。每一密钥保护装置1 都是存储可使部分122被解密的一个或多个已加密的密钥的结构。由于存储介质104是使用基于卷的或基于驱动器的加密技术加密的,因此,密钥保护装置IM中的一个或多个已加密的密钥可使部分122中的很多已加密的数据文件及其他数据被访问(而并非允许只对单一已加密的文件进行访问)。在存储介质104上可以包括多个密钥,可以使用各种不同的数据结构来存储它们。如下面比较详细地讨论的,密钥保护装置IM基于在线密钥。另外,存储基于其他加密技术,如基于TPM(可信平台模块)的技术、基于公/私钥对的技术等等的已加密的密钥的一个或多个其他密钥保护装置,可以存储在存储介质104上的元数据部分120中。已加密的部分122中的数据是使用多个密钥的集合保护的。在一个或多个实施例中,部分122中的数据是使用被称为完全存储介质加密密钥或存储介质加密密钥的对称密钥来加密的。可以使用各种不同的对称密钥加密算法或密码,如AES、AES-CCM、DES、RC4等等,并使用存储介质加密密钥,来加密和/或解密数据。存储介质加密密钥是使用被称为主密钥的不同的对称密钥来加密的。可以使用各种不同的对称密钥加密算法或密码,如AES、AES-CCM、DES、RC4等等,并使用主密钥,来加密和/或解密数据。可以使用如用于加密部分122中的数据的相同算法或密码来加密存储介质加密密钥,或者,也可以使用不同的算法或密码。已加密的存储介质加密密钥存储在存储介质104上,如存储在部分122,或者存储介质104上的别处。可另选地,可以使用主密钥来加密部分122中的数据,在这样的情况下,不必使用存储介质加密密钥。主密钥是至少部分地基于在线密钥加密的。可以使用在线密钥,或者可另选地使用在线密钥与一个或多个本地密钥的组合,来加密主密钥。可以使用各种不同的(例如,对称密钥)加密算法或密码,如AES、AES-CCM、DES、RC4等等,来加密和/或解密主密钥。可以使用如用于加密存储介质加密密钥和/或用于加密部分122中的数据的相同算法或密码来加密主密钥,或者,也可以使用不同的算法或密码。已加密的主密钥存储在密钥保护装置 124 中。在其中只使用在线密钥来加密主密钥的各实施例中,加密算法或密码用来加密和 /或解密主密钥的密钥是在线密钥。因此,在一个或多个实施例中,使用在线密钥来作为加密和/或解密主密钥的对称密钥。在其中在线密钥和一个或多个本地密钥一起使用的各实施例中,将在线密钥和一个或多个本地密钥组合起来生成组合密钥。此组合密钥是加密算法或密码用来加密和/或解密主密钥的密钥(例如,对称密钥)。可以以不同的方式,使用各种数学运算中的任何一种,或将各种算法或进程中的任何一种应用到在线密钥和一个或多个本地密钥,来将在线密钥和一个或多个本地密钥组合起来。例如,可以通过使用“异-或”运算,以在线密钥和一个或多个本地密钥作为对“异-或”运算的输入,并使用异-或运算的结果作为组合密钥;通过将在线密钥和一个或多个本地密钥相加在一起;通过将在线密钥和一个或多个本地密钥级联;通过使用在线密钥和一个或多个本地密钥中的全部作为对散列函数或密钥派生函数的输入,并使用该函数的输出作为组合密钥等等,来组合在线密钥和一个或多个本地密钥。也可以通过使用类似于以上的讨论的各种不同的对称密钥加密算法或密码,这可以是与如上文所讨论的相同对称密钥加密算法或密码,或不同的对称密钥加密算法或密码,加密在线密钥和一个或多个本地密钥中的一个,来将在线密钥和一个或多个本地密钥组合起来。可以使用一个或多个本地密钥(或从一个或多个本地密钥导出的某个值),加密在线密钥,如果有多个本地密钥,则可以例如将那些本地密钥组合以生成用来加密在线密钥的密钥,可以使用一个本地密钥来加密可以被用来加密在线密钥的另一本地密钥,等等。 可另选地,可以使用在线密钥(或从在线密钥导出的某个值),加密一个或多个本地密钥。也可以通过利用在线密钥或本地密钥中的一个来加密主密钥,然后利用在线密钥或本地密钥中的另一个来加密这个加密的结果,来将在线密钥和一个或多个本地密钥组合起来。例如,可以利用本地密钥来加密主密钥,并可以利用在线密钥来加密这个加密的结果。作为另一个示例,可以利用在线密钥来加密主密钥,可以利用多个本地密钥中的第一本地密钥来加密这个加密的结果,并可以利用多个本地密钥中的第二本地密钥来加密这个加密的结果,以此类推。应该注意,也可以将此处所讨论的用于组合在线密钥和一个或多个本地密钥的各种技术组合起来,并以任何顺序执行。还应注意,此处所讨论的用于组合在线密钥和一个或多个本地密钥的各种技术只是示例而已,可以可另选地使用用于组合在线密钥和一个或多个本地密钥的其他技术。可以将基于在线密钥的多个这样的密钥保护装置与相同或不同的实体相关联,可使不同的实体访问部分122中的数据和/或可使实体以不同的方式标识其本身。这些不同的实体可以是例如不同的用户、不同的用户组,等等。通过加密基于在线密钥的主密钥,可以将同一个主密钥与这些多个密钥保护装置一起使用。远程服务106通过为在线密钥提供解密支持和/或存储,为在线密钥提供保护。在一个或多个实施例中,卷保护模块114生成在线密钥,使用远程服务106的公钥来加密在线密钥,并存储已加密的在线密钥(例如,在基于在线密钥的密钥保护装置124中)。卷保护模块114可以随后通过将已加密的在线密钥发送到远程服务106,该远程服务106又可以解密在线密钥并将其返回到计算卷保护模块114(假设如下面比较详细地讨论的,计算设备 102被认证),来检索在线密钥。远程服务106可任选地包括在线密钥存储器132和/或认证模块134。在线密钥存储器132为计算设备102存储在线密钥。虽然在图1中示出了单个计算设备,但是,远程服务106可以为多个不同的计算设备存储在线密钥。在线密钥存储器132将从计算设备 102接收到的在线密钥与计算设备102的标识符和/或计算设备102的用户的标识符相关联。计算设备102的标识符可以是由远程服务106对计算设备102指派的名称、由计算设备102的受信任的或安全处理组件所提供的标识符、基于计算设备102的硬件和/或软件配置所生成的标识符等等。计算设备102的用户的标识符可以是例如由远程服务106对用户指派的用户名(也被称为用户ID)、由计算设备102的受信任的或安全处理组件所提供的用户名、由用户提交的并由远程服务106接受的用户名等等。认证模块134认证计算设备102的标识符和/或计算设备102的用户的标识符。 在认证计算设备102和/或计算设备102的用户的标识符之后,远程服务106允许与该标识符相关联的在线密钥被返回到计算设备102。远程服务106可以以不同的方式获取要被返回到计算设备102的在线密钥,如通过从在线密钥存储器132检索在线密钥,使用远程服务106的私钥来解密从卷保护模块114接收到的已加密的在线密钥,等等。认证模块134可以至少部分地基于特定标识符,以不同的方式认证计算设备102 和/或计算设备102的用户的标识符。例如,用户标识符可以具有相关联的用户密码。用户可以在计算设备102上输入他的或她的用户名和密码,计算设备102将用户名和密码传输到远程服务106。认证模块134保留与用户名相关联的密码的记录或可以以其他方式访问密码。如果认证模块134判断接收到的密码是与接收到的用户名相关联的密码,那么,用户标识符被认证或验证为是正确的;否则,用户标识符不被认证或验证为是正确的。作为另一个示例,认证模块134可以返回在线密钥,以使得具有特定用户名的计算设备102的用户可以获取在线密钥,而其他用户或计算设备却不能。例如,可以使用与用户名相关联的密码或令牌来加密在线密钥,或者,令牌可以是在线密钥。这种返回在线密钥可以具有期满时间(例如,特定日期和时间,以分钟或小时为单位的持续时间等等),只允许在期满时间到期以前获取和/或使用在线密钥。可以例如由卷保护模块114来实施期满时间。例如, 可以返回令牌,并只在令牌过期以前将其用作在线密钥(或用于解密在线密钥),可以返回 cookie,并只在cookie过期以前将cookie中所包括的数据用作在线密钥,等等。如此,认证模块134可以固有地通过返回在线密钥来认证计算设备102的用户,以防止其他用户或计算设备获取在线密钥。作为另一个示例,计算设备102的标识符可以是由计算设备102的受信任的或安全处理组件所提供的标识符。认证模块134从计算设备102获取标识符,并可以确认(例如,基于与标识符一起接收到的数字证书,基于认证模块134发送到计算设备102的一个或多个查询,等等)标识符是从计算设备102的受信任的或安全进程接收到的。可另选地,认证模块134可以返回与标识符相关联的在线密钥,以使得具有该标识符的计算设备102可以获取在线密钥,而其他计算设备却不能。例如,可以使用标识符来加密在线密钥,可以利用计算设备102的公钥来加密在线密钥,等等。如此,认证模块134可以固有地通过返回在线密钥来认证计算设备102的标识符,以防止其他用户或计算设备获取在线密钥。当从远程服务106向计算设备102返回在线密钥时,卷保护模块114以安全方式维护在线密钥,如维护在加密存储器112中。在一个或多个实施例中,认证模块134作为网络或服务组的认证组件来操作。当计算设备102的用户通过被认证模块134认证而登录到特定网络或服务组时,计算设备102获取在线密钥。当用户登录到该特定网络或服务组时, 卷保护模块114维护在线密钥,而当用户退出或以别的方式不再登录到该特定网络或服务组时,删除在线密钥。如此,在这样的实施例中,只有在计算设备102的用户登录到该特定网络或服务组的情况下,在线密钥才可供卷保护模块114用来解密存储介质104的已加密的数据部分122。如上文所讨论的,可以将在线密钥与一个或多个本地密钥组合,以生成组合密钥。 由卷保护模块114来保护一个或多个本地密钥,以便可以由被授权的用户获取它们,但是未经授权的用户不能获取它们。被授权的用户是向卷保护模块114认证了自己的用户。一般而言,本地密钥通过被加密或存储在安全区域来保护,然后,当用户向卷保护模块114认证自己时,被解密或从安全区域检索。用户通常以与用户向认证模块134认证自己不同的方式向卷保护模块114认证自己(例如,不使用与提供到认证模块134的相同的用户名和密码)。此认证可以是向卷保护模块114提供用户名和密码,使智能卡或其他设备(例如, 存储标识符的USB设备)可以被卷保护模块114访问,等等。在一个或多个实施例中,通过使用受信任的或安全处理组件将本地密钥存储(或密封)在计算设备102上,来保护本地密钥。例如,可以使用计算设备102的操作系统的 TPM服务的存储根密钥(SRK),来密封本地密钥。位于美国华盛顿州雷德蒙市的微软公司提供关于TPM服务的额外的信息。可以响应于用户向卷保护模块114认证自己,开封或从TPM 服务中检索密封的本地密钥。作为另一个示例,可以基于两个附加的密钥来保护本地密钥(例如,使用作为两个附加的密钥的组合的密钥来加密),每一个附加的密钥都可以使用各种不同的常规随机或伪随机数发生器中的一个来生成。可以使用计算设备102的操作系统的TPM服务的SRK来密封这两个附加的密钥中的一个,并可以响应于用户向卷保护模块114认证自己,开封或从TPM服务中检索该附加密钥。这两个附加的密钥中的另一个可以存储在USB闪存驱动器上,并可以通过用户将USB闪存驱动器连接到计算设备102(允许卷保护模块114获取此附加的密钥)来获取。作为再一个示例,可以基于两个附加的密钥来保护本地密钥(例如,使用作为两个附加的密钥的组合的密钥来加密)。可以使用各种不同的常规随机或伪随机数发生器中的一个,来生成这两个附加的密钥中的第一附加的密钥。可以使用计算设备102的操作系统的TPM服务的SRK来密封此第一附加的密钥,并可以响应于用户向卷保护模块114认证自己,开封或从TPM服务中检索该附加密钥。基于由用户输入的密码,生成这两个附加的密钥中的第二附加的密钥(例如,此第二附加的密钥可以是通过将常规散列函数应用到由用户输入的密码来生成的散列值)。可以使用计算设备102的操作系统的TPM服务的SRK来密封此第二附加的密钥,并可以响应于用户向卷保护模块114认证自己,开封或从TPM服务中检索该附加密钥。作为另一个示例,可以基于由用户输入的密码来保护本地密钥。可以基于由用户输入的密码来加密本地密钥(例如,用于加密本地密钥的对称密钥可以是通过将常规散列函数应用到由用户输入的密码来生成的散列值)。可以由用户向卷保护模块114输入该同一个密码来检索本地密钥。如此,在其中在线密钥与一个或多个本地密钥组合的各实施例中,为了使主密钥被解密(如此,为了使已加密的数据部分122中的数据被解密),有至少两个不同的认证要被满足。第一一个或多个认证是用户向卷保护模块114认证自己,允许一个或多个本地密钥被解密。一个附加的认证是用户向认证模块134认证自己(和/或计算设备102向认证模块134认证其本身),允许在线密钥被解密。图2是示出了根据一个或多个实施例的基于在线密钥的示例密钥保护装置200的框图。密钥保护装置200可以是例如图1的密钥保护装置124。密钥保护装置200包括已加密的主密钥部分202、已加密的组合密钥部分204,以及保护装置类型标识符部分206。可以理解,图2的示例中所示出的部分只是示例,可另选地,部分202-206中的一个或多个不必被包括在密钥保护装置中,可以将一个或多个附加的部分添加到密钥保护装置中,和/或可以将部分202-206中的一个或多个合并到单个部分。已加密的主密钥部分202包括基于在线密钥加密的主密钥。如上文所讨论的,可以使用在线密钥或组合密钥来加密主密钥。也是如上文所讨论的,可以使用各种不同的加密算法或密码,如AES、AES-CCM、DES、RC4等等,使用组合密钥,来加密主密钥。已加密的组合密钥部分204包括使用主密钥加密的组合密钥。可以使用各种不同的加密算法或密码,如AES、AES-CCM、DES、RC4等等,并使用主密钥,来加密组合密钥。可以使用如用于加密其他数据或密钥(例如,存储介质加密密钥、图1的部分122中的数据,等等)的相同算法或密码来加密组合密钥,或者,也可以使用不同的算法或密码。在其中使用在线密钥而并非在线密钥和一个或多个本地密钥的组合来加密主密钥的各实施例中,使用主密钥加密的在线密钥被包括在组合密钥部分204,而并非已加密的组合密钥中。保护装置类型标识符部分206包括将密钥保护装置200标识为是基于在线密钥的密钥保护装置的值。如上文所讨论的,其他类型的密钥保护装置可以被包括在存储介质的元数据中,而标识符部分206中的值允许密钥保护装置200被标识为基于在线密钥的密钥保护装置,而并非不同类型的密钥保护装置。保护装置类型标识符部分206中的标识符也可以被称为密钥保护装置200的元数据。密钥保护装置200也可以在一个或多个附加的部分(未示出)包括各种其他元数据。 例如,密钥保护装置200可包括指出将在线密钥和一个或多个本地密钥组合起来的方式的元数据,指出保护一个或多个本地密钥的方式的元数据等等。密钥保护装置200也可以可任选地包括利用远程服务(例如,图1的远程服务 106)的公钥加密的在线密钥。可以将利用远程服务的公钥加密的在线密钥发送到远程服务,以便可以如上文所讨论的检索在线密钥。应该注意,此处所讨论的基于在线密钥的密钥保护装置支持轻松地改变(也被称为滚动)主密钥。如上文所讨论的,存储介质上的数据是使用存储介质加密密钥来加密的, 而存储介质加密密钥又是使用主密钥加密的。为增强存储设备的加密的安全性,可以在各种时间改变主密钥。整个存储介质不必被重新加密,因为存储介质加密密钥不会被改变。然而,基于在线密钥的密钥保护装置包括基于在线密钥加密的主密钥,以及使用主密钥加密的组合密钥。随着主密钥改变,密钥保护装置也被改变。密钥保护装置200包括使用部分204中的主密钥加密的组合密钥。如果主密钥从一个主密钥(被称为“旧主密钥”)变为不同的主密钥(被称为“新主密钥”),那么,作为改变过程的一部分,可以使用旧主密钥来解密已加密的组合密钥。可以使用组合密钥来加密新主密钥。已加密的新主密钥替换已加密的旧主密钥,作为已加密的主密钥部分202中的已加密的主密钥。新主密钥也用于加密组合密钥,而利用新主密钥加密的组合密钥替换利用旧主密钥加密的组合密钥,作为已加密的组合密钥部分204中的已加密的组合密钥。可另选地,并非包括已加密的组合密钥(或除包括已加密的组合密钥之外),密钥保护装置200可包括使用主密钥加密的在线密钥,以及使用主密钥加密的一个或多个本地密钥。在这样的情况下,如果主密钥从旧主密钥变为新主密钥,那么,作为改变过程的一部分,可以使用旧主密钥来解密已加密的一个或多个本地密钥和已加密的在线密钥。然后,可以将一个或多个本地密钥和在线密钥组合起来(以如上文所讨论的各种不同的方式),并用于加密新主密钥。已加密的新主密钥替换已加密的旧主密钥,作为已加密的主密钥部分 202中的已加密的主密钥。新主密钥也用于加密在线密钥,而利用新主密钥加密的在线密钥替换利用旧主密钥加密的在线密钥,作为密钥保护装置200中的已加密的在线密钥。类似地,新主密钥也用于加密一个或多个本地密钥,而利用新主密钥加密的一个或多个本地密钥替换利用旧主密钥加密的一个或多个本地密钥,作为密钥保护装置200中的已加密的一个或多个本地密钥。图3是示出了根据一个或多个实施例的用于创建基于在线密钥的密钥保护装置的示例过程300的流程图。过程300可以由诸如图1的模块114之类的计算设备的卷保护模块来执行,或者可另选地由另一个组件或模块和/或另一设备来执行。过程300可以以软件、固件、硬件或其组合来实现。过程300被示为一组动作,不仅限于所示出的用于执行各种动作的操作的顺序。过程300是用于创建基于在线密钥的密钥保护装置的示例过程; 此处参考不同的附图包括了对于创建基于在线密钥的密钥保护装置的附加的讨论。
在一个或多个实施例中,响应于保护或加密存储介质的用户请求,执行过程300。 可另选地,可以在其他时候手动地和/或以编程方式执行过程300,如在将存储介质分发到用户之前,当制造或分发存储介质时等等。在过程300中,生成一个或多个本地密钥(动作30幻。可以以各种不同的方式生成一个或多个本地密钥中的每一个。在一个或多个实施例中,一个或多个本地密钥中的每一个各自是使用各种不同的常规随机或伪随机数发生器中的一个生成的AES 256比特密钥。可另选地,可以使用诸如椭圆曲线Diffie-Hellamn(EOTH)之类的密钥协商协议来生成一个或多个本地密钥。一个或多个本地密钥中的每一个的大小(比特数)可以基于使用本地密钥的密码或算法而变化。生成在线密钥(动作304)。类似于动作302中的生成一个或多个本地密钥,可以以各种不同的方式生成在线密钥。可另选地,如上文所讨论的,可以诸如从远程服务106,从另一个组件、模块、或设备获得在线密钥。可以以与动作302中的一个或多个本地密钥同样的方式,或者可另选地,以不同的方式生成在线密钥。将一个或多个本地密钥和在线密钥组合起来(动作306)以生成组合密钥。可以如上文所讨论的以各种不同的方式组合一个或多个本地密钥和在线密钥。由远程服务来保护在线密钥(动作308)。可以由远程服务通过例如如上文所讨论的利用远程服务的公钥加密或由远程服务存储来保护在线密钥。在一个或多个实施例中, 如果远程服务存储在线密钥,那么,加密在线密钥(例如,使用远程服务的公钥),并将其发送到远程服务,或者可另选地通过安全信道(例如,使用Kerberos、安全套接字层(SSL)等等)将其传递到远程服务。作为利用远程服务存储在线密钥的一部分,将发送在线密钥的计算设备和/或发送在线密钥的计算设备的用户的标识符传递到远程服务。可以将标识符与在线密钥一起发送,或者,可另选地,单独地将标识符传递到远程服务。还保护一个或多个本地密钥(动作310)。如上文所讨论的,可以以各种不同的方式保护一个或多个本地密钥中的每一个。至少部分地基于在线密钥,来加密主密钥(动作312)。可以例如使用组合密钥(且因此,基于在线密钥,因为组合密钥基于在线密钥),或使用在线密钥,来加密主密钥。如上文所讨论的,使用各种不同的密码或算法中的一个,来加密主密钥,并且例如使用组合密钥或在线密钥作为密钥,来加密。还至少部分地基于主密钥,来加密组合密钥(动作314)。如上文所讨论的,使用各种不同的密码或算法中的一个,来加密组合密钥,并且例如使用主密钥作为对称密钥,来加密。可以使用与动作312中所使用的相同密码或算法,或者可另选地,使用不同的密码或算法,来加密组合密钥。在动作312和314中所生成的已加密的密钥,以及其他元数据,作为基于在线密钥的密钥保护装置被存储(动作316)。利用远程服务的公钥加密的在线密钥(其可以在动作 308中生成)也可以作为基于在线密钥的密钥保护装置的一部分被存储。此其他信息的示例包括例如密钥保护装置200是基于在线密钥的密钥保护装置的指示,组合在线密钥和一个或多个本地密钥的方式的指示等等。动作316中的密钥保护装置是例如图2的密钥保护装置200。可以作为动作316 的一部分,密钥保护装置可被存储在存储介质本身上,或者,可另选地,可以将密钥保护装置存储在另一设备上(例如,并且在稍后的时间传输到存储介质)。应该注意,图3的过程300假设,使用存储介质加密密钥对存储介质的数据的加密,以及使用主密钥对存储介质加密密钥的加密,正在由另一个组件或模块执行,和/或已经执行。通过过程300来生成的密钥保护装置存储已加密的主密钥,允许密钥保护装置随后用于访问存储介质上的已加密的数据。然而,如果存储介质尚未加密,那么,如上文所讨论的,使用存储介质加密密钥来加密存储介质的数据,并使用主密钥来加密存储介质加密密钥。参考组合密钥来讨论过程300。在其他实施例中,主密钥是使用在线密钥来加密的,不需要生成组合密钥。在这样的实施例中,不必执行动作302,306,以及310,且在动作 314中加密在线密钥(而并非组合密钥)。返回到图1,为了从已加密的数据部分122检索数据,基于从诸如基于在线密钥的密钥保护装置1 之类的密钥保护装置获得的主密钥,解密数据。在一个或多个实施例中, 卷保护模块114和I/O模块116被实现为计算设备102的操作系统的一部分。在这样的实施例中,在操作系统结束引导并正在运行之后,可以访问存储介质104。在其他实施例中,卷保护模块114和I/O模块116被实现为预执行环境(也被称为 “预引导环境”)的一部分,预执行环境是指在操作系统结束引导并正在运行之前在计算设备102上运行的环境。作为此预执行环境的一部分,执行卷保护模块114和I/O模块116, 以允许在线密钥从远程服务106中检索。在这样的情况下,卷保护模块114和/或I/O模块116可以存储在计算设备102的组件上(例如,在只读存储器(ROM)或闪存中),诸如在计算设备102的网络接口卡上。可另选地,可以在预执行环境中从另一计算设备或服务获得卷保护模块114和/或I/O模块116。例如,卷保护模块114和/或I/O模块116可以作为从另一计算设备或服务提供到计算设备102的引导映像的一部分。预执行环境可以以各种不同的方式来实现,并可以基于各种不同的常规技术。例如,可以根据预引导执行环境(PXE)标准版本2.0或其他版本来实现预执行环境。作为另一个示例,可以根据统一可扩展固件接口(UEFI)标准版本2. 3或其他版本来实现预执行环境。作为再一个示例,可以使用各种不同的个人计算机基本输入/输出系统¢10 版本来实现预执行环境。应该注意,通过将卷保护模块114和I/O模块116实现为预执行环境,存储介质 104可以是用于引导计算设备102的引导卷。可以使用基于在线密钥的密钥保护装置IM 来加密和解密已加密的数据部分122,尽管已加密的数据部分122是引导卷的一部分。图4是示出了根据一个或多个实施例的用于使用基于在线密钥的密钥保护装置来解密存储介质上的数据的示例过程400的流程图。过程400可以由诸如图1的模块114 之类的计算设备的卷保护模块来执行,或者可另选地由另一个组件或模块和/或另一设备来执行。过程400可以以软件、固件、硬件或其组合来实现。过程400被示为一组动作,不仅限于所示出的用于执行各种动作的操作的顺序。过程400是用于使用基于在线密钥的密钥保护装置来解密存储介质上的数据的示例过程;此处参考不同的附图包括了对于使用基于在线密钥的密钥保护装置来解密存储介质上的数据的附加的讨论。在一个或多个实施例中,响应于访问已加密的存储介质的请求,执行过程400。可另选地,过程400可以在其他时候执行,诸如当已加密的存储介质耦合到实现过程400的计算设备时,当用户向实现过程400的设备输入他的或她的用户名和密码时等等。在过程400中,获取一个或多个本地密钥和密钥保护装置(动作402)。可以以各种不同的方式获取一个或多个本地密钥中的每一个,而获取每一个本地密钥的特定方式取决于保护本地密钥的特定方式(例如,在图3的动作310中),如上文所讨论的。作为动作 402的一部分,也获取密钥保护装置,通常是从存储介质中获取的,虽然也可以可另选地从其他组件、模块或设备获得。也从诸如图1的远程服务106之类的远程服务获取在线密钥(动作404)。通过实现过程400的计算设备向远程服务认证其本身,或者通过实现过程400的计算设备的用户向远程服务认证自己来获取在线密钥。可以通过安全信道(例如,使用Kerberos、SSL等等)将在线密钥从远程服务传递到计算设备,或者可以以其他方式保护在线密钥(例如,使用实现过程400的计算设备的公钥来加密,基于由计算设备向远程服务所提供的秘密(例如,利用远程服务的公钥加密的秘密)来加密,等等)。如上文所讨论的,可以以各种不同的方式执行这一向远程服务的认证。基于一个或多个本地密钥和在线密钥来生成组合密钥(动作406)。可以以各种不同的方式生成组合密钥,而组合一个或多个本地密钥和在线密钥的特定方式取决于当加密主密钥时组合一个或多个本地密钥和在线密钥的方式。例如,以与在图3的动作306中组合一个或多个本地密钥和在线密钥的相同方式来组合一个或多个本地密钥和在线密钥。至少部分地基于在线密钥,来解密主密钥(动作408)。可以使用各种不同的密码或算法,使用组合密钥,来解密主密钥,而所使用的特定算法或密码是与用于加密主密钥的加密算法或密码(例如,如上文在图3的动作312中所讨论的)相对应的解密算法或密码。至少部分地基于主密钥来解密存储介质加密密钥(动作410)。可以使用各种不同的密码或算法,使用主密钥,来解密存储介质加密密钥,而所使用的特定算法或密码是与用于使用主密钥来加密存储介质加密密钥的加密算法或密码相对应的解密算法或密码。然后,可以至少部分地基于存储介质加密密钥,来解密存储介质上的数据(动作 412)。可以使用各种不同的密码或算法,使用存储介质加密密钥,来解密数据,而所使用的特定算法或密码是与用于使用存储介质加密密钥来加密数据的加密算法或密码相对应的解密算法或密码。参考组合密钥来讨论过程400。在其他实施例中,主密钥是使用在线密钥来加密的,不需要使用组合密钥。在这样的实施例中,不必执行动作406。此处所讨论的基于在线密钥的密钥保护装置支持各种使用情况。例如,可以使用基于在线密钥的密钥保护装置来确保,只有在访问已加密的存储介质的计算设备的用户登录到特定网络的情况下才能使用已加密的存储介质。用户通过向远程服务(例如,图1的远程服务106)认证自己来登录到特定网络。特定网络可以是通过因特网访问的公司的或其他企业网络,在线服务(例如,因特网服务的Microsoft Windows Live 网络(位于美国华盛顿州雷德蒙市的微软公司提供关于因特网服务的Microsoft Windows Live 网络的额外的信息)),等等。当用户登录到特定网络时,远程服务可以将该用户的在线密钥返回到正在被该用户使用的并正在访问已加密的存储介质的计算设备。如此,计算设备能够解密已加密的存储介质中的数据(假设计算设备已经执行对用户的任何其他所希望的认证)。如果该计算设备的用户没有登录到特定网络(例如,他或她当前不能访问特定网络,计算设备已经丢失或被盗,等等),那么,计算设备没有来自远程服务的在线密钥,因此,不能访问已加密的存储介质上的数据。作为另一个示例,远程服务(例如,远程服务106)的管理员可以在每当他或她希望时撤销由远程服务存储的在线密钥。如此,例如,如果公司配发的计算设备的用户离开公司,或者如果用户报告他或她的计算设备丢失或被盗,或者如果检测到恶意用户企图发动攻击(例如,如果接收到大于阈值数量的输入不正确的密码的尝试)等等,管理员可以撤销与该用户相关联的在线密钥。远程服务不会向发出请求的计算设备返回已撤销的在线密钥,如此,无法访问已加密的存储介质上的数据。作为再一个示例,远程服务(例如,远程服务106)或网络的管理员可以使用基于在线密钥的密钥保护装置来实施网络接近度,提供用于解除对计算设备的访问的锁定的替换机制,或增强用于解除对计算设备的访问的锁定的现有机制。在线密钥是使用远程服务的公钥(例如,远程服务106的服务器)来加密的。远程服务可以使用其私钥来解密在线密钥并将其提供到计算设备(可任选地加密或以其他方式保护,以便除计划的计算设备以外的计算设备不能解密在线密钥)。如此,管理员可以确保,需要物理的、预先确定的网络连接才能解除对计算设备的访问的锁定(假设虚拟连接(例如,虚拟LAN连接)不被允许或者可以由远程服务检测),如此,事实上,需要用户在一个特定建筑物(或多个建筑物,或在特定场地等等)内部,才能解除对它们的计算设备的访问的锁定。管理员还可以确保,如果用户的计算设备丢失或被盗,在该特定建筑物(或多个建筑物,或在特定场地等等)外部使用计算设备的尝试将不会成功。在此处的讨论中,引用了基于或使用特定的密钥的加密(例如,对主密钥的加密, 对一个或多个本地密钥的加密,等等)。应该注意,这样的加密可以基于特定的密钥以及一个或多个附加的密钥或与该特定的密钥相结合和/或与一个或多个附加的中介密钥相结合的值。例如,此处所讨论的组合密钥可以具有与它相加的一个附加的值,可以使用此带有与它相加的附加的值的组合密钥来加密主密钥。作为另一个示例,可以使用此处所讨论的组合密钥来加密第一中介密钥,可以使用已加密的第一中介密钥来加密第二中介密钥,可以使用已加密的第二中介密钥来加密主密钥。图5示出了根据一个或多个实施例的可以被配置成实现基于在线密钥的密钥保护装置的示例计算设备500。计算设备500可以是例如图1的计算设备102,或者可以被用来实现图1的远程服务106。计算设备500包括一个或多个处理器或处理单元502,一个或多个计算机可读介质504 (可包括一个或多个存储器和/或存储组件506),一个或多个输入/输出(I/O)设备 508,以及可使各种组件和设备彼此进行通信的总线510。计算机可读介质504和/或一个或多个I/O设备508可以作为计算设备500的一部分被包括,或者可另选地可以耦合到计算设备500。总线510表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及使用各种不同的总线体系结构中的处理器或局部总线。总线510可包括有线和/或无线总线。存储器/存储组件506表示一个或多个计算机存储介质。组件506可包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、 光盘、磁盘等等)。组件506可包括固定介质(例如,RAM、R0M、固定硬盘驱动器等等)以及可移动介质(例如,闪存驱动器、可移动硬盘驱动器、光盘等等)。组件506可以是例如图1 的存储介质104。此处所讨论的技术可以以软件实现,指令由一个或多个处理单元502。可以理解, 不同的指令可以存储在计算设备500的不同的组件中,诸如存储在处理单元502中,存储在处理单元502的各种缓存存储器中,存储在设备500(未示出)的其他缓存存储器中,存储在其他计算机可读介质上等等。另外,可以理解,指令存储在计算设备500中的位置可以随着时间而变化。一个或多个输入/输出设备508可使用户向计算设备500输入命令和信息,以及可使信息被呈现给用户和/或其他组件或设备。输入设备的示例包括键盘、光标控制设备 (例如,鼠标)、麦克风、扫描仪等等。输出设备的示例包括显示设备(例如,监视器或投影仪)、扬声器、打印机、网卡等等。此处可以在软件或程序模块的一般上下文中描述各种技术。一般而言,软件包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。这些模块和技术的实现可以存储在某种形式的计算机可读介质上或通过某种形式的计算机可读介质传输。计算机可读介质可以是可以被计算设备访问的任何可用的介质。作为示例,而不是限制,计算机可读介质可以包括“计算机存储介质”和“通信介质”。“计算机存储介质”包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机访问的任何其它介质。“通信介质”通常用诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据。通信介质还包括任何信息传送介质。术语“已调制数据信号”是指其一个或多个特征以这样的方式设置或改变以便在信号中对信息进行编码的信号。作为示例而非限制,通信介质可包括有线介质,如有线网络或直接线连接,以及诸如声学、射频(RF)、红外线及其他无线介质之类的无线介质。上面各项中的任何组合也包括在计算机可读介质的范围内。—般而言,此处所描述的任何功能或技术都可使用软件、固件、硬件(例如,固定逻辑电路)、手动处理或这些实现的组合来实现。如此处所使用的术语“模块”和“组件”一般代表软件、固件、硬件或其组合。在软件实现的情况下,模块或组件表示当在处理器(例如,一个或多个CPU)上执行时执行指定任务的程序代码。程序代码可以存储在一个或多个计算机可读的存储器设备中,可以参考图5发现关于其进一步的描述。此处所描述的基于在线密钥的密钥保护装置技术的特征是平台无关的,意味着本发明的技术可以在具有各种处理器的各种商业计算平台上实现。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。
权利要求
1.一种用于为存储介质创建密钥保护装置的方法,所述方法是在计算设备中实现的, 并包括获取(304)在线密钥,其中所述在线密钥受远程服务的保护;至少部分地基于所述在线密钥,加密(312)用于加密和解密所述存储介质或一个或多个存储介质加密密钥的主密钥,所述存储介质加密密钥用于加密和解密所述存储介质;以及存储(316)用于所述存储介质的密钥保护装置,所述密钥保护装置包括所述已加密的主密钥。
2.如权利要求1所述的方法,其特征在于,获取所述在线密钥包括从所述远程服务获取所述在线密钥。
3.如权利要求1所述的方法,其特征在于,还包括使用所述远程服务的公钥加密所述在线密钥,并将所述已加密的在线密钥包括在所述密钥保护装置中。
4.如权利要求1所述的方法,其特征在于,获取所述在线密钥包括生成所述在线密钥, 所述方法还包括将所述在线密钥与所述远程服务一起存储,所述在线密钥是与所述计算设备或所述计算设备的用户相关联地存储的。
5.如权利要求1所述的方法,其特征在于,所述存储介质包括可移动的闪存设备。
6.如权利要求1所述的方法,还包括 生成一个或多个本地密钥;保护所述一个或多个本地密钥中的每一个,以便只有在已经认证所述计算设备的用户之后才能检索所述一个或多个本地密钥中的每一个;组合所述一个或多个本地密钥和所述在线密钥以生成组合密钥;以及其中,加密所述主密钥包括使用所述组合密钥来加密所述主密钥。
7.如权利要求6所述的方法,其特征在于,使用所述组合密钥来加密所述主密钥包括使用对称密钥加密密码来加密所述主密钥,所述对称密钥加密密码使用所述组合密钥作为对称密钥。
8.如权利要求6所述的方法,还包括通过至少部分地基于所述主密钥,加密所述组合密钥,来生成已加密的组合密钥;以及将所述已加密的组合密钥包括在所述密钥保护装置中。
9.如权利要求8所述的方法,还包括 获取新主密钥;通过至少部分地基于所述组合密钥,加密所述新主密钥,来生成新的已加密的主密钥;将所述密钥保护装置中的所述已加密的主密钥替换为所述新的已加密的主密钥; 通过至少部分地基于所述新的主密钥,加密所述组合密钥,来生成新的已加密的组合密钥;以及将所述密钥保护装置中的所述已加密的组合密钥替换为所述新的已加密的组合密钥。
10.一种计算设备,包括 处理器(502);以及在其上存储了用于访问用户保护的存储介质的指令的一个或多个计算机可读介质(504),当由所述处理器执行所述指令时,所述指令使所述处理器从远程服务获取(404)与所述计算设备和所述计算设备的用户中的一个或两者相关联的在线密钥;获取(402)包括已加密的主密钥的密钥保护装置,其中所述主密钥用于解密所述用户保护的存储介质或解密用于解密所述用户保护的存储介质的一个或多个存储介质加密密钥;以及使用(408)所述在线密钥来从所述密钥保护装置中的所述已加密的主密钥解密所述主密钥。
11.如权利要求10所述的计算设备,其特征在于,获取所述密钥保护装置是从所述用户保护的存储介质获取所述密钥保护装置。
12.如权利要求10所述的计算设备,其特征在于,使用所述远程服务的公钥加密所述在线密钥,并且,其中获取所述在线密钥是将使用所述远程服务的所述公钥加密的所述在线密钥发送到所述远程服务,并在被所述远程服务使用所述远程服务的私钥解密之后从所述远程服务获取所述在线密钥。
13.如权利要求10所述的计算设备,其特征在于,在所述计算设备的预执行环境中执行所述指令,其中所述用户保护的存储介质包括用于引导所述计算设备的引导卷。
14.如权利要求10所述的计算设备,其特征在于,所述指令还导致所述处理器 基于所述计算设备的所述用户被所述计算设备认证,获取一个或多个本地密钥; 组合所述在线密钥和所述一个或多个本地密钥;以及其中,使用所述在线密钥来解密所述主密钥是使用所述组合密钥来从所述密钥保护装置中的所述已加密的主密钥解密所述主密钥。
15.如权利要求10所述的计算设备,其特征在于,获取所述在线密钥是响应于所述计算设备的所述用户被所述远程服务认证,从所述远程服务接收令牌;以及将散列函数应用到所述令牌,以生成散列值,所述散列值是所述在线密钥。
全文摘要
本发明提供了一种基于在线密钥的密钥保护装置。生成或以其他方式获取由远程服务存储的在线密钥,至少部分地基于在线密钥,来加密用于加密和解密物理或虚拟存储介质,或者加密和解密用于加密物理或虚拟存储介质的一个或多个存储介质加密密钥的存储介质(因为它适用于数据在物理或虚拟存储介质上的存储)主密钥。存储用于存储介质的密钥保护装置,该密钥保护装置包括已加密的主密钥。随后可以访问密钥保护装置,并从远程服务获取在线密钥。基于在线密钥来解密主密钥,允许用于解密存储介质的一个或多个存储介质加密密钥被解密。
文档编号H04L9/08GK102271037SQ201110161500
公开日2011年12月7日 申请日期2011年6月2日 优先权日2010年6月3日
发明者B·G·M·尼斯特伦, C·G·杰弗瑞斯, C·M·利亚, I·巴斯墨, M·A·哈尔克罗, N·T·刘易斯, N·T·弗格森, N·杜萨特, O·T·乌雷彻 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1