用于云数据安全的系统及方法转让专利

申请号 : CN201480025250.9

文献号 : CN105453105B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : E.弗莱施曼D.沃尔德D.G.彼得森

申请人 : 多塞股份公司

摘要 :

描述了用于提供关于基于云的服务的数据安全服务的技术。示例包括被配置成执行或提供关于或代表某其它系统或服务的一个或多个安全相关的服务或功能的安全服务供应商(“SSP”)。该其它系统或服务可以是例如提供网络可访问的服务的基于云的系统。SSP允许基于云的服务的用户提供并管理诸如数据存储、加密、解密、密钥管理等的一个或多个安全相关的服务。通过使用并控制SSP,尽管正在通过不在用户的控制下的基于云的服务操作他的或她的数据,用户还是可以有信心他的或她的数据正被安全地表现和存储。

权利要求 :

1.一种基于云的服务平台,包括:

网络连接;

工作存储器设备;

持久性数据存储介质;

一个或多个处理器,其被耦合到所述工作存储器设备、所述网络连接和所述持久性数据存储介质,所述持久性数据存储介质包含指令,当所述指令在所述基于云的服务平台上执行时,使所述基于云的服务平台执行包括以下各项的操作:通过所述网络连接从所述基于云的服务平台的第一用户接收作为请求的一部分的文档;

在所述工作存储器设备内维持所述文档,而不将所述文档写入到所述持久性数据存储介质;

通过所述网络连接将所述文档传输到安全服务提供商以用于持久性存储;

响应于从所述安全服务提供商接收到对所述文档的保存的确认来从所述工作存储器设备删除所述文档;

接收用于访问以及检查所述文档的请求;

响应于所述请求,通过所述网络连接从所述安全服务提供商接收所述文档;

响应于接收所述文档,在所述工作存储器设备内维持所述文档,而不将所述文档写入到所述持久性数据存储介质;

响应于所述请求,执行对所述文档的改变;以及在完成对所述文档的改变时,通过所述网络连接将所述文档传输到所述安全服务提供商以用于持久性存储并且从所述工作存储器设备删除所述文档;

其中接收作为请求的一部分的文档包括:

访问与所述第一用户相关联的策略;

针对所述策略评价所述请求和所述文档;以及基于评价所述请求和文档的结果来确定是否为所述安全服务提供商持久地存储所述文档,以及其中,在完成对所述文档的改变时,所述文档到所述安全服务提供商的传输取决于对所述策略的咨询。

2.如权利要求1的基于云的服务平台,其中用于访问以及检查所述文档的请求是来自第二用户的签名完成请求。

3.如权利要求2的基于云的服务平台,其中访问以及检查所述文档包括至少将所述文档的表示呈现给所述第二用户以用于签名。

4.如权利要求3的基于云的服务平台,其中执行访问以及检查所述文档包括从所述第二用户接收签名数据,所述签名数据表示所述第二用户将数字或电子签名应用于所述文档。

5.如权利要求4的基于云的服务平台,其中所述持久性存储介质进一步包括使所述基于云的服务平台执行下述操作的指令:在从所述工作存储器设备删除所述文档之前,与所述文档和所述请求相关联地在所述安全服务提供商处存储所述签名数据。

6.一种用于保护由基于云的服务平台访问的存储数据的方法,所述方法包括:在所述基于云的服务平台内的计算系统上执行包括以下各项的操作:通过网络连接从所述基于云的服务平台的第一用户接收作为请求的一部分的文档;

在工作存储器设备内维持所述文档,而不将所述文档写入到持久性数据存储介质;

通过所述网络连接来将所述文档传输到安全服务提供商以用于持久性存储;

响应于从所述安全服务提供商接收对所述文档的保存的确认来从所述基于云的服务平台删除所述文档;

接收用于访问以及检查所述文档的请求;

响应于所述请求,通过所述网络连接从所述安全服务提供商接收所述文档;

响应于接收所述文档,在所述工作存储器设备内维持所述文档,而不将所述文档写入到所述持久性数据存储介质;

响应于所述请求执行对所述文档的改变;以及在完成对所述文档的改变时,通过所述网络连接将所述文档传输到所述安全服务提供商以用于持久性存储并且从所述基于云的服务平台的工作存储器设备删除所述文档;

其中接收作为请求的一部分的文档包括:

访问与所述第一用户相关联的策略;

针对所述策略评价所述请求和所述文档;以及基于评价所述请求和文档的结果来确定是否为所述安全服务提供商持久地存储所述文档,以及其中,在完成对所述文档的改变时,所述文档到所述安全服务提供商的传输取决于对所述策略的咨询。

7.如权利要求6的方法,其中用于访问以及检查所述文档的请求是来自第二用户的签名完成请求。

8.如权利要求7的方法,其中访问以及检查所述文档包括至少将所述文档的表示呈现给所述第二用户以用于签名。

9.如权利要求8的方法,其中访问以及检查所述文档包括从所述第二用户接收签名数据,所述签名数据表示所述第二用户将数字或电子签名应用于所述文档。

10.如权利要求9的方法,进一步包括在从所述基于云的服务平台的工作存储器设备删除所述文档之前,与所述文档和所述请求相关联地在所述安全服务提供商处存储所述签名数据。

11.一种非瞬时性计算机可读存储介质,包含指令,所述指令当在基于云的服务平台内的计算机系统上执行时,使所述计算机系统执行包括以下各项的动作:通过网络连接从所述基于云的服务平台的第一用户接收作为请求的一部分的文档;

在所述计算机系统的工作存储器部分内维护所述文档,而不将所述文档写入到所述基于云的服务平台内的持久性数据存储装置;

通过所述网络连接将所述文档传输到安全服务提供商以用于持久性存储;

响应于从所述安全服务提供商接收到对所述文档的保存的确认来从所述工作存储器部分删除所述文档;

接收用于访问以及检查所述文档的请求;

响应于所述请求,通过所述网络连接从所述安全服务提供商接收所述文档;

响应于接收所述文档,在所述工作存储器部分内维持所述文档,而不将所述文档写入到所述持久性数据存储装置;

响应于所述请求,执行对所述文档的改变;以及在完成对所述文档的改变时,通过所述网络连接将所述文档传输到所述安全服务提供商以用于持久性存储并且从所述基于云的服务平台的工作存储器部分删除所述文档;

其中接收作为请求的一部分的文档包括:

访问与所述第一用户相关联的策略;

针对所述策略评价所述请求和所述文档;以及基于评价所述请求和文档的结果来确定是否为所述安全服务提供商持久地存储所述文档,以及其中,在完成对所述文档的改变时,所述文档到所述安全服务提供商的传输取决于对所述策略的咨询。

12.如权利要求11的非瞬时性计算机可读存储介质,其中用于访问以及检查所述文档的请求是来自第二用户的签名完成请求,以及其中所述访问以及检查包括至少将所述文档的表示呈现给所述第二用户以用于签名。

说明书 :

用于云数据安全的系统及方法

[0001] 优先权要求
[0002] 本申请要求于2013年3月4日提交的美国临时申请序列号61/772,397的权益。

技术领域

[0003] 本公开涉及用于计算机安全的系统及方法,并且更具体地,涉及用于提供关于基于云的服务的数据安全的系统及方法。

背景技术

[0004] 当评价新的重要的软件即服务(SaaS)平台时在客户中听到的常见的说法是缺乏对服务的信任。例如,如果使用云存储系统,则客户必须信任服务供应商以提供用于保护由供应商存储的客户数据的足够的安全装置和安全措施。这种信任缺失造成针对新服务的显著的采用障碍。服务供应商必须通过明确表达他们的服务是多么安全并且尝试以无数方法(尤其是认证)向客户证明这一点来抗击该信任缺失。

附图说明

[0005] 下面参考以下的附图来详细地描述本发明的优选的和替代的示例:
[0006] 图1图解了安全服务供应商的第一示例实施例的示例框图;
[0007] 图2图解了安全服务供应商的第二示例实施例的示例框图;
[0008] 图3A和3B是用于根据安全服务供应商的第二示例实施例的操作的第一模式存储和观看数据的数据流;
[0009] 图4A和4B是用于根据安全服务供应商的第二示例实施例的操作的第二模式存储和观看数据的数据流;
[0010] 图5是图解由示例的安全服务供应商执行的操作的流程图;以及
[0011] 图6是用于实现安全服务供应商的示例实施例的示例计算系统的框图。

具体实施方式

