CN115804060A - 分发加密的数据对象 - Google Patents
分发加密的数据对象 Download PDFInfo
- Publication number
- CN115804060A CN115804060A CN202180048911.XA CN202180048911A CN115804060A CN 115804060 A CN115804060 A CN 115804060A CN 202180048911 A CN202180048911 A CN 202180048911A CN 115804060 A CN115804060 A CN 115804060A
- Authority
- CN
- China
- Prior art keywords
- key
- sender
- encrypted
- index
- kms
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Radar Systems Or Details Thereof (AREA)
Abstract
各方面包括至少部分地基于会话密钥来加密数据以生成加密的数据。至少部分地基于发送方密钥来加密会话密钥以生成加密的会话密钥。将对加密的发送方密钥索引的请求被发送到KMS,该请求包括发送方密钥的索引和一个或多个附加密钥中的每一个的索引。从KMS接收加密的发送方密钥索引。生成包括加密的数据、加密的会话密钥、一个或多个附加密钥中的每一个的索引、以及加密的发送方密钥索引的对象。至少部分地基于接收方是否有权访问发送方密钥和一个或多个附加密钥来控制经由对象对数据的访问。
Description
技术领域
本发明总地涉及数据安全性,更具体地说,涉及分发加密的数据对象,其中用于加密的加密密钥被包括作为数据对象的元数据。
背景技术
数据保护和安全性是每年数十亿美元的产业,但是数据泄露仍然发生。这是由于许多原因,包括保护数据的固有困难、相互竞争的保护标准、许多不同的硬件和软件解决方案、以及实现保护的个人或组织的技能水平差异很大。
随着在线存储不断增加的数据量,网络和云解决方案上的数据安全性持续成为日益增长的关注。保护数据的一种方式是利用密码术。密码术使用加密密钥和加密算法来加密和解密数据,同时在两个或更多个系统之间发送数据。网络和云解决方案上的数据保护可以采取两种基本形式,即动态保护和静态保护。动态保护保护网络上的数据,静态保护保护存储中的数据。
目前,诸如对称密钥之类的加密密钥主要通过在发送到另一侧之前使用非对称密钥加密该对称密钥、通过在发送到另一侧之前在第二对称密钥下加密该对称密钥、或者通过使用纸张递送该对称密钥来进行交换。这些常用方法中的每一种都有各种问题。最具挑战性的问题之一是必须在双方之间建立直接关系以交换对称密钥。建立和管理这种直接关系是有挑战性的,并且当密钥快速到期和/或许多用户正在使用该系统时,挑战倍增。其它问题包括密钥的缓慢传送和/或被交换的密钥的安全性漏洞。
即使可以很好地实现密钥交换,密钥也必须被安全地管理和存储,并且允许跟踪什么密钥用于哪些数据。通常,可以基于业务逻辑来选择给定密钥以保护数据。发送方和接收方都必须知道业务逻辑是什么,以成功地确定特定密钥应该用于给定的一条数据。为此,双方必须具有预定义关系,以便交换关于密钥选择方法和业务逻辑的必要信息。
已经使用了密钥管理的不同方法,以试图提供安全密钥并避免对交换加密数据的各方之间的直接关系的需要。密钥管理可以由密钥管理系统(KMS)来执行,该密钥管理系统生成、分发并且更一般地管理用于客户端(设备、应用等)的密码密钥。KMS可以处理安全性的若干方面,范围从密钥的安全生成到客户端系统上的安全密钥处理和存储。KMS通常包括用于密钥生成、分发和替换的后端功能。它还可以集成用于在客户端设备上注入密钥、存储和管理密钥的特定客户端功能。
现代KMS具有缺点。例如,它们不支持多个感兴趣方在创建加密的数据对象之后独立地控制对加密的数据对象的访问而不需要与对象的接收方共享多个密钥的能力。此外,当前的方法要求加密的数据对象的接收方发送存储在KMS中的加密密钥的索引或其它标识符,以便取得加密密钥并将其发送给接收方。如果多个数据对象用相同的密钥加密并且接收方对密钥的访问已经被撤销,则这可能导致安全性漏洞。因此,尽管KMS在加密密钥的管理方面提供了优势,但是可以改进安全性和访问控制。
发明内容
本发明的一个或多个实施例涉及分发具有加密信息作为元数据的加密的数据对象。一种非限制性示例计算机实现的方法包括至少部分地基于会话密钥来加密数据以生成加密的数据。至少部分地基于先前从密钥管理系统(KMS)获得的发送方密钥来加密会话密钥,以生成加密的会话密钥。将对加密的发送方密钥索引的请求发送到KMS,该请求包括发送方密钥的索引和一个或多个附加密钥中的每一个的索引。接收由KMS至少部分地基于发送方密钥和一个或多个附加密钥而生成的加密的发送方密钥索引。生成包括加密的数据、加密的会话密钥、一个或多个附加密钥中的每一个的索引、以及加密的发送方密钥索引的对象。至少部分地基于接收方是否有权访问发送方密钥和一个或多个附加密钥来控制经由对象对数据的访问。
本发明的一个或多个实施例涉及一种用于分发具有加密信息作为元数据的加密的数据对象的系统。该系统的非限制性示例包括具有计算机可读指令的存储器和用于执行计算机可读指令的一个或多个处理器。计算机可读指令可以实现上述方法。
本发明的一个或多个实施例涉及一种用于分发具有加密信息作为元数据的加密的数据对象的计算机程序产品。该计算机程序产品包括具有与其一起体现的程序指令的计算机可读存储介质。程序指令可由处理器执行以使处理器执行上述方法。
因此,有利地,促进在多方之间共享数据,同时保护加密密钥和加密密钥索引不被分发给所有各方。此外,数据的发送方和其它感兴趣的各方通过使其密钥无效以使加密的数据不可用来控制对数据的访问。
除上述内容之外,或者作为上述内容的替代,在本发明的一个或多个实施例中,还至少部分地基于发送方密钥和一个或多个附加密钥是否有效来控制经由对象对数据的访问。因此,有利地,可以通过发送方使发送方密钥无效或通过授权方使附加密钥之一无效来撤销对数据的访问。
除上述内容之外,或者作为上述内容的替代,在本发明的一个或多个实施例中,通过向KMS发送使发送方密钥无效的请求,来防止接收方经由对象访问数据。因此,有利地,发送方密钥的管理可以被集中化。
除上述内容之外,或者作为上述内容的替代,在本发明的一个或多个实施例中,通过向KMS发送使一个或多个附加密钥中的至少一个无效的请求,来防止接收方经由对象访问数据。因此,有利地,发送方密钥的管理和对数据的访问可以被集中。
除上述内容之外,或者作为上述内容的替代,在本发明的一个或多个实施例中,响应于KMS向有权访问发送方密钥的用户的列表添加或从该列表中移除请求方,来修改经由对象对数据的访问。因此,有利地,可以基于用户是否在已被给予对发送方密钥的访问权的用户组中来管理对数据的访问权。
除上述内容之外,或者作为上述内容的替代,在本发明的一个或多个实施例中,响应于KMS向有权访问一个或多个附加密钥中的附加密钥的用户的列表中添加或从该列表中移除接收方,来修改经由对象对数据的访问。因此,有利地,可以基于用户是否在已经被给予对附加密钥的访问权的用户组中来管理对数据的访问权。
除上述内容之外,或者作为上述内容的替代,在本发明的一个或多个实施例中,对象被发送到接收方。因此,有利地,数据和访问管理是分布式的。
除上述内容之外,或者作为上述内容的替代,在本发明的一个或多个实施例中,对象经由网络被发送到接收方。因此,有利地,数据和访问管理是分布式的。
本发明的一个或多个实施例涉及一种用于分发具有加密信息作为元数据的加密的数据对象的计算机实现的方法。计算机实现的方法的非限制性示例包括接收包括加密的数据、加密的会话密钥、一个或多个附加密钥中的每一个的索引、以及加密的发送方密钥索引的对象。向KMS发送对与加密的发送方密钥索引相对应的发送方密钥的请求。请求来自请求方,并且请求包括加密的发送方密钥索引和一个或多个附加密钥中的每一个的索引。响应于从KMS接收到发送方密钥,至少部分地基于发送方密钥来对加密的会话密钥进行解密以生成会话密钥,并且至少部分地基于会话密钥来对加密的数据进行解密以生成未加密的数据。响应于由KMS确定请求方有权访问发送方密钥和一个或多个附加密钥中的每一个,由KMS将发送方密钥发送给请求方。
本发明的一个或多个实施例涉及一种用于分发具有加密信息作为元数据的加密的数据对象的系统。该系统的非限制性示例包括具有计算机可读指令的存储器和用于执行计算机可读指令的一个或多个处理器。计算机可读指令可以实现上述方法。
本发明的一个或多个实施例涉及一种用于分发具有加密信息作为元数据的加密的数据对象的计算机程序产品。该计算机程序产品包括具有与其一起体现的程序指令的计算机可读存储介质。程序指令可由处理器执行以使处理器执行上述方法。
因此,有利地,促进在多方之间共享数据,同时保护加密密钥和加密密钥索引不被分发给所有各方。此外,数据的发送方和其它感兴趣的各方通过使它们的密钥无效以使加密的数据不可用来控制对数据的访问。
除上述内容之外,或者作为上述内容的替代,在本发明的一个或多个实施例中,响应于由KMS确定请求方无权访问发送方密钥,从KMS接收错误消息。因此,有利地,在对对象的访问被拒绝时,请求方被通知。
除上述内容之外,或者作为上述内容的替代,在本发明的一个或多个实施例中,当发送方密钥无效时,确定请求方无权访问发送方密钥。因此,有利地,对数据的访问可通过发送方使发送方密钥无效来撤销。
除上述内容之外,或者作为上述内容的替代,在本发明的一个或多个实施例中,响应于由KMS确定请求方无权访问至少一个或多个附加密钥,从KMS接收错误消息。因此,有利地,在对对象的访问被拒绝时,请求方被通知。
除上述内容之外,或者作为上述内容的替代,在本发明的一个或多个实施例中,当一个或多个附加密钥中的至少一个无效时,确定请求方无权访问一个或多个密钥中的所有密钥。因此,有利地,对数据的访问可以通过授权的奇偶校验使附加密钥之一无效来撤销。
本发明的一个或多个实施例涉及一种用于分发具有加密信息作为元数据的加密的数据对象的计算机实现的方法。计算机实现的方法的非限制性示例包括接收对发送方密钥的请求,请求来自请求方,并且请求包括加密的发送方密钥索引和一个或多个附加密钥中的每一个的索引。确定请求方是否有权访问由一个或多个附加密钥中的每一个的索引所标识的一个或多个附加密钥。响应于确定请求方有权访问一个或多个附加密钥,对加密的发送方密钥索引进行解密以生成发送方密钥索引,并且至少部分地基于发送方密钥索引来定位发送方密钥。此外,确定请求方是否有权访问发送方密钥。基于确定请求方有权访问发送方密钥,发送方密钥被发送给请求方。
本发明的一个或多个实施例涉及一种用于分发具有加密信息作为元数据的加密的数据对象的系统。该系统的非限制性示例包括具有计算机可读指令的存储器和用于执行计算机可读指令的一个或多个处理器。计算机可读指令可以实现上述方法。
本发明的一个或多个实施例涉及一种用于分发具有加密信息作为元数据的加密的数据对象的计算机程序产品。该计算机程序产品包括具有与其一起体现的程序指令的计算机可读存储介质。程序指令可由处理器执行以使处理器执行上述方法。
因此,有利地,促进在多方之间共享数据,同时保护加密密钥和加密密钥索引不被分发给所有方。此外,数据的发送方和其它感兴趣的各方通过使它们的密钥无效以使加密数据不可用来控制对数据的访问。
除上述内容之外,或者作为上述内容的替代,在本发明的一个或多个实施例中,至少部分地基于发送方密钥索引和一个或多个附加密钥中的每一个的索引,生成加密的发送方密钥索引。因此,有利地,对数据的访问由多个密钥保护,每个密钥可以由不同的授权用户控制。
除上述内容之外,或者作为上述内容的替代,在本发明的一个或多个实施例中,生成加密的发送方密钥索引包括至少部分地基于一个或多个附加密钥中的每一个的索引来定位一个或多个附加密钥,并将它们组合成组合的附加密钥。至少部分地基于组合的附加密钥来加密发送方密钥索引。因此,有利地,对数据的访问由多个密钥保护,每个密钥可以由不同的授权用户控制。
通过本发明的技术实现了附加的技术特征和益处。本发明的实施例和方面在本文中详细描述,并且被认为是所要求保护的主题的一部分。为了更好地理解,参考详细描述和附图。
附图说明
在说明书的结尾处的权利要求中特别指出并清楚地要求保护了本文描述的专有权的细节。从下面结合附图的详细描述中,本发明的实施例的前述和其它特征和优点将变得显而易见,附图中:
图1描绘了根据本发明的一个或多个实施例的用于分发具有加密信息作为元数据的加密的数据对象的环境的框图;
图2描绘了本发明的一个或多个实施例所使用的加密方案的框图;
图3描绘了根据本发明的一个或多个实施例的用于创建加密的数据对象的方法的流程图;
图4描绘了根据本发明的一个或多个实施例的加密的数据对象;
图5描绘了根据本发明的一个或多个实施例的用于生成加密的发送方密钥索引的方法的流程图;
图6描绘了根据本发明的一个或多个实施例的用于对包含在加密的数据对象中的数据进行解密的方法的流程图;
图7描绘根据本发明的一个或多个实施例的用于生成发送方密钥的方法的流程图;
图8描绘了根据本发明的一个或多个实施例的云计算环境;
图9描绘了根据本发明的一个或多个实施例的抽象模型层;以及
图10描绘了根据本发明的一个或多个实施例的用于加密对象以使得加密的对象的创建者可以被识别的系统。
这里描绘的图是说明性的。在不脱离本发明的范围的情况下,存在对本文中描述的图或操作的许多变型。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。此外,术语“耦合”及其变型描述了在两个元件之间具有通信路径,并且不暗示元件之间的直接连接而在它们之间没有中间元件/连接。所有这些变型都被认为是说明书的一部分。
具体实施方式
本发明的一个或多个实施例提供了加密的数据对象,其具有用于加密的数据对象的加密密钥,该加密密钥可作为加密的数据对象内的元数据而可用。根据本发明的一个或多个实施例,一方,即发送方,用发送方密钥和属于一个或多个感兴趣方的一个或多个附加加密密钥来加密数据。这允许发送方和任何其它感兴趣方使它们的密钥无效并使加密的数据不可用。
本发明的一个或多个实施例促进在多方(例如,发送方和接收方)之间共享数据,同时保护加密密钥不被分发给所有各方。通过使用一组密钥来保护发送方密钥信息,一个或多个实施例提供了一种设施,用于多方通过允许或不允许访问发送方密钥索引来控制对数据的同意。此外,发送方可以具有关于允许或不允许访问的最终发言权,因为发送方控制其特定的发送方密钥。
本发明的一个或多个实施例将关于发送方密钥和一个或多个附加加密密钥的信息与被加密的数据一起打包成加密的数据对象。根据本发明的一个或多个实施例,这里被称为“加密的数据对象”的受保护数据包括一个或多个周边密钥索引、加密的发送方密钥索引、加密的会话密钥和加密的数据。
如这里所使用的,术语“会话密钥”是指由加密算法用来加密由诸如发送处理器之类的发送方加密的数据的加密密钥。根据本发明的一个或多个实施例,发送方可以确定生成会话密钥的最佳方式。会话密钥可以从密钥管理系统(KMS)获得,或者它可以由发送方以某一间隔(例如,每个对象、每天、每一万个对象等)动态地生成。根据本发明的一个或多个实施例,会话密钥(与对象一起封装)由KMS生成,而不是由KMS存储。
如这里所使用的,术语“加密的会话密钥”是指在已经用发送方密钥加密之后的会话密钥。
如这里所使用的,术语“发送方密钥”是指由加密算法用来加密会话密钥的加密密钥。发送方密钥是发送方用于数据传送的加密密钥。根据本发明的一个或多个实施例,对发送方密钥的访问由KMS控制。KMS存储可经由发送方密钥索引访问的发送方密钥。发送方密钥索引是由KMS用来定位对应的发送方密钥的标识符(例如,标签、句柄)。
如这里所使用的,术语“周边密钥”是定义有权访问数据的一方或多方(例如,接收方)的组的密钥。组的示例包括但不限于美国的用户或人力资源部门的用户,或特定用户的标识符。周边密钥为用户提供了一种对打开数据的能力感兴趣的方式。对周边的访问可由除发送方以外的一方授予、修改和/或撤消,并由此允许另一方控制对数据的访问。根据本发明的一个或多个实施例,对周边密钥的访问由KMS控制。KMS存储一个或多个周边密钥。周边密钥索引是由KMS用来定位对应的周边密钥的标识符(例如,标签、句柄)。
如这里所使用的,术语“组合周边密钥”是指从一个或多个周边密钥导出的复合加密密钥。根据本发明的一个或多个实施例,通过对一个或多个周边密钥的值执行异或(XOR)来导出组合周边密钥。组合周边密钥提供了使用多个密钥部分来创建复合密钥的能力。当创建封装或加密的数据对象时,创建复合密钥,然后当加密的数据对象被打开或未加密时,重新创建复合密钥。如果用于创建组合周边密钥的任何密钥部分在打开时不可用,加密的数据将从这一点开始不可用,因为将不可能解密加密的数据。
如本文所使用的,术语“加密的发送方密钥索引”是指在利用组合周边密钥索引对KMS中的发送方密钥进行加密之后的发送方密钥的索引。
根据本发明的一个或多个实施例,当加密的数据对象被创建时,发送方使用发送方的发送方密钥来加密会话密钥。如前所述,发送方密钥由KMS控制,并且发送方请求KMS用组合周边密钥来加密其发送方密钥索引。组合周边密钥包括至少一个密钥(例如,组织的密钥),然而,它也可以包括更多密钥(例如,接收方密钥、具有其他所有者的附加密钥、随机密钥组成部分等)。
根据本发明的一个或多个实施例,当加密的数据对象的接收方(“接收方”)想要打开加密的数据对象时,其将需要向KMS发送周边密钥索引和加密的发送方密钥索引,并且KMS将向接收方提供可以用于对会话密钥进行解密的发送方密钥。根据一个或多个实施例,KMS在接收到周边密钥索引和加密的发送方密钥索引时,将首先重新组合该组合周边密钥,并且如果组合周边密钥的任何组成部分对于请求方不可用,则操作将失败并且接收方将不能够解密加密的数据对象中的加密的数据。
如果组合周边密钥的所有组成部分都可用,则KMS将使用它们来解密发送方密钥索引。然后,KMS使用发送方密钥索引来在KMS中找到发送方密钥。如果发送方密钥对请求方不可用,则操作将失败,并且接收方将不能解密加密的数据。如果所有的密钥材料都是可用的并且可由请求方访问,则由KMS将发送方密钥返回到加密的数据对象的请求接收方。根据本发明的一个或多个实施例,当请求方被给予访问密钥的许可时,密钥可由请求方访问。
本发明的一个或多个实施例的上述方面通过促进数据的共享同时保护加密密钥和加密密钥索引不被分发给所有各方来解决现有技术的一个或多个缺点。此外,使用该组周边密钥来保护发送方密钥信息,允许多方通过允许或不允许访问发送方密钥索引来控制对数据的访问。发送方对请求方访问数据的能力有最终发言权,因为发送方控制对其对应的发送方密钥的访问。
此外,本发明的一个或多个实施例向接收方提供了明文(未加密的)发送方密钥,然而接收方将不能将发送方密钥绑定回其对应的发送方密钥索引。对数据的访问可由使其密钥(发送方密钥)无效的发送方和/或由使作为周边密钥的一部分的密钥中的任何一个无效的发送方或具有权限的其它感兴趣方来撤消。
此外,本发明的一个或多个实施例向接收方发送周边密钥索引而不是周边密钥,从而降低了周边密钥被损害的风险。
此外,本发明的一个或多个实施例提供了密钥使用的缩放,使得相同的会话密钥可用于对于发送方系统完全本地的大量数据。然后,可以由KMS执行用于会话密钥的最终包封操作,其是小操作(例如,使用相对少量的计算资源)。
本发明的一个或多个实施例可以利用周边密钥来定义有权访问对应周边密钥的一个或多个用户的组,并且与用于加密数据对象的周边密钥相对应的组中的用户的交集被给予对数据对象的访问权(只要发送方没有撤销发送方密钥)。授权的管理员可以更新每个组中的用户。
在一个示例中,数据可以是人力资源数据,包括关于美国(US)雇员的数据。在该示例中,第一周边密钥可以要求用户位于美国,第二周边密钥可以要求用户在人力资源部门。这些关于用户的确定可以基于与计算机用户标识符相关联的元数据来作出。例如,当为用户设置用户标识符时,元数据可以指定用户的地理位置和工作部门。该元数据可以基于用户状态的改变而被更新。如果加密的数据对象的接收方有权访问第一和第二周边密钥(以及发送方密钥),则接收方位于美国并且在人力资源部门中,并且因此有权访问或解密加密的数据对象中的数据。如果接收方无权访问第一周边密钥、第二周边密钥或发送方密钥中的任何一个,则接收方不能访问加密的数据对象中的数据。该示例旨在说明本发明的一个或多个实施例的各方面,而不是旨在将实施例限于人力资源数据,因为本发明的实施例可以对任何类型的数据进行操作。
为了控制对加密的数据对象中的数据的访问,数据所有者(例如,发送方)或其他授权方可以指示KMS撤销特定用户对周边密钥的访问,以防止对加密的数据对象中的数据的所有未来访问,数据所有者或其他授权方还可以指示KMS使特定周边密钥无效。此外,为了防止对加密的数据对象中的数据的所有未来访问,数据所有者(例如,数据发送方)或其他授权方还可以指示KMS使发送方密钥无效,
现在转向图1,根据本发明的一个或多个实施例,总地示出了用于分发具有加密信息作为元数据的加密的数据对象的环境的框图100。图1包括发送方系统104、接收方系统106和密钥管理系统(KMS)110。图1还包括数据108a和数据108b,在此统称为数据108,以及加密的数据对象102、发送方密钥和索引112、以及周边密钥和索引114。根据本发明的一个或多个实施例,数据108a和数据108b具有相同的值,数据108a位于发送方系统104上或可由其访问,而数据108b位于接收方系统106上或可由其访问。
发送方系统104可以由例如在位于图10的计算机1001上的处理器1005上和/或在位于图8的云计算节点10上的处理器上执行的软件指令和/或计算机硬件来实现,如本文进一步描述的。根据本发明的一个或多个实施例,发送方系统104执行例如下面参考图3描述的发送方的处理。如图1所示,发送方系统104以安全方式接收要发送到接收方系统106的数据108a。数据108a可以是本领域已知的任何数字格式。发送方系统104创建加密的数据对象102,其包括加密格式的数据108以及由接收方系统106用来解密加密的数据对象102的元数据。
根据本发明的一个或多个实施例,发送方系统104存储或有权访问要以安全方式发送的数据108a、加密的数据、加密的数据对象102的加密的发送方密钥索引、会话密钥、发送方密钥索引、发送方密钥以及一个或多个周边密钥索引。
如图1的实施例中所示,发送方系统104与KMS 110进行交互,以生成加密的数据对象102。如图1所示,KMS 110控制对发送方密钥和索引112的访问,其包括发送方密钥和它们对应的索引或标识符。KMS 110使用发送方密钥的索引来访问对应的发送方密钥。如图1所示,KMS 110还控制对周边密钥和索引114的访问,其包括周边密钥和它们对应的索引或标识符。KMS 110使用周边密钥的索引来访问对应的周边密钥。
密钥管理系统(KMS)110可以由例如在位于图10的计算机1001上的处理器1005上和/或在位于图8的云计算节点10上的处理器上执行的软件指令和/或计算机硬件来实现,如本文进一步描述的。根据本发明的一个或多个实施例,KMS 110执行下面参考图5和图7描述的密钥管理处理。如图1所示,KMS 110例如通过从发送方系统104接收发送方密钥索引和一个或多个周边密钥索引,并作为响应,向进行请求的发送方系统104返回加密的发送方密钥索引,来与发送方系统104进行交互。KMS 110还可以例如通过从接收方系统106接收加密的发送方密钥索引和一个或多个周边密钥索引,并且作为响应,向进行请求的接收方系统106返回发送方密钥,来与接收方系统106进行交互。此外,KMS可以从数据108的所有者或从另一授权方接收命令,以更新发送方密钥和索引112以及周边密钥和索引114的内容。
接收方系统106可以由例如在位于图10的计算机1001上的处理器1005上和/或在位于图8的云计算节点10上的处理器上执行的软件指令和/或计算机硬件来实现,如本文进一步描述的。根据本发明的一个或多个实施例,接收方系统106执行接收方的处理,例如,如下面参考图6所描述的。如图1所示,接收方系统106从发送方系统104接收加密的数据对象102。如果接收方系统106有权访问数据,则接收方系统106解密加密的数据对象102以生成未加密格式的数据108b。
图1所示的数据108、加密的数据对象102、发送方密钥和索引112以及周边密钥和索引114可以以本领域已知的任何方式(例如,数据库、索引文件等)存储并且存储在一个或多个存储设备中的一个或多个位置。
虽然图1示出了包括单个KMS 110、单个发送方系统104和单个接收方系统106的实施例,但是本发明不限于图1所示的实施例,例如,一个或多个其它实施例可以具有多个发送方系统104、多个接收方系统106和/或多个KMS 110。
图1中所示的组件的全部或子集可以经由一个或多个网络彼此通信,该网络由使用有线或无线组件通信地耦合或连接的一个或多个处理器形成。根据本发明的一个或多个实施例,图1中所示的组件的全部或子集经由云网络和/或因特网通信地耦合。
在此关于图1的框图100描述的实施例可以用任何适当的逻辑来实现,其中在此提及的逻辑在各种实施例中可以包括任何合适的硬件(例如,处理器、嵌入式控制器或专用集成电路等)、软件(例如,应用等)、固件或硬件、软件和固件的任何合适的组合。
现在转到图2,总地示出了本发明的一个或多个实施例所利用的加密方案的框图200。如图2中所示,在框202,诸如图1的数据108a的数据被用会话密钥加密,并且会话密钥被用发送方密钥加密。如图2的框204所示,周边密钥被组合以生成组合周边密钥。例如,可以通过对周边密钥的值进行异或或以诸如但不限于使用密钥导出函数的某种其它可重复方式来组合周边密钥。如图2的框206所示,组合周边密钥被用于加密发送方密钥的索引,发送方密钥被用于加密会话密钥,从而导致用组合周边密钥来加密发送方密钥。使用图2所示的加密方案的实施例不仅为发送方提供了能力,而且为多个其他感兴趣方或组织提供了通过KMS来管制对数据的开放的访问的能力。
现在转到图3,根据本发明的一个或多个实施例,总地示出了用于创建加密的数据对象的方法300的流程图。图3所示的处理的全部或一部分可以例如由在图1的发送方系统104上执行的软件指令和/或计算机硬件来执行,在框302,诸如图1的数据108a的数据由发送方系统接收,并由发送方系统使用会话密钥来加密。在框304,用发送方密钥加密会话密钥。可以利用本领域已知的任何加密算法来执行在框302和304处的加密,例如但不限于在任何可用模式(例如,密码块链接(CBC)、伽罗瓦/计数器模式(GCM))中的具有任何大小的密钥长度(例如,128、196、256)的高级加密标准(AES)。
在图3的框306处,发送方系统向诸如图1的KMS 110之类的KMS发送请求,以用组合周边密钥加密发送方密钥的索引,并且在框308处,从KMS接收加密的发送方密钥索引。在框310,发送方系统建立加密的数据对象,例如图1和4的加密的数据对象102。一旦在图3的框310生成了加密的数据对象,处理就在框312继续。在框312,加密的数据对象被发送到接收方,诸如图1的接收方系统106。
图3的过程流程图不旨在指示方法300的操作将以任何特定顺序执行,或者方法300的所有操作将被包括在每种情况中。另外,方法300可包括任何合适数量的附加操作。
现在转到图4,根据本发明的一个或多个实施例,总地示出了加密的数据对象102或受保护数据的实施例。图4所示的加密的数据对象102包括用会话密钥加密的数据402、用发送方密钥加密的会话密钥404、一个或多个周边密钥索引406、以及用组合周边密钥加密的发送方密钥索引408。
现在转到图5,根据本发明的一个或多个实施例,总地示出了用于创建加密的发送方密钥索引(例如,用图4的组合周边密钥408加密的发送方密钥索引)的方法500的流程图。图5中所示的处理的全部或一部分可以例如由在图1的KMS 110上执行的软件指令和/或计算机硬件来执行。在框502处,从诸如图1的发送方系统104的请求方接收发送方密钥索引和一个或多个周边密钥索引(诸如图4的周边密钥索引404)。处理在框504处继续,获得与所接收的周边密钥索引相对应的一个或多个周边密钥。例如,可以从图1的周边密钥和索引114中获得对应的周边密钥。
在图5的框506,周边密钥被组合,并且在框508,用组合周边密钥加密在框502接收的发送方密钥索引。可以使用组合密钥的任何方法,例如但不限于:与密钥执行异或(XOR)或使用密钥导出函数(例如,基于HMAC的提取和扩展(HKDF)和/或基于口令的密钥导出函数2(PBKDF2))。可以使用本领域已知的任何加密方案来加密发送方密钥索引,例如但不限于在任何可用模式(例如,密码块链接(CBC)、伽罗瓦/计数器模式(GCM))中的具有任何大小的密钥长度(例如,128、196、256)的高级加密标准(AES)。在框510,将加密的发送方密钥索引发送给请求方。
图5的过程流程图不旨在指示方法500的操作将以任何特定顺序执行,或者方法500的所有操作将被包括在每种情况中。另外,方法500可以包括任何合适数量的附加操作。
现在转到图6,根据本发明的一个或多个实施例,总地示出了用于解密包含在加密的数据对象中的数据的方法600的流程图。图6所示的处理的全部或一部分可以例如由在图1的接收方系统106上执行的软件指令和/或计算机硬件来执行。在框602处,接收对象,例如图1和图4的加密的数据对象102。根据本发明的一个或多个实施例,对象包括用会话密钥加密的数据、用发送方密钥加密的会话密钥、一个或多个周边密钥索引、以及用组合周边密钥加密的发送方密钥索引。
在框604处,将请求发送到KMS,例如图1的KMS 110,以从包含在接收的对象中的一个或多个周边密钥索引和加密的发送方密钥索引导出发送方密钥。在框606处,如果已经给予接收方系统对与接收的对象中的一个或多个周边密钥索引相对应的所有周边密钥的访问权以及对发送方密钥的访问权,并且一个或多个周边密钥和发送方密钥是KMS中的有效密钥,这意味着在该请求之前还没有从KMS中移除它们,则从KMS接收发送方密钥。
如果接收方系统没有被给予对与接收的对象中的一个或多个周边密钥索引相对应的所有周边密钥的访问权以及对发送方密钥的访问权,或者如果周边密钥中的一个或多个或发送方密钥是无效密钥,则在框606处,不从KMS接收发送方密钥。当这种情况发生时,在本发明的一个或多个实施例中,KMS向请求方发送错误消息,而在其他实施例中,KMS仅仅不响应于该请求。
响应于在框606接收到发送方密钥而执行框608。在框608,使用所接收的发送方密钥来解密加密的会话密钥。处理在框610继续,使用会话密钥解密用对象中的会话密钥加密的数据,以生成未加密数据,诸如图1的数据108b,然后数据108b可以被存储或输入到计算机程序。
图6的过程流程图不旨在指示方法600的操作将以任何特定顺序执行,或者方法600的所有操作将被包括在每种情况中。另外,方法600可以包括任何合适数量的附加操作。
现在转到图7,根据本发明的一个或多个实施例,总地示出了用于生成发送方密钥的方法700的流程图。图7中所示的处理的全部或一部分可以例如由在图1的KMS 110上执行的软件指令和/或计算机硬件来执行。在框702处,从诸如图1的接收方系统106之类的请求方接收加密的发送方密钥索引和一个或多个周边密钥索引,在框704处,例如从图1的周边密钥和索引114获得与一个或多个周边密钥索引相对应的周边密钥。
在框706,如果与一个或多个周边密钥索引相对应的所有周边密钥都是有效的并且请求方有权访问所有周边密钥,则以与在图5的框506中组合周边密钥相同的方式来组合周边密钥,并且处理在框708继续。如果与一个或多个周边密钥索引相对应的所有周边密钥都无效和/或请求方无权访问所有周边密钥,则图7所示的处理结束。在一些实施例中,向请求方发送错误消息,而在其它实施例中,不发送错误消息。
在框708,如果发送方密钥有效,并且请求方有权访问发送方密钥,则使用组合周边密钥解密发送方密钥索引,并且执行框710以将发送方密钥发送给请求方。在框708,如果发送方密钥无效和/或如果请求方无权访问发送方密钥,则图7所示的处理结束。在一些实施例中,向请求方发送错误消息,而在其它实施例中,不发送错误消息。
图7的过程流程图不旨在指示方法700的操作将以任何特定顺序执行,或者方法700的所有操作将被包括在每种情况中。另外,方法700可以包括任何合适数量的附加操作。
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。而是,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,该可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广泛的网络接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被池化以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置独立性的感觉,因为消费者通常不具有对所提供的资源的确切位置的控制或了解,但可能能够以较高抽象级别(例如,国家、州或数据中心)指定位置。
快速弹性:能够快速和弹性地提供能力,在一些情况下自动地提供能力,以快速向外扩展和快速释放以快速向内扩展。对于消费者而言,可用于供应的能力通常显得不受限制并且可以在任何时间以任何数量购买。
测量的服务:云系统通过在适合于服务类型(例如,存储、处理、带宽、和活动用户账户)的某个抽象级别处利用计量能力来自动控制和优化资源使用。可以监视、控制和报告资源使用,为所利用的服务的提供者和消费者两者提供透明度。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。可通过诸如web浏览器(例如,基于web的电子邮件)之类的瘦客户端接口从各种客户端设备访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储或甚至单独的应用能力的底层云基础设施,可能的例外是有限的用户特定应用配置设置。
平台即服务(PaaS):向消费者提供的能力是将消费者创建或获取的应用部署到云基础设施上,这些应用是使用由提供者支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但是对所部署的应用和可能的应用托管环境配置具有控制。
基础设施即服务(IaaS):提供给消费者的能力是供应处理、存储、网络和消费者能够部署和运行任意软件(可包括操作系统和应用)的其他基本计算资源。消费者不管理或控制底层云基础设施,而是具有对操作系统、存储、所部署的应用的控制以及对选择的联网组件(例如,主机防火墙)的可能受限的控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、社区或公共)的组合,这些云保持唯一实体但通过使数据和应用能够移植的标准化或专有技术(例如,云突发以用于云之间的负载平衡)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心处是包括互连节点的网络的基础设施。
现在参考图8,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备例如是个人数字助理(PDA)或蜂窝电话54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,图8中所示的计算设备54A-N的类型仅旨在说明,并且计算节点10和云计算环境50可以在任何类型的网络和/或网络可寻址连接上(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参考图9,示出了由云计算环境50(图8)提供的一组功能抽象层。应当预先理解,图9中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和对应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储设备65;以及网络和联网组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户端75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及用于这些资源的消费的开帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务水平协议(SLA)规划和履行85提供对云计算资源的预安排和采购,其中根据SLA预期未来需求。
工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育递送93;数据分析处理94;交易处理95;以及数据加密/解密96。
可以理解,本发明的一个或多个实施例能够结合现在已知或以后开发的任何类型的计算环境来实现。
现在转向图10,根据本发明的一个或多个实施例,总地示出了用于分发具有加密信息作为元数据的加密的数据对象的计算机系统。本文所述的方法可以硬件、软件(例如,固件)或其组合来实现。在本发明的一个或多个示例性实施例中,在此描述的方法在硬件中实现为专用或通用数字计算机的微处理器的一部分,专用或通用数字计算机例如是个人计算机、工作站、小型计算机或大型计算机。因此,系统1000可包括能够同时运行O/S的多个实例的通用计算机或大型机1001。
在本发明的一个或多个示例性实施例中,在硬件架构方面,如图10所示,计算机1001包括一个或多个处理器1005、耦合到存储器控制器1015的存储器1010、以及经由本地输入/输出控制器1035通信地耦合的一个或多个输入和/或输出(I/O)设备1040、1045(或外围设备)。输入/输出控制器1035可以是,例如但不限于,一个或多个总线或其它有线或无线连接,如本领域已知的。输入/输出控制器1035可以具有为了简单起见而省略的附加元件,诸如控制器、缓冲器(高速缓存)、驱动器、中继器和接收方,以实现通信。此外,本地接口可以包括地址、控制和/或数据连接,以便能够在上述组件之间进行适当的通信。输入/输出控制器1035可以包括被配置为访问输出设备1040和1045的多个子信道。子信道可以包括光纤通信端口。
处理器1005是用于执行软件的硬件设备,特别是存储在诸如高速缓存储存器或存储器1010的存储1020中的软件。处理器1005可以是任何定制的或商业上可获得的处理器、中央处理单元(CPU)、与计算机1001相关联的若干处理器中的辅助处理器、基于半导体的微处理器(以微芯片或芯片组的形式)、宏处理器或一般地用于执行指令的任何设备。
存储器1010可以包括易失性存储器元件(例如,随机存取存储器(RAM,诸如DRAM、SRAM、SDRAM等))和非易失性存储器元件(例如,ROM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁带、压缩盘只读存储器(CD-ROM)、盘、磁盘、盒式磁带等)中的任何一个或其组合。此外,存储器1010可以包括电、磁、光和/或其它类型的存储介质。注意,存储器1010可以具有分布式架构,其中各种组件彼此远离,但是可以由处理器1005访问。
存储器1010中的指令可以包括一个或多个单独的程序,每个程序包括用于实现逻辑功能的可执行指令的有序列表。在图10的示例中,存储器1010中的指令是合适的操作系统(OS)1011。操作系统1011实质上控制其它计算机程序的执行,并提供调度、输入-输出控制、文件和数据管理、存储器管理、以及通信控制和相关服务。
根据本发明的一个或多个实施例,存储器1010可以包括多个逻辑分区(LPAR),每个逻辑分区运行操作系统的实例。LPAR可以由系统管理程序管理,该系统管理程序可以是存储在存储器1010中并由处理器1005执行的程序。
在本发明的一个或多个示例性实施例中,传统键盘1050和鼠标1055可以耦合到输入/输出控制器1035。诸如I/O设备1040、1045的其他输出设备可以包括输入设备,例如但不限于打印机、扫描仪、麦克风等。最后,I/O设备1040、1045还可以包括与输入和输出两者通信的设备,例如但不限于网络接口卡(NIC)或调制器/解调器(用于访问其他文件、设备、系统或网络)、射频(RF)或其他收发器、电话接口、桥接器、路由器等。系统1000可进一步包括耦合到显示器1030的显示控制器1025。
在本发明的一个或多个示例性实施例中,系统1000还可以包括用于耦合到网络1065的网络接口1060。网络1065可以是用于经由宽带连接在计算机1001和任何外部服务器、客户端等之间通信的基于IP的网络。网络1065在计算机1001和外部系统之间发送和接收数据。在示例性实施例中,网络1065可以是由服务提供商管理的受管理IP网络。网络1065可以以无线方式实现,例如使用诸如WiFi、WiMax等的无线协议和技术。网络1065也可以是分组交换网络,例如局域网、广域网、城域网、因特网或其它类似类型的网络环境。网络1065可以是固定无线网络、无线局域网(LAN)、无线广域网(WAN)、个人区域网(PAN)、虚拟专用网(VPN)、内联网或其它合适的网络系统,并且包括用于接收和发送信号的装备。
如果计算机1001是PC、工作站、智能设备等,则存储器1010中的指令还可以包括基本输入输出系统(BIOS)(为了简单起见而省略)。BIOS是一组基本软件例程,其在启动时初始化并测试硬件,启动OS 1011,并支持硬件设备之间的数据传输。BIOS存储在ROM中,以便在计算机1001被激活时可以执行BIOS。
当计算机1001在操作中时,处理器1005被配置为执行存储在存储器1010内的指令,以向和从存储器1010传送数据,并且一般地根据指令控制计算机1001的操作。根据本发明的一个或多个实施例,计算机1001是图8的云计算节点10的示例。
在此参考相关附图描述本发明的各种实施例。在不偏离本发明的范围的情况下,可以设计本发明的替代实施例。在以下描述和附图中,阐述了元件之间的各种连接和位置关系(例如,上方、下方、相邻等)。除非另有说明,这些连接和/或位置关系可以是直接的或间接的,并且本发明并不旨在在这方面进行限制。因此,实体的耦合可以指直接或间接耦合,并且实体之间的位置关系可以是直接或间接位置关系。此外,本文所描述的各种任务和过程步骤可并入具有本文未详细描述的附加步骤或功能的更综合程序或过程中。
本文所描述的一种或多种方法可以用本领域公知的以下技术中的任一种或其组合来实现:具有用于根据数据信号实现逻辑功能的逻辑门的离散逻辑电路、具有适当组合逻辑门的专用集成电路(ASIC)、可编程门阵列(PGA)、现场可编程门阵列(FPGA)等。
为了简洁起见,与制造和使用本发明的方面相关的常规技术可以或可以不在本文中详细描述。具体地,用于实现本文描述的各种技术特征的计算系统和特定计算机程序的各个方面是公知的。因此,为了简洁起见,许多常规实现细节在本文中仅简要提及或完全省略,而不提供众所周知的系统和/或过程细节。
在一些实施例中,各种功能或动作可以在给定位置处和/或结合一个或多个装置或系统的操作而发生。在一些实施例中,给定功能或动作的一部分可以在第一设备或位置处执行,并且该功能或动作的其余部分可以在一个或多个附加设备或位置处执行。
本文所用的术语仅是为了描述特定实施例的目的,而不是旨在进行限制。如本文所用,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还将理解,术语“包括”和/或“包含”在本说明书中使用时,指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件组件和/或其组的存在或添加。
以下权利要求中的所有部件或步骤加功能元件的对应结构、材料、动作和等同物旨在包括用于与如具体要求保护的其它要求保护的元件组合执行功能的任何结构、材料或动作。本公开内容是为了说明和描述的目的而呈现的,而不是旨在是穷举的或限于所公开的形式。在不脱离本公开的范围的情况下,许多修改和变型对于本领域普通技术人员将是显而易见的。选择和描述实施例是为了最好地解释本公开的原理和实际应用,并且使本领域的其他普通技术人员能够理解具有各种修改的各种实施例的本公开,这些修改适合于所设想的特定用途。
这里描述的图是说明性的。对其中描述的图或步骤(或操作)可以有许多变型。例如,可以以不同的顺序执行动作,或者可以添加、删除或修改动作。此外,术语“耦合”描述在两个元件之间具有信号路径,并且不暗示元件之间的直接连接而其间没有中间元件/连接。所有这些变型被认为是本公开的一部分。
以下定义和缩写用于解释权利要求和说明书。如本文所用,术语“包含”、“包括”、“具有”、“含有”、“有”或其任何其它变型旨在涵盖非排他性的包括。例如,包括元素列表的组合物、混合物、过程、方法、制品或装置不一定仅限于那些元素,而是可以包括未明确列出的或此类组合物、混合物、过程、方法、制品或装置固有的其他元素。
另外,术语“示例性”在本文中用于表示“用作示例、实例或说明”。在此描述为“示例性”的任何实施例或设计不一定被解释为比其它实施例或设计更优选或有利。术语“至少一个”和“一个或多个”被理解为包括大于或等于一的任何整数,即一、二、三、四等。术语“多个”应理解为包括大于或等于二的任何整数,即二、三、四、五等。术语“连接”可以包括间接“连接”和直接“连接”两者。
术语“约”、“基本上”、“大约”及其变型旨在包括与基于提交本申请时可用的装备的特定量的测量相关联的误差度。例如,“约”可以包括给定值的±8%或5%或2%的范围。
本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质,计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码设备,以及上述的任何合适组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如“C”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令来使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的部件。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实现中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围的情况下,许多修改和变型对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术的技术改进,或使本领域的其他普通技术人员能够理解本文所描述的实施例。
Claims (23)
1.一种方法,包括:
由一个或多个处理器至少部分地基于会话密钥来加密数据以生成加密的数据;
由所述一个或多个处理器至少部分地基于发送方密钥来加密所述会话密钥以生成加密的会话密钥,所述发送方密钥先前从密钥管理系统(KMS)获得;
由所述一个或多个处理器向所述KMS发送对加密的发送方密钥索引的请求,所述请求包括所述发送方密钥的索引和一个或多个附加密钥中的每一个的索引;
由所述一个或多个处理器从所述KMS接收所述加密的发送方密钥索引,所述加密的发送方密钥索引是由所述KMS至少部分地基于所述发送方密钥和所述一个或多个附加密钥生成的;
由所述一个或多个处理器生成包括所述加密的数据、所述加密的会话密钥、所述一个或多个附加密钥中的每一个的所述索引、以及所述加密的发送方密钥索引的对象,其中至少部分地基于接收方是否有权访问所述发送方密钥和所述一个或多个附加密钥来控制经由所述对象对所述数据的访问。
2.根据权利要求1所述的方法,其中还至少部分地基于所述发送方密钥和所述一个或多个附加密钥是否有效来控制经由所述对象对所述数据的访问。
3.根据权利要求2所述的方法,还包括防止所述接收方经由所述对象访问所述数据,所述防止包括向所述KMS发送使所述发送方密钥无效的请求。
4.根据权利要求2所述的方法,还包括防止所述接收方经由所述对象访问所述数据,所述防止包括向所述KMS发送使所述一个或多个附加密钥中的至少一个无效的请求。
5.根据权利要求1所述的方法,其中响应于所述KMS向有权访问所述发送方密钥的用户的列表添加或从所述列表移除所述接收方,来修改经由所述对象对所述数据的访问。
6.根据权利要求1所述的方法,其中响应于所述KMS向有权访问所述一个或多个附加密钥中的附加密钥的用户的列表添加或从所述列表移除所述接收方,来修改经由所述对象对所述数据的访问。
7.根据任一前述权利要求所述的方法,还包括将所述对象发送到所述接收方。
8.根据权利要求7所述的方法,其中所述发送是经由网络的。
9.一种系统,包括:
用于执行计算机可读指令的一个或多个处理器,所述计算机可读指令控制所述一个或多个处理器以执行操作,所述操作包括:
至少部分地基于会话密钥来加密数据以生成加密的数据;
至少部分地基于发送方密钥来加密所述会话密钥以生成加密的会话密钥,所述发送方密钥先前从密钥管理系统(KMS)获得;
向所述KMS发送对加密的发送方密钥索引的请求,所述请求包括所述发送方密钥的索引和一个或多个附加密钥中的每一个的索引;
从所述KMS接收所述加密的发送方密钥索引,所述加密的发送方密钥索引是由所述KMS至少部分地基于所述发送方密钥和所述一个或多个附加密钥来生成的;以及
生成包括所述加密的数据、所述加密的会话密钥、所述一个或多个附加密钥中的每一个的所述索引、以及所述加密的发送方密钥索引的对象,其中至少部分地基于接收方是否有权访问所述发送方密钥和所述一个或多个附加密钥来控制经由所述对象对所述数据的访问。
10.根据权利要求9所述的系统,其中还至少部分地基于所述发送方密钥和所述一个或多个附加密钥是否有效来控制经由所述对象对所述数据的访问。
11.根据权利要求10所述的系统,其中所述操作还包括防止所述接收方经由所述对象访问所述数据,所述防止包括向所述KMS发送使所述发送方密钥无效的请求。
12.根据权利要求10所述的系统,其中所述操作还包括防止所述接收方经由所述对象访问所述数据,所述防止包括向所述KMS发送使所述一个或多个附加密钥中的至少一个无效的请求。
13.根据权利要求9所述的系统,其中响应于所述KMS向有权访问所述发送方密钥的用户的列表添加或从所述列表移除所述接收方,来修改经由所述对象对所述数据的访问。
14.根据权利要求9所述的系统,其中响应于所述KMS向有权访问所述一个或多个附加密钥中的附加密钥的用户的列表添加或从所述列表移除所述接收方,来修改经由所述对象对所述数据的访问。
15.一种计算机程序产品,包括具有与其一起体现的程序指令的计算机可读存储介质,所述程序指令能够由一个或多个处理器执行以使所述一个或多个处理器执行操作,所述操作包括:
至少部分地基于会话密钥来加密数据以生成加密的数据;
至少部分地基于发送方密钥来加密所述会话密钥以生成加密的会话密钥,所述发送方密钥先前从密钥管理系统(KMS)获得;
向所述KMS发送对加密的发送方密钥索引的请求,所述请求包括所述发送方密钥的索引和一个或多个附加密钥中的每一个的索引;
从所述KMS接收所述加密的发送方密钥索引,所述加密的发送方密钥索引是由所述KMS至少部分地基于所述发送方密钥和所述一个或多个附加密钥来生成的;以及
生成包括所述加密的数据、所述加密的会话密钥、所述一个或多个附加密钥中的每一个的所述索引、以及所述加密的发送方密钥索引的对象,其中至少部分地基于接收方是否有权访问所述发送方密钥和所述一个或多个附加密钥来控制经由所述对象对所述数据的访问。
16.一种方法,包括:
由一个或多个处理器接收包括加密的数据、加密的会话密钥、一个或多个附加密钥中的每一个的索引、以及加密的发送方密钥索引的对象;
由所述一个或多个处理器向密钥管理系统(KMS)发送对与所述加密的发送方密钥索引相对应的发送方密钥的请求,所述请求来自请求方,并且所述请求包括所述加密的发送方密钥索引和所述一个或多个附加密钥中的每一个的所述索引;以及
响应于从所述KMS接收到发送方密钥:
至少部分地基于所述发送方密钥来解密所述加密的会话密钥以生成会话密钥;以及
至少部分地基于所述会话密钥来解密所述加密的数据以生成未加密的数据,其中响应于由所述KMS确定所述请求方有权访问所述发送方密钥和所述一个或多个附加密钥中的每一个,由所述KMS将所述发送方密钥发送给所述请求方。
17.根据权利要求16所述的方法,还包括响应于由所述KMS确定所述请求方无权访问所述发送方密钥,从所述KMS接收错误消息。
18.根据权利要求17所述的方法,其中当所述发送方密钥无效时,确定所述请求方无权访问所述发送方密钥。
19.根据权利要求16所述的方法,还包括响应于由所述KMS确定所述请求方无权访问所述至少一个或多个附加密钥中的所有附加密钥,从所述KMS接收错误消息。
20.根据权利要求19所述的方法,其中当所述一个或多个附加密钥中的至少一个无效时,确定所述请求方无权访问所述一个或多个附加密钥中的所有密钥。
21.一种方法,包括:
由一个或多个处理器从请求方接收对发送方密钥的请求,所述请求包括加密的发送方密钥索引和一个或多个附加密钥中的每一个的索引;
确定所述请求方是否有权访问由所述一个或多个附加密钥中的每一个的所述索引标识的一个或多个附加密钥;以及
响应于确定所述请求方有权访问所述一个或多个附加密钥:
解密所述加密的发送方密钥索引以生成发送方密钥索引;
至少部分地基于所述发送方密钥索引来定位所述发送方密钥;
确定所述请求方是否有权访问所述发送方密钥;以及
基于确定所述请求方有权访问所述发送方密钥,将所述发送方密钥发送给所述请求方。
22.根据权利要求21所述的方法,还包括至少部分地基于所述发送方密钥索引和所述一个或多个附加密钥中的每一个的所述索引来生成所述加密的发送方密钥索引。
23.根据权利要求22所述的方法,其中所述生成包括:
至少部分地基于所述一个或多个附加密钥中的每一个的索引来定位所述一个或多个附加密钥;
将所述一个或多个附加密钥组合成组合附加密钥;以及
至少部分地基于所述组合附加密钥来加密所述发送方密钥索引。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/925,403 | 2020-07-10 | ||
US16/925,403 US11646878B2 (en) | 2020-07-10 | 2020-07-10 | Distributing encrypted data objects with encryption information as metadata |
PCT/EP2021/067134 WO2022008247A1 (en) | 2020-07-10 | 2021-06-23 | Distributing encrypted data objects |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115804060A true CN115804060A (zh) | 2023-03-14 |
Family
ID=76744809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180048911.XA Pending CN115804060A (zh) | 2020-07-10 | 2021-06-23 | 分发加密的数据对象 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11646878B2 (zh) |
EP (1) | EP4179693A1 (zh) |
JP (1) | JP2023532810A (zh) |
KR (1) | KR20230027140A (zh) |
CN (1) | CN115804060A (zh) |
AU (1) | AU2021306830B2 (zh) |
WO (1) | WO2022008247A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112567441A (zh) * | 2018-06-29 | 2021-03-26 | 索尼公司 | 信息处理系统、信息处理方法和信息处理装置 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6904521B1 (en) * | 2001-02-16 | 2005-06-07 | Networks Associates Technology, Inc. | Non-repudiation of e-mail messages |
US8165302B2 (en) * | 2005-06-07 | 2012-04-24 | Sony Corporation | Key table and authorization table management |
WO2007138204A1 (fr) | 2006-05-31 | 2007-12-06 | France Telecom | Procede cryptographique a chiffrement et revocation integres, systeme, dispositif et programmes pour la mise en oeuvre du procede |
GB2456185A (en) * | 2008-01-04 | 2009-07-08 | Wilico Wireless Networking Sol | Providing selected information in response to an attempt to authenticate a mobile device |
KR101683883B1 (ko) | 2009-12-31 | 2016-12-08 | 삼성전자주식회사 | 이동 통신 시스템에서 보안을 지원하는 방법 및 시스템 |
US8649515B1 (en) * | 2010-02-08 | 2014-02-11 | Trend Micro Incorporated | Controlled sharing of media data that are retrievable over a public computer network |
JP5275482B2 (ja) | 2012-01-16 | 2013-08-28 | 株式会社東芝 | ストレージメディア、ホスト装置、メモリ装置、及びシステム |
EP2951946B1 (en) | 2013-01-31 | 2018-07-18 | Schedule1 Inc. | Method and system for protecting data using data passports |
WO2016131056A1 (en) * | 2015-02-13 | 2016-08-18 | Visa International Service Association | Confidential communication management |
JP6419633B2 (ja) * | 2015-04-09 | 2018-11-07 | 株式会社日立ソリューションズ | 検索システム |
US10033703B1 (en) * | 2015-06-16 | 2018-07-24 | Amazon Technologies, Inc. | Pluggable cipher suite negotiation |
US10015150B2 (en) * | 2015-10-15 | 2018-07-03 | Pkware, Inc. | Systems and methods for Smartkey information management |
US11095449B2 (en) * | 2016-12-16 | 2021-08-17 | Visa International Service Association | System and method for securely processing an electronic identity |
US10924267B2 (en) | 2018-08-24 | 2021-02-16 | International Business Machines Corporation | Validating keys derived from an oblivious pseudorandom function |
EP4010830A1 (en) * | 2019-09-04 | 2022-06-15 | Google LLC | Access sovereignty |
-
2020
- 2020-07-10 US US16/925,403 patent/US11646878B2/en active Active
-
2021
- 2021-06-23 WO PCT/EP2021/067134 patent/WO2022008247A1/en unknown
- 2021-06-23 AU AU2021306830A patent/AU2021306830B2/en active Active
- 2021-06-23 KR KR1020237000010A patent/KR20230027140A/ko unknown
- 2021-06-23 EP EP21737001.4A patent/EP4179693A1/en active Pending
- 2021-06-23 CN CN202180048911.XA patent/CN115804060A/zh active Pending
- 2021-06-23 JP JP2023501301A patent/JP2023532810A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022008247A1 (en) | 2022-01-13 |
AU2021306830B2 (en) | 2024-07-25 |
KR20230027140A (ko) | 2023-02-27 |
US20220014365A1 (en) | 2022-01-13 |
JP2023532810A (ja) | 2023-07-31 |
US11646878B2 (en) | 2023-05-09 |
EP4179693A1 (en) | 2023-05-17 |
AU2021306830A1 (en) | 2023-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10389727B2 (en) | Multi-level security enforcement utilizing data typing | |
US10924486B2 (en) | Secure access management for tools within a secure environment | |
US10686765B2 (en) | Data access levels | |
US11017072B2 (en) | Scalable authentication between heterogeneous services | |
CN115699679A (zh) | 通过第三方数据聚合服务的内容控制 | |
CN115668860B (zh) | 用于识别加密对象的创建者的方法和系统 | |
US20190273613A1 (en) | Distributed encryption keys for tokens in a cloud environment | |
CN115803740A (zh) | 监视程序保护的密钥 | |
US11265144B2 (en) | Consistent ciphertext creation | |
JP2022523770A (ja) | セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール | |
CN115280718B (zh) | 用于授权实例之间的安全私钥分发的方法和系统 | |
CN116601916A (zh) | 作为用于密钥散列消息认证码用户认证和授权的密钥材料的基于属性的加密密钥 | |
AU2021306830B2 (en) | Distributing encrypted data objects | |
US11032708B2 (en) | Securing public WLAN hotspot network access | |
CN116745766A (zh) | 安全存储器共享 | |
US11562080B2 (en) | Secure ingress and egress of data fields through legacy computer systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |