CN114788221A - 带访问控制谓词的包装密钥 - Google Patents

带访问控制谓词的包装密钥 Download PDF

Info

Publication number
CN114788221A
CN114788221A CN202080084949.8A CN202080084949A CN114788221A CN 114788221 A CN114788221 A CN 114788221A CN 202080084949 A CN202080084949 A CN 202080084949A CN 114788221 A CN114788221 A CN 114788221A
Authority
CN
China
Prior art keywords
key
content
access control
user
request
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
Application number
CN202080084949.8A
Other languages
English (en)
Inventor
尼古拉斯·利兹波尔斯基
莱蒂西亚·艾丝特尔·博杜因
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN114788221A publication Critical patent/CN114788221A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0825Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0822Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations

Abstract

一种用于带访问控制谓词的包装密钥的方法(300、400)包括获得用于内容(120)的密码密钥(212)。该方法还包括使用密码密钥来对内容进行加密并且生成加密请求(190E)。加密请求请求第三方密码服务(150)对密码密钥和访问控制条件的封装(152)进行加密,所述访问控制条件管控对内容的访问。该方法还包括将加密请求传送到第三方密码服务。加密请求包括密码密钥。

Description

带访问控制谓词的包装密钥
技术领域
本公开涉及带访问控制谓词的包装密钥。
背景技术
当今云计算平台(CCP)可以向这些平台的客户端(或用户)提供范围广泛的功能性。在一些情况下,此功能性已从诸如针对客户端资源的存储或向客户端提供附加分布式计算资源的更简单用品演进为可以与其他计算系统集成的应用或应用编程接口(API)的更复杂用品。例如,许多CCP提供软件服务,诸如电子邮件应用、通信应用(例如,消息传递、音频/视频通信等)、存储应用、数据处理应用等。随着这些软件服务增长,在使用这些服务期间正在访问、转移、修改和/或存储越来越多的客户端数据。
发明内容
本公开的一个方面提供一种用于带访问控制谓词的包装密钥的方法。该方法包括在数据处理硬件处获得用于与用户相关联的内容的密码密钥。该方法还包括通过数据处理硬件使用密码密钥来对内容进行加密并且通过数据处理硬件生成加密请求。加密请求请求第三方密码服务对密码密钥和管控对用户的内容的访问的访问控制条件的封装进行加密。该方法还包括通过数据处理硬件将加密请求传送到第三方密码服务,该加密请求包括密码密钥。
本公开的实现方式可以包括以下可选特征中的一个或多个。在一些实现方式中,加密请求包括访问控制条件,该访问控制条件由与内容相关联的用户配置。加密请求请求第三方对封装进行加密可以包括加密请求请求第三方密码服务用密钥加密密钥(KEK)使用对称加密来对封装进行加密。第三方密码服务可以对应于分布式存储系统的密钥服务管理器(KSM)或分布式存储系统的硬件安全模块(HSM)设备。访问控制条件可以对应于用于动态访问控制的相应条件。
在一些示例中,该方法包括在数据处理硬件处接收用于对与用户相关联的加密内容进行解密的解密请求,并且该方法包括通过数据处理硬件向第三方密码服务传送解密请求以在经受解密请求时对用于内容的密码密钥和管控对用户的内容的访问的访问控制条件的封装进行解密。在此示例中,当解密请求满足访问控制条件时,该方法包括通过数据处理硬件从第三方密码服务中检索密码密钥并且通过数据处理硬件使用该密码密钥来对加密内容进行解密。解密请求可以包括认证令牌,该认证令牌指示解密请求的请求者被授权接收密码密钥。这里,认证令牌可以包括JavaScript对象表示法(JSON)web令牌,该JSONweb令牌包括基于公钥基础设施(PKI)证书的签名。
本公开的另一方面提供一种用于带访问控制谓词的包装密钥的方法。该方法包括在数据处理硬件处接收用于对与用户相关联的加密内容进行解密的解密请求。该方法还包括通过数据处理硬件向第三方密码服务传送。在经受解密请求时,解密请求对用于内容的密码密钥和管控对用户的内容的访问的访问控制条件的封装进行解密,该封装原始由第三方密码服务加密。当解密请求满足访问控制条件时,该方法包括通过数据处理硬件从第三方密码服务中检索密码密钥并且通过数据处理硬件使用该密码密钥来对加密内容进行解密。
此方面可以包括以下可选特征中的一个或多个。在一些配置中,解密请求包括认证令牌,该认证令牌指示解密请求的请求者被授权接收密码密钥。认证令牌可以包括JavaScript对象表示法(JSON)web令牌,该JSON web令牌包括基于公钥基础设施(PKI)证书的签名。
在一些实现方式中,访问控制条件包括针对内容的用户配置的访问控制条件。第三方加密服务可以原始用密钥加密密钥(KEK)使用对称加密来对封装进行加密。第三方密码服务可以对应于分布式存储系统的密钥服务管理器(KSM)或分布式存储系统的硬件安全模块(HSM)设备。访问控制条件可以对应于用于动态访问控制的相应条件。
本公开的另一方面提供一种用于带访问控制谓词的包装密钥的系统。该系统包括数据处理硬件和与该数据处理硬件通信的存储器硬件。该存储器硬件存储指令,这些指令当在数据处理硬件上执行时使数据处理硬件执行操作。操作包括获得用于与用户相关联的内容的密码密钥、使用该密码密钥来对内容进行加密并且生成加密请求。加密请求请求第三方加密服务对密码密钥和管控对用户的内容的访问的访问控制条件的封装进行加密。操作还包括将加密请求传送到第三方密码服务,该加密请求包括密码密钥。
此方面可以包括以下可选特征中的一个或多个。在一些实现方式中,加密请求包括访问控制条件,该访问控制条件由与内容相关联的用户配置。加密请求请求第三方对封装进行加密可以包括加密请求请求第三方密码服务用密钥加密密钥(KEK)使用对称加密来对封装进行加密。第三方密码服务可以对应于分布式存储系统的密钥服务管理器(KSM)或分布式存储系统的硬件安全模块(HSM)设备。访问控制条件可以对应于用于动态访问控制的相应条件。
在一些示例中,操作包括接收用于对与用户相关联的加密内容进行解密的解密请求并且包括向第三方密码服务传送该解密请求以在经受解密请求时对用于内容的密码密钥和管控对用户的内容的访问的访问控制条件的封装进行解密。在此示例中,当解密请求满足访问控制条件时,操作包括从第三方密码服务中检索密码密钥并且使用该密码密钥来对加密内容进行解密。这里,解密请求可以包括认证令牌,该认证令牌指示解密请求的请求者被授权接收密钥。认证令牌可以包括JavaScript对象表示法(JSON)web令牌,该JSON web令牌包括基于公钥基础设施(PKI)证书的签名。
本公开的又一方面提供一种用于带访问控制谓词的包装密钥的系统。该系统包括数据处理硬件和与该数据处理硬件通信的存储器硬件。该存储器硬件存储指令,这些指令当在数据处理硬件上执行时使数据处理硬件执行操作。操作包括接收用于对与用户相关联的加密内容进行解密的解密请求并且传送到第三方密码服务。在经受解密请求时,解密请求对用于内容的密码密钥和管控对用户的内容的访问的访问控制条件的封装进行解密,该封装原始由第三方密码服务加密。当解密请求满足访问控制条件时,操作包括从第三方密码服务中检索密码密钥并且使用该密码密钥来对加密内容进行解密。
在一些配置中,解密请求包括认证令牌,该认证令牌指示解密请求的请求者被授权接收密码密钥。这里,认证令牌可以包括JavaScript对象表示法JSON)web令牌,该JSONweb令牌包括基于公钥基础设施(PKI)证书的签名。
在一些示例中,访问控制条件包括针对内容的用户配置的访问控制条件。第三方加密服务可以原始用密钥加密密钥(KEK)使用对称加密来对封装进行加密。第三方密码服务可以对应于分布式存储系统的密钥服务管理器(KSM)或分布式存储系统的硬件安全模块(HSM)设备。访问控制条件可以对应于用于动态访问控制的相应条件。
在下面的附图和描述中阐述本公开的一个或多个实现方式的细节。根据说明书和附图,并且根据权利要求书,其他方面、特征和优点将是显而易见的。
附图说明
图1A和图1B是使用数据密码系统的示例计算环境的示意视图。
图2是示例保护管理器的示意视图。
图3是使用访问控制谓词系统来对用户内容进行加密的方法的操作的示例布置的流程图。
图4是使用访问控制谓词系统来对用户内容进行解密的方法的操作的示例布置的流程图。
图5是可以用于实现本文描述的系统和方法的示例计算设备的示意视图。
在各个附图中相似的附图标记指示相似的元件。
具体实施方式
云提供商的客户端可能具有客户端不假定信任(在密码/安全意义上)其云服务提供商的安全实践。例如,客户端可能希望对由提供商存储或处置的数据进行加密,但是也可能希望避免信任提供商来处置对应的密码密钥。在所示示例中,云计算环境100包括混合内容保护架构。在此架构中,客户端使用CCP来用由第三方管理的密码密钥对客户端内容进行加密和/或解密。利用此配置,加密保护客户端内容免受客户端内容在CCP处暴露的风险,然而具有密钥的第三方不具备客户端内容来执行解密。换句话说,CCP和第三方均不同时地具备所有工具来暴露客户端数据。使用此架构,客户端可以利用CCP而无需完全地信任它。
尽管混合内容保护架构可以保护客户端秘密免受例如CCP的管理员,但是客户端也可能更喜欢架构包括这样的机制,该机制使得存储系统能够用细粒度访问控制保持以密码方式保护的秘密。换句话说,客户端可能更喜欢第三方也管理对客户端秘密的访问控制。遗憾的是,当前存在这样的权衡,即为了第三方提供细粒度访问控制,第三方可能需要实际地存储秘密的内容以及访问控制机制(例如,访问控制列表(ACL))。因此,为以密码方式保护的秘密提供细粒度访问控制潜在地破坏混合内容保护架构的重要概念;单方不具备所有工具来同时地暴露客户端秘密(例如,客户端希望保密的客户端数据)。为了解决具有这种权衡的固有问题,云计算环境100包括使用访问控制谓词来为客户端保护和/或管理秘密的第三方密码服务。
图1A和图1B是云计算环境100的示例。云计算环境100通常包括与用户10(例如,也称为客户端)相关联的用户设备110(例如,也称为客户端设备),其能够通过网络130将用户内容120(例如,也称为客户端内容/数据)传送到CCP 140的一部分(例如,后端)。CCP 140可以是指具有远离用户设备110的本地资源的可缩放/弹性资源142(例如,存储抽象)的分布式系统。资源142包括硬件资源144(例如,数据处理硬件)、存储资源146(例如,存储器硬件)和/或软件资源148(例如,面向客户端的软件,诸如基于web的应用或应用编程接口(API))。在一些示例中,用户10使用用户设备110(例如,使用web浏览器应用116)来与CCP 140的资源142接合。在一些配置中,当用户10与CCP 140的软件资源148接合时,软件资源148包括密码签名以提供代码完整性保护。
用户设备110可以是能够与CCP 140进行通信的任何计算设备或数据处理硬件。用户设备110的一些示例包括但不限于台式计算设备、移动计算设备(诸如膝上型电脑、平板、智能电话)和可穿戴计算设备(例如,头戴式耳机和/或手表)。作为计算设备,用户设备110包括数据处理硬件112和存储器硬件114,该存储器硬件被配置成与数据处理硬件112进行通信以执行各种过程。这里,图1A和图1B描绘用户设备110使用数据处理硬件112来执行应用116(例如,已经被下载并存储在存储器硬件114中的应用)。例如,用户设备110执行web浏览器应用116来与CCP 140进行通信。这里,CCP 140可以提供用户设备110可经由web浏览器应用116访问的基于web的服务。
在一些示例中,当用户10与CCP 140交互时,用户10提供和/或生成用户内容120。例如,用户10在用于CCP 140的应用(即,软件资源148)的用户界面(UI)处生成用户内容120。用户内容120通常是指由用户10拥有或控制的数据,诸如文件、文档、消息或其他数据资产。在一些示例中,用户10将用户内容120提供给CCP 140以便让CCP 140执行各种客户端服务(例如,存储服务、计算服务等)。在一些实现方式中,用户内容120简单地是指与CCP140或与CCP 140相关联的服务兼容的内容(例如,资源)。
当用户10将用户内容120引入到CCP 140时,保护管理器200被配置成将用户内容120标识为内容保护的潜在候选。在一些示例中,保护管理器200是CCP 140的一部分的面向客户端的功能。例如,CCP 140将保护管理器200集成在一个或多个CCP应用的前端代码(例如,嵌入到在CCP应用处管理用户数据的代码路径中的面向客户端的库)中。通过将保护管理器200集成在CCP应用的前端代码中,CCP认识到,当用户10向CCP 140提供或共享用户内容120时,用户10可能想要保护用户内容120。此外,通过成为面向客户端的,保护管理器200在用户10将用户内容的全部控制让与CCP 140之前给予用户10保护用户内容120的机会。例如,用户10想要将用户内容120存储在CCP 140的存储资源146(例如,服务器)中,但是选择在用户10将用户内容120传送到存储资源146之前在保护管理器200处保护用户内容120。
在一些实现方式中,用户10在保护管理器200处发起对用户内容120的保护(例如,对保护的用户请求)。在其他实现方式中,保护管理器200标识用户内容120并且要么自动地保护用户内容120,要么在来自用户10的许可下保护用户内容120。在仍然其他的实现方式中,保护管理器200被配置为使得用户10既可以发起内容保护请求,保护管理器200又可以自助服务用户内容保护。在一些示例中,用户10或采用保护管理器200的CCP 140的管理员指定对保护管理器200来说在范围内的用户内容120的类型。当保护管理器200接收和/或标识在范围内的用户内容120的类型时,保护管理器200被配置成在被传送到远程端点(例如,CCP 140的远程资源142)之前总是保护用户内容120。
为了保护用户内容120,保护管理器200被配置成对用户内容120进行加密和/或解密。例如,保护管理器200在将用户内容120上传到CCP 140的远程资源142之前对用户内容120进行加密(例如,如图1A所示)并且在从CCP 140的远程资源142下载用户内容120之后在用户设备110处在本地对用户内容120进行解密(例如,如图1B所示)。在基于存储的CCP应用中,保护管理器200可以被增添到现有上传和/或下载流中以向通过这些流路径行进的用户内容120提供其保护服务。在内容编辑器应用中,保护管理器200可以是本地读取/写入功能性的一部分,使得保护管理器200读取/写入基于文档的用户内容120的blob版本作为保护管理器200对blob版本进行加密/解密的保护形式。
当保护管理器200对用户内容120进行加密/解密时,保护管理器200负责与诸如第三方密钥管理器150和/或身份提供商160的第三方系统通信。例如,保护管理器200使用超文本转移协议安全(HTTPS)请求或跨域资源共享(CORS)请求来与第三方密钥管理器150和/或身份提供商160进行通信。这里,第三方密钥管理器(3PKM)150是指保护密钥212的第三方密码服务,保护管理器200使用所述密钥212来对用户内容120进行加密/解密。
在一些示例中,3PKM 150是保护秘密170的服务。秘密170可以由保护管理器200(例如,代表用户)或由用户10独立于保护管理器200提供给3PKM 150。秘密170统称为要保护的提供给3PKM 150的内容。秘密170的内容可以包括密钥212和/或周界172。周界172是定义谓词174的对象或声明,其中谓词174对应于管控秘密170的内容的访问控制条件。换句话说,为了访问秘密170的内容,需要满足由谓词174设置的条件。在一些示例中,满足由谓词174设置的条件允许实体(例如,用户10)使用3PKM 150的密码服务,诸如接收加密或解密内容。在一些实现方式中,满足由谓词174设置的条件许可3PKM 150传送与秘密170相关联的内容。例如,当请求实体满足谓词174时,3PKM 150可以将与谓词174相关联的密钥212返回给请求实体,使得可以通过密钥212来对加密内容122进行解密(例如,在保护管理器200处)。第三方密码服务150可以对应于分布式存储系统的密钥服务管理器(KSM)或分布式存储系统的硬件安全模块(HSM)设备。
周界172的示例可以是被许可访问与密钥212相关联的用户内容120的电子邮件地址的列表。在一些配置中,周界172包括谓词174,该谓词指定为了访问秘密170的内容需要向3PKM 150提供授权断言的要求。在一些配置中,对于要关于秘密170执行的不同操作,周界172可以具有不同谓词174。周界172可以包括静态检查(例如,检查特定断言是否等于值)或动态检查(例如,使用诸如身份提供商160的另一方来检查断言)。换句话说,静态检查可以是静态访问控制条件,然而动态检查是动态访问控制条件(例如,多个声明180或断言可以被链接或映射在一起以满足动态访问控制条件)。
在一些配置中,3PKM 150包括当在3PKM 150处接收到秘密170时保护秘密170的密钥管理系统(KMS)或硬件管理系统(HMS)。3PKM 150可以通过包装/解包装过程来保护秘密170。这里,包装是指使用对称加密来封装诸如秘密材料(例如,密钥212)的内容的加密过程(例如,密钥包装算法)。解包装通常是指使用密码过程来对封装内容(例如,秘密材料)进行解密的反向过程。为了包装/解包装秘密170,3PKM 150可以接收秘密170并且使用永久地驻留在3PKM 150中(例如,在KMS或HMS处)的密钥加密密钥(KEK)来对秘密170进行加密/解密。这里,3PKM 150可以被配置为使得3PKM 150包括与3PKM 150的每个客户(例如,类似于用户10的每个用户)相对应的KEK。当3PKM 150从保护管理器200接收到秘密170时,3PKM 150保护秘密170并且将封装152返回给保护管理器200。这里,封装152是指由3PKM 150加密以形成加密数据结构的对象。例如,返回给保护管理器200的封装152可以是秘密170的加密形式。在一些示例中,封装152是当KEK对密钥212进行加密时对应于密钥212的加密形式的密码令牌152。在密钥212已由3PKM 150包装之后,3PKM 150可以存储受保护的密钥212(即,包装密钥)或者将受保护的密钥212(即,包装密钥)发送到另一存储位置(例如,在客户端10的用户设备110处或在CCP 140处)。在一些实现方式中,将已由3PKM 150加密的密钥212与加密用户内容122一起存储可以提供诸如一致数据位置、备份和/或可靠性的好处。
尽管3PKM 150可以存储密钥,诸如用于保护用户内容120的KEK,但是3PKM 150不以任何形式(例如,加密的或解密的)存储用户内容120。相反,保护管理器200在用户设备110处用密钥212(例如,客户端密码密钥)对用户内容120进行加密并且将加密用户内容122和封装152从3PKM 150传送到CCP 140的远程资源142。基于此配置,CCP 140已经用相关封装152对用户内容122进行加密,但是CCP 140无法访问密钥来对用户数据120进行解密。
在每一个包装/解包装过程期间,3PKM 150可以接收声明180。这里,声明180是指传达给3PKM 150的信息,该信息指定要对照周界172的谓词174来评价的一个或多个特性。换句话说,声明180可以是由实体(例如,用户10)断言该实体应该能够访问特定秘密170。这里,声明180的断言的特性可以取决于针对秘密170的访问条件配置的谓词174。例如,3PKM150接收包括封装152和声明180的请求190(例如,解密请求190D)。当3PKM 150接收到请求190时,3PKM 150可以首先验证声明180的有效性,然后确定声明180是否满足谓词174的条件。当声明180满足谓词174时,3PKM 150可以返回与封装152相关的原始内容(例如,秘密170)。
在一些示例中,声明180包括由身份提供商160指定的授权特征(例如,授权令牌162)。身份提供商160通常是指与CCP 140分开的可以提供用于证实实体的授权特征的第三方。换句话说,身份提供商160被配置成指示具备授权特征的实体有权对环境100内的内容或特定资源提出声明180。在一些示例中,身份提供商160生成签名或证书以便实体(例如,以便用户10或与CCP 140相关联的另一用户)证实实体的身份。例如,认证令牌对应于JavaScript对象表示法(JSON)web令牌,其中JSON web令牌包括基于公钥基础设施(PKI)证书的签名。由身份提供商160生成的授权特征然后可以由3PKM 150使用来在检查谓词174的条件之前最初证实声明180。
授权特征帮助确保未经授权方不会设法使用3PKM 150来获得秘密170(例如,密钥212)。例如,未经授权方可能试图向3PKM 150冒充用户10。3PKM 150和/或身份提供商160可以被配置成防止由CCP 140的尚未被证实的实体单方面访问3PKM 150处的密钥212。换句话说,由于CCP 140的实体可以能够访问加密用户内容122,所以对3PKM 150处的密钥212的进一步访问将潜在地移除保护并且暴露用户内容120。由于这种可能性,身份提供商160被配置成为应该能够访问秘密170的实体提供认证特征(例如,以为用户10对用户内容120进行解密)。为了说明,用户10的用户设备110处的保护管理器200应该能够访问以从3PKM 150中检索密钥212。这里,身份提供商160向用户设备110处的保护管理器200提供认证令牌162,使得保护管理器200可以在密钥检索请求(例如,解密请求190D)期间将认证令牌162(例如,在声明180中)提供给3PKM 150。在一些示例中,当3PKM 150接收到认证令牌162时,3PKM150确定通过认证令牌162标识的实体是否具有访问所请求的密钥的授权(例如,基于3PKM150处的ACL)。当3PKM 150确定从授权实体接收到认证令牌162时,3PKM 150通过返回所请求的密钥212来遵守密钥请求。例如,在图1B中,3PKM 150基于来自根据声明180授权的实体(例如,用户设备110处的保护管理器200)的解密请求190D返回包括在封装152中的密钥212。
继续参考图1A,保护管理器200获得密钥212(例如,密码密钥)以保护用户内容120。这里,可以从被认为是安全的多个源获得密钥212。这些源可以包括用户设备110处的应用116(例如,web浏览器应用)、用户设备110的硬件112、114,或用户10相信是安全的一些远程源(例如,生成密钥212的密钥服务器或远程服务)。使用密钥212,保护管理器200在本地对用户内容120进行加密以形成加密用户内容122。一旦保护管理器200形成加密用户内容122,密钥212就被传送到3PKM 150以便被3PKM 150包装到封装152中。当3PKM 150包装封装152时,它可以将封装152返回给保护管理器200。当保护管理器200接收到封装152时,保护管理器200将加密用户内容122连同封装152一起传送到CCP 140的远程计算资源142。
对于图1A中描绘的加密过程,保护管理器200(例如,由用户10指导)可以生成加密请求190、190E。在一些示例中,加密请求190E包括秘密170。在这些示例中,秘密170将保护管理器200使用来对内容120进行加密的密钥212连同标识访问控制条件(即,谓词174)的周界172一起传送。在一些实现方式中,加密请求190包括断言请求加密请求190E的方被授权使用3PKM 150的服务的声明180。3PKM 150接收加密请求190E并且对于秘密170执行包装操作。包装操作包括加密请求190E标识3PKM 150要保护的字节作为输入。例如,加密请求190E请求包装操作保护密钥212以及周界172。这里,通过用一个或多个谓词174保护周界172,3PKM 150形成封装152,所述封装152是与周界172(例如,谓词174的访问控制条件)捆绑的密钥212的加密形式。通过用周界172(例如,使用KEK)对密钥212进行加密,过程确保当需要对封装152的解密时,3PKM 150能够在返回解密内容(例如,密钥212)之前检查访问控制条件。在一些配置中,3PKM 150在包装操作期间使用KEK来对秘密170执行对称加密。附加地或替换地,3PKM 150还可以被配置成响应于加密请求190E而在包装操作期间执行非对称加密。
在一些实现方式中,3PKM 150充当环境100中的密钥访问控制列表服务(KACLS)。例如,3PKM 150接收包括数据加密密钥(DEK)作为密钥212并且包括ACL作为周界172的一种形式的加密请求190。在一些示例中,作为KACLS,加密请求190E还包括用户内容120的标识符。例如,当内容120是文档(例如,电子邮件)时,标识符是文档标识符(ID)(例如,与文档关联的字符的字母数字集)。这里,ACL很像其他周界172,可以指定谁能够对内容(例如,与文档ID相对应)进行解密。在使用KACLS加密的电子邮件的情况下,能够将周界174设置为电子邮件内容的特定接收者。因此,当实体请求对加密电子邮件内容进行解密时,KACLS接收用于对电子邮件(例如,电子邮件的DEK)进行解密的请求190(例如,解密请求190、190D)。这里,作为KACLS的3PKM 150将首先验证解密请求190D包括用于解密的有效声明180,然后继续检查解密请求190D的请求者是否是通过周界172标识的接收者。换句话说,3PKM 150可以检查声明180的电子邮件接收者字段是否与通过周界172标识的电子邮件接收者匹配。
相比之下,图1B描绘保护管理器200对加密用户内容122进行解密。这里,加密用户内容122被下载到用户设备110并且保护管理器200在用户设备110处在本地对加密用户内容122进行解密。在此示例中,保护管理器200向CCP 140(例如,诸如CCP 140的服务器的远程资源142)做出检索请求190、190SR。在一些示例中,检索请求190SR包括对加密用户内容122的特定片段及其相关封装152的请求。在一些配置中,CCP 140被配置成标识指定加密用户内容122的检索请求190SR应该通过伴随与所指定的加密用户内容122相对应的封装152来履行。这里,用户10可以在用户设备110处发起检索请求190SR。一旦保护管理器200接收到封装152,保护管理器200就将封装152传送到3PKM 150以便检索与封装152相对应的密钥212。利用来自3PKM 150用于加密用户内容122的密钥212,保护管理器200对加密用户内容122进行解密。
在一些示例中,保护管理器200通过发送解密请求190D来检索用于对加密用户内容122进行解密的密钥212。解密请求190D包括用密钥212和声明180(例如,用授权令牌162)体现秘密170的封装152。由于封装152对应于秘密170,所以包括在请求190D中的封装152还包括带一个或多个谓词174的周界172。当3PKM 150接收到解密请求190D时,3PKM 150可以首先执行证实过程。在证实过程期间,3PKM 150确定请求190D的声明180是否标识提交解密请求190D的有效实体。紧跟证实过程之后,3PKM 150确定请求190D(例如,使用声明180)是否满足周界172的一个或多个谓词174。例如,3PKM 140标识与请求190D相关联的声明180是否满足由包括在封装152中的谓词174阐述的条件。在一些示例中,为了确定请求190D是否满足谓词174的条件,3PKM 150解包装封装152以访问带谓词174的周界172。使用此过程,3PKM 150不一定需要存储封装152,并且事实上,通常与3PKM 150比较,诸如CCP 140的存储系统可以更容易存储封装152。这里,因为仅3PKM 150具有可以对加密封装152进行解密的工具(例如,KEK)并且封装152包括周界172,所以3PKM 150能够在返回封装152的内容内的解密密钥212之前施行访问控制条件。换句话说,此过程允许3PKM 150执行无状态密钥服务。它还可以避免3PKM 150针对每一包装/解包装操作对数据库读取/写入的需要。使用利用访问控制谓词的此封装过程,3PKM 150可以专注于KEK的保护,而不是不得不附加地处置数据库访问控制。
参考图2,保护管理器200包括密钥生成器210、保护器220和通信器230。密钥生成器210被配置为在用户设备110处在本地生成密钥212。在一些示例中,密钥212是密码密钥212,使得取决于情况,该密钥可以用于对数据进行加密或解密。在一些示例中,密钥212是256比特密钥。例如,密钥212使用按256比特密钥大小(例如,256比特的长度)而操作的高级加密标准(AES)对称分组密码。这里,分组密码可以在伽罗瓦(galois)计数器模式(GCM)下操作。使用密码算法,诸如AES-256-GCM,密钥212提供数据真实性(即,完整性)以及数据机密性两者。密钥生成器210可以被配置成为每条单独的用户内容120生成密钥212。例如,图2示出三个密钥212、212a-c,其中每个密钥212对应于单条用户内容120、120a-C。
保护器220是保护管理器200的被配置成对用户内容120进行加密或解密的部分。为了对用户内容120进行加密,保护管理器200不需要来自非本地实体(例如,CCP 140、3PKM150或身份提供商160)的任何附加组件。换句话说,保护器220接收由密钥生成器210生成的密钥212并且能够对用户内容120进行加密。相比之下,当保护器220对加密用户内容122进行解密时,保护器220不能自主地操作。替代地保护器220利用通信器230来从CCP 140(例如,CCP 140的服务器)获取加密用户内容122并且从3PKM 150获取原始对用户内容120进行加密的密钥212。因此,通信器230被配置成与非本地实体(例如,CCP 140、3PKM 150或身份提供商160)进行通信以启用保护器220的功能性。
图3是用于对用户内容120进行加密的方法300的操作的示例布置。在操作302处,方法300获得用于与用户10相关联的内容120的密码密钥212。在操作304处,方法300使用密码密钥212来对内容122进行加密。在操作306处,方法300生成加密请求190E,其中加密请求190E请求第三方密码服务150对密码密钥212和管控对用户10的内容120的访问的访问控制条件(例如,周界172的谓词174)的封装152进行加密。在操作308处,方法300将加密请求190E传送到第三方密码服务150,其中加密请求190E包括密码密钥212。
图4是用于对用户内容120进行解密的方法400的操作的示例布置。在操作402处,方法400接收用于对与用户10相关联的加密内容122进行解密的解密请求190D。在操作404处,方法400向第三方密码服务150传送解密请求190D以在经受解密请求190D时对用于内容122的密码密钥212和访问控制条件(例如,周界172的谓词174)的封装152进行解密,所述访问控制条件管控对用户10的内容120的访问。这里,封装152原始由第三方密码服务150加密。在操作406处,当解密请求满足访问控制条件时,方法400从第三方密码服务150中检索密码密钥212。在操作408处,方法400使用密码密钥212来对加密内容122进行解密。
图5是可以用于实现本文档中描述的系统(例如,保护管理器200和/或3PKM 150)和方法(例如,方法300、400)的示例计算设备500的示意视图。计算设备500旨在表示各种形式的数字计算机,诸如膝上型电脑、台式机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。这里示出的组件、它们的连接和关系以及它们的功能仅意在为示例性的,而不意在限制本文档中描述和/或要求保护的发明的实现方式。
计算设备500包括处理器510(例如,数据处理硬件)、存储器520(例如,存储器硬件)、存储设备530、连接到存储器520和高速扩展端口550的高速接口/控制器540、以及连接到低速总线570和存储设备530的低速接口/控制器560。组件510、520、530、540、550和560中的每一个使用各种总线来互连,并且可以被安装在公共主板上或酌情以其他方式安装。处理器510能够处理用于在计算设备500内运行的指令,包括存储在存储器520中或在存储设备530上以在诸如耦合到高速接口540的显示器580的外部输入/输出设备上显示用于图形用户界面(GUI)的图形信息580的指令。在其他实现方式中,可以酌情使用多个处理器和/或多条总线以及多个存储器和多种类型的存储器。另外,可以连接多个计算设备500,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器520在计算设备500内非暂时性地存储信息。存储器520可以是计算机可读介质、易失性存储器单元或非易失性存储器单元。非暂时性存储器520可以是用于在临时或永久基础上存储程序(例如,指令序列)或数据(例如,程序状态信息)以供由计算设备500使用的物理设备。非易失性存储器的示例包括但不限于闪速存储器和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
存储设备530能够为计算设备500提供大容量存储。在一些实现方式中,存储设备530是计算机可读介质。在各种不同的实现方式中,存储设备530可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪速存储器或其他类似的固态存储设备、或设备阵列,包括存储区域网络或其他配置中的设备。在附加实现方式中,计算机程序产品被有形地体现在信息载体中。计算机程序产品包含指令,这些指令当被运行时,执行一种或多种方法,诸如上述那些方法。信息载体是计算机或机器可读介质,诸如存储器520、存储设备530或处理器510上的存储器。
高速控制器540管理计算设备500的带宽密集型操作,然而低速控制器560管理较低带宽密集型操作。职责的这种分配仅是示例性的。在一些实现方式中,高速控制器540耦合到存储器520、显示器580(例如,通过图形处理器或加速器),并且耦合到可以接受各种扩展卡(未示出)的高速扩展端口550。在一些实现方式中,低速控制器560耦合到存储设备530和低速扩展端口590。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口590可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、指点设备、扫描仪、或诸如交换机或路由器的联网设备。
如图所示,可以以许多不同的形式实现计算设备500。例如,它可以作为标准服务器500a被实现或在一组此类服务器500a中多次实现,作为膝上型计算机500b或者作为机架服务器系统500c的一部分被实现。
能够在数字电子和/或光学电路系统、集成电路系统、专门地设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现本文描述的系统和技术的各种实现方式。这些各种实现方式能够包括在包括至少一个可编程处理器的可编程系统上可运行和/或可解释的一个或多个计算机程序中的实现方式,所述至少一个可编程处理器可以是专用或通用的,耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向存储系统、至少一个输入设备和至少一个输出设备传送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且能够用高级过程和/或面向对象编程语言和/或用汇编/机器语言加以实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中描述的过程和逻辑流程可以是通过一个或多个可编程处理器运行一个或多个计算机程序以通过对输入数据操作并生成输出来执行功能来执行的。过程和逻辑流程还能够由专用逻辑电路系统执行,所述专用逻辑电路系统例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。作为示例,适合于运行计算机程序的处理器包括通用微处理器和专用微处理器两者,以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或者在操作上耦合以从用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘)接收数据,或者向所述大容量存储设备转移数据,或者兼而有之。然而,计算机不需要具有此类设备。适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括半导体存储器设备,例如EPROM、EEPROM和闪速存储器设备;磁盘,例如内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器能够由专用逻辑电路系统补充,或者被并入在专用逻辑电路系统中。
为了提供与用户的交互,能够在计算机上实现本公开的一个或多个方面,所述计算机具有用于向用户显示信息的显示设备,例如,CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏,并且可选地具有用户能够通过其向计算机提供输入的键盘和指点设备,例如,鼠标或轨迹球。其他种类的设备也能够用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。另外,计算机能够通过向由用户使用的设备发送文档并且从由用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到的请求而向用户的客户端设备上的web浏览器发送网页。
已经描述了许多实现方式。然而,应理解,可以在不脱离本公开的精神和范围的情况下做出各种修改。因此,其他实现方式在以下权利要求的范围内。

Claims (30)

1.一种方法(300、400),包括:
在数据处理硬件(112)处获得(302)用于与用户(10)相关联的内容(120)的密码密钥(212);
由所述数据处理硬件(112)使用所述密码密钥(212)来对所述内容(120)进行加密(304);
由所述数据处理硬件(112)生成(306)加密请求(190E),所述加密请求(190E)请求第三方密码服务(150)对所述密码密钥(212)和访问控制条件的封装(152)进行加密,所述访问控制条件管控对所述用户(10)的所述内容(120)的访问;以及
由所述数据处理硬件(112)将所述加密请求(190E)传送(308)到所述第三方密码服务(150),所述加密请求(190E)包括所述密码密钥(212)。
2.根据权利要求1所述的方法(300、400),其中,所述加密请求(190E)还包括所述访问控制条件,所述访问控制条件由与所述内容(120)相关联的所述用户(10)配置。
3.根据权利要求1-2中的任一项所述的方法(300、400),其中,所述加密请求(190E)请求所述第三方密码服务(150)对所述封装(152)进行加密包括所述加密请求(190E)请求所述第三方密码服务(150)用密钥加密密钥(KEK)使用对称加密来对所述封装(152)进行加密。
4.根据权利要求1-3中的任一项所述的方法(300、400),其中,所述第三方密码服务(150)对应于分布式存储系统的密钥服务管理器(KSM)或所述分布式存储系统的硬件安全模块(HSM)设备。
5.根据权利要求1-4中的任一项所述的方法(300、400),其中,所述访问控制条件对应于用于动态访问控制的相应条件。
6.根据权利要求1-5中的任一项所述的方法(300、400),进一步包括:
在所述数据处理硬件(112)处接收(402)用于对与所述用户(10)相关联的所加密的内容(122)进行解密的解密请求(190D);
由所述数据处理硬件(112)向所述第三方密码服务(150)传送(404)所述解密请求(190D),以在经受所述解密请求(190D)时对用于所述内容(120)的所述密码密钥(212)和所述访问控制条件的所述封装(152)进行解密,所述访问控制条件管控对所述用户(10)的所述内容(120)的访问;
在所述解密请求(190D)满足所述访问控制条件时,由所述数据处理硬件(112)从所述第三方密码服务(150)中检索(406)所述密码密钥(212);以及
由所述数据处理硬件(112)使用所述密码密钥(212)来对所加密的内容(122)进行解密(408)。
7.根据权利要求6所述的方法(300、400),其中,所述解密请求(190D)包括认证令牌,所述认证令牌指示所述解密请求(190D)的请求者被授权接收所述密码密钥(212)。
8.根据权利要求7所述的方法(300、400),其中,所述认证令牌包括JavaScript对象表示法(JSON)web令牌,所述JSON web令牌包括基于公钥基础设施(PKI)证书的签名。
9.一种方法(400),包括:
在数据处理硬件(112)处接收(402)用于对与用户(10)相关联的加密内容(122)进行解密的解密请求(190D);
由所述数据处理硬件(112)向第三方密码服务(150)传送(404)所述解密请求(190D),以在经受所述解密请求(190D)时对用于所述内容(120)的密码密钥(212)和访问控制条件的封装(152)进行解密,所述访问控制条件管控对所述用户(10)的所述内容(120)的访问,所述封装(152)原始由所述第三方密码服务(150)加密;
在所述解密请求(190D)满足所述访问控制条件时,由所述数据处理硬件(112)从所述第三方密码服务(150)中检索(406)所述密码密钥(212);以及
由所述数据处理硬件(112)使用所述密码密钥(212)来对所述加密内容(122)进行解密(408)。
10.根据权利要求9所述的方法(400),其中,所述解密请求(190D)包括认证令牌,所述认证令牌指示所述解密请求(190D)的请求者被授权接收所述密码密钥(212)。
11.根据权利要求9-10中的任一项所述的方法(400),其中,所述认证令牌包括JavaScript对象表示法(JSON)web令牌,所述JSONweb令牌包括基于公钥基础设施(PKI)证书的签名。
12.根据权利要求9-11中的任一项所述的方法(400),其中,所述访问控制条件包括针对所述内容(120)的用户配置的访问控制条件。
13.根据权利要求9-12中的任一项所述的方法(400),其中,所述第三方密码服务(150)原始用密钥加密密钥(KEK)使用对称加密来对所述封装(152)进行加密。
14.根据权利要求9-13中的任一项所述的方法(400),其中,所述第三方密码服务(150)对应于分布式存储系统的密钥服务管理器(KSM)或分布式存储系统的硬件安全模块(HSM)设备。
15.根据权利要求9-14中的任一项所述的方法(400),其中,所述访问控制条件对应于用于动态访问控制的相应条件。
16.一种系统,包括:
数据处理硬件(112);以及
与所述数据处理硬件(112)通信的存储器硬件(114),所述存储器硬件(114)存储指令,所述指令在所述数据处理硬件(112)上执行时使所述数据处理硬件(112)执行操作,所述操作包括:
获得用于与用户(10)相关联的内容(120)的密码密钥(212);
使用所述密码密钥(212)来对所述内容(120)进行加密;
生成加密请求(190E),所述加密请求(190E)请求第三方密码服务(150)对所述密码密钥(212)和访问控制条件的封装(152)进行加密,所述访问控制条件管控对所述用户(10)的所述内容(120)的访问;以及
将所述加密请求(190E)传送到所述第三方密码服务(150),所述加密请求(190E)包括所述密码密钥(212)。
17.根据权利要求16所述的系统,其中,所述加密请求(190E)还包括所述访问控制条件,所述访问控制条件由与所述内容(120)相关联的所述用户(10)配置。
18.根据权利要求16-17中的任一项所述的系统,其中,所述加密请求(190E)请求所述第三方密码服务(150)对所述封装(152)进行加密包括所述加密请求(190E)请求所述第三方密码服务(150)用密钥加密密钥(KEK)使用对称加密来对所述封装(152)进行加密。
19.根据权利要求16-17中的任一项所述的系统,其中,所述第三方密码服务(150)对应于分布式存储系统的密钥服务管理器(KSM)或所述分布式存储系统的硬件安全模块(HSM)设备。
20.根据权利要求16-17中的任一项所述的系统,其中,所述访问控制条件对应于用于动态访问控制的相应条件。
21.根据权利要求16-17中的任一项所述的系统,其中,所述操作还包括:
接收用于对与所述用户(10)相关联的所加密的内容(122)进行解密的解密请求(190D);
向所述第三方密码服务(150)传送所述解密请求(190D),以在经受所述解密请求(190D)时对用于所述内容(120)的所述密码密钥(212)和所述访问控制条件的所述封装(152)进行解密,所述访问控制条件管控对所述用户(10)的所述内容(120)的访问;
在所述解密请求(190D)满足所述访问控制条件时,从所述第三方密码服务(150)中检索所述密码密钥(212);以及
使用所述密码密钥(212)来对所加密的内容(122)进行解密。
22.根据权利要求21所述的系统,其中,所述解密请求(190D)包括认证令牌,所述认证令牌指示所述解密请求(190D)的请求者被授权接收所述密码密钥(212)。
23.根据权利要求22所述的系统,其中,所述认证令牌包括JavaScript对象表示法(JSON)web令牌,所述JSON web令牌包括基于公钥基础设施(PKI)证书的签名。
24.一种系统,包括:
数据处理硬件(112);以及
与所述数据处理硬件(112)通信的存储器硬件(114),所述存储器硬件(114)存储指令,所述指令在所述数据处理硬件(112)上执行时使所述数据处理硬件(112)执行操作,所述操作包括:
接收用于对与用户(10)相关联的加密内容(122)进行解密的解密请求(190D);
向第三方密码服务(150)传送所述解密请求(190D),以在经受所述解密请求(190D)时对用于所述内容(120)的密码密钥(212)和访问控制条件的封装(152)进行解密,所述访问控制条件管控对所述用户(10)的所述内容(120)的访问,所述封装(152)原始由所述第三方密码服务(150)加密;
在所述解密请求(190D)满足所述访问控制条件时,从所述第三方密码服务(150)中检索所述密码密钥(212);以及
使用所述密码密钥(212)来对所述加密内容(122)进行解密。
25.根据权利要求24所述的系统,其中,所述解密请求(190D)包括认证令牌,所述认证令牌指示所述解密请求(190D)的请求者被授权接收所述密码密钥(212)。
26.根据权利要求25所述的系统,其中,所述认证令牌包括JavaScript对象表示法(JSON)web令牌,所述JSON web令牌包括基于公钥基础设施(PKI)证书的签名。
27.根据权利要求24-26中的任一项所述的系统,其中,所述访问控制条件包括针对所述内容(120)的用户配置的访问控制条件。
28.根据权利要求24-27中的任一项所述的系统,其中,所述第三方密码服务(150)原始用密钥加密密钥(KEK)使用对称加密来对所述封装(152)进行加密。
29.根据权利要求24-28中的任一项所述的系统,其中,所述第三方密码服务(150)对应于分布式存储系统的密钥服务管理器(KSM)或所述分布式存储系统的硬件安全模块(HSM)设备。
30.根据权利要求24-29中的任一项所述的系统,其中,所述访问控制条件对应于用于动态访问控制的相应条件。
CN202080084949.8A 2019-12-10 2020-12-08 带访问控制谓词的包装密钥 Pending CN114788221A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/709,334 US11483136B2 (en) 2019-12-10 2019-12-10 Wrapped keys with access control predicates
US16/709,334 2019-12-10
PCT/US2020/063846 WO2021119036A1 (en) 2019-12-10 2020-12-08 Wrapped keys with access control predicates

Publications (1)

Publication Number Publication Date
CN114788221A true CN114788221A (zh) 2022-07-22

Family

ID=74106183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080084949.8A Pending CN114788221A (zh) 2019-12-10 2020-12-08 带访问控制谓词的包装密钥

Country Status (4)

Country Link
US (2) US11483136B2 (zh)
EP (1) EP4062582A1 (zh)
CN (1) CN114788221A (zh)
WO (1) WO2021119036A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354439B2 (en) * 2020-06-03 2022-06-07 International Business Machines Corporation Content control through third-party data aggregation services

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2399906B (en) 2003-03-22 2006-10-04 Hewlett Packard Development Co Method and system for delegating authority and access control methods based on delegated authority
US20080063206A1 (en) 2006-09-07 2008-03-13 Karp James M Method for altering the access characteristics of encrypted data
US20110225202A1 (en) * 2007-08-21 2011-09-15 International Business Machines Corporation Multi-dimensional access control list
KR101336349B1 (ko) 2009-11-20 2013-12-04 니폰덴신뎅와 가부시키가이샤 암호 처리 시스템, 키 생성 장치, 키 위양 장치, 암호화 장치, 복호 장치, 암호 처리 방법 및 암호 처리 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
US8601600B1 (en) 2010-05-18 2013-12-03 Google Inc. Storing encrypted objects
US8909943B1 (en) 2011-09-06 2014-12-09 Google Inc. Verifying identity
US8914632B1 (en) * 2011-12-21 2014-12-16 Google Inc. Use of access control lists in the automated management of encryption keys
US8996887B2 (en) * 2012-02-24 2015-03-31 Google Inc. Log structured volume encryption for virtual machines
US9258301B2 (en) * 2013-10-29 2016-02-09 Airwatch Llc Advanced authentication techniques
US20160036826A1 (en) * 2014-07-29 2016-02-04 Mcafee, Inc. Secure content packaging using multiple trusted execution environments
US9436849B2 (en) 2014-11-21 2016-09-06 Sze Yuen Wong Systems and methods for trading of text based data representation
US9984238B1 (en) 2015-03-30 2018-05-29 Amazon Technologies, Inc. Intelligent storage devices with cryptographic functionality
US9971879B2 (en) * 2016-05-26 2018-05-15 Adobe Systems Incorporated Secure recording and rendering of encrypted multimedia content
US10298402B2 (en) * 2016-06-27 2019-05-21 Google Llc Access control technology for peer-to-peer sharing
WO2018236420A1 (en) * 2017-06-20 2018-12-27 Google Llc CLOUD EQUIPMENT SECURITY MODULES FOR CRYPTOGRAPHIC EXTERNALIZATION OPERATIONS
US11347868B2 (en) 2018-04-17 2022-05-31 Domo, Inc Systems and methods for securely managing data in distributed systems
US10764276B2 (en) * 2018-08-31 2020-09-01 Sap Se Certificate-initiated access to services