[0012] 本文中描述的实施例提供用于提供关于远程计算服务(诸如基于云的服务)的数据安全的增强的基于计算机和基于网络的系统和方法。示例实施例提供被配置成执行或提供一个或多个关于或代表一些其它系统或服务的安全相关的服务或功能的安全服务供应商(“SSP”)。所述其它系统或服务可以是例如提供网络可访问服务的基于云的系统。SSP允许基于云的服务的用户(有时被称为“客户”)提供并管理诸如数据存储、加密、解密、密钥管理等的一个或多个安全相关的服务。通过使用并控制SSP,尽管正在通过不在用户的控制下的基于云的服务对用户的数据进行操作,用户也可以自信他的数据正被安全地表现和存储。
[0013] 基于云的系统和服务包括经由网络(诸如因特网或专用网)访问的软件、平台和/或基础设施的布置。典型地,由不同的外部实体提供基于云的服务,以便给定的商业单位或其它组织可以获得该服务的益处(例如,可扩缩性、可访问性、容错性)而不需要它本身管理所需的计算基础设施。所描述的技术使用“混合”方法,其中客户保留对诸如加密/解密、数据存储等的一些安全相关功能的控制。如下面更加详细地描述的,由基于策略的机制控制客户参与执行这类功能遵循的程度和条件。
[0014] 所描述的技术可以被用于保护在云服务中使用的数据。在一个示例中,用户正如他们如今做的这样继续利用云服务,但是与本文中描述的技术中的至少一些相结合。这些技术对系统的用户来说是透明的,但是保护云服务中使用的数据,以便即使他们不信任该云服务和/或该服务今后有安全事故,一组织可以主张他们是被保护的。这种信任在内部和外部二者都是可证实的。
[0015] 所描述的技术可适用在广泛种类的上下文中。可以将它们用于提供关于各种类型或形式的远程系统或服务的安全服务。下面,该技术被描述为被关于电子签名服务(“ESS”)而部署。连同ESS一起使用SSP仅仅是一种可能的部署情况,并且不应被解释为限制性的。特别地,可以与其它类型的远程服务一起使用SSP,所述其它类型的远程服务包括任何类型的软件即服务、云存储服务、消息传递服务、金融服务、客户关系管理服务等等。一般可以连同任何数字交易服务一起使用SSP,所述数字交易服务包括电子签名服务、不动产交易服务、线上购买系统、薪资系统、采购系统、人力资源系统(例如,时间跟踪,计费系统)等等。
[0016] 示例ESS被配置成促进文档和对应的电子签名的创建、存储以及管理。使用ESS,第一用户(“发送人”)可以提供或上载将要被签名的文档(“签名文档”),而第二用户(“签名人”)可以访问、检查并对所上载的文档签名。可以通过ESS使用SSP以安全地存储文档(图1)或对文档提供加密/解密服务(图2)。图3和4提供关于使用示例SSP以提供代表广义的云服务的加密/解密服务的附加的细节。
[0017] 云数据托管(escrow)
[0018] 图1图解了安全服务供应商的第一示例实施例的示例框图。图1图解了“云数据托管”方法,其中发送人使用SSP以安全地存储文档或其它数据。在图1中示出的示例中,SSP165关于ESS110操作。由发送人10和签名人11利用ESS110以发起签名文档20的电子签名。SSP165包括被用于安全地存储电子签名文档20的文档存储器170。SSP165在发送人10(或者发送人的组织)的控制之下,以便由代表发送人10的ESS110处理的签名文档总是在发送人10或他的对应的组织的控制之下。
[0019] 在所图解的情况中,发送人10操作发送人客户端设备160以向ESS110提供(例如,上载、传输)电子文档20(例如,发票、合同或协议)。然后ESS110将电子文档20传输到SSP165,在那里电子文档20被安全地存储在文档存储器170中。在由SSP165存储之后,ESS110删除文档20的任何复本。
[0020] 由ESS110作出的使用安全服务供应商165的决定是基于策略21。典型地,由发送人10建立策略21,并且策略21控制或以其他方式使得ESS110针对文档存储功能而依赖于SSP165。策略21限定用于签名文档的存储位置和操作。策略对于特定的文档、用户、组织或它们的某结合可以是特定的。
[0021] 然后签名人11访问文档20。典型地,发送人10诸如通过使得ESS110向签名人11发送包括对文档20的引用(例如,URL)的消息(例如,电子邮件)以通知签名人11。签名人11操作网络浏览器或其它在签名人客户端设备161上执行的客户端模块以访问并检查文档20。ESS110从SSP165检索文档并将其(或者其表示)提供给签名人客户端设备161用于呈现。当文档20已经被检查至签名人11满意时,签名人给文档20附上(或提供用于附上的指示或指令)他的电子签名。一旦已经完成签名,ESS110与签名数据以及需要被保留的签名的任何其它证据(诸如用户信息、时间戳等等)相关联地存储文档20。在签名过程完成之后,ESS110删除文档20的任何复本。
[0022] 在图1的实施例中,SSP代表云服务负责存储数据。这样的实施例还可以被称为云存储设备(“CSA”)。CSA响应于针对数据的合法请求以向正消费该应用的用户提供服务。核心意见是数据在CSA本身的所有者的监管中,而不是在云服务运营商的监管中。
[0023] 为了简明,将针对一个简单的云服务情况描述关于CSA的进一步的细节:一个正在试图首先存储并且然后访问被存放在云服务中的文档的用户。应领会的是,文档存储和检索系统仅仅是CSA的一个示例部署。还可以或替代地将CSA用于诸如本文中别处描述的电子签名上下文的其它上下文中。
[0024] CSA可以代表云服务存储文档。该设备的目标是用来将文档本身的存储外包以便静止的数据永不在云服务中;其在存储设备中,在客户的控制之下。“静止”的数据典型地包括被持久地或静态地存储的数据(例如,在磁盘、磁带、或其它持久性媒体上)。与此相反,“飞行中”(in flight)的数据或者“使用中”的数据典型地包括诸如在计算系统的易失的或工作中的存储器中的数据、正由处理器处理的数据、正被从一个地点向另一个地点传送的数据等等的易失的、动态的、和/或活动的数据。飞行中的数据在一些情况中可以特殊地指正活跃地穿过网络或其它非持久性通信媒体(例如,IO总线、系统总线)的数据。
[0025] 在典型的实施例中,客户可以限定策略,该策略控制数据片何时被静止地存储在云服务中,并且当被适当地限定时,该策略将在客户的控制下在外部存储设备上存储数据。该云存储设备位于客户数据中心中并且始终在他们的控制中。
[0026] 在一个示例处理流程中,客户首先在云服务中为他们的组织创建账户(即,他们针对该云服务“签约”)。然后,客户限定对某用户组(一些或者所有)应用的组织策略。该策略限定了数据什么时候将被静止地存储在云服务中,和它什么时候将被静止地存储在CSA中形成对比。
[0027] 组织中的用户然后如他们正常将要的那样继续使用云服务。例如,他们上载文档到服务。正常地处理示例文档。当处理完成并且云服务转向存储该文档时,咨询组织策略。如果策略规定文档的当前状态同意保存在云中,那么文档被存储在云中。如果策略规定文档的当前状态同意将文档保存在客户CSA上,那么通过数字媒体将文档发送到CSA用于存储。
[0028] 在成功的保存到某一位置时,如果文档驻存在另一位置,那么通知那个位置该文档不再由他们所有并且它们将把它从存储器中移除。例如,如果文档曾被存储在云服务中但是由于状态改变现在将要被保存到CSA中,一旦被成功地保存到CSA,那么通知云服务其将要删除这个文档以便与组织策略一致。
[0029] 随着对文档进行进一步的改变以及状态前进,在对存储器的每个保存事件时都再次咨询策略并且将文档存储在正确的位置中。根据策略指示,这可以同意随着时间的推进将文档保存在不同的位置中。
[0030] 上面的处理进展继续直到如文档已完成这样的时间,当最后一次保存文档时。此外,该最后的保存发生在基于组织策略的适当的位置中。该最后事件仅仅是上面援引的逻辑(即,基于组织策略执行适当的操作)的另一个例示,其在这里出于完整性而作为分开的步骤加以引用。在一些情况中,策略可以指定响应于文档完成而将要被执行的清除或终结操作。
[0031] 策略的定义和处理限定了给定的数据元素的保存位置。在该方法中,作为一个示例,可以将策略表现为存储策略向量的列表,采用以下的属性形成存储策略向量中的每一个:
[0032] [数据类型,
[0033] 数据状态或数据操作,
[0034] 数据托管位置]。
[0035] 文档状态或操作可以包括关于特定的数据项呈现或执行的任何(可能域特定或应用特定的)条件或功能。示例状态可以是总称的,因为其可以应用于广泛的各种应用,诸如新文档、导入的文档、已删除的文档、已打开的文档、已关闭的文档等等。应用特定的状态在电子签名上下文中可以是例如新文档、已发送的文档、已观看的文档、已签名的文档、已完成的文档。一些实施例可以除了数据状态以外或代替数据状态使用数据操作/功能。示例的通用的操作可以对应于诸如新建、打开、关闭、观看、删除等的传统的文件系统操作。在一些实施例中,SSP可以使是否触发特定的策略的决定具体化。例如,SSP可以依赖于策略管理器或以其他方式与其交互(例如,由客户操作),所述策略管理器被配置为具有足够的域特定知识或应用特定知识以决定何时触发特定的策略。
[0036] 在优选的实施例中,数据托管位置涉及具有下面的属性的全局定义的托管位置向量:
[0037] [数据托管位置ID,
[0038] 数据托管位置类型,
[0039] 数据托管位置端点URL,
[0040] 其它数据托管位置属性]。
[0041] 一些实施例以下面的方式对云服务的给定客户应用上面的数据结构。给予云服务的每一个客户限定他们的数据保存位置的机会。初始保存位置是云服务。客户可以将一个或许多CSA与他们的账户关联,其中的每一个创建另一个托管位置向量。每一个托管位置向量作为客户账户的属性存留。
[0042] 同样,给予云服务的每个客户限定他们的存储策略的机会。在优选的实施例中,策略包括长度大于或等于0的保存策略向量的列表(见上面)。每一个策略都被限定并被添加到前述的列表中,并被保存为客户自身的属性。属性必须通过某独特的标识符引用先前限定的数据保存位置向量。
[0043] 每当数据元素(例如,文档)被保存在这个客户的上下文中,咨询该客户的策略。遍历策略列表并找出匹配,其中匹配是具有匹配正在被保存的数据的状态的状态的策略向量。然后处理并调用所确定的策略。如果没有找到策略,使用云服务的默认保存位置。如果找到了匹配策略,那么从策略规则中提取(或基于策略规则定位或以其他方式确定)专用的托管位置向量参考,并且然后从客户获取托管位置向量自身。现在将那个位置回传到先前的算法并且针对该位置调用保存方法。
[0044] 注意虽然先前的情况全部依赖位于客户数据中心中的设备,但是其它部署可以同意具有存放在第三方数据中心内的同样的数据流的同样的设备。例如,第三方组织可以向客户提供存储服务以便云服务供应商不可以使用数据但是客户不必自己管理CSA。这样做,客户可以安全地假定数据不是在云服务运营商的控制中而是在专用于这样的存储的仔细选择的合作者手中。这一部署方法利用所有的来自上面的那些的相同的方法,简单地以不同配置对其进行部署。
[0045] 将下面的特征或方面理解为由CSA完成。首先,所描述的技术包括被称作云存储设备(CSA)的新的设备,其代表客户环境中的云服务存储数据,以便客户(而不是云服务运营商)维持对存储在CSA中的所有数据的控制。
[0046] 所描述的技术还包括这样的过程,通过该过程可以向云服务中的客户账户告知由客户拥有并且继而可以被利用以在客户的上下文中保存数据的CSA系列。
[0047] 所描述的技术还包括用于限定策略以决定云服务应该何时将数据托管到外部存储系统以及云服务应该何时将文档存储到内部存储系统的方法。
[0048] 所描述的技术还包括用于限定策略的过程,该策略决定何时基于标准托管数据,该标准返回与数据的正在转换的状态(诸如文档的完成)相关,其来源于云服务上的用户活动。
[0049] 所描述的技术还包括用于经由CSA向云服务提供数据托管服务以便执行某操作以及数据状态改变的过程,该数据状态改变导致数据被传递到适当的存储媒体(其可以是云服务或者前述的CSA)并被从其它先前的存储位置移除。
[0050] 所描述的技术还包括用于从云服务移除数据以便在来自云服务的数据托管成功时,将数据的所有副本从云服务(包括从云服务中的旋转媒体)移除、从备份设备/磁带移除等等的过程。
[0051] 云数据保护
[0052] 图2图解了安全服务供应商的第二示例实施例的示例框图。图2图解了“云数据保护”方法,其中SSP为文档和其它数据提供加密/解密服务。图2还描绘了关于ESS110操作的SSP165。该示例与图1的示例区别在于此处ESS110负责管理签名文档的存储并且依赖于SSP165以提供关于所存储的文档的加密相关的服务。
[0053] 在图2中,发送人10使用客户端设备160以向ESS110提供签名文档22。ESS110咨询策略23以确定使用SSP165用于加密文档22。由ESS110向SSP165以未加密的形式提供文档22。SSP165使用来自密钥库171的密钥加密文档22并将其传输回ESS110。然后ESS110删除文档22的未加密的版本,诸如最初由发送人10提供的副本。
[0054] 当签名人11访问文档22时,ESS110向SSP165提供已加密的文档22用于解密。SSP165解密已加密的文档22并返回未加密的版本用于由签名人11访问。当签名人11对文档
22签名时,还可以与SSP165合作加密任何签名数据。
[0055] 在该示例中,文档22被示出为驻存在ESS110内。在其它实施例中,可以将文档22存储在远程的基于云的存储服务中。可以由发送人(或他的组织)或某第三方操作这样的存储服务。
[0056] 在图2 的实施例中,SSP负责向云服务提供加密/解密服务。这样的实施例还可以参考或基于云优先硬件安全设备(“HSA”)。HSA是预设(on-premise)设备,其存储密钥并且在合适时对由云服务存放的数据执行加密操作。可以在使用新的方法以保护存储在云系统上的关键数据的传统的硬件安全模块(“HSM”)技术“之上”设计HSA。
[0057] 传统的HSM提供当应用能够继续利用密钥用于应用的操作时安全地存储密钥的能力。现今在组织中的传统的HSM使用的规范示例是用于签名交易的关键密钥的存储。在该传统的HSM使用中,密钥将被存储在设备上并且仅在设备上。对传统的HSM的访问将被限制到非常窄的个体组并且甚至他们的访问被约束到仅仅那些对于成功的管理和操作所需的操作。当需要由设备存放的密钥时,将需要密钥的操作与任何需要的数据一起安全地给予设备。传统的HSM执行操作并将结果返回至调用方。
[0058] 所描述的技术发展HSM以与云服务一起使用。通过以本文中描述的方式扩展HSM的操作来实现至少一些HSA。所描述的技术采用这样的设备以保护云服务中的数据。这样做,由于数据被存储在HSA中的密钥保护,所以云服务应用不可以使用(例如,读取作为明文的数据)其存放的数据。预设HSA继而由客户保护并且利用各种方法以预设防止用户以及云供应商不适当地访问密钥。结果是这样的系统,其中虽然云服务存放对服务自身来说不透明的数据但是客户可以正常地使用云服务。
[0059] 为了简明,将关于简单的云服务情况描述HSA的操作:正试图首先存储并且然后访问存放在云服务中的文档的用户。能够领会的是,文档存储及检索系统仅仅是HSA的一个示例部署。其也可以或替代地用在其它上下文中,诸如本文中别处描述的电子签名上下文。
[0060] HSA可以提供或被配置成或被用于两个不同的操作模式中的至少一个。在第一模式中,云服务接触HSA并且请求其对敏感信息执行密码操作。在第二模式中,用户直接与HSA交互并且使HSA执行密码操作,与云服务协力工作以向用户提供所期望的功能。对这些模式中的每一个来说,以下的部分首先呈现了用于将新文档注入(例如导入、上载、初始存储)到系统中的过程,然后呈现用于观看或以其他方式访问已加密的文档的过程,以及最后呈现可以基于这些流程进行的安全要求。
[0061] HSA第一模式:已解密的文档的云检索
[0062] 第一操作模式提供了安全机制,云服务通过该安全机制可以存储并检索文档,虽然其对存储器中的云是不透明的。
[0063] 图3A图解了用于将新的文档导入、保存或以其他方式引入到系统中的数据流。在操作1,用户去由云服务主控的网站。在操作2,用户上载文档到网站。在操作3,网站背后的云服务检查策略并确定用户正使用由HSA存储的密钥以加密文档。策略可以与上面描述的关于云数据托管方法的那些策略相似。在操作4,服务与HSA通信,请求HSA加密文档。在操作5,HSA以文档的已加密形式连同关于所执行的加密操作的元数据进行响应,所述元数据包括一个或多个项,诸如当加密时用户加密所使用的密钥ID以及关于HSA自身的端点信息。在操作6,云服务连同从HSA返回的元数据一起存储已加密的文档。
[0064] 图3B图解了用于观看如上面的图3A中描述的那样存储的文档的数据流。在操作1,用户访问由云服务主控的网站并选择他们希望观看的文档。在操作2,云服务从云存储后端检索已加密的文档。在操作3,云服务检查附到文档的元数据并看见其被位于后面的端点处的指定的HSA使用指定的密钥ID加密。
[0065] 在操作5,云服务通过网络对HSA进行同步调用,包括从云服务后端获取的已加密的文档(与相关的元数据一起),并请求HSA为用户解密数据。包括在该请求中的是用于识别用户的信息。
[0066] 在操作6,HSA检查请求并决定请求是否有效。如果有效,那么HSA解密文档并将其返回至云服务。如果无效,那么HSA将向云服务拒绝请求并且用户操作继而将被拒绝。
[0067] 在操作7,使用文档的该未加密的版本,云服务现在向用户提供所请求的文档以及相关联的功能。
[0068] 注意,文档从未以未加密的形式持久存在于云服务。它仅以未加密的形式通过云服务,而从未被写至任何持久存储器。因此,在该情况中可以进行的安全要求是采用云服务供应商所不知道的密钥静止地加密数据。
[0069] HSA第二模式:已解密的文档的本地访问
[0070] 第二操作模式提供了安全机制,通过该安全机制云服务可以促进保存并向用户示出文档而永不看见文档的副本(即使是瞬时地)。
[0071] 图4A图解了用于将新的文档导入、保存或以其他方式引入到系统中的数据流。在操作1,用户去云服务前的网站并指示他们希望保存文档。然后,网站将用户重新定向至HSA。特别地,在操作2a,云服务网站经由重新定向动词(verb)(例如,HTTP302)将用户重新定向。在操作2b,用户着陆在由HSA主控的页面上。
[0072] 在操作3,用户直接地将文档上载到HSA。HSA选择适当的密钥并根据本地策略加密文档。然后,在操作4,HSA将已加密的文档上载到云服务。作为响应,在操作5,云服务将文档存储到云存储器中。
[0073] 然后用户被重新定向回云服务;操作完成。特别地,在操作6a,HSA经由重新定向动词(例如,HTTP302)将用户重新定向。在操作6b,用户着陆在由云服务主控的指示上载成功地完成的页面上。
[0074] 图4B图解了用于观看如上面的图4A中描述的那样存储的文档的数据流。在操作1,用户访问云服务前的网站并指示他们希望打开文档。作为响应,在操作2,云服务从服务中的存储系统中检索已加密的文档。在操作3,服务检查文档并确定文档被采用在指定的HSA上找到的密钥ID加密。
[0075] 在操作4,现在将用户重新定向到指定的HSA上主控的端点,包括采用其将指示器重新定向到文档自身以及密钥识别信息,因此HSA知道哪个密钥曾被用于加密该文档。
[0076] 在操作5,HSA从云服务检索文档。在操作6,HSA基于指定的企业策略以及用户提供的企业认证材料进行关于该用户是否被允许访问该文档的策略决定。
[0077] 在操作7,如果前述的核查通过,那么由HSA解密文档并将其提供回到用户。在操作8,在与该文档交互之后,将用户重新定向回到云服务。如果文档曾被修改,那么由HSA对其加密并发回到云服务用于连同相关联的元数据一起存储。
[0078] 在上面描述的情况中,可能的安全要求是由云服务供应商静止地和在飞行中地加密数据并且数据永不以未加密的形式被云服务看到。满足这样的安全要求的一个必要条件是确保只针对合法请求执行敏感的密码操作。HSA可以被配备为支持广泛的一组策略性能以确保仅仅服务合法请求。这些性能可以包括:(1)秘密发布:如果将指定的共享的秘密提供回到所述设备,那么文档将要被发布给调用方;以及(2)针对用户发布:如果用户使用他们的企业证书成功地对HSA认证并且用户被给予对文档的访问,那么将要由HSA解密文档。应领会的是,该性能列表可以随着附加的情况被检查并映射到个人技术必要条件而在适当的时候增长。
[0079] 在一些实施例中HSA仅针对必要的情况执行密码操作。在缺乏该保护的情况下,恶意的云运营商可能简单地请求由HSA解密给定的二进制大对象(例如,已加密的文档)。因此必须保护这些方法,而不是对流经该系统的用户活动进行阻止。
[0080] 另外,密码的使用不应该经由观察许多密码操作而借助其自身攻击密钥(随着时间的推移云可能这样做)。虽然下面的密码算法趋向于防御这一点,但是可以使用诸如定期密钥轮换的附加的保护。
[0081] 一些实施例还使用上面略述的技术中的至少一些基于进入给定的或指定的状态来保护数据。该方法有时被称为“封锁”,因为这使得云从概念上封锁并永不能获取服务中的给定的数据元素的内容。
[0082] 再使用文档存储的示例,设想一个人希望随着文档的状态改变而改变针对文档元素的访问策略。例如,设想文档在文档正被编辑的持续时间内是通过云服务可访问的,然而,一旦文档被标记完成,文档将要被从云服务擦去。这可以通过仅仅从云服务删除文档来达到。然而,当一个人考虑云服务提供商可能曾经存储文档的位置的数目以及到达所有那些位置(旋转媒体、备份磁带等等)的难度,他可以领会这样的删除操作是有意义的。
[0083] 可以通过利用上面略述的技术解决该问题。首先,最初将文档保存到云服务。在保存的同时,咨询客户记录并且策略指示客户想要调用“在完成时文档对云不透明”。当第一次保存其时,文档被传递到HSA用于加密并且记下“在完成时对云不透明”的策略。HSA采用某密钥加密文档并且然后将已加密的文档返回到云服务。云服务将该文档保存到云服务存储系统。
[0084] 每一次访问文档时,文档被传递到HSA用于解密。毫无疑问,HSA解密文档。每一次文档状态改变时,向HSA通知状态改变。
[0085] 在未来的某时候,文档被完成。当向HSA通知该状态改变完成时,注意该文档现在在文档的元数据方面被完成。该元数据被使用密码技术、利用HSA密钥(防止其被更改)存留在存储媒体中作为文档自身的一部分。
[0086] 用户下一次将要打开文档时,云服务再次将文档提供到HSA。然而,现在HSA可以应用更严格的策略(诸如“没有人可以打开该文档”)来解密文档。该性能提供这样的能力,即:当密钥的持有者(HSA)将拒绝针对文档的任何请求者执行解密操作时,功能上致使云服务中的文档无用。云服务现在还可以在其空闲时出于管理的目的可选地删除文档。
[0087] 上面的程序允许我们致使云服务中的关键的数据片的副本无用,功能上允许用户从云服务以这种方式“删除”数据而不需要由云服务实现的具有挑战性的技术窍门。
[0088] 注意虽然先前的情况全部依赖于位于客户数据中心中的设备,但是其它部署可能同意采用存放于第三方数据中心中的同样的数据流的同样的设备。例如,在替代的实施例中,第三方组织向客户提供密钥服务以便云服务供应商不可以使用密钥材料但是客户不必自己管理HSA。
[0089] 以下的特征或方面被理解为由HSA完成。首先,所描述的技术包括用于将数据存储在云服务中以便当数据为静止时云服务不可以使用数据其自身的过程。
[0090] 所描述的技术还包括用于存储并访问云服务中的数据以便用户可以无摩擦地存储并访问数据但是不把密钥暴露于云服务的过程。
[0091] 所描述的技术还包括用于访问由外来密钥保护的并且该密钥关系的细节被注释在数据自身上的云服务中的数据但是密钥不暴露于服务的过程。
[0092] 所描述的技术还包括这样的过程,云服务通过该过程可以代表用户获取文档的已加密的或已解密的版本,而服务从未取得对加密或解密文档所使用的密钥材料的访问。
[0093] 所描述的技术还包括这样的过程,企业通过该过程可以控制对密码操作的访问以加密或解密将要采用不能被云服务破坏的企业策略和企业认证材料储存在云服务中的文档。
[0094] 所描述的技术还包括这样的过程,请求采用特定密钥执行密码操作的用户通过该过程被允许执行密码操作。
[0095] 所描述的技术还包括这样的过程,云服务通过该过程可以存储并服务已加密的文档而从未取得对已解密的文档(静止的或者飞行中的)的访问。
[0096] 所描述的技术还包括这样的过程,用户通过该过程可以保存并访问存储在云服务中的文档以便云服务从不可以使用未加密的文档(静止的或者飞行中的)。
[0097] 所描述的技术还包括这样的过程,云服务通过该过程可以在被请求保存文档时将用户同文档重新定向至预设HSA,该HSA将继而使用适当的密钥加密文档然后将已加密的文档发送到云服务。
[0098] 所描述的技术还包括这样的过程,云服务通过该过程可以在从存储系统检索文档时检查文档上的策略并将用户重新定向至存放用于文档的密钥并使用该密钥执行密码操作的HSA。
[0099] 所描述的技术还包括过程,HSA通过该过程可以被采用代表用户的已加密数据连同关于数据的元数据一起(除了用户证书材料本身)加以呈现;然后HSA进行关于操作是否被允许的策略决定,并且如果被允许,为用户执行密码操作。
[0100] 所描述的技术还包括这样的过程,该过程用于在前述的密码操作完成之后“由代理”通过HSA为指定用户提供云服务以便用户可以犹如其根本从未在HSA上被本地加密一样与数据交互,但是从未将数据的未加密的版本透露回云服务。
[0101] 所描述的技术还包括这样的过程,该过程用于允许云服务允许用户从云服务经由在前述的HSA上对所有用户的关键解密操作的限制来功能性地删除数据元素,从而即使不如用户期望的那样完全地删除也致使该数据的云服务副本无用。该过程或条件可以被称为“封锁”。
[0102] 注意上面描述的“云数据托管”以及“云数据保护”方法不是排他性的。即,在一些实施例中,SSP可以被配置成根据指定的策略执行云数据托管(存储管理)以及云数据保护(密钥管理)两者。例如,给定的组织可以指定这样的策略,该策略使得SSP代表第一基于云的服务执行存储同时代表第二基于云的服务提供加密服务。可以基于包括用户身份、商业规则、服务供应商身份、地理位置(例如,为遵守本地法律要求)等中的一个或多个的各种因素确定SSP提供了哪些服务。
[0103] 示例实施方式
[0104] 图5是图解了由示例安全服务供应商执行的操作的流程图。所图解的操作可以由广义的SSP、CSA、HSA或本文中描述的类似描述的模块、设备或系统执行。
[0105] 过程开始于块502,其中它限定了使得基于云的服务利用不同的安全服务供应商模块以执行安全相关的功能的策略。上面描述了示例策略。限定策略可以包括诸如经由交互图形用户界面从用户接收策略定义。策略指定响应于操作和/或关于特定的数据项和/或用户发生的显眼改变而将要采取的行动。
[0106] 在块504,过程接收用于执行安全相关的功能的请求。该请求可以基于策略,诸如基于云的服务何时使用策略确定利用哪个SSP用于特定的操作、用户或组织。典型地从基于云的服务接收请求并且要求过程执行某功能,诸如加密、解密、数据检索(例如,读取并转发到基于云的服务)、数据存储(例如,接收并存储来自基于云的服务的数据)。在一些情况中,诸如当由基于云的服务将该设备重新定向以与该过程交互时,可以从用户的设备接收请求(诸如上面关于图4A示出并描述的)。
[0107] 在块506,过程代表基于云的服务执行安全相关的功能。执行安全相关的功能可以包括在执行功能之前、期间和/或之后咨询策略。例如,可以基于策略定位合适的加密密钥。作为另一示例,在过程成功地加密并存储数据项之后,过程可以通知基于云的服务移除数据项(例如,文档)的任何复本。
[0108] 图6是用于实现安全服务供应商的示例实施例的示例计算系统的框图。特别地,图6示出了可以被利用以实现SSP165的计算系统100。同样,可以将关于图6描述的技术应用于实现诸如ESS110、发送人设备160或客户端设备161的本文中讨论的其它计算机化的元件。
[0109] 注意,可以将一个或多个通用或专用计算系统/设备用于实现SSP165。另外,计算系统100可以包含一个或多个不同的计算系统/设备并且可以跨越分布式位置。此外,所示的每个块可以针对特定实施例酌情表示一个或多个这样的块或者可以与其它块组合。同样,可以将SSP165以软件、硬件、固件或以某组合来实现以达到本文中描述的性能。
[0110] 在所示的实施例中,计算系统100包含计算机存储器(“存储器”)101、显示器102、一个或多个中央处理单元(“CPU”)103、输入/输出设备104(例如,键盘、 鼠标、CRT或LCD显示器等等)、其它计算机可读媒体105、以及连接到网络150的网络连接106。SSP165被示出为驻存在存储器101中。在其它实施例中,SSP165的组件中的一些或所有可以被存储在其它计算机可读媒体105上和/或被通过其它计算机可读媒体105传输。SSP165的组件优选地在一个或多个CPU103上执行并提供如本文中描述的安全服务。其它代码或程序130(例如,管理接口、网络服务器等等)以及潜在地其它数据储存库(诸如数据储存库120)也驻存在存储器101中,并且优选地在一个或多个CPU103上执行。值得注意的是,图6中的组件中的一个或多个可以不存在于任何特定实施方式中。例如,一些实施例可能不提供其它计算机可读媒体
105或显示器102。
[0111] SSP165包括安全管理器111、用户接口(“UI”)管理器112、安全服务供应商应用程序接口(“API”)113以及数据库115。
[0112] 安全管理器111一般执行SSP165的核心安全相关的操作。例如,安全管理器111可以管理文档的存储和检索、加密密钥或数据库115中存储的其它数据。安全管理器111还可以或代替地实现或管理由SSP165执行的加密和解密操作。
[0113] UI管理器112提供促进用户与SSP165及其各种组件交互的视图以及控制器。例如,UI管理器112可以提供到SSP165的交互式访问以便用户可以存储或检索文档或其它数据、配置SSP165的操作等等。在一些实施例中,可以经由网络服务器提供到UI管理器112的功能的访问,其可能执行作为其它程序130之一。在这样的实施例中,操作在客户端设备160或161之一上执行的网络浏览器(或其它客户端)的用户可以经由UI管理器112与SSP165交互。
[0114] API113提供到SSP165 的一个或多个功能的程序性的访问。例如,API113可以提供到SSP165的一个或多个功能的程序性的接口,该功能可以被其它程序130之一或某其它模块调用。以这种方式,API113促进开发第三方软件,诸如用户接口、插件、数据馈送、适配器(例如,用于将SSP165的功能整合到网络应用中)等。另外,在至少一些实施例中,可以经由诸如ESS110的远程实体调用或以其他方式访问API113以访问SSP165的各种功能。例如,ESS110可以经由API113向SSP165传送文档用于存储。
[0115] 由SSP165的其它模块使用数据库115以存储和/或传送信息。SSP165的组件使用数据库115以记录各种类型的信息(包括安全数据、加密密钥、策略信息等等)。数据库115可以实现关于图1和图2描述的文档库170和/或密钥库171。
[0116] SSP165经由网络150与客户端设备160和161以及电子签名服务110(或某其它服务)交互。网络150可以是促进位于远程的人和/或设备之间的通信的一个或多个媒体(例如,双绞的、同轴的、光纤的、无线电频率)、硬件(例如,路由器、交换机、中继器、收发器)以及一个或多个协议(例如,TCP/IP、UDP、以太网、Wi-Fi、WiMAX)的任何组合。在一些实施例中,网络150可以是或包括多个不同的通信信道或机构(例如,基于线缆的或无线的)。客户端设备160和161包括个人计算机、膝上型计算机、智能电话、个人数字助理、平板型计算机等等。
[0117] 在示例实施例中,使用标准编程技术实现SSP165的组件/模块。例如,SSP165可以被实现为连同一个或多个静态或动态库的在CPU103上的“本地的”可执行的运行。在其它实施例中,SSP165可以被实现为由作为其它程序130之一执行的虚拟机处理的指令。一般而言,可以使用本领域中已知的一系列编程语言实现这样的示例实施例,包括各种编程语言范例的代表性的实现,所述编程语言范例包括但不限于,面向对象的(例如,Java、C++、C#、Visual Basic.NET、Smalltalk等等)、功能性的(例如,ML、Lisp、Scheme等等)、程序性的(例如,C、Pascal、Ada、Modula等等)、脚本的(例如,Perl、Ruby、Python、JavaScript、VBScript等等)以及描述性的(例如,SQL、Prolog等等)。
[0118] 上面描述的实施例还可以使用公知的或者专有的同步的或异步的客户端服务器计算技术。同样,可以使用更多的单片电路编程技术将各种组件实现例如作为在单个CPU计算机系统上的可执行的运行,或可替代地使用本领域中已知的各种结构技术分解所述各种组件,其包括但不限于,在每一个都具有一个或多个CPU的一个或多个计算机系统上运行的多道程序设计、多线程、客户端-服务器、或对等。一些实施例可以同时地或异步地执行并使用消息传递技术通信。也支持等价的同步实施例。同样,可以由每一个组件/模块以及以不同的顺序并且通过不同的组件/模块实现和/或执行其它功能,但仍达到所描述的功能。
[0119] 另外,可以由标准机制诸如通过C、C++、C#以及Java APIs;用于访问文件的库、数据库或其它数据存储库;通过诸如XML的脚本语言;或通过网络服务器、FTP服务器或提供到所存储的数据的访问的其它类型的服务器得到对数据的编程接口,该数据被存储在诸如数据库115中作为SSP165的一部分。数据库115可以被实现为一个或多个数据库系统、文件系统、或用于存储这样的信息的任何其它技术、或上述的任何组合(包括使用分布式计算技术的实现)。
[0120] 构思程序和数据的不同的配置和位置以用于与本文中描述的技术一起使用。各种分布式计算技术适合于以分布式方式实现所图解的实施例的组件,其包括但不限于TCP/IP套接字、RPC、RMI、HTTP、网络服务(XML-RPC、JAX-RPC、SOAP等等)。其它变化也是可能的。同样,可以由每个组件/模块提供其它功能,或者可以以不同的方式将现有功能分布在组件/模块之间,但仍达到本文中描述的功能。
[0121] 另外,在一些实施例中,可以以其它方式实现或提供SSP165的组件中的一些或者所有,所述其它方式为诸如至少部分地在固件和/或硬件中,包括但不限于,一个或多个专用集成电路(“ASIC”)、标准集成电路、执行适当的指令的控制器,以及包括微控制器和/或嵌入式控制器、现场可编程门阵列(“FPGA”)、复杂可编程逻辑器件(“CPLD”)等等。还可以将系统组件和/或数据结构中的一些或所有存储为计算机可读媒体(例如,如同硬盘;存储器;计算机网络或蜂窝无线网络或其它数据传输媒体;或由适当的驱动器或经由诸如DVD或闪存设备的适当的连接读取的便携式媒体物品)上的内容(例如,作为可执行的或其它机器可读的软件指令或结构化的数据),以便使得计算机可读媒体和/或一个或多个相关联的计算系统或设备能够(或将其配置成)执行或以其他方式使用或提供内容以执行所描述的技术中的至少一些。还可以将系统组件和数据结构中的一些或所有存储为在各种计算机可读传输媒体上的数据信号(例如,通过被编码为载波的部分或者被包括作为模拟或数字传播信号的部分),然后其被传输(包括跨基于无线的和基于有线/线缆的媒体)并可以采用各种形式(例如,作为单个的或复用模拟信号的部分或作为多个离散的数字分组或帧)。这样的计算机程序产品还可以在其他实施例中采用其它形式。因此,可以采用其它计算机系统配置实践本公开的实施例。
[0122] 对本领域技术人员应该显而易见的是,除了已经描述的那些以外的更多修改都是可能的,而没有脱离本文中发明的原理。此外,在解释说明书和权利要求书两者时,应以与上下文一致的最宽可能的方式解释所有的术语。特别地,术语“包括”、“含有”、“包含”以及“涵盖”应被解释为以非排他性的方式提及元件、组件或步骤,指示所提及的元件、组件或步骤可以与未被明确地提及的其他元件、组件或步骤一起存在、使用或组合。在说明书权利要求书提及从包含A、B、C…和N的群组中选择的某物中的至少一个时,文本应被解释为需要来自集合{A,B,C,…N}的一个或多个元素,而不是除了来自集合{A,B,C}的一个或多个元素之外还有N。
[0123] 所有上面所引用的参考文献(题为“SYSTEMS AND METHODS FOR CLOUD DATA SECURITY”(用于云数据安全的系统及方法)的美国临时申请序列号61772397(于2013年3月4日提交))以其整体通过引用被并入本文中。在被并入的参考文献中的术语的使用或定义与本文中提供的该术语的定义不一致或相反的情况下,本文中提供的该术语的定义居支配地位并且参考文献中的该术语的定义不适用。
[0124] 虽然如上面记录的那样已经图解并描述了本发明的优选实施例,但是可以进行许多改变而不脱离本发明的精神和范围。因此,本发明的范围不受优选实施例的公开内容限制。