用于存储数据的透明端到端安全的设备、系统和方法

文档序号:6650848阅读:615来源:国知局
专利名称:用于存储数据的透明端到端安全的设备、系统和方法
技术领域
本发明涉及数据存储和数据存储管理系统。特别是,本发明涉及用于在客户服务器环境中存储数据的透明端到端安全的设备、系统和方法。
背景技术
由于多种原因,例如包括获得竞争优势,遵守地方法律和法规,以及减少隐私顾虑,数据的管理和保护对于企业和政府利益而言是至关重要的。
数据具有生命周期,该生命周期从产生数据时开始,至该数据变得过时且无价值时结束。当数据沿该生命周期范围演进时,对数据赋予不同的保护级别,以避免未经授权的使用。一般而言,使用诸如加密和在用物理安全的设备中存储数据的传统安全技术来保护“活(live)”数据(新创建或当前使用的数据)。
随着数据老化,访问频率会减少,同时其价值会增加或减小。通常,对这样的数据进行存档或备份,以便在诸如存储器以及直接存取存储设备(DASD)的主存储设备上保存新的活数据。该迁移路径将数据从主存储设备移动到辅助存储设备,如可移动介质,包括磁带、光存储设备等。
遗憾的是,通常作为要保持预定时段的数据的存档数据,以及作为被存储以允许在系统失效时进行数据恢复的备份数据,并未被赋予相同的安全和保护级别以避免作为活数据而被未授权地使用。导致此情况的因素包括提供例如加密的保护所需的开销(包含密钥的产生与管理),存档数据和备份数据的更低优先级,备份和存档所涉及的数据的修剪尺寸等。反而是依赖于诸如防火墙、保险箱、加锁门以及守护和/或加锁设备的传统安全措施。
期望备份数据和存档数据在输送中以及一旦存储在存储介质上是安全的。特别是,期望通过网络进行通信的客户机和服务器之间对备份数据和存档数据进行保护。在加密备份数据和存档数据时面临的一个问题是密钥管理的问题。某个实体可能需要在许多月或年以后对备份数据和存档数据进行访问。由于误管理或设备失效导致的密钥丢失可严重导致大量的备份数据和存档数据无用,从而,必须谨慎管理好密钥。由于人类记忆的限制以及实体中的人事轮换,委托用户进行密钥管理是极易出错的。使用最初产生或使用数据的应用来管理密钥大大增加了应用的系统开销,在应用之间导致不一致,并且在备份数据和存档数据的寿命可超过应用的寿命的情况下,这是不实际的。
当前包括加密的存储和备份系统是不够用的。这样的系统通常在同一存储设备或介质上以加密数据的形式存储密钥。对存储设备或介质的未授权的访问导致失去数据保护。其他传统系统使用与存储设备、卷或介质有关的、用于对同一存储设备、卷或介质上所有文件进行解密的单个密钥。从而,密钥的破解导致对所有文件的访问。某些传统系统不自动处理备份数据和存档数据从一个存储设备到另一存储设备的迁移。从而,使得密钥与正确加密文件的匹配困难或不可能。另外一些传统系统使用单个级别的保护,而不管所涉及备份数据或存档数据的类型如何。从而,计算资源可能被浪费在保护无需该缺省级别保护的数据方面。
由以上讨论可知,需要一种用于在客户服务器环境中存储数据的透明端到端安全的设备、系统和方法。有利的是,这样的设备、系统和方法将对传输中或存储设备上的备份和存档数据进行加密,并且将对与传输中备份数据和存档数据相关联的密钥进行加密。此外,该设备、系统和方法将允许客户机以一对一而不是一对多的方式产生与客户机的主机所拥有的各个文件相关联的合适安全级别的密钥。此外,该设备、系统和方法将与加密数据分立地存储密钥,并在加密数据的整个生命周期上管理密钥和/或加密数据位置上的变化。

