在基于的应用中安全地存储和分发敏感数据

申请号 CN201780009511.1 申请日 2017-02-10 公开(公告)号 CN108701094B 公开(公告)日 2023-03-21
申请人 移动熨斗公司; 发明人 J.蒂莫西;
摘要 公开了用于安全地存储和检索数据的技术。在各种 实施例 中,检索安全数据的过程包括接收 请求 ,其中该请求包括第一秘密数据和第二秘密数据。该过程还包括基于该请求识别要检索的第一已加密数据,使用第一秘密数据解密第一已加密数据以生成已解密数据,生成第二已加密数据,其中第二已加密数据是使用第二秘密数据来加密的。响应于该请求,提供第二已加密数据。
权利要求

1.一种由管理系统执行的方法,包括:
接收第一秘密数据和第二秘密数据,其中第二秘密数据包括安全代理服务器的公钥,安全代理服务器在云管理系统外部;
使用第一秘密数据来解密第一已加密数据以生成已解密数据,其中使用第一秘密数据进行解密包括从第一秘密数据恢复公钥;
通过使用第二秘密数据来加密所述已解密数据来生成第二已加密数据;以及将第二已加密数据提供给所述安全代理服务器,其中,没有任何来自安全代理的私钥被存储在所述云管理系统中。
2.根据权利要求1所述的方法,还包括:
接收请求;以及
将所述请求映射到第一秘密数据。
3.根据权利要求2所述的方法,还包括由处理器识别第一已加密数据以基于所述请求进行检索。
4.根据权利要求1所述的方法,其中,第一秘密数据包括密码。
5.根据权利要求1所述的方法,其中,所提供的第二已加密数据可由所述安全代理服务器的私钥来解密。
6.根据权利要求1所述的方法,还包括在接收第一秘密数据和第二秘密数据之前:
接收存储请求,其中,所述存储请求包括要被存储的数据和第三秘密;
使用第三秘密来加密所述数据;
将所述数据写入到存储器;以及
丢弃第三秘密。
7.根据权利要求6所述的方法,其中,将所述数据写入到存储器包括将所述数据存储到云服务,使得所述云服务不能解密所述数据。
8.根据权利要求1所述的方法,还包括注册安全代理服务器,包括:
接收登录数据,包括管理员密码、安全代理密码和租户信息;
基于所接收到的登录数据来认证所述安全代理;
接收包括安全代理公钥的注册信息;以及
存储所述安全代理公钥。
9.根据权利要求1所述的方法,还包括创建简档,包括:
接收要创建简档的请求;
检索管理员公钥;
生成简档密码;
将所述管理员公钥与所述简档密码相关联;
生成简档密钥对;
生成简档;以及
创建具有以所生成的简档密码进行保护的简档密钥对的文件。
10.根据权利要求9所述的方法,还包括将安全代理服务器分配给所述简档,包括:
接收要将安全代理服务器添加到简档的请求;
用管理员密码恢复管理员密钥;
使用所述管理员密钥解密简档密码;
用安全代理公钥加密所述简档密码;以及
存储已加密的简档密码。
11.根据权利要求1所述的方法,还包括移除安全代理服务器,其中,移除所述安全代理而不重新配给其他安全代理服务器。
12.根据权利要求1所述的方法,还包括移除安全代理服务器,包括:
接收要从简档中移除安全代理的请求;
用管理员密码恢复简档密码;
更改所述简档密码;以及
将更改后的简档密码散布给其他管理员和安全代理。
13.一种云管理系统,包括:
通信接口,其被配置成:
接收第一秘密数据和第二秘密数据,其中第二秘密数据包括安全代理服务器的公钥,安全代理服务器在云管理系统外部;以及
处理器,其被配置成:
使用第一秘密数据来解密第一已加密数据以生成已解密数据,其中使用第一秘密数据进行解密包括从第一秘密数据恢复公钥;
通过使用第二秘密数据来加密所述已解密数据来生成第二已加密数据;以及将第二已加密数据提供给所述安全代理服务器,其中,没有任何来自安全代理的私钥被存储在所述云管理系统中;以及
存储器,其被耦合到所述处理器并被配置成向所述处理器提供指令。
14.根据权利要求13所述的云管理系统,其中,所述通信接口还被配置成:
接收存储请求,所述存储请求包括要被存储的数据和第三秘密;以及所述处理器还被配置成:
使用第三秘密来加密所述数据;
将所述数据写入到存储器;以及
丢弃第三秘密。
15.根据权利要求13所述的云管理系统,其中,所述云管理系统提供访问控制以及密钥管理和分发。
16.根据权利要求13所述的云管理系统,其中,所述云管理系统服务于多个安全代理,并且可在不重新配给其它安全代理服务器中的每一个的情况下添加或移除安全代理服务器。
17.根据权利要求13所述的云管理系统,其中,所述云管理系统:
容纳多个租户和相应的数据安全域;以及
仅向实体提供用于解密证书私钥的密钥以访问属于租户的受保护资源。
18.根据权利要求13所述的云管理系统,其中,第一秘密数据包括密码,可使用所述密码来恢复公钥。
19.一种计算机可读存储介质,其上存储有计算机程序产品,所述计算机程序产品包括用于实现根据权利要求1至12中的任一项所述的方法的计算机指令。

说明书全文

在基于的应用中安全地存储和分发敏感数据

