著录项信息
专利名称 | 用于原位加密的系统和方法 |
申请号 | CN201280004685.6 | 申请日期 | 2012-01-04 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2013-09-11 | 公开/公告号 | CN103299315A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F21/78 | IPC分类号 | G;0;6;F;2;1;/;7;8查看分类表>
|
申请人 | 苹果公司 | 申请人地址 | 美国加利福尼亚
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 苹果公司 | 当前权利人 | 苹果公司 |
发明人 | D·S·霍恩;小J·索科尔;O·J·斯特恩;王文广 |
代理机构 | 中国国际贸易促进委员会专利商标事务所 | 代理人 | 陈华成 |
摘要
本发明公开了用于执行原位加密的系统、方法和非临时性计算机可读存储介质。被配置用于实践该方法的系统接收来自用户的对计算装置的未加密卷加密的请求,并且识别、生成和/或随机选择卷密钥。然后,该系统将未加密的卷转换成被划分为多个部分的可加密格式。然后,该系统基于卷密钥来逐部分地加密可加密卷,以使得用户能够在加密期间使用计算装置。该系统能够保持加密进度状态并且显示加密进度状态。该系统能够监视对可加密卷的盘存取,并且当盘存取超过第一阈值时,应用回退算法以停止加密,直到盘存取降到第二阈值以下。因而,当加密在后台进行时能够使用计算装置。
1.一种用于加密的方法,包括:
接收来自用户的对计算装置的未加密卷加密的请求;
识别卷密钥;
基于所述卷密钥逐部分地加密所述未加密卷,以使得所述用户在所述加密期间能够使用所述计算装置,其中所述加密包括:
将所述未加密卷划分成多个部分,其中所述多个部分中的至少一个被指定为工作空间;
反复地选择未加密部分,将所选择的未加密部分加密到所述工作空间内,并且在加密所述未加密部分之后指定先前选择的未加密部分作为所述工作空间;
监视用户操作;以及
当表示用户操作的数量的一个或多个值超过第一阈值时,应用回退算法以暂时停止加密,直到表示用户操作的数量的一个或多个值降到第二阈值以下。
2.根据权利要求1所述的方法,还包括:
保持加密进度状态;以及
向所述用户显示所述加密进度状态。
3.根据权利要求1所述的方法,其中所述用户操作是用户对所述未加密卷的盘存取。
4.根据权利要求1所述的方法,还包括,当所述计算装置在单独部分正被加密的同时请求与所述单独部分的信息交换时:
将所述信息交换重新引向所述单独部分的临时副本。
5.根据权利要求1所述的方法,其中逐部分地加密所述未加密卷是通过线性途径、随机途径、未使用部分途径或重要性次序途径之一来执行的。
6.根据权利要求1所述的方法,还包括:
在所述未加密卷上保留工作空间;以及
其中逐部分地加密所述未加密卷还包括在各单独部分正被加密时将各单独部分的副本存储于所述工作空间。
7.根据权利要求6所述的方法,其中所述工作空间还存储文件系统元数据。
8.根据权利要求6所述的方法,还包括将所述未加密卷转换成可加密格式,其中所述转换还包括缩小所述未加密卷以给所述工作空间腾出空间。
9.根据权利要求1所述的方法,其中逐部分地加密所述未加密卷还包括:
读取单独部分;
将所述单独部分的副本存储于存储器内;
经由处理器来加密在存储器内的所述单独部分的副本,以得到已加密的单独部分;
创建所述单独部分的临时副本;以及
将所述已加密的单独部分存储于临时位置内,其中所述临时位置变为所述已加密的单独部分的永久位置,以及其中前一未加密部分变为新的临时位置以保持下一部分的已加密版本。
10.根据权利要求1所述的方法,其中所述部分具有统一的大小。
11.根据权利要求1所述的方法,其中在所述计算装置重启、所述计算装置失去电力或所述计算装置的致命系统错误中的至少一个之后,逐部分地加密所述未加密卷能够以一致的状态继续进行,而没有数据丢失。
12.根据权利要求11所述的方法,其中基于所述未加密卷的物理特性、在所述未加密卷上运行的操作系统的属性、用户动作、性能考虑、功率消耗考虑、噪声考虑、热阈值考虑或计算装置的休眠状态中的至少一个,来适应性地调整所述部分的大小。
13.一种计算装置,包括:
处理器;
存储装置,其具有至少一个分区;
操作系统,其用于控制所述处理器且位于所述存储装置的所述至少一个分区的至少一部分上;
加密模块,其被配置用于控制所述处理器以通过执行以下步骤来加密所述至少一个分区的未加密分区,所述步骤包括:
接收来自用户的加密请求;
识别加密卷密钥;
基于所述加密卷密钥逐个区域地加密所述未加密分区,以使得所述用户能够在所述加密期间使用所述计算装置,其中所述加密包括:
将所述未加密分区划分成多个区域,其中所述多个区域中的至少一个被指定为工作空间;
反复地选择未加密区域,将所选择的未加密区域加密到所述工作空间内,以及在加密所述未加密区域之后指定先前选择的未加密区域作为所述工作空间;
监视用户操作;以及
当表示用户操作的数量的一个或多个值超过第一阈值时,应用回退算法以暂时停止加密,直到表示用户操作的数量的一个或多个值降到第二阈值以下;以及
解密模块,其被配置用于控制所述处理器以通过执行以下步骤来解密所述至少一个分区的已加密分区,所述步骤包括:
接收解密请求;
检索与所述已加密分区相关的解密卷密钥;以及
基于所述解密卷密钥逐个块地解密所述已加密分区,以使得所述用户在所述解密期间能够使用所述计算装置,如同所述已加密分区已经被解密一样。
14.根据权利要求13所述的计算装置,其中所述加密模块还被配置用于控制所述处理器以显示加密所述未加密分区的进度指示。
15.根据权利要求13所述的计算装置,其中位于所述计算装置的操作系统与所述未加密卷之间的中间层加密所述未加密卷。
16.一种用于执行解密的系统,所述系统包括:
处理器;
存储卷,其至少部分被加密且被划分成多个部分;
第一模块,其被配置用于控制所述处理器以接收与所述存储卷相关的卷密钥;以及第二模块,其被配置用于控制所述处理器以基于所述卷密钥逐部分地解密所述存储卷,以使得用户在解密时能够使用所述存储卷,如同所述存储卷已经被解密一样,其中所述解密还包括:
反复地选择已加密部分,将所选择的已加密部分解密到工作空间内,以及在解密所述已加密部分之后指定先前选择的已加密部分作为所述工作空间;
监视用户操作;以及
当表示用户操作的数量的一个或多个值超过第一阈值时,应用回退算法以暂时停止解密,直到表示用户操作的数量的一个或多个值降到第二阈值以下。
17.根据权利要求16所述的系统,还包括:
第三模块,其被配置用于控制所述处理器以将所述卷密钥存储于由引导加载器读取的存储器内,以使得当所述引导加载器在系统引导时首次运行时,所述引导加载器执行以下步骤,所述步骤包括:
读取所述卷密钥;
基于卷密钥来提供对所述存储卷的剩余已加密部分的存取;以及
使所述系统在所述系统关机前停止解密的相同位置继续基于所述卷密钥逐部分地解密所述存储卷的所述剩余已加密部分。
18.根据权利要求17所述的系统,其中所述卷密钥被隐藏于所述存储器内的密钥加密的密钥中。
19.根据权利要求16所述的系统,其中所述第二模块还被配置用于控制所述处理器以作为后台处理来解密所述存储卷。
用于原位加密的系统和方法\n[0001] 对相关申请的交叉引用\n[0002] 本申请要求在2011年1月5日提交的,题目为“SYSTEM AND METHOD FOR IN-PLACE ENCRYPTION”的美国专利申请序列号No.12/985,190的优先权,该专利申请的全部内容通过引用,包含于此。\n技术领域\n[0003] 本公开涉及加密存储装置,并且更特别地涉及在用户持续使用计算机的同时对计算机内的存储装置的原位加密(in-place encryption)。\n背景技术\n[0004] 随着存储装置的容量及普及性的提高,许多用户和组织会自然地关注保护所存储的数据。用户可能希望保护数据使其避免遭受的某些威胁包括身份盗用、商业间谍、侵犯隐私、黑客行为等。存储于存储装置上的数据容易受到物理存储装置的失窃以及经由基于网络的攻击的非授权访问的影响。企业通常关心对机密用户数据或商业秘密的保护,然而个体用户通常关心个人信息(例如,银行账号信息、个人数据等)的非故意泄漏。\n[0005] 保护数据的一种途径是加密。加密不能防止物理存储装置被盗,但是会使得存储于物理存储装置上的数据在没有加密密码的情况下不可用。当今在市场上存在许多商用的、集成的及开放源代码的加密选项,诸如,TrueCrypt、FreeOTFE和CrossCrypt。采用此类加密(尤其是更安全的全盘加密)的最大障碍是所需要的时间以及与对未加密驱动器加密相关的不便。取决于存储装置的大小、处理器的速度及加密算法,个人计算机可能耗费8个小时或更长的时间来加密驱动器。在该时间内,用户无法使用计算机来进行其它计算任务。\n例如,TrueCrypt的一个在线教程(见于http://www.randyjensenonline.com/blog/using-truecrypt-to-encrypt-your-entire-hard-drive)以这样的语句来概括对存储装置加密的当前状态:“只需点击‘加密(Encrypt)’按钮,然后去喝杯咖啡或者去睡觉并让它通宵运行,这取决于您的擦除模式和您的加密算法”。因此,许多用户意识到需要加密他们的存储装置,但是没能这样做,就是由于与加密存储装置相关的时间和麻烦。\n发明内容\n[0006] 本公开的附加的特征和优点将在随后的描述中阐明,并且在某种程度上根据该描述将是显而易见的,或者能够通过本文所公开的原理的实践而获知。本公开的特征和优点能够通过特别地在所附的权利要求书中指出的工具及组合来实现和获得。本公开的这些特征及其它特征根据随后的描述及所附的权利要求书将变得更充分地明显,或者能够通过本文所阐明的原理的实践而获知。\n[0007] 本发明公开了用于加密存储卷的系统、方法和非临时性计算机可读存储介质。被配置用于实践方法的系统首先接收来自用户的对计算装置的未加密卷加密的请求。该系统识别、生成和/或随机选择卷密钥,并且将未加密的卷转换成可加密格式以得到被划分成多个部分的可加密卷。然后,该系统基于卷密钥来逐部分地加密可加密卷,以使得用户能够在加密期间使用计算装置。该系统能够使用线性途径、随机途径、未使用部分途径和/或重要次序途径来逐部分地加密可加密卷。该系统能够在可加密卷上保留工作空间,并且在各单独部分被加密时将各单独部分的副本存储于工作空间。工作空间还能够存储文件系统元数据。在某些情况下,该系统缩小未加密卷以给工作空间腾出空间。因而,实现了新的结果:用户能够在存储装置被加密的同时正常地使用计算机,由此去除妨碍加密被广泛采用的最大障碍之一。另一个新的结果是:该系统能够在预期的或未预期的断电或重新开始事件之后,在没有数据丢失的一致状态下重新开始对装置加密。\n[0008] 该系统能够保持加密进度状态,即使是在经过系统重启之后,并且给用户显示加密进度状态。为了促进在加密期间的正常使用并且避免存储装置过载,该系统能够监视用户对可加密卷的盘存取,并且当用户的盘存取超过第一阈值时,应用回退(back-off)算法以暂时停止加密直到用户的盘存取降到第二阈值以下,或者在某些其它预定的或随机的时段内暂时停止加密。当计算装置在单独部分正被加密的同时请求与该单独部分的信息交换时,该系统能够将该信息交换重新指向该单独部分的临时副本。可选择地,该系统能够延迟信息交换,直到该单独部分已经被成功加密(或在解密的情况下已被成功解密)。即使用户完全注意到了延迟,由该途径所引入的延迟对于用户也是很不明显的。\n[0009] 该系统能够通过以下操作逐部分地加密可加密卷:读取单独部分,将该单独部分的副本存储于存储器内,对在存储器内的该单独部分的副本加密以得出加密的单独部分,创建该单独部分的临时副本,并且暂时将对该单独部分的存取请求新重指向该单独部分的临时副本。已加密部分被存储于临时位置内,并且该临时位置变为已加密的单独部分的永久位置,而原先的未加密部分变为临时位置以保持另一部分的加密版本。这些部分能够是统一大小的(例如,段、扇区、轨道、柱、头),或者能够具有适合的大小。这些部分能够基于未加密卷的物理特性,在未加密卷上运行的操作系统的属性,用户动作,性能考虑、功率消耗考虑、噪声考虑、热阈值考虑及计算装置的休眠状态中的至少一个而自适应地调整大小。在一个方面,该系统在考虑系统已经“空闲”多久以确定何时转为低功耗状态时,忽略为了原位加密或解密而进行的盘存取。\n[0010] 该系统能够包括:处理器、具有至少一个分区的存储装置,以及用于控制处理器并位于存储装置的所述至少一个分区的至少一部分上的操作系统。该系统能够包括被配置用于控制处理器以通过以下操作来加密所述至少一个分区的未加密分区的加密模块:接收来自用户的加密请求,识别加密卷密钥,将未加密分区转换成可加密格式以得到被划分成多个区域的可加密分区,并且基于加密卷密钥逐个区域地加密可加密分区以使得用户能够在加密期间使用计算装置。该系统能够包括被配置用于控制处理器以通过以下操作来解密所述至少一个分区的已加密分区的解密模块:接收解密请求,检索出与已加密分区相关的解密卷密钥,并且基于解密卷密钥逐个块地解密已加密分区以使得用户能够在解密期间如同已加密分区已经被解密一样地来使用计算装置。\n[0011] 本文所阐明的途径允许用户开始对存储有操作系统的存储装置加密,同时保留在具有数据一致性且没有数据丢失的加密处理中,以正常的方式来使用操作系统的能力。\n附图说明\n[0012] 为了描述能够用以获得本公开的上述的以及其它的优点和特征的方式,以上所简要描述的原理的更具体的描述将参考其具体的实施例来给出,这些实施例被示出于附图中。应当理解,这些附图仅示出本公开的示例性实施例,并且因此并非是要被看作是对本公开的范围的限定,这些原理在此将通过使用附图来更具体更详细地描述和解释,在附图中:\n[0013] 图1示出了一种示例系统的实施例;\n[0014] 图2示出了未加密的存储卷和已加密的存储卷;\n[0015] 图3示出了用于拦截操作系统在原位加密期间对文件系统的请求的层;\n[0016] 图4示出了卷在原位加密期间的示例性转变;以及\n[0017] 图5示出了用于执行原位加密的一种示例方法的实施例。\n具体实施方式\n[0018] 以下将详细地讨论本公开的各种实施例。虽然在此讨论具体的实现方式,但是应当理解,这只是为了说明的目的而进行的。本领域技术人员应当意识到,在不脱离本公开的精神和范围的情况下可以使用其它构件和配置。\n[0019] 本公开解决在本技术领域中对精简及简化对启用和禁用加密的用户体验的需求。\n在此公开了关于能够用来实践本发明的概念的在图1中的基本通用系统或计算装置的简要的介绍性描述。以下将是关于原位加密的方法和途径更详细的描述。在此将讨论各个实施例所阐明的多种变化。本公开现在转至图1。\n[0020] 参考图1,示例性系统100包括通用计算装置100,该通用计算装置100包括处理单元(CPU或处理器)120以及将包括系统存储器130(诸如只读存储器(ROM)140和随机存取存储器(RAM)150)在内的各种系统构件耦接至处理器120的系统总线110。系统100可以包括与处理器120直接连接、紧挨着处理器120或者被集成为处理器120的一部分的高速存储器的高速缓存122。系统100将数据从存储器130和/或存储装置160复制到高速缓存,以便由处理器120快速存取。以此方式,高速缓存使得性能提升,以避免处理器120在等待数据时延迟。\n这些模块及其它模块能够控制处理器120或者被配置用于控制处理器120来执行各种动作。\n其它系统存储器130同样可以可用来使用。存储器130能够包括具有不同性能特性的多种不同类型的存储器。应当能够领会,本公开可以在具有多于一个的处理器120的计算装置100上或者在为提供更高的处理能力而经网络连接在一起的计算装置组或群集上工作。处理器\n120能够包括任何通用处理器以及被配置用于控制处理器120以及专用处理器的硬件模块或软件模块(例如,存储于存储装置160内的模块一162、模块二164和模块三166),在该专用处理器中,软件指令被并入实际的处理器设计中。处理器120基本上可以是完全独立的计算系统,包含多个核或处理器、总线、存储控制器、高速缓存等。多核处理器可以是对称的或非对称的。\n[0021] 系统总线110可以是若干种总线结构中的任一种,包括存储器总线或存储控制器、外围总线以及使用各种总线体系结构中的任一种的局部总线。存储于ROM 140等内的基本输入/输出(BIOS)可以提供用于在诸如启动期间帮助在计算装置100内的元件之间传输信息的基本例程。计算装置100还包括存储装置160,诸如硬盘驱动器、磁盘驱动器、光盘驱动器、带驱动器等。存储装置160能够包括用于控制处理器120的软件模块162、164、166。还可预期其它硬件或软件模块。存储装置160通过驱动器接口与系统总线110连接。驱动器及相关的计算机可读存储介质提供计算机可读指令、数据结构、程序模块以及用于计算装置100的其它数据的非易失性存储。在一个方面,用于执行特定功能的硬件模块包括存储于与必要硬件构件(诸如处理器120、总线110、显示器170等)连接的非临时性计算机可读介质内的软件构件,以实现功能。基本构件是本领域技术人员所已知的,并且取决于装置的类型(诸如,装置100是小的手持式计算装置、台式计算机或计算机服务器),可预期适当的变化。\n[0022] 虽然在此所描述的示例性实施例采用了硬盘160,但是本领域技术人员应当领会,在示例性的操作环境中同样可以使用能够存储可由计算机存取的数据的其它类型的计算机可读介质,诸如磁带盒、闪存卡、数字万用盘、盒式盘、随机存取存储器(RAM)150、只读存储器(ROM)140、含有比特流的电缆或无线信号等。非临时性计算机可读存储介质明确地排除诸如能量、载波信号、电磁波及信号自身之类的介质。\n[0023] 要使用户能够与计算装置100交互,输入装置190代表众多输入机构,例如,讲话用的传声器、手势或图形输入用的触敏屏幕、键盘、鼠标、运动输入、语音等。输出装置170还能够是本领域技术人员已知的众多输入机构中的一种或多种。在某些情况下,多模式系统使得用户能够提供多种类型的输入来与计算装置100通信。通信接口180一般会控制和管理用户输入和系统输出。并不存在对在任何特定硬件配置上的操作的限制,因而,对于改进的硬件或固件配置,在它们被研发出来时,可以容易地替代此处的基本特征。\n[0024] 为了清楚说明,说明性的系统实施例呈现为包括单独功能块,该单个功能块包括被标示为“处理器”或处理器120的功能块。这些块所代表的功能可以通过使用共用的或专用的硬件来提供,这些硬件包括(但不限于)能够执行软件的硬件,以及被专门创建以作为在专用处理器上执行的软件的等价物来操作的硬件(诸如处理器120)。例如,图1所示的一个或多个处理器的功能可以由单个共用的处理器或多个处理器提供。(术语“处理器”的使用不应被解释为专门指代能够执行软件的硬件。)说明性的实施例可以包括微处理器和/或数字信号处理器(DSP)硬件、用于存储执行以下所讨论的操作的软件的只读存储器(ROM)\n140,以及用于存储结果的随机存取存储器(RAM)150。同样也可以提供超大规模集成(VLSI)硬件实施例,以及与通用的DSP电路结合的定制的VLSI电路。\n[0025] 各种实施例的逻辑操作被实现为(:1)在通用计算机内的可编程电路上运行的一系列计算机实现的步骤、操作或过程(,2)在专用可编程电路上运行的一系列计算机实现的步骤、操作或过程;和/或(3)在可编程电路内的互连的机器模块或程序引擎。图1所示的系统100能够实现所述方法中的全部或一部分,能够是所述系统的一部分,和/或能够按照在所述非临时性计算机可读存储介质内的指令来操作。此类逻辑操作能够被实现为模块,该模块被配置用于控制处理器120以使其按照模块的程序设计来执行特定功能。例如,图1示出了三个模块Mod1 162、Mod2 164和Mod3 166,这三个模块是被配置用于控制处理器120的模块。这些模块可以被存储于存储装置160上,在运行时被装载到RAM 150或存储器130内,或者可以如同本技术领域所已知的那样存储于其它计算机可读存储器位置内。\n[0026] 在公开了某些基本系统构件之后,本公开现在返回到原位加密的讨论。在高层次上,原位加密和解密在“后台”在计算装置上执行,同时允许用户、操作系统及其它程序以看似正常的方式继续使用计算装置。虽然硬盘驱动器的整个加密或解密处理能够持续数小时,但是本文所阐明的原位途径以基本的方式来执行加密或解密,该基本方式在保持数据的完整性的同时是安全且一致的,并且在执行加密或解密时不中断或明显妨碍用户。\n[0027] 图2示出了未加密的存储卷202和已加密的存储卷204。在每种情况下,存储卷包括用户在其中存储用户数据的第一部分以及操作系统和/或存储卷在其中存储元数据的第二部分。该系统能够实时地将未加密的存储卷202转换成已加密的存储卷204,但是这种途径要求已加密的存储卷的可用大小略微小于未加密的存储卷,以便适应临时的偏移空间的创建。临时的偏移空间促进基本的加密操作,以使得不丢失数据并且使得用户能够在卷被加密时继续访问该卷上的任何数据。\n[0028] 图3示出了用于拦截操作系统302在原位加密300期间对文件系统310的请求的层\n306。当文件系统正被加密时,操作系统302通过文件系统层306和原位加密层310或类似的应用编程接口(API)来发送文件系统I/O请求304。文件系统306将读/写特定文件的给定位置的文件I/O请求304转变成读/写盘上的特定块/扇区的块I/O请求308,并且加密层310然后将该请求308转变成盘/分区上的不同块,可选择地执行任何必要的加密或解密。针对存储装置分区314,加密层作出转变请求312。加密层310可以完全不了解文件系统306。然后,数据通过文件系统306和原位加密层310传递回到操作系统302。原位加密层310能够拦截每个用于访问到存储装置的存储装置操作或者请求。在任何期望的配置中,加密层310能够拦截并转变I/O呼叫。例如,系统能够使数据移位、混合或者以其它方式重新排序,作为原位加密处理的一部分。\n[0029] 图4示出了卷在原位加密期间的示例性转换400。顶部驱动器402是正被加密中的驱动器的概念性配置,具有已加密部分、未加密部分和保留的元数据部分。底部驱动器404是同一驱动器的概念性配置的实际表示。箭头表明偏移406占用了在已加密部分和未加密部分之间的空间。偏移406能够存储文件系统的元数据以及在原位加密中使用的“暂存(scratch)”数据。操作系统对驱动器作出呼叫,如同它是概念性配置402那样,并且转变层将这些要求转变成实际表示404。当系统正在工作以加密特定扇区时,偏移406逐个扇区地移位通过驱动器404。在线性途径中,偏移406从左到右地移位,直到在整个驱动器上的每一个块都已被加密或被重写。系统读取下一个未加密块,在存储器内加密该块,并且将新已加密的块写回到驱动器上的新位置。然后,系统清除(flush)高速缓存并且清除相应的元数据。\n[0030] 在图4所示的配置的一种变形中,已加密数据能够在右侧,而未加密数据能够在左侧,而暂存偏移部分随着原位加密的进行而从右到左移位。原位加密途径能够按任何方向来处理存储装置,并且能够在包括装置的起点、装置的终点以及其间的任意点的任何点开始。\n[0031] 在一个方面,系统必须改变驱动器分区类型,以便启用加密,诸如,将HFS+驱动器转换为CoreStorage驱动器。系统还能够暂停加密操作以便给诸如文件存取或复制文件的用户操作(或者“正常的”I/O)赋以优先级。用户能够设定所期望的优先级或者加密方案,该加密方案能够控制系统如何、何时及多长时间暂停加密操作。如果加密操作正在与其它“后台”I/O操作竞争,则系统能够允许两者运行,或者加密操作能够退让并等待其它“后台”I/O操作,这取决于所期望的结果。允许全部其它I/O操作优先于加密程序将导致总体上需要更长的时间来加密驱动器,然而更加积极的加密方法需要较短的时间,但是在加密进行时会减慢在计算装置上执行的其它操作。\n[0032] 此外,相同的原理能够应用于解密已加密的驱动器。用户提交驱动器解密请求,并且输入与加密驱动器相关的密码。然后,系统在后台每次少许地执行原位解密,而用户不必再次输入密码,即使驱动器的某些部分直到原位解码完成仍然是已加密的也是如此。在解密时,系统仍然需要存取用户的密码以解密驱动器,即使在系统重启时也是如此。为了避免多次或者在每次系统重启时提示用户输入该密码,系统能够在获得密码之后可选择地以特定的格式对密码编码并将密码存储于特定的位置内,以用于引导程序。但是,系统可以不存储密码。在这种变形中,需要加密密钥来解密盘。该加密密钥通常使用用户密码来加密。当用户开始解密时,系统以不加密(但是能够被加密)的格式将该加密密钥存储于盘上,以使得不再需要用户的密码以访问卷。这具有不在盘上存储用户密码的好处,在盘上恶意程序或其它用户可能能够存取该密码。这种途径能够是有利的,因为许多用户将相同的密码用于其它用途并且希望将该密码保密。\n[0033] 在该特定位置内引导程序检查,查看密码,并且系统即使在重启、突然断电、操作系统崩溃、硬件导致的系统错误和/或在计算装置内的其它致命的系统错误之后,也能够在后台继续以没有数据丢失的一致状态来自动地解码。在Microsoft Windows机器上,致命的系统错误的示例之一是停止错误屏幕,通常称为蓝屏死机(BSoD)。在Mac OS X机器及其它基于BSD Unix的机器上,致命的系统错误的示例之一是内核错误(kernel panic)。在Linux机器上,致命的系统错误的示例之一是内核故障(kernel oops)。系统能够使用登录转发(login forwarding)来使加密密码与操作系统或其它密码同步。\n[0034] 系统能够允许用户在系统进行原位加密或解密驱动器时启动、停止及重启加密。\n当用户对卷的访问权已经被撤销时,基于用户在其具有访问权时已经获得了(或者至少有权访问)解开的卷密钥的假定,系统能够以新的使用密码的密钥来“更新(rekey)”驱动器的密钥。密钥更新降低了由于可能泄漏的密钥而危害数据的风险。系统能够将卷密钥隐藏(wrap)于密钥加密的密钥中,并且以零来隐藏该密钥加密的密钥。\n[0035] 在公开了某些基本的系统构件和加密原理之后,本公开现在转至图5所示的用于执行原位加密的示例性的方法实施例。为了清晰起见,依据诸如图1所示的被配置用于实践该方法的示例性系统来讨论该方法。系统100接收来自用户的对计算装置的未加密卷加密的请求(502)。该请求能够直接以加密卷为目标,或者能够是另一请求(诸如,建立用户帐号或者改变密码)的显式或隐式部分。系统100识别卷密钥(504A),基于请求而生成卷密钥(504B),随机选择,或者以其它方式获得与加密相关的使用密码的密钥。\n[0036] 系统100将未加密卷转换成可加密格式以得到被划分成多个部分的可加密卷(506)。这些部分能够是同一大小的或者能够自适应地调节大小。自适应地调节大小的部分能够基于未加密卷的物理特性,在未加密卷上运行的操作系统的属性,用户动作,性能考虑、功率消耗考虑、噪声考虑、热阈值考虑和/或计算装置的休眠状态中的至少一个。\n[0037] 系统100基于卷密钥来逐部分地加密可加密卷,以使得用户在加密期间能够使用计算装置(508)。系统能够通过以下操作来允许用户以正常的方式使用计算装置:当计算装置在单独部分正被加密的同时请求与该单独部分的信息交换时,将任何信息交换请求重新指向该单独部分的临时副本。系统能够通过线性途径、随机途径、未使用部分途径和/或重要性次序途径来加密可加密卷。系统能够在可加密卷上保留工作空间,并且通过在各单独部分被加密时将各单独部分的副本存储于工作空间,来逐部分地加密可加密卷。工作空间还能够存储文件系统元数据。将未加密卷转换成可加密格式可以包缩小未加密卷以给工作空间腾出空间。系统能够通过以下操作逐部分地加密可加密卷:读取单独部分,将该单独部分的副本存储于存储器内,对在存储器内的该单独部分的副本加密以得出已加密的单独部分,创建该单独部分的临时副本。系统将已加密部分存储于临时位置内,并且该临时位置变为已加密的单独部分的永久位置,而原先的未加密部分变为临时位置以保持另一部分的加密版本。\n[0038] 系统能够保持加密进度状态并且给用户显示加密进度状态,诸如,进度条、百分比、在驱动器上的已加密部分对未加密部分的代表物理配置的图表、剩余的块、加密的字节等。加密进度状态还能够包括估计的完成时间、加密耗用的CPU时间和/或其它统计结果。\n[0039] 为了允许用户继续按正常的方式使用计算装置,系统能够监视用户对可加密卷的盘存取,并且当用户的盘存取超过第一阈值时,应用回退算法以暂时停止加密,直到用户盘存取降到第二阈值以下。这可能是有帮助的,因为加密操作将会是非常盘I/O集中的,这会减慢用户发起的操作。\n[0040] 在另一种实施例中,系统是一种计算装置,具有:处理器、具有至少一个分区的存储装置,以及用于控制处理器且位于存储装置的所述至少一个分区的至少一部分上的操作系统。该计算装置包括被配置用于控制处理器以通过以下操作来加密所述至少一个分区的未加密分区的加密模块:接收来自用户的加密请求,识别加密卷密钥,将未加密分区转换成可加密格式以得到被划分成多个区域的可加密分区,并且基于加密卷密钥逐个区域地加密可加密分区以使得用户能够在加密期间使用计算装置。该计算装置能够包括被配置用于控制处理器以通过以下操作来解密所述至少一个分区的已加密分区的解密模块:接收解密请求,检索与已加密分区相关的解密卷密钥,并且基于解密卷密钥逐个块地解密已加密分区以使得用户能够在解密期间如同已加密分区已经被解密那样地来使用计算装置。\n[0041] 本发明公开了一种用于执行原位解密的系统,该系统具有至少被部分地加密且被划分成多个部分的存储卷。该系统包括第一模块,其被配置用于控制处理器以接收与存储卷相关的卷密钥,以及第二模块,其被配置用于控制处理器以基于卷密钥来逐部分地解密存储卷,以使得用户在解密时能够如同存储卷已经被解密那样来使用存储卷。该系统能够包括第三模块,其被配置用于控制处理器以将卷密钥存储于由引导加载器读取的存储器内,使得当引导加载器在系统引导时首次运行时,引导加载器读取卷密钥,基于卷密钥来提供对存储卷的剩余已加密部分的访问,并且使系统在关机前停止解密的相同位置继续基于卷密钥逐部分地解密存储卷的剩余已加密部分。\n[0042] 本文所公开的途径允许用户启动存储装置的加密,并且在系统处于加密存储装置的处理中时仍然继续使用存储于存储装置上的软件(诸如,操作系统或其它应用)。这种途径减少了创建已加密驱动器的初始障碍,使得用户能够更容易地利用整盘加密的安全性及隐私的利益。\n[0043] 在本公开的范围内的实施例还可以包括用于携带或使计算机可执行的指令或数据结构存储于其上的实体的和/或非临时性的计算机可读存储介质。此类非临时性计算机可读存储介质可以是能够由通用或专用计算机访问的任何可获得的介质,包括以上所讨论的任何专用处理器的功能设计。举例来说(但不作限定),此类非临时性计算机可读介质能够包括:RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储装置,或者能够用来携带或存储形式为计算机可读指令、数据结构或处理器芯片设计的所期望的程序代码装置的其它任何介质。当通过网络或者另一种到计算机的通信连接(硬连线的、无线的,或者它们的组合)来传输或提供信息时,计算机适当地将该连接视为计算机可读介质。因而,任何此类连接都被适当地称为计算机可读介质。上面的组合同样应当包含于计算机可读介质的范围之内。\n[0044] 计算机可执行指令包括:例如用于促使通用计算机、专用计算机或专用处理装置执行某一功能或功能组的指令和数据。计算机可执行指令还包括由计算机在独立或网络的环境下执行的程序模块。一般地,程序模块包括例程、程序、构件、数据结构、对象以及在用于执行特定任务或者实现特定的抽象数据类型的专用处理器等的设计内所固有的功能。计算机可执行指令、相关的数据结构及程序模块代表用于执行本文所公开的方法的步骤的程序代码装置的示例。此类可执行指令或相关数据结构的特定序列代表用于实现此类步骤所描述的功能的对应动作的示例。\n[0045] 本领域技术人员应当领会,本公开的其它实施例能够在具有许多类型的计算机系统配置的网络计算环境中实现,这些计算机系统配置包括个人计算机、手持式装置、多处理器系统、基于微处理器的或可编程的消费者电子产品、网络PC、微计算机、大型计算机等。实施例还可以在分布式计算环境中实现,在分布式计算环境中,任务由通过通信网络链接(通过硬连线链路、无线链路,或者通过它们的组合)的本地或远程的处理装置来执行。在分布式计算环境中,程序模块可以位于本地及远程存储器存储装置两者上。\n[0046] 以上所描述的各种实施例仅通过示例来提供,并且不应被解释为对本公开内容的范围的限定。本领域技术人员应当容易地意识到可以在不遵循本文所示出及描述的示例实施例和应用的情况下并且在不脱离本公开的精神和范围的情况下对本文所描述的原理进行的各种修改和更改。
法律信息
- 2016-08-03
- 2013-10-16
实质审查的生效
IPC(主分类): G06F 21/78
专利申请号: 201280004685.6
申请日: 2012.01.04
- 2013-09-11
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2010-09-08
|
2010-02-26
| | |
2
| |
2009-01-21
|
2008-07-16
| | |
3
| | 暂无 |
2002-07-01
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |