CN112005522A - 基于云的密钥管理 - Google Patents

基于云的密钥管理 Download PDF

Info

Publication number
CN112005522A
CN112005522A CN201980027266.6A CN201980027266A CN112005522A CN 112005522 A CN112005522 A CN 112005522A CN 201980027266 A CN201980027266 A CN 201980027266A CN 112005522 A CN112005522 A CN 112005522A
Authority
CN
China
Prior art keywords
dek
client
wrapped
encryption
key
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.)
Granted
Application number
CN201980027266.6A
Other languages
English (en)
Other versions
CN112005522B (zh
Inventor
S·V·维帕
P·米什拉
S·卡蒂
V·K·拉维
H·W·洛克哈特
R·凯沙瓦
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.)
Oracle International Corp
Original Assignee
Oracle International Corp
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 Oracle International Corp filed Critical Oracle International Corp
Publication of CN112005522A publication Critical patent/CN112005522A/zh
Application granted granted Critical
Publication of CN112005522B publication Critical patent/CN112005522B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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
    • 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/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/083Key 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]
    • 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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/107Network architectures or network communication protocols for network security for controlling access to devices or network resources wherein the security policies are location-dependent, e.g. entities privileges depend on current location or allowing specific operations only from locally connected terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

实施例涉及在基于多租户云的系统中管理密码密钥。实施例从客户端接收对包装的数据加密密钥(“DEK”)的请求。实施例生成随机密钥并获取与客户端对应的加密上下文。实施例生成包装的DEK,该包装的DEK包括随机密钥和在包装的DEK中被编码的加密上下文。实施例然后将包装的DEK返回给客户端。

Description

基于云的密钥管理
技术领域
一个实施例一般而言涉及基于云的计算机系统,并且特别地涉及基于云的计算机系统中的密码密钥的管理。
背景技术
密钥管理服务(“key management service,KMS”)提供对密码系统中的密码密钥的管理。管理包括生成、交换、存储、使用、密码粉碎(即,销毁)和密钥替换的功能。它包括密码协议设计、密钥服务器、用户过程和其它相关协议。
KMS中的密钥是表示一个或多个密钥版本的逻辑实体,该一个或多个密钥版本包含用于加密和解密数据的密码材料,从而在存储数据的地方保护数据。当密钥作为加密算法的一部分被处理时,密钥指定在加密期间如何将明文转换成密文,以及在解密期间如何将密文转换成明文。一般而言,KMS识别两种类型的加密密钥:主加密密钥(“MEK”)和数据加密密钥(“DEK”)。在用户已使用KMS创建主加密密钥之后,用户然后可以使用API来生成KMS返回给用户的数据加密密钥。KMS返回原始密钥和包装的(wrapped)密钥。通常,用户将仅存储包装的密钥。
发明内容
实施例涉及在基于多租户云的系统中管理密码密钥。实施例从客户端接收对包装的数据加密密钥(“DEK”)的请求。实施例生成随机密钥并获取与客户端对应的加密上下文。实施例生成包装的DEK,该包装的DEK包括随机密钥和在包装的DEK中被编码的加密上下文。实施例然后将包装的DEK返回给客户端。
附图说明
图1图示了根据本发明的实施例的KMS的高级概览。
图2是根据本发明的实施例的计算机服务器/系统的框图。
图3是根据实施例的用于通过KMS生成包装的DEK的功能的流程图。
图4是根据实施例的用于通过KMS解开(unwrap)包装的DEK的功能的流程图。
具体实施方式
一个实施例通过包括定制标签和值来生成包装的数据加密密钥(“DEK”),这些定制标签和值被编码在包装的DEK的报头中并且用作权威属性。然后,当接收到解开包装的DEK或以其它方式授权访问包装的DEK的请求时,这些标签和值将用于强制执行策略决策。
如所公开的,通过密钥管理服务(“KMS”)将包装的DEK发布给请求者(例如,用户或应用)。随后将包装的DEK呈现回KMS,以解开包装的DEK。KMS有责任对请求者进行授权。但是,在云环境中,用户、应用和包装的DEK的数量可能非常多。需要处理由KMS针对包装的DEK进行授权访问的解决方案,在某些示例中,包装的DEK的数量可能超过一百万。
图1图示了根据本发明的实施例的KMS 70的高级概览。多个KMS客户端72使用代表性状态转移(“REST”)应用接口(“API”)从一个或多个web服务器76请求密钥。可以请求和利用密钥的客户端72包括数据库81。在一个实施例中,数据库81是来自Oracle公司的数据库,该数据库包括透明数据加密(“TDE”),该透明数据加密使得能够对存储在表和表空间中的敏感数据进行加密。在加密数据之后,当授权用户或应用访问该数据时,为他们透明地解密该数据。在这个实施例中,数据库81包括KMS-DB代理85。其它发出请求的客户端72可以包括云环境中的各种云服务82、各种客户应用83或由账户管理员操作的管理控制台84。
在一个实施例中,一个或多个web服务器76是基于云的服务器。在实施例中,web服务器76由中间层部件76实现,该中间层部件76公开了基于REST API 75的用于跨域身份管理(“SCIM”)的系统。在一个实施例中,中间层76包括与数据层92通信的一组无状态微服务。
在一个实施例中,可以实现中间层76的微服务是独立可部署的服务。在一个实施例中,术语“微服务”设想了软件架构设计模式,其中复杂应用由小型独立进程组成,这些小型独立进程使用语言无关的API彼此通信。在一个实施例中,微服务是小型高度解耦的服务,并且每个微服务可以专注于做小任务。在一个实施例中,微服务架构样式是将单个应用开发为一套小服务的方法,每个小服务在其自己的进程中运行并使用轻量级机制(例如,超文本传输协议(“HTTP”)资源API)进行通信。在一个实施例中,相对于执行相同功能中的全部或许多功能的单件式服务,微服务更容易更换。而且,每个微服务可以被更新而不会对其它微服务产生不利影响。相比之下,对单件式服务的一部分的更新可能非期望地或无意地对单件式服务的其它部分产生负面影响。在一个实施例中,微服务可以围绕其能力被有益地组织。在一个实施例中,微服务集合中的每一个微服务的启动时间远小于集中执行这些微服务的所有服务的单个应用的启动时间。在一些实施例中,这种微服务中的每一个微服务的启动时间是大约一秒或更少,而这种单个应用的启动时间可以是大约一分钟、若干分钟或更长。
在一个实施例中,诸如中间层76的微服务体系架构是指用于面向服务的架构(“SOA”)的专业化(即,系统内任务的分离)和实现方法,以构建灵活的、独立可部署的软件系统。微服务架构中的服务是经网络彼此通信以便履行目标的进程。在一个实施例中,这些服务使用技术无关的协议。在一个实施例中,服务具有小粒度并使用轻量级协议。在一个实施例中,服务是独立可部署的。通过将系统的功能分配到不同的小型服务中,增强了系统的内聚性并降低了系统的耦合度。这使得更容易在任何时间改变系统以及向系统添加功能和质量。它还允许个体服务的体系架构通过不断的重构而显现,从而减少了对大型前期设计的需求,并且允许及早和持续地发布软件。
在一个实施例中,在微服务架构中,应用被开发作为服务的集合,并且每个服务运行相应的进程并使用轻量级协议(例如,用于每个微服务的唯一API)进行通信。在微服务架构中,取决于要提供的服务,将软件分解成各个服务/能力可以以不同的粒度级别来执行。服务是运行时部件/进程。每个微服务是可以与其它模块/微服务交谈的自包含模块。每个微服务具有可以被其它微服务联系的未命名的通用端口。在一个实施例中,微服务的未命名的通用端口是微服务按照惯例暴露并允许同一服务中的任何其它模块/微服务与其交谈的标准通信信道(例如,作为常规的HTTP端口)。微服务或任何其它自包含的功能模块可以被统称为“服务”。
数据层92包括硬件安全模块(“HSM”)94和数据库95。HSM是物理计算设备,该物理计算设备保护和管理用于进行强认证的数字密钥并提供密码处理。这些模块通常以插入卡或直接附接到计算机或网络服务器的外部设备的形式出现。MEK驻留在HSM 94和HSM 94内,以提供涉及MEK的密码服务。应用密钥和所有元数据都存储在数据库95内。在一些实施例中,以高可用性(“HA”)和灾难恢复(“DR”)实现中间层76和数据层92的所有部件。
在一个实施例中,中间层76和数据层92由认证服务实现,该认证服务由身份云服务(“IDCS”)提供,该身份云服务是来自Oracle公司的多租户云规模身份访问管理(“IAM”)平台。IDCS提供认证、授权、审核和联合。IDCS管理对在公共云和设施内(on-premise)系统上运行的定制应用和服务的访问。在替代或附加实施例中,IDCS还可以管理对公共云服务的访问。例如,IDCS可以用于在各种服务/应用/系统中提供单点登录(“SSO”)功能。用户和客户端必须首先向IDCS进行认证,并获得适合KMS访问的令牌。外围设备授权由IDCS云门(Cloud Gate)强制执行。对KMS API的细粒度访问由授权模块利用用于区分客户端和管理员的适当范围和角色强制执行。IDCS的附加细节在编号为9,838,376的美国专利中公开,该专利的公开内容通过引用并入本文。
图2是根据本发明的实施例的计算机服务器/系统10的框图。虽然示出为单个系统,但是系统10的功能可以被实现为分布式系统。此外,本文公开的功能可以在可以通过网络耦合在一起的单独的服务器或设备上实现。此外,可以不包括系统10的一个或多个部件。例如,对于服务器的功能,系统10可能需要包括处理器和存储器,但是可能不包括图2中所示的一个或多个其它部件(诸如键盘或显示器)。在一些实施例中,系统10的全部或部分可以用于实现图1所示的任何或所有部件。
系统10包括用于传送信息的总线12或其它通信机制,以及耦合到总线12用于处理信息的处理器22。处理器22可以是任何类型的通用或专用处理器。系统10还包括用于存储将由处理器22执行的信息和指令的存储器14。存储器14可以由随机存取存储器(“RAM”)、只读存储器(“ROM”)、诸如磁盘或光盘的静态存储装置或任何其它类型的计算机可读介质的任何组合组成。系统10还包括通信设备20,诸如网络接口卡,以提供对网络的访问。因此,用户可以直接地或通过网络远程地或任何其它方法与系统10对接。
计算机可读介质可以是可以由处理器22访问的任何可用介质,并且包括易失性和非易失性介质、可移除和不可移除介质以及通信介质。通信介质可以包括计算机可读指令、数据结构、程序模块或调制数据信号中的其它数据,诸如载波或其它传输机制,并且包括任何信息传递介质。
处理器22还经由总线12耦合到显示器24,诸如液晶显示器(“LCD”)。键盘26和光标控制设备28(诸如计算机鼠标)还耦合到总线12,以使得用户能够与系统10对接。
在一个实施例中,存储器14存储当由处理器22执行时提供功能的软件模块。这些模块包括为系统10提供操作系统功能的操作系统15。这些模块还包括提供KMS功能以及本文公开的所有其它功能的KMS模块16。系统10可以是更大系统的一部分。因此,系统10可以包括一个或多个附加功能模块18以包括附加功能,诸如以上公开的IDCS功能。数据库17耦合到总线12以向模块16和18提供集中式存储并存储密钥、口令等。在一个实施例中,数据库17是可以使用结构化查询语言(“SQL”)来管理存储的数据的关系数据库管理系统(“RDBMS”)。
结合解开包装的DEK,已知的KMS解决方案对用户提供的属性(称为附加认证数据(“AAD”))应用认证和授权。AAD是认证加密模式的特征,诸如Galois/计数器模式(“GCM”)。在GCM中,加密的所有数据也受到完整性保护(即,经认证)。要进行完整性保护(即,经认证)但未加密的其它数据被称为AAD。
但是,在已知的解决方案中,用户提供的属性通常是从外部源接收的,并且必须由请求者显式提供。例如,对于来自Amazon公司的“AWS KMS”,使用包装的数据格式,并且解开可以包括考虑AAD,AAD是加密上下文的编码,并且不以包装的数据格式存在。在解开处理中必须将可选的AAD与包装的DEK一起提供(即,由操作员控制)作为REST API的参数。
类似地,对于来自Google公司的“云KMS(Cloud KMS)”,指示用户在当加密文件时使用了附加认证数据的情况下当解密密文时必须指定相同的附加认证数据(即,不提供包装的密钥本身)。
与已知的解决方案相比,实施例通过使用在包装的数据加密密钥中隐含可用的权威属性优化数据加密密钥访问来提高包装的DEK授权请求的功效。具体而言,在实施例中,包装的DEK由例如在https://tools.ietf.org/html/rfc7516公开的标准JavaScript对象表示法(“JSON”)Web加密(“JWE”)结构表示。实施例以包装/加密的格式对定制属性进行编码。此外,在包装的DEK的受JWE保护的报头中设置定制标签和值。除了利用用户和组信息来强制访问包装的DEK之外,还使用在包装的DEK中被编码的标签和值。请求者无需显式提供标签。代替地,从包装的DEK中隐式获得标签。标签用于对包装的DEK强制执行进一步的授权。
当通过KMS的实施例构造包装的DEK时,必要的标签/值被编码在包装的DEK中。因此,标签/值集合可以被视为由可信机构设置。
由KMS的实施例设置的标签可以用于强制执行策略决策,诸如:
·在诸如IDCS的基于云的环境中,不同客户/租户无法解开为给定客户/租户制造(或请求)的DEK。
·给定数据中心的应用或管理员可以管理包装的数据加密,假如它们是在同一数据中心中创建的。
·包装的DEK应该仅能在相同的法律管辖范围内被解开,以确保和维护世界各地许多政府正在开始强制执行的数据主权、居住权和本地化规则的神圣性(sanctity)。
在实施例中,通过将标签/值嵌入在表示期望的策略目标的包装的DEK中来强制执行策略决策。可以附加地将策略标识符或提示作为标签/值嵌入在包装的DEK中。
在运行时,对于授权决策,实施例从包装的DEK中获取标签信息,并与属于用户的标签信息进行比较,诸如用户正在从哪里登录,或者用户拥有的组或管理员特权。如果存在足够的匹配,那么授权决策成功,并且允许解开。
为了授权访问包装的DEK而嵌入和隐式获取标签是对现有解决方案的技术改进。
在实施例中,当使用REST API/admin/v1/DataEncryptionKeyGenerator创建DEK时,包装的DEK作为响应被返回给客户端/用户。虽然解开DEK是由HSM 94(MEK所在的地方)执行的,但是包装的DEK的格式是由KMS的实施例定义的。
除了基于角色的访问控制(“RBAC”)以及利用如上所述的属性之外,使用实施例的细粒度访问利用隐式嵌入在包装的DEK中的标签(和值)。
在实施例中,以下附加标签可以被嵌入在所生成的包装的DEK中:
“urn:opc:kms:regionID”:“uscom-central-1”,
“urn:opc:kms:locationID”:“uscom”,
“urn:opc:kms:siID”:“FF91E56E58F34CB8A806A86137966627”,
“SIID”是指服务实例标识符,该服务实例标识符在诸如IDCS的多租户密钥管理云解决方案中识别租户(即,条带(stripe)或接头(splice))。如果所呈现的(来自包装的DEK输入有效载荷)SIID与当前执行上下文(即,请求所针对的上下文)SIID不同,那么包装的DEK在错误的客户租赁中被呈现。因此,请求将被拒绝。
IDCS和Oracle公共云被托管在区域和可用性域中。区域是本地化的地理地区,并且可用性域是位于区域内的一个或多个数据中心。区域由若干可用性域组成。大多数资源是特定于区域的(诸如,虚拟云网络),或者是特定于可用性域的(诸如,计算实例)。
嵌入在包装的密钥中的“regionId”对应于区域。位置是区域的聚合。数据管辖权可以或可以不与区域和位置一致。但是,可以设计外部策略映射以从区域派生数据管辖权。因此,在一些实施例中,重要的是跟踪在何处制造密钥以及从何处请求/访问密钥。
在实施例中,实际属性(及其值)不是真正关注的问题。如下所述,对标签的验证在解开包装的DEK之前进行,因此这是优化。
实施例对已知解决方案进行了改进,以通过利用嵌入在包装的DEK中的可能有助于授权决策的属性来优化请求者是否被授权解开包装的DEK的授权决策评估。无需附加步骤来获取这些资源属性(即,来自包装的DEK的属性),因为其已经存在于资源中。这本身就是优化。此外,解开包装的DEK是由HSM执行的密码密集型操作。通过在解开之前验证标签,实施例可以确定客户是否已经错误地将包装的DEK呈现给了KMS实例。这是进一步的优化。
实施例使用JWE来表示包装的DEK,以向KMS提供开放且可互操作的DEK表示形式。可以在JWE中编码任意标签/值。标签可以用于识别包装的DEK。此外,嵌入的标签/值用于对包装的DEK上的操作强制执行访问控制。实施例从包装的DEK(从嵌入的标签)隐式导出授权信息,以对包装的DEK强制执行访问。
包装的DEK是自描述的封装的数据结构,其具有对用于加密DEK的MEK(受保护报头中的kid)的引用以及加密(包装算法)A256GCM。该结构是JSON Web加密(“JWE”)结构。在实施例中,包装的和解开的(RawKey)DataEncryptionKey的格式如下:
Figure BDA0002734908660000091
Figure BDA0002734908660000101
Figure BDA0002734908660000111
图3是根据实施例的用于通过KMS生成包装的DEK的功能的流程图。在实施例中,图3的功能由图2的KMS模块16或图1的中间层76和数据层92实现。在一个实施例中,图3(以及下面的图4)的流程图的功能由存储在存储器或其它计算机可读或有形介质中的软件实现,并由处理器执行。在其它实施例中,功能可以由硬件(例如,通过使用专用集成电路(“ASIC”)、可编程门阵列(“PGA”)、现场可编程门阵列(“FPGA”)等)、或由硬件和软件的任何组合执行。
在302处,(在多租户实施例中)对于给定服务实例,从客户端接收对包装的DEK和原始DEK的请求。一般而言,原始DEK是未包装的密钥,没有元数据或任何其它附加到其的信息。在实施例中,经由REST API接收请求。在实施例中,客户端是诸如IDCS的多租户服务或另一种类型的云服务的一部分。
在304处,生成随机密钥“K”。
在306处,获取包括regionID(在具有多个地理区域的实施例中)、serviceID和locationID的AAD信息(或更一般地,“加密上下文”)。在实施例中,locationID指示客户端从其做出请求的位置。
在308处,使用来自304的随机密钥和来自306的AAD信息以生成包装的DEK。
在310处,生成JWE响应,该JWE响应包括受保护的报头、加密密钥、初始化向量(IV)和认证TAG(标签)。IV是随机的、不可预测的值,它不是秘密的并且在每次加密开始时使用。认证加密模式(例如,GCM)中的认证TAG是用作校验和以确定数据是否已经以任何方式被更改的值。如果数据尚未被修改,那么传输的和计算的标签必须相同。TAG保护加密的数据和AAD两者。
在312处,包装的DEK和原始DEK作为响应被返回给客户端。
图4是根据实施例的用于通过KMS解开包装的DEK的功能的流程图。在实施例中,图4的功能由图2的KMS模块16或由图1的中间层76和数据层92实现。
在402处,对于给定服务实例,接收解开包装的DEK的请求(在多租户实施例中)。在实施例中,经由REST API接收请求,并且包装的DEK处于JWE的形式。
在404处,以JWE的形式解析包装的DEK。
在406处,如果解析状态失败,那么功能结束并且输出错误消息。如果输入中已经存在语法错误,那么解析状态失败。
在408处,在下面从410开始的功能中验证AAD详细信息。在实施例中,通过确定诸如regionID、serviceID和locationID的值是否出现在定义的区域、服务或位置的列表中来验证它们,当在基于云的系统中建立客户分区时,定义的区域、服务或位置的列表通过管理方式被分配。
在410处,验证regionID。如果无效,那么功能终止,并输出错误消息。
在412处,验证serviceID。如果无效,那么功能终止,并输出错误消息。
在414处,验证locationID。如果无效,那么功能终止,并输出错误消息。
在416处,验证HSM中MEK的存在。如果无效,那么功能终止,并输出错误消息。
在418处,HSM使用包装的DEK、IV和AAD来解开包装的DEK。因此,实施例中的所有验证都在解开包装的DEK(即,包装的密钥被解密)之前进行。
在420处,解开的原始密钥被返回给客户端。
虽然如上所述实施例使用了AAD中的regionID、serviceID和locationID的值,但是可以使用可能有助于验证请求的任何其它标签/值/参数。包装的密钥将在其被创建时在AAD字段中存储适当的值。这些值不是秘密,但是由于它们位于AAD中,因此在没有检测到的情况下,它们的值不能被修改。当密钥即将被解开并使用时,将从配置数据中确定“正确的”值,并将其与AAD中存储的值进行比较。如果它们不匹配,那么密钥将不可用。
不同的策略可以确定必须存在哪些项(item)以及它们必须匹配什么。这主要是为了检测配置错误,因为拥有包装的密钥的任何人都将能够读取AAD字段。但是,如果API控制执行哪些检查以及从何处获取配置的值,那么这可以用作安全措施,从而防止在错误的上下文中使用密钥。
如所公开的,实施例生成了具有嵌入在密钥报头中的AAD的包装的DEK密钥。然后,当接收到解开包装的DEK的请求时,KMS将使用嵌入的AAD用于验证。因此,不需要外部AAD。
本文具体图示和/或描述了若干实施例。但是,将认识到的是,在不脱离本发明的精神和预期范围的情况下,以上教导涵盖所公开实施例的修改和变型并且这些修改和变型在所附权利要求的范围内。