[0001] 对其他申请的交叉引用
[0002] 本申请要求对2016年2月10日提交的题为“SECURELY STORING AND DISTRIBUTING SENSITIVE DATA IN A CLOUD‑BASED APPLICATION(在基于云的应用中安全地存储和分发敏感数据)”的美国临时专利申请号62/293,437的优先权,其通过引用结合于此用于所有目的。

背景技术

[0003] 在“软件即服务”(SaaS)或其他基于云的应用或服务中,经常需要将秘密安全地分发给SaaS系统的云内的某些实体/服务。还期望具有中央管理控制台/服务和数据存储库,管理员可以在其中上传/配置和管理这些秘密。有时,安全地存储和分发存储在系统云上的秘密会由于中央管理控制台中的易损性、秘密并非是为其准备的实体访问秘密的尝试以及第三方的侵袭等等而具有挑战性。因此,存在要在基于云的应用中安全地存储和分发敏感数据的需求。附图说明
[0004] 在以下详细描述和附图中公开了本发明的各种实施例
[0005] 图1是例示了用于安全地存储和分发数据的系统的实施例的框图
[0006] 图2是例示了用于经由一个或多个安全代理(proxy)来安全地存储和分发数据的系统的实施例的框图。
[0007] 图3是例示了用于向基于云的服务提供安全数据存储的系统的实施例的框图。
[0008] 图4A是例示了用于从基于云的服务提供安全数据检索的系统的实施例的框图。
[0009] 图4B是例示了用于从基于云的服务提供安全数据检索的系统的实施例的框图。
[0010] 图5是例示了用于在云管理服务上安全地存储数据的过程的实施例的流程图
[0011] 图6是例示了用于从云管理服务安全地检索数据的过程的实施例的流程图。
[0012] 图7A是用于使用一个或多个加密密钥提供对基于云的服务的安全访问的系统的框图。
[0013] 图7B是用于使用一个或多个加密密钥提供对基于云的服务的安全访问的系统的框图。
[0014] 图8是例示了用于在安全存储和分发系统中登记设备的过程的实施例的流程图。
[0015] 图9是例示了用于在安全存储和分发系统中注册安全代理的过程的实施例的流程图。
[0016] 图10是例示了用于创建用于访问安全存储和分发系统的新简档的过程的实施例的流程图。
[0017] 图11是例示了用于将安全代理分配给用于访问安全存储和分发系统的简档的过程的实施例的流程图。
[0018] 图12是例示了用于从用于安全存储和分发系统的简档中移除安全代理的过程的实施例的流程图。
[0019] 图13是例示了经由多个安全代理提供对基于云的服务的安全访问的系统的实施例的框图。
[0020] 图14是例示了用于提供多个管理员对基于云的服务的安全访问的系统的实施例的框图。
[0021] 图15是例示了用于经由委托身份提供商架构和模型来提供对基于云的服务的安全访问的系统的实施例的框图。

具体实施方式

