用于访问加密数据的单次使用认证方法

文档序号:6360982阅读:221来源:国知局
专利名称:用于访问加密数据的单次使用认证方法
用于访问加密数据的单次使用认证方法
背景
存在通过执行所谓的“全卷加密”来保护存储在计算机文件系统的卷上的数据的保密性的各种系统。这样的系统对存储在卷上的全部或基本上全部数据进行加密,当经过授权的实体请求这样的数据时,透明地对其进行解密。例如,某些 MICROSOFT WINDOWS 操作系统通过激活被称为BITL0CKER 驱动器加密 (“BITL0CKER”)的特征来提供全卷加密。
诸如BITL0CKER 之类的全卷加密系统可以提供用于管理对受保护的卷的访问的各种认证方法。例如,在受保护的卷是在计算机的引导过程中访问的操作系统(OS)卷的情况下,这样的方法可以依赖于对由计算机中所包括的可信平台模块(TPM)执行的某些系统启动组件的完整性检查。其他认证方法可能需要提供诸如启动密钥或个人标识号(PIN)之类的访问凭证。启动密钥可以,例如,通过将某种形式的存储了启动密钥的便携式存储介质插入到计算机的端口中来提供。PIN可以,例如,通过由用户进行人工输入来提供。其他认证方法可以将基于TPM的完整性检查与提供一个或多个访问凭证组合起来。
在某些情况下,希望全卷加密系统提供只能被使用一次的认证方法。这样的情况包括,例如,恢复情况和系统管理情况。对于恢复情况,可能存在由于某种正当的理由必须回避主要认证方法访问受保护的卷的情况。这样的情况可以包括,例如,硬件故障或丢失与主要认证方法相关联的访问凭证。在某些常规的全卷加密系统中,提供恢复访问凭证,以便对受保护的卷的访问可以通过对应的恢复认证方法来实现。此恢复认证方法不打算永久用来回避主要认证方法,而是旨在只用于特定访问实例。然而,在这样的常规全卷加密系统中,一旦提供了恢复访问凭证,该凭证就可以连续地被用来解锁受保护的卷,只要在受保护的卷上存在与恢复访问凭证相关联的某些对应的密钥材料。这会带来不希望有的安全风险。
相对于系统管理,有时希望允许计算机在没有人工交互的情况下重新引导。例如, 信息技术(IT)管理员可能希望通过企业网络来更新应用或在远程客户端计算机上安装补丁程序,其中,这样的更新或安装需要重新引导客户端计算机。如果客户端计算机是利用某种形式的需要用户交互的认证来保护的,当强制重新引导时,客户端计算机在预引导环境中等待这样的用户交互(例如,客户端计算机可能提示用户输入PIN,然后等待PIN输入)。 如果单次使用认证方法可用来回避对此特定客户端计算机的常规形式认证而无需替换它, 则IT管理员将能够不受阻碍地部署所需的升级或补丁。
概述
提供本“概述”是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本“概述”并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。此外,值得注意的是,本发明不仅限于“详细描述”和/或本文档的其他部分中所描述的特定实施例。这样的实施例只是为了说明。基于此处所包含的原理,另外的实施例对相关领域的技术人员是显而易见的。
如在上文的“背景”部分所指出的,在某些情况下,希望提供可以被用来解锁对使用全卷加密来保护的计算机的卷进行紧急访问的认证方法。例如,这样的认证方法可以被用来在与受保护的卷相关联的访问凭证丢失时获取对受保护的卷的访问,从发生故障的受保护的卷中提取数据,或执行诸如重新引导计算机以安装安全性更新之类的时间紧急管理功能。由于这样的认证方法可以被允许回避某些系统保护措施,因此,理想地,它应该能够只使用一次。为了实现此,此处所描述的各实施例提供用于访问存储在计算机的受保护的卷上的加密数据的单次使用认证方法,其中,对加密数据的访问涉及对存储在计算机上的密钥保护器进行解密,该密钥保护器保存了对受保护的卷进行解密所需的卷专用加密密钥。如此处所描述的,这样的单次使用认证方法一般依赖于提供只能使用一次的和/或对于每一次使用都需要新访问凭证的密钥保护器。在某些实施例中,还将用于将密钥保护器和/或访问凭证的颁发与可以唯一地标识用户的特定信息片段绑定的质询_响应过程用作认证方法的一部分。
下面将参考各个附图
,详细描述本发明的进一步特点和优点,以及本发明的各实施例的结构和操作。值得注意的是,本发明不仅限于此处所描述的特定实施例。这样的实施例只是为了说明。基于此处所包含的原理,另外的实施例对相关领域的技术人员是显而易见的。
附图简述
结合到本说明书并构成本说明书的一部分的附图示出了本发明的各实施例,且与具体实施方式
一起进一步用于说明本发明的原理,并使相关领域的技术人员能够实施和使用本发明。
图I是其中可以实现各实施例的示例操作环境的框图2是根据一个实施例的被配置成提供全卷加密特征的示例客户端计算机的框图。
图3描绘了根据各实施例的用于控制对存储在计算机的受保护的卷上的加密数据的访问的一般单次使用认证方法的流程图。
图4描绘了基于一次性使用密钥保护器的、用于控制对存储在计算机的受保护的卷上的加密数据的访问的单次使用认证方法的流程图。
图5描绘了基于使用可信平台模块(TPM)和人工交互的一次性解锁的、用于控制对存储在计算机的受保护的卷上的加密数据的访问的单次使用认证方法的流程图。
图6A和6B共同地描绘了基于使用TPM和服务器交互的一次性解锁的、用于控制对存储在计算机的受保护的卷上的加密数据的访问的单次使用认证方法的流程图。
图7A和7B共同地描绘了基于使用TPM委派的一次性解锁的、用于控制对存储在计算机的受保护的卷上的加密数据的访问的单次使用认证方法的流程图。
图8是可以被用来实现此处所描述的各实施例的示例计算机系统的框图。
当结合其中相同的附图标记标识对应的元素的附图时,本发明的特征和优点将从以下阐述的详细描述中变得更加显而易见。在附图中,相同的参考标号一般指相同的、功能上相似的和/或结构上相似的元素。其中元素第一次出现的附图由对应的参考标号中最左侧的数字指示。
详细描述
I.引言
下面的详细描述参考示出了本发明的示例性实施例的各个附图。然而,本发明的范围不仅限于这些实施例,而是由所附权利要求书进行限定。因此,诸如所示实施例的修改版本之类的在附图所示之外的实施例仍然由本发明所包含。
说明书中对“一个实施例”、“实施例”、“示例实施例”等等的引用表示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可以不一定包括该特定特征、结构, 或特征。此外,这样的短语不一定是指同一个实施例。此外,当结合实施例描述具体特征、 结构或特性时,应当理解在相关领域的技术人员的知识范围内能够结合其他实施例来实现具体特征、结构或特性,无论是否被显式地描述。
A.示例操作环境
此处描述了用于访问存储在计算机的受保护的卷上的加密数据的单次使用认证方法。为促进对这样的方法的更好的理解,现在将参考图I的框图来描述其中可以实现这样的方法的示例性系统100。然而,相关领域的技术人员将理解,此处所描述的方法还可以通过系统100以外的各种系统来执行。
如图I所示,系统100包括通信地连接多个客户端计算机ICM1-ICMn、服务器106以及管理员计算机108的网络102。系统100可以表示,例如,企业或公司计算环境。然而,此示例不是限制性的,系统100还可以表示其他计算环境。现在将描述系统100的元件中的每一个。
网络102表示通过各种通信信道连接的计算机和设备(例如,路由器、交换机、桥接器、集线器,以及中继器)的集合。网络102促进系统100的用户之间的通信,并使这样的用户与其他用户共享信息和资源。网络102可以使用任何类型的有线技术、无线技术,或其组合来实现。网络102可以表示,例如,局域网、广域网、全球区域网络、企业私用网络、虚拟专用网络等等。
每一客户端计算机ICM1-ICMn都被配置成使其用户能执行各种计算操作。为促进这样的计算操作的执行,每一客户端计算机KM1-ICMn都包括可以被用于本地数据存储的文件系统,文件系统包括一个或多个被称为“卷”的在逻辑上定义的存储区域。每一客户端计算机KM1-ICMn都还包括通过执行所谓的“全卷加密”来保护存储在至少一个文件系统卷上的程序指令或数据的保密性的组件。下面将参考图2更详细地描述示例性客户端计算机 200。
服务器106是被配置成为(或代表)客户端计算机104「104n执行一个或多个服务并且还可以被配置成相对于系统100执行系统级任务的计算机。服务器106可以包括系统100中的连接到网络102的任何数量的服务器中的一个。在一个实施例中,服务器106被配置成向系统100内的实体提供网络服务,诸如由 MICROSOFT ACTIVE DIRECTORY 所提供的那些网络服务,但此示例并不旨在进行限制。如此还将讨论的,在各实施例中,服务器106被配置成执行为执行用于管理对存储在客户端计算机104「104n中的任何一个的受保护的卷上的数据的访问的某些一次性认证方法所必须的操作。取决于特定实现的要求,服务器106还可以被配置成执行各种其他功能。
为执行其指定的功能,服务器106可通信地连接到存储器110,并被配置成存储和访问其上的数据。存储器110可以包括可以被服务器106访问的任何类型的存储设备或系统。存储器Iio可以通过网络102或通过某种其他接口连接到服务器106。在其中服务器 106被配置成提供MICROSOFT' ACTIVE DIRECTORY 网络服务的实施例中,存储器 HO可以存储ACTIVl·: DIRECTORY 数据库。
管理员计算机108被配置成使其授权用户(诸如授权信息技术(IT)管理员)能相对于系统100执行配置和管理任务。这些任务可以包括,例如,创建并维护用户特权和许可,监视客户端计算机ICM1-ICMn,服务器106,以及网络操作和资源,升级和/或修补安装在客户端计算机KM1-ICMn或服务器106上的软件,生成报告,设置对于安全性和审核的策略等等。如此处所讨论的,在各实施例中,授权用户可以使用管理员计算机108来设置和/或执行用于控制对存储在客户端计算机KM1-ICMn中的任何一个的受保护的卷上的数据的访问的某些一次性认证方法。
图2是根据一个实施例的被配置成提供全卷加密特征的示例性客户端计算机200 的框图。客户端计算机200可以表示图I所示出的客户端计算机ICM1-ICMn中的任何一个。 根据该实现,客户端计算机200可以包括台式计算机、膝上型计算机、平板计算机、个人数字助理(PDA),或其他基于处理器的系统或设备。如图2所示,客户端计算机200包括硬件层202和软件层204。现在将描述这些层中的每一层。
硬件层202包括多个互连的硬件组件,包括,但不仅限于,处理单元212、系统存储器214、一个或多个大容量存储设备216以及可信平台模块(TPM) 218。处理单元212包括一个或多个微处理器或微处理器核,其被设计用于执行存储在系统存储器214中、用于使客户端计算机200执行其指定的功能的程序指令。系统存储器214包括一个或多个易失性存储器设备,这些设备临时存储这样的程序指令以及由处理单元212在其执行过程中所消耗或生成的数据。大容量存储设备216包括用于为客户端计算机200永久地存储程序指令和/或数据的非易失性存储器设备。大容量存储设备216可以包括构成客户端计算机200 的一部分的设备,如一个或多个集成硬盘驱动器,和/或可以由其用户连接到客户端计算机200的设备,如一个或多个便携式存储设备或驱动器。TPM 218包括安全的加密处理设备,该设备使客户端计算机200能实现由可信计算组织发布的可信平台模块规范的至少一个版本的特征。可以被包括在硬件层202内,但图2中未示出的其他硬件设备包括但不仅限于视频适配器和相关联的显示器、一个或多个输入/输出(I/O)设备接口、网络接口等坐寸ο
软件层204包括由诸如处理单元212之类的硬件层202内的元件执行的、用于执行特定的功能的多个软件元件。如图2所示,软件层204包括系统启动组件222和操作系统 224。
系统启动组件222包括在将操作系统224加载到系统存储器214中并由处理单元 212执行其之前执行的组件。系统启动组件222包括基本输入/输出系统(BI0S)232和引导管理器234。BIOS 232是当客户端计算机200被通电时由客户端计算机200运行的第一代码。除了其他功能之外,BI0S232还操作以标识、测试并初始化硬件层202内所包括的某些设备。一旦客户端计算机200被设置到已知状态,BIOS 232就触发引导管理器234的、 将操作系统224加载到系统存储器214中的执行,以供处理单元212执行。在某些实现中, 引导管理器234使用户能选择加载多个操作系统中的哪一个以供执行。
操作系统224充当运行于客户端计算机200上的软件应用程序(在图2中未示出)的主机。例如,操作系统224管理并协调在客户端计算机200上运行的各个应用对其资源的共享。操作系统224还代表这样的软件应用程序与硬件层202的各种元件连接,从而使得这些应用程序不必管理硬件操作的细节并使得这些应用更易于编写。操作系统224可以向应用和用户提供若干个服务。应用可以通过应用编程接口(API)或系统调用来访问这些服务。通过调用这些接口,应用可以请求来自操作系统224的服务,向其传递参数,并从其中接收结果。在某些实现中,用户可以通过诸如命令行界面(CLI)或图形用户界面(GUI)之类的软件用户界面(Sn)与操作系统224进行交互。
在一个实施例中,操作系统224包括由美国华盛顿州雷德蒙市的微软公司发布的 WINDOWS VISTA 或\V1ND0WS(F;7操作系统。然而,此示例不是限制性的,操作系统224可以包括任何常规的或随后开发的、被设计用于执行如前所述的功能中的至少一个或多个的操作系统。
如图2所示,操作系统224包括文件系统244。文件系统244提供一组操作,通过这些操作,可以将计算机程序文件和数据文件存储到大容量存储设备216中,从大容量存储设备216中检索计算机程序文件和数据文件,组织计算机程序文件和数据文件,以及以别的方式操纵计算机程序文件和数据文件。这些操作可以被操作系统224和/或在其上执行的应用使用。由文件系统244存储的文件被存储在称为“卷”的在逻辑上定义的存储区域中。逻辑卷管理器248负责将这样的逻辑卷映射到位于大容量存储设备216上的实际物理存储区域。如此,逻辑卷管理器248必须处理由文件系统244执行的文件操作,以确保大容量存储设备216内的适当的区域被访问。
如在图2中进一步示出的,操作系统224还包括操作系统(OS)加密模块242。OS 加密模块242包括当由处理单元212执行时使用户能选择性地将全卷加密应用到文件系统 244的卷的逻辑。当向卷应用全卷加密时,存储在该卷上的全部数据(带有某些可能的例外) 都被加密。随后,当经过授权的实体请求这样的加密数据时,其被透明地解密。由安装在文件系统244和逻辑卷管理器248之间的加密过滤器驱动器246来处理对数据的加密与解密。加密过滤器驱动器246用于加密从文件系统244传递到逻辑卷管理器248的数据(该操作为对受保护的卷的存储操作的一部分),并用于解密从逻辑卷管理器248传递到文件系统244的数据(该操作为对受保护的卷的访问操作的一部分)。如此处所使用的,术语“受保护的卷”指已向其应用了这样的全卷加密的卷。受保护的卷可以包括存储执行操作系统 224所需的文件的操作系统(OS)卷或存储应用数据或在运行时(S卩,当操作系统224启动并运行时)访问的其他数据的物理的或虚拟的数据卷。
在一个实施例中,由客户端计算机200所提供的全卷加密特征对应于 MICROSOFT WINDOWS 操作系统的一个或多个版本内所包括的BITL0CKER 驱动器加密(“BITL0CKER”)特征,但此示例并不旨在进行限制。
根据一个实施例,使用与受保护的卷相关联的全卷加密密钥(FVEK)来加密该卷的扇区。近而利用简称为卷主密钥(VMK)的密钥来加密FVEK。利用VMK加密的FVEK,作为被称为卷元数据的一部分,被存储在受保护的卷本身上。虽然FVEK被本地存储,但是,它决不会在未经加密的情况下被写入盘中。VMK也被加密,或“受保护”,但是通过一个或多个可能的“密钥保护器”来加密或保护。也就是说,VMK可以以对应于不同的认证方法的各种不同的方式来加密和存储。VMK或密钥保护器的加密版本也作为卷元数据的一部分,被存储在受保护的卷本身中。
客户端计算机200可以被配置成执行用于在允许一个实体通过解密来获取对受保护的卷中的加密数据的访问之前认证该实体的各种不同的过程中的任何一个。如果该实体通过了认证过程,则对加密数据的访问被准许。如果该实体没有通过认证过程,则对加密数据的访问被拒绝。如上文所指出的,在一个实施例中,访问加密数据需要首先获取对通过密钥保护器来保护(即,加密)的VMK的访问,然后,使用未加密的VMK来解密FVEK,最后使用FVEK来解密受保护的卷的加密扇区。
由于受保护的卷可以在系统启动过程中以及在运行时被访问,软件层204包括可以执行这样的认证过程的两个不同的组件在系统启动过程中,认证由作为引导管理器 234的一部分的OS预加密模块262来执行;在运行时,该认证由加密过滤器驱动器246内的逻辑来执行。
例如,在受保护的卷是在计算机的引导过程期间被访问的OS卷的情况下,OS预加密模块262可以被配置成在授权对OS卷的访问之前执行某些系统启动组件的完整性检查。 此认证机制是通过以下方式来初始化的使用TPM 218来将OS卷的VMK “密封”到由TPM 218度量的某些系统启动组件的状态。然后,在系统启动过程中,相同组件被TPM 218度量来判断它们是否处于与当执行密封操作时的状态相同的状态。如果状态一致, 那么VMK被 “解封”(即,以其未加密的形式提供),并可以实现对受保护的OS卷的访问。然而,如果状态不一致,那么VMK保持被密封,且对受保护的OS卷的访问被拒绝。这使客户端计算机200 能在客户端计算机200的某些启动组件被篡改的情况下拒绝对受保护的OS卷的访问。可以使用TPM来执行密封和解封操作的方式对相关领域的技术人员而言将是公知的。
由OS预加密模块262所提供的其他认证机制可能需要提供诸如启动密钥或个人标识号(PIN)之类的访问凭证,以便解密VMK。启动密钥可以,例如,通过将某种形式的存储启动密钥的便携式存储设备(例如,USB拇指驱动器)插入客户端计算机200的端口中来提供。PIN可以,例如,通过由用户使用客户端计算机200的一个或多个输入设备进行人工输入来提供。其他认证机制可能需要通过基于TPM的完整性检查,并提供一个或多个访问凭证,才能解密VMK。
加密过滤器驱动器246可以执行与上文参考OS预加密模块262所描述的那些认证过程类似的认证过程来在运行时期间控制对文件系统244的加密数据卷的访问。
B.单次使用认证方法的优点
在某些情况下,希望提供可以被用来解锁客户端计算机200的受保护的卷以供紧急访问的认证方法。例如,凭证这样的认证方法可以用来在与受保护的卷相关联的访问凭证(例如,启动密钥或PIN)丢失时获取对受保护的卷的访问,从发生故障的受保护的卷中提取数据,或执行诸如重新引导客户端计算机200以安装安全性更新之类的时间紧急管理功能。可以允许这样的认证方法回避某些诸如基于TPM的完整性检查之类的系统保护措施。 因此,对于每一次使用,无法在没有对IT管理员的显式许可或类似授权的情况下使用该认证方法是有益的。为实现此,此处所描述的各实施例提供用于管理对受保护的卷的访问的单次使用认证方法。如下文所描述的,这样的单次使用认证方法一般依赖于提供只能使用一次的和/或对于每一次使用都需要新访问凭证的密钥保护器。在某些实施例中,还将用于将密钥保护器和/或访问凭证的颁发与可以唯一地标识用户的特定信息片段绑定的质询_响应过程用作该认证方法的一部分。
从安全的角度来看,单次使用认证方法应该防止由于被授权的用户的不小心而引起的误用以及防止在观察客户端计算机200 —段时间之后捕捉客户端计算机200 (以及潜在地,其他信息)的未经授权的用户的误用。攻击者破坏被解锁的系统的安全的攻击不有趣,因为在那些情况下攻击者已经可以访问受保护的卷的内容,而无需解锁该系统。
具体而言,防止下列攻击是有益的
(I)如果认证方法需要用户输入口令,则发现这样的口令的攻击者(例如,通过发现用户在其上写下了该口令的一张纸)可能试图重新使用该口令;
(2)如果认证方法需要客户端计算机通过网络与服务器进行交互,则在过去观察到这样的交互的攻击者可简单地通过重播该服务器的以前的响应来试图使客户端计算机解锁受保护的卷;
(3)如果认证方法需要客户端计算机通过网络与服务器进行交互,则在过去观察到这样的交互的攻击者可简单地通过重播该客户端计算机的过去的响应来试图劝说服务器解锁受保护的卷;
(4)如果认证方法需要客户端计算机通过网络与服务器进行交互,则攻击者可能修改客户端计算机上运行的代码或从受其控制的恶意系统发出请求;
(5)已捕捉到在过去为了紧急访问而被解锁的客户端计算机的攻击者可通过将客户端计算机的盘内容回滚到先前状态来试图重复该解锁操作;以及
(6)如果在客户端上创建紧急密钥保护器需要与服务器进行通信,则攻击者可通过中断此通信来试图安装拒绝服务攻击。请注意,这样的中断还可以在不存在恶意攻击者的情况下发生,例如,由于不合时的网络故障。
下面的部分描述了防止这些攻击中的某些或全部以及其组合的方法。
II.示例单次使用认证方法
现在将描述可以被用来提供对存储在计算机的受保护的卷上的加密数据的受控制的访问的示例认证方法,其中,该认证方法只能使用一次。如上文所指出的,在诸如恢复情况和系统管理情况之类的希望允许与受保护的卷相关联的主要认证机制被回避的某些情况下可以有利地使用这样的单次使用认证方法,但是,只能使用一次。
只是为了说明,本节中呈现的各种方法步骤将被描述为由上文参考图I所描述的示例系统100内的实体来执行的操作,和/或由上文参考图2所描述的示例客户端计算机 200的硬件或软件组件来执行的操作。然而,基于此处所提供的原理,相关领域的技术人员将容易地理解这样的方法步骤可以由除图I和2所示出的那些实体或组件以外的实体或组件来执行。
下面所描述的示例单次使用认证方法都遵循基本上相同的高级别的过程流。为促进对这些方法的更好的理解,现在将参考图3的流程图300来描述此高级别的过程流。可以理解,此处随后描述的示例单次使用认证方法还可以执行除流程图300中所示出的那些步骤以外的额外步骤,或者也可以以与流程图300中所描述的方式稍微不同的方式来执行各步骤。因此,相对于随后所描述的方法,流程图300不应该被视为限制性的。
如图3所示,流程图300的方法从步骤302开始,在该步骤中,通过对解密第一计算机的受保护的卷(诸如,客户端计算机200的受保护的卷)所需的卷专用加密密钥进行加密来生成密钥保护器。在一个实施例中,卷专用加密密钥包括其本身可以被用来解密全卷加密密钥(FVEK)的卷主密钥(VMK)。FVEK可以进而被用来解密受保护的卷的加密扇区。
在步骤304中,密钥保护器被存储在第一计算机的本地存储器中,如在客户端计算机200的本地存储器中,以便随后当第一计算机需要解密受保护的卷时它可以被第一计算机访问。在一个实施例中,密钥保护器作为被称为“卷元数据”的一部分被存储在受保护的卷的一部分中。
在判断步骤306中,第一计算机确定是否检测到访问受保护的卷的尝试。如果没有检测到访问受保护的卷的尝试,则重复判断步骤306。如果检测到访问受保护的卷的尝试,则控制流动到步骤308。
在步骤308中,第一计算机获取解密存储在本地存储器中的密钥保护器所需的一个或多个访问凭证。如下文所描述的,取决于方法,在步骤308期间获取的访问凭证可以包括解密密钥保护器所需的加密密钥,使用TPM来解封密钥保护器所需的度量,或利用与TPM 相关联的不可迁移的加密密钥所需的认证代码,但是这些示例并不旨在进行限制。
在步骤310中,第一计算机使用在步骤308期间获取的访问凭证来解密密钥保护器,从而获取卷专用加密密钥。如上文所指出的,在某些实施例中,解密密钥保护器提供了对VMK的访问,然后,使用VMK来对解密受保护的卷的扇区所需的FVEK进行解密。
在步骤312中,通过删除密钥保护器和/或删除或改变解密密钥保护器所需的访问凭证来确保认证方法的单次使用。下面将参考各示例方法中的每一种来描述可以执行此关键步骤的各种方式。
根据下面所描述的示例方法中的至少一种,前述的方法还包括自动地提供新密钥保护器和/或访问凭证的额外步骤,从而设置可以用来获取对加密的卷的访问的另一种单次使用认证方法。这样的步骤在单次使用认证方法正在被用于执行管理任务的情况下可能不是必须的,在这样的情况下,诸如IT管理员之类的任务的发起人可执行该提供功能。然而,在单次使用认证方法正在被用于执行紧急任务的情况下,这样的步骤可能是重要的,因为可能不存在这样的提供可发生的其他时间。
在第一计算机是客户端计算机200的实施例中,由第一计算机执行的、涉及检测对受保护的卷的访问以及解密与受保护的卷相关联的密钥保护器的功能可以由OS预加密模块262或者加密过滤器驱动器246来执行。例如,OS预加密模块262可以在系统启动期间尝试对受保护的OS卷的访问时执行这样的功能,而加密过滤器驱动器246可以在运行时尝试对被保护的数据卷的访问时执行这样的功能。然而,这些都只是示例而已,客户端计算机200内的其他组件可以被用来执行这些功能。
如将从下面所提供的示例方法的描述中清楚地看出的,取决于示例方法和其特定实现,执行步骤302、308以及312所需的操作可以由第一计算机(例如,由客户端计算机 200)、由第二计算机(例如,由服务器106)或由第一和第二计算机的组合来执行。执行这些步骤所需的操作还可以涉及由管理员计算机(例如,由管理员计算机108)自动地或者响应于其授权用户(诸如,IT管理员)所提供的输入而执行的步骤。另外,执行步骤302和308 所需的操作可以涉及人工交互,诸如与执行质询_响应机制相关联的人工交互。
在下面的涉及在计算机之间传输敏感数据(诸如,但不仅限于,随机现时值和授权数据)的示例方法的某些实现中,这样的通信可以通过安全信道来执行,以帮助避免“中间人”攻击等等。
A.基于一次性使用密钥保护器的单次使用认证方法
图4描绘了用于控制对存储在第一计算机的受保护的卷上的加密的数据的访问的第一示例单次使用认证方法的流程图400。如通过下面所提供的描述变得显而易见的, 流程图400的方法基于一次性使用密钥保护器的概念。流程图400的方法抵抗上文在部分 I. B中所描述的攻击类型(I)、(3)和(6)。该方法不需要第一计算机包括TPM。
如图4所示,流程图400的方法从步骤402开始,在该步骤中,生成随机不对称公钥和私钥对。不对称公钥和私钥对可以包括,例如,RSA公钥和私钥对,但是可以使用其他不对称公钥和私钥对。在流程图400的方法通过系统100来实现的实施例中,随机不对称公钥和私钥对可以由管理员计算机108自动地或者基于其授权用户(诸如,IT管理员)的动作来生成。可另选地,不对称公钥和私钥对可以由服务器计算机106自动地或者响应于从管理员计算机108或客户端计算机200接收到的通信来生成。
在步骤404中,密钥保护器通过利用公钥来对解密受保护的卷所需的卷专用加密密钥进行加密来生成。此步骤可以由第一计算机执行,第一计算机可以包括,例如, 客户端计算机200。在流程图400的方法通过系统100来实现并且系统100包括利用 ACTIVE DIRECTORY 的网络的实施例中,可以通过ACTIVE DIRECTORY 组策略将公钥分发给系统100中的一个或多个客户端计算机。然而,这只是一个示例,可以使用很多其他分发机制。进一步参考示例系统100,公钥可以由管理员计算机108、服务器106,或网络102上某一其他实体来分发。公钥可以与一次性使用的密钥保护器标识符和某些密钥保护器属性一起分发。
取决于实现方式,解密在步骤404期间所生成的密钥保护器所需的私钥可以被存储在若干个不同的位置中的一个位置。例如,私钥可以以未加密的状态存储在第一计算机的本地存储器中(例如,作为存储在受保护的卷上的卷元数据的一部分)。可另选地, 私钥可以被安全地存储在企业的公司网络中,如存储在可以被ACTIVE DIRECTORY 服务器访问的ACTIVE DIRECTORY 数据库中,如此需要公司网络访问。更进一步, 私钥可以被安全地存储在需要质询-响应交互才能被访问的受信任的服务器上。在流程图400的方法通过系统100来实现的实施例中,服务器106可以包括用于存储私钥的 ACTIVE DIRF.CTORY 服务器或受信任的服务器。在一个实施例中,基于与公钥一起分发的密钥保护器属性来确定其中存储私钥的位置。
在步骤406中,密钥保护器被存储在第一计算机的本地存储器中。例如,此步骤可以包括将密钥保护器存储为受保护的卷的卷元数据的一部分。在一个实施例中,密钥保护器与指示密钥保护器是一次性使用的密钥保护器的标记或其他标识符以及预先引用的密钥保护器属性一起存储。
在判断步骤408中,第一计算机确定是否检测到访问受保护的卷的尝试。如果没有检测到访问受保护的卷的尝试,则重复判断步骤408。如果检测到了访问受保护的卷的尝试,则控制流动到步骤410。
在步骤410中,响应于检测到访问受保护的密钥的尝试,第一计算机获取之前存储的私钥。在一个实施例中,此步骤包括确定私钥被存储在哪里,然后访问该位置处的私钥。对私钥被存储在哪里的判定是基于在步骤406期间与密钥保护器一起存储的某些密钥保护器属性来作出的。取决于私钥被存储的位置,此步骤可能涉及从第一计算机的本地存储器中(例如,在受保护的卷中的卷元数据中)获取私钥的解密版本,与AX IVE DIRECTORY 服务器或企业网络上的能够提供私钥的其他受信任的服务器建立安全连接,或向第一计算机的用户提示质询,然后在从受信任的服务器提供私钥之前等待适当的响应。在涉及联络服务器的情况下,存储在第一计算机的本地存储器中的属性信息可以唯一地标识要被联络的服务器,第一计算机可以向服务器提供卷标识符或可以被用来标识适当的私钥的其他唯一标识符。在使用质询_响应交互的情况下,质询可以请求预先配置的信息,该信息可以包括,例如,但不仅限于,域用户名和口令、雇员ID等等。
在步骤412中,在第一计算机获取私钥之后,第一计算机通过使用私钥来解密密钥保护器来获取卷专用加密密钥。然后,可以使用此卷专用加密密钥来解密受保护的卷上的加密数据。在一个实施例中,卷专用加密密钥包括第一卷专用加密密钥(例如,VMK),该第一卷专用加密密钥可以被用来解密第二卷专用加密密钥(例如,FVEK),然后,可以使用该第二卷专用加密密钥来解密受保护的卷的单个扇区。
在步骤414中,第一计算机在密钥保护器的单次使用之后从第一计算机的本地存储器中删除该密钥保护器。这确保流程图400的认证方法仅是单次使用的。在一个实施例中,第一计算机被编程为基于将一次性使用密钥保护器指示符与密钥保护器关联来执行此步骤。例如,在一个实施例中,第一计算机在内部枚举受保护的卷的卷元数据中存在的全部密钥保护器。当发现被指定为一次性使用密钥保护器的密钥保护器时,第一计算机立即并自动地(没有提示或交互)删除它。在某些实现中,此操作可以被处理为,以便如果发生电源故障,密钥保护器的删除可以在下一电源循环之后继续。枚举持续,直到确保在卷元数据中不存在其他这样的一次性使用密钥保护器或直到没有未完成的删除操作仍需要完成。
在第一计算机是客户端计算机200的实施例中,上文所描述的涉及检测对受保护的卷的访问,获取私钥,解密与受保护的卷相关联的密钥保护器,以及删除密钥保护器的功能可以由OS预加密模块262或者加密过滤器驱动器246来执行。例如,OS预加密模块262 可以在系统启动期间尝试对受保护的OS卷的访问时执行这样的功能,而加密过滤器驱动器246可以在运行时期间尝试对被保护数据卷的访问时执行这样的功能。然而,这些只是示例而已,客户端计算机200内的其他组件可以被用来执行这些功能。
B.基于使用TPM以及人工交互的一次性解锁的单次使用认证方法
图5描绘了用于控制对存储在第一计算机的受保护的卷上的加密数据的访问的第二示例单次使用认证方法的流程图500。如通过下面所提供的描述变得显而易见的,流程图500的方法基于使用TPM以及人工交互的一次性解锁的概念。流程图500的方法抵抗上文在部分I. B中所描述的全部单个攻击类型以及这些攻击的许多组合。然而,它可以被如该部分所描述的攻击类型(2)和(4)的组合击败。
流程图500的方法需要TPM存在于第一计算机上。该方法利用这样的事实TPM的扩展和密封操作分别对应于散列和公钥加密,因此,这些操作可以由另一实体来执行,无需 TPM的协助,而TPM的对应于利用私钥来进行解密的解封操作只能由TPM本身来执行。可以使用TPM来执行扩展、密封和解封操作的方式是相关领域的技术人员所知道的。
如图5所示,流程图500的方法从步骤502开始,在该步骤中,密钥保护器通过执行TPM密封操作来生成,TPM密封操作利用TPM的公钥来对解密受保护的卷所需的卷专用加密密钥进行加密,并将加密的卷专用加密密钥与通过对可以称为S的随机字符串进行散列而生成的值绑定。取决于实现方式,执行步骤502所需的操作可以由包括TPM的第一计算机来执行,或由包括TPM的第一计算机和不包括TPM的第二计算机的组合来执行。第一计算机可以包括,例如,客户端计算机200,而第二计算机可以包括,例如,服务器106或管理员计算机108。现在将描述用于执行此步骤的各种方法,但是也可以使用其他方法。
例如,在一个实施例中,第一计算机联络第二计算机。响应于来自第一计算机的联络,第二计算机生成随机字符串S,然后,对其应用散列函数,从而生成随机字符串S的散列。然后,向第一计算机发送该散列。第一计算机将该散列作为TPM平台配置寄存器(PCR) 值来使用,并执行TPM密封操作,该TPM密封操作用于将卷专用加密密钥加密为TPM的公钥并将经加密的卷专用加密密钥与PCR值绑定。此TPM密封操作的执行会产生密钥保护器。
在一替换实施例中,第一计算机将及第一计算机内的卷专用加密密钥以TPM的公钥传递到第二计算机。第二计算机生成随机字符串S,对其应用散列函数以生成PCR值,然后执行TPM密封操作,该TPM密封操作用于将卷专用加密密钥加密为TPM的公钥并将经加密的卷专用加密密钥与PCR值绑定。如上文所指出的,第二计算机可以执行TPM密封操作, 尽管它没有对第一计算机的TPM的访问权。此TPM密封操作的执行会产生密钥保护器,第二计算机将该密钥保护器发回到第一计算机。
在进一步的替换实施例中,第一计算机生成随机字符串S,然后,执行TPM扩展操作,该TPM扩展操作用于利用随机字符串S的散列版本填充TPM的PCR。然后,第一计算机通过执行TPM密封操作来生成密钥保护器,TPM密封操作将卷专用加密密钥加密为TPM的公钥,并且还将经加密的卷专用加密密钥与PCR值绑定。第一计算机将随机字符串S的副本发送到第二计算机,并从本地存储器中删除随机字符串S的副本。
在更进一步的替换实施例中,第一计算机请求人工输入。响应于请求,第一计算机的用户联络IT管理员或其他授权人员,响应于联络,IT管理员使用第二计算机来生成随机字符串S,并对其应用散列函数,从而生成随机字符串S的散列。然后,IT管理员通过带外机制(例如,通过电话、电子邮件等等)将散列传递到用户,且用户将该散列输入到第一计算机。第一计算机将该散列作为PCR值来使用,并执行TPM密封操作,该TPM密封操作将卷专用加密密钥加密为TPM的公钥,并且还将经加密的卷专用加密密钥与PCR值绑定。此TPM 密封操作的执行会产生密钥保护器。
在步骤504中,密钥保护器被存储在第一计算机上的本地存储器中。例如,此步骤可以包括将密钥保护器存储为受保护的卷的卷元数据的一部分。
在步骤506中,随机字符串S被存储在可以被第二计算机访问的但不能被第一计算机访问的存储器中。例如,进一步根据上文所描述的用于实现步骤502 (在该步骤中,第二计算机生成随机字符串S)的各种方法,第二计算机将随机字符串S的副本存储在可以被第二计算机访问的但不能被第一计算机访问的存储器中,且决不会将随机字符串S传递到第一计算机。另外,进一步根据上文所描述的用于实现步骤502 (在该步骤中,第一计算机生成随机字符串S)的方法,第一计算机将随机字符串S的副本发送到第二计算机,以便存储在可以被第二计算机访问的但不能被第一计算机访问的存储器中,然后,从本地存储器中删除随机字符串S的副本。
在判断步骤508中,第一计算机确定是否检测到访问受保护的卷的尝试。如果没14有检测到访问受保护的卷的尝试,则重复判断步骤508。如果检测到访问受保护的卷的尝试,则控制流动到步骤510。在步骤510中,响应于检测到访问受保护的密钥的的尝试,第一计算机从第二计算机获取随机字符串S。在步骤512中 ,第一计算机通过执行利用随机字符串S的TPM解封操作,来获取卷专用加密密钥。具体而言,第一计算机执行TPM扩展操作以利用随机字符串S的散列版本填充TPM的PCR。然后,第一计算机执行TPM解封操作,以使用PCR值来解密经密封的卷专用加密密钥。然后,可以使用此卷专用加密密钥来解密受保护的卷上的加密数据。在一个实施例中,卷专用加密密钥包括第一卷专用加密密钥(例如,VMK),该第一卷专用加密密钥可以被用来解密第二卷专用加密密钥(例如,FVEK),然后,可以使用该第二卷专用加密密钥来解密受保护的卷的各个扇区。在步骤514中,第二计算机从可以被第二计算机访问的存储器中删除随机字符串
S。此步骤确保第一计算机随后将不能够获取随机字符串S,并由此再次解封密钥保护器。如上文所指出的,在步骤510期间,第一计算机从第二计算机获取随机字符串S。如果在此步骤期间随机字符串S被通过正常的网络通信从第二计算机直接发送到第一计算机,那么,这将会把随机字符串S暴露给能够对这样的通信进行监听的攻击者。为解决此问题,在一个实施例中,使用基于人工交互的质询-响应机制来传输必要的信息。根据此机制,当需要对受保护的卷的访问时,第一计算机生成随机质询,并向第一计算机的用户显示该随机质询。然后,用户通过带外通信信道(诸如用电话,电子邮件等等)联络IT管理员或第二计算机的其他授权用户,并向其传递该质询。IT管理员向第二计算机输入质询,该第二计算机以可逆方式(例如,通过XOR操作)将质询与随机字符串S组合,以产生响应R,然后,从其存储器中删除随机字符串S,以便它无法再次被使用。然后,响应R被管理员通过带外通信信道传递到第一计算机的用户(将该响应R输入到第一计算机中的用户)。第一计算机从响应R中提取随机字符串S,将随机字符串S扩展为PCR,然后,使用PCR来解封卷专用加密密钥。在第一计算机是客户端计算机200的实施例中,上文所描述的涉及检测对受保护的卷的访问,获取随机字符串S以及执行TPM解封操作的功能可以由OS预加密模块262或者加密过滤器驱动器246来执行。例如,OS预加密模块262可以在系统启动过程期间尝试对受保护的OS卷的访问时执行这样的功能,而加密过滤器驱动器246可以在运行时期间尝试对被保护数据卷的访问时执行这样的功能。然而,这些只是示例而已,客户端计算机200内的其他组件可以被用来执行这些功能。C.基于使用TPM以及服务器交互的一次性解锁的单次使用认证方法图6A和6B共同地描绘了用于控制对存储在第一计算机的受保护的卷上的加密数据的访问的第三示例单次使用认证方法的流程图600。如通过下面所提供的描述变得显而易见的,流程图600的方法基于使用TPM以及服务器交互的一次性解锁的概念。流程图600的方法抵抗上文在部分I. B所描述的全部单个攻击类型以及这些攻击的组合。流程图600的方法需要TPM在第一计算机上存在。类似于前面所描述的流程图500的方法,流程图600的方法利用这样的事实TPM的扩展和密封操作分别对应于散列和公钥加密,因此这些操作可以由另一实体来执行而无需TPM的协助,而TPM的解封操作对应于利用私钥来进行解密,该解封操作只能由TPM本身来执行。可以使用TPM来执行扩展、密封和解封操作的方式是相关领域的技术人员知道的。如图6A所示,流程图600的方法从步骤602开始,在该步骤中,通过利用与第二计算机相关联的公钥来对解密受保护的 卷所需的卷专用加密密钥进行加密来生成第一密钥保护器。根据该实现方式,此步骤可以由第一计算机在通过适当的分发信道从第二计算机接收到公钥之后执行,或者也可以由第二计算机执行,之后第二计算机将密钥保护器传输到第一计算机。还可以使用其他方法来执行此步骤。在步骤604中,第一密钥保护器被存储在第一计算机上的本地存储器中。例如,此步骤可以包括将密钥保护器存储为受保护的卷的卷元数据的一部分。如图6B所示,判断步骤606在步骤604之后。根据判断步骤606,第一计算机确定是否检测到访问受保护的卷的尝试。如果没有检测到访问受保护的卷的尝试,则重复判断步骤606。如果检测到访问受保护的卷的尝试,则控制流动到步骤608。在步骤608中,第一计算机基于由第一计算机所生成的第一随机数来生成被表示为PCRx的第一 PCR值。此步骤可以,例如,通过执行TPM扩展操作来执行,以将随机数扩展到第一计算机上的TPM的特定PCR,其中,特定PCR被预先初始化为零。第一随机数存储在第一计算机的本地存储器中。在步骤610中,第一计算机将第一密钥保护器、第一 PCR值即PCRx、以及第一 PCR值的认证器传输到第二计算机。在一个实施例中,第一 PCR值的认证器包括PCR值的不可伪造的带符号的集合,该集合包括PCRx,并且该集合是使用第一计算机的TPM的援引能力生成的。此认证器的提供确保了将第一计算机与用于生成PCRx的随机数绑定。在步骤612中,第二计算机通过使用与第二计算机的公钥相对应的私钥来解密第一密钥保护器,来获取卷专用加密密钥。在步骤614中,第二计算机基于第一 PCR值即PCRx以及由第二计算机所生成的第二随机数两者来生成第二 PCR值。在一个实施例中,此步骤涉及执行TPM扩展操作以将第二随机数的散列版本添加到PCRx中。如上文所指出的,第二计算机可以执行TPM扩展操作,尽管它没有对第一计算机的TPM的访问权。第二随机数被存储在可以被第二计算机访问的存储器中。在步骤616中,第二计算机通过执行TPM密封操作来生成第二密钥保护器,TPM密封操作加密卷专用加密密钥并将经加密的卷专用加密密钥与第二 PCR值绑定。如上文所指出的,第二计算机可以执行TPM密封操作,尽管它没有对第一计算机的TPM的访问权。在步骤618中,第二计算机将第二密钥保护器和第二随机数传输到第一计算机。在步骤620中,第一计算机基于第一 PCR值和第二随机数两者来生成第二 PCR值。在一个实施例中,此步骤包括执行TPM扩展操作以将第二随机数的散列版本添加到PCRx中。在步骤622中,第一计算机通过对利用第二 PCR值的第二密钥保护器执行TPM解封操作,来获取卷专用加密密钥。此TPM解封操作只能使用第一计算机上的TPM来执行。然后,可以使用此卷专用加密密钥来解密受保护的卷上的加密数据。在一个实施例中,卷专用加密密钥包括第一卷专用加密密钥(例如,VMK),该第一卷专用加密密钥可以被用来解密第二卷专用加密密钥(例如,FVEK),然后,可以使用该第二卷专用加密密钥来解密受保护的卷的各个扇区。在步骤624中,第一计算机从第一计算机的本地存储器中删除第一随机数和第二随机数,而第二计算机从可以被第二计算机访问的存储器中删除第二随机数。用这种方式删除第一和第二随机数确保解封卷专用加密密钥所需的PCR值无法被重新创建。流程图600的前述的方法本身不提供第一计算机上的认证代码没有被篡改的保证。如果需要这样的保证,可以使用该方法的下列扩展。在第一计算机的系统启动期间,第一计算机上的认证代码被度量为TPM的POLKPCR值叫做PCRy。在步骤608期间,如上文所描述的,通过将第一计算机所生成的随机数度量为TPM的不同PCR,来生成值PCRx。在步骤610期间,第一计算机将密钥保护器、PCRx、PCRy,以及PCRx和PCRy的认证器发送到第二计算机。在一个实施例中,PCRx和PCRy的认证器包括PCR值的不可伪造的 带符号的集合,该集合包括PCRx和PCRy,并且该集合是使用第一计算机的TPM的援引能力生成的。第二计算机通过将PCRy与已知好的值的数据库进行比较来验证PCRy,或通过将RCRy与以前从第一计算机获得的信任值进行比较来验证PCRy,。如果此验证失败,则第二计算机拒绝认证请求。然而,如果通过了验证,则在步骤614期间,如上文所描述的,第二计算机基于第
一PCR值即PCRx以及由第二计算机所生成的第二随机数两者来生成第二 PCR值。然后,在步骤616期间,第二计算机通过执行TPM密封操作来生成第二密钥保护器,该TPM密封操作加密卷专用加密密钥并将经加密的卷专用加密密钥与第二 PCR值和与PCRy绑定。在步骤622期间,第一计算机通过对利用第二 PCR值和PCRy的第二密钥保护器执行TPM解封操作,来获取卷专用加密密钥。请注意,在前述的描述中,陈述了第一计算机上的认证代码被度量为TPM的单个PCR(简称为PCRy)。然而,该方法可以被概括为使得认证代码可以被度量为TPM的多个PCR。多个PCR可以被发送到第二计算机、被验证并被用于以与上文参考单个PCR值即PCRy所描述的同样的方式来生成第二密钥保护器。在第一计算机是客户端计算机200的实施例中,上文所描述的涉及检测对受保护的卷的访问、生成第一密钥保护器并将它传输到第二计算机、获取第二密钥保护装置并对其进行解封、以及从第一计算机的本地存储器删除随机数的功能可以由OS预加密模块262或者加密过滤器驱动器246来执行。例如,OS预加密模块262可以在系统启动期间尝试对受保护的OS卷的访问时执行这样的功能,而加密过滤器驱动器246可以在运行时期间尝试对被保护数据卷的访问时执行这样的功能。然而,这些只是示例而已,客户端计算机200内的其他组件可以被用来执行这些功能。D.基于使用TPM委派的一次性解锁的单次使用认证方法图7A和7B共同地描绘了用于控制对存储在第一计算机的受保护的卷上的加密数据的访问的第四示例单次使用认证方法的流程图700。如通过下面所提供的描述变得显而易见的,流程图700的方法基于使用TPM委派的一次性解锁的概念。TPM委派以及此处所描述的与TPM委派相关的特征、操作和属性对于相关领域的技术人员是知道。流程图700的方法不容易受到上文在I. B部分所描述的重播攻击类型的攻击。
如图7A所示,流程图700的方法从步骤702开始,在该步骤中,第一计算机通过利用由第一计算机的TPM所提供的不可迁移的加密密钥来对解密受保护的卷所需的卷专用加密密钥进行加密,来生成密钥保护器。在某些实现中,不可迁移的加密密钥具有秘密的使用授权(usageAuth),该使用授权也是卷专用加密密钥。在步骤704中,第一计算机在TPM中为不可迁移的加密密钥生成密钥委派条目,其中,密钥委派条目具有与其相关联的验证计数器,该验证计数器只能被单调地增大。在步骤706中,第一计算机基于由第一计算机所生成的随机数X和验证计数器的当前值来生成一次性认证字符串。一次性认证字符串可以通过执行可以被定义为HMAC(验证计数,X)的HMAC操作来生成。如相关领域的技术人员所理解的,HMAC操作是可以由TPM执行的基于加密的散列的消息认证代码(MAC)操作。在步骤708中,第一计算机安全地将随机数X与其标识符一起传输到第二计算机,以便存储在可以被第二计算机访问的存储器中。在步骤710中,第一计算机在TPM中生成密钥委派块,该密钥委派块具有设置为一次性认证字符串的使用授权(usageAuth)。在步骤712中,第一计算机将密钥保护器、随机数标识符和密钥委派块存储在本地存储器中(例如,在受保护的卷的卷元数据中),同时从第一计算机上的本地存储器中删除一次性认证字符串。第一计算机还可以利用卷专用加密密钥来加密随机数X,并将经加密的随机数与其唯一标识符一起存储在本地存储器中。如图7B所示,判断步骤714在步骤712之后。根据判断步骤714,第一计算机确定是否检测到访问受保护的卷的尝试。如果没有检测到访问受保护的卷的尝试,则重复判断步骤714。如果检测到访问受保护的卷的尝试,则控制流动到步骤716。在步骤716期间,第一计算机将验证计数器的当前值和随机数标识符传输到第二计算机。在步骤718中,第二计算机使用随机数标识符来从可以被第二计算机访问的存储器获取随机数。在步骤720期间,第二计算机基于所获取的随机数和验证计数器的当前值来生成一次性认证字符串,并在步骤722中,第二计算机将一次性认证字符串传输到第一计算机。在步骤724期间,第一计算机通过使用一次性认证字符串来解密密钥保护器来获取卷专用加密密钥。具体而言,此步骤涉及首先使用一次性认证字符串来解锁不可迁移的密钥,然后使用不可迁移的密钥来解密密钥保护器。然后,可以使用此卷专用加密密钥来解密受保护的卷上的加密数据。在一个实施例中,卷专用加密密钥包括第一卷专用加密密钥(例如,VMK),该第一卷专用加密密钥可以被用来解密第二卷专用加密密钥(例如,FVEK),然后可以使用该第二卷专用加密密钥来解密受保护的卷的各个扇区。请注意,由于卷专用加密密钥现在可以被第一计算机访问,第一计算机还可以在此步骤期间对随机数X的加密版本进行解密。在步骤726期间,第一计算机递增该第一计算机的验证计数器,从而使委派块失效。这确保了一次性认证字符串不再能被用来解锁对密钥保护器进行解密所需的不可迁移的密钥。值得注意的是,步骤726应该在受保护的卷被实际解密之前执行。在步骤726之后,第一计算机可以使用随机数X (其在步骤724期间被解密)和新验证计数来生成要传输到第二计算机的新的一次性认证字符串以及新的密钥委派块,如此重新武装了认证机制。此方法确保,随机数X只须被传递到第二计算机一次,从而对将该数字暴露于潜在的攻击者进行了限制。值得注意的是,在替换实施例中,每当重新武装认证机制时,都可以由第一计算机生成新的随机数。第二计算机可以通过为多个连续的验证计数值预先请求一次性认证字符串,通过限制对给定标识符的请求、混乱的请求的频率,或通过记录和监视所有请求并在相同标识符被使用两次的情况下引发报警,来获得额外保护。另外,还可以使第二计算机在计划的维护时段之外不可用,在该时段,预期无人照看的重新引导。在第一计算机是客户端计算机200的实施例中,上文所描述的涉及检测对受保护的卷的访问、将验证计数器的当前值和随机数标识符传输到第二计算机、获取卷专用加密密钥以及递增验证计数器的功能可以由OS预加密模块262或者加密过滤器驱动器246来执行。例如,OS预加密模块262可以在系统启动期间尝试对受保护的OS卷的访问时执行这样的功能,而加密过滤器驱动器246可以在运行时期间尝试对被保护数据卷的访问时执行这样的功能。然而,这些只是示例而已,客户端计算机200内的其他组件可以被用来执行 这些功能。III.示例计算机系统实现方式图8描绘了可以被用来实现此处所描述的各实施例的示例计算机系统800。例如,图I的客户端计算机KM1-KMn、服务器106或管理员计算机108或图2的客户端计算机200中的任何一个都可以使用计算机系统800来实现。同样,归属于参考如上文参考图3、4、5、6A、6B、7A和7B所描述的流程图300、400、500、600或700所描述的第一计算机或第二计算机的功能中的任何一个可以使用计算机系统800来执行。计算机系统800可以表示例如常规个人计算机、移动计算机或工作站形式的通用计算设备,或者,计算机系统800可以是专用计算设备。此处所提供的对计算机系统800的描述是为了说明的目的而提供的,而并不旨在进行限制。如相关领域的技术人员所知道的,各实施例可以在其他类型的计算机系统中实现。如图8所示,计算机系统800包括处理单元802、系统存储器804,以及将包括系统存储器804的各种系统组件耦合到处理单元802的总线806。处理单元802可以包括一个或多个处理器或处理核。总线806表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及使用各种总线体系结构中的任何一种的处理器或局部总线。系统存储器804包括只读存储器(R0M)808和随机存取存储器(RAM)810。基本输入/输出系统812 (BIOS)存储在R0M808中。计算机系统800还具有下列驱动器中的一个或多个用于读写硬盘的硬盘驱动器814、用于读或写可移动磁盘818的磁盘驱动器816、以及用于读或写诸如⑶ROM、DVD ROM或其他光介质之类的可移动光盘822的光盘驱动器820。硬盘驱动器814、磁盘驱动器816,以及光驱动器820分别通过硬盘驱动器接口 824、磁盘驱动器接口 826,以及光学驱动器接口 828连接到系统总线806。驱动器以及它们相关联的计算机可读介质为计算机提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失存储器。虽然描述了硬盘、可移动磁盘和可移动光盘,但是,也可以使用诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的其他类型的计算机可读介质来存储数据。多个程序模块可被存储在硬盘、磁盘、光盘、ROM,或RAM上。这些程序包括操作系统830、一个或多个应用程序832、其他程序模块834,以及程序数据836。这些程序,当执行时,使计算机系统800能执行归属于参考如上文参考图3、4、5、6A、6B、7A和7B所描述的流程图300、400、500、600或700所描述的第一计算机或第二计算机的功能中的任何一个。用户可以通过诸如键盘838和定点设备840之类的输入设备向计算机系统800输入命令和信息。其他输入设备(未示出)可包括话筒、操纵杆、游戏控制器、扫描仪等。在一个实施例中,与显示器844 —起提供能多触摸的触摸屏,以使用户通过对触摸屏上的一个或多个点施加触摸(例如,通过手指或指示笔)来提供用户输入。这些及其他输入设备常常通过耦合到总线806的串行端口接口 842连接到处理单元802,但是,也可以通过其他接口,诸如并行端口、游戏端口、通用串行总线(USB)端口,来进行连接。显示器844也可以通过诸如视频适配器846之类的接口连接到总线806。除了显示器之外,计算机系统800还可包括其他外围输出设备(未示出),如扬声器和打印机。计算机系统800通过网络接口或适配器850、调制解调器852、或用于通过网络建立通信的其他装置连接到网络848 (例如,局域网或诸如因特网之类的广域网)。调制解调器852 (可以是内置的或外置的),通过串行端口接口 842连接到总线806。如此处所使用的,术语“计算机程序介质”和“计算机可读介质”被用来泛指诸如与硬盘驱动器814相关联的硬盘、可移动磁盘818、可移动光盘822之类的非瞬时的介质,以及诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的其他介质。如上文所指示的,计算机程序和模块(包括应用程序832及其他程序模块834)可以存储在硬盘、磁盘、光盘、ROM或RAM上。这样的计算机程序也可以通过网络接口 850或串行端口接口 842来接收。这样的计算机程序,当由应用执行或加载时,使得计算机800能实现此处所讨论的各实施例的特征。相应地,这样的计算机程序表示计算机系统800的控制器。各实施例还涉及包括存储在任何计算机可读的介质上的软件的计算机程序产品。 这样的软件,当在一个或多个数据处理设备中执行时,使数据处理设备如此处所描述的那样操作。各实施例可使用现在已知的或将来已知的任何计算机可使用或计算机可读介质。计算机可读介质的示例包括,但不仅限于,诸如RAM、硬盘驱动器、软盘、CD ROM、DVD ROM、zip磁盘、磁带、磁存储设备、光存储设备、基于MEMS的存储设备、基于纳米技术的存储设备等等之类的存储设备。IV.结论尽管上文描述了各实施例,但是,应该理解,它们只是作为示例来呈现的,而不作为限制。对相关领域的技术人员显而易见的是,在不偏离本发明的精神和范围的情况下,可以在形式和细节方面进行各种修改。如此,本发明的范围不应该受到上述示例性实施例的任一个的限制,而只应根据下面的权利要求和它们的等效内容进行定义。
权利要求
1.一种用于访问存储在第一计算机的受保护的卷上的加密数据的单次使用认证方法, 包括通过利用随机地生成的不对称公钥和私钥对中的公钥来对解密存储在所述受保护的卷上的所述加密数据所需的卷专用加密密钥进行加密来生成密钥保护器;将所述密钥保护器存储在所述第一计算机的本地存储器中;以及响应于检测到访问所述受保护的卷的尝试,由所述第一计算机执行下列步骤获取所述私钥,使用所述私钥来解密所述密钥保护器,以获取所述卷专用加密密钥,以及在对所述密钥保护器进行单次使用之后,从所述第一计算机的所述本地存储器中删除所述密钥保护器。
2.如权利要求I所述的方法,其特征在于,还包括使用所述卷专用加密密钥来解密存储在所述受保护的卷上的所述加密数据。
3.如权利要求2所述的方法,其特征在于,使用所述卷专用加密密钥来解密存储在所述受保护的卷上的所述加密数据包括使用所述卷专用加密密钥来解密第二卷专用加密密钥;以及使用所述第二卷专用加密密钥来解密存储在所述受保护的卷上的所述加密数据。
4.如权利要求I所述的方法,其特征在于,所述受保护的卷包括逻辑卷或物理卷中的一个。
5.如权利要求I所述的方法,其特征在于,获取所述私钥包括从所述第一计算机的所述本地存储器获取所述私钥。
6.如权利要求I所述的方法,其特征在于,获取所述私钥包括通过网络从第二计算机获取所述私钥。
7.如权利要求6所述的方法,其特征在于,通过所述网络从所述第二计算机获取所述私钥包括在成功地执行质询_响应交互之后,通过所述网络从所述第二计算机获取所述私钥。
8.一种系统,包括具有受保护的卷的第一计算机,所述第一计算机被配置成将密钥保护器存储在本地存储器中,所述密钥保护器是通过执行可信平台模块(TPM)密封操作而生成的,所述TPM密封操作对解密存储在所述受保护的卷上的加密数据所需的卷专用加密密钥进行加密,并将经加密的卷专用加密密钥与通过对随机数据进行散列而生成的值绑定;第二计算机;以及其中存储了可以被所述第二计算机但不能被所述第一计算机访问的所述随机数据的存储器;所述第一计算机还被配置成,响应于检测到访问所述受保护的卷的尝试,从所述第二计算机获取所述随机数据,并通过执行利用所述随机数据的TPM解封操作来获取所述卷专用加密密钥;所述第二计算机被配置成从可被其访问的所述存储器中删除所述随机数据。
9.如权利要求8所述的系统,其特征在于,所述第一计算机还被配置成使用所述卷专用加密密钥来解密存储在所述受保护的卷上的所述加密数据。
10.如权利要求9所述的系统,其特征在于,所述第一计算机被配置成使用所述卷专用加密密钥来解密第二卷专用加密密钥,并使用所述第二卷专用加密密钥来解密存储在所述受保护的卷上的所述加密数据。
11.如权利要求8所述的系统,其特征在于,所述第一计算机通过使用TPM来执行所述 TPM密封操作来生成所述密钥保护器。
12.如权利要求8所述的系统,其特征在于,所述第二计算机通过以不使用TPM的方式来执行所述TPM密封操作来生成所述密钥保护器。
13.如权利要求8所述的系统,其特征在于,所述第一计算机被配置成向所述第二计算机提供质询;其中,所述第二计算机被配置成将所述质询与所述随机数据组合以产生响应,并将所述响应提供给所述第一计算机;以及其中,所述第一计算机还被配置成从所述响应中提取所述随机数据。
14.如权利要求13所述的系统,其特征在于,所述第一计算机被配置成向所述第一计算机的用户发出所述质询,以便在带外向所述第二计算机的用户提供对所述第二计算机的进入。
15.如权利要求13所述的系统,其特征在于,所述第二计算机被配置成向所述第二计算机的用户发出所述响应,以便在带外向所述第一计算机的用户提供对所述第一计算机的进入。
全文摘要
本发明描述了用于访问存储在计算机的受保护的卷上的加密数据的单次使用认证方法,其中对加密数据的访问涉及对存储在计算机上的密钥保护器进行解密,该密钥保护器保存了对受保护的卷进行解密所需的卷专用加密密钥。这样的单次使用认证方法依赖于提供只能使用一次的和/或对于每一次使用都需要新访问凭证的密钥保护器。在某些实施例中,还将质询-响应过程用作认证方法的一部分,以将密钥保护器和/或访问凭证的颁发与可以唯一地标识用户的特定信息片段绑定。
文档编号G06F12/14GK102948114SQ201180030456
公开日2013年2月27日 申请日期2011年6月10日 优先权日2010年6月21日
发明者O·T·乌雷彻, N·迪萨尔, C·G·杰弗里斯, C·M·伊拉茨, V·G·巴拉德瓦杰, I·巴斯莫夫, S·汤姆, S·沃巴 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1