发明内容
鉴于现有技术当前状态,特别是鉴于在现有技术中尚未解决的问题和尚未满足的需求,针对客户服务器环境中存储数据的透明端到端安全,提出了本发明。因此,本发明的提出提供了一种用于在客户服务器环境中存储数据的透明端到端安全的设备、系统和方法,该设备、系统和方法克服了在现有技术中出现的多种或所有上述短处。
根据本发明的设备包括密钥产生器、加密模块和通信接口。密钥产生器为与存储会话相关的每个存储结构产生随机存储密钥。存储密钥最好与存储结构唯一相关。本领域技术人员应该理解,术语“存储密钥”、“传输密钥”和“本机密钥(native key)”是出于解释清楚和便于说明的目的。术语“存储密钥”、“传输密钥”和“本机密钥”指本发明情形中使用的不同密钥,而并非必须指现有技术的特定术语。
存储结构包括为存储服务器存储数据以及管理存储数据而配置的任何数据结构。在某些实施例中,存储结构包括软件结构,如对象、数组、列表、专用对象、串行化对象、文件、卷、数据库数据对象、记录、表、表空间等。在一个实施例中,存储结构可包括在发送方的文件系统内的文件。
加密模块使用存储密钥对存储结构进行加密,并且最好使用为接收方所知的对称传输密钥对存储密钥进行加密。或者,传输密钥可包括一对非对称密钥。加密的存储结构和加密的存储密钥可包括所用加密算法的指示符。用于对存储密钥进行加密的加密算法可与存储结构所用加密算法不同或相同。通信接口将加密的存储结构和加密的存储密钥传输到接收方。
接收方在第一存储设备上存储加密的存储结构,使用传输密钥将加密的存储密钥解密,并在物理上与第一存储设备不同的第二存储设备上存储存储密钥。可选的,接收方使用仅为接收方所知的本机密钥加密存储密钥,然后在第二存储设备上存储再加密的存储密钥。
在某些实施例中的设备可包括关联模块,配置模块和协商模块。关联模块管理在第一存储设备上的加密存储结构与第二存储设备上的加密存储密钥之间的关联。关联可包括存储密钥位置和存储结构位置。响应存储密钥和加密存储结构的至少之一的重定位,关联模块可修改关联。关联模块可驻留在存储密钥和加密存储结构的发送方或接收方内,且可包括关系数据库。配置模块可定义由发送方和接收方使用的对称传输密钥。或者,或此外,协商模块在发送方与接收方之间协商传输密钥。
接收方可包括与发送方不同的某些部件,诸如用于使用传输密钥对存储密钥进行解密的安全模块。安全模块可使用本机密钥对存储密钥再加密,从而,由存储模块所存储的存储密钥为再加密的存储密钥。接收方可包括通信接口,通信接口用于从发送方接收加密的存储结构和加密的存储密钥。可选的,可能已经使用与发送方共享的传输密钥对存储结构加密。
接收方的存储模块可在第一存储设备上存储加密的存储结构,在物理上与第一存储设备不同的第二存储设备上存储存储密钥。或者,第一存储设备和第二存储设备可在逻辑上是不同的。接收方可包括存储服务器,发送方可包括数据存储客户机之一。更具体而言,发送方可包括多个备份-存档客户机之一。
还提供本发明的信号承载介质,包括被配置成用于执行在客户服务器环境中实现存储数据的透明端到端安全的操作的机器可读指令。在一个实施例中,操作包括用于生成特定存储结构的唯一存储密钥的操作。另一操作使用存储密钥对存储结构进行加密。其他操作可使用发送方和接收方所知的传输密钥对存储密钥进行加密,从发送方向接收方传输加密的存储结构和加密的存储密钥,并使用传输密钥对存储密钥进行解密。最后,执行操作以便在第一存储设备上存储加密的存储结构,在物理上与第一存储设备不同的第二存储设备上存储加密的存储密钥。
在某些实施例中,机器可读指令包括用于在发送方与接收方之间对传输密钥进行协商的操作。此外,机器可读指令还可包括用于响应改变存储密钥和加密的存储结构的至少之一的位置而修改包括存储密钥位置和存储结构位置的关联的操作。在一个实施例中,基于与存储结构相关联的安全策略,确定密钥尺寸和加密算法的至少之一。存储结构可包括在发送方的文件系统内的文件。存储密钥可被产生并且至少部分基于与存储结构相关联的数据,诸如结构名、创建日期、内部文件数据等。第一存储设备和第二存储设备的至少之一可包括可移动计算机可读介质。
本发明还可包括设置为系统、方法的实施例,以及基本包括与前面结合设备和方法描述的部件和步骤功能相同的计算基础设施。由后面的描述和所附权利要求,将更充分理解本发明的特征和优点,或可通过后面给出的本发明实现方式得以理解。


