专利名称:对一组存储设备进行数据加密和数据访问的系统和方法
对一组存储设备进行数据加密和数据访问的系统和方法技术领域本公开总地涉及通过硬件密钥对 一组存储设备进行数据加密和数据访 问的系统和方法。
背景技术:
随着移动电子设备使用的增加,存储在存储设备上的数据的安全性已经 变得非常重要,因为一旦对电子设备进行未授权的访问,个人隐私和机密将会受到危害。虽然密码(例如操作系统的登录密码、BIOS密码等)防止未 授权的使用者登录到主机(例如,膝上电脑),但是一旦将存储设备从主机 系统移除,那么就可能危及存储设备的内容。例如,数据黑客可以物理地移 除存储设备,并将其移动到该数据黑客有权访问的另 一主机设备。于是,就需要一种安全技术,能对存储在待使用的存储设备上的数据进 行加密,从而即使在主机上的操作系统未激活的情况下也可以保护存储设备 上的数据。例如,如果试图直接从该存储设备读取数据,则在解密待访问的 存储设备上的数据之前,先要对访问请求进行授权。此外,对存储设备上的数据进行加密的加密密钥的存储位置影响被加密 的存储设备的安全。如果该加密密钥存储在主机中的存储设备上,当主机丟 失或被盗时,可能危及加密密钥的安全。例如,如果直接读取存储设备上的 数据,并且加密密钥的存储位置为黑客所知。由于加密密钥位于系统中,所 以可能危及数据安全。另外,对于存储系统来说,数据完整性、容错、吞吐量和存储容量也很 重要。这样,独立磁盘冗余阵列(RAID)可以用于在多个硬盘驱动器之间 共享或复制数据。进一步, 一组硬盘驱动器可以组合成单个逻辑单元。由于多个硬盘驱动器的阵列的数据容量,通过加密的数据的安全性可以显著地提 高系统可靠性,并降低数据被盗的风险。发明内容此处描述了通过硬件密钥对一组存储设备进行数据加密和数据访问的 系统和方法。本节中概述本发明的某些实施例。一个实施例包括硬件密钥截取从主机发往存储设备的请求,该请求用 于访问存储在一组存储设备的一个存储设备上的数据,其中存储在所述存储 设备上的所述数据已经被加密。所述硬件密钥被配置为插入主机的端口,并 且控制对该组存储设备的数据访问。所述硬件密钥翻译所述请求,并且向该密钥提供加密密钥以破译来自该组存储设备的所述那个存储设备的经加密 的数据。在一个实施例中,该组存储设备包括独立;兹盘冗余阵列(RAID) 子系统。在一个实施例中,硬件密钥进一步截取来自所述存储设备的答复,所述 答复包括来自所述存储设备的经加密的数据;并且所述硬件密钥使用所述加 密密钥来破译经加密的数据。进一步,在一个实施例中,硬件密钥包括USB 密钥。本公开包括方法和执行这些方法的装置,包括执行这些方法的处理系统 和计算机可读介质,所述计算机可读介质在处理系统上执行时促使该系统执4亍这些方法。从附图和以下的详细描述中,本发明的其他特征将变得显而易见。
本公开通过示例而非限制的方式在附图中阐明,其中相同的附图标记指 示相似的元件。图1图示一组存储设备的示例,根据一个实施例,所述存储设备通过硬件密钥与主机系统通信。图2图示根据一个实施例的主机系统的示例性分解视图,该主机系统通 过逻辑地连接到该主机系统的硬件密钥与 一组存储设备的至少 一个存储设 备通信。图3A是图示根据一个实施例为对一组存储设备的至少一个存储设备的数据加密和数据访问设置密码的过程的流程图。图3B是图示根据 一 个实施例对 一组存储设备的至少 一 个存储设备的数 据加密和数据访问进行授权的过程的流程图。图3 C是图示根据 一 个实施例识别丢失或被盗的便携式设备的过程的流程图。图4A是描述图3B所示过程的示例的图表。图4B是进一步描述图3B所示过程的示例的图表。图5是根据一个实施例的硬件密钥的分解视图。图6图示根据一个实施例的第一屏幕截图。图7图示根据一个实施例的第二屏幕截图。图8A图示根据一个实施例的第三屏幕截图。图8B图示根据一个实施例的第四屏幕截图。图8C图示根据一个实施例的第五屏幕截图。图9图示根据一个实施例的第六屏幕截图。图10图示根据一个实施例的机器可读介质的方框图。
具体实施方式
以下的描述和附图均为示意性的,而不应解释为限制性的。若干特定的 细节被描述来提供对本公开的详尽理解。然而,在某些例子中,不描述公知 的或传统的细节,从而避免使描述难以理解。对本公开中的一个实施例或一 实施例的引用可以是,但并非一定是,对同一实施例的引用;并且,这样的 引用意味着至少一个。在本申请文件中,对"一个实施例"或"一实施例"的引用意味着结合 该实施例所描述的特定的特征、结构或特性包括在本公开的至少一个实施例 中。在申请文件的不同位置出现的短语"在一个实施例中"并不必然全都引所描述的各种特征在某些实施例中可能展现,但在其他实施例中可能不展 现。类似地,所描述的各种要求在某些实施例中可能是要求,而在其他实施 例中可能不是要求。本公开的实施例包括通过硬件密钥对 一 组存储器进行数据加密和数据 访问的系统和方法。随着诸如个人计算机/膝上电脑的处理设备广泛地用于存储密集性任 务,例如视频和音频编辑,对大存储容量系统的要求也变得突出。这样,为了实现容错和高性能的大容量存储系统,RAID配置可以用在服务器和/或个 人计算机上。RAID (独立磁盘冗余阵列)配置将多个硬盘驱动器组合成由操作系统 所见的单个逻辑单元。进一步,不同等级的RAID配置可以提供不同等级的 数据镜像或数据条带。RAID存储配置可以使用IDE/ATA、 SATA、 e-SATA、 SCSI、光纤通道、iSCSI、高速SCSI、和/或PCI接口等的至少一个连接到 主机系统。此外,RAID控制器可以连接到主机系统和所述RAID配置的多 个存储设备,以便将多个存储设备向主机系统呈现为一逻辑单元。例如, RAID适配器可以嵌入在主机系统中(例如,在主板上)或作为单独的外接 附件(例如,扩展卡、USB密钥等)。通过硬件模块对存储或者待存储在存储设备阵列的至少一个存储设备 上的数据进行加密,提供一种安全的方式,从而通过对存储设备阵列(例如, RAID阵列)的数据进行加密来保护隐私和机密。诸如磁盘驱动器的存储设 备上的现有数据可以通过加密得到保护。数据加密可以通过逻辑地连接到所 述存储设备阵列和主机系统的硬件密钥来执行。对已加密存储设备的访问可 以通过将硬件密钥物理地连接到主机和存储设备阵列来获得。例如,硬件密钥可以包括至少两个接口 , 一个用于连接到主机系统,另 一个用于连接到存储设备阵列。在一个实施例中,连接到主机系统的接口可以使用USB接口、串行接口、并行接口、火线接口等。连接到存储设备阵 列的接口可以是IDE/ATA、 SATA、 e-SATA、 SCSI、光纤通道、iSCSI、高 速SCSI、和/或PCI接口中的至少一种。在一个实施例中,加密密钥存储在诸如硬件密钥的、可以从主机移除的 硬件设备上,或者加密密钥由硬件设备在别处进行访问。加密密钥可以存储 在存储器、非易失性存储器、闪存或硬件密钥的离散逻辑中。在一个实施例 中,硬件密钥翻译请求,并且向一组存储设备的至少一个存储设备发送命令 以访问经加密的数据。如果硬件密钥接收到从存储设备读取数据的命令,那么可以生成需要密 码的提醒。当提供了正确的密码时,所请求的数据从存储设备读取并且被破 译(例如,被解密)。类似地,如果接收到擦除存储设备上数据的请求,那 么也可以向使用者请求密码。例如,硬件密钥可以在存储器中存储至少加密密钥。所述至少一个加密 密钥对应于存储设备、文件、或文件夹,其中存储的数据用加密密钥进行加 密。在一个实施例中,由位于硬件密钥中的控制器帮助进行加密密钥管理。在一个实施例中,RAID子系统通过AT嵌入式(ATA)接口连接到硬 件密钥。根据一个实施例,当硬件密钥接收到对一组存储设备的存储设备上 的数据进行访问的请求时,硬件密钥提供加密密钥来破译待发送回生成所述 请求的主机系统的数据。在一个实施例中, 一组存储设备包括独立磁盘冗余阵列(RAID)子系 统。在一个实施例中,硬件密钥截取来自存储设备的答复,所述答复包括来 自存储设备的已加密数据;硬件密钥使用加密密钥来破译所述已加密数据。 在一个实施例中,硬件密钥包括USB密钥。存储在存储设备上的被请求数 据可以以任何合适的加密算法加密。例如,可以使用的加密算法包括但不限 于数据加密标准(DES/3DES) 、 Blowfish、国际数据加密算法(IDEA)、软件优化加密算法(SEAL) 、 RC4、高级加密标准(AES)等。根据一个实施例,当接收到保护存储设备的命令时,启动密码设置过程。 初始的设置过程使使用者可以设置一个以上的密码来访问(例如,加密、破 译、删除、备份等)存储设备上的数据。根据一个实施例,可以为系统的不 同使用者设置不同的访问级别(例如,读取/写入/擦除的权限)。例如,系 统管理员可以被授权为对来自存储设备的数据加密和破译。系统管理员还拥 有用不同的加密密钥启动重加密的权限。被授权的使用者可以拥有从已加密 驱动器读取(或破译)数据的权限。根据 一 个实施例,通过提供一 与预定密码匹配的密码来获得对被保护的 存储设备上的已加密数据的访问。通过提供所述预定的密码,可以访问到用 于对被保护存储设备上的数据进行加密的加密密钥,从而破译所述已加密数 据。在一个实施例中,力。密密钥或加密密钥的被掩盖(masked)版本存储在 主机系统的至少一个存储设备上,位于存储设备的、在登录到操作系统之前 的引导期间可访问的预定位置。图1示出一组存储设备112A-N的示例,根据一个实施例,所述存储 设备通过硬件密钥110与主机系统106通信。一组存储设备112A-N包括至少一个硬盘驱动器、带有并行端口 (PATA)的硬盘驱动器、带有串行AT嵌入式端口 (SATA)的硬盘驱动器、 SCSI驱动器、光盘驱动器、磁盘驱动器、外部存储设备、诸如闪存设备的 半导体存储区、或者作为主机系统106外设的磁光存储设备。硬件密钥110 可以是插入到系统端口 (例如,并行、串行、USB、或火线端口)的设备。 在一个实施例中,硬件密钥100是可以在主机系统运转时从主才几系统插拔的 存储器设备。例如,硬件密钥可以是支持即插即用(热交换)的设备。此外,硬件密 钥110可以是能够执行加密和解密过程并存储所需软件代码的任何类型的 存储和/或记忆设备。在一个实施例中,在硬件密钥未连接到主机系统时, 不能访问主机系统的存储设备。在一个实施例中,硬件密钥是通过USB接口连接到主机系统的USB密钥。也可以使用其他类型的硬件密钥或接口 。在一个实施例中,硬件密钥包括控制器、存储控制器和具有加密模块的 处理单元、操作系统和/或硬件驱动器。在可替代的实施例中,硬件密钥可 以包括更少的部件或附加的部件。在一个实施例中,硬件密钥作为到其他设备的通道。当使用者想要退出 时,硬件密钥可以物理地从主机系统断开并保护系统。除非硬件密钥连接到 主机系统,否则不能重新获得访问。所以,位于硬件密钥中的加密密钥未存 储在系统本身中。在一个实施例中,当提供了预定的密码并且存储加密密钥 的硬件密钥连接到主机系统和待读取的存储设备时,硬件密钥上的加密密钥 是可访问的。在一个实施例中,硬件密钥截取从主机向一组(阵列)存储设备的至少 一个存储设备发送的请求。已经使用至少一个加密密钥对存储在存储设备上 的数据进行了加密,并且硬件密钥被配置为插入主机的端口。在一个实施例 中,硬件密钥进一步包括一单元,其使用该加密密钥破译来自存储设备的已 加密数据的单元,以及控制对所述一组存储设备的数据访问。例如,所述控制对一组存储设备的数据访问的单元包括控制RAID子系统的单元。硬件密钥可以存储至少一个用于保护存储设备的加密密钥。在一个实施例中, 一组存储设备的至少 一个存储设备已经由至少 一个加密密钥进行保护,并且所存储的加密密钥可以由主机在建立连接后进行访问。例如,控制器管理加密密钥和由该加密密钥保护的存储设备。在一个实施例中,在控制器或存储器的查找表中,将加密密钥与对应的用该加密密钥加密的存储设备相匹配。可以使用其他管理技术。加密模块可以包括用于存储至少一个用于保护任意数目存储设备的加密密钥的存储器。在一个实施例中,加密模块不存储加密密钥。相反,加密密钥从另一设备发送到硬件密钥110,用于数据解密。在一个实施例中,硬件密钥110通过主机系统106连接到一组存储设备112A-N。在一个实施例中,加密密钥以被掩盖的形式存储在硬件密钥上,从而使得如果硬件密钥丢失也不会危及加密密钥的机密性。此外,加密密钥以被掩 盖(例如,被加密、被掩盖、私钥/公钥轮询交换等)的形式在设备之间传 递,从而防止在传递被截取的情况下危及加密密钥的机密性。加密密钥可以以多种形式中的一种被掩盖(被掩饰)。例如,加密密钥 存储在硬件密钥上时,可以用由使用者设置的密码所确定的私钥进行加密。 这样,在确认请求,例如使用者提供正确的密码后,可以对加密密钥去掩盖。 正确的密码可以提供对私钥的访问,也可以是用于对加密密钥进行掩盖的私 钥本身。此外,可以以预定的算法为基础对加密密钥进行哈希(hash)。预定的 算法可以是以预定的密码对加密密钥进行的操作(例如,布尔操作、算术操 作等)。这样,为了访问加密密钥的未哈希版本,使用者要提供预定的密码。 在一个实施例中,预定的密码使得对加密密钥进行预定的算法,以访问未哈 希版本。在一个实施例中,主机上的各文件具有不同的加密密钥。在一些实施例 中,各文件夹具有不同的加密密钥。在其他实施例中,用一个加密密钥加密 位于存储设备上的所有数据。文件特定加密密钥、文件夹特定加密密钥和/ 或分区特定加密密钥的组合可以在主机系统的存储设备或多个存储设备上 实施。向文件、文件夹、分区和/或存储设备分配加密密钥可以是自动的或 者是使用者指定的。此外,用于数据加密的加密密钥可以根据使用者请求或基于自动触发而 进行改变。在应用不同加密密钥之前,被加密的数据可以用在用不同的加密 密钥再次对同样的数据进行加密之前的,原始密钥进行解密。例如,自动触 发可以是基于事件的,所述事件例如是多次失败的登录尝试后的成功尝试。 自动触发也可以是基于时间的,例如当加密密钥已经使用了预定时间量的时 候。在一个实施例中,硬件密钥110是USB密钥,其能够插入主机系统上 的USB端口。例如,USB密钥可以是闪存驱动器,其可以移除和重写。根据一个实施例,硬件密钥110中的控制器是USB控制器。在一个实施例中,硬件密钥上的存储控制器(硬盘控制器)是RAID控 制器,用于管理连接到硬件密钥110的RAID阵列。 一般来说,存储控制器 可以是IED(PATA)、串行ATA、外部-SATA、 SCSI、和/或iSCSI接口适 配器。硬件密钥UO可以包括任意数目的带有上述适配器的任意组合的存储 控制器。主机系统106可以是支持存储设备102和具有各种逻辑配置的存储设备 阵列112A-N的任何类型的系统。例如,主机系统可以包括但不限于台 式计算机、诸如笔记本电脑的移动计算设备、膝上计算机、手持计算机、移 动电话、智能电话、PDA等。在一个实施例中,主机系统106可以连接到 网络108。在一个实施例中,存储设备阵列112A-N可以连接。在其他实施 例中,可以通过芯片组,使用嵌入主机系统操作系统的驱动器来重新定向已 加密数据,并将其重新定向到使用或不使用截取器104的内部存储设备。图2图示根据一个实施例的主机系统106的分解视图,该主机系统通过 硬件密钥110与一组存储设备112A-N通信,所述硬件密钥IIO通过主机 系统106的端口 208连接到该主机系统。在一个实施例中,主机系统106包括处理单元202、芯片组204、存储 器206、端口 208和I/0设备阵列,所述I/0设备可以包括键盘、指示设备、 声音系统和/或视频系统等。端口 208可以是以下的至少一种串行端口 (例 如RS - 232 )、并4亍端口 、以太网端口 、火线、和/或USB端口 。此外,端 口 208可以是虚拟端口 ,例如模拟物理串行端口的虛拟串行端口 。所图示的主机系统106是示例性概括,于是,在不脱离当前公开精神的 情况下可能有许多变化和修改。例如,存储器可以位于在本领域中公知为 "北"桥上;视频可以具有自己单独的北桥访问,1/0可以通过"南"桥连 接。在一个实施例中,端口 208通过芯片组204连接到主机系统106。 一组 存储设备112A - N还可以包括通过不同接口与硬件密钥通信的硬盘驱动器。硬件密钥1 10可以具有任意数目的适于与不同存储设备通信的存储控制器,其中存储设备例如是串行ATA ( SATA )、并行ATA ( PATA )接口 、火线、 SCSI或USB。在一个实施例中, 一组存储设备112A-N被配置为RAID阵 列,并且通过具有RAID控制器的硬件密钥IIO与主机系统通信。具有一组存储设备112A-N的硬件密钥IIO接口支持由不同存储设备 的规格决定的不同数据传送速率。例如,SATA接口支持1.5Gbits/s、 3Gbits/s 和6Gbits/s的数据速率。火线800和火线400总线也具有不同的数据传送速 率。图3A是图示根据一个实施例为对一组存储设备的至少一个存储设备的 数据加密和数据访问设置密码的过程的流程图300A。在过程302中,接收访问存储设备的第一请求。例如,当使用者试图登 录到新购买的膝上电脑(例如,主机系统)时,使用者生成第一请求以访问 新购买的膝上电脑的存储设备。此外,当使用者试图使用一组存储设备的至 少 一个存储设备时,使用者生成第 一请求来访问该存储设备。在一个实施例中,在使用者试图保护位于一组存储设备的至少一个存储 设备上的现有数据时,也生成访问所使用的存储设备的第一请求。该请求可 以基于安装在主机系统上的软件或连接到主机系统的硬件密钥来检测。第二操作系统。试图访问特定文件或文件夹也可以触发用于访问存储在存储 设备上的已加密数据的请求。此外,当系统或操作系统退出睡眠模式、省电 模式或超时时,可以自动或手动地生成请求。 一般来说,在系统引导或系统 重启期间将会自动地生成该请求。在过程304,使用者被提示设置至少一个密码和密码提示,如图6的示 例屏幕截图所示。硬件密钥(例如,USB密钥)可以在密码设置期间连接到 (例如,插入USB端口 )主机系统,因为在一个实施例中,加密密钥存储 在硬件密钥上。在一个实施例中,至少一个密码用来生成至少一个加密密钥, 以加密主机系统的一组存储设备的至少 一个存储设备上的数据。在一个实施例中,加密密钥是预定的,并且与之前由使用者为响应该请 求而设置的至少一个密码相关。此外,基于由使用者设置的至少一个密码, 预定的加密密钥可以进一步被掩盖(加密或哈希)。根据一个实施例, 一旦 以错误的密码试图登录失败,密码提示就将提供给使用者,如图9的示例屏 幕截图所示。根据一个实施例, 一旦初始设置过程完成并且预定的密码被提供,则待 写入存储设备的新数据可以在存储到存储设备之前被加密。此外,如果使用 者想要加密所使用的磁盘驱动器,已经存储在该磁盘驱动器上的数据可以被 移动到第二存储位置(例如,同一磁盘驱动器上的另一存储位置、另一存储 设备、系统存储器、存储器设备等)以便被加密,然后再移动回原始的存储 位置。在过程306,创建密码以及密码提示的哈希版本。可以创建密码和密码提示的哈希(或者以其他方式掩盖)版本,以便保护密码和密码提示。例如, 如果数据直接从存储设备或硬件密钥读取数据,密码将以被掩饰的形式出现。可以使用各种哈希算法。根据一个实施例,加密算法可以用来掩盖密码。 在过程308,密码和/或密码提示的哈希后(或通过任何算法掩饰后)的 版本存储在一组存储设备的至少一个存储设备的预定位置上或存储在硬件密钥的预定位置上。根据一个实施例,密码和/或提示的哈希版本存储在存 储设备上或硬件密钥上的、主机操作系统不可访问的扇区中。这样,在没有 首先提供正确密码的情况下,操作系统不能绕过对已加密数据的访问。在一 个实施例中,密码和/或密码提示的哈希版本存储在同 一 主机系统的另 一 存 储设备上。例如,对从设备的密码存储在主设备上。在过程310,存储在一组存储设备的至少一个存储设备上的用于加密数 据的加密密钥由密码确定,并且加密密钥与密码相关联用于将来的访问。在 一个实施例中,加密密钥根据密码生成,并存储在硬件密钥上。在一个实施 例中,加密密钥是预定的,并且可以基于以密码进行操作来被进一 步掩饰(例 如,被哈希或被加密),从而创建额外的保护层。在一个实施例中,密码是用于对加密密钥进行加密的私钥。因此,如果密码受到危及,由于特定的算 法对于黑客来说是未知的,所以加密密钥仍然能得到保护。在操作312中, 一组存储设备的至少一个存储设备上的数据用加密密钥进行加密。例如,如图7的示例屏幕截图所示,可以在窗口 702中所示的"源 驱动器(Source Drive:)"列表下选择要被保护的源驱动器。在一个实施例 中,可以选择"目的地驱动器(Destination Drive ),,(例如,从图7的"目 的地驱动器(Destination Drive )"窗口 704)来将数据从"源驱动器"移动 到该"目的地驱动器"。数据可以从源驱动器移动并且在目的地驱动器处被 加密。被加密的数据可以移动回源驱动器或者存储在目的地驱动器上。源驱 动器和目的地驱动器可以属于同一存储设备阵列(例如,在RAID配置中)。 在一个实施例中,源驱动器和目的地驱动器可以是作为单独的逻辑单元呈现 给主机系统的存储设备。在一个实施例中,不需要选择目的地驱动器。例如,源驱动器上的待加 密数据移动到待加密的同 一驱动器上的第二存储位置(例如,不同的分区)。 类似的,已加密的数据要么被移动回原始的存储位置,要么存储在源驱动器 上的第二存储位置。在一个实施例中,如果主机系统生成向一组存储设备的 至少 一 个存储设备写入数据的请求,数据在移动到存储设备之前先用加密密 钥进行加密。此外,数据可以在加密之前写入存储设备,稍后基于自动触发 或手动触发被加密。例如,在预定时间间隔内写入的数据被加密。类似地, 写入的预定量的数据(例如,5KB)可以同时被加密。图3B是图示根据一个实施例对一组存储设备的至少一个存储设备的数 据加密和数据访问进行授权的过程的流程图300B。在过程322,接收对存储设备或一组存储设备的存储设备进行访问的请 求。例如,该请求可以在一旦启动会话时被接收。会话可以响应于上电、暂 停结束或系统重启而被启动。还可以在当前是睡眠模式或省电模式而硬件密 钥插入主机系统端口后触发会话。对存储设备进行访问的请求还可以通过将 对应的^更件密钥插入主才几系统上的端口来启动。在一个实施例中,在访问存储设备的特定分区、文件夹或文件时生成请 求。进一步,还可以在访问位于存储设备的不同分区上的不同操作系统时生 成请求。在过程324,使用者被提示需要密码,如图8B的示例屏幕截图所示。 密码用于授权访问存储器上的数据。例如,密码可以是用于对存储在硬件密 钥上的至少一个加密密钥进行解密的私钥。此外,如上所述,密码可以用于 去掩盖(例如,解哈希)或执行其他操作来破译加密密钥。根据一个实施例, 多个密码可以用于 一个存储设备上的不同的文件、文件夹、操作系统或分区。在过程326中,基于预定的算法计算使用者所提交的密码的经哈希的版 本。根据一个实施例,可以使用加密算法。在过程328,存储在一组存储设 备的至少一个存储设备上或硬件密钥上的预定位置处的预定密码的经哈希 的版本被识别。在过程330中,预定密码的经哈希的版本或者以其他方式被 掩饰的版本与使用者所提交密码的经哈希的版本或者以其他方式被掩饰的 版本进行比较。在过程332,如果确定匹配,则可以访问加密密钥。在过程 334,从主机系统的使用者要访问的存储设备请求的数据被解密。在 一 个实施例中,在可以访问硬件密钥上的加密密钥以解密被保护数据 之前,由使用者提供预定的密码。例如,当硬件密钥接收到从存储设备读取 数据的请求时,在主机系统上向使用者生成密码请求。当接收与预定密码匹 配的密码时,可以访问^哽件密钥上的加密密钥。在一个实施例中,访问加密 密钥包括访问第二加密密钥以破译加密密钥。例如,正确的密码在从使用者 接收到时可以用于解密加密密钥本身。这样,加密密钥以被掩饰的形式存储 在硬件密钥上,从而提供额外的安全。在一个实施例中,该方法包括作为对接收到请求的响应,提示使用者 提供密码,并且作为对接收到与预定密码匹配的密码的响应,访问加密密钥 以破译存储在存储设备上的被请求的数据。例如,当主机系统退出睡眠模式 时,可以提示使用者在进一步使用主机系统之前提供正确的密码。在登录系统之前,使用者提供的密码与可访问的预定密码进行比较。在一个实施例中,预定的密码存储在待访问的存储设备的预定位置。例如,预 定的密码可以存储在可引导的存储设备的主引导记录中。在一个实施例中, 用于一个存储设备的预定密码可以存储在另一存储设备上。例如,在具有多 个存储设备的系统中,用于从存储设备的预定密码可以存储在主存储设备 上。根据 一 个实施例,正确的密码允许对用于加密存储设备上的数据的 一个 或若干个加密密钥进行访问。作为替换地,密码促进系统引导进入操作系统, 同时额外的密码使得一旦使用者登录到系统就可以对不同的分区、文件或文 件夹进行访问。在一个实施例中,正确的密码与加密密钥相关,以破译被请 求的数据。作为替换地,正确的密码与加密密钥的被掩盖版本(例如,经哈希的版 本)相关,并且正确的密码可以用于对加密密钥的被掩盖版本进行去掩盖。 在一个实施例中,正确的密码用于识别对加密密钥的被掩盖版本进行去掩盖 的额外密钥。例如,访问加密密钥包括访问第二加密密钥来破译加密密钥。图3 C是图示根据 一 个实施例识别丢失或被盗的便携式设备的过程的流程图300C。在过程330,预定密码的经哈希的版本与使用者所提交密码的经哈希的 版本(或者以其他方式被掩饰的版本)进行比较。可选地选择挑战/响应方 法来保护数据的不可重复性。如果识别出错配,确定在预定密码和所提交密 码之间发生错配的次数。在操作342中,如果该次数尚未超出预定的门限, 则再次提示使用者要求密码和/或密码提示。例如,如图8C的示例屏幕截图 800C所示,输入了无效密钥,使用者可以选择重试或退出。在过程344,如果所述次数超出了预定的门限,那么如果系统连接到网 络,则向网络服务器报告主机系统的IP地址。在一个实施例中,也可以广 ,燔主^L系统的唯一标识符,例如MAC地址、用户名、工作组名,并且将该 标识符与IP地址相关联。主机系统标识符和IP地址可以公布在网站上,以便丢失电子设备的个人可以查看是否有人试图访问其设备。如果有,那么所公布的IP地址可以向它们提供关于其所丟失设备行踪的信息。在一个实施例中,如果主机系统在试图登录失败时未连接到网络,可以 保存失败尝试的指示符,并在下次系统连接到网络上时广播该指示符。除了 向网站报告IP地址之外,可以在试图登录失败的情况下,向使用者指定的 电子邮件地址发送通知。该电子邮件可以报告诸如试图登录失败的次数、试 图登录所使用的密码、系统状态、当前可能获得的系统IP地址等的信息。 在一个实施例中,当任何访问请求失败时,都可以发送电子邮件通知。例如, 如果发生试图访问特定文件或文件夹失败,则可以向使用者指定的电子邮件 地址发送电子邮件。图4A是描述图3B所示过程示例的交互图表,其图示根据一个实施例, 在一组存储设备的至少 一个存储设备、硬件密钥和主机系统之间为了对一组 存储设备的数据访问进行密码授权而进行的交互。在过程402中,使用者启动会话的第一访问,并且主机系统向硬件密钥 发送请求。硬件密钥将该请求识别为该会话的第一请求。根据一个实施例, 在上电、超时、重启或其他终结前一会话的触发之后,或者在硬件密钥初始 地插入主机系统时,可能要求开始会话。在过程404中,硬件密钥从硬件密 钥本身的预定位置取回密钥的已加密版本。在过程406中,确定密钥的位置。在过程408中,使用例如USB即插即用特征,在主机系统上启动驱动 器的加载。在过程410中,硬件密钥为主机系统生成请求,以提示使用者需 要密码。在过程412中,使用者被提示需要密码。在使用者输入密码之后, 在过程414中,系统确定该密码是否匹配期望值。还可以使用加密算法(例 如,DES/3DESBlowFish、 AES或其他合适的加密方法)或其他对加密密钥 进行掩饰的方法对在过程406中耳又回的加密密钥进行加密。如果密码匹配, 加密密钥,皮解锁,然后可以用该加密密钥,使用诸如AES或其他合适协议 的加密算法来破译或加密数据。在过程420中,过程跳转到图4B的过程。在一个实施例中,如果密码不匹配,过程回转到过程410,再次提示使 用者需要密码。在预定数目的试图匹配密码失败之后,主机系统可以终结会话(例如,通过超时或系统重启)。在一个实施例中,向使用者提供提示或 提示问题以便帮助记起密码或允许跳过解锁。在一个实施例中,可以获得主 加密密钥,然后以主密码访问主加密密钥,以访问已加密的驱动器。图4B是进一步描述如图3B所示过程的示例的交互图表,其示出根据 一个实施例,在一组存储设备的至少一个存储设备、硬件密钥和主机系统之 间为数据访问该组存储设备进行的交互。在过程452中,主机系统发送命令"获取数据(Get Data)"。在过程 454中,硬件密钥接收"获取数据(Get Data)"的命令。在过程456中, 硬件密钥翻译"获取数据(Get Data)"的命令。在过程458中,"获取数 据(Get Data)"的命令被发送到硬件密钥上的存储控制器(例如,磁盘驱 动器控制器、RAID控制器等)。在过程460中,存储设备阵列接收和翻译该命令。在过程462中,响应 于"获取数据"的命令,取回所请求的数据。在过程464中,存储设备阵列 的至少一个存储设备将具有所请求数据的答复发送回主机。在过程466中, 通过以合适的算法(例如,诸如DES/3DES、 Blowfish、 AES等的加密算法) 进行解密来破译所取回的数据,并且所取回的数据被发送给存储控制器。所 取回的数据可以在被硬件密钥解密之前或解密之后被发送到存储控制器。根 据所使用的算法,可以使用加密密钥来破译所取回的数据。在一些情况下,通过发送仿真的命令(未示出)可以从主机传送加密密 钥,所述仿真的命令包括不可由硬盘驱动器翻译的参数,但该仿真的命令可 由硬件密钥截取并据此翻译成例如接收密钥的命令。在一个实施例中,加密 密钥以加密的形式发送。在过程468中,从存储设备接收到的被请求数据的解密版本被发送给主 机系统。在过程470中,获取来自一组存储设备的至少一个存储设备的被请 求数据的解密版本。在一个实施例中,自动备份软件可以通过加密函数(例 如AES )功能来对一组存储设备的至少一个存储设备上的数据进行备份。例如,存储设备一存储位置处的未加密数据可以暂时移动到第二存储位置以便被加密,然后被移动回原始的存储位置。在一个实施例中,第二存储 位置是同一存储设备上的不同存储位置。在一个实施例中,第二存储位置是 同一存储阵列的不同存储设备或不同的存储阵列。在一个实施例中,可以用 多次随机重写来移除原始(例如,未加密)数据,从而擦除未加密数据以便 存储设备上的数据被加密。图5是根据一个实施例的具有处理单元502、控制器504、存储控制器 508的硬件密钥IIO的分解视图。在一个实施例中,硬件密钥是USB适配器,而控制器504是USB控制 器。处理单元502可以包括多种软件实例,例如加密模块、操作系统和/或 存储设备驱动器。存储控制器508可以是硬盘控制器,例如IDE、串行ATA、 e-SATA、 SCSI控制器。例如,存储控制器使得硬件密钥110可以逻辑地连接到外部存储设备阵 列。在一个实施例中,外部存储设备阵列是RAID配置。通过IDE、串行 ATA、 e-SATA、 SCSI接口中的至少 一个,存储设备可以连接到硬件密钥110。 在一个实施例中,硬件密钥110包括任意数目的具有不同接口组合的存储控 制器,并且能够以不同的接口逻辑地连接到多个存储设备。在一个实施例中,外部存储设备阵列由外部电源供电。外部存储设备阵 列可以是超低功率设备,从而可以通过硬件密钥与主机系统的连接来吸取功 率。加密模块包括用于执行至少一个加密算法来保护和破译存储在一组存 储设备的至少一个存储设备上的数据的代码。在一个实施例中,不同的加密 算法可以用于不同的存储设备,而且控制器能够将相关的加密算法与一组存 储设备的至少 一个存储设备关联,所述存储设备以该加密算法加密。在一个实施例中,硬件密钥110包括存储器(例如,非易失性、闪存或 离散逻辑等)来存储至少一个加密密钥,该加密密钥与至少一个加密算法一 起使用以保护至少一个存储设备。作为替换地,在硬件密钥110的加密/解 密过程中,加密密钥由硬件密钥IIO的替代设备提供。例如, 一旦授权,至少一个加密密钥可以发送到硬件密钥110。所述授权可以采取许多形式的一 种,例如,根据一个实施例,可以是识别主机系统使用者身份的密码授权。图6图示根据一个实施例示出创建密码或改变密码的界面的屏幕截图600。屏幕截图600示出用于密码维护的安全访问屏幕。在一个实施例中,安 全访问屏幕包括选择框"使密码安全无效(Disable Password Security )", 用于使在访问存储设备以登录到操作系统或访问存储设备上的数据之前进 行的密码鉴权无效。例如,如果"使密码安全无效(Disable Password Security)"框被选中,则在登录到主机系统或设置主机系统之前,无需填 写密码域和提示域。在这种情况下,存储在存储设备上的数据可能未被加密。 或者,存储在存储设备上的数据可以被加密,但是可以在数据访问之前未提 供密码的情况下得到加密密钥来进行解密。在 一 个实施例中,通过在"新密码(New Word )"和"确认新密码(Confirm New Password)"域中输入期望的密码来设置新密码,以保护存储设备。在 这种情况下可以将"当前密码(Current Password ),,域留空。在一 个实施例 中,通过在"当前密码(Current Password )"域中^是供正确的密码并且在"新 密码(New Word)"和"确认新密码(Confirm New Password )"域中输入 期望的密码,可以改变现有的密码。"提示(Hint)"域可以用于输入一只有使用者知道答案的问题。可以 在使用者忘记密码时,例如,当错误的密码被输入以预定的次数时,提出该 问题。,"提示(Hint)"域也可以用于输入密码提示,例如"密码与多利姑 妈的生日有关",以便向使用者提示密码。在一个实施例中,在提交错误密 码达到预定次数之前,使用者可以指示他或她忘记了密码,并且请求查看密 码提示。图7图示根据一个实施例示出保护存储设备的界面的屏幕截图700。 屏幕截图700图示通过对存储设备上的数据进行数据加密来保护存储 设备的示例。在一个实施例中,从子窗口 702下列出的存储设备列表中选择源驱动器(例如,将要通过数据加密保护的存储区),并从子窗口 704下列 出的存储设备列表中选择目的地驱动器。例如,源驱动器是具有待保护数据 的存储设备。源驱动器上的数据可以被加密,然后被移动到目的地驱动器以 便存储。在一个实施例中,源驱动器上的数据可以移动到目的地驱动器以便 加密,并从源驱动器擦除。然后,加密后的数据可以移回源驱动器以便存储。 在一个实施例中,过程中涉及一个存储设备(例如,源驱动器)。例如, 源驱动器上的待加密数据被移动到另 一存储位置以便加密。根据 一 个实施 例,未受保护的数据在源存储位置上被擦除,并且存储在其他存储位置上的 已加密数据可以被移动回原始存储位置以便存储。图8A图示根据一个实施例的示出访问被保护存储设备的登录屏幕的界 面的屏幕截图800。屏幕截图800示出用于对访问存储设备上的数据进行鉴权的两个级别 安全访问的示例。在一个实施例中,在准予访问存储设备之前,要在"密码 (Password)"域中输入预定的密码。在一个实施例中,在准予访问存储设 备之前,除了正确的密码以外,位图窗口中所示的文本要被输入到"位图窗 口 (Bitmap Window),,域。 一旦填写了 "密码(Password),,域,可以点 击"登录(Login)"图标来验证访问,并在成功验证后准予访问。图8B图示根据一个实施例的示出具有密码提示的登录屏幕的界面的屏 幕截图800B。根据一个实施例,要在"请输入密码(Please Enter Password )"域中输 入预定的密码来访问系统(例如,登录到至少一个操作系统和/或访问至少 一个存储设备)。图8C图示根据一个实施例的以在图8B中输入无效密码为原因的未成 功登录的屏幕截图800E。根据一个实施例, 一旦没有成功登录,使用者可以选择退出或重试。可 以存在使用者提交无效密码的预定次数。当达到该预定次数时,系统可以退 出或者向使用者提供密码提示,如图9的实施例所示。图9图示根据一个实施例的示出显示密码提示屏幕的界面的屏幕截图。屏幕截图900示出向使用者示出密码提示的提示示例。如果该使用者忘记了密码,可以由使用者请求密码提示。在一个实施例中,密码提示在发生 预定次数的不正确密码提交时被触发。例如,如果使用者提交三次不正确密 码,那么系统可以提供在密码设置期间指定的密码提示。图10以示例性形式示出计算机系统1000的机器的图形表示,在该计算 机系统1000中,可以执行一组指令,以使该机器执行上述方法中的任意一 个或更多个。在可替换的实施例中,机器作为独立设备运行,或者可以连接 (例如,被联网)到其他机器。在联网的布局中,在客户端-服务器网络环 境下,机器可以作为服务器或客户端机器运行,或者在点到点(或分布式) 网络环境下,机器可以作为点机器运行。机器可以是服务器计算机、客户端 计算机、个人计算机(PC)、图形输入板计算机、机顶盒(STB)、个人数 字助理(PDA)、蜂窝电话、网络器具、网络路由器、交换机或网桥、或任 何能够执行一组(顺序的或其他方式的)指令的机器,所述指令指定要由机 器执行的动作。虽然在示例性实施例中将机器可读介质1022示出为单个介质,但是术 语"机器可读介质"应该被视为包括存储至少一组指令的单个介质或多个介 质(例如,集中式或分布式数据库、和/或相关的高速緩冲存储器和服务器)。 术语"机器可读介质"应该被视为包括任何存储介质,其能够存储、编码或 承载一组由机器执行并促使机器执行本发明的至少一个方法的指令。 一般来 说,被执行以实施本公开实施例的例程可以作为操作系统的 一 部分或作为被 称为"计算机程序"的特定应用程序、部件、程序、对象、模块或指令序列 的 一部分来实施。计算机程序通常包括计算机中的不同存储器和存储设备中 的不同时间处的至少一个指令集,所述指令集在被计算机中的至少一个处理 器读取和执行时,促使该计算机进行操作以执行涉及本公开各方面的元素。此外,虽然已经在完全功能化的计算机和计算机系统的场合中描述了实 施例,但是本领域技术人员将理解,各实施例能够以各种形式作为程序产品发布,并且不管用于实际上影响所述发布的机器或计算机可读介质的特定形 式如何,本公开都同样有效。计算机可读介质的示例包括但不限于除了别的 之外,诸如易失性和非易失性存储器设备、软盘和其他可移除磁盘、硬盘驱动器、光盘(例如,CD只读存储器(CD ROMS))、数字万能盘(DVD) 等的可记录型介质,以及诸如数字和模拟通信链路的传输型介质。虽然已经参照具体示例性实施例描述了实施例,显然可以对这些实施例 进行各种修改和改变。因此,说明书和附图应被视作示意性意义而不是限制 性意义。以上说明书提供了参照具体示例性实施例的描述。显然可以对其各 种修改而不脱离权利要求中所给出的更宽的精神和范围。说明书和附图因此 应被视为示意性意义而不是限制性意义。
权利要求
1、一种方法,包括硬件密钥截取从主机发往存储设备的请求,该请求用于访问存储在一组存储设备的一个存储设备上的数据,其中存储在所述那个存储设备上的数据已经被加密,所述硬件密钥被配置为插入所述主机的端口并且包括用于控制对该组存储设备的数据访问的单元;硬件密钥翻译所述请求,并且向该组存储设备中的所述那个存储设备发送命令以访问经加密的数据;和硬件密钥提供加密密钥以破译来自该组存储设备的所述那个存储设备的经加密的数据。
2、 根据权利要求1所述的方法,其中该组存储设备包括独立磁盘冗余阵列 (RAID)子系统。
3、 根据权利要求2所述的方法,其中所述控制对该组存储设备的数据访问 的单元包括控制所述RAID子系统的单元。
4、 根据权利要求3所述的方法,其中所述控制RAID子系统的单元包括控 制器和软件实例中的一个。
5、 根据权利要求3所述的方法,其中所述RAID子系统通过AT嵌入式 (ATA)接口连接到所述硬件密钥。
6、 根据权利要求5所述的方法,进一步包括硬件密钥截取来自所述存储设备的答复,所述答复包括来自所述存储设备 的经加密的数据;和硬件密钥使用所述加密密钥来破译所述经加密的数据。
7、 根据权利要求6所述的方法,其中所述硬件密钥包括USB密钥。
8、 根据权利要求6所述的方法,其中访问所述加密密钥包括访问一单独的 加密密钥来破译用于破译所述经加密的数据的加密密钥。
9、 硬件密钥,包括用于截取从主机发往存储设备的请求的单元,所述请求用于访问存储在一 组存储设备的 一个存储设备上的数据,其中存储在所述那个存储设备上的所述 数据已经被加密,所述硬件密钥被配置为插入所述主机的端口并且包括用于控制对该组存储设备的数据访问的单元;加密的数据的单元;和提供加密密钥以破译来自该组存储设备的所述那个存储设备的经加密的数 据的单元。
10、 根据权利要求9所述的硬件密钥,其可与独立磁盘冗余阵列(RAID) 子系统一起操作。
11、 根据权利要求IO所述的硬件密钥,其中所述控制对该组存储设备的数 据访问的单元包括控制所述RAID子系统的单元。
12、 根据权利要求11所述的硬件密钥,其中所述控制RAID子系统的单元 包括控制器和软件实例中的一个。
13、 根据权利要求11所述的硬件密钥,其中所述RAID子系统通过AT嵌 入式(ATA)接口连接到所述硬件密钥。
14、 根据权利要求13所述的硬件密钥,进一步包括 硬件密钥;和用于截取来自所述存储设备的答复的单元,所述答复包括来自所述存储设 备的经加密的数据,并且该单元还用于破译所述经加密的数据。
15、 根据权利要求14所述的硬件密钥,其中所述硬件密钥包括USB密钥。
16、 根据权利要求14所述的硬件密钥,其中所述提供加密密钥的单元包括 一用于访问 一单独的加密密钥以破译用于破译所述经加密的数据的加密密钥的 单元。
17、 一种机器可读介质,存储有指令集,该指令集在被执行时进行包括以 下步骤的方法硬件密钥截取从主机发往存储设备的请求,该请求用于访问存储在一组存储设备的 一个存储设备上的数据,其中存储在所述那个存储设备上的所述数据 已经被加密,所述硬件密钥被配置为插入所述主机的端口并且包括用于控制对该组存储设备的数据访问的单元;硬件密钥翻译所述请求,并且向该组存储设备中的所述那个存储设备发送命令以访问经加密的数据;和硬件密钥提供所述加密密钥以破译来自该组存储设备的所述那个存储设备 的经加密的数据。
18、 根据权利要求17所述的机器可读介质,其中该组存储设备包括独立磁 盘冗余阵列(RAID)子系统。
19、 根据权利要求17所述的机器可读介质,进一步包括 硬件密钥截取来自所述存储设备的答复,所述答复包括来自所述存储设备的经加密的数据;并且硬件密钥使用所述加密密钥来破译所述经加密的数据。
20、 根据权利要求19所述的机器可读介质,其中访问所述加密密钥包括访 问 一单独的加密密钥来破译用于破译所述经加密的数据的加密密钥。
21、 一种计算机程序,当在包括主机、硬件密钥和一组存储设备的系统上 运行时,使该系统实施权利要求1 - 8中任意一项所述的方法。
22、 一种载体,承载根据权利要求21所述的程序。
23、 根据权利要求22所述的载体,该载体是机器可读介质。
全文摘要
此处描述了通过硬件密钥进行存储设备的数据加密和数据访问的系统和方法。一个实施例包括硬件密钥截取从主机发往存储设备的请求,该请求用于访问存储在一组存储设备的一个存储设备上的数据,其中存储在所述存储设备上的所述数据已经被加密。所述硬件密钥被配置为插入主机的端口并且包括用于控制对该组存储设备的数据访问的单元。所述硬件密钥翻译所述请求,并且向该组存储设备中所述的那个存储设备发送命令,以访问已加密数据。所述硬件密钥提供加密密钥以破译来自该组存储设备的所述那个存储设备的已加密数据。
文档编号G06F12/14GK101246530SQ20081000650
公开日2008年8月20日 申请日期2008年1月30日 优先权日2007年1月30日
发明者圣陶许·库马尔, 尼古拉斯·安东诺普洛斯, 斯瑞·M·耶尔 申请人:科技资产股份有限公司