在云中隐私地处理数据的制作方法
【专利说明】在云中隐私地处理数据
[0001]背景
[0002]本发明总体上涉及在云中处理数据。
[0003]云基本上是为客户端(诸如移动电话、膝上计算机、个人计算机以及实际上可通过有线或无线网络与服务器通信的任何基于处理器的设备)提供存储或处理服务的任何服务器。云计算是用于使得能够对可以用最小的管理努力或服务提供商交互快速供应并释放的可配置计算资源共享池(例如,网络、服务器、存储、应用以及服务)进行无处不在的、方便的、按需的网络访问的模型。
[0004]通常,从客户端到服务器提供各种任务。结合苹果iPhone的常见任务是使用Siri语音识别服务。用户可说出问题并且该信息可由服务器处理,然后该服务器提供答案。
[0005]某些人更喜欢云服务提供商不访问正在被处理的数据。该数据可包括用户的语音、任何其他用户隐私数据以及用户正在提供的实际内容。然而,用户在许多情况下具有很少的选择,因为电话提供商也是提供云服务的提供商。
[0006]附图简要说明
[0007]参照以下附图描述一些实施例:
[0008]图1是根据一个实施例的客户端服务器的架构图;
[0009]图2是根据一个实施例的通信流;
[0010]图3是在一个实施例中有用的分组格式的图;
[0011]图4是根据一个实施例的受信执行环境的图;
[0012]图5是根据一个实施例的使用第三方受信服务提供商的架构的图;
[0013]图6是来自企业内的受信服务提供商的架构图;
[0014]图7是客户端处的一个实施例的流程图;
[0015]图8是服务器处的一个实施例的流程图;以及
[0016]图9是一个实施例的系统图。
[0017]详细描述
[0018]尽管云服务可提供来自个人设备的处理或来自多个源的合成数据,但是许多用户喜欢对他们的数据保持隐私。根据某些实施例,隐私用户数据可在云中处理而不向云服务提供商暴露用户身份。仅用户或用户的授权代理和服务的硬件平台能访问某些密钥并因此访问未经加密的数据。服务应用软件和操作系统仅能访问加密数据。
[0019]根据一个实施例,云服务中的受信计算库使得服务能够隐私地处理用户数据。数据可仅以加密格式存储并传输。明文数据的处理可仅在云服务中的受信硬件组件中发生。云服务操作系统应用软件仅能访问经加密的数据。
[0020]参照图1,客户端10可通过通信路径30与服务或服务器12通信。通信路径30可以是任何有线或无线通信路径。客户端10可以是任何基于处理器的设备,包括平板计算机、蜂窝电话、膝上计算机或个人计算机。其还可以是电视接收器、打印机游戏设备或可穿戴设备。客户端10包括隐私上下文14,该隐私上下文可包括用户更喜欢保持机密的信息和应用。其还可以包括多个客户端应用20,每个客户端应用具有其自身所分配的公钥16和私钥18。
[0021]在一个实施例中,通信路径30可例如结合超文本传输协议安全(HTTPS)协议实现传输层安全(TLS)连接。客户端可建立到服务12内的受信执行环境24的TLS连接。例如,在一个实施例中,通过TLS连接30的通信可依赖于向客户端保证受信执行环境是特定的受信执行环境的证书交换。客户端可存储被受信接受的执行环境列表。例如,Verisign证书可向客户端提供充分的信息:客户端可确信受信执行环境的身份。然后,客户端仅需检查数据库以便确定受信执行环境是否是客户端可信任的那个。
[0022]证书可由服务(诸如Verisign)生成,该证书向用户确保正在与其通信的实体是实体所说的实体。
[0023]服务12可包括不受信服务22,路径30通过该不受信服务22到达受信执行环境24。然而,不受信服务仅可访问经加密的数据。仅受信执行环境24具有将用户数据隐私地从客户端10传送到受信执行环境24所需的公钥26和私钥28。不受信服务可以例如是互联网服务提供商或蜂窝电话服务提供商,作为两个示例。
[0024]因此,参照图2,客户端10可通过不受信服务22与受信执行环境24通信。客户端10包括公钥和私钥并且使用TLS通道30验证受信执行环境的身份。具体地,信任请求32被发布到受信执行环境。受信执行环境用其公钥做出响应,如箭头34所示。然后,客户端基于预定的受信执行环境列表确定受信执行环境是否是客户端能够信任的环境。可确信受信执行环境的身份,因为这个身份由TLS通道确认。
[0025]然后,如果客户端10选择由受信执行环境24处理隐私数据,其发送包括用服务器的公钥和客户端的公钥加密的会话密钥以及用会话密钥加密的隐私数据和随机值,如箭头36所示。然后,受信执行环境24具有客户端的公钥并且可处理隐私数据。其将如38处所示的结果发送到客户端10。使用第二会话密钥对这些结果和随机值进行加密。也使用客户端的公钥对会话密钥进行加密。
[0026]服务从客户端接收隐私数据并且在受信执行环境执行处理。仅受信执行环境具有解密数据的密钥,该数据曾以其他方式在存储器中并且在盘上加密。一旦处理完成,使用第二会话密钥对这些结果进行加密。由客户端公钥加密的第二会话密钥、这些结果以及由第二会话密钥加密的随机值被返回客户端。
[0027]图3示出了一种可能的分组格式。公钥40与有效载荷加密密钥44 一起用于加密签名48。因此,有效载荷46被加密并且然后头42可被提供。也就是,使用如50处所示的有效载荷加密密钥44对有效载荷进行加密。然后,如52处所示,可用头、加密密钥44和有效载荷46对签名进行散列。
[0028]图4中示出的受信执行环境是服务器进行安全处理的关键。从客户端接收的所有数据以加密形式存储在存储器66中和存储70上。受信执行环境包含用于解密数据的秘密密钥和用于处理的存储器66。经解密的数据仅在处理期间可用,并且在其被处理之后永不在存储器中或盘上可用。
[0029]因此,中央处理单元(CPU)或其他处理器54包括作为公私钥对或对称密钥的秘密56。可用于在数据62中提供指令60的解密单元58中进行解密。读写链路64将存储器66和CPU 54链接起来。存储器66可存储也可从如72中所指示的存储70加载的经加密的信息68 ο
[0030]至此为止,数据已经用算法或不用算法(例如,个人上下文作为经加密的文本文件)从客户端传输以便在驻留在服务器上的数据上操作。在另一个实施例中,客户端传送数据和指令两者以便在服务器上执行。在这种情况下,客户端能够控制对数据的访问以及在数据上发生的处理。处理指令与图2中被标记为“隐私数据”和在图3中被标记为“经加密的有效载荷”的块中的数据一起被传输。可或者通过要求对指令进行签名或者要求在沙盒(例如,Java虚拟机)中对指令进行解释来保护服务器,该沙盒在受信执行环境或两者中运行。
[0031]在至此所描述的示例中,存在其服务器具有受信执行环境的最终用户和单个服务提供商。以下描述两个扩展。
[0032]在某些情况下,用户可与用户不信任的服务提供商交互,即使该服务提供商具有含受信执行环境的硬件。在这种情况下,如图5所示,可使用受信第三方。用户与受信第三方的硬件建立关系而不是与不受信服务提供商。第三方受信硬件中发生计算并且仅经加密的请求和结果数据通过不受信服务提供商传输。
[0033]因此,在图5中,客户端设备74包括公钥和私钥78和80、客户端应用82和隐私上下文76。设备74通过路径84通信,该路径可以是有线或无线并且可通常是TLS连接。其与具有不受信服务90的不受信服务提供商88通信。不受信服务提供商和受信服务提供商92两者都在云86中。受信服务提供商92包括不受信服务94、公钥和私钥98和100以及受信执行环境96。
[0034]在另一个示例中,如图6所示,客户端可以是企业环境中的设备。在本示例中,企业102可能希望访问未经加密的数据。此外,企业可能希望设置有关可处理什么数据以及该数据可由什么外部服务提供商访问的策略。在这种情况下,企业客户端设备106通