使用存储租约保护数据完整性的制作方法与工艺

文档序号:12013266阅读:246来源:国知局
使用存储租约保护数据完整性的制作方法与工艺
使用存储租约保护数据完整性相关申请的交叉引用本申请要求2010年10月27日提交的,标题为“ProtectingDataIntegrityWithStorageLeases(使用存储租约保护数据完整性)”的美国临时专利申请No.61/407,417的优先权,为所有目的,通过引入将其并入本文。

背景技术:
本发明涉及计算机安全和数据存储系统领域,并且尤其涉及由于误操作或恶意操作,用于保护所存储数据完整性和机密性的系统和方法。社会对数字信息日益增长的依赖性强调保护以数字格式存储的数据的重要性。公司、政府及其它专业组织需要保护他们的数字资产,因为数据丢失或泄漏能够直接转化成操作中断、经济损失或不可挽回的文化产品和历史文物损失。甚至个人也越来越多地存储有价值的数字信息,诸如私人经济和专业文件,以及照片、视频、私人信件及其它情感价值可观的信息。对数字存储数据的持久性和完整性及机密性存在着许多威胁,范围包括:存储介质和设备的故障或损毁,软件堆栈(例如设备驱动程序、存储系统软件、操作系统或应用程序)的不同部分内的漏洞,操作员错误(有意或无意的),或恶意入侵者的蓄意操纵或利用数据访问权限在机器上运行的恶意软件。这些威胁中的许多都能够通过冗余存储数据来减轻。例如,纠错码能够屏蔽位错误,分条(striping)或镜像能够屏蔽块或设备故障,而备份数据拷贝能够启动从灾难性存储系统故障中恢复。然而,来自恶意入侵者、病毒、蠕虫、软件漏洞及操作员错误的威胁可以影响在线和可写的所存储数据的所有拷贝。冗余不足以单独减轻这些威胁。为了保护数据免受这种威胁,备份拷贝目前必须维持在离线或一次写入存储器(storage)内。企业存储器解决方案包括这种档案库存储器。通常,数据备份在磁带上,该磁带在备份会话后被卸下(un-mounted)。磁带盒、磁光盘和超高密度光盘提供一次写入选项,在介质被装上时,一次写入选项为现有数据提供附加保护。最终,高端网络附连存储系统能够被编程以便只接受第一次写入至给定存储块(WORM(一写多读)存储器),尽管底层存储器是基于传统磁盘驱动器。然而,个人家庭用户和小型企业通常没有时间、专门知识或预算来利用这种先进解决方案。如磁带机器人和网络附连WORM存储系统的高端解决方案是完全自动化的,但过于昂贵;而低端一次写入光盘和磁带驱动器虽然廉价,但需要管理者勤奋和定期关注。另外,对于企业和通过比需要更长时期地保留数据的垃圾存储容量而言,现有一次写入存储解决方案对于管理者是昂贵的。

