技术领域
[0001] 本发明涉及对用于存储使用与数据的拥有者相关联的密钥加密的数据的数据存储器执行操作的方法、对应的计算机程序和计算机程序产品、对应的策略执行点(PEP)、对应的可信第三方(TTP),以及对应的客户端设备。
相关背景技术
[0002] 个人资料库(PDV)是用户或代表用户的代理可以存储数据的基于云或网络的数据存储器,数据例如文件、文档、照片、医疗期刊、音乐、联系人列表、存在信息等。存储的数据可以随后由被授权的客户端(即已经被许可访问所储的数据的客户端)访问。客户端可以是数据存储器的其他用户、网络操作者、或例如个性化服务或数据共享服务的服务提供者。
[0003] 已知的是,使用例如可扩展的访问控制标识语言(XACML)之类的策略语言来描述如何处理资源,例如数据或信息。在客户端可以访问资源之前,检查访问是否被策略所允许。
[0004] 在并不完全信任数据存储器提供者或关联的PEP去执行访问策略时,加密成为了常见的解决方案。然而,加密的缺点在于,数据的拥有者必须在线,以便向进行请求访问的客户端提供加密数据的解密密钥。如果拥有者希望许可离线访问,必须通过除了在数据存储器中存储密钥以外的一些其它方式来向进行请求的客户端提供密钥,因为信任模型不能在数据存储器中存储密钥。无论怎样实现对密钥的访问,拥有者没有完全的控制,并且能够占有密钥的任何人都可以访问存储的数据。因此,不再保证数据的秘密性。
[0005] 例如在能够使用若干个客户端并且它们中的至少几个被信任的情况下,用于控制对存储的数据的访问的已知的解决方案是使用分割密钥。存储的数据的拥有者然后可以通过以下方式来应用对密钥(或可能地,数据)的所谓秘密共享:只有若干个客户端(即一个以上的客户端)可以联合检索加密的数据。例如,拥有者可以按照这样的方式来在n个客户端之间分割密钥:至少n/2+1个客户端(即大部分客户端)被要求合作以便获得密钥或存储的数据。本领域已知若干秘密共享方法。
[0006] 虽然密钥分割提供了更好地保护,但该技术的直接使用意味着持有密钥的一部分的一组客户端可以在不涉及数据的拥有者的情况下重构完整的密钥。另外,如果发生了非故意的错误,策略和访问控制的现有方案不能提供安全保护。例如,诸如由于访问策略的错误配置,数据存储器的提供者可能错误地向未经拥有者授权的客户端许可访问。
具体实施方式
[0055] 以下将参照附图更全面地描述本发明,附图中示出了本发明的特定实施例。然而,本发明可以按多种不同形式来体现,并且不应当被解释为受到本文阐述的实施例的限制。相反,通过示例给出这些实施例,使得本公开将透彻和完整,并且向本领域技术人员充分地传达本发明的范围。
[0056] 在下文中,参照图1描述本发明的实施例所基于的不同实体,图1示出了用于对用来存储数据106的数据存储器101执行操作的系统100,数据106是使用与数据106的拥有者102相关联的数据密钥KD来进行加密的。除了数据存储器101(其可以是PDV或任何其它基于网络或云的数据存储器)和拥有者102之外,系统100包括PEP 103、TTP 104、以及一个或多个客户端设备105(也被称作客户端105)。为了简洁,在图1中只示出了两个客户端设备105(分别具有标识符Cj和Cj’),但是本发明的实施例并不限于此,并可以涉及任意数量的客户端105。
[0057] 注意,假设在这里只使用一个密钥KD来对拥有者的数据进行加密。当然,可以直接将本文公开的情况扩展到不同类型或种类的数据,每种类型或种类与各自的数据密钥相关联。也就是说,拥有者可以使用一个数据密钥来对图片进行加密,使用另一数据密钥来对音乐文件进行加密,并且使用又一数据密钥来对与工作有关的文件进行加密。根据本发明的实施例,通过这种方式,拥有者可以分别控制对不同类别的数据的访问。
[0058] 在图1中,还示出了实体101至105必须访问哪个密钥和有关的信息。假设数据存储器101不访问数据密钥KD、第一密钥或第二密钥中的任意一个。相反,在向数据存储器101转移数据106之前,使用数据密钥KD来对在数据存储器101中存储的数据106进行加密,或者在从数据存储器101中检索出数据106之后,使用数据密钥KD来对在数据存储器101中存储的数据106进行解密。
[0059] 将用于对在数据存储器101中存储的数据106进行加密的密钥KD与拥有者102相关联。也就是说,假设拥有者102是本文描述的实体中唯一具有对密钥KD的无限制访问权限的实体。可以按照本领域已知的任何合适的方式来生成密钥KD和/或向拥有者102分发密钥KD。例如,可以由拥有者102生成密钥,例如由拥有者102使用的设备上执行的应用,或者由拥有者102请求的PEP 103。备选地,可以由在这样的设备上设置的硬件组件(即电路)来生成密钥KD。
[0060] 假设,在直到完成对数据存储器的操作(例如检索数据106、搜索数据106、或存储数据106)的有限时间段内,PEP 103没有对任何密钥的无限制防问权限,但是被委托保留数D D据密钥K。因此,当不再需要时,PEP 103被信任删除数据密钥K。虽然在本发明的范围之外,应当注意的是,可以通过本领域已知的各种方式来获得确保适当的密钥处理(以及一般来说,确保PEP的正确操作),例如可信的计算技术,诸如PEP的配置/软件的远程认证。
[0061] 为了使客户端105即使在拥有者102离线时也能够对数据存储器101执行操作,并在此后不能用于向进行请求的客户端105提供密钥KD,客户端105中的每一个被委托存储两部分秘密共享的一部分,即第一密钥,而秘密共享的另一部分由TTP 104保存。为了便与讨论,这里假设每个客户端105由优选地唯一的标识符Cj来标识。因此,存储在客户端Cj 105处的第一密钥表示为KCj,而秘密共享的对应部分(第二密钥)表示为KTj并且存储在TTP 104处。与客户端Cj 105相关联的第一密钥KCj优选是唯一的。也就是说,假设与另一个客户端Cj’105相关联的另一个第一密钥KCf与第一密钥KCj不同。因此,假设对应的第二密钥KTj和KTi’是有区别的。
[0062] 委托TTP 104代表拥有者102保存少量的数据。具体地,针对被授权对数据存储器101执行操作的每个客户端Cj 105,TTP 104保存对与客户端Cj 105相关联的秘密共享的另一部分进行表示部分的第二密钥KTj。也就是说,TTP 104保存第二密钥的集合,{KTj},针对每个被授权的客户端有一个第二密钥。
[0063] 可选地,可以使用标识符IDj,以便促进密钥的处理。为此,针对被授权对数据存储器执行操作的每个客户端Cj 105,优选唯一的标识符IDj与第二密钥KTj相关联,并且优选与第一密钥KCj一起分发给客户端Cj 105。之后,请求对数据存储器101执行操作的客户端可以向PEP 103提供标识符,然后向TTP 104转发该标识符,在TTP 104处,标识符被用于查找进行请求的客户端的对应第二密钥。标识符可以例如是与密钥相关联的客户端的标识符(即“Cj”)。在这种情况下,还可以向TTP 104提供标识符IDj,该标识符IDj在TTP 104处与第二密钥KTj存储在一起,并且随后当客户端请求对数据存储器101执行操作时被用于查找对应的第二密钥。作为备选,标识符IDj可以是第二密钥KTj的散列。在这种情况下,可以在接收第二密钥KTj时在TTP 104处产生标识符IDj,并且标识符IDj与第二密钥KTj存储在一起。
[0064] 在下文中,参照图2描述本发明的实施例,图2示出了在参照图1描述的实体之间分发密钥(具体是第一密钥和第二密钥)的方法200。注意,为了简洁,在流程和附图中省略了某些已知的安全流程。例如,有利的是,涉及下文中描述的消息交换的各方可以通过一些已知的方式来相互认证,例如使用TLS或通用引导架构(GBA),由此在所有涉及各方的可靠性/身份方面建立信任。
[0065] 方法200开始于拥有者102生成201数据密钥KD。可以使用例如app或应用之类的软件来生成201密钥KD,该软件由拥有者102所使用的设备来执行,用于访问数据存储器101。
[0066] 响应于从客户端Cj 105接收202用于授权对数据存储器101执行操作的请求,拥有者102判决203是否许可该请求。例如,可以通过电子邮件或者通知的方式来通知拥有者102,该通知在拥有者102使用来访问数据存储器101的设备上是可见的。作为备选,判决203可以基于策略。例如,基于与请求202一起接收到的凭证(例如登录信息、密码等),客户端可被授权自动地执行操作。作为其它备选,可以基于客户端所属于的组织或者客户端的地址(例如因特网协议(IP)地址或媒体访问控制(MAC)地址)来对客户端进行授权。可选地,如果访问的请求202被拒绝,则可以通知204客户端Cj 105。
[0067] 如果判决203授权客户端Cj 105对数据存储器101执行操作,则根据数据密钥KD导出205第一密钥KCj和第二密钥KTj。例如,可以随机生成第一密钥KCj,并且可以根据第一密钥KCj和数据密钥KD导出第二密钥KTj,例如KTj=KD XOR KCj,或者根据本领域已知的任何其他两部分秘密共享方法。作为备选,可以随机生成第二密钥KTj,并且可以根据第二密钥和数据密钥导出第一密钥KCj,例如KCj=KD XOR KTj。可选地,如下所述,标识符IDj可以与第二密钥KTj相关联205。
[0068] 在导出205第一密钥和第二密钥之后,客户端Cj 105被通知206其可以对数据存储器101执行操作。这可以例如受到向客户端Cj 105发送206第一密钥KCj的影响。可选地,可以将标识符IDj作为消息206的一部分向客户端Cj 105发送。响应于接收206第一密钥KCj,客户端Cj 105存储207第一密钥KCj以及,可选地,与第二密钥相关联的标识符IDj。除了向客户端105发送206第一密钥之外,拥有者102向TTP 104发送208第二密钥KTj,第二密钥KTj存储209在TTP 104处。可选地,标识符IDj与第二密钥一起发送208,并且在TTP 104处存储209。备选地,如下所述,标识符IDj在TTP 104处生成,并且与第二密钥KTj一起存储209。
[0069] 除了导出并分发第一密钥和第二密钥之外,方法200可以包括:通知210 PEP 103客户端Cj 105被授权对数据存储器101执行操作。响应于接收通知210,为了在从客户端接收到执行操作的请求时执行策略检查,PEP 103可以存储211与被授权的客户端Cj 105有关的信息,例如客户端的标识符(例如“Cj”或“j”),如下进一步所述。
[0070] 现在参照图3描述分发密钥的备选方法300。方法300开始于拥有者102登录301 PEP 103,其中按照与之前参照步骤201描述的类似方式来生成302数据密钥KD。随后,向拥D D有者102发送303密钥K,其中,为了加密和/或解密数据而在拥有者102处存储304密钥K。
[0071] 随后,PEP 103从客户端Cj 105接收305对授权对数据存储器101执行操作的请求。对应于上文参照步骤203描述的内容,向拥有者102转发306该请求,拥有者102做出是否向进行请求的客户端授权的判决307。可选地,如果判决307是拒绝该请求,则因此通知308/
309 PEP 103和客户端105。
[0072] 响应于判决307授权客户端Cj 105对数据存储器101执行操作,通知310 PEP 103。响应于接收310通知,根据上文参照步骤205的描述,PEP 103导出312第一密钥KCj和第二密钥KTj。可选地,为了在从客户端接收到执行操作的请求时执行策略检查,PEP 103可以存储
311与客户端Cj 105有关的信息(例如客户端的标识符(例如“Cj”或“j”)),如下所述。
[0073] 类似于参照图2描述的内容,向客户端Cj 105发送313第一密钥KCj,并在客户端Cj 105处存储314第一密钥KCj,以及向TTP 104发送315第二密钥KTj,并在TTP 104处存储316第二密钥KTj。可选地,导出312第一密钥和第二密钥的步骤还包括:将标识符IDj与第二密钥相关联。向客户端Cj 105发送313标识符IDj,将标识符IDj与第一密钥KCj一起存储314在客户端Cj 105处。可选地,还向TTP 104发送315标识符IDj,将标识符IDj与第二密钥KTj一起存储316在TTP 104处。备选地,在TTP 104处生成标识符IDj,并将标识符IDj与第二密钥KTj一起存储
316。例如,标识符IDj可以是第二密钥的散列。
[0074] 在PEP 103已经分别向客户端105和TTP 104分发第一密钥和第二密钥之后,PEP D103优选地删除317数据密钥K、第一密钥KCj和第二密钥KTj。
[0075] 一旦客户端105拥有其第一密钥,并且TTP 104拥有对应的第二密钥,该客户端105可以在不向拥有者102请求授权的情况下对数据存储器101执行操作,如下所述。也就是说,根据已经参照图2和图3描述的内容,在拥有者102已经授权客户端对数据存储器101执行操作之后,对于来自被授权的客户端的后续请求,不需要拥有者102的其它授权。这样的操作可例如与以下操作有关:从数据存储器101中检索数据,搜索在数据存储器101中存储的数据,或者代表拥有者102在数据存储器101中存储数据。
[0076] 将会设想到的是,客户端可以被授权对数据存储器执行任何类型的操作,或者仅执行一个或若干个具体操作。例如,某一客户端可以只被授权从数据存储器中检索数据,而另一个客户端可以被授权从数据存储器中检索数据并且在数据存储器中存储数据。可以使用例如XACML之类的策略语言来配置这样的策略。因此,参照图2,拥有者102可以通知210 PEP 103客户端Cj被授权对数据存储器105执行某种(些)类型的操作,并且PEP 103可以存储211这样的策略。对应地,参照图3,拥有者102可以通知310 PEP 103客户端Cj被授权对数据存储器105执行某种(些)类型的操作,并且PEP 103可以存储311这样的策略。
[0077] 参照图4,描述了应客户端Ck 105的请求从数据存储器101中检索数据106的方法400。假设客户端Ck 105拥有第一密钥KCk和标识符IDk,并且TTP 104拥有第二密钥KTk和标识符IDk。根据上文描述的(尤其是参照图2和图3描述的)方法来生成第一密钥KCk、第二密钥KTk和标识符IDk。
[0078] 方法400开始于客户端Ck 105向PEP 103发送401检索数据的请求。请求401包括第一密钥KCk以及标识所请求的数据的信息(在图4中示出为info),例如文件名,或者数据存储器101中存储的数据项106的任何其它合适的标识符,以及标识符IDk。优选地,但在图4中省略,在发生图4中示出的消息交换之前,PEP 103和客户端Ck 105已经例如使用TLS相互认证。响应于接收请求401,PEP 103可以可选地检查402客户端Ck 105是否被授权对数据存储器101执行操作(或所请求的操作)。这可以通过将进行请求的客户端的标识符(例如“Ck”或“k”)与由拥有者102配置的策略相比较来实现。如果客户端Ck 105未被被授权对数据存储器101执行操作(或所请求的操作),则可以可选地通知403客户端Ck 105请求被拒绝。
[0079] 随后,已经从客户端Ck 105接收401到第一密钥KCk的PEP 103向TTP 104请求404对应的第二密钥KTk。这可以例如通过将标识符IDk与请求404一起发送来实现。优选地,TTP 104还认证PEP 103(图4中未示出)。响应于接收404该请求,TTP 104例如从本地存储器(例如为已经被授权对数据存储器执行操作的所有客户端存储第二密钥的数据库)中检索405所请求的第二密钥KTk,并且向PEP 103发送406第二密钥KTk。在PEP 103处,根据从客户端Ck
105接收401的第一密钥KCk以及从TTP 104接收406的第二密钥KTk导出407数据密钥KD。按照与作为生成并分发密钥的方法200和300的一部分而导出第一密钥和第二密钥的方式相对应的方式来导出数据密钥KD。例如,可以根据KD=KCk XOR KTk来导出密钥KD。
[0080] 然后,PEP 103从数据存储器101中检索408所请求的数据,该数据存储器101查找由info标识的一个或多个数据项106,并向PEP 103发送410所请求的数据。响应于接收410所请求的加密的数据,PEP 103对接收的数据进行解密411,并向进行请求的客户端Ck 105发送412解密的数据。可选地,在向客户端105发送412之前,例如使用TLS或IPsec对数据进行重新加密。在对检索的数据进行解密411之后,除非存在来自客户端Ck 105的其它未处理D的数据检索请求,PEP 103删除413已经导出407的密钥K以及第一密钥KCj和第二密钥KCj。
[0081] 参照图5,描述了由客户端Ck 105请求搜索106数据存储器101中存储的数据的方法500。假设客户端Ck 105拥有第一密钥KCk和标识符IDk,并且TTP 104拥有第二密钥KTk和标识符IDk。根据上文描述的(尤其是参照图2和图3描述的)方法来生成第一密钥KCk、第二密钥KTk和标识符IDk。
[0082] 方法500开始于客户端Ck 105向PEP 103发送501搜索数据的请求。请求501包括第一密钥KCk和标识与搜索请求有关的数据的信息(在图5中示出为info)(即一个或多个搜索项或搜索短语)以及标识符IDk。优选地,但在图5中省略,在发生图5中示出的消息交换之前,PEP 103和客户端Ck 105已经例如使用TLS相互认证。类似于上文参照步骤402描述的,响应于接收请求501,PEP 103可以可选地检查502客户端Ck 105是否被授权对数据存储器101执行操作(或所请求的操作)。如果客户端Ck 105未被被授权对数据存储器101执行操作(或所请求的操作),则可以可选地通知503客户端Ck 105请求被拒绝。
[0083] 随后,已经从客户端Ck 105接收501到第一密钥KCk的PEP 103向TTP 104请求504对应的第二密钥KTk。这可以例如通过将标识符IDk与请求504一起发送来实现。优选地,TTP 104还认证PEP 103(图5中未示出)。响应于接收504请求,如参照图2和图3描述的,TTP 104例如从本地存储器(例如为被授权对数据存储器执行操作的所有客户端存储第二密钥的数据库)中检索505所请求的第二密钥KTk,并且向PEP103发送506第二密钥KTk。在PEP 103处,根据第一密钥KCk和第二密钥KTk导出507数据密钥KD。按照与参照步骤407描述的方式相类似D
的方式来导出数据密钥K。
[0084] PEP 103使用搜索密钥KS来对搜索项或搜索短语(即info)进行加密508,搜索密钥KS可以与数据密钥KD相同,或者与数据密钥KD不同。例如,可以根据密钥KD导出密钥KS。此外,对应于本文中关于密钥KD描述的内容,密钥KS可以划分成第一密钥和第二密钥。将认识到的S是,无论如何获得密钥K ,在数据存储器101处存储的索引以及搜索项或搜索短语必须使用相同密钥来加密。
[0085] 然后,PEP 103向数据存储器101转发509搜索请求,搜索请求509包括加密的一个或多个搜索项或搜索短语。如本领域中所知的,数据存储器101查找510匹配info的一个或多个数据项106,并向PEP 103发送511加密的数据,即匹配info的一个或多个数据项。响应于接收511加密的数据,PEP 103对接收的数据进行解密412,并向进行请求的客户端Ck 105发送513解密的数据。可选地,在向客户端105发送513之前,例如使用TLS或IPsec来对检索的数据进行重新加密。在对检索出的数据进行解密512之后,除非存在来自客户端Ck 105的其它未处理的搜索请求,PEP 103删除514已经导出507的密钥KD以及第一密钥KCj和第二密钥KCj。
[0086] 参照图6,描述应客户端Ck 105的请求在数据存储器101中搜索数据106的方法600。由于在执行存储操作中使用了与拥有者102相关联的数据密钥KD,因此代表拥有者102存储该数据。假设客户端Ck 105拥有第一密钥KCk和标识符IDk,并且TTP 104拥有第二密钥KTk和标识符IDk。根据上文描述的(尤其是参照图2和图3描述的)方法来生成第一密钥KCk、第二密钥KTk和标识符IDk。
[0087] 方法600开始于客户端Ck 105向PEP 103发送601存储数据的请求。请求601包括第一密钥KCk、要存储的数据(在图6中示出为data)以及标识符IDk。要存储的数据可以是一个或多个数据项,例如文件。优选例如使用TLS或IPsec来对请求601或至少要存储的数据进行加密。优选地,但在图6中省略,在发生图6中示出的消息交换之前,PEP 103和客户端Ck 105已经例如使用TLS相互认证。类似于上文参照步骤402描述的,响应于接收请求601,PEP 103可以可选地检查602客户端Ck 105是否被授权对数据存储器101执行操作(或所请求的操作)。如果客户端Ck 105未被被授权对数据存储器101执行操作(或所请求的操作),则可以可选地通知603客户端Ck 105请求被拒绝。
[0088] 随后,已经从客户端Ck 105接收601到第一密钥KCk的PEP 103向TTP 104请求604对应的第二密钥KTk。这可以例如通过将标识符IDk与请求604一起发送来实现。优选地,TTP 104还认证PEP 103(图6中未示出)。响应于接收604请求,如参照图2和图3描述的,TTP 104例如从本地存储器(例如为已经被许可防问数据存储器的所有客户端存储第二密钥的数据库)中检索605所请求的第二密钥KTk,并且向PEP 103发送606第二密钥KTk。在PEP 103处,根据第一密钥KCk和第二密钥KTk导出607数据密钥KD。按照与参照步骤407描述的方式相类似的方式来导出数据密钥KD。
[0089] 然后,PEP 103可以使用导出的密钥来对要存储的数据(即data)进行加密,并向数据存储器101发送609加密的数据。响应于接收609加密的数据,数据存储器101存储610数据106。可选地,数据存储器101可以通知PEP 103存储操作是否成功(图6中未示出)。在对要存储的数据进行加密608之后,除非存在来自客户端Ck 105的其它未处理的存储请求,PEP
103删除611已经导出607的密钥KD以及第一密钥KCj和第二密钥KCj。
[0090] 在本上下文中,“存储数据”并不限于在数据存储器101中存储新的数据项106,但是还包括对在数据存储器101中存储的现有数据项106进行更新。例如,客户端105可以从数据存储器101中检索数据项106,更新数据项,并且在数据存储器101中存储更新的数据项106。
[0091] 参照图7,描述了由PEP 103执行的对用于存储数据的数据存储器101执行操作的方法的实施例。使用与数据的拥有者102相关联的密钥KD来对在数据存储器101中存储的数据106进行加密。方法700包括接收703对数据存储器101执行操作的请求。从被授权对数据存储器101执行操作的一个或多个客户端中的客户端Ck 105接收请求。优选地,由PEP 103对客户端Ck 105进行认证。方法700还包括:从客户端Ck 105获取704第一密钥KCk,以及从TTP获取705第二密钥KTk。第一密钥可以例如包括在从客户端Ck 105接收703的对执行操作的请求中。方法700还包括根据第一密钥KCk和第二密钥KTk导出706密钥KD,以及使用导出的密钥KD来对数据存储器执行707操作。可选地,方法700还可以包括:针对被授权对数据存储器执行操作的每个客户端Cj 105导出701第一密钥KCj和第二密钥KTj,以及分发702密钥,即向客户端Cj 105提供第一密钥KCj并向TTP 104提供第二密钥KTj。作为附加的可选步骤,方法700可以包括:在对数据存储器101执行操作完成之后,删除708密钥。
[0092] 参照图8,描述了由TTP 104执行的对用于存储数据的数据存储器101执行操作的方法的实施例。使用与数据的拥有者102相关联的密钥KD来对在数据存储器101中存储的数据进行加密。方法800包括针对被授权对数据存储器101执行操作的每个客户端Cj 105接收并存储第二密钥KTj。第二密钥KTj被导出为使得可以根据与客户端Cj 105相关联的第一密钥KCj和第二密钥KTj导出密钥KD。方法800还包括:接收802对与请求对数据存储器101执行操作的客户端Ck 105相关联的第二密钥KTk的请求。从PEP 103接收802请求,并且该请求优选地被认证。方法800还包括向PEP 103提供803第二密钥KTk。可选地,对第二密钥的请求可以包括与第二密钥KTj相关联的标识符IDk,并且标识符IDk被用于向PEP 103提供第二密钥KTj。为此,标识符IDk可被用于在TTP 104的数据库中查找与进行请求的客户端Ck 105相关联的第二密钥。
[0093] 参照图9,描述了由客户端Ck 105执行的对用于存储数据的数据存储器101执行操作的方法的实施例。使用与数据的拥有者102相关联的密钥KD来对在数据存储器101中存储的数据进行加密。方法900包括接收并存储901第一密钥KCk。第一密钥KCk被导出为使得可以根据第一密钥KCk和与客户端Ck 105相关联的第二密钥KTk导出密钥KD。方法900还包括:向PEP 103发送903对数据存储器101执行操作的请求,以及向PEP 103提供904第一密钥KCk。第一密钥可以包括在请求中。可选地,方法900还可以包括:接收并存储902与第二密钥KTk相关联的标识符IDk,以及向PEP 103提供905标识符IDk。标识符可以包括在请求中。
[0094] 方法700、800和900的实施例可以包括根据上文描述的(尤其是参照图2至图6描述的)其它步骤。
[0095] 参照图10,示出了用于对用于存储数据的数据存储器101执行操作的PEP 103的实D施例。使用与数据的拥有者102相关联的密钥K来对在数据存储器101中存储的数据进行加密。PEP 1000包括通信接口1001、例如处理器1002的处理装置和存储器1003。存储器1003包括能够由处理器1002执行的指令1004。通信接口1001被布置为与参照图1描述的其它实体
1010通信,尤其与数据存储器101、拥有者102、TTP 104和一个或多个客户端105通信。通信可以被任何合适的有线或无线通信技术影响,例如以太网、无线LAN(WLAN)、全球移动通信系统(GSM)、通用移动通信系统(UMTS)或长期演进(LTE)。PEP 1000用于从被授权对数据存储器101执行操作的一个或多个客户端中的客户端Ck 105接收对数据存储器101执行操作的请求。PEP 1000还用于从客户端Ck 105获取第一密钥KCk,从TTP 104获取第二密钥KTk,根D D
据第一密钥KCk和第二密钥KTk导出密钥K ,以及使用导出的密钥K来对数据存储器101执行操作。为了在执行所请求的操作中使用密钥KD,PEP 100还可以在本地存储器1005中存储导出的密钥KD,该本地存储器1005可包括在PEP 1000的存储器1003中。可选地,PEP 1000还可以用于在对数据存储器101执行操作完成之后删除密钥KD。
[0096] 参照图11,示出了用于对用于存储数据的数据存储器101执行操作的TTP 104的实施例。使用与数据的拥有者102相关联的密钥KD来对在数据存储器101中存储的数据进行加密。TTP 1100包括通信接口1101、例如处理器1102的处理装置以及存储器1103。存储器1103包括能够由处理器1102执行的指令1104。通信接口1101被布置为与参照图1描述的其它实体1110通信,尤其与数据存储器101、拥有者102、PEP 103和一个或多个客户端105通信。通信可以受到任何合适的有线或无线通信技术的影响,例如以太网、WLAN、GSM、UMTS或LTE。TTP 1100用于针对被授权对数据存储器1010执行操作的一个或多个客户端105中的每个客户端Cj接收并存储第二密钥KTj。第二密钥KTj被导出为使得可以根据与客户端Cj 105相关联的第一密钥KCj和第二密钥KTj导出密钥KD。TTP 1100可以用于在本地存储器1105中存储第二密钥,本地存储器1105可以包括在TTP 1100的存储器1103中。TTP 1100还用于:从PEP 103接收对与一个或多个客户端105中的客户端Ck相关联的第二密钥KTk的请求,其中客户端Ck
105请求对数据存储器101执行操作,以及,向PEP 103提供第二密钥KTk。
[0097] 参照图12,示出了用于对用于存储数据的数据存储器101执行操作的客户端105或D客户端设备的实施例。使用与数据的拥有者102相关联的密钥K来对在数据存储器101中存储的数据进行加密。客户端1200包括通信接口1201、例如处理器1202的处理装置以及存储器1203。存储器1203包括能够由处理器1202执行的指令1204。通信接口1201被布置为与参照图1描述的其它实体1210通信,尤其与数据存储器101、拥有者102、PEP 103和TTP 104通信。通信可以受到任何合适的有线或无线通信技术的影响,例如以太网、WLAN、GSM、UMTS或LTE。客户端1200用于接收并存储第一密钥KCk。第一密钥KCk被导出为使得可以根据第一密钥KCk和与客户端Ck 105相关联的第二密钥KTk导出密钥KD。客户端1200可以用于在本地存储器1205中存储第一密钥,本地存储器1205可以包括在客户端1200的存储器1203中。客户端
1200还用于:向PEP 103发送对数据存储器101执行操作的请求,以及向PEP 103提供第一密钥KCk。
[0098] PEP 1000、TPP 1100和客户端1200的实施例还可以用于执行根据上文描述的(尤其是参照图2至图6描述的)其它步骤。
[0099] 虽然PEP 103、TTP 104和客户端105的实施例在上文中被描述为通过软件的方式(即包括能够由处理器执行的指令的计算机程序)实现,将会认识到的是,还可以使用除了处理器以外的处理装置,例如通用处理器。例如,处理装置可以是适于根据本发明的实施例(尤其是根据参照图2至图6描述的实施例)来执行的任何合适的电路。
[0100] 在图13中示出了用于对用于存储数据106的数据存储器101执行操作的PEP 103的备选实施例。使用与数据的拥有者102相关联的密钥KD来对在数据存储器101中存储的数据106进行加密。PEP 1300包括:第一模块1301,被配置为从被授权对数据存储器执行操作的一个或多个客户端105中的客户端Ck接收对数据存储器执行操作的请求;第二模块1302,被配置为从客户端Ck 105获取第一密钥KCk;第三模块1303,被配置为从TTP 104获取第二密钥KTk;第四模块1304,被配置为根据第一密钥KCk和第二密钥KTk导出密钥KD;以及,第五模块D
1305,被配置为使用导出的密钥K来对数据存储器101执行操作。
[0101] 在图14中示出了用于对用于存储数据106的数据存储器101执行操作的TTP 104的备选实施例。使用与数据的拥有者102相关联的密钥KD来对在数据存储器101中存储的数据106进行加密。TTP 1400包括:第一模块1401,被配置为针对被授权对数据存储器101执行操作的一个或多个客户端105中的每个客户端Cj,接收第二密钥KTj,该第二密钥KTj被导出为使得可以根据与客户端Cj相关联的第一密钥KCj和第二密钥KTj来导出密钥KD;第二模块1402,被配置为存储每个接收的第二密钥KTj;第三模块1403,被配置为从PEP 103接收对与一个或多个客户端105中的客户端Ck相关联的第二密钥KTk的请求,其中客户端Ck请求对数据存储器执行操作;以及,第四模块1404,被配置为向PEP 103提供第二密钥KTk。
[0102] 在图15中示出了用于对用于存储数据106的数据存储器101执行操作的客户端105的备选实施例。使用与数据的拥有者102相关联的密钥KD来对在数据存储器101中存储的数据106进行加密。客户端1500包括:第一模块1501,被配置为接收第一密钥KCk,第一密钥KCk被导出为使得可以根据第一密钥KCk和与客户端Ck相关联的第二密钥KTk导出密钥KD;第二模块1502,被配置为存储第一密钥KCk;第三密钥1503,被配置为向PEP 103发送对数据存储器执行操作的请求;以及,第四模块1504,被配置为向PEP 103提供第一密钥KCk。
[0103] PEP 1300、TPP 1400和客户端1500的实施例还可以包括被配置为执行根据上文描述的(尤其是参照图2至图6描述的)其它步骤的模块。
[0104] 包括在PEP 1300、TTP 1400和客户端1500中的模块可以通过硬件的方式(即电路或硬件与软件的组合)来实现。例如,模块可以使用处理装置(例如处理器(1002、1102和1202))以及可选地,参照图10至图12描述的存储器(1003、1103和1203)来实现。
[0105] 参照本公开,处理器可以是通用处理器或者能够执行指令的任何类型的处理装置。此外,处理器可以是随机存取存储器(RAM)、只读存储器(ROM)、硬盘、闪存等。存储介质可以是例如RAM、ROM、闪存、硬盘、CD-ROM、DVD、蓝光盘等。还将要认识到的是,计算机程序的实施例可以由电子信号、光学信号或无线电信号承载。
[0106] 本领域技术人员意识到本发明绝不限于上述实施例。相反,可以在所附的权利要求的范围内做出许多修改和变型。