为了易于理解本发明的优点,参照附图中所示具体实施例,将更详细地描述以上简要描述的本发明。应该理解,这些附图仅描述本发明的典型实施例,因此,不应将其看作是对本发明范围的限制,下面,将参照附图,详细地描述和解释本发明。
图1的框图表示根据本发明的一个实施例在客户服务器环境中实现存储数据的透明端到端安全的系统;图2的逻辑框图表示根据本发明在客户服务器环境中实现存储数据的透明端到端安全的设备的一个实施例;图3的逻辑框图表示根据本发明在客户服务器环境中实现存储数据的透明端到端安全的设备的可选实施例;图4的示意性框图表示根据本发明的关联的一个示例;图5的示意性框图表示根据本发明的一个实施例适于维护关联的数据结构;和图6的示意性流程图表示在客户服务器环境中实现存储数据的透明端到端安全的方法。
具体实施例方式
很容易理解,如此处一般性描述以及附图所示的本发明部件可采用多种不同的配置来设置和设计。从而,以下关于本发明的设备、系统和方法实施例(如附图中所示)的更详细描述并不意在限制如权利要求所记载的本发明范围,而仅仅是本发明优选实施例的表示。
参照附图将更好地理解本发明的所示实施例,其中,对相同的部件赋予相同的附图标记。以下描述仅出于示例性说明的目的,且仅表示出与此处所述本发明相一致的设备、系统和过程的某些优选实施例。
图1表示适于在客户服务器环境中实现存储数据的透明端到端安全的系统100。在一个实施例中,系统100包括使用客户服务器体系结构组织的存储管理系统。适用于本发明的存储管理系统的示例包括IBM的TivoliStorage Manager(TSM),Veritas的Net Backup,Legato的Networker等。系统100包括多个客户机102a-c,也称为备份-存档客户机102a-c,以及一个或多个服务器104,通常将其称为存储服务器,它们通过网络106相连。
客户机102a-c允许应用在诸如工作站的计算机系统上运行,以指派所要备份和/或存档的数据文件。客户机102a-c处理备份和存档数据文件的传输及其在存储设备108a-b上的存储。最好是,存储设备108a-b在物理上是不同的,且由服务器104拥有和维护。或者,共享存储设备108a-b,并可通过存储区域网(SAN)将它们相连。
此处,通常将被指派为要备份和/或存档的文件称为存储结构110。存储结构110可包括持久存储数据的任何格式。在一个实施例中,每个存储结构110可对应于执行客户机102c的计算机系统的文件系统内的文件。或者,可由客户机102c将多个存储结构110捆绑成单个备份文件和/或存档文件。
为了准备将存储结构110发送到服务器104,客户机102c可基于与存储结构110相关联的安全策略自动确定是否应对存储结构110进行加密。或者,安全策略可指示对存储结构110无需进行加密。如果要对存储结构110进行加密,则客户机102c生成存储密钥112。最好是,随机生成存储密钥112。或者,可基于预定义的序列或协议生成存储密钥112。
客户机102c使用存储密钥112和多个加密算法之一加密存储结构110。加密对传输时以及当存储结构110驻留在存储设备108a-b之一上时的存储结构110进行保护。在一个实施例中,存储密钥112包括对称密钥。对称密钥是被配置成必须使用同一密钥或原样副本来加密和解密数据的加密密钥。
在一个实施例中,将存储密钥112传输到服务器104。为进一步保护存储结构110,还使用多个加密算法之一和传输密钥114对存储密钥112进行加密。传输密钥114是为客户机102c和服务器104所共享的密钥。最好是,服务器104专门与特定客户机102c共享传输密钥114。在一个实施例中,在客户机102c和服务器104上预定义传输密钥114。在另一实施例中,客户机102c和服务器104进行协商以确定传输密钥114。最好是,传输密钥114也为对称密钥。或者,客户机102c和服务器104可支持非对称加密算法,诸如支持公钥接口(PKI)的算法。在这样的实施例中,传输密钥114可包括来自用于加密和解密存储密钥112的一对密钥的对应密钥。
客户机102c与服务器104进行通信,以授权在存储设备108a-b上存储存储结构110。客户机102c通常使用传统的请求和响应消息传递以使服务器准备接收存储结构110。一旦客户机102c接收到来自服务器104的授权,客户机102c就向服务器104传输加密的存储结构110和加密的存储密钥112。
服务器104接收加密的存储结构110和加密的存储密钥112。服务器104使用传输密钥114将加密的存储密钥112解密。可选的,如果保留传输密钥114并使其对客户机102c可用,则服务器104可不对存储密钥112解密,而是可简单地存储存储密钥112,并在存储密钥112被请求时将其返回到客户机102c。
最好是,客户机102c和服务器104支持多个加密算法,包括数据加密标准(DES),高级加密标准(AES)和其他对称加密算法。从而,加密的存储密钥112和/或加密的存储结构110可包括指示符,诸如用于标识哪个加密算法被用于对存储密钥112和/或存储结构110进行加密的头。或者,当最初建立通信时,客户机102c和服务器104可对加密算法达成一致。在另一实施例中,可不向服务器104提供用于对存储结构110进行加密的加密算法。
最好是,服务器104在第一存储设备108a上存储加密的存储密钥112,在第二存储设备108b上存储加密的存储结构110。有利的是,服务器104跟踪将存储结构110及其相关联的存储密钥112存储在何处。下面,将结合存储结构110与其存储密钥112之间的关联,来详细描述该操作。
最好将存储结构110保持在加密状态,使得对第二存储设备108b的非授权访问不会威胁存储结构110的安全。在一个实施例中,按加密格式存储存储密钥112。例如,服务器104可生成本机密钥,以后会对此进行讨论。服务器104可使用本机密钥对存储密钥112进行再加密。从而,然后可将再加密的存储密钥112存储在第一存储设备102a上。
将存储密钥112与存储结构110分开存储提供了附加的安全。如果保存有存储结构110的存储设备108b失窃或暴露于未授权的访问,由于存储密钥112未处在同一设备108b上,从而使存储结构110仍受保护。然而,为保持加密的存储结构110的效用,在需要时,客户机102c应能够访问与加密的存储结构110相关联的存储密钥112。从而,服务器104维护存储密钥112的位置与存储结构110的位置之间的关联116。
本领域技术人员容易理解,在需要时,通过向服务器104发送请求,客户机102取得存储结构110和相关联的存储密钥112。作为响应,服务器104可参考关联116以定位存储结构110和存储密钥112。服务器104也可使用传输密钥114再次对存储密钥112进行加密。客户机102c使用传输密钥114解密存储密钥112,并使用解密的存储密钥112解密存储结构110。
现参看图2,图2表示适于在客户服务器环境中实现存储数据的透明端到端安全的设备200。在一个实施例中,设备200作为图1中所述的客户机102c。或者,设备200可运行在对等体系结构中。
设备200可包括密钥产生器202,加密模块204和通信接口206。密钥产生器202产生所需的密钥。特别是,密钥产生器202可生成随机存储密钥112(参见图1)。最好是,存储密钥112对应于单个存储结构110(参见图1)。
设备200可改变存储密钥112的尺寸。在某些实施例中,设备200基于本地存储策略确定存储密钥112的尺寸。本地存储策略可针对某些类型的文件或特定年代的文件界定不同的加密级别。以此方式,设备200控制应用到文件的加密的级别。从而,将加密所带来的开销恰好限制到具有敏感性质的需要保护的文件。通过改变加密存储密钥112长度和/或所用加密算法的类型,可以控制加密级别。
在某些实施例中,为存储会话中所包括的文件系统的每个不同文件产生特定的存储密钥112。存储会话通常包括一个批次的一个或多个存储结构110,其中将使用公共属性集存储或备份这些存储结构110。可由用户手工地或响应设备200上的存储要求自动地定义存储会话。
加密模块204针对每个存储结构110使用专门为该存储结构110生成的存储密钥112进行加密。加密模块204也使用传输密钥114对存储密钥112进行加密。最好是,加密模块204对存储结构110和/或存储密钥112既用于加密,也用于解密。或者,可提供分立的解密模块。加密模块204最好支持包括DES、3-DES、AES等多种对称加密算法。
支持对称加密算法的一个优点是,若需要,设备200能够产生合适长度的存储密钥112,并以随机方式产生。由于使存储密钥112的传输次数最少,从而,在设备200处产生加密密钥提供了另一级别的安全。此外,捕获一个存储密钥112仅威胁单个存储结构110。在一个实施例中,其他存储结构110具有不同的存储密钥112,因此,这些存储结构110是高度安全的。
在一个实施例中,加密模块204为存储结构110确定适当的安全级别。通常,密钥越长,加密保护越强。加密模块204可根据其自己的本地安全策略确定存储结构110的安全级别。或者,存储结构110的用户或拥有者可使用例如参数指定安全级别。
通信接口206包括足够的逻辑和硬件,以允许通过传统网络通信方式进行通信。此外,通信接口206传输加密的存储结构110和加密的存储密钥112。最好是,通信接口206包括或兼容诸如传输控制协议、网际协议(TCP/IP)之类的传统联网协议。在某些实施例中,通信接口206可为加密的存储结构110指定第一存储设备108a,为存储密钥112指定第二存储设备108b。
可选地,设备200也可包括关联模块208、协商模块210和配置模块212。关联模块208用于管理在每个存储密钥112与对应存储结构110之间的关联。通常,关联116包括在存储密钥1112的物理位置与存储结构110的物理位置之间的映射。按照需要,关联模块208生成,销毁和修改关联116。关联模块208可驻留在客户机102c或服务器104中。最好是,关联116由关联模块208本地或远程地存储或维护。以此方式,服务器104的物理保护、数据保持特性和其他企业数据保护机制也保护关联208。
可使用多种数据结构,包括表、数组、链表、对象等,来表示关联116。除存储结构110的位置和存储密钥112的位置外,关联116可包括其他信息,如文件名、时戳,或在某些情形中,例如为实际存储密钥112。
协商模块210使设备200能够与诸如服务器104之类的接收方进行交互,以确定传输密钥114。本领域技术人员能够想到可用于对传输密钥114进行协商的多种协议。在一个实施例中,设备200和接收方使用均支持的最强加密级别和/或加密算法进行通信。然后,可选择最低公共特性作为加密级别和/或加密算法。
在一个示例中,设备200和接收方可被预配置为根据后面的协议建立传输密钥114。设备200可随机生成传输密钥114的第一半,接收方生成传输密钥114的另一半。然后,设备200和接收方可明文传递各自的一半。一旦为对方接收,各方将接收的一半与生成的一半连接,以创建传输密钥114。确切地讲,对于设备200和接收方,可预先确定哪一半成为第一半,哪一半成为第二半。以此方式,可使传输密钥114不会完全以明文传输,而是在没有用户干预的条件下,各方保留足够灵活性以使用随机产生的传输密钥114。此外,还可频繁地改变传输密钥114,以进一步保护使用传输密钥114加密的数据。
在可选实施例中,不使用协商模块210确定传输密钥114,而是可使用配置模块212。配置模块212可用于允许用户配置有关设备200的各种选项。或者,配置模块212可专门用于定义对称传输密钥114。例如,配置模块212的用户接口可允许用户键入传输密钥114。在某些实施例中,类似的配置模块212可驻留在存储结构110的接收方上。从而,用户可随机或者基于例程来定义传输密钥114,然后,将相同的传输密钥114输入设备200(使用配置模块212)和接收方。以此方式,从来不会使传输密钥114暴露于在设备200与接收方之间传输中的威胁。然而,由于管理员必须在设备200和接收方上至少一次设置传输密钥114,从而存在一定的管理负担。
图3表示在客户服务器环境中实现存储数据的透明端到端安全的设备300的可选实施例。在一个实施例中,设备300用作为以上结合图1所述的服务器104。或者,设备300可运行在对等体系结构中。最好是,设备300与一个或多个客户机102a-c和/或对等方进行实际通信。
设备300可包括通信接口302、存储模块304和关联模块306。通信接口302用于接收加密的存储结构110和加密的存储密钥112。存储模块304在第一存储设备108b上存储加密的存储结构110,在第二存储设备108a上存储存储密钥112。
最好是,存储密钥112以加密形式由通信接口302接收。例如,发送方(例如,客户机102c)可使用设备300所知的传输密钥114对存储密钥112进行加密。从而,设备300使用安全模块308将加密的存储密钥112解密。
安全模块308可在接收存储密钥112后立刻将其解密。以此方式,每个传输密钥114可存在很短的时期。一旦解密了存储密钥112,传输密钥114就完成其目的,且不再被需要。在一个实施例中,将设备300配置成对接收的每个存储密钥112使用不同的传输密钥114。或者,可对一批存储密钥112使用单个传输密钥114。当在设备300与发送方之间首次建立起通信时,通信接口302可对传输密钥114的生命期长度和一对一或一对多关系进行协商。
安全模块308用于类似于上述加密模块204的目的。特别是,安全模块308用于使用各种加密算法按照需要进行加密或解密。最好是,加密算法为对称加密算法。在一个实施例中,安全模块308接受输入消息、密钥、用于加密或解密操作的指示符,以及可选择地接受加密算法的标识。输出采用输入消息的加密或解密的形式。
在一个实施例中,安全模块308使用传输密钥114解密存储密钥112。最好是,传输密钥114为对称加密密钥。然后,存储模块304可在第二存储设备108a上存储解密的存储密钥112。
可选的,加密模块308可使用传输密钥114解密存储密钥112,然后使用本机密钥310将解密的存储密钥112加密。以此方式,利用本机密钥310,使存储密钥112再加密。然后,存储模块304可在第二存储设备108a上存储再加密的存储密钥112。
以此方式,进一步使存储密钥112安全。最好是,本机密钥310仅为设备300所知,并且可选的,可为对称密钥。此外,安全模块308最好对所有再加密的存储密钥112使用单个本机密钥310。对存储密钥112进行加密使存储密钥112得到保护,以免在未授权用户访问第二存储设备时受到威胁。
在某些实施例中,设备300包括协商模块312和配置模块314。本领域技术人员很熟悉客户服务器体系结构。这样,本领域技术人员明白,客户机(例如,设备200)的某些模块包括在服务器(例如,设备300)中的相应模块。从而,协商模块312与发送方(例如,客户机102c)进行交互,以确定传输密钥114。当然,也可对其他要元进行协商,包括通信协议、密钥(传输和/或存储密钥)的尺寸、加密算法等。
协商获得传输密钥114的一个优点是,客户机和设备300能够对每个通信会话建立起不同的传输密钥114。以此方式,如果单个传输密钥114受到威胁,假设加密的存储密钥112也受到威胁,则仅使单个加密的存储结构110处于危险中。这些多个层次的安全防范措施要求未授权用户获得多段信息才能获得对存储结构110的访问。未授权用户还必须破译哪些信息为密钥,哪些为数据。在某些实施例中,发送方和设备300进行协商,以便对存储密钥112应用与用来对存储结构110进行加密的算法不同的加密算法。未授权用户必须确定密钥如何相关联,以及正使用哪些加密算法。使用强制性反复试验的方法,有可能会确定这些。不过,即便成功,仅使单个存储结构110受到威胁。
类似地,用户可使用配置模块314的用户接口手工地输入传输密钥114。在发送方和接收方,最好使用配置模块212,314输入同样的传输密钥114。对于所有存储密钥112,可对客户机102a-c和服务器104使用同一传输密钥114。或者,可对每个存储密钥112或对来自特定客户机102c的存储密钥112协商传输密钥114。
由于存储密钥112最好与存储结构110唯一相关联,通信接口302维护存储结构110与存储密钥112之间的关系。密钥112与存储结构110之间的一对一关系增强了每个单个文件的安全性。关联模块306便于使用关联116维护和管理该关系。特别是,关联模块306使用关联116跟踪哪个存储密钥112解密(解锁)哪个存储结构110,以及存储密钥112和存储结构110的各自位置。
在一个实施例中,关联模块306包括数据库管理系统。特别是,数据库管理系统可包括实现为层次或关系数据库116的关联116。数据库116可包括被组织成用于跟踪关于存储密钥112及其相关联的存储结构110的各种信息的多个表。由于存储结构110最好与单个存储密钥112相关联,数据库表的行可对应于由设备300当前存储的各个文件。
有益的是,关联模块306的数据库管理系统实现提供了用于跟踪许多存储结构110和相关存储密钥112的清楚的、良好构建的系统。来自单个客户机102c的备份和存档存储结构110的数量能够快速提升至数十,数千个文件,在没有数据库系统的条件下,是很难对它们进行管理的。此外,关联模块306的数据库管理系统实现提供了用于跟踪和记录现有存储结构110位置改变以及新存储结构110的添加的中心位置。或者,关联模块的不同部件可分布在各种设备300之间和/或处在客户机102c上。
图4表示根据本发明的关联模块400的一个实施例。除记录存储结构110与存储密钥112之间的关联116外,关联模块400还响应存储结构110、或存储密钥112、或二者位置的变化,来管理关联116。通常,对存储结构的存储值起作用的因素随着时间而变化。这些因素可包括有效性、安全性、完整性、备份优先级等。此外,对存储结构110保持快速访问的要求通常会随着时间推移而减少。从而,可人工地或通过存储管理系统(例如服务器104)自动地将存储结构110从主存储设备108b转移到辅助存储设备402。主存储设备108b和辅存储设备402可包括可用存储设备(包括存储介质)的各种组合。例如,主存储设备108b可包括支持直接随机存取的设备,例如硬盘,辅存储设备402可包括磁带、CD-ROM、CDRW、DVDR/W等。
一般而言,辅设备402是非常适于长期存储、可只读、具有更高的访问次数、以及可使用可移动介质的设备。出于各种原因,包括存档,释放存储设备108a-b上的空间等,会将存储结构110迁移。迁移的级别也可变化。例如,第一级别可为盘驱动器108a-b,第二级别可为磁带介质402,第三级别可为只读介质,例如CDROM或DVD。迁移的级别也可与由存储逻辑和存储设备组成的不同存储系统相对应。例如,第一级别可包括直接存取存储设备(DASD),例如企业级存储服务器,第二级别可包括虚拟磁带系统(VTS)。
在一个实施例中,由拥有存储设备108a-b(或存储系统)的计算机系统将所有访问存储结构110的请求路由到服务器104。服务器104将请求404传递到关联模块400。或者,仅将拷贝或移动存储结构110的请求路由到关联模块400。
关联模块400可包括跟踪模块406和重定位模块408。在所示实施例中的跟踪模块406可确定请求404是否用于对加密的存储结构110进行拷贝或移动。或者,如果请求404仅包括拷贝和/或移动的命令,则跟踪模块406确定是否已使用相关联的存储密钥112将被请求的存储结构110加密。
一般而言,请求404包括源位置、源文件标识、目标位置,以及可选的目标文件标识。在某些实施例中,将文件标识和位置信息包含在称为路径名的单个数据结构中。通过参照关联116以及搜索相匹配的诸如结构名的源文件标识,来进行确定。最好是,将关联116实现为具有关于结构名的索引的数据库,以便非常快速地进行该确定。
如果跟踪模块406确定请求404涉及具有相关存储密钥112的加密的存储结构110,则重定位模块408可检查请求404。在一个实施例中,重定位模块408确认源位置不同于目标位置。该确认可要求重定位模块408解析源路径名和目标路径名,然后进行比较。
如果两个位置不同,重定位模块408允许请求的拷贝和/或移动操作继续进行。重定位模块408本身可执行拷贝和/或移动操作,或借助其他系统(如文件系统和/或操作系统)来实现。重定位模块408最好确保操作成功。若如此,重定位模块408自动更新在关联116中对于特定存储结构110的信息,以使关联116中的位置信息反映在存储设备108a-b,402上作出的变化。以此方式,存储结构110的迁移不将存储密钥112与相关的存储结构110分离。
此外,跟踪模块406和重定位模块408可用于在批级别上改变关联116中的位置信息,以支持在单个操作中多个存储结构110的移动或拷贝。此外,跟踪406和重定位模块408可进行协作,以从关联116中清除信息,以反映加密的存储结构110的删除。例如,如果请求404为删除操作,重定位模块408可从关联116中的表删除一行或多行。
当然,本领域技术人员会明白跟踪模块406和重定位模块408可协作实现的其他管理操作。例如,请求可尝试在单个存储介质108a-b,402上合并加密的存储结构110和相关联的存储密钥112。跟踪模块406和重定位模块408可根据例如使用配置模块212,314设置的配置设置来专门阻止或允许该操作。
有益的是,对存储结构110和/或存储密钥112的位置改变的跟踪以及关联116的自动更新大大缓解了存储系统管理员的管理负担。以此方式,在移动或拷贝存储结构110和/或存储密钥112时,在没有手工调整关联116位置信息的管理开销情况下,提供了存储结构110与存储密钥112之间一对一关系的安全。此外,无论是否人工地或基于存储管理策略自动地发出请求404,都可管理在关联116中的位置信息。
图5表示适于实现关联116的数据结构500的代表性示例。在一个实施例中,关联116包括单个数据库表。或者,可使用多个表实现关联116。当然,也可使用其他数据结构实现关联116,包括列表、链表、数组、对象、堆栈、队列等。
数据结构500可包括例如密钥502、结构名504、结构位置506和存储密钥位置508的列。数据结构500的目的是提供对结构位置506和存储密钥位置508的快速访问。从而,当添加行510时,服务器104可生成唯一密钥512。可为密钥512建立索引,以便能够快速检索有关的行。
当客户机102c请求特定的存储结构110时,对行进行访问。请求可包括密钥502或结构名504和结构位置506。响应关于存储结构110的请求,服务器104提供加密的存储结构110和存储密钥112。关联模块306访问数据结构500以识别存储密钥位置和/或存储结构位置。然后,服务器104使用该位置信息从第一存储设备108a和第二存储设备108b检索出存储密钥112和存储结构110。
客户机102c可提供密钥502、结构名504和结构位置506,或密钥值514,以便标识单个行。或者,可将存储名504和结构位置506组合并作为路径名存储。结构名504标识出存储结构110。当可以重复结构名504时,密钥502允许唯一标识每个行510。
结构位置506通常包括管理存储设备108b的文件系统中的路径。或者,结构位置506包括适于在存储设备108a上定位存储结构110的地址的另一形式。例如,当存储设备108b为磁带驱动器时,结构位置506可将卷标识以及偏移量包括到磁带中。或者,结构位置506和/或存储密钥位置508可包括统一资源标识(URI),使得可在各种网络的存储设备108a-b上存储存储结构110和/或关联存储密钥112。最好是,在与存储密钥112不同的位置存储存储结构110。
类似地,密钥位置508包括用于定位存储密钥112的地址。在一个实施例中,密钥位置508为到在文件系统中数据文件的路径。或者,密钥位置508为在存储器设备、存储设备、可移动存储介质、数据库等内地址或其他位置指示符。在某些实施例中,数据结构500包括存储密钥112的位置。从而,可在存储密钥位置列508内直接存储存储密钥值514。
或者,管理数据库中的另一个表可存储存储密钥值514。最好将存储密钥值514按照美国标准信息交换码(ASCII)文本格式存储,不过也可按十六进制、十进制、二进制,或其他格式存储。在图5中,存储密钥值514为十六进制数据“04B7...”的文本表示。从而,存储密钥值514与56位存储密钥112的一部分对应。
在一个实施例中,通过在单个行上存储存储结构110的标识信息、存储结构110的位置信息和存储密钥508的位置信息或实际存储密钥514,来形成关联116。存储结构110的标识信息可包括密钥502和/或结构名504和结构位置506。通过更新必要的结构名504、结构位置506和密钥位置508或密钥值514,来维护关联116。通过删除适当的行510来清除关联116。
在数据结构500中可包括其他列,或按照需要在客户机102c与服务器104之间的消息中将其作为变元传递。本领域技术人员易于理解这些列,这些列可包括比所述那些更多或更少的列。可选列可包括密钥尺寸516、加密算法518和最后修改的时戳520。密钥尺寸516可包括表示用于存储密钥112的位数的数。加密算法可包括用于对存储结构110进行加密的加密算法的指示符。最后修改日期520可包括表示何时对行510进行最后修改的时戳。最后修改日期520可用于进行分析以确定重定位或迁移存储结构110的频率。未示出的其他列可包括加密算法的版本号,是否将存储密钥112以加密格式存储等。
图6的流程图表示在客户服务器环境中实现存储数据的透明端到端安全的方法600。最好是,在存储管理系统的多个客户机102a-c和服务器104之间实现方法600。方法600在客户机102c请求服务器104的存储服务时开始。具体是,客户机102c请求服务器104存储存储结构110。最好是,客户机102c和/或客户机102c的用户不知道将以具有本发明提供的多个安全级别的加密格式存储存储结构110。
起初,作为在客户机102c与服务器104之间建立通信会话的部分或在其之后,客户机102c的协商模块210与服务器104的协商模块312进行通信,以对传输密钥114进行协商602。最好是,对于传输到服务器104的每个存储结构110协商传输密钥114。
接着,密钥产生器202可确定604存储密钥112的适当位数。例如,密钥产生器202可参考基于存储结构110的类型定义位数的本地安全策略。当然,在确定是否对存储结构110进行加密时还可考虑其他因素,以及若如此,还考虑多少位用于存储密钥112。
然后,密钥产生器202最好产生606随机存储密钥112。加密模块204使用存储密钥112将存储结构110加密608。加密模块204使用传输密钥114加密610存储密钥112。接下来,通信接口206将加密的存储结构110和加密的存储密钥114传输612到服务器104。
服务器104的通信接口302接收存储密钥112和存储结构110。安全模块308使用与客户机102c共享的传输密钥114解密614存储密钥112。接下来,存储模块304在第一存储设备108b上存储加密的存储结构110,在第二存储设备112上存储存储密钥112。第一存储设备108b可为客户机102c指定的目标。或者,存储设备304选择存储结构位置506。最好是,关联模块306确定存储密钥位置508。在某些实施例中,存储密钥位置508在关联116内。关联模块306将存储密钥位置508和存储结构位置506相关联618,然后,方法600结束620。
对关联116进行管理,以便利用存储结构110的标识信息,能够容易地定位相关联的存储密钥112,并将其随同加密的存储结构110一起提供给客户机102c。然后,加密模块204能够使用存储密钥112将存储结构110解密,并在需要时,将解密的存储结构110提供给客户机102c。响应存储结构110或存储密钥112的移动或拷贝操作或存储结构110的名称变化,可修改关联116。
最好是,使用类似以上的处理来检索存储结构110。即,使用传输密钥114加密存储密钥112。一旦客户机102c接收到加密的存储结构110和加密的存储密钥112,客户机102使用传输密钥114解密存储密钥112,并使用存储密钥112解密存储结构110。
本领域技术人员能很快认识到本发明提供的潜在优势。存储管理系统提供可由客户机102c控制的多个加密保护级别的能力,提供了较高的安全性和灵活性。此外,根据需要以逐个结构的方式跟踪和修改存储密钥和存储结构之间的关联。从而,每个存储结构110具有更高的安全级别,存储密钥的威胁不会自动地包括设备上的所有存储结构。存储密钥和存储结构还存储在不同的物理设备上,以使得对一个存储设备的未授权物理访问不会自动地提供对存储结构110的访问。此外,可将关联116存储在第三设备上,以为存储结构110提供额外保护。
在不偏离其实质或关键特性的条件下,还可采用其他具体形式实现本发明。在所有方面,所述实施例仅出于说明目的,而并非具有限定性。因此,本发明的范围由所附权利要求所表述,而并非由上述描述表述。在权利要求的含义以及等效范围内的所有改变均包含在其范围内。
在该说明书中所描述的许多功能部件均表述为模块,以便更特别地强调其实现独立性。例如,可将模块实现为包括定制VLSI电路或门阵列的硬件电路、诸如逻辑芯片、晶体管之类的现有半导体,或其他分立元件。模块还可使用诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等的可编程硬件设备实现。
模块还可采用由各种类型处理器执行的软件来实现。例如,所指出的可执行代码的模块可包括一个或多个物理或逻辑计算机指令块,例如可将该块构造成对象、程序、函数或其他结构。然而,所指出的模块的可执行代码无需在物理上处在一起,而是可包括存储在不同位置的不同指令,当逻辑上将它们连接在一起时,包括该模块并对于该模块实现规定目标。
诚然,可执行代码模块可为单个指令或多个指令,且甚至可分布在数个不同的代码段上,不同程序之间,以及在数个存储器设备上。类似地,此处将操作数据说明为可在模块内,并可以采用任何合适的形式进行实施,以及被构造在任何合适类型的数据结构内。可将操作数据聚集为单个数据集,或可将其分布在不同位置上,包括在不同存储设备上,以及可至少部分地使其仅作为系统或网络上的电信号存在。
在本说明书中,“优选实施例”,“一个实施例”或“实施例”意味着结合该实施例所述的特定特征、结构或性质至少包含在本发明的一个实施例中。从而,在本说明书各个位置处出现的短语“在优选实施例中”,“在一个实施例中”或“在实施例”中,并非必须指相同的实施例。
此外,在一个或多个实施例中可按照适当的方式将所述的特征、结构或性质进行组合。在下面的描述中,提供许多具体细节,诸如编程、软件模块、用户选择、用户界面、网络事务、数据库查询、数据库结构、硬件模块、硬件电路、硬件芯片等,以提供对本发明实施例的详尽理解。不过,相关领域技术人员将意识到,可以在不具有一个或多个这些具体细节的条件下,或者通过其他方法、部件、材料等来实现本发明。在其他情形中,并未详细表示或描述出众所周知的结构、材料或操作,以避免使本发明各方面变得不明显。
权利要求
1.一种用于客户服务器环境中存储数据的透明端到端安全的设备,所述设备包括密钥产生器,被配置成为与存储会话相关联的每个存储结构产生随机存储密钥,存储密钥与存储结构唯一关联;加密模块,被配置为使用存储密钥加密存储结构,并使用接收方所知的传输密钥将存储密钥加密;以及通信接口,被配置为将加密的存储结构和加密的存储密钥传输到接收方,接收方被配置为在第一存储设备上存储加密的存储结构,使用传输密钥将加密的存储密钥解密,以及在物理上不同于第一存储设备的第二存储设备上存储存储密钥。
2.根据权利要求1的设备,还包括关联模块,被配置为管理第一存储设备上加密的存储结构与第二存储设备上加密的存储密钥之间的关联。
3.根据权利要求1的设备,其中,接收方包括安全模块,安全模块被配置为使用本机密钥将解密的存储密钥加密,使得将存储在第二存储设备上的存储密钥加密,本机密钥仅为接收方所知。
4.根据权利要求1的设备,还包括协商模块,被配置为在发送方与接收方之间协商传输密钥。
5.根据权利要求1的设备,其中,存储结构包括发送方的文件系统内的文件。
6.根据权利要求1的设备,还包括配置模块,被配置为定义与接收方所使用的传输密钥相同的对称传输密钥。
7.根据权利要求1的设备,其中,存储密钥和存储结构的至少之一包括标识用于解密存储结构的加密算法的指示符。
8.一种用于客户服务器环境中存储数据的透明端到端安全的设备,所述设备包括通信接口,被配置为从发送方接收加密的存储结构和加密的存储密钥,存储结构由发送方使用发送方所产生的存储密钥加密,存储密钥与存储结构唯一相关,使用与发送方共享的传输密钥加密存储结构;存储模块,被配置为在第一存储设备上存储加密的存储结构,在物理上不同于第一存储设备的第二存储设备上存储存储密钥;以及关联模块,被配置为管理第一存储设备上加密的存储结构与第二存储设备上加密的存储密钥之间的关联。
9.根据权利要求8的设备,还包括安全模块,被配置为使用传输密钥将存储密钥解密,使得存储模块所存储的存储密钥为解密的存储密钥。
10.根据权利要求8的设备,还包括安全模块,被配置为使用传输密钥将存储密钥解密,使用本机密钥将存储密钥再加密,使得存储模块所存储的存储密钥为再加密的存储密钥。
11.根据权利要求8的设备,还包括协商模块,被配置为与发送方协商传输密钥。
12.根据权利要求8的设备,其中,传输密钥为适用于对称加密算法、用于加密和解密数据的对称密钥。
13.根据权利要求8的设备,还包括配置模块,被配置为定义与发送方器所使用的传输密钥相同的对称传输密钥。
14.根据权利要求8的设备,其中,存储密钥和存储结构之一包括标识用于解密存储结构的加密算法的指示符。
15.一种用于客户服务器环境中存储数据的透明端到端安全的系统,所述系统包括多个备份-存档客户机,每个客户机被配置为生成针对特定存储结构的唯一存储密钥,使用所述存储密钥将存储结构加密,使用共享的传输密钥将存储密钥加密,其中,存储结构包括在备份-存档客户机的至少之一的主机上定义的物理文件;存储服务器,被配置为从客户机之一接收加密的存储结构和加密的存储密钥,使用共享的传输密钥将存储密钥解密,在不同于存储所述存储密钥的第二存储设备的第一存储设备上存储加密的存储结构;和在操作中将客户机与服务器连接以便进行网络通信的网络。
16.根据权利要求15的系统,其中存储服务器包括关联模块,关联模块被配置为管理第一存储设备上加密的存储结构与第二存储设备上加密的存储密钥之间的关联。
17.根据权利要求16的系统,其中,关联包括存储密钥位置和存储结构位置。
18.根据权利要求16的系统,其中,关联模块还被配置为响应存储密钥和加密的存储结构至少之一的重定位对关联进行修改。
19.根据权利要求16的系统,其中,关联模块包括关系数据库。
20.根据权利要求15的系统,其中,存储服务器包括安全模块,安全模块被配置为使用共享传输密钥将存储密钥解密,使用本机密钥将存储密钥再加密,使得将存储在第二存储设备上的存储密钥加密,本机密钥仅为存储服务器所知。
21.根据权利要求15的系统,还包括协商模块,被配置为在备份-存档客户机之一与服务器之间协商传输密钥。
22.根据权利要求15的系统,其中,传输密钥为适用于与对称加密算法、用于加密和解密数据的对称加密密钥。
23.根据权利要求15的系统,还包括配置模块,被配置为定义相同对称传输密钥以用作为备份-存档客户机和存储服务器的传输密钥。
24.根据权利要求15的系统,其中,存储密钥和存储结构之一包括标识用于解密存储结构的加密算法的指示符。
25.一种信号承载介质,其有形地体现可由数字处理设备执行以实现用于客户服务器环境中存储数据的透明端到端安全的操作的机器可读指令的程序,所述操作包括用于为特定存储结构产生唯一存储密钥的操作;用于使用存储密钥加密存储结构的操作;用于使用为发送方和接收方所知的传输密钥对存储密钥进行加密的操作;用于将加密的存储结构和加密的存储密钥从发送方向接收方传输的操作;用于使用传输密钥将存储密钥解密的操作;和用于将加密的存储结构存储在第一存储设备上,以及将解密的存储密钥存储在物理上不同于第一存储设备的第二存储设备上的操作。
26.根据权利要求25的信号承载介质,还包括用于在发送方与接收方之间协商传输密钥的操作。
27.根据权利要求25的信号承载介质,还包括用于将存储密钥位置与存储结构位置相关联的操作。
28.根据权利要求25的信号承载介质,还包括用于响应存储密钥和加密的存储结构至少之一的位置改变,对包括存储密钥位置和存储结构位置的关联进行修改的操作。
29.根据权利要求25的信号承载介质,其中存储结构包括发送方的文件系统内的文件。
30.根据权利要求25的信号承载介质,还包括用于以相同对称传输密钥配置发送方和接收方的操作。
31.根据权利要求25的信号承载介质,其中,存储密钥和存储结构之一包括标识用于解密存储结构的加密算法的指示符。
32.根据权利要求25的信号承载介质,还包括基于与存储结构相关联的安全策略确定密钥尺寸和加密算法至少之一的操作。
33.根据权利要求32的信号承载介质,其中,发送方基于本地安全策略确定密钥尺寸。
34.根据权利要求25的信号承载介质,其中,发送方至少部分基于与存储结构相关联的数据来产生存储密钥。
35.根据权利要求25的信号承载介质,其中,第一存储设备和第二存储设备至少之一包括可移动计算机可读介质。
36.根据权利要求25的信号承载介质,还包括用于从客户机接收关于加密的存储结构的请求的操作;用于从第一存储设备检索存储密钥,从第二存储设备检索加密的存储结构的操作。用于使用传输密钥将存储密钥加密的操作;用于将加密的存储密钥和加密的存储结构传输到客户机的操作;在客户机处使用传输密钥将存储密钥解密的操作;和没有用户参与地使用解密的存储密钥将存储结构解密,并在客户机上存储解密的存储结构的操作。
37.一种用于部署计算基础结构的方法,包括将计算机可读代码集成到计算系统中,其中,与计算系统相结合所述代码能够执行以下操作为特定存储结构产生唯一存储密钥;使用存储密钥加密存储结构;使用为发送方和接收方所知的传输密钥,对存储密钥进行加密;将加密的存储结构和加密的存储密钥从发送方向接收方传输;使用传输密钥将存储密钥解密;和将加密的存储结构存储在第一存储设备上,以及将解密的存储密钥存储在物理上不同于第一存储设备的第二存储设备上。
38.根据权利要求37的方法,还包括将存储密钥位置与存储结构位置相关联。
39.根据权利要求37的方法,还包括响应存储密钥和加密的存储结构至少之一的位置改变,对定义存储密钥位置和存储结构位置的关联进行修改。
40.一种用于客户服务器环境中存储数据的透明端到端安全的设备,所述设备包括为特定存储结构产生唯一存储密钥的装置;使用存储密钥加密存储结构的装置;使用为发送方和接收方所知的传输密钥对存储密钥进行加密的装置;将加密的存储结构和加密的存储密钥从发送方向接收方传输的装置;使用传输密钥将存储密钥解密的装置;和将加密的存储结构存储在第一存储设备上,以及将解密的存储密钥存储在物理上不同于第一存储设备的第二存储设备上的装置。
全文摘要
本发明包括与服务器进行通信的一个或多个客户机。客户机期望将存储结构发送到存储服务器。客户机与服务器关于传输密钥进行协商。客户机产生专门与存储结构相关联的存储密钥。客户机使用存储密钥将存储结构加密,使用传输密钥将存储密钥加密。将加密的存储结构和加密的存储密钥发送到服务器。服务器使用传输密钥将存储密钥解密。服务器在与用于存储存储密钥的存储设备不同的存储设备上存储存储结构。最好是,跟踪关于存储结构位置、存储密钥位置,或存储结构名的任何变化,并对关于存储结构的位置和对应存储密钥的位置的关联进行适当修改。
文档编号G06F21/00GK1787431SQ20051012465
公开日2006年6月14日 申请日期2005年11月14日 优先权日2004年12月9日
发明者科林·S.·道森, 肯尼思·E.·汉尼甘, 格伦·哈特拉普, 阿维沙伊·H.·霍奇伯格, 唐纳德·沃伦, 克里斯托弗·扎里姆巴 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1