CN105518696B - 对数据存储器执行操作 - Google Patents
对数据存储器执行操作 Download PDFInfo
- Publication number
- CN105518696B CN105518696B CN201380079468.8A CN201380079468A CN105518696B CN 105518696 B CN105518696 B CN 105518696B CN 201380079468 A CN201380079468 A CN 201380079468A CN 105518696 B CN105518696 B CN 105518696B
- Authority
- CN
- China
- Prior art keywords
- key
- data storage
- client
- data
- pep
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供了一种对数据存储器(101)执行操作的方法,数据存储器(101)用于存储使用与数据的拥有者(102)相关联的密钥KD来加密的数据。该方法包括:针对每个授权客户端Cj,导出第一密钥KCj和第二密钥KTj;向客户端Cj提供第一密钥KCj;以及向可信第三方(TTP)(104)提供第二密钥KTj。该方法还包括:在策略执行点(PEP)(103)处,从授权的客户端中的客户端Ck(105)接收(401)对数据存储器执行操作的请求;从客户端Ck获取第一密钥KCk,从TTP获取(404‑406)第二密钥KTk,根据第一密钥KCk和第二密钥KTk导出密钥KD;以及,使用导出的密钥KD来对数据存储器执行(408‑411)操作。公开的信任模型基于涉及客户端和TTP的两部分秘密共享。
Description
技术领域
本发明涉及对用于存储使用与数据的拥有者相关联的密钥加密的数据的数据存储器执行操作的方法、对应的计算机程序和计算机程序产品、对应的策略执行点(PEP)、对应的可信第三方(TTP),以及对应的客户端设备。
背景技术
个人资料库(PDV)是用户或代表用户的代理可以存储数据的基于云或网络的数据存储器,数据例如文件、文档、照片、医疗期刊、音乐、联系人列表、存在信息等。存储的数据可以随后由被授权的客户端(即已经被许可访问所储的数据的客户端)访问。客户端可以是数据存储器的其他用户、网络操作者、或例如个性化服务或数据共享服务的服务提供者。
已知的是,使用例如可扩展的访问控制标识语言(XACML)之类的策略语言来描述如何处理资源,例如数据或信息。在客户端可以访问资源之前,检查访问是否被策略所允许。
在并不完全信任数据存储器提供者或关联的PEP去执行访问策略时,加密成为了常见的解决方案。然而,加密的缺点在于,数据的拥有者必须在线,以便向进行请求访问的客户端提供加密数据的解密密钥。如果拥有者希望许可离线访问,必须通过除了在数据存储器中存储密钥以外的一些其它方式来向进行请求的客户端提供密钥,因为信任模型不能在数据存储器中存储密钥。无论怎样实现对密钥的访问,拥有者没有完全的控制,并且能够占有密钥的任何人都可以访问存储的数据。因此,不再保证数据的秘密性。
例如在能够使用若干个客户端并且它们中的至少几个被信任的情况下,用于控制对存储的数据的访问的已知的解决方案是使用分割密钥。存储的数据的拥有者然后可以通过以下方式来应用对密钥(或可能地,数据)的所谓秘密共享:只有若干个客户端(即一个以上的客户端)可以联合检索加密的数据。例如,拥有者可以按照这样的方式来在n个客户端之间分割密钥:至少n/2+1个客户端(即大部分客户端)被要求合作以便获得密钥或存储的数据。本领域已知若干秘密共享方法。
虽然密钥分割提供了更好地保护,但该技术的直接使用意味着持有密钥的一部分的一组客户端可以在不涉及数据的拥有者的情况下重构完整的密钥。另外,如果发生了非故意的错误,策略和访问控制的现有方案不能提供安全保护。例如,诸如由于访问策略的错误配置,数据存储器的提供者可能错误地向未经拥有者授权的客户端许可访问。
发明内容
本发明的目的是提供对于以上技术和现有技术的改进的替代。
更具体地,本发明的目的在于:提供一种对数据存储器执行操作的改进方式,该数据数据存储器用于存储使用与数据的拥有者相关联的密钥来加密的数据。具体地,本发明的目的在于:针对请求对数据存储器执行操作的客户端设备(在本公开中也被称作客户端)提供改进的访问控制。
如独立权利要求所定义的,通过本发明的不同方面来实现本发明的这些目的和其他目的。从属权利要求表征本发明的实施例。
根据本发明的第一方案,提供了对用于存储数据的数据存储器执行操作的方法。使用与数据的拥有者相关联的密钥KD来对在数据存储器中存储的数据进行加密。该方法包括:针对被授权对数据存储器执行操作的一个或多个客户端中的每个客户端Cj,导出第一密钥KCj和第二密钥KTj;向客户端Cj提供第一密钥KCj;以及向TTP提供第二密钥KTj。导出第一密钥KCj和第二密钥KTj,使得可以根据第一密钥KCj和第二密钥KTj导出密钥KD。该方法还包括:在PEP处,从一个或多个客户端中的客户端Ck接收对数据存储器执行操作的请求;从客户端Ck获取第一密钥KCk,从TTP获取第二密钥KTk,根据第一密钥KCk和第二密钥KTk导出密钥KD;以及,使用导出的密钥KD来对数据存储器执行操作。
根据本发明的第二方案,提供了对用于存储数据的数据存储器执行操作的方法。使用与数据的拥有者相关联的密钥KD来对在数据存储器中存储的数据进行加密。该方法由PEP执行。该方法包括:从被授权对数据存储器执行操作的一个或多个客户端中的客户端Ck接收对数据存储器执行操作的请求;从客户端Ck获取第一密钥KCk,从TTP获取第二密钥KTk,根据第一密钥KCk和第二密钥KTk导出密钥KD;以及,使用导出的密钥KD来对数据存储器执行操作。
根据本发明的第三方案,提供了对用于存储数据的数据存储器执行操作的方法。使用与数据的拥有者相关联的密钥KD来对在数据存储器中存储的数据进行加密。该方法由TTP执行。该方法包括:针对被授权对数据存储器执行操作的一个或多个客户端中的每个客户端Cj,接收第二密钥KTj并存储第二密钥KTj。第二密钥KTj被导出为使得可以根据与客户端Cj相关联的第一密钥KCj和第二密钥KTj导出密钥KD。方法还包括:从PEP接收对与一个或多个客户端中的客户端Ck相关联的第二密钥KTk的请求,其中该客户端Ck请求对数据存储器执行操作,以及,向PEP提供第二密钥KTk。
根据本发明的第四方案,提供了一种对用于存储数据的数据存储器执行操作的方法。使用与数据的拥有者相关联的密钥KD来对在数据存储器中存储的数据进行加密。该方法由客户端Ck执行。方法包括接收第一密钥KCk和存储第一密钥KCk。第一密钥KCk被导出为使得可以根据第一密钥KCk和与客户端Ck相关联的第二密钥KTk导出密钥KD。方法还包括:向PEP发送对数据存储器执行操作的请求,并且向PEP提供第一密钥KCk。
根据本发明的第五方案,提供了一种用于对用于存储数据的数据存储器执行操作的PEP。使用与数据的拥有者相关联的密钥KD来对在数据存储器中存储的数据进行加密。PRP包括处理装置,适于:从被授权对数据存储器执行操作的一个或多个客户端中的客户端Ck接收对数据存储器执行操作的请求;从客户端Ck获取第一密钥KCk,从TTP获取第二密钥KTk,根据第一密钥KCk和第二密钥KTk导出密钥KD;以及,使用导出的密钥KD来对数据存储器执行操作。
根据本发明的第六方案,提供了一种用于对用于存储数据的数据存储器执行操作的TTP。使用与数据的拥有者相关联的密钥KD来对在数据存储器中存储的数据进行加密。TTP包括处理装置,适于:针对被授权对数据存储器执行操作的一个或多个客户端中的每个客户端Cj,接收第二密钥KTj并存储第二密钥KTj。第二密钥KTj被导出为使得可以根据与客户端Cj相关联的第一密钥KCj和第二密钥KTj导出密钥KD。处理装置还适于:从PEP接收对与一个或多个客户端中的客户端Ck相关联的第二密钥KTk的请求,其中客户端Ck请求对数据存储器执行操作,以及,向PEP提供第二密钥KTk。
根据本发明的第七方案,提供了一种用于对用于存储数据的数据存储器执行操作的客户端Ck。使用与数据的拥有者相关联的密钥KD来对在数据存储器中存储的数据进行加密。客户端包括处理装置,适于接收第一密钥KCk并且存储第一密钥KCk。第一密钥KCk被导出为使得可以根据第一密钥KCk和与客户端Ck相关联的第二密钥KTk导出密钥KD。处理装置还适于:向PEP发送对数据存储器执行操作的请求,并且向PEP提供第一密钥KCk。
根据本发明的其它方案,提供了包括指令的计算机程序。该指令适于:如果在至少一个处理器上执行该指令,则实现根据上述的本申请的第一、第二、第三或第四方案中的任意一个的方法的实施例。
根据本发明的其它方案,提供了计算机可读存储介质。计算机可读存储介质上存储了根据本发明的对应方案的计算机程序。
本发明利用这样的理解:可以基于本文公开的信任模型来实现对存储在数据存储器中的数据的改进的访问控制。除了数据存储器和数据的所有者,本发明的实施例中涉及的实体是PEP、TTP和请求对数据存储器执行操作的一个或多个客户端。对数据存储器执行的操作包括但不限于:检索在数据存储器中存储的数据,搜索数据存储器中存储的数据,在数据存储器中存储数据,对在数据存储器中存储的数据执行计算/转换,以及删除在数据存储器中存储的数据。
例如PDV的数据存储器被部分信任到保存(host)拥有者的数据的程度,数据例如文件、文档、图片、音乐、视频、关系数据库、图形数据库、NoSQL数据库等。这里,假设数据存储器的提供者可能发生错误,例如许可未被数据的拥有者授权的客户端的访问。此外,并不假设数据存储器提供者提供对例如黑客的数据/密钥盗窃进行防御的充分的安全防护。因此,在数据存储器中存储的数据必须由数据存储器提供者不可获得的数据密钥KD来加密。
PEP可能与或可能不与数据存储器共处一地。PEP代表数据的拥有者来实现访问控制策略。在此假设,例如由于访问策略的错误配置,PEP可能造成与访问控制有关的错误。PEP可以在有限的时间段内拥有用于对在数据存储器中存储的数据进行加密的密钥KD。从(PEP的)用户满足于将他们的数据和他们密钥暂时对PEP可用,感觉确定PEP不会向另一方暴露该数据或密钥的意义上来说,PEP是被信任的。
TTP是与数据存储器及其客户端分开的部分可信的第三方,并且被信任代表拥有者保管少量数据。然而,并不完全信任TTP提供防御黑客盗窃数据或密钥的安全防护。TTP可以由网络操作者来例如提供或管理,网络操作者例如电信网络的运营商。
客户端(例如希望防问拥有者的数据的数据存储器的用户或服务提供者)请求对数据存储器执行操作。即使拥有者离线,授权的客户端应当能够根据拥有者的策略来执行操作。客户端可以被授权以不同的方式对数据存储器执行操作。例如,客户端可以应请求(即,单个地)而被授权。作为备选,客户端可以作为一组客户端的一部分被授权,例如属于已经被授权的组织的所有客户端,如从数据存储器提供者处租赁存储资源的公司的所有计算机。
客户端或客户端设备可以是由用户使用来访问数据存储器的计算设备,例如,计算机、移动电话、智能电话、用户设备(UE)、平板计算机、数码相机等。客户端设备能够例如在通信网络上与PEP通信。
这里提出的解决方案基于KD数据密钥的秘密共享的多个“并行副本”或“并行实例”,该密钥KD与数据的拥有者相关联并用于对数据存储器中存储的数据进行加密。副本或实例中的每一个涉及TTP和其中一个客户端。也就是说,针对秘密共享的每个并行实例,在客户端中的一个与TTP之间共享密钥KD。这可以使用任意类型的两部分秘密共享来实现,例如基于Shamir的多项式插值的方案、Blakely的投影几何方案、或基于作为Vernam和Shannon的“一次性填充加密(one-time pad encryption)”的衍生物模M添加的方案。在本公开中,将使用模2方案(或“XOR”)的Vernam/Shannon方案的简单实例用于说明的目的。
为此,在数据存储器中存储的使用密钥KD加密的数据的拥有者是唯一具有对整个密钥KD的无限制访问的一方。拥有者、PEP或者任何其它被合理地信任的实体可以按照本领域已知的任何合适的方式生成和/或分发密钥KD。每个被授权对数据存储器执行操作的客户端只拥有密钥的一部分(也被称作第一密钥),而TTP拥有对应的另一部分密钥,即第二密钥。为了对数据存储器执行操作(例如检索数据),在可执行操作之前,将第一密钥与对应的第二密钥组合。密钥的这两部分在PEP处组合。
根据本发明的实施例,方法还包括:针对一个或多个客户端中的每个客户端Cj,将标识符IDj与第二密钥KTj相关联,并向客户端Cj提供标识符IDj。将标识符与第二密钥相关联并且向客户端提供标识符的步骤优选由PEP执行,并且备选地可由客户端执行。优选地,这些步骤与导出第一密钥和第二密钥相结合来执行。此外,在PEP处,响应于从客户端Ck接收对数据存储器执行操作的请求,从客户端Ck获取标识符IDk并且使用标识符IDk从TTP获取第二密钥KTk。将标识符与每个第二密钥相关联有利于促进TTP对第二密钥的管理。
根据本发明的实施例,方法还包括:在PEP处,存储与哪个客户端被授权对数据存储器执行操作有关的信息,响应于客户端Ck接收对数据存储器执行操作的请求,验证客户端Ck是否被授权对数据存储执行操作。如果客户端Ck被授权对数据存储器执行操作,则对数据存储器仅执行所请求的操作。在从TTP请求第二密钥之前应用策略检查,对密钥进行组合,并对数据存储器执行操作的优点在于,在早期阶段,可以拒绝或简单地不处理来自未授权的客户端的请求。由此,减少了利用来自未授权客户端的请求的过载攻击的风险。作为备选,PEP可以附加地存储与客户端可以执行哪种类型的操作有关的信息。因此,PEP可以验证客户端Ck是否被授权对数据存储器执行所请求的操作,而不是验证客户端Ck是否被授权去执行一般操作,并且如果客户端Ck被授权去执行所请求的操作,则只执行所请求的操作。
根据本发明的实施例,针对每个客户端Cj,随机导出第一密钥KCj和第二密钥KTj中的一个密钥,并且根据KD和随机导出的密钥来导出第一密钥KCj和第二密钥KTj中的另一个密钥。备选地,可以伪随机地导出第一密钥KCj和第二密钥KTj中的一个密钥。作为其它备选,可以使用本领域已知的两部分秘密共享的任何已知方式。
根据本发明的实施例,方法还包括:在PEP处,在对数据存储器执行操作完成之后,删除密钥KD。也就是说,在执行操作(例如解码从数据存储器中检索的数据)之后,PEP丢弃密钥KD。优选地,还删除根据其导出密钥KD的第一密钥KCk和第二密钥KTk。其优点在于,减少了密钥暴露和恶意使用的风险。
根据本发明的实施例,对数据存储器执行操作的请求与检索数据存储器中存储的数据有关。此外,对数据存储器执行操作包括从数据存储器获取所请求的数据,以及使用导出的密钥KD来对所获取的数据进行解密。
根据本发明的实施例,对数据存储器执行操作还包括向客户端Ck发送解码的数据。可选地,在向客户端发送之前,例如使用传输层安全协议(TLS)或IPsec对所请求的数据进行重新加密。
根据本发明的实施例,对数据存储器执行操作的请求包括标识所请求的数据的信息,例如统一资源定位符(URL)、统一资源标识符(URI)、或文件名。此外,从数据存储器获取所请求的数据包括:向数据存储器发送标识所请求的数据的信息,以及从数据存储器接收所请求的数据的至少一部分。该部分由标识所请求的数据的信息来标识。
根据本发明的实施例,数据存储器中存储的数据的可搜索索引存储在数据存储器中。使用密钥KS来对可搜索索引进行加密。此外,从客户端Ck接收的标识所请求的数据的信息包括至少一个搜索项,在向数据存储器发送加密的该至少一个搜索项之前,使用密钥KS来加密该至少一个搜索项。索引和该至少一个搜索项必须使用相同的密钥来加密。
根据本发明的实施例,对数据存储器执行操作的请求与在数据存储器中存储数据有关。此外,对数据存储器执行操作包括:从客户端Ck获取要存储的数据,使用导出的密钥KD来对要存储的数据进行加密,以及向数据存储器发送加密的数据。
即使已经在一些情况下参照本发明的第一方面描述了本发明的优点,相应的理由还适用于本发明的其他方面的实施例。
当研读以下的详细公开、附图和所附的权利要求时,本发明的附加目的、特征和优点将变得显而易见。本领域技术人员意识到可以组合本发明的不同特征,来创建除以下描述的实施例以外的实施例。
附图说明
参照附图,将通过以下对本发明的实施例的说明性且非限制性的详细描述来更好地理解本发明的以上加目的、特征和益处和附加目的、特征和益处,其中:
图1示出了根据本发明的实施例的用于对数据存储器执行操作的***的不同实体。
图2示出了根据本发明的实施例的生成并分发密钥的方法。
图3示出了根据本发明的另一个实施例的生成并分发密钥的方法。
图4示出了根据发明的实施例的从数据存储器中检索数据的方法。
图5示出了根据发明的实施例的在数据存储器中搜索数据的方法。
图6示出了根据发明的实施例的在数据存储器中存储数据的方法。
图7示出了根据本发明的实施例的由PEP执行的对数据存储器执行操作的方法。
图8示出了根据本发明的实施例的由PEP执行的对数据存储器执行操作的方法。
图9示出了根据本发明的实施例的由客户端执行的对数据存储器执行操作的方法。
图10示出了根据本发明的实施例的用于对数据存储器执行操作的PEP。
图11示出了根据本发明的实施例的用于对数据存储器执行操作的TTP。
图12示出了根据本发明的实施例的用于对数据存储器执行操作的客户端设备。
图13示出了根据本发明的另一实施例的用于对数据存储器执行操作的PEP。
图14示出了根据本发明的另一实施例的用于对数据存储器执行操作的TTP。
图15示出了根据本发明的另一实施例的用于对数据存储器执行操作的客户端设备。
所有的附图不一定按比例绘制,并且通常只示出了必要的部分,以便对本发明进行解释,其中可以省略或仅仅介绍其它部分。
具体实施方式
以下将参照附图更全面地描述本发明,附图中示出了本发明的特定实施例。然而,本发明可以按多种不同形式来体现,并且不应当被解释为受到本文阐述的实施例的限制。相反,通过示例给出这些实施例,使得本公开将透彻和完整,并且向本领域技术人员充分地传达本发明的范围。
在下文中,参照图1描述本发明的实施例所基于的不同实体,图1示出了用于对用来存储数据106的数据存储器101执行操作的***100,数据106是使用与数据106的拥有者102相关联的数据密钥KD来进行加密的。除了数据存储器101(其可以是PDV或任何其它基于网络或云的数据存储器)和拥有者102之外,***100包括PEP 103、TTP 104、以及一个或多个客户端设备105(也被称作客户端105)。为了简洁,在图1中只示出了两个客户端设备105(分别具有标识符Cj和Cj’),但是本发明的实施例并不限于此,并可以涉及任意数量的客户端105。
注意,假设在这里只使用一个密钥KD来对拥有者的数据进行加密。当然,可以直接将本文公开的情况扩展到不同类型或种类的数据,每种类型或种类与各自的数据密钥相关联。也就是说,拥有者可以使用一个数据密钥来对图片进行加密,使用另一数据密钥来对音乐文件进行加密,并且使用又一数据密钥来对与工作有关的文件进行加密。根据本发明的实施例,通过这种方式,拥有者可以分别控制对不同类别的数据的访问。
在图1中,还示出了实体101至105必须访问哪个密钥和有关的信息。假设数据存储器101不访问数据密钥KD、第一密钥或第二密钥中的任意一个。相反,在向数据存储器101转移数据106之前,使用数据密钥KD来对在数据存储器101中存储的数据106进行加密,或者在从数据存储器101中检索出数据106之后,使用数据密钥KD来对在数据存储器101中存储的数据106进行解密。
将用于对在数据存储器101中存储的数据106进行加密的密钥KD与拥有者102相关联。也就是说,假设拥有者102是本文描述的实体中唯一具有对密钥KD的无限制访问权限的实体。可以按照本领域已知的任何合适的方式来生成密钥KD和/或向拥有者102分发密钥KD。例如,可以由拥有者102生成密钥,例如由拥有者102使用的设备上执行的应用,或者由拥有者102请求的PEP 103。备选地,可以由在这样的设备上设置的硬件组件(即电路)来生成密钥KD。
假设,在直到完成对数据存储器的操作(例如检索数据106、搜索数据106、或存储数据106)的有限时间段内,PEP 103没有对任何密钥的无限制防问权限,但是被委托保留数据密钥KD。因此,当不再需要时,PEP 103被信任删除数据密钥KD。虽然在本发明的范围之外,应当注意的是,可以通过本领域已知的各种方式来获得确保适当的密钥处理(以及一般来说,确保PEP的正确操作),例如可信的计算技术,诸如PEP的配置/软件的远程认证。
为了使客户端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’是有区别的。
委托TTP 104代表拥有者102保存少量的数据。具体地,针对被授权对数据存储器101执行操作的每个客户端Cj 105,TTP 104保存对与客户端Cj 105相关联的秘密共享的另一部分进行表示部分的第二密钥KTj。也就是说,TTP 104保存第二密钥的集合,{KTj},针对每个被授权的客户端有一个第二密钥。
可选地,可以使用标识符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存储在一起。
在下文中,参照图2描述本发明的实施例,图2示出了在参照图1描述的实体之间分发密钥(具体是第一密钥和第二密钥)的方法200。注意,为了简洁,在流程和附图中省略了某些已知的安全流程。例如,有利的是,涉及下文中描述的消息交换的各方可以通过一些已知的方式来相互认证,例如使用TLS或通用引导架构(GBA),由此在所有涉及各方的可靠性/身份方面建立信任。
方法200开始于拥有者102生成201数据密钥KD。可以使用例如app或应用之类的软件来生成201密钥KD,该软件由拥有者102所使用的设备来执行,用于访问数据存储器101。
响应于从客户端Cj 105接收202用于授权对数据存储器101执行操作的请求,拥有者102判决203是否许可该请求。例如,可以通过电子邮件或者通知的方式来通知拥有者102,该通知在拥有者102使用来访问数据存储器101的设备上是可见的。作为备选,判决203可以基于策略。例如,基于与请求202一起接收到的凭证(例如登录信息、密码等),客户端可被授权自动地执行操作。作为其它备选,可以基于客户端所属于的组织或者客户端的地址(例如因特网协议(IP)地址或媒体访问控制(MAC)地址)来对客户端进行授权。可选地,如果访问的请求202被拒绝,则可以通知204客户端Cj 105。
如果判决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。
在导出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。
除了导出并分发第一密钥和第二密钥之外,方法200可以包括:通知210 PEP 103客户端Cj 105被授权对数据存储器101执行操作。响应于接收通知210,为了在从客户端接收到执行操作的请求时执行策略检查,PEP 103可以存储211与被授权的客户端Cj 105有关的信息,例如客户端的标识符(例如“Cj”或“j”),如下进一步所述。
现在参照图3描述分发密钥的备选方法300。方法300开始于拥有者102登录301PEP 103,其中按照与之前参照步骤201描述的类似方式来生成302数据密钥KD。随后,向拥有者102发送303密钥KD,其中,为了加密和/或解密数据而在拥有者102处存储304密钥KD。
随后,PEP 103从客户端Cj 105接收305对授权对数据存储器101执行操作的请求。对应于上文参照步骤203描述的内容,向拥有者102转发306该请求,拥有者102做出是否向进行请求的客户端授权的判决307。可选地,如果判决307是拒绝该请求,则因此通知308/309 PEP 103和客户端105。
响应于判决307授权客户端Cj 105对数据存储器101执行操作,通知310 PEP 103。响应于接收310通知,根据上文参照步骤205的描述,PEP 103导出312第一密钥KCj和第二密钥KTj。可选地,为了在从客户端接收到执行操作的请求时执行策略检查,PEP 103可以存储311与客户端Cj 105有关的信息(例如客户端的标识符(例如“Cj”或“j”)),如下所述。
类似于参照图2描述的内容,向客户端Cj 105发送313第一密钥KCj,并在客户端Cj105处存储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可以是第二密钥的散列。
在PEP 103已经分别向客户端105和TTP 104分发第一密钥和第二密钥之后,PEP103优选地删除317数据密钥KD、第一密钥KCj和第二密钥KTj。
一旦客户端105拥有其第一密钥,并且TTP 104拥有对应的第二密钥,该客户端105可以在不向拥有者102请求授权的情况下对数据存储器101执行操作,如下所述。也就是说,根据已经参照图2和图3描述的内容,在拥有者102已经授权客户端对数据存储器101执行操作之后,对于来自被授权的客户端的后续请求,不需要拥有者102的其它授权。这样的操作可例如与以下操作有关:从数据存储器101中检索数据,搜索在数据存储器101中存储的数据,或者代表拥有者102在数据存储器101中存储数据。
将会设想到的是,客户端可以被授权对数据存储器执行任何类型的操作,或者仅执行一个或若干个具体操作。例如,某一客户端可以只被授权从数据存储器中检索数据,而另一个客户端可以被授权从数据存储器中检索数据并且在数据存储器中存储数据。可以使用例如XACML之类的策略语言来配置这样的策略。因此,参照图2,拥有者102可以通知210PEP 103客户端Cj被授权对数据存储器105执行某种(些)类型的操作,并且PEP 103可以存储211这样的策略。对应地,参照图3,拥有者102可以通知310 PEP 103客户端Cj被授权对数据存储器105执行某种(些)类型的操作,并且PEP 103可以存储311这样的策略。
参照图4,描述了应客户端Ck 105的请求从数据存储器101中检索数据106的方法400。假设客户端Ck 105拥有第一密钥KCk和标识符IDk,并且TTP 104拥有第二密钥KTk和标识符IDk。根据上文描述的(尤其是参照图2和图3描述的)方法来生成第一密钥KCk、第二密钥KTk和标识符IDk。
方法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请求被拒绝。
随后,已经从客户端Ck 105接收401到第一密钥KCk的PEP 103向TTP 104请求404对应的第二密钥KTk。这可以例如通过将标识符IDk与请求404一起发送来实现。优选地,TTP104还认证PEP 103(图4中未示出)。响应于接收404该请求,TTP 104例如从本地存储器(例如为已经被授权对数据存储器执行操作的所有客户端存储第二密钥的数据库)中检索405所请求的第二密钥KTk,并且向PEP 103发送406第二密钥KTk。在PEP 103处,根据从客户端Ck105接收401的第一密钥KCk以及从TTP 104接收406的第二密钥KTk导出407数据密钥KD。按照与作为生成并分发密钥的方法200和300的一部分而导出第一密钥和第二密钥的方式相对应的方式来导出数据密钥KD。例如,可以根据KD=KCk XOR KTk来导出密钥KD。
然后,PEP 103从数据存储器101中检索408所请求的数据,该数据存储器101查找由info标识的一个或多个数据项106,并向PEP 103发送410所请求的数据。响应于接收410所请求的加密的数据,PEP 103对接收的数据进行解密411,并向进行请求的客户端Ck 105发送412解密的数据。可选地,在向客户端105发送412之前,例如使用TLS或IPsec对数据进行重新加密。在对检索的数据进行解密411之后,除非存在来自客户端Ck 105的其它未处理的数据检索请求,PEP 103删除413已经导出407的密钥KD以及第一密钥KCj和第二密钥KCj。
参照图5,描述了由客户端Ck 105请求搜索106数据存储器101中存储的数据的方法500。假设客户端Ck 105拥有第一密钥KCk和标识符IDk,并且TTP 104拥有第二密钥KTk和标识符IDk。根据上文描述的(尤其是参照图2和图3描述的)方法来生成第一密钥KCk、第二密钥KTk和标识符IDk。
方法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请求被拒绝。
随后,已经从客户端Ck 105接收501到第一密钥KCk的PEP 103向TTP 104请求504对应的第二密钥KTk。这可以例如通过将标识符IDk与请求504一起发送来实现。优选地,TTP104还认证PEP 103(图5中未示出)。响应于接收504请求,如参照图2和图3描述的,TTP 104例如从本地存储器(例如为被授权对数据存储器执行操作的所有客户端存储第二密钥的数据库)中检索505所请求的第二密钥KTk,并且向PEP103发送506第二密钥KTk。在PEP 103处,根据第一密钥KCk和第二密钥KTk导出507数据密钥KD。按照与参照步骤407描述的方式相类似的方式来导出数据密钥KD。
PEP 103使用搜索密钥KS来对搜索项或搜索短语(即info)进行加密508,搜索密钥KS可以与数据密钥KD相同,或者与数据密钥KD不同。例如,可以根据密钥KD导出密钥KS。此外,对应于本文中关于密钥KD描述的内容,密钥KS可以划分成第一密钥和第二密钥。将认识到的是,无论如何获得密钥KS,在数据存储器101处存储的索引以及搜索项或搜索短语必须使用相同密钥来加密。
然后,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。
参照图6,描述应客户端Ck 105的请求在数据存储器101中搜索数据106的方法600。由于在执行存储操作中使用了与拥有者102相关联的数据密钥KD,因此代表拥有者102存储该数据。假设客户端Ck 105拥有第一密钥KCk和标识符IDk,并且TTP 104拥有第二密钥KTk和标识符IDk。根据上文描述的(尤其是参照图2和图3描述的)方法来生成第一密钥KCk、第二密钥KTk和标识符IDk。
方法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请求被拒绝。
随后,已经从客户端Ck 105接收601到第一密钥KCk的PEP 103向TTP 104请求604对应的第二密钥KTk。这可以例如通过将标识符IDk与请求604一起发送来实现。优选地,TTP104还认证PEP 103(图6中未示出)。响应于接收604请求,如参照图2和图3描述的,TTP 104例如从本地存储器(例如为已经被许可防问数据存储器的所有客户端存储第二密钥的数据库)中检索605所请求的第二密钥KTk,并且向PEP 103发送606第二密钥KTk。在PEP 103处,根据第一密钥KCk和第二密钥KTk导出607数据密钥KD。按照与参照步骤407描述的方式相类似的方式来导出数据密钥KD。
然后,PEP 103可以使用导出的密钥来对要存储的数据(即data)进行加密,并向数据存储器101发送609加密的数据。响应于接收609加密的数据,数据存储器101存储610数据106。可选地,数据存储器101可以通知PEP 103存储操作是否成功(图6中未示出)。在对要存储的数据进行加密608之后,除非存在来自客户端Ck 105的其它未处理的存储请求,PEP103删除611已经导出607的密钥KD以及第一密钥KCj和第二密钥KCj。
在本上下文中,“存储数据”并不限于在数据存储器101中存储新的数据项106,但是还包括对在数据存储器101中存储的现有数据项106进行更新。例如,客户端105可以从数据存储器101中检索数据项106,更新数据项,并且在数据存储器101中存储更新的数据项106。
参照图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密钥。
参照图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相关联的第二密钥。
参照图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。标识符可以包括在请求中。
方法700、800和900的实施例可以包括根据上文描述的(尤其是参照图2至图6描述的)其它步骤。
参照图10,示出了用于对用于存储数据的数据存储器101执行操作的PEP 103的实施例。使用与数据的拥有者102相关联的密钥KD来对在数据存储器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,根据第一密钥KCk和第二密钥KTk导出密钥KD,以及使用导出的密钥KD来对数据存储器101执行操作。为了在执行所请求的操作中使用密钥KD,PEP 100还可以在本地存储器1005中存储导出的密钥KD,该本地存储器1005可包括在PEP 1000的存储器1003中。可选地,PEP 1000还可以用于在对数据存储器101执行操作完成之后删除密钥KD。
参照图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的请求,其中客户端Ck105请求对数据存储器101执行操作,以及,向PEP 103提供第二密钥KTk。
参照图12,示出了用于对用于存储数据的数据存储器101执行操作的客户端105或客户端设备的实施例。使用与数据的拥有者102相关联的密钥KD来对在数据存储器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。
PEP 1000、TPP 1100和客户端1200的实施例还可以用于执行根据上文描述的(尤其是参照图2至图6描述的)其它步骤。
虽然PEP 103、TTP 104和客户端105的实施例在上文中被描述为通过软件的方式(即包括能够由处理器执行的指令的计算机程序)实现,将会认识到的是,还可以使用除了处理器以外的处理装置,例如通用处理器。例如,处理装置可以是适于根据本发明的实施例(尤其是根据参照图2至图6描述的实施例)来执行的任何合适的电路。
在图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;以及,第五模块1305,被配置为使用导出的密钥KD来对数据存储器101执行操作。
在图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。
在图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。
PEP 1300、TPP 1400和客户端1500的实施例还可以包括被配置为执行根据上文描述的(尤其是参照图2至图6描述的)其它步骤的模块。
包括在PEP 1300、TTP 1400和客户端1500中的模块可以通过硬件的方式(即电路或硬件与软件的组合)来实现。例如,模块可以使用处理装置(例如处理器(1002、1102和1202))以及可选地,参照图10至图12描述的存储器(1003、1103和1203)来实现。
参照本公开,处理器可以是通用处理器或者能够执行指令的任何类型的处理装置。此外,处理器可以是随机存取存储器(RAM)、只读存储器(ROM)、硬盘、闪存等。存储介质可以是例如RAM、ROM、闪存、硬盘、CD-ROM、DVD、蓝光盘等。还将要认识到的是,计算机程序的实施例可以由电子信号、光学信号或无线电信号承载。
本领域技术人员意识到本发明绝不限于上述实施例。相反,可以在所附的权利要求的范围内做出许多修改和变型。
Claims (35)
1.一种对数据存储器(101)执行操作的方法(200;300;400;500;600),所述数据存储器(101)用于存储使用与数据的拥有者(102)相关联的密钥KD来加密的数据(106),所述方法包括:
针对被授权对所述数据存储器执行操作的一个或多个客户端(105)中的每一个客户端Cj:
导出(205;312)第一密钥KCj和第二密钥KTj,使得能够根据所述第一密钥KCj和所述第二密钥KTj导出所述密钥KD,
向所述客户端Cj提供(206;313)所述第一密钥KCj,以及
向可信第三方“TTP”(104)提供(208;315)所述第二密钥KTj,以及
在策略执行点“PEP”(103)处:
从所述一个或多个客户端中的客户端Ck接收(401;501;601)对所述数据存储器执行操作的请求,
从所述客户端Ck获取(401;501;601)所述第一密钥KCk,
从所述TTP获取(404-406;504-506;604-606)所述第二密钥KTk,
根据所述第一密钥KCk和所述第二密钥KTk导出(407;507;607)所述密钥KD,以及
使用所导出的密钥KD来对所述数据存储器执行(408-411;508-512;608-610)操作,
其中,所述数据存储器(101)、所述客户端Ck、所述PEP和所述TTP是不同的实体。
2.根据权利要求1所述的方法,还包括:
针对所述一个或多个客户端中的每个客户端Cj:
将标识符IDj与所述第二密钥KTj相关联(205;312),以及
向所述客户端Cj提供(206;313)所述标识符IDj,
其中,响应于所述客户端Ck的对所述数据存储器执行操作的请求,从所述客户端Ck获取所述标识符IDk,并且使用所述标识符IDk从所述TTP获取所述第二密钥KTk。
3.根据权利要求1或2所述的方法,还包括,在所述PEP处:
存储(211;311)与哪些客户端被授权对所述数据存储器执行操作有关的信息,以及
响应于所述客户端Ck的对所述数据存储器执行操作的请求,验证(402;502;602)所述客户端Ck是否被授权对所述数据存储器执行操作,
其中,仅在所述客户端Ck被授权(402;502;602)对所述数据存储器执行操作的情况下,才执行所请求的对所述数据存储器的操作。
4.根据权利要求1或2所述的方法,其中,针对每个客户端Cj,随机导出所述第一密钥KCj和所述第二密钥KTj中的一个密钥,并且根据所述KD和随机导出的密钥来导出所述第一密钥KCj和所述第二密钥KTj中的另一个密钥。
5.根据权利要求1或2所述的方法,其中,对所述数据存储器执行操作的请求(401;501)与检索所述数据存储器中存储的数据(106)有关,且对所述数据存储器执行操作包括:
从所述数据存储器获取(408-410;509-511)所请求的数据,以及
使用所导出的密钥KD来对所获取的数据进行解密(411;512)。
6.根据权利要求5所述的方法,其中,对所述数据存储器执行操作的请求(401)包括标识所请求的数据的信息,且从所述数据存储器获取所请求的数据包括:
向所述数据存储器发送(408;509)所述标识所请求的数据的信息,
在所述数据存储器处查找(409;510)所请求的数据,以及
从所述数据存储器接收(410;511)所请求的数据的至少一部分,所述部分被所述标识所请求的数据的信息所标识。
7.根据权利要求6所述的方法,其中,所述数据存储器中存储的数据(106)的可搜索索引存储在所述数据存储器中,其中使用密钥KS来对所述可搜索索引进行加密,从所述客户端Ck接收(501)的所述标识所请求的数据的信息包括至少一个搜索项,且在向所述数据存储器发送(509)加密的所述至少一个搜索项之前,使用密钥KS对所述至少一个搜索项进行加密(508)。
8.一种对数据存储器(101)执行操作的方法(700),所述数据存储器(101)用于存储使用与数据的拥有者(102)相关联的密钥KD来加密的数据(106),所述方法由策略执行点“PEP”(103)执行,所述方法包括:
从被授权对所述数据存储器执行操作的一个或多个客户端(105)中的客户端Ck接收对所述数据存储器执行操作的请求(401;501;601;703),
从所述客户端Ck获取(401;501;601;704)第一密钥KCk,
从可信第三方“TTP”(104)获取(404,406;504,506;604,606;705)第二密钥KTk,
根据所述第一密钥KCk和所述第二密钥KTk导出(407;507;607;706)密钥KD,以及
使用所导出的密钥KD来对所述数据存储器执行(408,410,411;509,511,512;608,609;707)操作,
其中,所述数据存储器(101)、所述客户端Ck、所述PEP和所述TTP是不同的实体。
9.根据权利要求8所述的方法,还包括:
针对所述一个或多个客户端中的每个客户端Cj:
将标识符IDj与所述第二密钥KTj相关联(205;312),以及
向所述客户端Cj提供(206;313)所述标识符IDj,
其中,响应于所述客户端Ck的对所述数据存储器执行操作的请求,从所述客户端Ck获取所述标识符IDk并且使用所述标识符IDk从所述TTP获取所述第二密钥KTk。
10.根据权利要求8或9所述的方法,还包括:
存储(211;311)与哪些客户端被授权对所述数据存储器执行操作有关的信息,以及
响应于所述客户端Ck的对所述数据存储器执行操作的请求,验证(402;502;602)所述客户端Ck是否被授权对所述数据存储器执行操作,
其中,仅在所述客户端Ck被授权对所述数据存储器执行操作的情况下,才执行所请求的对所述数据存储器的操作。
11.根据权利要求8或9所述的方法,还包括:
针对所述一个或多个客户端中的每个客户端Cj:
导出(205;312;701)所述第一密钥KCj和所述第二密钥KTj,使得能够根据所述第一密钥KCj和所述第二密钥KTj导出所述密钥KD,
向所述客户端Cj提供(206;313;702)所述第一密钥KCj,以及
向所述TTP提供(208;315;702)所述第二密钥KTj。
12.根据权利要求11所述的方法,其中,针对每个客户端Cj,随机导出所述第一密钥KCj和所述第二密钥KTj中的一个密钥,并且根据所述KD和随机导出的密钥来导出所述第一密钥KCj和所述第二密钥KTj中的另一个密钥。
13.根据权利要求8或9所述的方法,其中,对所述数据存储器执行操作的请求(401;501)与检索所述数据存储器中存储的数据(106)有关,且对所述数据存储器执行操作包括:
从所述数据存储器获取(408-410;509-511)所请求的数据,以及
使用所导出的密钥KD来对所获取的数据进行解密(411;512)。
14.根据权利要求13所述的方法,其中,对所述数据存储器执行操作的请求包括标识所请求的数据的信息,且从所述数据存储器获取所请求的数据包括:
向所述数据存储器发送(408;509)所述标识所请求的数据的信息,以及
从所述数据存储器接收(410;511)所请求的数据的至少一部分,所述部分被所述标识所请求的数据的信息所标识。
15.根据权利要求14所述的方法,其中,所述数据存储器中存储的数据(106)的可搜索索引存储在所述数据存储器中,使用密钥KS来对所述可搜索索引进行加密,从所述客户端Ck接收(501)的所述标识所请求的数据的信息包括至少一个搜索项,且在向所述数据存储器发送(509)加密的所述至少一个搜索项之前,使用密钥KS对所述至少一个搜索项进行加密(508)。
16.一种计算机可读存储介质(1003),其上存储包括指令(1004)的计算机程序,如果在至少一个处理器(1002)上执行所述指令,所述指令适于实现根据权利要求8至15中任一项所述的方法。
17.一种对数据存储器(101)执行操作的方法(800),所述数据存储器(101)用于存储使用与数据的拥有者(102)相关联的密钥KD来加密的数据(106),所述方法由可信第三方“TTP”(104)执行,所述方法包括:
针对被授权对所述数据存储器执行操作的一个或多个客户端(105)中的每一个客户端Cj:
接收(208;315;801)第二密钥KTj,所述第二密钥KTj被导出为使得能够根据与所述客户端Cj相关联的第一密钥KCj和所述第二密钥KTj导出所述密钥KD,以及
存储(209;316;801)所述第二密钥KTj,以及
从策略执行点“PEP”(103)接收(404;504;604;802)对与所述一个或多个客户端中的客户端Ck相关联的第二密钥KTk的请求,所述客户端Ck请求对所述数据存储器执行操作,以及
向PEP提供(405,406;505,506;605,606;803)所述第二密钥KTk,
其中,所述数据存储器(101)、所述客户端Cj、所述PEP和所述TTP是不同的实体。
18.根据权利要求17所述的方法,还包括:
针对所述一个或多个客户端中的每个客户端Cj:
接收(208;315)与所述第二密钥KTj相关联的标识符IDj,以及
存储(209;316)所述标识符IDj,
其中,对所述第二密钥KTk的请求(404;504;604)包括标识符IDk,并且标识符IDk用于向所述PEP提供(405,406;505,506;605,606)所述第二密钥KTj。
19.一种计算机可读存储介质(1103),其上存储包括指令(1104)的计算机程序,如果在至少一个处理器(1102)上执行所述指令,所述指令适于实现根据权利要求17或18所述的方法。
20.一种对数据存储器(101)执行操作的方法(900),所述数据存储器(101)用于存储使用与数据的拥有者(102)相关联的密钥KD来加密的数据(106),所述方法由客户端Ck(105)执行,所述方法包括:
接收(206;313;901)第一密钥KCk,所述第一密钥KCk被导出为使得能够根据所述第一密钥KCk和与所述客户端Ck相关联的第二密钥KTk导出所述密钥KD,
存储(207;314;901)所述第一密钥KCk,
向策略执行点“PEP”(103)发送(401;501;601;903)对所述数据存储器执行操作的请求,以及
向所述PEP提供(401;501;601;904)所述第一密钥KCk,
其中,所述数据存储器(101)、所述客户端Ck和所述PEP是不同的实体。
21.根据权利要求20所述的方法,还包括:
接收(206;313;902)与所述第二密钥KTk相关联的标识符IDk,
存储(207;314;902)所述标识符IDk,以及
向所述PEP提供(401;501;601;905)所述标识符IDk。
22.一种计算机可读存储介质(1203),其上存储包括指令(1204)的计算机程序,如果在至少一个处理器(1202)上执行所述指令,所述指令适于实现根据权利要求20或21所述的方法。
23.一种用于对数据存储器(101)执行操作的策略执行点“PEP”(103、1000),所述数据存储器(101)用于存储使用与数据的拥有者(102)相关联的密钥KD来加密的数据(106),所述PEP包括适于以下操作的处理装置(1002):
从被授权对所述数据存储器执行操作的一个或多个客户端(105)中的客户端Ck接收对所述数据存储器执行操作的请求(401;501;601;703),
从所述客户端Ck获取(401;501;601)第一密钥KCk,
从可信第三方“TTP”(104)获取(404,406;504,506;604,606)第二密钥KTk,
根据所述第一密钥KCk和所述第二密钥KTk导出(407;507;607)所述密钥KD,以及
使用所导出的密钥KD对所述数据存储器执行(408,410,411;509,511,512;608,609)操作,
其中,所述数据存储器(101)、所述客户端Ck、所述PEP和所述TTP是不同的实体。
24.根据权利要求23所述的PEP,所述处理装置还适于:
针对所述一个或多个客户端中的每个客户端Cj:
将标识符IDj与所述第二密钥KTj相关联(205;312),以及
向所述客户端Cj提供(206;313)所述标识符IDj,
其中,响应于所述客户端Ck的对所述数据存储器执行操作的请求,从所述客户端Ck获取所述标识符IDk并且使用所述标识符IDk从所述TTP获取所述第二密钥KTk。
25.根据权利要求23或24所述的PEP,所述处理装置还适于:
存储(211;311)与哪些客户端被授权对所述数据存储器执行操作有关的信息,以及
响应于所述客户端Ck的对所述数据存储器执行操作的请求,验证(402;502;602)所述客户端Ck是否被授权对所述数据存储器执行操作,
其中,仅在所述客户端Ck被授权对所述数据存储器执行操作的情况下,才执行所请求的对所述数据存储器的操作。
26.根据权利要求23或24所述的PEP,所述处理装置还适于:
针对所述一个或多个客户端中的每个客户端Cj:
导出(205;312)所述第一密钥KCj和所述第二密钥KTj,使得能够根据所述第一密钥KCj和所述第二密钥KTj导出所述密钥KD,
向所述客户端Cj提供(206;313)所述第一密钥KCj,以及
向所述TTP提供(208;315)所述第二密钥KTj。
27.根据权利要求26所述的PEP,其中,针对每个客户端Cj,随机导出所述第一密钥KCj和所述第二密钥KTj中的一个密钥,并且根据所述KD和随机导出的密钥来导出所述第一密钥KCj和所述第二密钥KTj中的另一个密钥。
28.根据权利要求23或24所述的PEP,其中,对所述数据存储器执行操作的请求(401;501)与检索所述数据存储器中存储的数据有关,且为了对所述数据存储器执行操作,所述处理装置还适于:
从所述数据存储器获取(408-410;509-511)所请求的数据,以及
使用所导出的密钥KD来对所获取的数据进行解密(411;512)。
29.根据权利要求28所述的PEP,其中,对所述数据存储器执行操作的请求包括标识所请求的数据的信息,并且,为了从所述数据存储器获取所请求的数据,所述处理装置还适于:
向所述数据存储器发送(408;509)所述标识所请求的数据的信息,以及
从所述数据存储器接收(410;511)所请求的数据的至少一部分,所述部分被所述标识所请求的数据的信息所标识。
30.根据权利要求29所述的PEP,其中,所述数据存储器中存储的数据的可搜索索引存储在所述数据存储器中,使用密钥KS来对所述可搜索索引进行加密,从所述客户端Ck接收(501)的所述标识所请求的数据的信息包括至少一个搜索项,且在向所述数据存储器发送(509)加密的所述至少一个搜索项之前,使用密钥KS对所述至少一个搜索项进行加密(508)。
31.一种用于对数据存储器(101)执行操作的可信第三方“TTP”(104;1100),所述数据存储器(101)用于存储使用与数据的拥有者(102)相关联的密钥KD来加密的数据(106),所述TTP包括适于以下操作的处理装置(1102):
针对被授权对所述数据存储器执行操作的一个或多个客户端(105)中的每一个客户端Cj:
接收(208;315)第二密钥KTj,所述第二密钥KTj被导出为使得能够根据与所述客户端Cj相关联的第一密钥KCj和所述第二密钥KTj导出所述密钥KD,以及
存储(209;316)所述第二密钥KTj,
从策略执行点“PEP”接收(404;504;604)对与一个或多个客户端中的客户端Ck相关联的第二密钥KTk的请求,所述客户端Ck请求对所述数据存储器执行操作,以及
向所述PEP提供(405,406;505,506;605,606)所述第二密钥KTk,
其中,所述数据存储器(101)、所述客户端Cj、所述PEP和所述TTP是不同的实体。
32.根据权利要求31所述的TTP,所述处理装置还适于:
针对所述一个或多个客户端中的每个客户端Cj:
接收(208;315)与所述第二密钥KTj相关联的标识符IDj,以及
存储(209;316)所述标识符IDj,
其中,对所述第二密钥KTk的请求(404;504;604)包括标识符IDk,且标识符IDk用于向所述PEP提供(405,406;505,506;605,606)所述第二密钥KTj。
33.一种用于对数据存储器(101)执行操作的客户端Ck(105、1200),所述数据存储器(101)用于存储使用与数据的拥有者(102)相关联的密钥KD来加密的数据(106),所述客户端包括适于以下操作的处理装置(1202):
接收(206;313)第一密钥KCk,所述第一密钥KCk被导出为使得能够根据所述第一密钥KCk和与所述客户端Ck相关联的第二密钥KTk导出所述密钥KD,
存储(207;314)所述第一密钥KCk,
向策略执行点“PEP”发送(401;501;601)对所述数据存储器执行操作的请求,以及
向所述PEP提供(401;501;601)所述第一密钥KCk,
其中,所述数据存储器(101)、所述客户端Ck和所述PEP是不同的实体。
34.根据权利要求33所述的客户端,所述处理装置还适于:
接收(206;313)与所述第二密钥KTk相关联的标识符IDk,
存储(207;314)所述标识符IDk,以及
向所述PEP提供(401;501;601)所述标识符IDk。
35.根据权利要求33或34所述的客户端,其中,所述客户端是计算机、移动电话、智能电话、用户设备、平板计算机和数码相机之一。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/SE2013/051042 WO2015034407A1 (en) | 2013-09-09 | 2013-09-09 | Performing an operation on a data storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105518696A CN105518696A (zh) | 2016-04-20 |
CN105518696B true CN105518696B (zh) | 2019-03-22 |
Family
ID=49293819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380079468.8A Active CN105518696B (zh) | 2013-09-09 | 2013-09-09 | 对数据存储器执行操作 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9754118B2 (zh) |
EP (1) | EP3044720A1 (zh) |
CN (1) | CN105518696B (zh) |
WO (1) | WO2015034407A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2569605A (en) * | 2017-12-21 | 2019-06-26 | Sita Inf Networking Computing Usa Inc | System, device and method for processing data |
CN108595291B (zh) * | 2018-04-01 | 2021-08-31 | 山东协和学院 | 一种医疗数据备份*** |
CN109981678B (zh) * | 2019-04-08 | 2021-04-09 | 北京深思数盾科技股份有限公司 | 一种信息同步方法及装置 |
KR20220052016A (ko) | 2020-10-20 | 2022-04-27 | 삼성전자주식회사 | 스토리지 장치에서의 보안 동작을 위한 키 교환 방법 및 이를 이용한 접근 권한 이관 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6724893B1 (en) * | 1996-10-11 | 2004-04-20 | The United States Of America As Represented By The National Security Agency | Method of passing a cryptographic key that allows third party access to the key |
US8472627B2 (en) * | 2000-10-30 | 2013-06-25 | Geocodex Llc | System and method for delivering encrypted information in a communication network using location indentity and key tables |
JP2006345160A (ja) * | 2005-06-08 | 2006-12-21 | Base Technology Inc | 情報通信システム |
US20090235303A1 (en) * | 2005-08-08 | 2009-09-17 | Masaru Yamaoka | Encrypted content and decryption key providing system |
EP2128867A1 (en) * | 2008-05-28 | 2009-12-02 | Sony DADC Austria AG | Method for controlling access to content on data carrier |
EP2180419A1 (en) * | 2008-10-23 | 2010-04-28 | ST Wireless SA | Method of storing data in a memory device and a processing device for processing such data |
US8862889B2 (en) * | 2011-07-02 | 2014-10-14 | Eastcliff LLC | Protocol for controlling access to encryption keys |
EP2759088A1 (en) * | 2011-09-23 | 2014-07-30 | Koninklijke KPN N.V. | Secure distribution of content |
-
2013
- 2013-09-09 US US14/915,861 patent/US9754118B2/en active Active
- 2013-09-09 CN CN201380079468.8A patent/CN105518696B/zh active Active
- 2013-09-09 EP EP13771240.2A patent/EP3044720A1/en not_active Withdrawn
- 2013-09-09 WO PCT/SE2013/051042 patent/WO2015034407A1/en active Application Filing
-
2017
- 2017-07-31 US US15/664,969 patent/US10740478B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20170329982A1 (en) | 2017-11-16 |
US10740478B2 (en) | 2020-08-11 |
EP3044720A1 (en) | 2016-07-20 |
CN105518696A (zh) | 2016-04-20 |
US20160210464A1 (en) | 2016-07-21 |
US9754118B2 (en) | 2017-09-05 |
WO2015034407A1 (en) | 2015-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6941146B2 (ja) | データセキュリティサービス | |
US11470054B2 (en) | Key rotation techniques | |
TWI744371B (zh) | 資料儲存方法、資料獲取方法、裝置及系統 | |
US9465947B2 (en) | System and method for encryption and key management in cloud storage | |
US10298555B2 (en) | Securing files under the semi-trusted user threat model using per-file key encryption | |
US11329962B2 (en) | Pluggable cipher suite negotiation | |
US10187373B1 (en) | Hierarchical, deterministic, one-time login tokens | |
US9973481B1 (en) | Envelope-based encryption method | |
US10084789B2 (en) | Peer to peer enterprise file sharing | |
US9219722B2 (en) | Unclonable ID based chip-to-chip communication | |
CN103763319A (zh) | 一种移动云存储轻量级数据安全共享方法 | |
JP2016510962A (ja) | 暗号化ネットワークストレージスペース | |
CN103973736A (zh) | 一种数据共享的方法及装置 | |
JP2013511771A (ja) | ドキュメント共有のための方法及び装置 | |
GB2587569A (en) | Controlling access to traversal using replays around network address translation (TURN) servers using trusted single-use credentials | |
US11595398B1 (en) | Access control for named domain networking | |
CN114239046A (zh) | 数据共享方法 | |
KR20230041971A (ko) | 분산적 컴퓨터 네트워크 상에서 안전한 데이터 전송을 위한 방법, 장치 및 컴퓨터 판독가능 매체 | |
WO2022148182A1 (zh) | 一种密钥管理方法及相关设备 | |
US10740478B2 (en) | Performing an operation on a data storage | |
US20240039709A1 (en) | Method and apparatus for sharing encrypted data, and device and readable medium | |
Chinnasamy et al. | A scalable multilabel‐based access control as a service for the cloud (SMBACaaS) | |
US9344427B1 (en) | Facilitating multiple authentications | |
JP2015033068A (ja) | ファイル共有システム、情報提供装置、情報取得装置、及びその方法、プログラム | |
Zhang | Research on the application of computer big data technology in cloud storage security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |