盘驱动器数据加密的制作方法

文档序号:6479733阅读:170来源:国知局
专利名称:盘驱动器数据加密的制作方法
盘驱动器数据加密
背景技术
在许多存储系统中,盘驱动器从主机计算机接收读和写请求。为了安全起见,需要 对存储在盘驱动器上的数据进行加密。为了保证数据安全,出现关于如何保证所存储的数 据的安全和将密码密钥(cryptographic key)存储在哪里的重要问题。在某些存储系统中,所述主机计算机将密码密钥和数据两者发送到驱动器。在此 操作中,主机控制密码密钥和数据流两者。在其它存储系统中,将密码密钥存储在中央密钥服务器上。及时且安全地管理单 个服务器中的大量密码密钥是困难的任务。例如,可能由于需要在服务器处认证许多不同 的用户或主机以便访问密码密钥而出现问题。此外,如果密码密钥被存储在服务器内,则支 持相应的盘阵列控制器的服务器必须知道与存储每个密码密钥相关的特定要求。在其它存储系统中,密码密钥被存储在盘阵列控制器中。然而,如果该阵列控制器 出现故障,则所存储的密码密钥被困在出现故障的控制器内且存储在盘上的相关数据是不 可访问的。


图IA是依照本发明的示例性实施例的用于将密码密钥存储在盘驱动器中的流程 图。图IB是依照本发明的示例性实施例的用于将密码密钥存储在盘驱动器中的系统 的方框图。图2A是依照本发明的示例性实施例的用于从盘驱动器检索密码密钥的流程图。图2B是依照本发明的示例性实施例的用于从盘驱动器检索密码密钥的系统的方 框图。图3A是依照本发明的示例性实施例的用于将密码密钥存储在盘驱动器中的流程 图的另一示例。图3B是依照本发明的示例性实施例的用于将密码密钥存储在盘驱动器中的系统 的方框图。图4A是依照本发明的示例性实施例的用于从盘驱动器检索密码密钥的流程图的
另一示例。图4B是依照本发明的示例性实施例的用于从盘驱动器检索密码密钥的系统的方 框图。图5是依照本发明的示例性实施例的使用加密的存储系统。图6是依照本发明的示例性实施例的使用加密的计算机或存储系统。
具体实施例方式依照本发明的实施例针对用于使存储系统中的密码密钥管理自动化的装置、系统 和方法。一个示例性实施例安全地获取、递送和存储用来对诸如盘驱动器的存储设备中的
4数据进行加密和解密的密码密钥。此外,示例性实施例保护可移除介质(诸如硬盘驱动器) 在该可移除介质被移动或放置在未授权装置中时不被未授权访问。在一个示例性实施例中,从盘控制器向密钥服务器提供密码密钥。该密码密钥用 来对盘驱动器上的数据进行加密和解密。在接收到密码密钥后,密钥服务器向密码密钥添 加数据并对其加密以形成二进制大对象(BLOB)。现在被密封或加密的BLOB然后被送回控 制器,该控制器将BLOB引导到盘驱动器以便存储。为了将BLOB解封,盘控制器将密封的BLOB传输到密钥服务器。在接收到BLOB后, 密钥服务器将BLOB解封并将原始密码密钥返回到控制器和盘驱动器。现在可以使用该密 码密钥从盘驱动器读取并向盘驱动器写入数据。由于盘驱动器实际上存储BL0B,所以盘驱动器可以在仍提供对存储数据的访问的 同时从一个控制器迁移到另一控制器。在迁移之后,盘驱动器将BLOB提供回密钥服务器, 并且该密钥服务器向盘驱动器返回原始密码密钥。在一个实施例中,密钥服务器包括密码模块(诸如可信平台模块,TPM)以生成 BLOB。密钥服务器不永久性地存储BL0B,而是将其发送到盘驱动器以便存储。同样地,密 钥服务器不负担存储用于许多盘驱动器的状态信息(诸如密钥和BLOB)。作为替代,在各 个盘驱动器上进行BLOB的存储,同时一旦接收到BL0B,使用密钥服务器进行转换以对BLOB 进行密封和解封。每个密钥服务器具有唯一的身份或标识。在一个实施例中,使用此唯一身份来对 从阵列控制器接收到的密码密钥进行密封和解封。由于身份是特定密钥服务器所独有的, 所以只有密封BLOB的密钥服务器稍后可以对该BLOB进行解封并提取原始密钥。作为示 例,每个密钥服务器可以存储用来对特定存储设备的数据进行密封和解封的各种唯一密钥 (例如,每个客户端或主机具有一个或多个唯一密钥)。 一个实施例将计算节点密钥BLOB或密钥服务器密钥BLOB存储在盘驱动器的元数 据区域中。例如,用于使用服务器TPM对RAID(独立/廉价盘冗余阵列)控制器计算节点 密钥进行绑定或密封的BLOB被存储在盘驱动器的非用户可访问元数据区域中。盘驱动器 的元数据区域是与应用数据分离且用户不可访问的盘驱动器的区段。图IA示出用于将密码密钥存储/密封在存储设备中的流程图,并且图IB示出依 照本发明的示例性实施例的用于将密码密钥存储/密封在存储设备中的系统150的方框 图。为了说明,存储设备被示为盘驱动器,并且密码密钥被示为计算节点密钥。在一个实施例中,卷访问策略定义用于访问盘驱动器的一组规则或策略。如果卷 访问策略被设置为包括计算节点,则只有当RAID控制器在适当服务器中时,才能适当地对 加密盘数据进行解密。如果卷访问策略被设置为包括计算节点配置,则只有当RAID控制器 在适当服务器中且该服务器被适当配置时,才能适当地对加密盘数据进行解密。利用可信 平台模块BLOB密封机制来验证服务器和服务器配置。每个RAID控制器可以存在一个或多 个计算节点密钥(例如,在刀片环境中存在多个计算节点密钥)。该设计实现允许每个存储 卷有不同的计算节点密钥。在一个实施例中,计算节点密钥不离开纯文本中的密码边界且其未被存储在非易 失性存储器中。作为替代,密钥在离开密码边界之前被加密。由服务器可信平台模块在每 个上电初始化过程重新生成计算节点密钥。
根据方框100,管理工具180生成计算节点密钥。例如,管理工具(以硬件和/或 软件实现)使用随机数发生器来生成256位计算节点密钥。根据方框105,管理工具180向阵列控制器170发送计算节点密钥。一旦接收到, 则阵列控制器170将计算节点密钥添加到卷访问策略。根据方框110,管理工具180然后将计算节点密钥发送到服务器190以便密封。举 例来说,管理工具180将计算节点密钥传送到服务器190中的密码模块(诸如可信平台模 块)并请求将计算节点密钥密封以创建BLOB。根据方框115,服务器190使用密码模块来对计算节点密钥进行密封或加密以创 建BLOB。密封的计算节点密钥(现在为加密BLOB)被返回到管理工具180。举例来说,TPM 将计算节点密钥密封并将结果得到的BLOB返回到管理工具。根据方框120,管理工具180将BLOB发送到阵列控制器170。在一个实施例中,此 交换不需要被加密,因为BLOB本身不暴露任何密码机密。根据方框125,阵列控制器170将BLOB提供给盘驱动器160,BLOB被存储在盘驱 动器160。例如,阵列控制器170将密封的计算节点密钥存储在(一个或多个)适当卷的元 数据区域卷特有信息区域中。图2A示出用于对存储设备中的密码密钥进行检索/解封的流程图,并且图2B示 出依照本发明的示例性实施例的用于对存储设备中的密码密钥进行检索/解封的系统250 的方框图。图2B与图IB共享相同的参考标号。根据方框200,在主机上执行的软件代码260向阵列控制器170请求密封的计算节 点密钥(即BLOB)。为了说明,所述代码被示为执行选项ROM代码。根据方框205,阵列控制器170从盘驱动器160检索BLOB并将其返回主机。例如, RAID控制器从盘驱动器检索适当的密封的计算节点密钥并将其从RAID控制器NVRAM返回。根据方框210,执行选项ROM代码260将BLOB呈现给服务器190中的密码模块以 便解封。例如,执行选项ROM代码将BLOB传输到服务器可信平台模块,请求对计算节点密 钥进行解封。根据方框215,密码模块对BLOB进行解封并将原始计算节点密钥返回到执行选项 ROM代码。如果RAID控制器170在适当的服务器中(服务器被适当配置),服务器可信平 台模块将向执行选项ROM代码返回原始计算节点密钥。根据方框220,执行选项ROM代码260将计算节点发送到阵列控制器170。现在可 以对去往和来自盘驱动器的数据进行加密或解密。示例性实施例还可以与密钥服务器和相应的密钥服务器密钥一起使用。例如,如 果卷访问策略被设置为包括密钥服务器密钥(诸如256位密钥),则只有当阵列控制器能 够与密钥服务器通信(即在适当网络上)时才能对加密的盘数据进行解密。在一个实施例 中,每卷存在一个密钥服务器密钥,并且该密钥服务器密钥由密钥服务器生成。根据密钥服 务器策略,所有卷可以使用相同的密钥服务器密钥,或者每个卷的密钥服务器密钥可以是 唯一的。密钥服务器密钥基于卷LUN(逻辑单元号)标识符被关联到特定的卷。在一个实 施例中,即使在卷迁移到外部控制器之后,卷LUN标识符仍是持久不变的,保证即使在驱动 器迁移之后,加密卷仍将是可访问的(假设控制器访问策略不包括不同服务器的计算节点
6密钥)。除了在密钥服务器上,密钥服务器密钥被存储在易失性存储器中,在密钥服务器 上该密钥被存储在非易失性存储器中。当密钥服务器密钥穿过密码边界时,首先用诸如 传送密钥的另一密钥对其进行加密。举例来说,用阵列控制器与管理工具之间的未认证 Diffie-Hellman交换(IKEv2_SCSI)来创建传送密钥。响应于跨越密码边界发送密钥的需要来创建传送密钥。一旦已经建立传送密钥, 则将其存储在阵列控制器上的易失性存储器中。可以对穿过密码边界的多个密钥或口令多 次使用传送密钥。可以由管理工具在任何时间请求新传送密钥的生成(以替换现有的传送 密钥)。在一个实施例中,阵列控制器不直接与密钥服务器通信。作为替代,阵列控制器与 管理工具通信,管理工具又与密钥服务器通信。在通信交换期间,阵列控制器(故意地)不 对本身进行认证。如果卷访问局限于特定阵列控制器,则控制器访问策略被设置为包括本 地密钥。如果阵列控制器(借助于管理工具)向密钥服务器请求密钥服务器密钥且密钥服 务器在一定的合理超时和重试次数之后拒绝,则与该密钥相关的卷被禁用。如果卷访问策略被设置为包括密钥服务器密钥,则只有当阵列控制器能够与密钥 服务器通信(即在适当网络上)时才能对加密的盘数据进行解密。在一个实施例中,每卷 存在一个密钥服务器密钥,并且该密钥服务器密钥由密钥服务器生成。根据密钥服务器策 略,所有卷可以使用相同的密钥服务器密钥,或者每个卷的密钥服务器密钥可以是唯一的。在一个实施例中,密钥服务器密钥不离开纯文本中的密码边界且不被存储在非易 失性存储器中(在离开密码边界之前对其进行加密)。由密钥服务器在每个上电初始化过 程重新生成密钥服务器密钥。根据方框300,管理工具380生成密钥服务器密钥。例如,管理工具(以硬件和/ 或软件实现)使用随机数发生器来生成256位密钥服务器密钥。根据方框305,管理工具380将密钥服务器密钥发送到阵列控制器370。一旦接收 到,则阵列控制器370将密钥服务器密钥添加到卷访问策略。根据方框310,管理工具380然后将密钥服务器密钥发送到服务器390以便密封。 举例来说,管理工具380将密钥服务器密钥传送到服务器390中的密码模块(诸如可信平 台模块)并请求将密钥服务器密钥密封以创建BLOB。根据方框315,服务器390使用密码模块来对密钥服务器密钥进行密封或加密以 创建BLOB。密封的密钥服务器密钥(现在为加密BLOB)被返回到管理工具380。举例来说, TPM将密钥服务器密钥密封并将结果得到的BLOB返回到管理工具。根据方框320,管理工具380将BLOB发送到阵列控制器370。在一个实施例中,此 交换不需要被加密,因为BLOB本身不暴露任何密码机密。根据方框325,阵列控制器370将BLOB提供给盘驱动器360,BLOB被存储在盘驱 动器360。例如,阵列控制器370将密封的密钥服务器密钥存储在(一个或多个)适当卷的 卷特有信息区域的元数据区域中。图4A示出用于对存储设备中的密码密钥进行检索/解封的流程图,并且图4B示 出依照本发明的示例性实施例的用于对存储设备中的密码密钥进行检索/解封的系统450的方框图。图4B与图3B共享相同的参考标号。根据方框400,在主机上执行的软件代码460向阵列控制器370请求密封的密钥服 务器密钥(即BLOB)。为了说明,所述代码被示为执行选项ROM代码。根据方框405,阵列控制器370从盘驱动器360检索BLOB并将其返回主机。例如, RAID控制器从盘驱动器检索适当的密封的密钥服务器密钥并将其从RAID控制器NVRAM返 回。根据方框410,执行选项ROM代码460将BLOB呈现给服务器390中的密码模块以 便解封。例如,执行选项ROM代码将BLOB传输到服务器可信平台模块,请求对密钥服务器 密钥进行解封。根据方框415,密码模块对BLOB进行解封并将原始密钥服务器密钥返回到执行选 项ROM代码。如果RAID控制器370在适当的服务器中(服务器被适当配置),服务器可信 平台模块将向执行选项ROM代码返回原始密钥服务器密钥。根据方框420,执行选项ROM代码460将密钥服务器发送到阵列控制器370。现在 可以对去往和来自盘驱动器的数据加密或解密。在多种系统、方法和装置中利用依照本发明的实施例。为了说明,结合硬盘驱动器 存储系统来讨论示例性实施例。然而,示例性实施例可适用于其它类型的存储系统,诸如使 用带盒的存储设备、光盘、或可移动介质。图5是依照本发明的示例性实施例的示例性分布式文件或存储系统500的方框 图。举例来说,所述系统是包括多个主机计算机502和包含一个或多个存储控制器504 (举 例来说示为阵列控制器)的一个或多个存储设备或阵列503A、503B、以及多个存储设备 506 (举例来说示为盘阵列1至盘阵列N)的存储网络和/或存储区域网络(SAN)。主机计算机502 (示为主机1至主机N)通过一个或多个结构或网络510耦合到阵 列控制器504,并且存储设备或阵列503通过一个或多个结构或网络511耦合到存储设备 506。管理工具517耦合到网络510以便与阵列控制器504和诸如密钥服务器的一个或多 个服务器519通信。例如,主机通过光纤信道(FC)使用小型计算机系统接口(SCSI)或其 它接口 /命令与阵列控制器通信。举例来说,网络510和511包括以太网、光纤信道(FC)、 串行连接SCSI (SAS)、iSCSI、互联网、局域网(LAN)、广域网(WAN)、公共和/或私用网络等 中的一个或多个。在图中示出通信链路512以表示主机、控制器、存储设备、管理工具、与服 务器之间的通信路径或耦合。在一个示例性实施例中,阵列控制器504和盘阵列506是网络附接设备,用于提供 随机存取存储器(RAM)和/或盘空间(用于存储和作为虚拟RAM)和/或某种其它形式的 存储装置,举例来说,诸如磁存储器(例如磁带)、微机械系统(MEMS)、或光盘。通常,阵列 控制器和盘阵列包括较大量的RAM和/或盘空间以及一个或多个专用设备,诸如网络盘驱 动器或盘驱动器阵列(例如独立盘冗余阵列(RAID))、高速带、磁性随机存取存储器(MRAM) 系统或其它设备、及其组合。在一个示例性实施例中,阵列控制器504和盘阵列506是包括 一个或多个服务器的存储器节点。存储控制器504管理各种数据存储和检索操作。存储控制器504从主机计算机 502接收1/0请求或命令,诸如数据读请求、数据写请求、维护请求等。存储控制器504处 理多个盘阵列506和盘群组上的数据的存储和检索。在一个示例性实施例中,存储控制器504是单独的设备,或者可以是诸如服务器的计算机系统的一部分。另外,存储控制器504 可以定位成与盘阵列506或相互之间接近、或相距大的地理距离。阵列控制器504包括许多电子设备、电路板、电子组件等等。举例来说,阵列控制 器504包括固件520、输入/输出(I/O)调度器522、缓冲器或队列524(例如,用来在所有 权转移期间临时存储元数据结构)、一个或多个接口 526、一个或多个处理器528 (举例来说 示为CPU,中央处理单元)、以及存储器530 (包括读和写高速缓冲存储器)。CPU 528执行 管理从主机计算机502接收到的各种数据存储和数据检索请求所需的操作和任务。例如, 处理器528被耦合到主机接口 526A,主机接口 526A向一个或多个主机计算机502提供双向 数据通信。处理器528还被耦合到向盘阵列506提供双向数据通信的阵列接口 526B。存储器530还被耦合到处理器528并存储处理器在执行其任务时所使用的各种信 息。举例来说,存储器530包括易失性存储器、非易失性存储器、或易失性和非易失性存储 器的组合中的一个或多个。存储器530例如存储应用、数据、控制程序、算法(包括实现或 帮助实现依照本发明的实施例的软件)、和与存储设备相关的其它数据(例如,诸如映射元 数据、配置元数据、和缓存的用户数据的状态数据)。处理器528经由一个或多个总线532 与存储器530、接口 526、和其他组件通信。在至少一个实施例中,存储设备通过使用现有的复制、盘日志、和盘镜像系统及包 括但不限于一级或多级廉价盘冗余陈列(RAID)的其它方法而成为容错的。当一个或多个 盘阵列崩溃或以其他方式出现故障时,复制提供高可用性。此外,在一个示例性实施例中, 存储设备以盘或盘阵列的形式提供存储器,其中,作为盘中存储的单独块(例如,每个512、 1024、4096等字节)或条碎片(stripe fragment)(每个4K、16K、32K等等)访问要寻址的 数据项目。在一个实施例中,存储设备503Α、503Β是盘阵列。每个盘阵列可以具有一个或多 个控制器。例如,阵列具有两个控制器以用于冗余。此外,如本文所讨论的,存储设备包括 生产(production)盘和备用盘。在一个实施例中,存储设备503A、503B在物理上位于同一数据中心中。在另一实 施例中,存储设备位于单独数据中心中,相隔大的地理距离。此外,虽然仅示出两个存储设 备,但SAN可以包括几百个或几千个此类存储设备。图6示出计算机或存储系统600的示例性实施例。该系统包括使用密码模块620 的计算机602 (诸如密钥服务器)。计算机602经由网络652耦合到至少一个远程实体654。 计算机602可以是例如服务器、台式计算机、膝上型计算机或移动设备。计算机602包括耦 合到至少一个本地实体650的处理器640。本文所使用的“本地实体”指的是在计算机602 内部的硬件/固件/软件实体且“远程实体”指的是在计算机602外部的硬件/固件/软 件实体。本地实体的示例包括但不限于操作系统和外围设备,诸如智能卡读取器、硬盘驱动 器、网络控制器、和图形控制器。远程实体的示例包括但不限于各种便携式和非便携式计算 机和/或电子设备,诸如主机、盘阵列、控制器、服务器、大型计算机、分布式计算设备、膝上 型计算机、及其它电子设备和系统,无论此类设备和系统是便携式还是非便携式的。处理器640还耦合到网络接口 648和存储用于计算机602的操作系统(OS) 644的 存储器642。如所示,存储器642还可以存储可信平台模块软件栈646 (TSS),其处理被发送 到耦合到处理器640的可信平台模块(TPM) 620的请求。
TPM 620被配置为提供密码功能,诸如用于数字签名和用于加密的RSA非对称算 法、SHA-I散列、基于散列的消息认证代码(HMAC)函数、安全存储、随机数生成、或其它功 能。使用软件、固件和/或硬件来实现TPM 620。图6所示的TPM组件已被一般化且不是包 括一切的。并且,TPM架构和功能可能根据可信计算组(TCG)的授权随时间而变。如图6所示,TPM 620包括与处理器640通信的输入/输出(I/O)接口 622。I/O 接口 622耦合到诸如密码服务624、随机数源626、非对称算法628、存储装置630和平台配 置寄存器(PCR) 632等其它TPM组件。密码服务624支持诸如散列、数字签名、加密和解密 等功能。随机数源626生成用于密码服务624的随机数。例如,在某些实施例中,密码服务 624使用随机数来生成密码密钥。非对称算法628使得TPM 620能够执行非对称密钥操作。 存储装置630安全地存储受TPM 620保护的秘密(例如密码密钥或其它数据)。PCR 632 存储关于计算机602的当前状态的信息。例如,在某些实施例中,PCR 632存储关于计算机 602的单独完整性测量结果以及完整性测量结果的序列。示例性实施例提供了一种独立于容纳TPM的服务器(不需要服务器特有支持)来 存储TPM生成的BLOB的方法。照此,即使对数据进行加密的RAID控制器出现故障且被另 一加密RAID控制器取代,实施例也保证对盘数据的访问(即BLOB未被困在或存储在出现 故障的RAID控制器中,而是存储在驱动器中)。此外,示例性实施例不要求人为干预以执行 计算机节点密钥备份操作,因为BLOB被RAID控制器存储在多驱动器RAID组的每个驱动器 上。在TPM从一个服务器迁移到另一个的情况下,还可以在不涉及密码主管的情况下将相 关盘驱动器迁移到新的服务器。示例性实施例保护阵列控制器(基于硬件和软件两者)不受其它RAID控制器影 响。由于特定控制器将提供的特征组(即迁移驱动器的困难)和密码应用通常公开其密钥 管理架构这一事实,RAID控制器BLOB被存储在哪里是显而易见的。此外,由于BLOB被存 储在驱动器的元数据部分中,所以认证的证据是BLOB本身,而不是证书或私钥。定义如本文和权利要求书中所使用的,以下词语具有以下定义本文所使用的“BLOB”是由诸如TPM的密码模块或处理器生成的加密数据(供在 受保护存储装置中使用,或用于将上下文保存在TPM外面)。本文所使用的术语“存储设备”意指能够存储数据的任何数据存储设备,包括但不 限于盘阵列、盘驱动器、带驱动器、固态驱动器、光学驱动器、SCSI设备、或光纤信道设备中 的一个或多个。本文所使用的“盘阵列”或“阵列”是包括多个盘驱动器、高速缓冲存储器、 和控制器的存储系统。阵列包括但不限于网络附接存储(NAS)阵列、模块化SAN阵列、单片 SAN阵列、实用(Utility)SAN阵列、和存储虚拟化。本文所使用的“TPM”或“可信平台模块”是依照在TCG可信平台模块规范中定义 的规范所实现的密码处理器。TPM提供各种功能,诸如密码密钥的安全生成、远程证明、密封 存储、绑定、和硬件随机数发生器。在一个示例性实施例中,使流程图中的一个或多个方框自动化。换言之,装置、系 统和方法自动地发生。本文所使用的术语“自动化”或“自动地”(及其类似变体)意指不 需要人为干预、观察、努力和/或判定的使用计算机和/或机械/电气设备控制装置、系统 和/或过程的操作。
依照本发明的示例性实施例的流程图被作为示例提供且不应将其理解为限制本 发明的范围内的其它实施例。例如,不应将方框理解为必须按照特定顺序进行的步骤。可 以添加附加方框/步骤、去除某些方框/步骤、或修改方框/步骤的顺序,并且仍在本发明 的范围内。此外,可以将不同图内的方框添加到其它图中的其它方框或与之交换。此外,应 将特定数字数据值(诸如特定数量、数目、类别等)或其它特定信息解释为说明性的,用于 讨论示例性实施例。提供此类特定信息不是为了限制本发明。在依照本发明的各种实施例中,实施例被实现为方法、系统、和/或装置。作为一 个示例,示例性实施例被实现为一个或多个计算机软件程序以实现本文所述的方法。该软 件被实现为一个或多个模块(也称为代码子例程或面向对象编程中的“对象”)。软件的 位置对于各种替换实施例而言将不同。例如,软件编程代码被计算机或服务器的处理器从 诸如CD-ROM驱动器、闪速存储器、或硬盘驱动器等某种类型的长期存储介质访问。软件编 程代码被包含或存储在多种已知介质中的任何一种上以供数据处理系统使用或在诸如半 导体、磁性和光学设备等任何存储设备中使用,所述存储设备包括盘、硬盘驱动器、CD-ROM、 ROM、闪速存储器等。代码被分布在此类介质上,或通过某种类型的网络从一个计算机系统 的存储器或存储装置分发到其它计算机系统的用户以供此类其它系统的用户使用。或者, 编程代码包含在存储器中并由处理器使用总线访问。用于在存储器中、在物理介质上包含 软件编程代码、和/或经由网络分发软件代码的技术和方法是众所周知的,并且在本文中 将不再讨论。以上讨论意图说明本发明的原理和各种实施例。一旦完全理解本公开,许多变更 和修改将变得对于本领域的技术人员来说显而易见。意图在于将以下权利要求解释为涵盖 所有此类变更和修改。
权利要求
一种方法,包括用密码密钥对存储设备上的数据进行加密;将所述密码密钥传输到密码模块,所述密码模块对该密钥进行加密以形成二进制大对象(BLOB);将所述BLOB传输到被耦合到所述存储设备的阵列控制器;以及将所述BLOB存储在所述存储设备上。
2.权利要求1的方法,还包括接收请求以对所述存储设备上的数据进行解密;响应于所述请求,将BLOB从所述存储设备传输到所述密码模块,所述密码模块从BLOB 中提取密码密钥;将从所述BLOB提取的所述密码密钥发送到所述阵列控制器; 用所述密码密钥对所述存储设备上的数据进行解密。
3.权利要求1的方法,还包括将所述BLOB存储在所述存储设备的可访问元数据部分中。
4.权利要求1的方法,还包括用可信平台模块(TPM)来密封所述密码密钥。
5.权利要求1的方法,还包括在所述存储设备的每个上电初始化过程重新生成密码密钥。
6.权利要求1的方法,其中,所述存储设备是盘驱动器。
7.权利要求1的方法,还包括移动所述存储设备以耦合到另一阵列控制器;允许在所述BLOB在服务器处被解封之后从所述存储设备读取数据。
8.一种具有用于促使计算机执行一种方法的指令的有形计算机可读介质,所述方法包括将二进制大对象(BLOB)存储在存储设备上;将所述BLOB从所述存储设备传输到密码模块,所述密码模块从该BLOB中提取加密的 密钥;将所述密码密钥传输到被耦合到所述存储设备的控制器;以及 使用所述密码密钥来对存储在所述存储设备上的数据进行加密或解密。
9.权利要求8的有形计算机可读介质,还包括用随机数发生器来生成密钥。
10.权利要求8的有形计算机可读介质,还包括在所述密钥被用来对存储在所述存储设备上的数据进行加密或解密之后将所述密钥 发送回所述服务器;在所述服务器处使用密码模块来形成BLOB ; 将所述BLOB传输到所述存储设备以进行存储。
11.权利要求8的有形计算机可读介质,还包括将BLOB存储在与应用数据分开且不能 被用户访问的存储设备的安全区段中。
12.权利要求8的有形计算机可读介质,还包括永久性地将BLOB仅存储在所述存储设 备中且不存储在服务器或控制器中。
13.权利要求8的有形计算机可读介质,还包括由控制器将所述BLOB存储在多驱动器独立/廉价盘冗余阵列(RAID)组中的每个存储设备上。
14.权利要求8的有形计算机可读介质,还包括在不要求所述服务器存储所述BLOB的 情况下使用所述控制器来设置并实行用于所述存储设备的认证策略。
15.权利要求8的有形计算机可读介质,还包括使用为所述服务器所独有的身份来密 封所述密钥并形成所述BLOB。
16.一种存储系统,包括密码模块,其密封密钥以形成二进制大对象(BLOB);阵列控制器,其与所述密码模块通信;以及存储设备,其存储所述BLOB并连接到所述阵列控制器,其中,所述存储设备将所述 BLOB传输到所述密码模块,该密码模块提取所述密钥并将该密钥发送到所述阵列控制器以 对存储在所述存储设备上的数据进行加密或解密。
17.权利要求16的存储系统,其中,所述密码模块是位于服务器中的可信平台模块 (TPM)。
18.权利要求16的存储系统,还包括用随机数发生器来生成密钥的软件管理工具。
19.权利要求16的存储系统,其中,所述BLOB仅被存储在所述存储设备中。
20.权利要求16的存储系统,其中,存储在所述存储设备上的数据在所述阵列控制器 出现故障之后是可访问的,因为所述BLOB未被存储在阵列控制器中而是存储在所述存储 设备中。
全文摘要
实施例包括用于存储设备数据加密的方法、装置和系统。一种方法包括用密钥对存储设备上的数据进行加密并然后将该密钥传输到密码模块,该密码模块对密钥进行加密以形成二进制大对象(BLOB)。该BLOB被传输到被耦合到存储设备的阵列控制器,所述存储设备存储BLOB。
文档编号G06F15/16GK101983379SQ200880128467
公开日2011年3月2日 申请日期2008年4月2日 优先权日2008年4月2日
发明者J·普兰克, J·福斯特, R·埃利奥特 申请人:惠普开发有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1