Claims (20)

1.一种在基于多租户云的系统中管理密码密钥的方法,所述方法包括:
从客户端接收对包装的数据加密密钥(DEK)的请求;
生成随机密钥;
获取与客户端对应的加密上下文;
生成包装的DEK,该包装的DEK包括随机密钥和在该包装的DEK中被编码的加密上下文;以及
将包装的DEK返回给客户端。
2.如权利要求1所述的方法,其中加密上下文包括客户端的位置、客户端的区域或客户端的租户中的至少一个。
3.如权利要求1所述的方法,其中加密上下文包括附加认证数据。
4.如权利要求1所述的方法,其中包装的DEK包括报头,并且加密上下文在报头中被编码。
5.如权利要求1所述的方法,其中包装的DEK包括JavaScript对象标记(JSON)Web加密(JWE)结构。
6.如权利要求1所述的方法,还包括:
接收解开包装的DEK的请求;
解析包装的DEK;
基于客户端验证加密上下文;
验证硬件安全模块(HSM)中主加密密钥(MEK)的存在;以及
返回解开的DEK。
7.如权利要求1所述的方法,所述生成包装的DEK还包括初始化向量(IV)和认证TAG密钥。
8.如权利要求1所述的方法,其中所述请求包括代表性状态转移(REST)应用程序接口(API)。
9.一种其上存储有指令的计算机可读介质,所述指令在由处理器执行时使所述处理器在基于多租户云的系统中管理密码密钥,所述管理包括:
从客户端接收对包装的数据加密密钥(DEK)的请求;
生成随机密钥;
获取与客户端对应的加密上下文;
生成包装的DEK,该包装的DEK包括随机密钥和在该包装的DEK中被编码的加密上下文;以及
将包装的DEK返回给客户端。
10.如权利要求9所述的计算机可读介质,其中加密上下文包括客户端的位置、客户端的区域或客户端的租户中的至少一个。
11.如权利要求9所述的计算机可读介质,其中加密上下文包括附加认证数据。
12.如权利要求9所述的计算机可读介质,其中包装的DEK包括报头,并且加密上下文在报头中被编码。
13.如权利要求9所述的计算机可读介质,其中包装的DEK包括JavaScript对象标记(JSON)Web加密(JWE)结构。
14.如权利要求9所述的计算机可读介质,所述管理还包括:
接收解开包装的DEK的请求;
解析包装的DEK;
基于客户端验证加密上下文;
验证硬件安全模块(HSM)中主加密密钥(MEK)的存在;以及
返回解开的DEK。
15.如权利要求9所述的计算机可读介质,所述生成包装的DEK还包括初始化向量(IV)和认证TAG密钥。
16.如权利要求9所述的计算机可读介质,其中所述请求包括代表性状态转移(REST)应用程序接口(API)。
17.一种基于多租户云的密钥管理系统,包括:
包括一个或多个微服务的中间层;以及
耦合到中间层并且包括一个或多个数据库和一个或多个硬件安全模块的数据层;
所述一个或多个微服务:
从客户端接收对包装的数据加密密钥(DEK)的请求;
生成随机密钥;
获取与客户端对应的加密上下文;
生成包装的DEK,该包装的DEK包括随机密钥和在该包装的DEK中被编码的加密上下文;以及
将包装的DEK返回给客户端。
18.如权利要求17所述的基于多租户云的密钥管理系统,其中加密上下文包括客户端的位置、客户端的区域或客户端的租户中的至少一个。
19.如权利要求17所述的基于多租户云的密钥管理系统,其中包装的DEK包括JavaScript对象标记(JSON)Web加密(JWE)结构。
20.如权利要求17所述的基于多租户云的密钥管理系统,所述一个或多个微服务还:
接收解开包装的DEK的请求;
解析包装的DEK;
基于客户端验证加密上下文;
验证硬件安全模块(HSM)中主加密密钥(MEK)的存在;以及
返回解开的DEK。
CN201980027266.6A 2018-06-21 2019-05-15 基于云的密钥管理 Active CN112005522B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IN201841023140 2018-06-21
IN201841023140 2018-06-21
US16/269,736 2019-02-07
US16/269,736 US11398900B2 (en) 2018-06-21 2019-02-07 Cloud based key management
PCT/US2019/032434 WO2019245676A1 (en) 2018-06-21 2019-05-15 Cloud based key management