技术实现要素:
本发明的实施例包括存储租约,其指定诸如读限制或写限制的访问限制,和用于诸如数据存储设备内的一个或多个数据存储块的一个或多个数据单元时间段。存储租约在存储租约时间段内限制对它们关联的数据的访问。存储租约可以被分配给具体数据单元,诸如数据存储设备内的各个数据存储块或多组数据存储块。数据存储设备可以包括任意数量的不同存储租约,其被分配给其数据存储块的不同部分。启动存储租约设备可以提供安全证书或其它形式的密码认证,以便验证数据访问操作已经按要求执行并且它们的存储租约正在被强制实施(enforce)。为了强制实施存储租约,启动存储租约设备的实施例将用于数据单元的存储租约信息与目前时间进行比较。启动存储租约设备可以包括与存储客户端访问相隔离的时钟或可以从一个或多个可信时间服务器接收时间证书。存储租约可以结合备份应用程序使用。本发明的实施例可以在用于快照保留期(例如,每日快照保存一周,每周快照保存一个月等)的存储租约情况下通过存储快照与这些类型的增量备份应用程序一起使用。在这些实施例中,存储租约为快照提供免受软件错误、操作员差错、恶意软件及其它系统入侵的额外保护等级。存储租约的其它应用程序包括对等数据存储和云存储系统。附图说明将参考附图描述本发明,其中:图1示出根据本发明一个实施例的一种结合存储租约执行存储操作的方法;图2示出根据本发明一个实施例的支持存储租约的存储系统的组件;和图3示出适用于实施本发明实施例的计算机系统。具体实施方式本发明的实施例包括被称为存储租约的存储抽象过程。存储租约指定诸如读限制或写限制的访问限制,和用于诸如数据存储设备内的一个或多个数据存储块的一个或多个数据单元时间段。存储租约在存储租约时间段内限制对它们关联的数据的访问。例如,与存储租约写限制相关联存储的数据在存储租约时间段不能被重写。在存储租约时间段内,这个关联数据被保护,以免受由于安全破坏、软件错误或意外数据删除导致的损坏。和一次写入存储不同,在存储租约情况下,诸如数据存储块的关联数据单元能够在租约时间段到期后被回收。存储租约可以被分配给具体数据单元,诸如数据存储设备内的各个数据存储块或多组数据存储块。数据存储设备可以包括任意数量的不同存储租约,其被分配给数据存储设备的数据存储块的不同部分。存储租约提供强大的抽象过程,并且能够使用小型可信计算基进行实施。例如,存储租约可以实施在机械盘或固态盘的固件内,以便访问限制和时间段被强制实施,而不管操作系统、文件或存储软件内的错误或妥协。一般而言,存储租约可以限制对数据的读和/或写访问。另外,存储租约为两种类型时间段之一限制读和/或写访问。首先,“现在的”存储租约可以从存储租约产生的时间(例如,现在)直到一个具体的未来时间来限制数据访问。其次,“未来”存储租约可以从存储租约产生的时间直到一个具体的未来时间来允许数据访问。然后未来存储租约从这个未来时间段往后(无限期地或直到指定的另一个未来时间)限制数据访问。表1示出通过结合读和写限制的现在和未来存储租约而启动的不同应用程序的数个实例。表1-存储租约应用程序与写限制相关联的现在存储租约可以用于数据保护应用程序。在这种类型存储租约的情况下存储的数据可以不更改或删除直到存储租约时间段到期(如果有)。与读限制相关联的现在存储租约可以用于“时间囊”应用程序。在这种类型存储租约的情况下存储的数据可以不被读直到存储租约时间段结束。这防止数据被读,直到一个未来的指定时间为止,很象时间囊保存对象以便到未来被发现。与写限制相关联的未来存储租约可以用于数据快照应用程序。数据可以按照存储租约的指定从存储租约产生的时间直到存储租约时间段的开始被更改或删除。此刻,禁止进一步改变数据。因而,这种存储租约允许应用程序在具体时刻保存数据的“快照”。与读限制相关联的未来存储租约可以用于数据到期应用程序。与这种存储租约相关联的数据可以按照存储租约的指定从存储租约产生的时间直到存储租约时间段的开始被读。此刻,禁止进一步读此数据。这种存储租约允许数据到期并且在指定时间段后自动消失。在另一个实施例中,如果具有读限制的未来存储租约的存储租约时间段已经开始,则数据存储设备可以将关联的存储块或其它数据单元标记为未使用的,从而使它们可以被回收并且用新数据重写。在另一些实施例中,具有读和/或写限制的未来存储租约除了租约开始时间外还可以包括租约到期时间。这使未来存储租约在一个未来时间开始限制读和/或写访问,然后在更后来的时间结束其限制。图1示出根据本发明一个实施例的一种结合存储租约执行存储操作的方法100。步骤105接收一个或多个存储操作。存储操作可以包括数据写操作和数据读操作。在一些实施例中,存储租约接口类似于诸如磁盘驱动器或其它非易失性数据存储设备的块存储设备的接口。在这些实施例中,存储操作包括这些属性:指定数据访问类型(例如读或写)和一个或多个存储块或其它被访问的数据单元的地址或其它标识符。在块层次上定义存储租约接口允许在存储设备的固件(例如磁盘驱动器)内实施存储租约。这种实施只取决于磁盘固件和硬件的完整性,并且对于所有更高层次软件的漏洞和泄露是健壮的。表2中描述存储租约接口的一个实施例。表2-实例存储租约接口如表2所示,实例存储租约接口包括与传统块设备接口相背离的三个元件:租约时间段:存储操作可以包括定义租约时间段的一个或多个变元,诸如隐式租约时间段开始时间和显式租约时间段到期时间,还包括定义租约时间段的开始和结束时间的两个时间段,和/或用于新近被写成变元的块的租约的租约开始时间和租约持续时间t。如果目标块目前被租约保护,或准予租约将超过速率极限R,则诸如读或写的存储操作失败。还存在用于延长现有块的租约时间段的更新操作,和用于获得现有块的租约时间段和类型的证明操作。证书:存储租约接口允许客户端在利用给定租约类型和周期已经写数据后获得签名租约证书。注意到,证书必须覆盖租约的开始和结束时间(并非租约期间)以防止重放攻击。批处理:为了分摊用于证书的签名生成开销,一系列存储租约操作能够一起进行批处理并且为该批处理发出单个证书。对于每个批处理将签名数量减少到一个签名而非每个操作一个签名,这极大地改进了例如由许多块写入组成的大文件写入的性能。在另一个实施例中,诸如设备驱动程序、操作系统和用户应用程序的高层次软件和/或硬件可以对存储操作分组或划界成批处理具有一定的控制,从而使证书能够识别诸如文件或目录而非块的对象。因此,存储接口的一个实施例包括哈希命令。该实例哈希命令允许应用程序在批处理内的任何时间获得作为批处理的一部分的一系列数据块的哈希。对于证书随后何时生成,这些哈希值正是要被证明的。在一个实施例中,证书具有下列格式:[Hash(o1+o2+..+on),D]σD,其中o1,…,on是批处理内的一序列操作,正如由应用程序划界的那样,+指示联结(concatenation),而D指示存储租约设备。另外,oi是批处理内ith操作的操作标识符、变元和结果的联结。步骤110访问用于数据块或数据存储的其它单元的存储租约,数据块或数据存储的其它单元由接收到的存储操作指定,以便确定所请求的存储操作是否可以完成。例如,已经预先写入的数据块可以已经与存储租约相关联。在一个实施例中,数据存储设备留出存储设备上的一部分数据块来存储存储租约信息,诸如对于每一个原始数据块的租约到期时间。存储存储租约信息的该部分数据块被称为租约块。例如,假定设备寿命为10年,则12位时间戳对于一天的存储租约时间粒度是足够的。使用这些时间戳,用于存储租约信息的开销(对于每个4KB数据块而言,用于读/写位屏蔽的两个时间戳加两位),小于数据存储设备存储容量的0.08%。在其它实施例中,存储租约信息可以存储在与数据块分开的存储设备内,诸如在诸如闪速存储器的非易失性存储器设备内。因为数据存储设备必须先访问每个存储块的关联存储租约,然后才在该存储块上写或执行任何其它存储操作,所以本发明的一个实施例包括诸如动态随机存取存储器(DRAM)或静态随机存取存储器(SRAM)的快速存储器,用于将租约块的高速缓存维持在块存储设备内。在这个实施例中,在用于写的各个批处理的证书返回或清除操作完成前(然后应用程序才能够确信存储租约成功产生),被更改的租约块从高速缓存清除到诸如磁盘或固态存储设备的非易失性数据存储介质内的相应租约块。对于基于磁盘的块存储设备而言,本发明的一个实施例将物理磁盘上的租约块分组成大小至少与存储租约高速缓存的高速缓存线相同的子集。因此,一旦磁盘头定位为期望的租约块,就能够利用可能的空间局部性的优势将租约块的整个子集高效写至高速缓存/从高速缓存高效读出租约块的整个子集。在另一个实施例中,租约块子集等距设置在磁盘上,使得子集含有用于物理上接近这个子集的数据块的存储租约信息。受制于选择的租约块子集大小,这个选择将使数据块和含有关联租约的租约块之间的查找距离最小。如果存储设备是基于固态存储设备或查找时间不适当的其它设备,则租约块的这种布置可以省略。步骤115确定目前的存储租约,用于由接收到的存储操作指定的数据块。在一个实施例中,步骤115将代表目前的日期和操作类型(读/写)的值与时间戳值及存储租约的r/w位屏蔽进行比较,该存储租约用于由接收到的存储操作指定的每个存储块。如果目前时间在由用于尝试操作类型的存储租约指定的许可时间段内,则然后方法100从步骤115进行到用于这个存储块的可选步骤120或步骤125。否则,否定对用于存储操作的这个存储块的访问,并且方法100从步骤115进行到步骤140。例如,存储租约可以指定,到存储块的写操作被禁止直到具体日期和时间后。如果存储操作是写操作,则步骤115将目前时间与这个时间戳值进行比较。如果目前时间在这个时间戳值后,则然后方法100从步骤115进行到用于这个存储块的可选步骤120或步骤125以便潜在地允许这个写操作进行。在另一个实施例中,如果存储租约指定,在指定日期前或后禁止读操作,并且存储操作是读操作,则步骤115将目前时间与这个时间戳值进行比较以便决定是否许可读操作进行。如果租约块变得损坏,则存储设备能够不再验证用于对应数据块的存储操作是否应该被允许。本发明的实施例可以用多种方式处理这种状况,诸如:(i)复制租约块和存储租约信息,其将增加存储租约信息的开销;(ii)乐观地允许存储操作进行,如果存储操作分别是写或读操作,则有数据丢失或泄漏的潜在风险;和/或(iii)依据租约信息损坏检测,将所有对应存储租约设置到存储设备的寿命并且当允许读时不允许写。作为一种进一步防止手段,本发明的一个实施例将租约块和存储租约信息与由存储客户端的直接访问相隔离,以便防止恶意或误损坏租约块。因为步骤115将存储租约时间戳与目前时间进行比较,所以本发明的实施例包括使用至少一个独立来源的目前时间,其不能被攻击者禁用或更改。在一个实施例中,支持存储租约的存储设备包括内部硬件实时时钟和电池以便提供安全的时间基准。本发明的另一个实施例依靠安全时间证书来提供安全的时间基准。这个实施例依靠可以以粗粒度对时间推移进行跟踪的假定,因为存储租约通常是长期的,例如数月。因而,一天量级的粗精度对于一些应用程序是可接受的。鉴于此观察,本发明一些实施例足够使操作系统周期性地将通过可信时间服务器生成的签名时间证书提供给设备。在一个实施例中,可信网络时间服务器经由潜在地包括互联网的局域和/或宽域网络连接将已密码签名和/或已认证的时间证书提供给存储客户端。然后存储客户端通过存储设备接口或其它应用编程接口(API)将时间证书提供给存储设备。可信网络时间服务器可以高速缓存时间证书并且给大量存储客户端供应拷贝。为了防止可信网络时间服务器被包含,可以使用诸如离线签名密钥的安全程序和手动验证时钟。例如,一天一次,新证书能够在离线计算机上生成并且使用象优盘(USBstick)那样的便携式存储设备手动传送给在线可信时间服务器。这种时间服务器能例如通过启动存储租约存储设备的供应商或其它可信第三方进行操作。在又一个实施例中,这个方案能够通过需要存储设备从不同的独立可信源接收多个时间证书被进一步加强。在一个实施例中,存储设备可以一天一次或以一些其它有规律的时间间隔需要最新时间证书。在此,设备通过提供随机数和坚持随机数被包括在按照由时间服务器签名的时间证书中来确保时间证书的新鲜度。在另一个实施例中,存储设备可以通过测量存储设备的周期性的机械、电子或其它类型的过程,诸如对硬盘驱动器的主轴转速进行计数以确定大概的时间推移,来确定是否需要新时间证书(例如推移24小时或另一个时间间隔)。在另一个实施例中,每次时间服务器打开时存储设备都可以从时间服务器要求最新时间证书。即使时间源免于攻击,但恶意应用程序仍能通过利用被设置为很遥远的未来时间的存储租约时间戳来发出大量存储写,而对存储设备的性能进行阻碍。这将具有浪费存储设备内所有未使用的存储器的效果。为了减轻这种风险,本发明的一个实施例使用存储空时极限来限定存储资源能够被消耗的速率。可选步骤120确定接收到的存储操作是否超过存储客户端的存储空时极限。在一个实施例中,存储空时极限的特征为在由存储客户端使用的存储空间量和存储租约限定对数据的访问的时间段这两个方面,在存储设备内被存储租约使用的资源。例如,可以将存储空时值表示为si=ni*ti,其中ni是被覆盖的数据量,而ti是租约i的时间段,用于不允许写的租约(不允许读只消耗无空时的租约)。设备内交付的总空时S是S=∑i∈LSi,其中L是设备内不允许写的的现有租约集(无论到期与否)。为了减轻填充攻击的空时,启动存储租约设备的一个实施例限定存储空时能够被新租约消耗的速率,即其中R是存储空时速率极限。在一个实施例中,存储设备的存储空时速率极限R可以只由安装设备的管理者设置一次;这个极限R应该被选择成对攻击者能够在给定时间段内消耗的存储空时进行限制。例如,假定在不大于Tdetect的时间段内检测出病毒感染或安全破坏,并且具有容量C的设备具有期望寿命L,即,在L个单位时间后,当以其最大速率使用时,设备将由存储租约填充。于是,本发明一个实施例通过设置检测能够确保,攻击者能够例如最多消耗设备总空时的1%同样,可以将存储空时速率极限设置为其它值以便将潜在攻击者限定到存储设备总容量的任意的一小部分。选择存储空时速率极限R涉及限定攻击者能够造成的损害和准许合法存储租约以足够大的速率覆盖峰值要求之间的折衷方案。然而在实践中,满足后一个问题不象看起来那么关键。首先,在安装新存储设备期间,例如安装操作系统或数据库时,通常存在对空时的高要求。在另一个实施例中,在设备初始化时间段内存储空时速率极限可以被禁用,然后在初始化后被设置并启动。其次,如果租约(例如,文件系统或备份应用程序)的合法用户在峰值要求期间超过存储空时速率极限,则他们能够围绕存储空时速率极限工作;他们能够简单地要求具有比所期望的更短的时间段的租约,并且租约到期之前延长它。另一方面,在检测之前攻击者只有有限的时间,并且最多消耗的存储能够等于存储空时的R*Tdetect。不过,如果长时间未检测到攻击,则大量存储空时就可能浪费。为了从这种事件启动恢复,启动存储租约设备的另一个实施例可以在设备电路板上提供硬件开关(诸如双列直插式组件(DIP)开关或跳线器),其能够用于重新设置所有的租约和速率R。该开关能够由专家操作,作为系统恢复的一部分。在这个实施例中,存储租约的安全担保不受这种硬件开关存在的影响,因为它不能被任何软件动作激活。在另一个实例中,使用从可信系统接收到的软件命令、使用密码术来验证可信系统的身份,可以重新设置存储设备的存储租约。可选步骤120确定与接收到的存储操作相关联的存储客户端是否已经超过存储空时速率极限。在一个实施例中,步骤120检查在过去24小时内由于新的或延长的租约导致的空时存储租约交付的总和,并且如果速率超过存储空时速率极限R就拒绝请求。如果存储操作被拒绝,则方法100进行到步骤140。当然,系统能够以更短的存储租约时间段和因而造成的更小的存储空时交付而重试被拒绝的存储操作。在一些情况下,存储操作可以被否定,因为如果存储设备依靠安全的外部时间基准,则存储设备的实时概念迟于实际时间或设备已经很长时间(例如,多于24小时或自最后一次上电后)未接收到新鲜的时间证书。在这种情况下,存储客户端可以提供具有最近时间证书的存储设备以解决这个问题并且重试操作。如果接收到的存储操作满足步骤115和可选步骤120,则步骤125许可接收到的存储操作进行。在完成诸如数据读或写的存储操作后,方法100进行到步骤130。一些诸如数据写的存储操作可以添加存储租约或更改现有的存储租约。必要时可选步骤130添加或更新用于关联数据的存储租约信息。存储租约数据可以被添加或更新至数据存储介质上和/或存储租约信息的高速缓存内的租约块。如果存储操作不需要添加或更新存储租约信息,则步骤130可以省略。可选步骤135生成安全证书以响应于成功完成一个或多个接收到的存储操作。安全证书提供密码安全确认,即,利用所请求的存储租约时间段将数据读或写至启动存储租约设备。当启动存储租约设备被附连至可能泄露的存储客户端时安全证书是有用的。例如,用户可以具有两个存储客户端,诸如在家庭或公司网络中的两台计算机m1和m2。存储客户端m2被病毒感染,但存储客户端m1未被病毒感染。当存储客户端m1试图使用存储客户端m2的启动存储租约设备备份数据时,在存储客户端m2上运行的恶意软件可能起到的作用是:如果它已经存储了数据但实际上它丢弃数据,导致存储客户端m1错误地相信数据已经被备份。为了防止这种攻击,在存储客户端m1上的诸如备份应用程序的应用程序能够从启动存储租约设备请求安全证书。这个安全证书提供写操作的密码签名确认。在一个实施例中,通过启动存储租约设备使用本技术领域内用于验证实体的身份的任何已知的密码技术生成安全证书,包括对称和/或非对称密钥密码术、数字签名、密码哈希与校验和,及可信的证书认证中心。在另一个实施例中,安全证书应该覆盖租约的开始和结束时间(而非租约期间)以便防止重放攻击。安全证书应该使用足够强大的密码基元来防止对签名密钥的攻击。一种实施方式依靠存储设备的计划过时(plannedobsolescence)。因为存储设备的寿命通常为10年量级,所以密码签名密钥和密码技术只需要在那个时间段是安全的。在这个实施方式中,不需要更新设备上的密码库或密钥。必要的密钥能够被分配,并且一旦设备被设备制造商部署就要验证它们的有效性;密码算法能够随着每个新设备的生成而被升级。在一个可选实施例中,密码基元和技术可以经由来自可信源的固件更新而被更新。在一些实施方式中,为每个存储操作生成单独的安全证书可能招致相当大的性能成本。为了缓解这种情况,存储设备的实施方式可以为存储操作的组或批处理生成安全证书,由此将证书生成的频率减少至性能无关紧要的程度。例如,在多个现有存储设备内使用的典型嵌入式ARM处理器将足够迅速生成用于存储操作批处理的签名。另外,与存储操作批处理相关联的状态不需要多于几百个字节,并且能够存储在存储设备控制器的现有随机存取存储器(RAM)内。在另一个实施例中,密码协处理器或可信平台模块可以用于启动更先进、更频繁或更细微粒度生成的数字签名。在另一个实施例中,启动存储租约存储设备可以使用用于其它目的的安全证书,诸如在来自诸如对等存储系统或云存储的互不信任管理域的多方需要进行交互的环境下提供存储提交的证明。在完成接收到的存储操作和存储租约信息的可选更新和/或安全证书生成后,步骤140将存储操作的结果返回给存储客户端。如果存储操作是数据写,则步骤140可以返回对写操作的确认和可选地返回对安全证书的确认。如果存储操作是数据读,则步骤140可以返回被存储客户端请求的数据。如果存储操作被步骤115或120否定,则步骤140可以返回错误消息,其指示存储客户端所请求的存储操作不能完成。图2示出根据本发明一个实施例的支持存储租约的存储系统200的组件。存储系统200包括一个或多个非易失性数据存储设备205,诸如硬盘驱动器和/或固态或闪速存储器存储设备。如果存储系统200包括多个数据存储设备205,则出于由存储客户端数据访问的目的,这些可以被布置成单个或多个逻辑存储设备。另外,多个数据存储设备205可以被配置用于数据访问最优化和/或数据冗余,诸如价格便宜具有冗余能力的磁盘阵列(RAID)配置。存储系统200内的一个或多个数据存储设备205可以包括用户数据210和存储租约数据215。用户数据210可以以存储块形式进行布置,该存储块包括用户数据、纠错信息、寻址或访问信息,和/或文件系统信息。存储租约数据215可以以租约块形式进行布置,该租约块存储诸如用于各个或组的存储块的时间戳和操作类型的存储租约信息。用户数据210和存储租约数据215可以被存储在相同的数据存储设备内或单独的数据存储设备内。在一个实施例中,存储块和租约块在相同的数据存储设备内是交错的,以使访问时间最优化,如上所述。除了一个或多个数据存储设备205外,存储系统200还包括存储接口220、时间控制模块225、可选的证书生成模块230、可选的存储租约高速缓存235,和可选的存储空时速率极限模块240。存储接口220适合于从一个或多个存储客户端接收存储操作。存储接口220可以使用低层次的硬件总线接口,诸如串行或并行ATA接口和PCIExpress接口;外围设备接口,诸如不同版本的USB接口、火线(Firewire)或IEEE1394接口、小型计算机系统接口(SCSI)和雷电(Thunderbolt)接口;存储网络硬件接口和协议,诸如互联网小型计算机系统接口(iSCSI)和光纤(Fibre)信道;网络硬件接口和网络文件系统协议,诸如网络文件系统(NFS)和公共网络文件系统(CIFS);和/或本技术领域已知的任何其它类型的数据存储接口。时间控制模块225维持目前时间或其近似值,并且用于确定存储租约是否许可执行存储操作。时间控制模块225的实施例可以包括硬件实时时钟和备用电池和/或内存(memory),该内存用于存储诸如通过密码签名时间证书从可信独立网络时间源接收到的目前时间。在后一种实施方式中,时间控制模块225还可以包括用于接收且验证时间证书的硬件和/或软件。可选的证书生成模块230适合于响应于成功完成一个或多个接收到的存储操作而生成安全证书。安全证书将利用所请求的存储租约时间段对数据进行读或写的密码安全确认提供给启动存储租约设备。安全证书还可以为其它目的而生成,包括在来自诸如对等存储系统或云存储的互不信任管理域的多方需要进行交互的环境下提供存储提交的证明。证书生成模块230可以使用专用密码处理器进行实施,或以由通用微处理器或微控制器执行的软件的形式进行实施。例如,诸如SafeNetSafeXcel-1741的密码处理器能够哈希数据并且生成RSA签名。可选的存储租约高速缓存235包括内存,诸如静态或动态RAM,用于存储诸如一个或多个租约块的所有或一部分租约数据的拷贝。一般地,存储租约高速缓存235可以比数据存储设备205更快地被访问。对存储租约数据的任何改变或添加可以被写至存储租约高速缓存235并且被拷贝回至存储租约数据215。可选的存储空时速率极限模块240为一个或多个存储客户端跟踪存储空时使用并且计算它们在诸如24小时的时间段内的存储空时使用速率。出于与存储客户端的目前存储空时速率使用进行比较的目的,存储空时速率极限模块240还为用于一个或多个存储客户端存储存储空时速率极限。存储接口220、存储租约高速缓存235、时间控制225、证书生成230和存储空时速率极限模块240可以使用专用硬件和/或通用微处理器或微控制器及软件的任何组合进行实施。存储系统220可以用多种不同形式的因素和配置进行实施以满足用户的需要,包括独立的大容量存储设备,诸如硬盘驱动器和固态驱动器;适于与一个或多个标准大容量存储设备接口的存储器机箱;和适于与一个或多个外部大容量存储设备接口的独立存储接口或控制器设备。在另一个实施例中,诸如设备固件的存储系统软件能够被更新。为了防止攻击者绕过租约保护,必须对固件更新进行保护。在一个实施例中,存储系统200只接受由设备供应商或另一个可信认证中心签名的更新。已经就位用于验证时间证书的密码基础设施能够出于此目的而被再次使用。在另一个实施例中,存储系统200能够以操作系统或设备驱动程序内的软件的形式实施在通用计算机内。在这个实施例中,被这个纯软件实施方式使用的操作系统内核或其它软件和硬件模块需要得到保护以免受恶意软件侵害。这可以使用包括在计算机系统内的可信计算平台或其它安全特征来做到。另外,由于漏洞或恶意软件导致的泄露风险可以通过减少可信计算基的大小、或通过使用微内核或虚拟机监视器来减轻。在又一个实施例中,存储租约能够被实施为云存储服务的一部分。在这种情况下,云服务实施并且确保与存储租约相关联的担保。在此,用于存储租约的可信计算基包含云服务实施方式。当这个计算基相当大时,其被专业地管理并且能够被设计成具有使攻击面最小化的狭窄接口。另外,它可能遭受的缺点不大可能与客户的计算基内的缺点或泄露相关。因此,客户端侧启动存储租约存储设备和启动存储租约云服务的组合提供强大保护以免受操作员错误、软件缺陷、安全泄露、甚至灾难性站点故障的侵害。存储租约具有多种用途。在一个实施例中,启动存储租约设备对操作系统呈现为标准块存储设备或其它类型数据存储设备,具有用于设置存储租约的扩充的接口。这样,启动存储租约设备完全向后兼容并且未更改的操作系统能够使用它,就象它是一个标准设备那样。然而,为了利用存储租约,操作系统、文件系统或应用程序可以被更改成使用扩展接口来设置和访问存储租约,并且必须准备对块或受存储租约保护的其它数据单元的语义进行处理。数据备份和恢复应用程序是存储租约的一种用法。实施使用存储租约的备份和恢复应用程序相对直接。专用启动存储租约设备(或这种设备上的专用分区)可以用于存储备份快照。备份应用程序将分区或设备安置为原始设备。它例如经由IOCTL调用来使用普通的块操作来读和写块以及扩展租约接口。备份应用程序能够选择它期望的任何数据和元数据格式来存储备份快照,只要应用程序遵守租约的语义。例如,与快照相关联的所有数据和元数据必须在具有至少等于快照的预期保留期的时间段的租约下进行存储。在另一个实例中,在快照之间共享的任何元数据都可以是只追加,因为包括共享元数据的存储块在租约下被存储是不能更改的,直到租约到期。在这个实例备份应用程序中,不需要更改操作系统或文件系统,而除了对于磁盘设备驱动程序、或API以支持存储租约相关调用以外。租约知晓文件或数据库系统是存储租约的另一种用法。例如,租约知晓快照文件或数据库系统能使用租约来保护对就位的写时拷贝快照的保存,排除了将数据拷贝至专用设备作为备份的一部分的需要。在此,不允许写至适当数据块的租约在预期快照的时间生效并且在快照不再相关时的后来日期结束。租约知晓文件系统可以基于任何快照文件系统,诸如任意位置写入文件布局(WAFL)或泽字节文件系统(ZFS),其具有进一步的更改以支持存储租约。例如,文件系统可以被扩展成为了与给定快照相关联的所有数据和元数据块而请求租约。另外,文件系统分配器可以被更改成知晓不能要求收回租约块直到租约到期。最后,文件系统可以被更改成使得在租约情况下存储的元数据是只追加的。租约知晓应用程序、文件系统或数据库系统可以使用存储租约以便在预定日期后不允许具体数据块或数据块组的读取,例如,以满足对于数据删除的合法的或具有监管权的要求。同样,租约知晓应用程序、文件系统或数据库系统可以使用存储租约以在预定日期之前不允许数据块或数据块组的读取,例如,以满足对于数据(诸如,例如政府记录)解密的合法要求。对等存储是存储租约的另一种用法。在这种用法中,租约证书能够被用作在基于自愿的系统中的资源使用的证据,在基于自愿的系统中用户可能不具有贡献给系统的正确的动机。例如,在协作的对等备份系统中,对等者(peers)可能假装贡献他们的公平共享的资源,然而实际上他们正在使用系统而不为了其他人的利益而存储数据。利用存储租约,对等者能够要求租约证书给其它的对等者,这些对等者得到支持来存储他们的数据,并且排除拒绝提供租约证书的那些对等者。这防止对等者在由其它对等者提供的资源上为所欲为。本发明的实施例可以在对等软件应用程序内、操作系统内和/或在内存和/或存储设备的固件内合并租约证书的生成和/或验证。云存储是存储租约的另一种用法。在这种用法中,租约证书还能够由云提供商使用以便给他们的用户证明,他们的数据被存储一定的时间段,以及一定的复制水平得到满足。这将给云存储服务增加价值,因为它将增加透明度,并且克服一个主要问题,即制止云服务的潜在客户,也就是缺乏来自云提供商的适当数据管理可能导致数据丢失,如过去发生过的那样。图3示出适用于实施本发明实施例的计算机系统。图3是诸如适合于实践本发明实施例的私人计算机或其它数字设备的计算机系统2000的框图。计算机系统2000还可以包括专用存储设备,诸如硬盘驱动器、网络附连存储设备、存储阵列网络接口和存储器机箱,其包括微处理器、微控制器或能够执行或实施程序代码的专用集成电路。计算机系统2000包括用于运行软件应用程序的中央处理单元(CPU)2005和可选的操作系统。CPU2005可以由一个或多个处理核组成。内存2010存储应用程序和数据,以供CPU2005使用。内存2010的实例包括动态和静态随机存取存储器。存储器2015提供用于应用程序和数据的非易失性存储器,并且可以包括固定的或可拆卸的硬盘驱动器、闪速存储器设备、只读存储器(ROM)和只读光盘存储器(CD-ROM)、数字只读光盘存储器(DVD-ROM)、蓝光光碟或其它磁、光或固态存储设备。在另一个实施例中,CPU2005可以执行虚拟机软件应用程序以产生能够执行附加软件应用程序的一个或多个虚拟处理器和可选的附加操作系统。虚拟机应用程序能够包括解释器、重编译器和即时编译器以便帮助在虚拟机内执行软件应用程序。另外,一个或多个CPU2005或关联的处理核能够包括虚拟化具体硬件,诸如附加的寄存器组、内存地址操纵硬件、附加的虚拟化具体处理器指令、以及虚拟机状态维持和迁移硬件。可选的存储接口2020适于从一个或多个存储客户端接收存储操作。存储接口2020可以使用低层次硬件总线接口,诸如串行或并行ATA接口和PCIExpress接口;外围设备接口,诸如各种版本的USB接口、火线或IEEE1394接口、SCSI和雷电接口;存储网络硬件接口和协议,诸如iSCSI和光纤信道;网络硬件接口和网络文件系统协议,诸如NFS和CIFS;和/或本技术领域已知的任何其它类型的数据存储接口。计算机系统2000包括一个或多个可选的网络接口2025,其允许计算机系统2000经由电子通信网络与其它计算机系统通信,并且可以包括在局域网和诸如互联网的广域网上的有线或无线通信。可选的网络接口2025可以是一个或多个以太网连接以便经由局域网或广域网与其它网络设备通信。可选的网络接口2025可以是一个或多个无线网络接口,其适用于使用无线电波与无线客户端和与其它无线网络设备通信,例如使用802.11协议族,诸如802.11a、802.11b、802.llg和802.11n。计算机系统2000可以支持在一个或多个抽象层次上的多种网络协议。例如,计算机系统可以支持在七层开放系统互连(OSI)网络模型的一层或多层上的网络协议。包括CPU2005、内存2010、数据存储器2015、可选的存储接口2020和可选的网络接口2025的计算机系统2000的组件经由一个或多个数据总线2060进行连接。另外,包括CPU2005、内存2010、数据存储器2015、存储接口2020和网络接口2025的计算机系统2000的一些或所有组件可以一起集成到一个或多个集成电路或集成电路封装中。此外,计算机系统2000的一些或所有组件可以被实施为专用集成电路(ASICS)和/或可编程逻辑。本发明的实施例可以被实施在广义的存储接口中,广义存储接口使时间和/或用户访问限制与针对存储块、文件、对象、二进制大对象、数据库表和记录和/或任何其它形式的存储数据的存储操作相关联。例如,存储接口可以在指定时间段内限制从存储块的存储读取,诸如在指定日期前或后禁止从存储块的存储读取。在这些实施例中,存储租约可以使用存储接口进行实施以便使时间限制与至一个或多个存储块的存储写操作相关联。如上所述,将存储租约分配给存储块可以通过使用密码签名数字证书来确认。然而,可选实施例可以省略密码签名数字证书的使用,并且让存储客户端依靠与存储硬件的可信关系。同样,存储接口的另一个可选实施例可以使用密码签名数字证书来确认任何类型存储操作的完成,而不管存储租约是否被存储系统支持。在又一个实施例中,更先进的密码术和/或密码能力可以用于确认存储租约分配给一个或多个存储块。例如,私有密钥/公共密钥对可以被存储客户端和存储设备使用以确认存储租约。在另一个实例中,诸如可信平台模块的密码硬件可以用于确认存储租约的分配。在另一个实例中,用于确认存储租约的一个或多个密钥可以被撤销并且在安全破坏的情况下被可信认证中心可选地替换。在又一个实例中,在安全薄弱被发现的情况下密码技术可以被可信认证中心改变。这可以经由存储设备、操作系统和/或来自可信认证中心的软件应用程序更新而被执行。进一步的实施例对于本领域一名普通技术人员来说是能够预想的。在其它实施例中,上面所公开发明的组合或子组合能够有利地获得。结构框图和流程图为了易于理解而被分组。然而,应该理解地是,在本发明的可选实施例中可以考虑块的组合、新块的添加、块的重新布置等。因此,说明书和附图被看作示例性的而非限制性的意义。然而,将显而易见地是,可以不背离权利要求书中所阐述的本发明更广泛的精神和范围而做出更改和改变。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1