Also Published As

Publication number Publication date
US20230021749A1 (en) 2023-01-26
US20210176050A1 (en) 2021-06-10
EP4062582A1 (en) 2022-09-28
WO2021119036A1 (en) 2021-06-17
US11483136B2 (en) 2022-10-25

Similar Documents

Publication Publication Date Title
CN109104281B (zh) 令牌化硬件安全模块
US10897459B2 (en) Addressing a trusted execution environment using encryption key
EP3574622B1 (en) Addressing a trusted execution environment
US10880100B2 (en) Apparatus and method for certificate enrollment
KR101648364B1 (ko) 대칭키 암호화와 비대칭키 이중 암호화를 복합적으로 적용한 암/복호화 속도개선 방법
US11075753B2 (en) System and method for cryptographic key fragments management
US11783091B2 (en) Executing entity-specific cryptographic code in a cryptographic coprocessor
US20180212941A1 (en) Digital credential issuing system and method
CN109711178B (zh) 一种键值对的存储方法、装置、设备及存储介质
Junghanns et al. Engineering of secure multi-cloud storage
US20230021749A1 (en) Wrapped Keys with Access Control Predicates
US10491387B2 (en) End-to-end encryption of a block storage device with protected key
US20220014365A1 (en) Distributing encrypted data objects with encryption information as metadata
US20210111901A1 (en) Executing entity-specific cryptographic code in a trusted execution environment
US11611558B2 (en) Integration of third-party encryption key managers with cloud services
US11232219B1 (en) Protection of electronic designs
US11683159B2 (en) Hybrid content protection architecture
JP7385025B2 (ja) 暗号化コプロセッサにおけるエンティティ固有の暗号化コードの実行
Mudgal et al. ‘International journal of engineering sciences & research technology enhancing data security using encryption and splitting technique over multi-cloud environment
CN111954879B (zh) 互不信任的飞地
KR20230070772A (ko) 블록체인 기반 클라우드 스토리지 시스템 및 상기 시스템에서의 접근 권한 제어 방법
CN111954879A (zh) 互不信任的飞地
Hameed et al. Toward Managing Security Cost for Healthcare Information

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