Publications (2)

Publication Number Publication Date
CN112005522A true CN112005522A (zh) 2020-11-27
CN112005522B CN112005522B (zh) 2024-06-11

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601600B1 (en) * 2010-05-18 2013-12-03 Google Inc. Storing encrypted objects
US8914632B1 (en) * 2011-12-21 2014-12-16 Google Inc. Use of access control lists in the automated management of encryption keys

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8601600B1 (en) * 2010-05-18 2013-12-03 Google Inc. Storing encrypted objects
US8914632B1 (en) * 2011-12-21 2014-12-16 Google Inc. Use of access control lists in the automated management of encryption keys

Also Published As

Publication number Publication date
WO2019245676A1 (en) 2019-12-26
US20190394024A1 (en) 2019-12-26
JP2021527970A (ja) 2021-10-14
JP2024054263A (ja) 2024-04-16
EP3811558A1 (en) 2021-04-28
US11398900B2 (en) 2022-07-26

Similar Documents

Publication Publication Date Title
US11398900B2 (en) Cloud based key management
Fabian et al. Collaborative and secure sharing of healthcare data in multi-clouds
US9026805B2 (en) Key management using trusted platform modules
US8447983B1 (en) Token exchange
EP2513804B1 (en) Trustworthy extensible markup language for trustworthy computing and data services
US9461821B1 (en) System and method for key material protection on devices using a secret sharing scheme
US10615970B1 (en) Secure key exchange electronic transactions
EP3704621A1 (en) Secure identity and profiling system
US20060149962A1 (en) Network attached encryption
US8990553B2 (en) Perimeter encryption method and system
KR20050026478A (ko) 암호화된 네트워크
CN108701094A (zh) 在基于云的应用中安全地存储和分发敏感数据
CN108270739B (zh) 一种管理加密信息的方法及装置
WO2011059810A2 (en) Containerless data for trustworthy computing and data services
CN115242518A (zh) 混合云环境下医疗健康数据保护系统与方法
US20240080207A1 (en) Dynamic certificate management in cryptographic agility frameworks
CN112491544A (zh) 一种平台数据动态加密的方法及系统
US20170093752A1 (en) Access control for named domain networking
WO2022144024A1 (en) Attribute-based encryption keys as key material for key-hash message authentication code user authentication and authorization
CN112005522B (zh) 基于云的密钥管理
Zhang Research on the application of computer big data technology in cloud storage security
US11954672B1 (en) Systems and methods for cryptocurrency pool management
EP3793130A1 (en) Secure decentralized cloud computing with privacy controls
Spyra Embedded document security using sticky policies and identity based encryption
Athanere et al. Computer and Information Sciences

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
GR01 Patent grant