[0022] 本发明可以众多方式来实现,包括被实现为过程;装置;系统;物质的组成;被实施在计算机可读存储介质上的计算机程序产品;和/或处理器,诸如被配置成执行存储在耦合到处理器的存储器上和/或由耦合到处理器的存储器提供的指令的处理器。在本说明书中,这些实现或本发明可以采取的任何其他形式可以称为技术。一般而言,可以在本发明的范围内改变所公开的过程的步骤的顺序。除非另有说明,否则被描述为被配置成执行任务的诸如处理器或存储器之类的组件可以被实现为在给定时间处临时被配置成执行所述任务的通用组件或者被制造以执行所述任务的特定组件。如本文中使用的,术语“处理器”指的是被配置成处理数据的一个或多个设备、电路和/或处理核,所述数据诸如计算机程序指令。
[0023] 下文中提供本发明的一个或多个实施例的详细描述以及例示本发明原理的附图。结合这些实施例来描述本发明,但是本发明不局限于任何实施例。本发明的范围仅由权利要求限制,并且本发明涵盖众多的替换、修改和等同物。在以下描述中阐述了众多具体细节以便提供对本发明的透彻理解。提供这些细节是出于示例的目的,并且可以在没有这些具体细节中的一些或全部的情况下根据权利要求来实践本发明。为了清楚起见,并未详细描述与本发明相关的技术领域中已知的技术材料,使得不会不必要地模糊本发明。
[0024] 存储在基于云的服务(也称为“云管理服务”或“CMS”)中的数据的安全性可以被认为对数据所有者来说是高度重要的。不幸的是,数据可能会经受各种易损性。闯入CMS或数据存储库的攻击者可能能够获取数据。攻击者可能是数据所有者的系统/企业中的、CMS中的恶意实体或者是第三方(除基于云的管理服务或企业之外的某人)。
[0025] 例如,基于云的企业移动性管理服务的客户可能需要向CMS提供可以用于签署SAML声明的证书和相关联的私钥。这些声明被其他实体接受为用户身份和授权动作的证明。拥有这些私钥的攻击者可以在对其他基于云的服务(诸如企业主页或其他关键业务应用)进行认证时伪装成组织内的任何用户。这对客户来说可能是灾难性的,因为他们可能会损失关键业务数据。
[0026] 诸如Amazon®之类的云提供商提供数据存储库的全盘加密。这有助于防止获得对®磁盘副本的访问的攻击者,所述磁盘副本通常是磁盘的备份。诸如微软 的SQLServer和甲®
骨文 之类的一些数据库提供数据库内存储的数据的“透明数据加密”。然而,在这些解决方案中的任一者的情况下,系统都能够访问加密密钥。因此,经由诸如SQL注入之类的某些开发获得对系统的访问的攻击者可以直接从数据库请求秘密,数据库进而将返回未加密的数据。此外,全盘加密提供相对较低级别的访问控制。
[0027] 在各种实施例中,诸如加密密钥之类的敏感数据以已加密的形式存储在云中,同时确保云服务不存储解密敏感数据所需的密钥。在一些实施例中,仅SaaS系统内的管理员和/或授权实体(诸如安全代理服务器或与企业、客户、租户、域相关联的其他实体或其他可信实体)能够解密并恢复秘密。在一些实施例中,可以添加或移除安全代理服务器,而无需重新配给(re‑provision)其他安全代理服务器中的每一个。在一些实施例中,CMS提供访问控制以及密钥管理和分发。此处描述了各种实施例中的用于注册新的安全代理服务器(例®如,MobileIron Sentry)、创建新的简档以及将安全代理服务器分配给简档的技术的示例。
[0028] 在各种实施例中,可以实现优于现有解决方案的以下优点中的一个或多个。受保护的资源仅对客户管理员指定的系统/实体可用,并且通过强大的加密手段来强制执行这点。现有解决方案通常允许云服务提供商(CSP)解密数据,但是在本解决方案中,在各种实施例中,CSP不能(除了在一些实施例中,在特定情形下针对有限的时间,如本文所述)在不采取非常规动作的情况下解密数据,所述非常规动作诸如修改系统以捕获管理员的明文密码。
[0029] 如今将敏感数据交托给CSP的有安全意识的用户可以在上传之前自己加密数据。然而,这不是标准化过程,并且因此无法扩缩或互操作。因此,它不适用于SaaS应用或任何其他分布式系统,因为这些环境要求可扩缩性(例如,不止一个管理员、大量密钥的容易管理、环境内的多个系统等)和互操作性二者。例如,分布式系统内的授权实体必须能够解密为其准备的数据。在没有可互操作的加密过程的情况下,这是不可能的。
[0030] 与人工系统不同,此处描述的技术可以无缝地集成到SaaS应用中。因此,所有的密钥管理和分发都是对管理员来说透明地处置的,而不需要管理员提供凭证以完成一些操作。
[0031] 甚至加密数据的现有解决方案也可以针对访问数据的所有实体使用相同的密钥。然后,它们需要依赖于逻辑访问控制(软件基于登录信息来限制访问)以防止一个实体访问另一个实体的数据。不幸的是,长久以来,逻辑访问控制未能起到作用。此处描述的系统使用加密强制分离作为附加(且更强)的访问控制形式。
[0032] 在各种实施例中,提供了(对用户来说)透明的在基于云的系统内安全地存储和分发数据的系统和方法,其提供了可与用户自加密数据并自己管理密钥相比拟的安全级别。在各种实施例中,检索安全数据的过程包括接收请求,其中所述请求包括第一秘密数据和第二秘密数据。所述过程还包括基于所述请求来识别要检索的第一已加密数据,使用第一秘密数据来解密第一已加密数据以生成已解密数据,生成第二已加密数据,其中第二已加密数据是使用第二秘密数据来加密的。响应于所述请求,提供第二已加密数据。
[0033] 图1是例示了用于安全地存储和分发数据的系统100的实施例的框图。该系统包括设备管理服务器110、被管理设备120、安全状态存储130、受保护资源140和安全代理150。
[0034] 设备管理服务器110提供关于诸如被管理设备120之类的一个或多个设备的管理功能性。在所示示例中,设备管理服务器向设备120提供对受保护资源140的安全访问。设备管理服务器可以被配置成将设备120配置成由设备管理服务器和相关元件(诸如安全代理150)进行管理。设备管理服务器可以由移动设备管理(MDM)服务器、企业移动管理服务器(EMM)等来实现。
[0035] 被管理设备120是可由用户用来经由设备管理服务器110访问受保护资源140的设备。通过非限制性示例的方式,被管理设备可以由诸如智能电话、平板电脑、膝上型电脑和/或智能可穿戴设备之类的物理设备来实现。被管理设备可以向企业系统注册以便访问受保护资源140。图8中描述了用于登记设备的过程的示例。
[0036] 安全状态存储130存储关于系统100的安全状态的信息。例如,许可以及定义设备和/或管理员的访问许可的简档被存储在安全状态存储中。响应于被管理设备对受保护资源的请求,设备管理服务器可以确定该设备是否具有访问所请求的受保护资源的许可并相应地经由安全代理提供访问。
[0037] 受保护资源140包括企业后端内容,诸如由云服务提供商存储的数据。受保护资源140可以包括诸如文件、文档、电子邮件、日历、联系人等的应用和服务。对受保护资源的访问可以由设备管理服务器110和安全代理150进行管理。例如,如由设备的许可级别和/或简档所定义的,一些设备可以能够访问受保护资源的某些部分,但不能访问其他部分。
[0038] 安全代理150被配置成执行安全和认证程序以防护被管理设备120与受保护资源140之间的通信。安全代理可以由管理、加密并防护设备与受保护资源之间的通信量的网关来实现。例如,设备管理服务器110可以经由安全代理提供可信证书(例如,SSL)来向设备管理服务器认证被管理设备120。在各种实施例中,安全代理与CMS(未示出)协作以存储数据,例如使数据成为受保护资源,和/或以提供对受保护资源中的数据的访问。
[0039] 在操作中,管理员可以经由用户接口来控制设备管理服务器110。例如,管理员可以经由用户接口来指定期望的管理功能性并接收访问分析。此处描述的技术允许管理员使用用户接口来安全地存储和分发敏感数据。例如,可以自动地执行管理员经由用户接口指定的动作以注册新的安全代理服务器、创建新的简档、以及将安全代理服务器分配给简档,如此处进一步描述的那样。
[0040] 被管理设备120的用户可以如下获得对企业后端应用和服务140的安全访问。设备120的用户可以通过在设备120处进行登录来登记设备。作为登记过程的一部分,可以为设备生成密钥对,并且(经由安全代理)向设备提供公钥。设备管理服务器110使用安全状态存储130中的配置、设备简档、用户简档和策略信息来管理设备120并提供对受保护资源140的安全访问。在各种实施例中,设备管理服务器110与CMS协作以提供对受保护资源的安全访问,如关于图2进一步描述的那样。
[0041] 在一些实施例中,认证密钥(例如,用于身份提供商和/或服务提供商)被安全地存储为受保护资源140的一部分。CMS提供密钥管理和分发。当用户请求认证密钥时,如果用户具有适当的许可,则CMS将为用户提供密钥。在图15中描述密钥分发的示例。
[0042] 图2是例示了用于经由一个或多个安全代理安全地存储和分发数据的系统200的实施例的框图。该系统包括云管理服务210和一个或多个安全代理220.1和220.2。
[0043] 云管理服务210被配置成管理云中的数据的存储。例如,云管理服务被配置成存储由客户提供的数据。在各种实施例中,无论是否启用全盘加密或透明数据库加密,都不会在CMS内以明文形式存储密码或私钥。
[0044] 在各种实施例中,CMS容纳多个租户。在各种实施例中,一个租户的合法凭证不允许访问另一租户的私钥。在一些实施例中,这是通过防止没有拥有解密证书私钥所需的密钥的任何人访问受保护资源来实现的。例如,如果租户管理员和与租户相关联的安全代理服务器是具有证书私钥的实体,那么它们是唯一能够访问受保护资源的实体。
[0045] 一个或多个安全代理220.1和220.2中的每一个被配置成执行安全和认证程序以防护被管理设备与受保护资源之间的、例如在云管理服务210中的通信。在各种实施例中,安全代理是由客户拥有和管理的实例,并且可以被提供在本地(on‑premise)或在云中。在一些实施例中,可以部署多个安全代理服务器220.1和220.2,并且其每一个都可以被配置(例如,经由一个或多个简档)成支持多个单独的数据安全域中的一个或多个(例如,单独的公司或其他企业、多租户系统的租户等)。
[0046] 在各种实施例中,可以添加或移除安全代理,而无需重新配给其他安全代理服务器中的每一个,如此处例如关于图12进一步描述的那样。在各种实施例中,对安全代理服务器的根级访问(并因此恢复安全代理服务器的私钥)不会危及被分配给该安全代理服务器的简档中未包括的任何证书/私钥。关于图7A和7B描述了示例。在各种实施例中,“简档”可以包括用于一个或多个安全代理服务器的设置和/或其他配置数据的集合。
[0047] 在各种实施例中,管理员可以经由UI对CMS设置和内容做出更改。在一些实施例中,管理员可以授权一个或多个安全代理访问数据。例如,管理员提供用于加密数据的密码,如关于图3进一步描述的那样。管理员能够将安全代理服务器从一个简档移动到另一个简档(删除,添加)。关于图11描述了将安全代理服务器添加到简档的示例过程。关于图12描述了从简档中移除安全代理服务器的示例过程。
[0048] 在操作中,CMS 210经由安全代理220.1或220.2来提供对受保护资源的访问。例如,CMS 210将数据上传到云而不存储解密该数据所需的密钥。图5中描述了数据存储的示例。当具有适当访问许可的用户稍后请求所上传的数据时,CMS用管理员提供的密钥来解密所请求的数据,用该用户的安全代理公钥来加密已解密数据,并且提供已加密数据。图6中描述了数据检索的示例。
[0049] 此处描述的技术可以实现各种安全目标。例如,对CMS的根级访问本身不会给予对CMS所存储的客户私钥的访问。在一个方面中,此处描述的技术减轻了来自非法侵入CMS的对手和流氓雇员的这两个威胁。
[0050] 在各种实施例中,保护客户环境(例如,图1的受保护资源140)的完整性。在一个方面中,对安全代理服务器的根级访问(或知晓其私钥)不影响其他安全代理服务器的安全性。一旦CMS移除了安全代理服务器,知晓安全代理服务器的私钥就不会允许攻击者解密该简档在数据库中的更新数据。在一些实施例中,安全代理服务器可以具有数据的副本(例如,简档和证书/私钥),但是如果数据库已被更新有新的证书,那么具有对数据库的访问的攻击者不能使用安全代理服务器的“已撤销”的公钥来解密该数据。这有利地限制了已被完全危及的安全代理服务器所造成的损害,因为在移除安全代理服务器之后,安全代理服务器被限制为由其能够解密的最新近的简档所许可的访问。
[0051] 图3是例示了用于向基于云的服务提供安全数据存储的系统300的实施例的框图。管理员可以如下将数据302安全地存储在云管理服务310上。
[0052] 在一些实施例中,当创建管理员帐户时,生成公钥/私钥对并用管理员密码304保护所述公钥/私钥对。管理员公钥306允许在不要求管理员密码的情况下创建新的简档。在一些实施例中,可以使用与管理员的登录密码不同的密码,从而提供另一层安全性。
[0053] 为了将数据上传到CMS,管理员提供要上传的数据和密码304,诸如登录密码或另一密码。从管理员提供的密码恢复管理员密钥306(“管理员密钥”)。使用管理员密钥来加密数据302,并将已加密数据308存储在CMS 310中。在各种实施例中,CMS不保留管理员密码,使得已加密数据不可被CMS或除管理员之外的任何实体所解密。
[0054] 由管理员上传并保存在CMS 310中的数据可以是任何类型的数据。在一些实施例中,所述数据包括用于签署认证请求的加密密钥。例如,加密密钥可以用于签署图15中描述的认证请求。签署图15中所示的消息中的一些以加密地提供源、发送者或设备的身份以满足请求设备。
[0055] 图4A是例示了用于从基于云的服务提供安全数据检索的系统400的实施例的框图。用户可以如下经由安全代理420从云管理服务410检索数据。
[0056] 经由安全代理420向CMS 410提供管理员密码404。在一些实施例中,管理员密码由请求数据的用户提供,或者由用户的请求触发管理员密码的查找。在一些实施例中,管理员密码由管理员提供。从管理员提供的密码中恢复管理员密钥406。可以使用管理员密钥来解密已加密数据408。在此状态下,已加密数据在CMS 410中短暂地解密。在此状态下,用户尚不能访问数据412。用户根据图4B来访问数据412。
[0057] 图4B是例示了用于从基于云的服务提供安全数据检索的系统450的实施例的框图。用户可以如下经由安全代理420从云管理服务410检索数据418。
[0058] 安全代理420提供其公钥424,其用于加密数据412。所述数据先前已被用管理员密钥解密(图4A中所示)。CMS 410将现在用安全代理公钥加密的数据提供给安全代理420。安全代理服务器公钥允许管理员在不知晓该安全代理服务器的私钥的情况下将该安全代理服务器添加到简档。安全代理420能够使用其私钥422来解密已加密数据414。
[0059] 图3、图4A、图4B中讨论的各种公钥(例如,管理员、安全代理服务器、简档)提供了允许在不访问私钥的情况下添加新元素的活板功能性。这限制了需要管理员密码的次数,并且有助于减轻潜在破坏CMS的影响。
[0060] 此处描述的技术可在各种系统中找到应用。例如,这些技术可以用在具有将服务与用户帐户相关联的能的任何云结构中。云结构可以注册系统(例如,移动设备,诸如®Citrix NetScaler 之类的应用传送系统等等)并保护用户数据或授权设备。
[0061] 在一些实施例中,具有根特权的攻击者在延长的时间段内仍然可以获得足够的客户凭证来访问私钥。这可能是为了可用性而做出的权衡。例如,要求攻击者逐个获得对每个客户的私钥的访问。在各种实施例中,此处描述的设计减轻了客户账户“大规模破坏”的险。
[0062] 图5是例示了用于在云管理服务上安全地存储数据的过程500的实施例的流程图。在各种实施例中,过程500可以由云管理服务来实现,诸如图2的CMS 210、图3的CMS 310或图4A和4B的CMS 410。
[0063] 接收要存储数据的请求(502)。在各种实施例中,该请求包括要被存储的数据以及第一秘密。第一秘密可以是保护管理员密钥的管理员密码。使用第一秘密来加密该数据(504)。例如,使用第一秘密来恢复管理员密钥。使用管理员密钥来加密所接收的数据。存储已加密数据(506)并丢弃第一秘密(508)。因为不保留第一秘密和从第一秘密恢复的管理员密钥,因此已加密数据被安全地存储并且不能被存储系统所解密。只有管理员和/或授权实体(诸如安全代理服务器或与企业、客户、租户、域相关联的其他实体或其他可信实体)才能解密并恢复所述秘密。
[0064] 图6是例示了用于从云管理服务安全地检索数据的过程600的实施例的流程图。在各种实施例中,过程600可以由云管理服务来实现,诸如图2的CMS 210、图3的CMS 310或图4A和4B的CMS 410。
[0065] 接收请求(602)。在各种实施例中,该请求包括第一秘密和第二秘密。第一秘密可以是保护管理员密钥的管理员密码。第二秘密可以是安全代理公钥。安全代理公钥可以是在登记时被分配给安全代理的密钥对的一部分,例如,如关于图10描述的那样。安全代理公钥可以用于加密被发送到安全代理的数据,诸如从CMS请求的数据。该请求可以是为了访问存储在CMS中的数据。在各种实施例中,根据图5的过程500将数据存储在CMS中。基于该请求,识别要检索的已加密数据(604)。例如,CMS确定请求者是否具有访问所请求的数据的适当许可或特权。使用第一秘密来解密已加密数据(606)。例如,使用第一秘密来恢复管理员密钥。使用管理员密钥来解密已加密数据。
[0066] 为了以已加密形式将已由管理员密钥解密的数据发送给请求者,使用第二秘密来加密已解密数据(608)。例如,使用安全代理公钥来加密数据。提供已加密数据(610)。在接收时,安全代理可以使用其私钥来解密已加密数据。
[0067] 图7A是用于使用一个或多个加密密钥提供对基于云的服务的安全访问的系统700的框图。系统700示出了密钥层次结构和安全密钥存储机制。
[0068] 在系统700中,安全代理“安全代理1”和“安全代理2”连接到一简档。连接到该简档的各安全代理具有用于访问共同密钥的密钥。在此示例中,安全代理1和安全代理2已被连接到一简档并且各自具有一密钥。共同数据可以包括各种数据。在一些实施例中,共同数据包括用于签署诸如图15中所示的请求之类的请求的密钥以及用于向连接到哨兵(sentry)的设备证明哨兵身份的密钥。与传统数据存储系统相比,系统700具有增强的安全性特征。例如,相同的共同数据由共同密钥加密,被用管理员密钥、第一安全代理密钥和第二安全代理密钥中的相应一个密钥进行加密。共同公钥允许CMS在不知晓共同私钥的情况下访问共同数据。例如,简档公钥(一种共同公钥)允许CMS在不知晓简档私钥的情况下向简档添加新证书。因此,CMS将不需要管理员的密码来执行此动作。
[0069] 在一些实施例中,共同密钥由管理员公钥和安全代理公钥进行加密。在此处示出的示例中,共同密钥由管理员密钥以及安全代理1密钥和安全代理2密钥进行加密。共同密钥加密共同数据。当安全代理请求访问共同数据时,安全代理能够使用被用于加密共同密钥的其公钥来获取对共同数据的访问。以这种方式,安全代理可以使用其私钥来解密共同密钥。
[0070] 使用图7A的密钥层次结构,还可以添加/移除管理员并支持多个管理员。如果管理员忘记了其密码,则可以由另一管理员重置。在一些实施例中,如果针对一租户的所有管理员同时忘记他们的密码,则租户基本上将不再能够将安全代理服务器添加到简档/从简档中移除安全代理服务器。在一些实施例中,存在经由已注册的安全代理服务器的恢复路径,因为它们拥有必需的加密密钥。
[0071] 图7B是用于使用一个或多个加密密钥提供对基于云的服务的安全访问的系统750的框图。在此示例中,安全代理2不再能够访问该系统。当更换共同密钥时,共同密钥被分发给具有访问共同密钥的许可的实体,并且被用用于已允许实体的公钥进行加密。因此,一旦更换了共同密钥,不具有共同密钥的实体就不能访问共同数据。此处,用共同密钥B来更换共同密钥A。因为安全代理服务器2没有共同密钥B,因此安全代理2不能访问共同数据。
[0072] 在各种实施例中,由管理员密码产生的“密码”可以是BASE64编码的加密密钥。如此,它们可能需要足够大(128或256位)才能达到目的。这将使它们与底层RSA密钥一样强大。
[0073] 图8是例示了用于在安全存储和分发系统中登记设备的过程800的实施例的流程图。在各种实施例中,过程800可以由安全代理来实现,诸如图2的安全代理220.1和220.2或图4A和4B的安全代理420。
[0074] 在一些实施例中,将设备登记到企业系统中的过程800指定安全代理属于特定租户。从设备接收要登记的请求(802)。为该设备生成秘密密钥对(804)。秘密密钥对可以是RSA密钥对,例如3072位。存储公钥(806)。例如,将公钥上传到CMS以供将来使用。接收管理员公钥和/或管理员登录密码(808)。管理员公钥和/或登录密码可以是管理该设备的管理员的公钥和/或登录密码。接收共同公钥(810)。例如,共同公钥是用于加密共同数据或简档数据的简档公钥。在成功登记之后,基于管理员公钥、安全代理密钥和/或简档来提供对所请求的数据的访问(812)。该简档可以包括关于该设备的识别信息,诸如相关联的管理员、租户等。图5和图6的过程500和600是基于管理员公钥、安全代理密钥和/或简档来提供对所请求的数据的访问的示例。
[0075] 图9是例示了用于在安全存储和分发系统中注册安全代理的过程900的实施例的流程图。在各种实施例中,过程900可以由云管理服务关于安全代理来实现,所述云管理服务诸如图2的CMS 210、图3的CMS 310或图4A和4B的CMS 410,所述安全代理诸如图2的安全代理220.1和220.2或图4A和4B的安全代理420。
[0076] 接收安全代理登录(902)。登录可以包括管理员密码、哨兵密码和简档/租户。在各种实施例中,由安全代理提供的登录信息被用于验证该安全代理是被授权的而不是流氓。基于登录来认证安全代理(904)。例如,可以在诸如图1的安全状态数据库130之类的安全状态数据库中查找该安全的特权。接收注册信息(906)。在一些实施例中,注册信息包括安全代理公钥。存储公钥(908)。注册完成后,该安全代理属于一租户。在各种实施例中,稍后当用户经由安全代理请求存储在CMS中的数据时(例如,图6的过程600)使用该公钥。
[0077] 与典型过程相比,过程900提高了可用性,因为管理员在最初向CMS注册之后不需要单独访问每个安全代理服务器。
[0078] 图10是例示了用于创建用于访问安全存储和分发系统的新简档的过程1000的实施例的流程图。在各种实施例中,过程1000可以由云管理服务来实现,诸如图2的CMS 210、图3的CMS 310或图4A和4B的CMS 410。
[0079] 在各种实施例中,简档定义设备和/或管理员的访问许可。创建简档后,可以将安全代理连接到简档。在图7A的示例中,简档是共同数据,并且安全代理1和安全代理2已经连接到简档,使得它们可以访问共同数据。
[0080] 返回图10,接收简档创建请求(1002)。检索管理员公钥(1004)并生成简档密码(1006)。将管理员公钥与简档密码相关联(1008)。例如,管理员公钥加密简档密码。生成简档密钥对(1010)。在创建新简档时,CMS将为该简档生成新的公钥/私钥对。例如,简档密钥对是用于访问图7A的共同数据的共同数据密钥对。生成简档(1012)。创建具有简档密钥对的文件并用所生成的简档密码来保护该文件(1014)。
[0081] 图11是例示了用于将安全代理分配给用于访问安全存储和分发系统的简档的过程1100的实施例的流程图。在各种实施例中,过程900可以由云管理服务关于安全代理来实现,所述云管理服务诸如图2的CMS 210、图3的CMS 310或图4A和4B的CMS 410,所述安全代理诸如图2的安全代理220.1和220.2或图4A和4B的安全代理420。
[0082] 接收来自管理员的要将安全代理添加到简档的请求(1102)。用管理员密码恢复管理员密钥(1104)。解密简档密码(1106)。用安全代理公钥加密简档密码(1108)。存储已加密的简档密码(1110)。一旦将安全代理分配给了简档,安全代理就通过解密简档密码并使用简档密码解密简档密钥来获取简档密钥。例如,简档密码解简档公钥和私钥,并且简档公钥和私钥加密共同数据。
[0083] 图12是例示了用于从用于安全存储和分发系统的简档中移除安全代理的过程1200的实施例的流程图。在各种实施例中,过程900可以由云管理服务关于安全代理来实现,所述云管理服务诸如图2的CMS 210、图3的CMS 310或图4A和4B的CMS 410,所述安全代理诸如图2的安全代理220.1和220.2或图4A和4B的安全代理420。
[0084] 接收来自管理员的要从简档移除安全代理的请求(1202)。用管理员密码恢复简档密码(1204)。更改简档密码(1206)。将更改后的简档密码散布给其他管理员和安全代理(1208)。在一个方面中,简档密码正在为其他管理员和除了已被移除的该安全代理之外的安全代理进行加密。已被移除的安全代理没有更改后的简档密码,并且因此无法用其旧密码获取简档数据。
[0085] 参考图7A和7B,系统750可以是将过程1200应用于系统700而产生的。在图7B中,安全代理2已被移除并且共同密钥A(例如,简档密码)已被更改为共同密钥B。
[0086] 图13是例示了经由多个安全代理提供对基于云的服务的安全访问的系统1300的实施例的框图。系统1300包括多个安全代理1340.1和1340.2。在此示例中,单个管理员管理多个安全代理。例如,企业网络内的不同设备可能具有不同的访问许可。每个设备都有用于访问企业资源的相应安全代理。单个管理员可以管理许多不同的安全代理。
[0087] 在操作中,为了上传用于安全代理1340.1的第一数据(“数据1”),管理员提供密码。从该密码恢复管理员密钥并使用所述管理员密钥来加密第一数据。安全代理1340.1可以根据此处描述的技术(例如,图5和6)上传/下载第一数据。为了上传用于安全代理1340.2的第二数据(“数据2”),管理员提供其密码(针对数据1所提供的相同的密码)。从该密码恢复管理员密钥并使用所述管理员密钥来加密第二数据。安全代理1340.2可以根据此处描述的技术(例如,图5和6)上传/下载第二数据。
[0088] 在云中分发和存储证书和其他敏感数据、但是其中每个证书、密钥或敏感数据都是使用仅对该数据的所有者和/或管理员和/或该数据所有者信任的另一实体可用的密钥来加密的(除了针对有限的时间和情形,如此处所述)使得能够实现这种敏感数据的基于云的存储的便利性,而不会将一个数据所有者的敏感数据暴露给另一个数据所有者的敏感数据,并且不会在关于仅一个敏感数据的安全破坏的情况下使所有的敏感数据暴露。
[0089] 图14是例示了用于提供多个管理员对基于云的服务的安全访问的系统1400的实施例的框图。系统1400包括多个管理员(“管理员1”和“管理员2”)以及多个安全代理1440.1和1440.2。在此示例中,针对若干个管理员/租户的数据被保留在同一个云中。属于租户的数据只能由该租户访问,而不能由其他租户访问。
[0090] 在操作中,为了上传针对安全代理1440.1的第一数据(“数据1”),管理员1提供第一密码“密码1”。从第一密码恢复第一管理员密钥,并使用其来加密第一数据。安全代理1440.1可以根据此处描述的技术(例如,图5和6)上传/下载第一数据。为了上传针对安全代理1440.2的第二数据(“数据2”),管理员提供第二密码“密码2”。从第二密码恢复第二管理员密钥,并使用其来加密第二数据。安全代理1440.2可以根据此处描述的技术(例如,图5和
6)上传/下载第二数据。
[0091] 图15是例示了用于经由委托身份提供商架构和模型来提供对基于云的服务的安全访问的系统1500的实施例的框图。本文描述的技术可以应用于系统1500。例如,可以使用图5和6的过程500和600从CMS获得下面描述的各种加密密钥。
[0092] 在所示示例中,系统和环境1500包括一个或多个用户代理(user agent),在图15中由用户代理1502表示,其例如但不限于,浏览器、被管理应用、未管理应用或在移动设备或其他设备上运行的其他软件,所述移动设备或其他设备被配置成用于访问由服务提供商TM ®1504提供的基于云的服务,所述服务提供商1504例如Box.com 、Dropbox 或
®
salesforce.com 。用户代理102与身份提供商106相关联,身份提供商106例如本地的、基于云的、或其他身份提供商,诸如Ping Identity Corporation(Ping身份公司)提供的®
PingOne 服务。在所示示例中,已经在服务提供商1504与在安全代理服务器1510上运行的身份提供商代理1508之间建立了信任关系。例如,服务提供商1504和身份提供商代理1508可以具有交换的证书。类似地,已在身份提供商1506与服务提供商代理1512之间建立了信任关系,例如,经由证书交换。
[0093] 身份提供商代理1508和服务提供商代理1512具有在它们之间建立的信任关系,并且各自被配置成代表另一方来重新签署声明。例如,在各种实施例中,身份提供商代理1508被配置成向服务提供商1504和/或用户代理1502提供由身份提供商代理1508代表(即,充当并且表现为)服务提供商代理1512签署的声明(例如,以用于进一步呈现给身份提供商1506并由身份提供商1506消费)。类似地,在各种实施例中,服务提供商代理1512被配置成向身份提供商1506和/或用户代理1502提供(例如,用于进一步呈现给服务提供商1504并由服务提供商1504消费)由服务提供商代理1512代表(即,充当并且表现为)身份提供商代理1508签署的声明。
[0094] 在各种实施例中,用户代理1502可以通过首先联系服务提供商1504或者通过首先与身份提供商1506进行认证并然后访问由服务提供商1504提供的服务来发起对服务提供商1504提供的服务的访问。例如,用户代理1502可以向服务提供商1504发送要访问服务的请求(箭头1)。如果服务提供商1504确定不存在与用户代理1502的现有(即,先前认证过的)会话,则服务提供商1504可以被配置成将用户代理1502重定向(箭头2)到身份提供商代理1508(箭头3),身份提供商代理1508进而可以经由由身份提供商代理1508使用与服务提供商代理1512相关联的证书签署的通信来将用户代理1502重定向到身份提供商1506(箭头
4)。身份提供商1506可以针对凭证向用户代理1502进行挑战,并且在成功登录时可以向用户代理1502提供用于向服务提供商代理1512呈现(箭头5)的第一(SAML或其他)声明,服务提供商代理1512可以被配置成使用所述声明来向用户代理1502提供第二(SAML或其他)声明(箭头6)以呈现给服务提供商1504(箭头7)以获得对服务(或其他资源)的访问,所述第二声明是由服务提供商代理1512使用与身份提供商代理1508相关联的证书签署的。
[0095] 在各种实施例中,身份提供商发起的认证可以由用户代理1502实现,用户代理1502用于在尝试访问与服务提供商1504相关联的服务之前经由身份提供商1506来访问和登录。在成功登录后,身份提供商1506可以经由在用户代理1502处呈现的图形或其他用户接口(例如,网页)来提供经认证的用户可以访问的一个或多个服务的列表或其他表示。选择与服务提供商1504相关联的服务可以导致身份提供商1506向用户代理1502提供用于向服务提供商代理1512呈现的第一(SAML或其他)声明,服务提供商代理1512可以被配置成使用所述声明来向用户代理1502提供第二(SAML或其他)声明以呈现给服务提供商1504以获得对服务(或其他资源)的访问,所述第二声明是由服务提供商代理1512使用与身份提供商代理1508相关联的证书签署的。
[0096] 在各种实施例中,可以使用本文公开的技术来分发和/或存储以上参考图15描述的一个或多个证书。
[0097] 在各种实施例中,提供云管理服务(CMS)1550以管理数据在云中的存储。在各种实施例中,CMS可以存储用于身份提供商(IdP)代理和服务提供商(SP)代理中的一个或两者的公钥和私钥。所述代理可以驻留在一个或多个安全代理服务器中。身份提供商代理和/或服务提供商代理密钥可以分发给一个或多个所部署的安全代理服务器。各种实施例中的SP‑代理私钥可以用于签署SAML认证令牌。
[0098] 在典型的云管理服务系统中,由于服务提供商(SP)可以被配置成基于确定了所接收的SAML令牌是由SP‑代理的证书签署的而允许访问,因此窃取了该证书的对手可能能够作为来自该组织的任何用户而登录到任何已配置的SP中(例如,作为租户管理员而登录到®SalesForce 中)。
[0099] 将本文描述的技术应用于系统1500有利地限制了由已被完全危及的安全代理服务器所造成的损害,因为在安全代理服务器被移除之后,安全代理服务器被限制为其能够解码的最新近的简档所许可的访问。例如,CMS无法在没有客户管理员交互的情况下向简档添加新的安全代理服务器。作为另一示例,CMS无法在没有客户管理员批准的情况下引入新的IDP‑代理或SP‑代理的证书。在一些实施例中,阻止CMS引入新的IDP‑代理或SP‑代理的证书,因为系统被配置成提示管理员将IDP/SP配置成与CMS分离地使用特定证书。因此,在CMS上更换这些证书将不会给予攻击者对SP/IDP的访问,而只会破坏整体配置。在一些实施例中,在该系统内包括完整性保护以防止对客户配置的未授权修改。
[0100] 此处描述的技术改善了用户体验并提高了安全性。在一个方面中,尽可能不频繁地提示管理员输入他们的密码。例如,管理员仅在登录时或在向简档添加安全代理服务器/移除安全代理服务器时才会被提示输入其密码。在一些实施例中,后者可能是必要的,因为在用安全代理服务器的公钥对其进行加密之前,可能需要使用管理员的密码来恢复明文简档密码。
[0101] 此处描述的技术提供数据在云上的管理和存储以及数据从一个云到读取和利用数据的另一系统的分发。此处描述的技术防止了基于云的服务的安全破坏。
[0102] 尽管为了清楚理解的目的已在一定程度上详细描述了前述实施例,但是本发明不限于所提供的细节。存在实现本发明的许多替换方式。所公开的实施例是例示性的而非限制性的。
QQ群二维码
意见反馈