一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

针对共享秘密数据的动态用户群组的访问权限的增强管理的制作方法

2022-07-14 04:56:05 来源:中国专利 TAG:

针对共享秘密数据的动态用户群组的访问权限的增强管理


背景技术:

1.管理存储秘密数据的系统所需的资源会给各种规模的公司带来挑战。如果管理不当,人为错误或管理不当的维护任务会导致安全问题。当数据中心为大型用户群组提供服务时,管理成本和暴露于各种形式的风险会显著增加。当这样的系统具有高的用户流失率时,安全风险会进一步增加。
2.当使用第三方实体来存储秘密数据时,可能出现额外的挑战。例如,特定公司可能使用第三方服务来存储秘密数据。尽管与自我管理的转钥系统(turnkey system)相比,这样的服务可以针对特定类型的威胁提供更高级别的安全性,但是对于希望针对恶意用户或者甚至第三方服务的管理员保持高级别的安全性的公司而言,可能存在许多缺点。
3.正是关于这些以及其他考虑,提出了在本文中所公开的内容。


技术实现要素:

4.在本文中所公开的技术提供了针对共享秘密数据的用户的动态群组的访问权限的经改善的管理。在本文中所公开的技术不是依赖于用于修改针对存储数据的访问权限的常规管理技术,而是允许存储服务与诸如ms teams或slack的群组管理系统进行通信以验证例如信道或聊天会话的用户群组的成员资格,并且在用户离开或者加入群组时自动地改变对存储数据的访问权限。在本文中所公开的技术能够提供许多技术益处,所述益处能够减轻或者消除针对常规上用于通过利用由群组管理器提供的成员资格数据来移除、添加或者修改访问许可的手动管理任务的需要。在一个说明性示例中,加密数据能够被存储在存储保险库内,所述存储保险库可以由第一实体来管理。所述存储保险库能够专用于存储在例如信道的用户群组之间共享的加密数据。管理所述存储保险库的服务器能够从群组管理服务(例如,聊天服务)接收成员资格数据,所述群组管理服务可以由单独的实体来管理。当用户加入或者离开由所述群组管理服务管理的群组时,能够添加、删除或者修改每个用户对所述存储保险库的访问许可。
5.应当意识到,上述主题可以被实现为计算机控制的装置、计算机进程、计算系统,或者被实现为诸如计算机可读存储介质之类的制品。通过阅读以下详细描述和查看相关联附图,这些和各种其他特征将是显而易见的。
6.提供本发明内容是为了以简化形式介绍概念的选择,这些概念将在下文的详细描述中进一步描述。本发明内容并不旨在识别所要求保护的主题的关键特征或基本特征,也并不意在使用本发明内容来限制所要求保护的主题的范围。此外,所要求保护的主题并不限于解决在本公开的任何部分中指出的任何或所有缺点的实现方式。
附图说明
7.参考附图描述了详细描述。在附图中,附图标记的(一个或多个)最左侧数字标识附图标记首次出现的附图。在不同附图中相同的附图标记指示相似或相同的项目。对多个项目中的个体项目的引用能够使用带有字母序列中的字母的附图标记来指代个体项目或
实例。对项目的通用引用可以使用没有字母序列的特定附图标记。
8.图1是示出了针对用户的群组使用保险库密钥来为加密数据提供增强的安全性的系统的若干示例性组件的框图。
9.图2a是示出了用于使用针对由通信系统的名册定义的用户的群组的保险库密钥来存储加密数据的过程的阶段的框图。
10.图2b是示出了用于验证用户的特定群组的成员资格的过程的框图。
11.图2c是示出了使用针对用户的群组的保险库密钥来存储加密数据的服务器的状态的框图。
12.图2d是示出了用于请求访问使用针对用户的群组的保险库密钥而存储的加密数据的过程的阶段的框图。
13.图2e是示出了用于验证用户的特定群组的成员资格的过程的框图。
14.图2f是示出了用于请求访问使用针对用户的群组的保险库密钥而存储的加密数据的过程的另一阶段的框图。
15.图2g是示出了在从服务器访问秘密数据之后多个客户端计算机的状态的框图。
16.图3a是示出了用于控制对使用针对用户的群组的保险库密钥而保护的存储数据的访问的系统的各方面的框图。
17.图3b是示出了用于控制对使用针对用户的群组的保险库密钥而保护的存储数据的访问的过程的各方面的框图。
18.图3c是示出了用于确认群组的成员资格的群组管理器的各方面的框图。
19.图3d是用于控制对使用针对用户的群组的保险库密钥而保护的存储数据的访问的过程的其他方面的框图。
20.图3e是示出了客户端计算机解密接收到的数据的过程的结果的框图。
21.图3f是示出了客户端计算机使用包括针对用户的群组的保险库密钥的密钥组合来加密更新数据的各方面的框图。
22.图3g是示出了客户端计算机向服务器提供更新数据以供存储的框图。
23.图3h是示出了确定用户是否是群组的成员的验证过程的框图。
24.图3i是示出了服务器响应于用户的成员资格验证而将数据写入到保险库的结果的框图。
25.图4是图示了用于获得用户私钥的过程的各方面的流程图。
26.图5是图示了用于从保险库服务获得保险库密钥的过程的各方面的流程图。
27.图6是图示了用于在个人保险库中创建秘密数据的过程的各方面的流程图。
28.图7是图示了用于在群组保险库中创建秘密数据的过程的各方面的流程图。
29.图8是图示了用于将秘密数据从个人保险库共享到群组保险库的过程的各方面的流程图。
30.图9是图示了用于更新被存储在保险库中的秘密数据的过程的各方面的流程图。
31.图10是图示了允许用户浏览被存储在保险库中的数据的过程的各方面的流程图。
32.图11是图示了用于从保险库服务获得秘密数据的过程的各方面的流程图。
33.图12是图示了用于将用户添加到与保险库相关联的群组的过程的各方面的流程图。
34.图13是图示了用于将秘密数据存储在保险库中并且将用户添加到与所述保险库相关联的群组的过程的各方面的过程流程图。
35.图14是示出了用于获得活动数据以控制针对群组保险库存储系统的密钥更新的过程的各方面的框图。
36.图15是示出了能够被用于控制针对群组保险库存储系统的密钥更新的活动数据的各方面的框图。
37.图16a是示出了用于控制要由多个客户端计算设备运行的密钥更新的过程的各方面的框图。
38.图16b是示出了用于接收使用更新的密钥来加密数据的过程的各方面的框图。
39.图17a示出了具有使得计算设备控制一个或多个密钥更新的第一特性集合的活动数据的各方面。
40.图17b示出了具有使得计算设备控制一个或多个密钥更新的第二特性集合的活动数据的各方面。
41.图17c示出了具有使得计算设备控制一个或多个密钥更新的其他特性的活动数据的各方面。
42.图18是图示了用于基于用户群组的活动来更新一个或多个加密密钥的过程的各方面的过程流程图。
43.图19a是示出了用于基于由群组管理系统提供的成员资格数据来管理存储系统上的用户权限的过程的各方面的框图。
44.图19b示出了将第二用户添加到群组的过程的各方面。
45.图19c示出了将成员资格数据从群组管理器传送到存储服务器的过程的各方面。
46.图19d示出了将更新命令从存储的服务器发送到客户端计算机的过程的各方面。
47.图19e示出了将加密密钥从客户端计算机传送到服务器和/或新群组成员的客户端计算机的过程的各方面。
48.图19f示出了群组的新成员能够将通信加密数据存储到服务器的过程的各方面。
49.图19g示出了群组的新成员能够基于从群组管理器接收到的成员资格数据将加密数据存储在服务器上的过程的各方面。
50.图20是图示了用于基于群组的成员资格来更新针对用户的许可的过程的各方面的过程流程图。
51.图21是计算机架构图,其图示了用于能够实现在本文中所呈现的技术和技艺的各方面的计算系统的说明性计算机硬件和软件架构。
52.图22是图示了能够实现在本文中所呈现的技术和技艺的各方面的分布式计算环境的图。
53.图23是图示了能够实现在本文中所呈现的技术和技艺的各方面的计算设备的计算设备架构的计算机架构图。
具体实施方式
54.以下详细描述针对用于为加密数据提供增强安全性的技术。在一些配置中,系统能够通过使用与个体用户群组相关联的单个保险库密钥来为用户的群组共享的秘密数据
hangouts或者microsoft teams提供的特征。可以提供系统100的特征的实体的示例能够包括amazon、oracle、salesforce或facebook。在一些配置中,群组管理器115能够维护利用群组标识符112和每个群组成员的身份113标识每个群组的群组名册116。用户能够由所述群组的成员添加到群组111或者从群组111中删除。在一些配置中,一些用户也可以独立控制以将自己添加到群组或者将自己从群组中移除。服务器120能够向群组管理器115发送验证请求121,并且响应于所述请求,群组管理器115能够向服务器120发送确认122,以验证特定用户107或者人员群组是否是群组111的一部分。群组管理器115也能够将名册数据发送到服务器120而无需来自服务器120的请求。
60.系统100使得群组的用户能够与所述群组的其他成员共享秘密数据。对被存储在服务器120上的所述秘密数据的访问是基于用户在与所述秘密数据相关联的特定群组中的成员资格状态的。因此,当用户加入特定群组时,所述群组成员能够获得对与该群组相关联地存储的所述秘密数据的访问,例如读取和/或写入许可。当用户离开所述群组时,服务器120能够与群组管理器115通信以验证每个成员的状态。当验证用户已经离开群组时,服务器120能够限制访问并且阻止该用户访问与该群组相关联地存储在服务器120上的秘密数据,例如,读取和/或写入。
61.为了在保险库109内存储秘密数据,每个群组成员能够使用客户端设备110上的秘密密钥102来加密秘密数据101以生成加密数据101'。在一些配置中,秘密密钥102能够包括对称密钥。每个群组成员也能够利用保险库密钥104来加密所述秘密密钥102以生成加密的秘密密钥102'。另外,每个群组成员也能够使用来自公钥-私钥对的公钥来加密所述保险库密钥104,以生成加密的保险库密钥104'。然后,每个用户能够将其各自的加密数据101'、加密的秘密密钥102'和加密的保险库密钥104'传送给服务器120以用于存储在保险库109中。当用户希望取回所存储的数据时,每个用户能够通过使用其公钥-私钥对的对应私钥来解密所述加密的保险库密钥104',以获得保险库密钥104。然后,每个用户能够利用保险库密钥104来访问秘密密钥102并且最终访问秘密数据101。
62.出于例示说明目的,“保险库”能够包括专用于存储由用户的特定群组共享的信息的数据存储。对保险库的访问权限基于能够由诸如群组管理器115的可靠资源验证的成员名册。对保险库的访问权限能够被授予给当前参与群组的多个用户。所述群组管理器能够通过将每个用户的身份传送给管理保险库的系统(诸如google drive、onedrive、icloud等)来授予权限。保险库能够被构建为独立于其他保险库的自主数据存储。因此,作为具有对第一保险库的访问权的群组的成员的用户不被授予从与另一群组相关联的第二保险库读取数据或者向其写入数据的访问权。在每个保险库中存储的数据能够包括加密的秘密数据和加密的安全密钥。在一些配置中,保险库密钥104能够由服务器120生成,并且被传送给与特定群组的成员相关联的每个客户端设备。在其他配置中,客户端设备110能够被用于生成保险库密钥104。
63.在一些配置中,在本文中所公开的技术能够将用户认证和访问控制分离为两个独有的过程,并且每个过程能够由两个实体来执行。例如,对在所述保险库中的所述数据的访问可以由第一实体来管理,例如,google drive、amazon web services(aws)、oracle cloud、salesforce service cloud、facebook cloud等。所述群组保险库服务具有依赖关系,并且能够从这种受信任的认证服务中受益,并且信任来自认证服务的、关于请求成员访
问保险库的验证。确定人们是否是群组的当前成员的过程能够由第二实体来管理,例如,slack、microsoft teams等。
64.现在参考图2a至图2g,在下文示出并且描述了使用针对用户的群组的保险库密钥来存储加密数据的过程的各方面。在该示例中,每个用户是与保险库109相关联的群组111的成员。图2a图示了用户利用对应的客户端设备110a-110n来生成加密数据的示例。例如,第一用户107a利用第一客户端设备110a使用秘密密钥1 102a来加密秘密数据1 101a以生成加密数据1 101a'。第一客户端设备110a能够使用与群组111相关联的保险库密钥104来加密秘密密钥1 102a,从而生成加密的秘密密钥1 102a'。另外,第一客户端设备110a能够使用来自与第一用户相关联的第一公钥-私钥对的公钥1 105a来加密保险库密钥104以生成加密的保险库密钥1 104a'。与其他用户107b-107n相关联的其他客户端设备110b-110n能够使用其各自的公钥-私钥对利用相似的过程来生成其他加密数据,例如,加密数据2 101b'、加密的秘密密钥2 102b'、加密的保险库密钥2 104b'、加密数据n 101n'、加密的秘密密钥n 102n'和加密的保险库密钥n 104n'。然后,能够将所述加密数据传送给服务器120以用于存储在保险库109中。
65.如在图2b中所示,响应于接收到所述加密数据,或者响应于接收到请求(在本文中也被称为“写入请求”)以将所述加密数据存储在与群组111相关联的保险库109中,服务器120确定请求存储加密数据的每个用户是否是群组111的成员。在一个说明性示例中,服务器120能够将验证请求121发送到群组管理器115以验证每个请求用户的成员资格状态。响应于所述验证请求121,群组管理器115能够访问记录,诸如定义每个群组的成员的群组名册116,以确定一个或多个用户是否是群组的当前成员。个体记录可以指示针对每个成员的群组id 112和用户id 113。个体记录也可以指示针对每个用户id的特定许可和角色。因此,响应于所述验证请求121,群组管理器115可以通过将确认122发送回服务器120来进行响应。在本示例中,所述确认122指示第一用户107a(用户1)仍然是群组(群组1)的成员,第二用户(用户2)仍然是群组(群组1)的成员,并且第n用户(用户n)仍然是群组(群组1)的成员。
66.所述验证请求121能够是多种不同的形式。在一个示例中,验证请求121能够包括群组id 112。响应于这样的请求,群组管理器115能够发送包括群组的所有成员的列表的确认122。在另一示例中,验证请求121能够包括具有多个用户id 113的群组id 112。响应于这样的请求,群组管理器115能够发送包括在请求121中指示的特定用户id 113的确认122,其中具有其成员资格状态的指示,例如,当前是成员、不是成员、不是特定日期和时间的成员,等等。
67.在又一示例中,验证请求121能够包括群组id 112、多个用户id 113、以及指示关于验证一个或多个许可的请求的其他元数据。响应于这样的请求,群组管理器115能够发送确认122,所述确认122包括群组id、当前成员的特定用户id 113以及与每个用户id 113相关联的一个或多个许可。所述许可可以指示针对每个用户的访问级别或角色,例如,管理员权限与常规用户权限。所述许可也可以指示特定访问权限,例如读取和/或写入许可。在其他实施例中,所述许可也可以指示适用于个体文件或者文件群组的特定访问权限,例如读取和/或写入许可。基于在确认122中所定义的许可,服务器120能够确定每个用户是否能够将数据写入到保险库109。
68.如在图2c中所示的,针对作为与所述保险库相关联的所述群组的成员的每个个
107n相关联的其他客户端设备110b-110n能够以类似的方式来解密其他接收到的数据。如所示的,系统100允许群组的成员在其是群组的成员时共享和取回秘密数据。
73.现在参考图3a-3g,下文示出并且描述了另一用户场景。该示例说明了能够如何利用系统100来限制针对不属于或者不再属于群组的一部分的成员的访问。同样地,该示例示出了可以如何使用系统100以允许用户更新所存储的数据。如在图3a中所示的,假定每个客户端设备110在发送访问请求之前以私钥106开始。
74.图3b示出了访问请求124的各方面。在该示例中,第一用户107a发送访问请求124以请求加密数据2 102b'的副本,例如,最初由第二用户107b使用第二计算设备110b存储的所述秘密数据。第二用户107b发送访问请求124以请求加密数据1 102a'的副本,例如,最初由第一用户107a使用第一计算设备110a存储的所述秘密数据。同样地,类似于先前的示例,用户107n发送访问请求124以请求加密数据n 102n'的副本,例如,用户最初存储在服务器120处的秘密数据。
75.响应于访问请求124,如在图3c中所示的,服务器120通过使用验证请求121来确定每个请求用户是否是所述群组的成员。在该示例中,第二用户107b已经从所述群组的名册中被删除,如由被存储在群组管理器115处的数据所指示的。因此,响应于验证请求121,群组管理器115通过将确认122发送回服务器120来进行响应,其指示第一用户107a(用户1)和第n用户(用户n)仍然是群组(群组1)的成员,而第二用户(用户2)不再是群组(群组1)的成员。
76.如在图3d中所示的,服务器120通过允许将加密数据的通信发送给第一用户107a和第n用户107n来响应所述确认122,同时限制第二用户107b的访问。在这样的实施例中,服务器120可以向诸如第二客户端110b之类的客户端发送通知,其中,所述通知能够指示所述访问请求的状态。所述通知可以指示所述群组的用户状态,或者提供指示所述请求数据不可用的消息。如在图3e中所示的,第一用户107a和第n用户107n的客户端设备然后能够利用对应的私钥106来使用在本文中所公开的技术解密所接收到的数据。
77.如在本文中所概述的,在本文中所公开的技术允许用户更新被存储在保险库中的加密数据。在图3f-3i中示出了该过程的各方面。如在图3f中所示的,第n客户端设备110n能够生成经更新的数据141n。然后,第n客户端设备110n能够使用秘密密钥102n来加密所述经更新的数据141n,并且然后,使用保险库密钥104来加密所述秘密密钥102n。然后,能够使用用户的公钥105n对所述保险库密钥进行加密。如在图3g中所示的,第n设备110n然后能够将经更新的加密数据141n'传送给服务器120。响应于接收到所述加密数据,如在图3h中所示的,服务器120能够验证用户相对于所述群组的成员资格状态。在该示例中,群组管理器115确认所述用户当前是所述群组的成员。响应于所述确认,如在图3i中所示的,服务器120将经更新的加密数据141n'存储在保险库109内。如果来自群组管理器115的所述确认指示第n用户107n不是所述群组的当前成员,或者如果第n用户107n具有受限的写入许可,则服务器120能够拒绝来自该用户的、关于将数据写入到保险库109的任何请求。
78.在图3f-3i的示例中,所述用户也能够提供使用新秘密密钥加密的经更新的加密秘密数据。在这样的实施例中,所述客户端设备也将提供使用所述保险库密钥加密的经更新的加密秘密密钥。另外,用户也能够提供使用来自新密钥对的新公钥加密的经更新的加密保险库密钥。由所述客户端提供的该加密数据能够在验证用户在所述群组中的成员资格
后或者从群组管理器验证所述用户对所述保险库具有写入许可后被存储在所述保险库中。
79.在本文中所提供的示例中,能够意识到,加密的保险库密钥(也包括使用新公钥更新的加密保险库密钥)能够在服务器120处生成。在这样的实施例中,替代将加密的保险库密钥从客户端传送到服务器,客户端能够将公钥传送到服务器120,并且允许服务器120或者另一计算机使用任意接收到的公钥来生成加密的保险库密钥。
80.图4图示了用于获得用户的私钥的过程。在登录时,可以由诸如第一用户107a的用户107操作的客户端110能够尝试从诸如os安全存储装置130的资源中获得私钥。如果这是客户端110的第一次使用或者如果私钥已经从os安全存储装置130中移除,则客户端110能够从密钥目录服务140获得用户的私钥。密钥目录服务能够包括能够被具有适当的证书的用户访问的安全密钥的数据存储。如果密钥目录服务140没有密钥束(key bundle),则向客户端110返回错误。该错误指示这是该用户107第一次登录。因此,客户端110的任务是生成公钥/私钥对并且对其进行上传的操作。如果客户端110仅上传了公钥,那么所述系统将不得不找到一种方式来在用户登录的每个客户端之间共享所述私钥。在一些配置中,所述系统能够利用对称密钥对所述私钥进行加密,所述对称密钥的大小会小得多并且获得同等的安全性。客户端110也能够加密所述私钥并且将其发送到远程计算机,并且然后,当客户端第一次使用时,在客户端之间仅共享所述客户端密钥,诸如128位对称加密的密钥。如在本文中的其他描述中,任何加密数据通过使用撇号来注明,例如,保险库密钥104',指示加密的保险库密钥。
81.如果在目录服务140中存在私钥,则将其下载到客户端110,并且系统能够尝试从os安全存储装置130获取客户端密钥。如果客户端密钥不存在,则客户端110能够提示用户提供一个,因为这不是第一使用场景,而是第一次简单地准备客户端应用。
82.关于对用户的私钥的存储,能够使用多种不同的技术来管理所述存储。如上文所描述的,在一些配置中,能够将私钥存储在密钥目录服务中。然而,当用户希望使用多个设备来访问其存储的秘密时,用户能够加密私钥,并且然后与其他设备共享该私钥。如在本文中所概述的,用户必须具有私钥才能正确地解密从保险库接收到的秘密。然而,为了访问所述私钥,需要在属于单个用户的设备之间共享。为此,所述户端设备中的一个客户端设备能够使用对称密钥(例如,aes-128)来加密所述私钥,并且将经加密的私钥上传到密钥目录服务,以便需要在设备之间共享数据的大小(仅有128位)明显小于所述私钥。
83.所述对称密钥能够被保存到操作系统(os)安全存储装置中,并且仅在需要传输到新设备时才被取回。当准备新客户端时,能够从所述密钥目录服务中取回私钥,然后将其保存到os安全存储装置中以供将来使用。
84.传输客户端密钥(诸如128位共享客户端密钥)对于每个新客户端而言能够是一次性事件。存在用于传输客户端密钥的数个实施例。例如,当已经准备的设备和新设备两者都被连接到互联网时,用户可以使用常规的安全消息传输方法在设备之间发起安全传输过程,其中,每个设备都创建其自己的公钥和私钥对。在另一实施例中,用户能够创建快速响应(qr)码并且将其显示在一个设备上以供新设备捕获和注册。在另一实施例中,设备能够显示用户键入到另一设备中的字符串。用户也可以打印字符串并且将其保存在安全的地方,从而这样用户就不需要访问旧设备。
85.在一些实施例中,客户端计算机110能够执行用于与针对单个用户的多个设备共
享单个密钥的过程。客户端计算机110能够使用对称密钥来加密私钥-公钥对的私钥以生成加密的私钥。然后,所述客户端计算机能够在远程设备上运行的安全服务中传送所述对称密钥,其中,所述安全服务通过使用与第一用户相关联的一个或多个证书来提供对所述对称密钥的访问。所述过程也能够包括将加密的私钥传送到与一个或多个计算设备的操作系统相关联的安全存储装置130,其中,使用与第一用户相关联的一个或多个证书来保护加密的私钥。所述一个或多个计算设备能够包括客户端设备110、服务器120或者能够由第一用户访问的另一计算机。能够意识到,所述客户端操作系统安全存储装置130、密钥服务140和/或客户端安全服务131能够驻留在任意合适的计算设备上,包括但不限于:客户端设备110、服务器120、或者用户(诸如第一用户107a)能访问的任何其他远程设备。
86.图5图示了用于获得针对特定保险库的保险库密钥的过程。当请求保险库密钥时,保险库服务(例如,服务器120)将返回利用用户的公共令牌加密的保险库密钥。在一些配置中,用户的令牌是在用户利用其证书登录时由客户端获得的访问令牌,所述证书可以包括microsoft账户(msa)或者azure active directory账户(aad)证书。所述令牌包含用户的id,并且当被验证时能够被信任为表示用户同意采取动作。如果还没有准备保险库,则保险库服务129能够返回错误并且保险库sdk能够生成密钥,诸如aes-256密钥,并且针对群组的成员中的每个成员对其进行加密。计时会影响所述过程。例如,当客户端110请求创建保险库时,保险库服务(例如,服务器120)能够创建保险库,或者如果另一客户端创建了保险库,则服务器将为请求者返回加密的保险库密钥。
87.该示例是出于说明性目的而提供的并且不应当被解释为限制性的。能够意识到,每个系统(包括服务器120或者群组管理器115(例如,聊天服务115))能够利用一种或多种技术来认证每个系统上的用户,例如,每个系统可以为每个用户使用不同的认证服务和/或不同的证书。在一些配置中,服务器120能够利用独立于群组管理器115的认证过程。替代地,服务器120能够利用与群组管理器115协调的认证过程,例如,每个系统可以使用相同的认证服务或者每个用户的证书。在一些配置中,所述群组管理器可以不利用针对某些群组成员的证书,特别是在用户能够匿名加入群组的配置中。
88.出于说明的目的,个人保险库能够简单地包括具有单个成员的群组,并且共享所述数据的其余逻辑单元和选择部分。针对个人保险库的保险库id是用户id,而针对群组保险库的保险库id能够是群组通信会话的线程id。当尚未准备所述保险库时,客户端110能够轮询群组管理器115(例如,聊天服务)以在群组的情况下请求成员资格名册,或者在个人保险库的情况下将成员资格名册设置为当前用户的id。在任意一种情况下,客户端110然后能够遍历成员资格名册并且使用每个成员的公钥来加密所述保险库密钥。然后,将用户id、保险库id和加密的保险库密钥(加密的保险库密钥')的元组集合发送到保险库服务120以创建保险库。如果所述保险库仍然不存在,则保险库服务120能够将所述数据存储到与用户相关联的存储资源,例如,个人存储设备或服务。在以下图中,当针对保险库密钥进行请求时,能够假设所述保险库已经准备用于例示说明目的。
89.图6图示了用于在个人保险库中创建秘密的过程。在该示例中,使用对称加密的(诸如aes-256)来加密所述秘密,并且加密的秘密是被持久保存到存储装置(诸如保险库服务120)的内容。在一些配置中,每个秘密能够具有其自己的独有秘密密钥。所述秘密密钥可能不被保留在客户端110上,而是使用保险库密钥对其进行加密,并且用户仅需要使用其公
钥来访问加密的保险库密钥,就能够一直读取链以回到秘密。以这种方式,个人保险库与群组保险库没有不同。在该示例中,如果秘密小于预定阈值,诸如两兆字节,则保险库服务120能够将秘密id和秘密元数据传送到针对秘密151的第一资源。如果秘密高于阈值,或者秘密不能够适配数据库,则保险库服务120能够将秘密id和加密的秘密传送给针对大秘密152的第二资源。在一些配置中,保险库服务120能够将保险库id、秘密id和加密的秘密密钥(加密的秘密密钥')传送给第三资源(一个或多个保险库153)。
90.图7图示了在群组库中创建秘密的过程。该示例涉及想要与第二用户107b(bo)共享秘密(例如,秘密数据)的第一用户107a(annika)。当annika想要与bo共享秘密时,她使用能够是256位秘密密钥的秘密密钥来加密所述秘密,以生成加密的秘密。annika也使用针对其共享的保险库的保险库密钥来加密所述秘密密钥,并且将加密的秘密和加密的秘密密钥发送到保险库服务120。与图6的示例相比,该示例的不同之处在于所述保险库密钥是与群组的线程id而不是用户id相关联地发送的。
91.图8图示了用于将秘密从个人保险库共享到群组保险库的过程。一般而言,当在保险库之间共享秘密时几乎没有限制。在一些配置中,能够将秘密从个人保险库共享到群组保险库。将秘密从个人保险库共享到群组保险库会涉及在保险库存储中添加额外记录,但是这会需要秘密密钥。由于服务器可能不存储未加密的密钥,所以客户端计算机110能够使用他的或她的个人保险库的私钥打开加密的秘密密钥,并且然后使用所述群组保险库的密钥对其进行重新加密。在客户端110处,能够获得秘密id以及源保险库id和目的地保险库id。这样的信息能够由用户107或者任何其他计算资源来提供。然后,与验证用户令牌的保险库服务120共享该数据。该验证过程可以涉及向群组管理器发送查询,诸如聊天服务,以及从群组管理器接收指示用户是特定群组的成员的验证。服务器120能够返回加密的源保险库密钥、针对源保险库的加密的秘密密钥、以及使用用户107的公钥加密的加密的目的地保险库密钥。客户端110可以从客户端os安全存储装置130请求私钥。
92.客户端110然后能够使用私钥来解密所述源保险库密钥、使用所述源保险库密钥来解密针对所述源的秘密密钥、以及使用所述目的地保险库密钥来加密所述秘密密钥。客户端110然后能够通过共享目的地保险库id、秘密id以及针对目的地保险库的加密的秘密密钥(“秘密密钥'目的地”)与保险库服务120共享所述秘密。然后,保险库服务120能够将秘密id、秘密密钥'目的地条目添加到针对目的地保险库id的保险库。
93.图9图示了用于更新秘密的过程。在一些配置中,用户仅能够更新其拥有的秘密。如果用户是由拥有针对共享保险库的保险库的线程id标识的群组的成员,或者如果所述秘密位于其个人保险库中,则用户拥有秘密。在这样的实施例中,客户端110和服务器120两者都能够被配置为强制执行该约束。
94.当annika想要改变她拥有的秘密的内容时,她仅需利用使用相同秘密密钥加密的新秘密来替换该秘密。为了获得用于加密所述新秘密的密钥,她必须按照流程来取回秘密。由于改变仅限于实际有效负载,因此无需更新bo的加密的秘密密钥。
95.图10图示了用于允许用户浏览保险库的示例性过程。一般而言,客户端110能够通过请求自给定时间戳以来的所有秘密元数据改变来接收对秘密元数据的更新。所述时间戳可以来自所述保险库服务接收数据的最后时间,例如,最后观察到的时间。响应于所述请求,保险库服务120能够遍历用户的保险库和保险库秘密中的每个保险库秘密。然后,保险
库服务120能够返回秘密元数据和针对每个秘密的秘密id。返回值返回当前时间戳,然后所述时间戳能够被存储并且在下次进行请求时使用。对所述秘密进行排序或过滤能够由客户端110来执行。在一些实施例中,客户端110能够使用按类型或者按保险库的过滤器。所述秘密元数据能够提供所述秘密数据的概要、所述秘密数据的所有者、对所述秘密数据的所有者的描述等。
96.图11图示了用于获得秘密的示例性过程。一般而言,当用户通过读取元数据已经识别出感兴趣的秘密时,能够从保险库服务请求所述秘密。在一些实施例中,所述元数据能够包括秘密的概要、相关的密钥、或者与所述秘密相关或者指示所述秘密的任何其他信息。在一些实施例中,所述元数据可以包括时间戳、对用户活动的描述等。
97.在图11中所图示的过程能够包括用于接收要更新的秘密id以及接收包含所述秘密的保险库的标识符(例如,保险库id)的操作。能够在所述请求内将秘密id和保险库id传送到保险库服务120。作为响应,保险库服务120验证用户是所述群组的成员。该过程可能涉及与群组管理器(诸如slack、ms teams等)的通信。保险库服务120能够通过递送可以使用用户的公钥加密的加密的保险库密钥和加密的秘密密钥来响应所述请求。在一些配置中,客户端110能够向客户端os安全存储装置130发送请求,以请求永久存储的私钥。响应于接收到所述私钥,客户端110能够使用用户的私钥来解密经加密的保险库密钥,并且使用所述保险库密钥来解密经加密的密钥。所述系统也可以使用所述秘密密钥来解密经加密的秘密,由此生成所述秘密数据。
98.图12图示了用于允许用户将某人从目录添加到群组的过程。当用户将新成员添加到群组时,新成员将需要利用其公共令牌加密的保险库密钥,从而能够解密所述秘密。所述保险库服务没有关于保险库密钥的数据,因此保险库服务不能够为新成员自动地提供所述密钥。正在添加新成员的用户能够获得保险库密钥,因此作为将新成员添加到群组的一部分,一个或多个客户端110也能够将新成员添加到所述保险库。
99.所述过程开始于客户端为特定用户(诸如第一用户)请求私钥时。客户端110能够在目录中查找第二用户并且获得所述第二用户的用户id。客户端110也能够获得保险库id并且使用秘密密钥来加密一个或多个秘密。客户端110能够向保险库服务120发送请求以获得加密的保险库密钥,所述加密的保险库密钥可以使用第一用户公钥来加密。能够通过诸如密钥服务140之类的一个或多个资源由客户端获得针对新用户(例如,第二用户)的公钥。然后,客户端110能够使用第一用户的私钥来解密所述加密的保险库密钥。客户端110然后能够使用第二用户的公钥来加密所述保险库密钥。客户端110然后能够将由第二用户公钥加密的加密的保险库密钥传送到保险库服务120。在这样的通信中,客户端110也能够传送保险库id、第二用户的用户id与加密的保险库密钥。作为响应,保险库服务120能够将条目添加到用户表。
100.现在转向图13,在下文示出并且描述了用于为加密数据提供增强的安全性的例程900的各方面。应当理解,在本文中所公开的方法的操作不一定以任何特定次序呈现,并且以(一种或多种)替代次序执行所述操作中的一些或所有操作是可能的并且是预期的。为了便于描述和图示,所述操作已经按演示次序呈现。在不背离所附的权利要求的范围的情况下,可以添加、省略和/或同时执行操作。
101.也应当理解,所图示的方法能够在任意时间结束并且不需要全部执行。能够通过
运行被包含在计算机存储介质上的计算机可读指令来执行所述方法的一些或所有操作和/或基本上等效的操作,如下文所定义的。如在说明书和权利要求中所使用的,术语“计算机可读指令”以及其变体在本文中宽泛地使用以包括例程、应用、应用模块、程序模块、程序、组件、数据结构、算法等。计算机可读指令能够在各种系统配置上实现,包括单处理器或多处理器系统、小型计算机、大型计算机、个人计算机、手持计算设备、基于微处理器的可编程消费电子产品、其组合等。
102.因此,应当意识到,在本文中所描述的逻辑操作被实现为:(1)在计算系统上运行的计算机实现的动作或程序模块的序列,和/或(2)在计算系统内的互连的机器逻辑电路或电路模块。实现方式是取决于计算系统的性能和其他要求的选择问题。因此,在本文中所描述的逻辑操作被不同地称为状态、操作、结构设备、动作或模块。这些操作、结构设备、动作和模块可以用软件、固件、专用数字逻辑以及其任意组合来实现。
103.如下文将结合其他附图更详细描述的,例程900的操作在本文中被描述为至少部分地由诸如图19的程序模块623之类的应用实现,其在本文中也被称为一个或多个程序模块。尽管以下说明涉及程序模块623,但是能够意识到,例程900的操作或者在本文中所公开的任何其他过程、方法或操作也可以以许多其他方式来实现。例如,例程900可以被实现为操作系统的一部分或者任何其他应用的一部分。另外,能够意识到,系统100的实现方式可以包括在图1中所示的更多或更少的计算设备。例如,上文所描述的软件组件和模块中的每个可以在配置有相同特征的单个计算设备中实现。在其他场景中,其中的一些可以包括使用服务器群,可以使用任意数量的计算设备来实现在本文中所描述的特征和技术。
104.参考图13,例程900开始于操作901,其中,程序模块623接收使用秘密密钥102a从秘密数据101a生成的加密的秘密数据101a'。在一些配置中,加密的秘密数据101a'在诸如客户端设备110的远程计算机上生成,并且被传送到运行程序模块623的计算机,例如服务器120。
105.在操作903处,程序模块623接收加密的秘密密钥102a',所述加密的秘密密钥102a'是通过使用与用户107的群组111相关联的保险库密钥104从秘密密钥102a生成的。在一些配置中,加密的秘密密钥102a'在诸如客户端设备110的远程计算机上生成,并且被传送到运行程序模块623的计算机,例如服务器120。
106.在操作905处,程序模块623接收加密的保险库密钥104',所述加密的保险库密钥104'是通过使用与用户107的群组111的第一用户107a相关联的公钥105a从保险库密钥104生成的。在一些配置中,加密的保险库密钥104'在诸如客户端设备110的远程计算机上生成,并且被传送到运行程序模块623的计算机,例如服务器120。
107.在操作907处,程序模块623向群组管理器115发送验证请求以验证一个或多个用户是否是群组111的当前成员。在一些配置中,所述验证请求能够包括群组id和至少一个用户id,例如第一用户107a。能够将所述验证请求发送到群组管理器115,群组管理器115管理诸如slack、google hangouts或microsoft teams之类的服务。
108.接下来,在操作909处,程序模块623从群组管理器115接收指示一个或多个用户的成员资格状态的确认。在一个说明性示例中,确认能够包括群组id和至少一个用户id的成员资格状态,例如,第一用户107a是当前成员,或者第一用户107a不是当前成员。所述确认也能够包括针对每个用户的一个或多个许可。例如,确认(在本文中也被称为群组确认122)
能够包括用户id并且指示该用户id是否与读取和/或写入许可相关联。所述确认也能够描述与个体用户id相关联的角色或者其他属性。在一个说明性示例中,参考图1,计算设备能够从群组管理系统115接收群组确认122,并且群组确认122能够指示第一用户107的状态和一个或多个群组标识符112。
109.接下来,在操作911处,响应于接收到指示诸如第一用户107a的用户与特定群组相关联的群组确认112,例程900进行到操作913,其中,程序模块623能够采取多个动作以允许传送和/或存储所述加密数据,例如,加密的秘密数据101a'、加密的秘密密钥102a'和加密的保险库密钥104'。然而,如果群组确认112指示用户(诸如第一用户107a)没有与特定群组相关联,则例程900进行到操作914,其中,程序模块623能够采取多个动作以限制传送和/或存储所述加密数据,例如,加密的秘密数据101a'、加密的秘密密钥102a'和加密的保险库密钥104'。
110.现在参考图14-18,在下文更详细示出和描述了用于控制对系统100的加密的密钥的更新的技术。一般而言,当关于用户群组的特定类型的活动满足一个或多个标准时,调用对一个或多个加密密钥的更新。例如,当用户群组的大小超过或者下降到低于一个或多个阈值时,系统100能够使得一个或多个客户端计算机更新到一个或多个密钥。当流失率超过或者下降到低于一个或多个阈值时,系统100能够使得一个或多个客户端计算机更新到一个或多个密钥。当所述系统检测到一个或多个密钥超过期龄阈值时,系统100能够使得一个或多个客户端计算机更新到一个或多个密钥。当存储的数据或数据使用超过或者下降到低于一个或多个阈值时,系统100能够使得一个或多个客户端计算机更新到一个或多个密钥。出于说明目的,图14至图18示出了用于基于群组保险库存储系统的用户活动来管理针对一个或多个加密密钥的更新的过程的各方面。
111.如在图14中所示的,群组管理器115能够维护列出用户群组111的成员的身份113的成员资格名册901。个体成员资格名册901能够列出参与通信会话的用户,诸如信道、聊天会话、会议或者用于交换信息的任何其他协作群组活动。能够通过加入或离开群组(诸如信道、会议等)来从特定名册中添加或删除用户。在一些配置中,群组管理器115能够传送成员资格名册901的实例,或者将成员资格名册901更新到服务器120。随着时间的推移,服务器120能够收集和分析多个成员资格名册901以检测存在用户活动的一个或多个预定模式。
112.如在图15中所示的,服务器120能够基于对随时间接收到的一个或多个成员资格名册901的分析来生成活动数据902,以确定多种不同类型的性能度量。所述性能度量能够包括用户流失测量结果,诸如已经加入或者离开群组的用户数量、群组成员的总数量、流失率的波动等。服务器120也能够测量针对个体群组的数据使用参数,诸如由群组共享的数据量、由群组共享的数据量的波动等。另外,服务器120能够相对于与保险库或用户的群组相关联的一个或多个加密密钥的期龄来测量不同的参数,诸如保险库密钥的期龄、秘密密钥的期龄、和/或公钥和私钥对的期龄。也能够测量性能度量的组合,诸如由群组共享的数据量和特定密钥的期龄,为群组测量的用户流失量和特定密钥的期龄,由群组共享的数据量以及已经加入或离开群组的用户数量等。
113.在图15的示例中,当一个或多个测量结果低于一个或多个阈值,例如,流失阈值903、数据活动阈值905和/或密钥期龄阈值906时,所述系统可以继续监视活动数据902而不发送用于在客户端设备110处更新一个或多个密钥的任何更新命令。然而,如在图16a中所
示的,当所述测量结果中的一个或多个测量结果超过所述一个或多个阈值时,服务器120可以将一个或多个更新命令1310传送到客户端设备110。响应于所述更新命令1310,如在图16b中所示的,客户端设备110能够利用新密钥来替换任何现有密钥或者现有密钥的任意组合。例如,更新命令1310能够使得客户端设备110更新秘密密钥和/或私钥-公钥对。在一些配置中,可以在服务器120处生成针对特定群组的保险库密钥并且将其传送到客户端设备110。在一些配置中,可以在客户端设备110处响应于接收到更新命令1310而生成保险库密钥。在这样的实施例中,一个客户端设备可以生成保险库密钥,而其他设备将经由服务器120接收新生成的保险库密钥的副本。
114.在一些配置中,能够选择单个客户端设备或者选定的一组客户端设备以更新一个或多个密钥。对用于更新一个或多个密钥的设备的选择能够基于针对每个成员的角色或许可、特定客户端设备的活动和/或特定客户端设备的硬件能力。例如,如果用户是针对群组的指定管理员,则能够选择该用户和/或该用户的对应设备来更新一个或多个密钥。在一些配置中,客户端设备能够在对等的基础上相互通信和/或与服务器通信以确定哪个设备将更新一个或多个密钥。能够基于设备的活动和/或个体设备的一种或多种能力来选择所述设备。例如,如果确定特定计算设备相对于设备池中的其他设备在一时间段内保持在线,则能够选择该特定计算设备来更新一个或多个密钥。在另一示例中,如果确定特定计算设备具有在更新一个或多个密钥或者加密数据方面更有效的架构,例如,具有特定处理器的台式机与具有低功率处理器的移动设备相比,则能够在其他候选设备池中选择该特定的计算设备。
115.在图16b中所示的示例中,更新命令1310使得每个客户端设备更新针对每个客户端设备的所有密钥。出于说明目的,标有星号的图号表示新密钥,并且标有撇号的图号表示加密数据。例如,第一设备110a能够利用新保险库密钥104a*和新秘密密钥102a*来替换保险库密钥104a和秘密密钥102a。更新命令1310也能够使得第一客户端设备110a使用新秘密密钥102a*来加密秘密数据101a以生成经更新的加密秘密数据101a'*。更新命令1310也能够使得第一客户端设备110a使用新保险库密钥104a*来加密新秘密密钥102a*以生成经更新的加密秘密密钥102a'*。更新命令1310也能够使得第一客户端设备110a使用新公钥105a*来加密所述新保险库密钥104a*以生成经更新的加密保险库密钥104a'*。
116.该示例是出于说明性目的而提供的,而不应当被解释为限制性的。能够意识到,加密密钥的任意组合都能够利用新加密密钥来替换,并且在一些实施例中,客户端设备能够在前述过程中使用任何现有的密钥。例如,更新命令1310能够使得第一客户端设备110a使用现有公钥105a来加密新保险库密钥104a*以生成经更新的加密保险库密钥104a'*。
117.一旦客户端设备110生成经更新的密钥和新加密的数据,例如,经更新的加密秘密数据101a'*、经更新的加密秘密密钥102a'*和经更新的加密保险库密钥104a'*,则就能够将新加密数据传送到服务器120,以用于存储在与群组标识符112相关联的保险库109中,并且最终存储与群组111相关联的多个用户身份113。也能够针对与作为群组109的成员的用户107相关联的每个客户端设备110重复所述过程。
118.图17a-17c图示了多个示例性场景,其中,用户活动1302的特定模式导致对保险库存储系统的一个或多个加密密钥的更新。在图17a中所示的第一示例中,名册趋势示出了随着时间离开群组的成员的数量。在该示例中,在一时间段内进行了多次测量。当测量结果
(诸如在第五样本处的测量结果)超过阈值1303时,服务器120能够传送更新命令,使得一个或多个客户端设备更新一个或多个加密密钥以用于存储在服务器120上。在图17a中所示的第二示例中,名册趋势示出了随着时间的群组成员的总数量。在该示例中,在一时间段内进行了多次测量。当测量结果(例如,在第四样本处的测量结果)超过阈值1303时,服务器120能够传送更新命令,使得一个或多个客户端设备更新一个或多个密钥以用于存储在服务器120上。
119.在图17b中所示的第一示例中,名册趋势示出了随着时间加入群组的成员数量。在该示例中,在一时间段内进行了多次测量。当一个或多个测量结果(诸如在第二和第五样本处的测量结果)超过阈值1303时,服务器120能够传送更新命令,使得一个或多个客户端设备更新一个或多个加密密钥以用于存储在服务器120上。
120.在图17b中所示的第二示例中,名册趋势示出了成员资格名册的变化率,例如,群组的成员总数量随时间的导数。在该示例中,在一时间段内进行了多次测量。当测量结果超过阈值1303时,例如在时间a,或者当测量结果下降到阈值以下时,例如在时间c,服务器120能够传送更新命令,使得一个或多个客户端设备更新一个或多个密钥以用于存储在服务器120上。
121.这些示例是出于说明目的而提供的,不应当被解释为限制性的。能够意识到,这些技术的其他变体适用于本公开的范围。例如,尽管阈值1303被示为随时间恒定,但是能够意识到,阈值1303能够随时间变化。francis,在系统的高峰时段期间的阈值可能低于在非高峰时段期间的阈值。在又一变体中,服务器也能够在变化率满足一个或多个条件时传送更新命令。例如,在图17b的第二图表中的时间b,所述系统可以将特定斜率或者斜率的特定变化识别为针对要被传送到一个或多个客户端设备的更新命令的触发事件。
122.图17c图示了可能使得服务器120将更新命令传送到客户端设备的多个场景。例如,在第一场景中,可以响应于确定流失测量结果超过阈值、数据使用活动测量结果不满足阈值、以及密钥期龄不满足阈值,而将更新命令传送到客户端设备。在第二场景中,可以响应于确定流失测量结果超过阈值、数据使用活动测量结果超过阈值以及密钥期龄不满足阈值,而将更新命令传送到客户端设备。在第三场景中,可以响应于确定流失测量结果超过阈值、数据使用活动测量结果超过阈值以及密钥期龄超过阈值,而将更新命令传送到客户端设备。在第四场景中,可以响应于确定流失测量结果没有超过阈值、数据使用活动测量结果超过阈值以及密钥期龄没有达到阈值,而将更新命令传送到客户端设备。在第五场景中,可以响应于确定流失测量结果没有超过阈值、数据使用活动测量结果超过阈值以及密钥期龄超过阈值,而将更新命令传送到客户端设备。在第六场景中,可以响应于确定流失测量结果未超过阈值、数据使用活动测量结果未超过阈值以及密钥期龄满足阈值,而将更新命令传送到客户端设备。
123.现在转向图18,在下文示出并且描述了用于控制对加密密钥的更新的例程950的各方面。例程950开始于操作951,其中,一个或多个程序模块接收活动数据,所述活动数据指示关于群组的成员的数量的变化。所述活动数据能够由诸如服务器120的计算设备生成。替代地,所述活动数据能够由诸如群组管理器的远程计算设备接收。所述活动数据能够包括在一时间段内的测量结果,包括但不限于关于成员数量的变化、成员离开或加入群组的比率等。所述活动数据也能够提供测量结果,所述测量结果关于由群组共享的数据的量和/
或定义由客户端设备使用并且被存储在服务器120上的加密的密钥的期龄的数据。
124.接下来,在操作953处,一个或多个程序模块分析所述活动数据以确定成员的数量的变化或者其他活动数据是否满足一个或多个标准。如在本文中所描述的,能够相对于一个或多个阈值,来分析以下中的一个或多个测量结果:群组的成员数量的变化、由群组共享的数据的量和/或由群组利用的密钥的期龄。当所述活动数据满足或者超过所述一个或多个阈值时,能够确定满足所述一个或多个标准。
125.如果成员的数量的变化或者其他活动数据不满足所述一个或多个标准,则例程950返回到操作951,其中,一个或多个程序模块接收更新的活动数据。一个或多个程序模块能够继续监视更新的活动数据,直到在活动数据中定义的一个或多个测量结果满足所述一个或多个标准。当在活动数据中定义的所述一个或多个测量结果满足所述一个或多个标准时,例程950继续到操作955,其中,一个或多个模块验证群组成员资格。在该操作中,可以从服务器120向群组管理器115发送验证请求。群组管理器115能够经由确认122来验证特定群组的成员的当前列表。
126.接下来,在操作957处,一个或多个程序模块能够将更新命令传送到与群组的每个成员相关联的客户端设备。所述更新命令能够使得所述客户端设备中的每个客户端设备更新每个客户端设备上的一个或多个密钥。如在本文中所描述的,所述更新命令能够使得每个客户端设备利用新密钥替换现有密钥,诸如秘密密钥、密钥对和/或保险库密钥。在一些配置中,服务器120能够生成保险库密钥并且将所述保险库密钥与所述更新命令相关联地传送给每个客户端。所述更新命令能够使得每个客户端设备生成加密数据,包括使用所述一个或多个更新的密钥的秘密数据的加密的有效载荷、加密的秘密密钥和加密的保险库密钥。
127.接下来,在操作959处,一个或多个程序模块能够从所述客户端设备接收新生成的加密数据。在一些配置中,服务器120能够接收新生成的加密数据,诸如使用一个或多个更新的密钥的秘密数据的加密的有效载荷、加密的秘密密钥和加密的保险库密钥。
128.接下来,在操作961处,一个或多个程序模块能够将加密数据存储在与用户群组相关联的保险库中。在存储所接收到的数据和一些配置之前,服务器120能够在为每个群组成员存储数据之前验证群组的每个成员。例如,如果群组包括信道的成员,则服务器120能够向群组管理器115发送带有用户的身份的验证请求。如果群组管理器115以确认122验证用户仍然是信道的成员来进行响应,则服务器120能够将新加密的数据与用户和群组相关联地存储。
129.现在参考图19a-19g,在下文示出并且描述了用于管理由用户的群组共享的秘密数据的访问权限的技术。在本文中所公开的技术允许存储服务与诸如ms teams或slack之类的群组管理系统协调,以验证用户的群组的成员资格,例如信道、聊天会话、会议。可以由不同的实体操作的这两个系统能够在用户离开或者加入群组时自动地更改对存储数据的访问权限。在本文中所公开的技术能够提供许多技术益处,所述益处能够减轻或者消除对通过利用由群组管理器提供的数据来移除、添加或修改访问许可的手动任务的需要。
130.图19a图示了允许服务器120基于群组管理器115的用户活动来控制对被存储在保险库109内的数据的访问的系统100的各方面。群组管理器115能够管理在群组的用户之间的通信会话,诸如信道。出于说明目的,信道包括允许用户加入公共或私有群组的通信会
话。一旦成为成员,用户就能够与其他成员共享消息和其他形式的数据。在图19a中图示了信道的示例性用户界面401。在该示例中,群组(例如,信道)包括与用户身份113a相关联的单个成员107a,carol,并且该用户身份与群组id 112a相关联。在服务器120处,群组id与保险库109相关联,并且用户身份113a也与服务器处的群组id 112相关联。
131.在该示例中,服务器120也包括用于存储针对当前群组成员的加密数据的保险库109。服务器120能够控制对存储加密数据的保险库109的访问,例如,通过使用秘密密钥1 102a加密秘密数据1 101a而生成的加密的秘密数据1 101a',通过使用与用户群组111相关联的保险库密钥104加密秘密密钥1 102a而生成的加密的秘密密钥1 102a',以及通过使用与用户群组111的第一用户107a相关联的第一私钥-公钥对157a的公钥1 105a加密所述保险库密钥104而生成的加密的保险库密钥1104'。如下文更详细描述的,针对个体用户对保险库109的访问是基于用户群组111的成员资格状态来控制的。
132.图19b图示了用于将个人添加到用户群组111的过程的各方面。在该示例中,响应于检测到用户已经被添加,群组管理器115发送指示用户群组111的新成员的成员资格数据155。成员资格数据155也能够指示已经从群组111中删除的人员。另外,成员资格数据155也能够指示相对于用户群组111的成员的许可变化。在图19c的示例中,成员资格数据155指示第一用户(用户1)是群组111(群组1)的当前成员。另外,成员资格数据165指示第二用户是群组的新成员。该示例是出于说明性目的而提供的,而不应当被解释为限制性的。能够意识到,指示群组的新用户的成员资格数据155能够由任意计算设备提供,包括客户端设备。在这样的实施例中,当从客户端设备接收到成员资格数据155时,服务器120能够在允许服务器对成员资格数据采取动作之前验证发送成员资格数据155的用户仍然是群组的活动成员。另外,服务器120也能够确定发送成员资格数据155的用户是否具有适当的管理权限以将用户添加到保险库。如果与成员资格数据155相关联的用户不具有适当的许可,则服务器能够基于成员资格数据155而拒绝任何动作。
133.能够使用多种不同的方法将用户添加到群组。例如,所述群组的管理员(诸如第一用户107a)能够允许新用户加入所述群组。在这样的实施例中,管理员能够添加新用户的身份并且也定义一个或多个许可。在其他实施例中,用户能够加入公共群组而不需要成员证明或者批准加入请求。
134.存在用于将用户添加到群组的多种技术。在一个说明性示例中,第一种方法涉及由群组所有者发起的过程。当管理员将个人添加到群组(诸如信道)时,所述群组所有者能够使得系统收集所述新用户的公钥。然后,所述群组所有者能够使得所述系统通过每个用户的公钥为每个新用户加密保险库密钥。每个新用户都能够访问独有的数据结构,所述数据结构允许他们访问该群组的共享数据。
135.第二种方法涉及在创建公共加入链接时发起的过程,例如,任何人都能够使用链接加入seattle running club信道。所述系统能够通过从任何新用户收集公钥并且利用该公钥加密保险库密钥来允许访问所述秘密数据。所述系统能够允许所述群组的任意成员批准新用户的进入,而不仅仅是群组管理器。
136.响应于接收到指示添加群组111的第二用户107b的成员资格数据155,服务器120也能够配置所述保险库以允许通过将第二身份113b与保险库109相关联来存储与第二用户107b相关联的加密数据。保险库109能够被配置为在第二用户107b是用户群组111的当前成
员的同时授予第二用户107b存储加密数据的许可。
137.另外,一旦服务器120接收到用户的群组的新成员的指示,服务器120就能够发出一个或多个命令,以使得当前成员的客户端设备根据其加密的保险库密钥来生成保险库密钥,并且使得使用新成员的公钥生成加密的保险库。在图19d中所示的阶段的本示例中,响应于接收到指示添加群组111的第二用户107b的成员资格数据155,服务器120能够将更新命令156传送到与当前成员(例如,第一用户107a)相关联的客户端设备110a。更新命令156使得客户端设备110a通过使用与用户群组111的第二用户107b相关联的第二私钥-公钥对157b的公钥2 105b加密保险库密钥104来生成加密的保险库密钥2 104b'。服务器120能够向第二私钥-公钥对157b的公钥2 105b提供更新命令156,或者公钥2 105b能够由客户端设备110a从另一资源(诸如第二客户端110b或密钥服务)获得。如果保险库密钥不存在于客户端计算机110a上,则服务器120能够提供加密的保险库密钥1,其能够由第一用户的私钥来解密。加密的保险库密钥1也能够由第一客户端设备110a或者由诸如远程密钥存储服务的服务提供。
138.在一些配置中,能够选择单个客户端设备或者选定的一组客户端设备来为新用户生成加密数据。对用于生成加密数据的设备的选择能够基于针对每个成员的角色或许可。例如,如果用户是针对群组的指定管理员,则能够选择该用户和该用户的对应设备以为新用户提供加密的保险库密钥。在其他配置中,客户端设备能够在对等的基础上相互通信以确定哪个设备将为新用户生成加密的保险库密钥。能够基于设备的活动或者个体设备的一种或多种能力来选择所述设备。例如,如果确定特定计算设备相对于其他设备在一时间段内保持在线,则能够选择该特定计算设备来生成新用户的加密的保险库密钥。在另一示例中,如果确定特定计算设备具有更有利于生成密钥的架构,例如,具有特定处理器的台式机与移动设备相比,则能够在其他候选设备池中选择该特定计算设备。
139.如在图19e中所示的,新用户的保险库密钥能够直接从第一客户端110a(如利用虚线所示的)或者通过使用诸如密钥服务的另一资源传送到新用户的客户端设备110b。新用户的保险库密钥也能够被传送到服务器以用于存储在保险库109中和/或从服务器120传送到新用户的客户端设备110b。在本示例中,如在图19f中所示的,加密的保险库密钥2 104b'能够被存储在服务器处和/或被传送到客户端设备110b。加密的保险库密钥2 104b'被配置为通过使用第二私钥-公钥对157b的私钥2 106b在第二客户端设备110b处生成保险库密钥104。然后,保险库密钥104能够使得第二客户端设备110b能够从秘密密钥2 102b生成加密的秘密密钥2 102b',秘密密钥2 102b使得第二客户端设备110b能够从秘密数据2 101b生成加密的秘密数据2 101b'。
140.为了将加密数据存储在服务器120处,客户端设备110b能够向服务器发送写入请求158,以请求服务器120与第二用户107b相关联地将加密的秘密数据2 101b'、加密的秘密密钥2 102b'和加密的保险库密钥2 104b'存储在保险库109中。写入请求158能够包括加密数据(如所示的),或者能够独立于加密数据发送写入请求158。
141.如在图19f中所示的,响应于写入请求158,服务器能够使用来自群组管理器的确认数据122来确定第二用户107b是否是用户群组111的当前成员。确认数据122能够响应于验证请求121而被发送到服务器。如果确认数据122确认请求用户(第二用户107b)是群组111的当前成员,则服务器120能够将加密的秘密数据2 101b'、加密的秘密密钥2 102b'和
加密的保险库密钥2 104b'存储在保险库109中。然而,如果确认数据122示出请求用户(例如,第二用户107b)不再是群组的成员,则如果第二用户107b不具有写入访问权或者如果第二用户107b不是群组111的当前成员,则服务器120通过限制第二用户将加密的秘密数据2 101b'和加密的秘密密钥2 102b'存储在保险库109中而拒绝写入请求。
142.该实施例也允许用户共享数据,参考图2d-2g,用于在用户之间共享数据的过程能够在已经添加新用户之后发生。因此,在当前示例中,一旦已经将第二用户添加到所述群组中,服务器120就能够接收与第二用户相关联的访问请求,其中,所述访问请求请求与所述第一用户相关联地存储在所述保险库中的加密的秘密数据101a'。响应于所述访问请求,服务器120能够将验证请求传送到群组管理器115。所述验证请求能够包括第二用户的身份以及与群组和保险库相关联的群组标识符。群组管理器115能够检查一个或多个记录并且向服务器发送名册或访问确认。所述名册或访问确认能够指示第二用户是群组的当前成员,或者第二用户不是群组的当前成员。响应于确定第二用户是群组的当前成员,服务器120能够允许将加密的秘密数据1 101a'、加密的秘密密钥1 102a'和加密的保险库密钥2 104b'传送到与访问请求相关联的请求客户端设备。加密的保险库密钥2 104b'能够被配置为允许使用第二私钥-公钥对157b的私钥2 106b在请求客户端设备处生成保险库密钥104。保险库密钥104能够允许生成秘密密钥1,并且秘密密钥1能够允许生成秘密数据1 101a。
143.参考图20,在下文示出并且描述了用于基于群组成员资格活动来管理保险库系统的用户许可的例程975。例程975开始于操作976,其中,程序模块623控制对存储加密数据的保险库109的访问,所述加密数据例如是加密的秘密数据1 101a'、加密的秘密密钥1 102a'以及加密的保险库密钥1104'。通过使用秘密密钥1 102a加密秘密数据1 101a来生成加密的秘密数据1 101a',通过使用与用户群组111相关联的保险库密钥104加密秘密密钥1 102a来生成加密的秘密密钥1 102a',以及通过使用与用户群组111的第一用户107a相关联的第一私钥-公钥对157a的公钥1 105a加密保险库密钥104来生成加密的保险库密钥1 104'。基于用户群组111的成员资格状态和能够由群组管理器提供的许可来控制个体用户对保险库109的访问。
144.在本文中所定义的“用户的群组”能够包括被列为通信会话或会议的名册中的成员的计算机用户的群组。通信会话能够由能够共享文本消息、数据文件、视频费用、实时视频以及音频或者其他形式的数据的系统进行管理。每个用户能够手动地加入群组、由成员邀请、和/或系统管理员能够授予参与通信会话的许可。能够通过使用任意合适的证书来认证每个成员以参与通信会话。用户能够通过由成员、由群组成员和/或由系统管理员发出的输入命令离开群组。
145.在操作977处,程序模块623接收成员资格数据155,成员资格数据155指示添加了群组的新成员,例如,第二用户107b。在操作977中,服务器120也能够配置所述保险库以通过将第二身份113b与保险库109相关联来允许存储与新成员(例如,第二用户107b)相关联的加密数据。保险库109能够被配置为在第二用户107b是用户群组111的当前成员的同时授予第二用户107b存储加密数据的许可。
146.在操作978处,程序模块623能够发出一个或多个更新命令,使得当前成员的客户端设备根据其加密的保险库密钥来生成保险库密钥。所述命令也能够使得使用新成员的公钥来生成加密的保险库。如在图19d的示例中所描述的,响应于接收到指示添加群组111的
第二用户107b的成员资格数据155,服务器120能够将更新命令156传送到与当前成员(例如,第一用户107a)相关联的客户端设备110a。更新命令156使得客户端设备110a通过使用与用户群组111的第二用户107b相关联的第二私钥-公钥对157b的公钥2 105b加密所述保险库密钥104来生成加密的保险库密钥2104b'。服务器120能够向第二私钥-公钥对157b的公钥2 105b提供更新命令156,或者公钥2 105b能够由客户端设备110a从另一资源(诸如第二客户端110b或者密钥服务)获得。如果保险库密钥不存在于客户端计算机110a上,则服务器120能够提供加密的保险库密钥1,其能够由第一用户的私钥解密。加密的保险库密钥1也能够由第一客户端设备110a或者由诸如远程密钥存储服务之类的服务提供。
147.在操作979处,程序模块623接收写入请求158,服务器请求服务器120存储加密数据。在一个示例中,请求能够包括或者参考加密的秘密数据2 101b'、加密的秘密密钥2 102b'和加密的保险库密钥2104b',并且指导这样的数据与第二用户107b相关联地存储在保险库109中。写入请求158能够包括加密数据,或者能够独立于加密数据发送写入请求158。
148.在操作980处,程序模块623从群组管理器115接收指示一个或多个用户的成员资格状态的确认。在一个说明性示例中,确认能够包括群组id和至少一个用户id的成员资格状态,例如,第一用户107a是当前成员,或者第一用户107a不是当前成员。所述确认也能够包括针对每个用户的一个或多个许可。例如,确认能够包括用户id并且指示该用户id是否与读取和/或写入许可相关联。所述确认也能够描述与个体用户id相关联的角色或者其他属性。在一个说明性示例中,参考图1,计算设备能够从群组管理系统115接收群组确认122,并且群组确认122能够指示第一用户107的状态和一个或多个群组标识符112。
149.在操作981处,响应于接收到指示用户(诸如第二用户107b)与特定群组相关联的群组确认112,例程975进行到操作982,其中,程序模块623能够采取多个动作以允许传送和/或存储加密数据,例如,加密的秘密数据、加密的秘密密钥和加密的保险库密钥。然而,如果群组确认112指示用户(诸如第二用户107b)不与特定群组相关联,则例程975进行到操作983,其中,程序模块623能够采取许多动作来限制传送和/或存储加密数据,例如,加密的秘密数据、加密的秘密密钥和加密的保险库密钥。
150.图21示出了针对计算机的示例性计算机架构600的额外细节,诸如服务器120或者客户端设备110中的一个客户端设备(图1),能够运行上文所描述的程序组件以提供针对加密数据的增强的安全性。因此,在图21中所图示的计算机架构600图示了用于服务器计算机、移动电话、pda、智能电话、台式计算机、上网本计算机、平板计算机和/或膝上型计算机的架构。计算机架构600可以被用于运行在本文中所呈现的软件组件的任意方面。
151.在图21中所图示的计算机架构600包括中央处理单元602(“cpu”)、系统存储器604(包括随机存取存储器606(“ram”)和只读存储器(“rom”)606)以及将存储器604耦合到cpu 602的系统总线610。包含有助于诸如在启动期间在计算机架构600内的元件之间传输信息的基本例程的基本输入/输出系统存储在rom 606中。计算机架构600还包括用于存储操作系统607以及包括但不限于程序模块623的一个或多个应用程序的大容量存储设备612。所图示的大容量存储设备612也可以存储文件622,文件622可以包括加密密钥、加密数据或者运行在本文中所描述的技术所需的其他数据。
152.大容量存储设备612通过连接到总线610的大容量存储设备控制器(未示出)连接
到cpu 602。大容量存储设备612以及其相关联的计算机可读介质为计算机架构600提供非易失性存储装置。尽管对在本文中所包含的计算机可读介质的描述指代大容量存储设备,诸如固态驱动器、硬盘或cd-rom驱动器,但是本领域技术人员应当意识到,计算机可读介质能够是由计算机架构600可访问的任意可用的计算机存储介质或通信介质。
153.通信介质包括计算机可读指令、数据结构、程序模块或者在经调制的数据信号中的其他数据,诸如载波或者其他传输机制,包括任何传输介质。术语“经调制的数据信号”意指以编码信号中的信息的方式改变或设置其特性中的一个或多个特性的信号。通过示例而非限制,通信介质包括诸如有线网络或者直接有线连接的有线介质,以及诸如声学、rf、红外和其他无线介质的无线介质。以上中的任意项的组合也应当被包含在计算机可读介质的范围之内。
154.通过示例而非限制,计算机存储介质可以包括以用于存储信息(诸如计算机可读指令、数据结构、程序模块或者其他数据)的任意方法或技术实现的易失性和非易失性、可移动和不可移动介质。例如,计算机介质包括但不限于:ram、rom、eprom、eeprom、闪存或者其他固态存储技术、cd-rom、数字多功能磁盘(“dvd”)、hd-dvd、blu-ray或者其他光学存储设备、盒式磁带、磁带、磁盘存储设备或者其他磁性存储设备,或者能够被用于存储所需信息并且能够由计算机架构600访问的任何其他介质。出于权利要求的目的,短语“计算机存储介质”、“计算机可读存储介质”以及其变体不包括波、信号和/或其他瞬态和/或无形通信介质本身。
155.根据各种配置,计算机架构600可以使用通过网络125和/或另一网络(未示出)到远程计算机的逻辑连接在联网环境中操作。计算机架构600可以通过被连接到总线610的网络接口单元614连接到网络125。应当意识到,网络接口单元614也可以被用于连接到其他类型的网络和远程计算机系统。计算机架构600也可以包括输入/输出控制器616,其用于接收和处理来自许多其他设备的输入,所述设备包括键盘、鼠标或者电子触笔(在图21中未示出)。类似地,输入/输出控制器616可以将输出提供给显示屏、打印机或者其他类型的输出设备(在图21中也未示出)。
156.应当意识到,在本文中所描述的软件组件可以在被加载到cpu 602中并且被运行时,将cpu602和整个计算机架构600从通用计算系统转换为被定制以促进在本文中所呈现的功能的专用计算系统。cpu 602可以由任意数量的晶体管或者其他分立电路元件构成,其可以个体地或者共同地呈现任意数量的状态。更具体而言,cpu 602可以作为有限状态机来操作,以响应被包含在本文中所公开的软件模块内的可执行指令。这些计算机可执行指令可以通过指定cpu 602如何在各状态之间转换来转换cpu 602,由此转换构成cpu 602的晶体管或者其他分立硬件元件。
157.对在本文中所呈现的软件模块进行编码也可以转换在本文中所呈现的计算机可读介质的物理结构。在本描述的不同实现方式中,对物理结构的具体转换可能取决于各种因素。这样的因素的示例可以包括但不限于用于实现计算机可读介质的技术、计算机可读介质是否被表征为初级或次级存储装置等。例如,如果计算机可读介质被实现为基于半导体的存储器,则在本文中所公开的软件可以通过转换半导体存储器的物理状态而被编码在计算机可读介质上。例如,软件可以转换构成半导体存储器的晶体管、电容器或者其他分立电路元件的状态。软件也可以转换这样的组件的物理状态,以便在其上存储数据。
158.作为另一示例,在本文中所公开的计算机可读介质可以使用磁性或光学技术来实现。在这样的实现方式中,当软件被编码在其中时,在本文中所呈现的软件可以转换磁介质或光介质的物理状态。这些转换可以包括改变在给定磁介质内的特定位置的磁特性。这些转换也可以包括改变在给定光介质内的特定位置的物理特征或特性,以改变那些位置的光学特性。在不背离本描述的范围和主旨的情况下,对物理介质的其他变换是可能的,提供前述示例仅仅是为了便于讨论。
159.鉴于以上情况,应当意识到,许多类型的物理转换发生在计算机架构600中,以便存储和运行在本文中所呈现的软件组件。也应当意识到,计算机架构600可以包括其他类型的计算设备,包括手持计算机、嵌入式计算机系统、个人数字助理和本领域技术人员已知的其他类型的计算设备。也设想到了计算机架构600可以不包括在图21中所示的组件中的所有组件,可以包括在图21中未明确示出的其他组件,或者可以利用与在图21中所示的架构完全不同的架构。
160.图22描绘了能够运行在本文中所描述的软件组件以提供针对加密数据的增强安全性的说明性分布式计算环境700以及其他方面。因此,在图22中所图示的分布式计算环境700能够被用于运行在本文中所呈现的软件组件的任意方面。例如,分布式计算环境700能够被用于运行程序模块623和/或在本文中所描述的其他软件组件的各方面。
161.根据各种实现方式,分布式计算环境700包括在网络125上操作、与之通信或者作为其一部分的计算环境702。网络125可以是或者可以包括网络125,如上文参考图21所描述的。网络125也能够包括各种接入网络。一个或多个客户端设备706a-706n(下文统一和/或一般被称为“客户端706”)能够经由网络125和/或其他连接(在图22中未图示出)与计算环境702通信。在一种图示的配置中,客户端706包括计算设备706a,诸如膝上型计算机、台式计算机或者其他计算设备;板式或平板计算设备(“平板计算设备”)706b;移动计算设备706c,诸如移动电话、智能电话或者其他移动计算设备;服务器计算机706d;和/或其他设备706n。应当理解,任意数量的客户端706能够与计算环境702通信。在本文中参考图6和图8图示和描述了客户端706的两个示例性计算架构。应当理解,所图示的客户端706以及在本文中所图示和描述的计算架构是说明性的,而不应当被解释为以任何方式受到限制。
162.在所图示的配置中,计算环境702包括应用服务器708、数据存储装置710以及一个或多个网络接口712。根据各种实现方式,应用服务器708的功能能够由作为网络125的一部分运行或者与网络125通信的一个或多个服务器计算机提供。应用服务器708能够托管各种服务、虚拟机、门户和/或其他资源。在所图示的配置中,应用服务器708可以托管一个或多个虚拟机以用于运行应用或者其他功能。根据各种实现方式,虚拟机可以运行一个或多个应用和/或软件模块,其用于提供针对加密数据的增强的安全性。应当理解,这种配置是说明性的,并且不应当被解释为以任何方式进行限制。应用服务器708也托管或者提供对一个或多个门户、链接页面、网站和/或其他信息(“网络门户”)716的访问。网络门户716可以被用于与一个或多个客户端计算机进行通信。
163.如在图22中所示的,应用服务器708也能够托管其他服务、应用、门户和/或其他资源(“其他资源”)724。其他资源724可以部署面向服务的架构或者任何其他客户端-服务器管理软件。因此能够意识到,计算环境702能够提供在本文中所公开的概念和技术与各种邮箱、消息传递、社交网络和/或其他服务或资源的集成。
164.如上文所提到的,计算环境702能够包括数据存储装置710。根据各种实现方式,数据存储装置710的功能由在网络125上操作或者与网络125通信的一个或多个数据库提供。数据存储装置710的功能也能够由被配置为为计算环境702托管数据的一台或多台服务器计算机提供。数据存储装置710能够包括、托管或者提供一个或多个真实或虚拟容器726a-726n(下文统一地和/或一般地被称为“容器726”)。可以被用于形成密钥容器131或秘密容器115的容器726被配置为托管由应用服务器708使用或创建的数据和/或其他数据。尽管在图22中未图示出,但是容器726也能够托管或者存储数据结构和/或算法以供诸如程序模块623之类的模块运行。容器726的各方面可以与数据库程序、文件系统和/或存储具有安全访问特征的数据的任何程序。容器726的各方面也可以使用产品或服务来实现,诸如active directory、dkm、onedrive、dropbox或googledrive。
165.计算环境702能够与网络接口712通信或者被网络接口712访问。网络接口712能够包括用于支持在两个或更多个计算设备之间的通信的各种类型的网络硬件和软件,包括但不限于客户端706和应用服务器708。应当意识到,网络接口712也可以被用于连接到其他类型的网络和/或计算机系统。
166.应当理解,在本文中所描述的分布式计算环境700能够向在本文中所描述的软件元件的任意方面提供任意数量的虚拟计算资源和/或能够被配置为运行在本文中所公开的软件元件的任意方面的其他分布式计算功能。根据在本文中所公开的概念和技术的各种实现方式,分布式计算环境700将在本文中所描述的软件功能作为服务提供给客户端706。应当理解,客户端706能够包括真实或虚拟机,包括但不限于:服务器计算机、网络服务器、个人计算机、移动计算设备、智能手机和/或其他设备。这样,在本文中所公开的概念和技术的各种配置使得被配置为访问分布式计算环境700的任何设备能够利用在本文中所描述的功能来为加密数据提供增强的安全性,以及其他方面。在一个具体示例中,如上文所概述的,在本文中所描述的技术可以至少部分地由与图22的应用服务器708结合工作的网络浏览器应用来实现。
167.现在转向图23,用于计算设备的说明性计算设备架构800,所述计算设备能够运行在本文中所描述的各种软件组件,以用于为加密数据提供增强的安全性。计算设备架构800适用于促进部分由于形状因子、无线连接和/或电池供电操作的移动计算的计算设备。在一些配置中,计算设备包括但不限于:移动电话、平板设备、板式设备、便携式视频游戏设备等。计算设备架构800适用于在图22中所示的客户端706中的任意客户端。此外,计算设备架构800的各方面可以适用于常规的台式计算机、便携式计算机(例如,膝上型计算机、笔记本计算机、超便携式计算机和上网本)、服务器计算机和其他计算机系统,诸如本文参考图23所描述的。例如,下文所公开的单点触摸和多点触摸方面可以被应用于利用触摸屏的台式计算机或者一些其他支持触摸的设备,诸如支持模块的跟踪板或支持触摸的鼠标。
168.在图23中所图示的计算设备架构800包括处理器802、存储器组件804、网络连接组件806、传感器组件808、输入/输出组件810和电源组件812。在所图示的配置中,处理器802与存储器组件804、网络连接组件806、传感器组件808、输入/输出(“i/o”)组件810和电源组件812通信。尽管在图23中没有图示出在个体组件之间的连接,但是组件能够交互以执行设备功能。在一些配置中,所述组件被布置为经由一条或多条总线(未示出)进行通信。
169.处理器802包括中央处理单元(“cpu”),其被配置为处理数据、运行一个或多个应
用程序的计算机可执行指令以及与计算设备架构800的其他组件通信,以便执行在本文中所描述的各种功能。处理器802可以被用于运行在本文中所呈现的软件组件的各方面,并且特别是至少部分地利用支持触摸的输入的那些方面。
170.在一些配置中,处理器802包括图形处理单元(“gpu”),其被配置为加速由cpu执行的操作,包括但不限于:通过运行通用科学和/或工程计算应用而执行的操作以及图形密集型计算应用,诸如高分辨率视频(例如,720p、1080p和更高分辨率)、视频游戏、三维(“3d”)建模应用等。在一些配置中,处理器802被配置为与分立gpu(未示出)通信。在任意情况下,cpu和gpu可以根据协同处理cpu/gpu计算模型来配置,其中,应用的顺序部分在cpu上运行并且计算密集部分由gpu加速。
171.在一些配置中,处理器802连同下文所描述的其他组件中的一个或多个组件是片上系统(“soc”)或者被包含在其中。例如,soc可以包括处理器802、gpu、一个或多个网络连接组件806、以及一个或多个传感器组件808。在一些配置中,部分地利用封装叠加(“pop”)集成电路封装技术来制造处理器802。处理器802可以是单核或多核处理器。
172.处理器802可以根据arm架构来创建,所述arm架构可从cambridge,united kingdom的arm holdings获得许可。替代地,处理器802可以根据x86架构来创建,诸如可从mountain view,california的intel corporation等处获得。在一些配置中,处理器802是可从san diego,california的qualcomm获得的snapdragon soc、可从santa clara,california的nvidia获得的tegra soc、可从seoul,south korea的samsung获得的hummingbird soc、可从dallas,taxasdtexas获得的开放多媒体应用平台(“omap”)soc,是上述任何soc的定制版本,或者专有soc。
173.存储器组件804包括随机存取存储器(“ram”)814、只读存储器(“rom”)816、集成存储存储器(“集成存储设备”)818和可移动存储存储器(“可移动存储设备”)820。在一些配置中,ram814或其一部分、rom 816或其一部分和/或ram 814和rom 816的某种组合被集成在处理器802中。在一些配置中,rom 816被配置为存储固件、操作系统或者其一部分(例如,操作系统内核)和/或引导加载程序以从集成存储装置818和/或可移动存储装置820加载操作系统内核。
174.集成存储装置818能够包括固态存储器、硬盘或者固态存储器与硬盘的组合。集成存储装置818可以被焊接或者以其他方式连接到逻辑板上,处理器802和在本文中所描述的其他组件也可以连接在所述逻辑板上。这样,集成存储装置818被集成在计算设备中。集成存储装置818被配置为存储操作系统或者其部分、应用程序、数据、以及在本文中所描述的其他软件组件。
175.可移动存储装置820能够包括固态存储器、硬盘或者固态存储器与硬盘的组合。在一些配置中,提供可移动存储装置820替代集成存储装置818。在其他配置中,提供可移动存储装置820作为额外的可选存储设备。在一些配置中,可移动存储装置820与集成存储装置818逻辑地组合,使得总可用存储装置作为总组合存储容量可用。在一些配置中,集成存储装置818和可移动存储装置820的总组合容量被示出给用户,而不是集成存储装置818和可移动存储装置820的单独存储容量。
176.可移动存储装置820被配置为被插入到可移动存储存储器插槽(未示出)或者其他机构中,通过所述机构,可移动存储装置820被插入和固定以促进可移动存储装置820能够
通过其与计算设备的其他组件(诸如处理器802)通信的连接。可移动存储装置820可以被体现为各种存储卡格式,包括但不限于:pc卡、compactflash卡、记忆棒、安全数字(“sd”)、minisd、microsd、通用集成电路卡(“uicc”)(例如,订户身份模块(“sim”)或通用sim(“usim”))、专有格式等。
177.能够理解,一个或多个存储器组件804能够存储操作系统。根据各种配置,所述操作系统包括但不限于:来自symbian limited的symbian os,来自redmond,washington的microsoft corporation的windows mobile os,来自microsoft corporation的windows phone os,来自microsoft corporation的windows,来自palo alto,california的hewlett-packard company的palm webos,来自walterloo,ontario,canada的research in motion limited的blackberry os,来自cupertino,california的apple inc.的ios,以及来自mountain view,california的google inc.的android os。还设想到了其他操作系统。
178.网络连接组件806包括无线广域网组件(“wwan组件”)822、无线局域网组件(“wlan组件”)824和无线个域网组件(“wpan组件”)826。网络连接性组件806促进去往和来自网络125或者另一网络的通信,所述另一网络可以是wwan、wlan或wpan。尽管仅图示出了网络125,但是网络连接组件806可以促进与多个网络的同时通信,包括图20的网络125。例如,网络连接组件806可以促进经由一个或多个wwan、wlan或wpan与多个网络的同时通信。
179.网络125可以是或者可以包括wwan,诸如利用一种或多种移动电信技术经由wwan组件822利用计算设备架构800向计算设备提供语音和/或数据服务的移动电信网络。移动电信技术能够包括但不限于:全球移动通信系统(“gsm”)、码分多址(“cdma”)one、cdma2000、通用移动电信系统(“umts”)、长期演进(“lte”)和全球微波接入互操作性(“wimax”)。此外,网络125可以利用各种信道接入方法(上述标准可以使用也可以不使用),包括但不限于:时分多址(“tdma”)、频分多址(“fdma”)、cdma、宽带cdma(“w-cdma”)、正交频分复用(“ofdm”)、空分多址(“sdma”)等。可以使用通用分组无线电服务(“gprs”)、全球演进增强型数据速率(“edge”)、高速分组接入(“hspa”)协议族,包括高速下行链路分组接入(“hsdpa”)、增强上行链路(“eul”)或以其他方式被称为高速上行链路分组接入(“hsupa”)、演进hspa(“hspa ”)、lte以及各种其他当前和未来的无线数据接入标准。网络125可以被配置为利用上述技术的任意组合来提供语音和/或数据通信。网络125可以被配置为或者适用于根据下一代技术提供语音和/或数据通信。
180.在一些配置中,wwan组件822被配置为向网络125提供双多模连接。例如,wwan组件822可以被配置为向网络125提供连接,其中,网络125经由gsm和umts技术,或者经由技术的一些其他组合提供服务。替代地,多个wwan组件822可以被用于执行这样的功能,和/或提供额外功能以支持其他非兼容技术(即,由单个wwan组件无法支持)。wwan组件822可以促进与多个网络(例如,umts网络和lte网络)的相似连接。
181.网络125可以是根据一个或多个电气和电子工程师协会(“ieee”)802.11标准操作的wlan,诸如ieee 802.11a、802.11b、802.11g、802.11n和/或未来802.11标准(在本文中被统称为wi-fi)。也设想了802.11标准草案。在一些配置中,wlan是利用一个或多个无线wi-fi接入点来实现的。在一些配置中,一个或多个无线wi-fi接入点是另一计算设备,所述计算设备连接到用作wi-fi热点的wwan。wlan组件824被配置为经由wi-fi接入点连接到网络125。这样的连接可以经由各种加密的技术来保护,包括但不限于:wi-fi保护访问(“wpa”)、
wpa2、有线等效保密(“wep”)等。
182.网络125可以是根据红外数据协会(“irda”)、蓝牙、无线通用串行总线(“usb”)、z-wave、zigbee或者一些其他短程无线技术操作的wpan。在一些配置中,wpan组件826被配置为促进经由wpan与诸如外围设备、计算机或者其他计算设备等其他设备的通信。
183.传感器组件808包括磁力计828、环境光传感器830、接近传感器832、加速度计834、陀螺仪836和全球定位系统传感器(“gps传感器”)838。设想到了,其他传感器(诸如但不限于温度传感器或震动检测传感器)也可以被并入在计算设备架构800中。
184.磁力计828被配置为测量磁场的强度和方向。在一些配置中,磁力计828向存储在存储器组件804之一内的罗盘应用程序提供测量结果,以便为用户提供参考系中的准确方向,包括基本方向、北、南、东和西。类似的测量结果可以被提供给包括罗盘组件的导航应用程序。设想到了由磁力计828获得的测量结果的其他用途。
185.环境光传感器830被配置为测量环境光。在一些配置中,环境光传感器830向存储在存储器组件804之一内的应用程序提供测量结果,以便自动地调整显示器的亮度(如下文所描述的)以补偿低光和高光环境。设想到了由环境光传感器830获得的测量结果的其他用途。
186.接近传感器832被配置为在没有直接接触的情况下检测接近于计算设备的物体或事物的存在。在一些配置中,接近传感器832检测用户身体(例如,用户的面部)的存在,并且将该信息提供给被存储在存储器组件804之一内的应用程序,该存储器组件804利用接近信息来启用或禁用计算设备的某些功能。例如,电话应用程序可以响应于接收到接近信息而自动地禁用触摸屏(如下文所描述的),从而用户的面部不会在通话期间无意结束通话或者启用/禁用电话应用内的其他功能。设想到了由接近传感器828检测到的接近度的其他用途。
187.加速度计834被配置为测量恰当的加速度。在一些配置中,来自加速度计834的输出被应用程序用作输入机制来控制应用程序的一些功能。例如,应用程序可以是视频游戏,其中,角色、角色的一部分或者对象响应于经由加速度计834接收到的输入而被移动或者以其他方式操纵。在一些配置中,来自加速度计834的输出被提供给用于在横向与纵向模式之间切换、计算坐标加速度或检测跌倒的应用程序。设想到了加速度计834的其他用途。
188.陀螺仪836被配置为测量和保持方向。在一些配置中,来自陀螺仪836的输出被应用程序用作输入机制来控制应用程序的一些功能。例如,陀螺仪836能够被用于准确识别视频游戏应用或一些其他应用的3d环境内的运动。在一些配置中,应用程序利用来自陀螺仪836和加速度计834的输出来增强对应用程序的一些功能的控制。设想到了陀螺仪836的其他用途。
189.gps传感器838被配置为从gps卫星接收信号以用于计算位置。由gps传感器838计算出的位置可以被需要或者受益于位置信息的任何应用程序使用。例如,由gps传感器838计算出的位置可以与导航应用程序一起使用,以提供从所述位置到目的地的方向或者从目的地到所述位置的方向。此外,gps传感器838可以被用于将位置信息提供给外部基于位置的服务,诸如e911服务。gps传感器838可以获得经由wi-fi、wimax和/或蜂窝三角测量技术生成的位置信息,所述技术利用一个或多个网络连接组件806来辅助助gps传感器838获得定位。gps传感器838也可以被用在辅助gps(“a-gps”)系统中。
190.i/o组件810包括显示器840、触摸屏842、数据i/o接口组件(“数据i/o”)844、音频i/o接口组件(“音频i/o”)846、视频i/o接口组件(“视频i/o”)848和相机850。在一些配置中,显示器840和触摸屏842被组合。在一些配置中,数据i/o组件844、音频i/o组件846和视频i/o组件848中的两个或更多个被组合。i/o组件810可以包括被配置为支持下述各种接口的分立处理器,或者可以包括内置于处理器802的处理功能。
191.显示器840是被配置为以视觉形式呈现信息的输出设备。具体地,显示器840可以呈现图形用户界面(“gui”)元素、文本、图像、视频、通知、虚拟按钮、虚拟键盘、消息传递数据、互联网内容、设备状态、时间、日期、日历数据、偏好、地图信息、位置信息以及能够以视觉形式呈现的任何其他信息。在一些配置中,显示器840是利用任何有源或无源矩阵技术和任何背光技术(如果使用的话)的液晶显示器(“lcd”)。在一些配置中,显示器840是有机发光二极管(“oled”)显示器。设想到了其他显示器类型。
192.触摸屏842(在本文中也被称为“支持触摸的屏幕”)是被配置为检测触摸的存在和位置的输入设备。触摸屏842可以是电阻式触摸屏、电容式触摸屏、表面声波触摸屏、红外触摸屏、光学成像触摸屏、色散信号触摸屏、声脉冲识别触摸屏,或者可以利用任何其他触摸屏技术。在一些配置中,触摸屏842作为透明层被并入在显示器840的顶部,以使得用户能够使用一个或多个触摸来与在显示器840上呈现的对象或者其他信息交互。在其他配置中,触摸屏842是在不包括显示器840的计算设备的表面上并入的触摸板。例如,计算设备可以具有并入显示器840顶部的触摸屏以及在与显示器840相对的表面上的触摸板。
193.在一些配置中,触摸屏842是单点触摸触摸屏。在其他配置中,触摸屏842是多点触摸触摸屏。在一些配置中,触摸屏842被配置为检测离散触摸、单点触摸手势和/或多点触摸手势。为方便起见,这些在本文中被统称为手势。现在将描述若干个手势。应当理解,这些手势是说明性的,并不旨在限制所附权利要求的范围。此外,所描述的手势、额外手势和/或替代手势可以在与触摸屏842一起使用的软件中实现。这样,开发者可以创建特定于特定应用程序的手势。
194.在一些配置中,触摸屏842支持敲击手势,其中,用户在显示器840上呈现的项目上敲击触摸屏842一次。敲击手势可以用于各种原因,包括但不限于打开或启动用户轻敲的任何内容。在一些配置中,触摸屏842支持双击手势,其中,用户在显示器840上呈现的项目上敲击触摸屏842两次。双击手势可以用于各种原因,包括但不限于分阶段放大或缩小。在一些配置中,触摸屏842支持敲击并且保持手势,其中,用户敲击触摸屏842并且保持接触达至少预定时间。敲击和保持手势可以用于各种原因,包括但不限于打开特定于上下文的菜单。
195.在一些配置中,触摸屏842支持平移手势,其中,用户将手指放在触摸屏842上并且保持与触摸屏842的接触,同时在触摸屏842上移动手指。平移可以用于各种原因,包括但不限于以受控速率移动通过屏幕、图像或菜单。还设想到了多个手指平移手势。在一些配置中,触摸屏842支持轻弹手势,其中,用户在用户希望屏幕移动的方向上滑动手指。轻弹手势可以用于各种原因,包括但不限于水平或垂直滚动菜单或页面。在一些配置中,触摸屏842支持捏合和拉伸手势,其中,用户在触摸屏842上用两个手指(例如,拇指和食指)进行捏合动作或将两个手指移开。捏合和拉伸手势可以用于各种原因,包括但不限于逐渐放大或缩小网站、地图或图片。
196.尽管已经参考使用一根或多根手指来执行手势描述了上述手势,但是可以使用诸
如脚趾的其他附件或者诸如触笔的对象来与触摸屏842交互。这样,上述手势应当被理解为是说明性的,而不应当被解释为以任何方式进行限制。
197.数据i/o接口组件844被配置为促进向计算设备输入数据以及从计算设备输出数据。在一些配置中,数据i/o接口组件844包括连接器,所述连接器被配置为提供在计算设备与计算机系统之间的有线连接,例如,用于同步操作目的。所述连接器可以是专有连接器或者标准化连接器,诸如usb、微型usb、迷你usb等。在一些配置中,所述连接器是对接连接器,其用于将计算设备与诸如对接站、音频设备(例如,数字音乐播放器)或者视频设备的另一设备对接。
198.音频i/o接口组件846被配置为向计算设备提供音频输入和/或输出能力。在一些配置中,音频i/o接口组件846包括被配置为收集音频信号的麦克风。在一些配置中,音频i/o接口组件846包括被配置为为耳机或者其他外部扬声器提供连接的耳机插孔。在一些配置中,音频i/o接口组件846包括用于输出音频信号的扬声器。在一些配置中,音频i/o接口组件846包括光学音频线缆输出。
199.视频i/o接口组件848被配置为向计算设备提供视频输入和/或输出能力。在一些配置中,视频i/o接口组件848包括视频连接器,所述视频连接器被配置为从另一设备(例如,诸如dvd或蓝光播放器的视频媒体播放器)接收视频作为输入,或者将视频作为输出发送到另一设备(例如,监视器、电视机或者一些其他外部显示器)。在一些配置中,视频i/o接口组件848包括高清多媒体接口(“hdmi”)、迷你hdmi、微型hdmi、displayport或者用于输入/输出视频内容的专有连接器。在一些配置中,视频i/o接口组件848或者其部分与音频i/o接口组件846或者其部分组合。
200.相机850能够被配置为捕获静止图像和/或视频。相机850可以利用电荷耦合器件(“ccd”)或互补金属氧化物半导体(“cmos”)图像传感器来捕获图像。在一些配置中,相机850包括闪光灯以辅助在低光环境中拍照。针对相机850的设置可以被实现为硬件或软件按钮。
201.尽管未图示出,但是一个或多个硬件按钮也可以被包含在计算设备架构800中。硬件按钮可以被用于控制计算设备的一些操作方面。硬件按钮可以是专用按钮或多用途按钮。硬件按钮可以是机械的或基于传感器的。
202.所图示出的电力组件812包括一个或多个电池852,其能够被连接到电池量表854。电池852可以是可充电的或者一次性的。可充电电池类型包括但不限于:锂聚合物、锂离子、镍镉和镍金属氢化物。电池852中的每个电池可以由一个或多个电池单元制成。
203.电池量表854能够被配置为测量电池参数,诸如电流、电压和温度。在一些配置中,电池量表854被配置为测量电池的放电率、温度、期龄以及其他因素的影响,以在一定的误差百分比内预测剩余寿命。在一些配置中,电池量表854向应用程序提供测量结果,所述应用程序被配置为利用所述测量结果向用户呈现有用的电力管理数据。电力管理数据可以包括电池已用百分比、电池剩余百分比、电池状况、剩余时间、剩余容量(例如,以瓦特小时为单位)、电流消耗和电压中的一项或多项。
204.电力组件812也可以包括电力连接器,其可以与前述i/o组件810中的一个或多个组件相组合。电力组件812可以经由电力i/o组件与外部电力系统或充电设备进行接口。
205.可以鉴于以下条款来考虑在本文中所呈现的公开内容。
206.条款a:一种计算机120,包括:处理器602;以及与所述处理器602通信的计算机可读存储介质604,所述计算机可读存储介质604具有存储在其上的计算机可执行指令,所述计算机可执行指令当由所述处理器602运行时使得所述计算机120:控制对保险库109的访问,所述保险库109存储通过使用秘密密钥1 102a加密秘密数据1 101a生成的加密的秘密数据1 101a'、通过使用与用户群组111相关联的保险库密钥104加密所述秘密密钥1 102a生成的加密的秘密密钥1 102a'以及通过使用与所述用户群组111的第一用户107a的第一身份113a相关联的第一私钥-公钥对157a的公钥1105a加密所述保险库密钥104生成的加密的保险库密钥1 104',针对个体用户对所述保险库的访问是基于与所述用户群组111的成员资格状态来控制的;接收被配置为控制在通信会话中的所述用户群组111的个体用户之间的通信的成员资格数据155,所述成员资格数据155指示所述用户群组111的第二用户107b的第二身份113b;响应于接收到指示添加所述群组111的所述第二用户107b的所述成员资格数据155,将更新命令156传送到与所述第一用户107a相关联的客户端设备110a,所述更新命令156使得所述客户端设备110a通过使用与所述用户群组111的所述第二用户107b的所述第二身份113b相关联的第二私钥-公钥对157b的公钥2 105b加密所述保险库密钥104来生成加密的保险库密钥2 104b';以及接收所述加密的保险库密钥2 104b'以用于将所述加密的保险库密钥2 104b'与所述第二用户107b的所述第二身份113b相关联地存储在所述保险库109中,所述保险库109被配置为基于与所述用户群组111的成员资格状态来授予所述第二用户107b对所述加密的保险库密钥2 104b'的访问权。
207.条款b:条款a的计算机,其中,所述指令还使得所述计算机:将所述加密的保险库密钥2 104b'传输到所述第二客户端设备110b,所述加密的保险库密钥2 104b'被配置为在所述第二客户端设备处通过使用所述第二私钥-公钥对157b的私钥2 106b生成所述保险库密钥104,所述保险库密钥104使得所述第二客户端设备110b能够从秘密密钥2 102b生成加密的秘密密钥2 102b',所述秘密密钥2 102b使得所述第二客户端设备110b能够从秘密数据2 101b生成加密的秘密数据2 101b';接收写入请求158以将所述加密的秘密数据2 101b'和所述加密的秘密密钥2 102b'与所述第二用户107b相关联地存储在所述保险库109中;使用来自所述群组管理器的确认数据来确定所述第二用户107b是所述用户群组111的当前成员;以及如果所述第二用户107b是所述群组111的当前成员,则将所述加密的秘密数据2 101b'和所述加密的秘密密钥2 102b'存储在所述保险库109中。
208.条款c:条款a和b的计算机,其中,所述指令还使得所述计算机:接收写入请求158以将加密的秘密数据2 101b'和加密的秘密密钥2 102b'与所述第二用户107b相关联地存储在所述保险库109中;使用来自所述群组管理器的确认数据来确定所述第二用户107b是所述群组111的当前成员;以及如果所述第二用户107b是所述群组111的当前成员,则将所述加密的秘密数据2 101b'和所述加密的秘密密钥2 102b'存储在所述保险库109中,其中,所述加密的秘密数据2 101b'是通过使用秘密密钥2 102b从秘密数据2 101b生成的,并且其中,所述加密的秘密密钥2 102b'是通过使用所述保险库密钥104从秘密密钥2 102b生成的。
209.条款d:条款a-c的计算机,其中,所述指令还使得所述计算机:将所述加密的保险库密钥2104b'传输到所述第二客户端设备110b,所述加密的保险库密钥2 104b'被配置为在所述第二客户端设备110b处通过使用所述第二私钥-公钥对157b的私钥2 106b生成保险
库密钥104,所述保险库密钥104使得所述第二客户端设备110b能够从秘密密钥2 102b生成加密的秘密密钥2 102b',所述秘密密钥2 102b使得所述第二客户端设备110b能够从秘密数据2 101b生成加密的秘密数据2 101b';接收写入请求158以将所述加密的秘密数据2 101b'和所述加密的秘密密钥2 102b'与所述第二用户107b相关联地存储在所述保险库109中;使用来自群组管理器的确认数据来确定所述第二用户107b是否不具有写入访问权或者所述第二用户107b是否不是所述群组111的当前成员;以及如果所述第二用户107b不具有写入访问权或者如果所述第二用户107b不是所述群组111的当前成员,则通过限制所述第二用户将所述加密的秘密数据2 101b'和所述加密的秘密密钥2 102b'存储在所述保险库109中来拒绝所述写入请求。
210.条款e:条款a-d的计算机,其中,所述指令还使得所述计算机:接收写入请求158以将加密的秘密数据2 101b'和加密的秘密密钥2 102b'与所述第二用户107b相关联地存储在所述保险库109中;使用来自群组管理器的确认数据来确定所述第二用户107b是否不具有写入访问权或者所述第二用户107b是否不是所述群组111的当前成员;以及如果所述第二用户107b不具有写入访问权或者如果所述第二用户107b不是所述群组111的当前成员,则通过限制所述第二用户将所述加密的秘密数据2 101b'和所述加密的秘密密钥2 102b'存储在所述保险库109中来拒绝所述写入请求。
211.条款f:条款a-e的计算机,其中,所述指令还使得所述计算机:接收与所述第二用户相关联的访问请求,所述访问请求请求与所述第一用户相关联地存储在所述保险库中的加密的秘密数据101a';响应于所述访问请求,将验证请求传送到所述群组管理器,所述验证请求包括所述第二用户的所述身份以及与所述群组和所述保险库相关联的群组标识符;接收来自所述群组管理器的访问确认,所述访问确认指示所述第二用户是所述群组的当前成员;以及响应于确定所述第二用户是所述群组的当前成员,允许将所述加密的秘密数据1 101a'、所述加密的秘密密钥1 102a'和所述加密的保险库密钥2 104b'传送到与所述访问请求相关联的请求客户端设备,其中,所述加密的保险库密钥2 104b'被配置为允许在所述请求客户端设备处使用所述第二私钥-公钥对157b的私钥2 106b生成所述保险库密钥104,所述保险库密钥104允许生成所述秘密密钥1和所述秘密数据1 101a。
212.条款g:条款a-f的计算机,其中,所述指令还使得所述计算机:接收与所述第二用户相关联的访问请求,所述访问请求请求与所述第一用户相关联地存储在所述保险库中的加密的秘密数据101a';响应于所述访问请求,将验证请求传送到所述群组管理器,所述验证请求包括所述第二用户的所述身份以及与所述群组和所述保险库相关联的群组标识符;接收来自所述群组管理器的访问确认,所述访问确认指示所述第二用户是所述群组的当前成员;响应于确定所述第二用户是所述群组的当前成员,允许将所述加密的秘密数据1 101a'和所述加密的秘密密钥1 102a'传送到与所述访问请求相关联的请求客户端设备,其中,在所述请求客户端设备上的所述加密的保险库密钥2 104b'的副本被配置为允许在所述请求客户端设备处使用所述第二私钥-公钥对157b的私钥2 106b生成所述保险库密钥104,所述保险库密钥104允许生成所述秘密密钥1和所述秘密数据1 101a。
213.条款h:条款a-g的计算机,其中,所述指令还使得所述计算机:接收来自所述群组管理器的成员资格数据,所述成员资格数据指示所述第二用户不再是所述用户群组的成员;以及修改所述第二用户的访问权限,其中,所述访问权限防止所述第二用户接收被存储
在所述保险库中的加密数据。
214.条款i:条款a-h的计算机,其中,所述指令还使得所述计算机:接收成员资格数据,所述成员资格数据指示移除针对与所述第二用户相关联地存储在所述保险库中的数据的读取许可;以及基于在从所述群组管理器接收到的所述成员资格数据中移除所述读取许可,拒绝来自所述第二用户的、读取所述加密数据中的至少一项的请求,所述加密数据包括所述加密的保险库密钥2、所述加密的秘密密钥2或者所述加密的秘密数据2。
215.条款j:一种针对用户群组111管理对保险库的用户访问权的方法,由数据处理系统120执行的所述方法包括:控制对保险库109的访问权,所述保险库109存储通过使用秘密密钥1 102a加密秘密数据1 101a生成的加密的秘密数据1 101a'、通过使用与用户群组111相关联的保险库密钥104加密所述秘密密钥1 102a生成的加密的秘密密钥1 102a'以及通过使用与所述用户群组111的第一用户107a的第一身份113a相关联的第一私钥-公钥对157a的公钥1 105a加密所述保险库密钥104生成的加密的保险库密钥1 104',针对个体用户对所述保险库的访问是基于与所述用户群组111的成员资格状态来控制的;接收来自被配置为控制在通信会话中用户群组111的个体用户之间的通信的群组管理器115的成员资格数据155,所述成员资格数据155指示添加所述用户群组111的第二用户107b;响应于接收到指示添加所述群组111的所述第二用户107b的所述成员资格数据155,将更新命令156传送到与所述第一用户107a相关联的客户端设备110a,所述更新命令156使得所述客户端设备110a通过使用与所述第二用户107b相关联的第二私钥-公钥对157b的公钥2 105b加密所述保险库密钥104来生成加密的保险库密钥2 104b;以及配置所述保险库以允许通过将第二身份113b与所述保险库109相关联来将加密的数据与所述第二用户107b相关联地存储,所述保险库109被配置为在所述第二用户107b是所述用户群组111的当前成员时授予所述第二用户107b许可以存储所述加密的数据。
216.条款k:条款j的方法,还包括:接收与所述第二用户107b相关联的写入请求158以将所述加密的数据存储在所述保险库109中,所述加密的数据包括所述加密的保险库密钥2 104b'、所述加密的秘密数据2 101b'和所述加密的秘密密钥2 102b',其中,所述加密的秘密密钥2 102b'是通过使用所述保险库密钥104从秘密密钥2生成的,并且所述加密的秘密数据2 101b'是通过使用所述秘密密钥2 102b从秘密数据2 101b生成的;使用来自所述群组管理器的确认数据122来确定所述第二用户107b是所述用户群组111的当前成员;以及如果所述第二用户107b是所述用户群组111的当前成员,则将所述加密的保险库密钥2 104b'、所述加密的秘密数据2 101b'和所述加密的秘密密钥2102b'存储在所述保险库中。
217.条款l:条款j和k的方法,还包括:接收与所述第二用户107b相关联的写入请求158以将所述加密的数据存储在所述保险库109中,所述加密的数据包括所述加密的保险库密钥2 104b'、加密的秘密数据2 101b'和加密的秘密密钥2 102b',其中,所述加密的秘密密钥2 102b'是通过使用所述保险库密钥104从秘密密钥2 102b生成的,并且所述加密的秘密数据2 101b'是通过使用所述秘密密钥2 102b从秘密数据2 101b生成的;使用来自所述群组管理器的确认数据122来确定所述第二用户107b不是所述用户群组111的当前成员;以及如果所述第二用户107b是所述用户群组111的当前成员,则通过限制所述第二用户将所述加密的保险库密钥2 104b'、所述加密的秘密数据2101b'和所述加密的秘密密钥2 102b'存储在所述保险库109中来拒绝所述写入请求。
218.条款m:条款j-l的方法,还包括:接收与所述第二用户相关联的访问请求,所述访问请求请求与所述第一用户相关联地存储在所述保险库中的加密的秘密数据;响应于所述访问请求,将验证请求传送到所述群组管理器,所述验证请求包括所述第二用户的所述身份以及与所述群组和所述保险库相关联的群组标识符;接收来自所述群组管理器的访问确认,所述访问确认指示所述第二用户是所述群组的当前成员;以及响应于确定所述第二用户是所述群组的当前成员,允许将所述加密的秘密数据1 101a'、所述加密的秘密密钥1 102a'和所述加密的保险库密钥2 104b'传送到与所述访问请求相关联的请求客户端设备,其中,所述加密的保险库密钥2 104b'被配置为允许在所述请求客户端设备处使用所述第二私钥-公钥对157b的私钥2 106b生成所述保险库密钥104,所述保险库密钥104允许生成所述秘密密钥1和所述秘密数据1 101a。
219.条款n:条款j-m的方法,还包括:接收与所述第二用户相关联的访问请求,所述访问请求请求与所述第一用户相关联地存储在所述保险库中的加密的秘密数据101a';响应于所述访问请求,将验证请求传送到所述群组管理器,所述验证请求包括所述第二用户的所述身份以及与所述群组和所述保险库相关联的群组标识符;接收来自所述群组管理器的访问确认,所述访问确认指示所述第二用户是所述群组的当前成员;响应于确定所述第二用户是所述群组的当前成员,允许将所述加密的秘密数据1 101a'和所述加密的秘密密钥1 102a'传送到与所述访问请求相关联的请求客户端设备,其中,在所述请求客户端设备上的所述加密的保险库密钥2 104b'的副本被配置为允许在所述请求客户端设备处使用所述第二私钥-公钥对157b的私钥2 106b生成所述保险库密钥104,所述保险库密钥104允许生成所述秘密密钥1和所述秘密数据1 101a。
220.条款o:条款j-n的方法,还包括:接收来自所述群组管理器的成员资格数据,所述成员资格数据指示所述第二用户不再是所述用户群组的成员;以及修改所述第二用户的访问权限,其中,所述访问权限防止所述第二用户接收被存储在所述保险库中的加密的数据。
221.条款p:一种计算机120,包括:用于控制对保险库109的访问的单元,所述保险库109存储通过使用秘密密钥1 102a加密秘密数据1 101a生成的加密的秘密数据1 101a'、通过使用与用户群组111相关联的保险库密钥104加密所述秘密密钥1 102a生成的加密的秘密密钥1 102a'以及通过使用与所述用户群组111的第一用户107a的第一身份113a相关联的第一私钥-公钥对157a的公钥1105a加密所述保险库密钥104生成的加密的保险库密钥1 104',针对个体用户对所述保险库的访问是基于与所述用户群组111的成员资格状态来控制的;用于接收来自被配置为控制在通信会话中的所述用户群组111的个体用户之间的通信的群组管理器115的成员资格数据155的单元,所述成员资格数据155指示所述用户群组111的第二用户107b的第二身份113b;响应于接收到指示添加所述群组111的所述第二用户107b的所述成员资格数据155,将更新命令156传送到与所述第一用户107a相关联的客户端设备110a,所述更新命令156使得所述客户端设备110a通过使用与所述用户群组111的所述第二用户107b的所述第二身份113b相关联的第二私钥-公钥对157b的公钥2 105b加密所述保险库密钥104来生成加密的保险库密钥2 104b';以及接收所述加密的保险库密钥2 104b'以用于将所述加密的保险库密钥2 104b'与所述第二用户107b的所述第二身份113b相关联地存储在所述保险库109中,所述保险库109被配置为基于所述用户群组111的成员资格状态来授予所述第二用户107b对所述加密的保险库密钥2 104b'的访问权。
222.条款q:条款p的计算机,还包括:用于将所述加密的保险库密钥2 104b'传输到所述第二客户端设备110b的单元,所述加密的保险库密钥2 104b'被配置为在所述第二客户端设备处通过使用所述第二私钥-公钥对157b的私钥2 106b生成所述保险库密钥104,所述保险库密钥104使得所述第二客户端设备110b能够从秘密密钥2 102b生成加密的秘密密钥2 102b',所述秘密密钥2 102b使得所述第二客户端设备110b能够从秘密数据2 101b生成加密的秘密数据2 101b';用于接收写入请求158以将所述加密的秘密数据2 101b'和所述加密的秘密密钥2 102b'与所述第二用户107b相关联地存储在所述保险库109中的单元;用于使用来自所述群组管理器的确认数据来确定所述第二用户107b是所述用户群组111的当前成员的单元;以及如果所述第二用户107b是所述群组111的当前成员,则用于将所述加密的秘密数据2 101b'和所述加密的秘密密钥2 102b'存储在所述保险库109中的单元。
223.条款r:条款p和q的计算机,还包括:用于接收写入请求158以将加密的秘密数据2 101b'和加密的秘密密钥2 102b'与所述第二用户107b相关联地存储在所述保险库109中的单元;用于使用来自所述群组管理器的确认数据来确定所述第二用户107b是所述群组111的当前成员的单元;以及如果所述第二用户107b是所述群组111的当前成员,则用于将所述加密的秘密数据2 101b'和所述加密的秘密密钥2 102b'存储在所述保险库109中的单元,其中,所述加密的秘密数据2 101b'是通过使用秘密密钥2 102b从秘密数据2 101b生成的,并且其中,所述加密的秘密密钥2 102b'是通过使用所述保险库密钥104从秘密密钥2 102b生成的。
224.条款s:条款p-r的计算机,还包括:用于将所述加密的保险库密钥2 104b'传输到所述第二客户端设备110b的单元,所述加密的保险库密钥2 104b'被配置为在所述第二客户端设备110b处通过使用所述第二私钥-公钥对157b的私钥2 106b生成所述保险库密钥104,所述保险库密钥104使得所述第二客户端设备110b能够从秘密密钥2 102b生成加密的秘密密钥2 102b',所述秘密密钥2102b使得所述第二客户端设备110b能够从秘密数据2 101b生成加密的秘密数据2 101b';用于接收写入请求158以将所述加密的秘密数据2 101b'和所述加密的秘密密钥2 102b'与所述第二用户107b相关联地存储在所述保险库109中的单元;用于使用来自群组管理器的确认数据来确定所述第二用户107b是否不具有写入访问权或者所述第二用户107b是否不是所述群组111的当前成员的单元;以及如果所述第二用户107b不具有写入访问权或者如果所述第二用户107b不是所述群组111的当前成员,则用于通过限制所述第二用户将所述加密的秘密数据2 101b'和所述加密的秘密密钥2102b'存储在所述保险库109中来拒绝所述写入请求的单元。
225.条款t:条款p-s的计算机,还包括:用于接收与所述第二用户相关联的访问请求的单元,所述访问请求请求与所述第一用户相关联地存储在所述保险库中的加密的秘密数据101a';用于将验证请求传送到所述群组管理器的单元,所述验证请求包括所述第二用户的所述身份以及与所述群组和所述保险库相关联的群组标识符,其中,传送所述验证请求是响应于所述访问请求进行的;用于接收来自所述群组管理器的访问确认的单元,所述访问确认指示所述第二用户是所述群组的当前成员;以及用于允许将所述加密的秘密数据1 101a'、所述加密的秘密密钥1 102a'和所述加密的保险库密钥2 104b'传送到与所述访问请求相关联的请求客户端设备的单元,其中,所述加密的保险库密钥2104b'被配置为允许在所述请求客户端设备处使用所述第二私钥-公钥对157b的私钥2 106b生成所述保险库密
钥104,所述保险库密钥104允许生成所述秘密密钥1和所述秘密数据1 101a,其中,仅当所述第二用户是所述群组的当前成员时才允许通信。
226.基于前述内容,应当意识到,在本文中已经公开了为加密数据提供增强的安全性的概念和技术。尽管在本文中所提出的主题已经以特定于计算机结构特征、方法和转换动作、特定计算机器和计算机可读介质的语言进行了描述,但是应当理解,在所附的权利要求中所定义的本发明不一定限于在本文中所描述的特定特征、动作或介质。相反,具体特征、动作和介质被公开为实现权利要求的示例性形式。
227.上文所描述的主题仅仅通过说明的方式提供并且不应当被解释为限制性的。可以对在本文中所描述的主题进行各种修改和改变,而不遵循图示和描述的示例性配置和应用,并且不背离在所附权利要求中所阐述的本发明的真实主旨和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献