CN109076054B - 用于管理单点登录应用程序的加密密钥的系统和方法 - Google Patents

用于管理单点登录应用程序的加密密钥的系统和方法 Download PDF

Info

Publication number
CN109076054B
CN109076054B CN201680083810.5A CN201680083810A CN109076054B CN 109076054 B CN109076054 B CN 109076054B CN 201680083810 A CN201680083810 A CN 201680083810A CN 109076054 B CN109076054 B CN 109076054B
Authority
CN
China
Prior art keywords
key
cloud service
decrypting
service
master 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.)
Active
Application number
CN201680083810.5A
Other languages
English (en)
Other versions
CN109076054A (zh
Inventor
I·索科洛夫
K·纽斯塔特
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.)
Keane Digital Co
Original Assignee
Norton Weifuke Co
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 Norton Weifuke Co filed Critical Norton Weifuke Co
Publication of CN109076054A publication Critical patent/CN109076054A/zh
Application granted granted Critical
Publication of CN109076054B publication Critical patent/CN109076054B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • 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/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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Abstract

本发明公开了用于管理单点登录应用程序的加密密钥的计算机实现的方法,所述计算机实现的方法可以包括:(1)从身份服务接收关于对访问云服务上的加密数据的请求的通知,所述通知包括用于对主密钥进行加密和解密的会话密钥,所述主密钥用于对云服务密钥进行解密;(2)导出所述主密钥;(3)使用所述主密钥对用于对所述云服务上的数据进行解密的云服务密钥进行解密;(4)存储使用所述会话密钥加密的所述主密钥;(5)接收关于对访问附加云服务上的加密数据的附加请求的附加通知,所述通知包括所述会话密钥;(6)在不再从用户获得认证元素的情况下,对所述主密钥进行解密;以及(7)使用所述主密钥对用于对附加云服务上的数据进行解密的附加云服务密钥进行解密。本发明还公开了各种其他方法、系统和计算机可读介质。

Description

用于管理单点登录应用程序的加密密钥的系统和方法
背景技术
越来越多的个体和组织正在使用基于云的系统进行数据存储,即使对于敏感数据也如此。在大多数的情况下,云数据存储系统由具有良好声誉的大型公司运营,这些公司依靠最佳实践来确保其客户端数据的安全性。遗憾的是,如一些广泛报道的存储在云服务中的敏感数据泄露所证明,即使最佳实践也有可能无法充分保护敏感数据。
存储在云服务中的数据往往在多个点处易受攻击。可获得或猜测帐户用户名和密码的任何人都可访问用户的云服务帐户。数据可以在用户与云服务之间的任一方向上未加密地或以仅弱加密的方式进行传输。云服务所采用的系统管理员或数据备份服务可能能够访问用户数据并将其传输到未授权接收方。而且,虽然云服务可以以加密形式存储用户数据但是对数据进行解密所需的密码密钥仍可由云服务的系统管理员访问。
由于云服务所使用的大多数的安全实践通常仍是保密的,因此用户可能仅凭云服务的声誉来确保他们已经实施适当的安全措施。一些大型组织试图通过运营自己的云存储服务来确保其敏感数据得到充分保护。即使如此,这些组织仍然依靠他们所采用的系统管理员的权限和完整性来确保正确实施数据安全策略。
即使当用户使用其他人无法访问的强密码保护其帐户时,他们的数据在向云服务和从云服务传输时仍被安全加密,并且云服务已经实施最佳数据安全实践,因此云服务可能仍有义务在政府进行合法要求时发布敏感数据。对于用户来说,实施这些措施也可能是不方便的,因为每次在他们访问基于云的应用程序时都会要求他们提供认证凭据。因此,本公开识别并解决了对用于管理单点登录应用程序的加密密钥的附加且改善的系统和方法的需要。
发明内容
如将在下文更详细地描述的,本公开描述了用于管理单点登录应用程序的加密密钥的各种系统和方法。所公开的系统和方法通过使用主密钥对密钥进行加密并且以加密形式存储密钥来保持密钥以用于对云服务中的数据进行解密。所公开的系统和方法促进加密密钥在不同位置中的存储,这取决于云服务的需要和所期望的数据安全级别。在期望高数据安全级别的情况下,所公开的系统和方法可能不允许云服务访问未加密数据或用于对用户数据进行解密的密钥。
在一个示例中,用于管理单点登录应用程序的加密密钥的计算机实现的方法可以包括:(1)从身份服务接收关于对访问云服务上的加密数据的请求的通知,该通知包括用于对主密钥进行加密和解密的会话密钥,该主密钥用于对云服务密钥进行解密;(2)基于从用户接收的至少一个认证元素而导出主密钥;(3)使用主密钥对用于对云服务上的数据进行解密的云服务密钥进行解密;(4)将使用会话密钥加密的主密钥存储在客户端密钥存储装置中;(5)从身份服务接收关于对访问附加云服务上的加密数据的附加请求的附加通知,该通知包括会话密钥;(6)在不再从用户获得认证元素的情况下,通过使用会话密钥对主密钥进行解密;以及(7)使用主密钥对用于对附加云服务上的数据进行解密的附加云服务密钥进行解密。
在一些示例中,导出主密钥可以包括将散列函数施加到从用户接收的认证元素。在一些示例中,导出主密钥可以包括:(1)基于从用户接收的认证元素而认证用户;(2)响应于认证用户,检索用于对主密钥进行加密和解密的私有密钥,以及(3)使用私有密钥对主密钥进行解密。
在一些示例中,计算机实现的方法还可以包括向云服务提供解密云服务密钥来对加密数据进行解密。在一个实施方案中,计算机实现的方法还可以包括在客户端上接收来自云服务的加密数据以用于使用解密云服务密钥进行解密。在一些示例中,计算机实现的方法还可以包括从云服务接收加密云服务密钥。在一些示例中,计算机实现的方法还可以包括从身份服务接收加密云服务密钥。
在一些实施方案中,接收加密的云服务密钥可以包括接收云服务密钥与会话密钥和/或响应于对身份服务提供云服务密钥的请求,接收云服务密钥。在一个实施方案中,计算机实现的方法还可以包括:在身份服务处,通过向客户端代理提供用于对主密钥进行加密和解密的会话密钥,接收请求以促进对云服务上的加密数据的访问,该主密钥用于对云服务密钥进行解密;以及向客户端代理提供会话密钥。
在一个实施方案中,用于实现上述方法的系统可以包括存储在存储器中的若干模块,诸如(1)会话模块,该会话模块从身份服务接收关于对访问云服务上的加密数据的请求的通知,该通知包括用于对主密钥进行加密和解密的会话密钥,该主密钥用于对云服务密钥进行解密,并且从身份服务接收关于对访问附加云服务上的加密数据的附加请求的附加通知,该通知包括会话密钥;(2)导出模块,该导出模块基于从用户接收的至少一个认证元素而导出主密钥;(3)服务模块,该服务模块使用主密钥对用于对云服务上的数据进行解密的云服务密钥进行解密,并且使用主密钥对用于对附加云服务上的数据进行解密的附加云服务密钥进行解密;(4)加密模块,该加密模块将使用会话密钥加密的主密钥存储在客户端密钥存储装置中;和/或(5)解密模块,该解密模块在不再从用户获得认证元素的情况下,使用会话密钥对主密钥进行解密。系统也可以包括至少一个物理处理器,该至少一个物理处理器被配置为执行会话模块、导出模块、服务模块、加密模块和解密模块。
在一些示例中,可将上述方法编码为非暂态计算机可读介质上的计算机可读指令。例如,非暂态计算机可读介质可以包括一个或多个计算机可读指令,所述一个或多个计算机可读指令在由计算设备的至少一个处理器执行时可以致使计算设备:(1)从身份服务接收关于对访问云服务上的加密数据的请求的通知,该通知包括用于对主密钥进行加密和解密的会话密钥,该主密钥用于对云服务密钥进行解密;(2)基于从用户接收的至少一个认证元素而导出主密钥;(3)使用主密钥对用于对云服务上的数据进行解密的云服务密钥进行解密;(4)将使用会话密钥加密的主密钥存储在客户端密钥存储装置中;(5)从身份服务接收关于对访问附加云服务上的加密数据的附加请求的附加通知,该通知包括会话密钥;(6)在不再从用户获得认证元素的情况下,通过使用会话密钥对主密钥进行解密;以及(7)使用主密钥对用于对附加云服务上的数据进行解密的附加云服务密钥进行解密。
来自上述实施方案中的任何一者的特征可根据本文所述的一般原理彼此结合地使用。通过结合附图和权利要求阅读下面的详细描述,将会更充分地理解这些和其他实施方案、特征和优点。
附图说明
附图示出了多个示例性实施方案并且为说明书的一部分。这些附图结合下面的描述展示并且说明本公开的各种原理。
图1是用于管理单点登录应用程序的加密密钥的示例性系统的框图。
图2是用于管理单点登录应用程序的加密密钥的附加示例性系统的框图。
图3是用于管理单点登录应用程序的加密密钥的示例性方法的流程图。
图4是用于管理单点登录应用程序的加密密钥的附加示例性系统的框图。
图5是能够实现本文描述和/或示出的实施方案中的一个或多个的示例性计算系统的框图。
图6是能够实现本文描述和/或示出的实施方案中的一个或多个的示例性计算网络的框图。
在全部附图中,相同引用字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施方案可以接受进行各种修改和替代形式,但在附图中以举例的方式示出了特定实施方案并且将在本文详细描述这些实施方案。然而,本文所述的示例性实施方案并非旨在限于所公开的特定形式。相反,本发明涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。
具体实施方式
本公开总体涉及用于管理单点登录应用程序的加密密钥的系统和方法。如将在下文更详细地解释的,本文所述的系统和方法可以管理加密密钥以促进单点登录而不损害加密数据的安全性。本文所述的系统和方法可以提供用户对驻留在多个云服务处的加密数据的访问,而不需要进行重新认证且不需要将加密密钥与加密数据一起存储。在所公开的系统的一些实施方案中,云服务从不访问对数据存储装置进行解密所需的密钥,并且在每个加密数据存储装置处的数据可以使用唯一加密密钥进行加密。在一些实施方案中,所公开的系统和方法可促进来自多个设备的单点登录。除了向云应用程序提供单点登录之外,还可以将所公开的系统和方法应用于客户端应用程序。
以下将参考图1、图2和图4提供对用于管理单点登录应用程序的加密密钥的示例性系统的详细描述。还将结合图3提供对应计算机实现的方法的详细描述。另外,将分别结合图5和图6提供能够实现本文所述的实施方案中的一个或多个的示例性计算系统和网络体系结构的详细描述。
图1是用于管理单点登录应用程序的加密密钥的示例性系统100的框图。如该图所示,示例性系统100可包括用于执行一个或多个任务的一个或多个模块102。例如,并且如将在下文更详细地解释的,示例性系统100可以包括会话模块104,该会话模块从身份服务接收关于对访问云服务上的加密数据的请求的通知,该通知包括用于对主密钥进行加密和解密的会话密钥,该主密钥用于对云服务密钥进行解密。示例性系统100还可以另外包括导出模块106,该导出模块基于从用户接收的至少一个认证元素而导出主密钥。示例性系统100还可以包括服务模块108,该服务模块使用主密钥对用于对云服务上的数据进行解密的云服务密钥进行解密。示例性系统100还可以包括加密模块110,加密模块将使用会话密钥加密的主密钥存储在客户端密钥存储装置中。会话模块104还可以从身份服务接收关于对访问附加云服务上的加密数据的附加请求的附加通知,该通知包括会话密钥。示例性系统100还可以包括解密模块112,该解密模块在不再从用户获得认证元素的情况下,使用会话密钥对主密钥进行解密。服务模块108可以使用主密钥对用于对附加云服务上的数据进行解密的附加云服务密钥进行解密。尽管被示为独立元件,但图1中的模块102中的一者或多者可表示单个模块或应用程序的部分。
在某些实施方案中,图1中的模块102中的一者或多者可表示一个或多个软件应用程序或程序,所述软件应用程序或程序在被计算设备执行时,可使计算设备执行一个或多个任务。例如,并且如将在下文更详细地描述的,模块102中的一个或多个可以表示存储在一个或多个计算设备上且被配置为在一个或多个计算设备上运行的软件模块,计算设备诸如为图2中示出的设备(例如,客户端202和/或云服务206)、图5中的计算系统510、和/或图6中的示例性网络体系结构600的部分。图1中的模块102中的一者或多者还可表示被配置为执行一个或多个任务的一台或多台专用计算机的全部或部分。
如图1所示,示例性系统100还可包括一个或多个数据库,诸如数据库120。在一个示例中,数据库120可以被配置为存储用户帐户数据、云服务信息和/或密码密钥。数据库120可表示单个数据库或计算设备的组成部分或者多个数据库或计算设备。例如,数据库120可以表示图2中的云服务206或身份服务210的一部分、图5中的计算系统510、和/或图6中的示例性网络体系结构600的部分。作为另外一种选择,图1中的数据库120可以表示能够通过计算设备访问的一个或多个物理单独设备,诸如图2中的云服务206或身份服务210、图5中的计算系统510、和/或图6中的示例性网络体系结构600的部分。
图1中的示例性系统100可用多种方式来实现。例如,示例性系统100的全部或一部分可表示图2中的示例性系统200的部分。如图2所示,系统200可以包括经由网络204与云服务206和身份服务210通信的客户端202。在一个示例中,客户端202可以用模块102中的一个或多个进行编程和/或可以存储数据库120中的数据的全部或一部分。除此之外或作为另外一种选择,云服务206和身份服务210可以用模块102中的一个或多个进行编程和/或可以存储数据库120中的数据的全部或一部分。
在一个实施方案中,来自图1的模块102中的一个或多个可在由客户端202、云服务206和/或身份服务210的至少一个处理器执行时,使得客户端202、云服务206和/或身份服务210能够管理用于单点登录应用程序的加密密钥。例如,如将在下文中更详细地描述的,模块102中的一个或多个可导致客户端202、云服务206和/或身份服务210管理用于单点登录应用程序的加密密钥。例如,并且如将在下文更详细地描述的,会话模块104可以从身份服务210接收关于对访问云服务208(1)上的加密数据的请求的通知212,该通知212包括用于对主密钥218进行加密和解密的会话密钥214,该主密钥用于对云服务密钥进行解密。导出模块106可以基于从用户接收的至少一个认证元素216而导出主密钥218。服务模块108可以使用主密钥218对用于对云服务208(1)上的数据进行解密的云服务密钥220进行解密。
在一些示例中,加密模块110可以使用会话密钥214对主密钥218进行加密存储以产生加密主密钥224,并且将加密主密钥224存储在客户端密钥存储装置222中。会话模块104可以从身份服务210接收关于对访问附加云服务208(2)上的加密数据的附加请求的附加通知226,通知212包括会话密钥214。解密模块112可以在不再从用户获得认证元素216的情况下,使用会话密钥214对主密钥218进行解密。服务模块108可以使用主密钥218对用于对附加云服务208(2)上的数据进行解密的附加云服务密钥230进行解密。
客户端202通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。客户端202的示例包括但不限于:膝上型计算机、平板电脑、台式计算机、服务器、移动电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、可穿戴设备(例如,智能手表、智能眼镜等)、游戏机、这些设备中一个或多个的组合、图5中的示例性计算系统510,或任何其他合适的计算设备。
云服务206和身份服务210通常表示能够传达、比较和/或存储数据的任何类型或形式的计算设备。云服务206和身份服务210的示例包括但不限于:被配置为提供各种数据库服务和/或运行某些软件应用程序的应用程序服务器和数据库服务器。
网络204通常表示能够促进通信或数据传输的任何介质或体系结构。网络204的示例包括但不限于:内联网、广域网(WAN)、局域网(LAN)、个域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,全球移动通信系统(GSM)网络)、图6中的示例性网络体系结构600等。网络204可使用无线或有线连接来促进通信或数据传输。在一个实施方案中,网络204可促进客户端202、云服务206和身份服务210之间的通信。
图3是用于管理单点登录应用程序的加密密钥的示例性计算机实现的方法300的流程图。图3中示出的步骤可通过任何合适的计算机可执行代码和/或计算系统来执行。在一些实施方案中,图3中示出的步骤可以通过图1中的系统100、图2中的系统200、图5中的计算系统510和/或图6中的示例性网络体系结构600的部分的组件中的一个或多个执行。
如图3所示,在步骤302处,本文描述的系统中的一个或多个可以从身份服务接收关于对访问云服务上的加密数据的请求的通知,该通知包括用于对主密钥进行加密和解密的会话密钥,该主密钥用于对云服务密钥进行解密。例如,会话模块104可以作为图2中的客户端202的一部分从身份服务210接收关于对访问云服务208(1)上的加密数据的请求的通知212。通知212可以包括用于对主密钥218进行加密和解密的会话密钥214,该会话密钥随后可以用于对云服务密钥进行解密。
如本文所用,术语“身份服务”通常是指基于由用户提供的认证凭据来验证个人身份的网络服务。身份服务可以作为独立服务提供商运营,该服务提供商根据与其他网络服务提供商的合同,在私人组织内或作为云服务的一部分提供身份验证服务。
在一个实施方案中,身份服务210可以接收请求以促进对云服务208(1)上的加密数据的访问。响应于该请求,身份服务210可以向客户端202上的会话模块104提供会话密钥214。如将在下文更详细地描述的,本文所述的系统可以使用会话密钥214来对主密钥218进行解密,该主密钥随后可以用于对云服务密钥进行解密。
会话模块104可以接收关于对以多种方式访问云服务上的加密数据的请求的通知。例如,会话模块104可以作为客户端202上的客户端代理的一部分执行,从身份服务210接收通知212,该身份服务210已经接收来自云服务208(1)的请求以在客户端202上验证用户身份,使得客户端202可以访问存储在云服务208(1)上的数据。会话模块104可以经由由客户端代理建立的长轮询连接或通过任何其他合适的机制接收通知212作为HTTP服务器推送通信。
在步骤304处,基于从用户接收的一个或多个认证元素,本文所述的系统中的一个或多个可以导出主密钥。例如,导出模块106可以作为图2中的客户端202的一部分基于从用户接收的一个或多个认证元素到216而导出主密钥218。如将在下文中更详细地描述的,导出模块106可以从用户获得认证元素,并且在单点登录会话开始时导出主密钥。此后,本文所述的系统可以管理加密密钥而无需与用户进行附加交互。
导出模块106可以采用各种方式导出主密钥。例如,导出模块106可以通过将散列函数施加到从用户接收的认证元素来导出主密钥。例如,导出模块106可以使用基于密码的密钥导出函数2(PBKDF2)或任何合适的密钥导出函数将密码或其他认证因子转换为密码密钥。
在一些示例中,导出模块106可以从安全密钥存储装置检索主密钥,而不是用算法导出主密钥。例如,如图2所示,导出模块106可以通过首先基于从用户接收的一个或多个认证元素216而认证用户来导出主密钥218。在认证用户之后,导出模块106可以检索用于对主密钥进行加密和解密的私有密钥,从客户端密钥存储装置222检索加密主密钥,并且使用私有密钥来对主密钥218进行解密。如将在下文更详细地描述的,私有密钥可以存储在个人设备(诸如移动电话)上。加密主密钥可被存储在客户端密钥存储装置222中,该客户端密钥存储装置可以驻留在客户端202上或身份服务210处。
在步骤306处,本文所述的系统中的一个或多个可以使用主密钥对用于对云服务上的数据进行解密的云服务密钥进行解密。例如,服务模块108作为图2中的客户端202的一部分可以使用主密钥218对用于对云服务208(1)上的数据进行解密的云服务密钥220进行解密。
服务模块108可以通过各种方式对云服务密钥进行解密。例如,服务模块108可以从云服务208(1)检索加密云服务密钥,并且使用主密钥218对加密密钥进行解密以产生云服务密钥220。在一些示例中,客户端密钥存储装置222可以驻留在身份服务210处。服务模块108可以从身份服务210检索加密云服务密钥并且使用主密钥218对云服务密钥进行加密以产生云服务密钥220。在一些示例中,服务模块108可以通过接收云服务密钥与会话密钥并且/或者响应于对身份服务210提供加密云服务密钥的请求而接收云服务密钥来接收加密云服务密钥。
在对云服务密钥220进行解密之后,服务模块108可以使用云服务密钥220来对由云服务208(1)存储的加密数据进行解密。在一些示例中,服务模块108可以向云服务208(1)提供解密云服务密钥220以用于对加密数据进行解密。在对数据进行解密之后,云服务208(1)可以将解密数据传输到客户端202。云服务208(1)随后可以丢弃云服务密钥220,使得云服务密钥220不保留在具有加密数据的云服务208(1)上。在一些实施方案中,服务模块108可以从云服务208(1)接收加密数据并且使用云服务密钥220对数据进行解密。在该示例中,云服务208(1)不会(甚至不暂时地)获得对存储在云服务208(1)上的数据进行解密所需的云服务密钥220。
在步骤308处,本文描述的系统中的一个或多个可以将使用会话密钥加密的主密钥存储在客户端密钥存储装置中。例如,加密模块110可以作为图2中的客户端202的一部分将使用会话密钥214加密的主密钥218存储在客户端密钥存储装置222中。
加密模块110可以通过多种方式存储加密主密钥。例如,加密模块110可以使用会话密钥214对主密钥218进行加密并且将加密主密钥存储在客户端密钥存储装置222中,该客户端密钥存储装置可以驻留在客户端202上。作为另外一种选择,加密模块110可以将加密主密钥存储在驻留在身份服务210上的客户端密钥存储装置222中。如将在下文更详细地描述的,将客户端密钥存储装置222定位在身份服务210上可促进来自多个客户端的云服务单点登录。
在步骤310处,本文所述的系统中的一个或多个可以从身份服务接收关于对访问附加云服务上的加密数据的附加请求的附加通知,该通知包括会话密钥。例如,会话模块104可以作为图2中的客户端202的一部分从身份服务210接收关于对访问云服务208(2)上的加密数据的附加请求的附加通知226,其中通知212包括会话密钥214。
会话模块104可以通过多种方式接收对访问云服务上的加密数据的附加请求。例如,会话模块104可以从身份服务210接收包括会话密钥226的附加通知214。在另一示例中,客户端密钥存储装置222可以位于身份服务210上。在该示例中,会话模块104可以接收附加通知226,该附加通知包括会话密钥214和用主密钥218加密的附加云服务密钥230。
在步骤312处,本文描述的系统中的一个或多个可以在不再从用户获得认证元素的情况下,通过使用会话密钥对主密钥进行解密。例如,解密模块112可以作为图2中的客户端202的一部分在不再从用户获得认证元素216的情况下,通过使用会话密钥214对主密钥218进行解密。
解密模块112可以通过多种方式对主密钥218进行解密。例如,解密模块112可以检索加密主密钥224,该加密密钥使用来自客户端密钥存储装置222的会话密钥214加密。解密模块112可以使用会话密钥214对加密主密钥224进行解密以产生解密主密钥228。在另一示例中,并且如将在下文更详细地描述的,解密模块112可以从个人设备(诸如移动电话)检索加密主密钥224。
在步骤314处,本文所述的系统中的一个或多个可以使用主密钥对用于对附加云服务上的数据进行解密的附加云服务密钥进行解密。例如,服务模块108作为图2中的客户端202的一部分可以使用解密主密钥228对用于对附加云服务208(2)上的数据进行解密的附加云服务密钥230进行解密。
服务模块108可以通过多种方式对附加云服务密钥230进行解密。例如,服务模块108可以从云服务208(2)检索使用主密钥218加密的附加云服务密钥230。服务模块可以使用解密主密钥228来对附加云服务密钥230进行解密。在另一示例中,服务模块108可以从身份服务210检索附加云服务密钥230。
图4是用于管理单点登录应用程序的加密密钥的附加示例性系统400的框图。示例性系统400示出了本文所述的系统如何管理加密密钥以促进来自多个客户端设备的单点登录。示例性系统400包括图2中的示例性系统200的若干组件,诸如客户端202、网络204、云服务206和身份服务210。客户端密钥存储装置222可以位于身份服务210上。示例性系统400还包括个人设备402,该个人设备包括私有密钥存储装置404。示例性系统400还包括附加客户端408,该客户端如客户端202一样包括模块102,如图1所示。
在一个示例中,用户可以尝试从客户端202访问云服务208(1)上的加密数据。云服务208(1)可以请求身份服务210在允许客户端202访问云服务208(1)上的数据之前验证用户身份。身份服务210可以向客户端102上的模块202传输可包括会话密钥214、加密主密钥224和加密云服务密钥410的通知212,该加密主密钥使用存储在个人设备402上的私有密钥存储装置404中的私有密钥406进行加密,该加密云服务密钥使用主密钥218进行加密。响应于接收通知212,客户端202上的模块102可以认证用户。作为另外一种选择,客户端202上的模块102可以指示用户输入密码或提供用于个人设备402上的认证的其他认证元素。
在用户已经进行认证之后,客户端202上的模块102可以将会话密钥214传输到个人设备402。个人设备402可以使用会话密钥215对私有密钥406进行加密以产生加密私有密钥414,然后将加密私有密钥414传输到客户端202。客户端202上的模块102可以使用会话密钥214对私有密钥406进行解密,并且然后使用私有密钥406来对加密主密钥224进行解密以产生主密钥218。然后,模块102可以使用会话密钥214对主密钥218进行重新加密并将加密主密钥传输到个人设备402,以存储在私有密钥存储装置404中。然后,模块102可以使用主密钥218对云服务密钥220进行解密。然后,客户端202可以向云服务208(1)提供解密云服务密钥220以对存储在云服务208(1)上的加密数据进行解密。作为另外一种选择,客户端202可以从云服务208(1)检索加密数据并且使用云服务密钥220对客户端202上的加密数据进行解密。
在从客户端202访问云服务208(1)上的数据之后,用户可以尝试从附加客户端408访问云服务208(2)上的加密数据。云服务208(2)可以请求身份服务210在允许附加客户端408访问云服务208(2)上的数据之前验证用户身份。身份服务210可以将附加通知226传输到附加客户端408上的模块102。如与通知212一样,附加通知226可以包括会话密钥214。附加通知226还可以包括使用主密钥218加密的附加的加密云服务密钥412。
由于已经验证用户身份,而不是提供密码或其他认证元素,所以可以指示用户在个人设备402上验证用户已试图访问云服务208(2)上的加密数据,并且该访问应被允许使用已建立的单点登录会话。在用户验证应当允许访问加密数据之后,个人设备402可以向附加客户端408传输先前使用会话密钥214加密并存储在私有密钥存储装置406中的主密钥218。附加客户端408上的模块102可以使用从身份服务210接收的会话密钥218对主密钥214进行解密。然后,附加客户端408上的模块102可以使用主密钥218对附加的加密云服务密钥412进行解密以产生附加云服务密钥230。然后,附加客户端408上的模块102可以通过向云服务208(2)提供附加云服务密钥230或通过从云服务208(2)检索加密数据并对附加客户端408上的数据进行解密来使用附加云服务密钥230对云服务208(2)上的加密数据进行解密。
如上文更详细地描述的,本文所述的系统和方法可以管理加密密钥以促进到多个云应用程序的单点登录,同时保持存储在应用程序中的加密数据的安全性。本文所述的系统和方法可以提供用户对加密数据存储装置的访问,而不需要使加密密钥与加密数据一起存储。在一些实施方案中,云服务从不访问(甚至不暂时地访问)对存储在服务处的用户数据进行解密所需的密钥。
图5是能够实现本文描述和/或示出的实施方案中的一个或多个的示例性计算系统510的框图。例如,计算系统510的全部或一部分可单独地或与其他元件结合来执行本文所述的步骤中的一个或多个(诸如图3中所示的步骤中的一个或多个)和/或作为用于执行的装置。计算系统510的全部或一部分也可执行本文描述和/或示出的任何其他步骤、方法或过程和/或作为用于执行的装置。
计算系统510在广义上表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或系统。计算系统510的示例包括但不限于:工作站、膝上型计算机、客户端方终端、服务器、分布式计算系统、手持设备或任何其他计算系统或设备。在其最基本的配置中,计算系统510可以包括至少一个处理器514和系统存储器516。
处理器514通常表示能够处理数据或解译和执行指令的任何类型或形式的物理处理单元(例如,硬件实现的中央处理单元)。在某些实施方案中,处理器514可以接收来自软件应用程序或模块的指令。这些指令可以致使处理器514执行本文描述和/或示出的一个或多个示例性实施方案的功能。
系统存储器516通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统存储器516的示例包括但不限于:随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器或任何其他合适的存储器设备。虽然并不是必需的,但是在某些实施方案中,计算系统510可以包括易失性存储器单元(诸如系统存储器516)和非易失性存储设备(诸如主存储设备532,如下详述)两者。在一个示例中,图1的模块102中的一个或多个可被加载到系统存储器516中。
在某些实施方案中,除了处理器514和系统存储器516之外,示例性计算系统510还可以包括一个或多个组件或元件。例如,如图5所示,计算系统510可以包括存储器控制器518、输入/输出(I/O)控制器520和通信接口522,它们中的每一个都可以经由通信基础结构512来互连。通信基础结构512通常表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础结构。通信基础结构512的示例包括但不限于:通信总线(诸如工业标准体系结构(ISA))、外围组件互连(PCI)、PCI Express(PCIe)或类似的总线)和网络。
存储器控制器518通常表示能够处理存储器或数据或者控制计算系统510的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施方案中,存储器控制器518可以经由通信基础结构512来控制处理器514、系统存储器516和I/O控制器520之间的通信。
I/O控制器520通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施方案中,I/O控制器520可以控制或促进计算系统510的一个或多个元件之间的数据传送,这些元件是诸如处理器514、系统存储器516、通信接口522、显示适配器526、输入接口530和存储接口534。
通信接口522在广义上表示能够促进示例性计算系统510与一个或多个另外设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施方案中,通信接口522可促进计算系统510与包括的计算系统的专用或公共网络之间的通信。通信接口522的示例包括但不限于:有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器和任何其他合适的接口。在至少一个实施方案中,通信接口522可以经由与网络诸如互联网的直接链路来提供与远程服务器的直接连接。通信接口522也可通过例如局域网(诸如以太网网络)、个人区域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接地提供此类连接。
在某些实施方案中,通信接口522还可以表示主机适配器,主机适配器被配置为经由外部总线或通信信道来促进计算系统510与一个或多个另外网络或存储设备之间的通信。主机适配器的示例包括但不限于:小型计算机系统接口(SCSI)主机适配器、通用串行总线(USB)主机适配器、电气与电子工程师协会(IEEE)1394主机适配器、高级技术附件(ATA)、并行ATA(PATA)、串行ATA(SATA)和外部SATA(eSATA)主机适配器、光纤通道接口适配器、以太网适配器等。通信接口522还可以允许计算系统510参与分布式或远程计算。例如,通信接口522可以接收来自远程设备的指令或将指令发送到远程设备以供执行。
如图5所示,计算系统510也可以包括至少一个显示设备524,该显示设备经由显示适配器526而联接到通信基础结构512。显示设备524通常表示能够以可视的方式显示由显示适配器526转发的信息的任何类型或形式的设备。类似地,显示适配器526通常表示被配置为转发来自通信基础结构512(或来自帧缓冲器,如本领域中已知的)的图形、文本和其他数据以在显示设备524上显示的任何类型或形式的设备。
如图5所示,示例性计算系统510还可以包括经由输入接口530而联接到通信基础结构512的至少一个输入设备528。输入设备528通常表示能够向示例性计算系统510提供输入(由计算机或人生成)的任何类型或形式的输入设备。输入设备528的示例包括但不限于:键盘、指向设备、语音识别设备或任何其他输入设备。
如图5所示,示例性计算系统510还可以包括主存储设备532和经由存储接口534联接到通信基础结构512的备份存储设备533。存储设备532和533通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备532和533可以是磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口534通常表示用于在存储设备532和533与计算系统510的其他组件之间传输数据的任何类型或形式的接口或设备。在一个示例中,图1的数据库120可以存储在主存储设备532中。
在某些实施方案中,存储设备532和533可以被配置为对被配置为存储计算机软件、数据或其他计算机可读信息的可移除存储单元执行读取和/或写入。合适的可移除存储单元的示例包括但不限于:软盘、磁带、光盘、闪存存储器设备等。存储设备532和533还可以包括允许将计算机软件、数据或其他计算机可读指令加载到计算系统510内的其他类似的结构或设备。例如,存储设备532和533可以被配置为读取和写入软件、数据或其他计算机可读信息。存储设备532和533还可以是计算系统510的一部分,或可以是通过其他接口系统进行访问的单独设备。
可以将许多其他设备或子系统连接到计算系统510。相反地,无需图5中示出的所有组件和设备都存在,也可以实践本文描述和/或示出的实施方案。上文提及的设备和子系统也可以通过不同于图5所示的方式进行互连。计算系统510也可以采用任何数量的软件、固件和/或硬件配置。例如,本文所公开的一个或多个示例性实施方案可被编码为计算机可读介质上的计算机程序(也称为计算机软件、软件应用程序、计算机可读指令或计算机控制逻辑)。如本文所用,术语“计算机可读介质”通常指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读介质的示例包括而不限于:传输型介质(诸如载波)和非暂态型介质(诸如磁存储介质,例如,硬盘驱动器、带驱动器和软盘)、光存储介质(例如,光盘(CD)、数字视频盘(DVD)和蓝光光盘)、电子存储介质(例如,固态驱动器和闪存介质)和其他分配系统。
可以将包含计算机程序的计算机可读介质加载到计算系统510中。然后,可以将存储在计算机可读介质上的计算机程序的全部或一部分存储在系统存储器516和/或存储设备532和533的各个部分中。当由处理器514执行时,加载到计算系统510中的计算机程序可以致使处理器514执行本文描述和/或示出的示例性实施方案中的一个或多个的功能和/或作为用于执行其的装置。除此之外或作为另外一种选择,可在固件和/或硬件中实现本文描述和/或例示的示例性实施方案中的一者或多者。例如,计算系统510可以被配置成用于实施本文公开的示例性实施方案中的一个或多个的专用集成电路(ASIC)。
图6为示例性网络体系结构600的框图,其中客户端系统610、620和630以及服务器640和645可联接到网络650。如上详述,网络体系结构600的全部或一部分可单独地或与其他元件结合地来执行本文所公开的步骤中的一个或多个(诸如图3中所示的步骤中的一个或多个)和/或作为用于执行其的装置。网络体系结构600的全部或一部分还可以用于执行本公开中阐述的其他步骤和特征和/或作为用于执行其的装置。
客户端系统610、620和630通常表示任何类型或形式的计算设备或系统,诸如图5中的示例性计算系统510。类似地,服务器640和645通常表示被配置为提供各种数据库服务和/或运行某些软件应用程序的计算设备或系统,诸如应用程序服务器或数据库服务器。网络650通常表示任何电信或计算机网络包括,例如,内联网、WAN、LAN、PAN或互连网。在一个示例中,客户端系统610、620和/或630和/或服务器640和/或645可以包括图1的系统100的全部或一部分。
如图6所示,一个或多个存储设备660(1)-(N)可以直接地附接到服务器640。类似地,一个或多个存储设备670(1)-(N)可以直接地附接到服务器645。存储设备660(1)-(N)和存储设备670(1)-(N)通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。在某些实施方案中,存储设备660(1)-(N)和存储设备670(1)-(N)可以表示被配置为使用各种协议(诸如网络文件系统(NFS)、服务器消息块(SMB)或通用互联网文件系统(CIFS))与服务器640和645进行通信的网络附接存储(NAS)设备。
服务器640和645也可以连接到存储区域网络(SAN)架构680。SAN架构680通常表示能够促进多个存储设备之间的通信的任何类型或形式的计算机网络或体系结构。SAN架构680可促进服务器640和645与多个存储设备690(1)-(N)和/或智能存储阵列695之间的通信。SAN架构680还可通过网络650以及服务器640和645以这样的方式促进客户端系统610、620和630与存储设备690(1)-(N)和/或智能存储阵列695之间的通信:设备690(1)-(N)和阵列695呈现为客户端系统610、620和630的本地附接设备。与存储设备660(1)-(N)和存储设备670(1)-(N)相同,存储设备690(1)-(N)和智能存储阵列695通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。
在某些实施方案中,并且参照图5的示例性计算系统510,通信接口(诸如图5中的通信接口522)可以用于在每个客户端系统610、620和630与网络650之间提供连接性。客户端系统610、620和630可能能够使用例如web浏览器或其他客户端软件来访问服务器640或645上的信息。此类软件可以允许客户端系统610、620和630访问由服务器640、服务器645、存储设备660(1)-(N)、存储设备670(1)-(N)、存储设备690(1)-(N)或智能存储阵列695托管的数据。虽然图6示出了使用网络(诸如互联网)来交换数据,但是本文描述和/或示出的实施方案不仅限于互联网或任何特定的基于网络的环境。
在至少一个实施方案中,本文公开的一个或多个示例性实施方案中的全部或一部分可以被编码为计算机程序并加载到服务器640、服务器645、存储设备660(1)-(N)、存储设备670(1)-(N)、存储设备690(1)-(N)、智能存储阵列695或它们的任何组合上并且加以执行。本文公开的一个或多个示例性实施方案中的全部或一部分也可以被编码为计算机程序,存储在服务器640中,由服务器645运行,以及通过网络650而分配到客户端系统610、620和630。
如上详述,计算系统510和/或网络体系结构600的一个或多个部件可以执行和/或作为一种装置用于单独地或与其他元件结合地来执行用于管理单点登录应用程序的加密密钥的示例性方法的一个或多个步骤。
虽然上述公开内容使用特定框图、流程图和示例阐述了各种实施方案,但每个框图组件、流程图步骤、操作和/或本文描述和/或例示的组件可使用多种硬件、软件或固件(或其任何组合)配置单独和/或共同地实现。此外,包含在其他组件内的组件的任何公开内容应当被视为在本质上是示例性的,因为可实施许多其他体系结构来实现相同功能。
在一些示例中,图1中的示例性系统100的全部或一部分可表示云计算环境或基于网络的环境的部分。云计算环境可通过互联网提供各种服务和应用程序。这些基于云的服务(例如软件即服务、平台即服务、基础结构即服务等)可通过网页浏览器或其他远程接口进行访问。本文所述的各种功能可通过远程桌面环境或任何其他基于云的计算环境提供。
在各种实施方案中,图1中的示例性系统100的全部或一部分可促进基于云的计算环境内的多租户应用。换句话讲,本文所述的软件模块可配置计算系统(例如,服务器)以促进本文所述功能中的一个或多个的多租户应用。例如,本文所述软件模块中的一个或多个可对服务器进行编程以允许两个或更多个客户端(例如,顾客)共享正在服务器上运行的应用程序。以这种方式编程的服务器可在多个顾客(即,租户)之间共享应用程序、操作系统、处理系统和/或存储系统。本文所述模块中的一个或多个还可为每个顾客分割多租户应用程序的数据和/或配置信息使得一个顾客不能访问另一个顾客的数据和/或配置信息。
根据各种实施方案,图1中的示例性系统100的全部或一部分可在虚拟环境内实现。例如,本文所述模块和/或数据可在虚拟机内驻留和/或执行。如本文所用,术语“虚拟机”通常指由虚拟机管理器(例如,虚拟机监控程序)从计算硬件中抽象出来的任何操作系统环境。除此之外或作为另外一种选择,本文所述的模块和/或数据可在虚拟化层内驻留和/或执行。如本文所用,术语“虚拟化层”通常指覆盖操作系统环境和/或从操作系统环境中抽象出来的任何数据层和/或应用层。虚拟化层可由软件虚拟化解决方案(例如,文件系统过滤器)管理,软件虚拟化解决方案将虚拟化层呈现为就好像它是底层基本操作系统的一部分。例如,软件虚拟化解决方案可将最初定向至基本文件系统和/或注册表内的位置的调用重定向至虚拟化层内的位置。
在一些示例中,图1中的示例性系统100的全部或一部分可表示移动计算环境的部分。移动计算环境可由多种移动计算设备来实现,这些设备包括移动电话、平板电脑、电子书阅读器、个人数字助理、可穿戴计算设备(例如,具有头戴式显示器的计算设备、智能手表等),等等。在一些示例中,移动计算环境可具有一个或多个区别特征,包括例如对电池供电的依赖、在任何给定时间只呈现一个前台应用程序、远程管理特征、触摸屏特征、(例如,由全球定位系统、陀螺仪、加速度计等提供的)位置和移动数据、限制对系统级配置的修改和/或限制第三方软件检查其他应用程序的行为的能力的受限平台、限制应用程序的安装的控制装置(例如,仅安装来源于经批准的应用程序商店的应用程序)等等。本文所述的各种功能可被提供用于移动计算环境和/或可与移动计算环境交互。
此外,图1中的示例性系统100的全部或一部分可表示一个或多个信息管理系统的部分,与一个或多个信息管理系统交互,使用由一个或多个信息管理系统产生的数据和/或产生被一个或多个信息管理系统使用的数据。如本文所用,术语“信息管理”可指数据的保护、组织和/或存储。信息管理系统的示例可包括但不限于:存储系统、备份系统、存档系统、复制系统、高可用性系统、数据搜索系统、虚拟化系统等。
在一些实施方案中,图1中的示例性系统100的全部或一部分可表示一个或多个信息安全系统的部分,产生受一个或多个信息安全系统保护的数据和/或与一个或多个信息安全系统通信。如本文所用,术语“信息安全”可指对受保护数据的访问的控制。信息安全系统的示例可包括而不限于:提供受管理的安全服务的系统、数据丢失防护系统、身份认证系统、访问控制系统、加密系统、策略遵循系统、入侵检测与防护系统、电子发现系统等等。
根据一些示例,图1中的示例性系统100的全部或一部分可表示一个或多个端点安全系统的部分、与一个或多个端点安全系统通信和/或受一个或多个端点安全系统保护。如本文所用,术语“端点安全”可指保护端点系统免遭未经授权和/或非法使用、访问和/或控制。端点保护系统的示例可包括而不限于:反恶意软件系统、用户认证系统、加密系统、保密系统、垃圾邮件过滤服务,等等。
本文描述和/或例示的过程参数和步骤序列仅通过举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不一定需要按例示或讨论的顺序来执行。本文描述和/或例示的各种示例性方法也可省略本文描述或例示的步骤中的一个或多个,或除了所公开的那些步骤之外还包括另外步骤。
虽然在全功能计算系统的背景中描述和/或例示了各种实施方案,但这些示例性实施方案中的一个或多个可作为各种形式的程序产品来分配,而不顾及用于实际执行分配的计算机可读介质的特定类型。本文所公开的实施方案也可使用执行某些任务的软件模块来实现。这些软件模块可包括脚本、批文件或可存储在计算机可读存储介质上或计算系统中的其他可执行文件。在一些实施方案中,这些软件模块可将计算系统配置为执行本文所公开的示例性实施方案中的一个或多个。
此外,本文所述的模块中的一个或多个可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,本文所述的模块中的一个或多个可以接收要转换的认证元素,转换认证元素,输出转换的结果以产生一个或多个密码密钥,使用转换结果来管理密码密钥,并且存储转换结果以促进对由一个或多个云服务保持的加密数据的单点登录访问。除此之外或作为另外一种选择,本文所述模块中的一个或多个可通过在计算设备上执行、在计算设备上存储数据和/或以其他方式与计算设备交互,来将处理器、易失性存储器、非易失性存储器、和/或物理计算设备的任何其他部分从一种形式转换为另一种形式。
提供前面描述的目的是使本领域的其他技术人员能够最好地利用本文所公开的示例性实施方案的各种方面。该示例性描述并非旨在是详尽的或局限于所公开的任何精确形式。在不脱离本发明精神和范围的前提下,可进行许多修改和变化。本文所公开的实施方案在所有方面均应被视为示例性的而非限制性的。应当参考所附权利要求及其等同形式来确定本发明的范围。
除非另有说明,否则在本说明书和权利要求中使用的术语“连接到”和“联接到”(以及其衍生形式)应该理解为允许直接和间接(即,经由其他元件或组件)连接。此外,在本说明书和权利要求中使用的术语“一”或“一个”应当理解为表示“…中的至少一者”。最后,为了易于使用,在本说明书和权利要求中使用的术语“包括”和“具有”(以及其衍生形式)与词语“包含”可互换并且与词语“包含”具有相同含义。

Claims (14)

1.一种用于管理单点登录应用程序的加密密钥的计算机实现的方法,所述方法的至少一部分由计算设备执行,所述计算设备包括至少一个处理器,所述方法包括:
从身份服务接收关于对访问云服务上的加密数据的请求的通知,所述通知包括用于对主密钥进行加密和解密的会话密钥,所述主密钥用于对云服务密钥进行解密;
基于从用户接收的至少一个认证元素导出所述主密钥,其中所述至少一个认证元素包括认证因子并且其中导出所述主密钥包括:
利用基于散列的密钥函数将所述认证元素转换为加密密钥;
基于所述认证元素认证所述用户;
响应于认证所述用户,来检索用于对所述主密钥进行加密和解密的私有密钥;
使用所述私有密钥对所述主密钥进行解密;
使用所述主密钥对用于对所述云服务上的数据进行解密的云服务密钥进行解密;
将使用所述会话密钥加密的所述主密钥存储在客户端密钥存储装置中;
从所述身份服务接收关于对访问附加云服务上的加密数据的附加请求的附加通知,所述通知包括所述会话密钥;
在不再从所述用户获得所述认证元素的情况下,通过使用所述会话密钥对所述主密钥进行解密;以及
使用所述主密钥对用于对所述附加云服务上的数据进行解密的所述附加云服务密钥进行解密。
2.根据权利要求1所述的计算机实现的方法,还包括向所述云服务提供所述解密云服务密钥来对所述加密数据进行解密。
3.根据权利要求1所述的计算机实现的方法,还包括在所述客户端上接收来自所述云服务的所述加密数据以用于使用所述解密云服务密钥进行解密。
4.根据权利要求1所述的计算机实现的方法,还包括从所述云服务接收所述云服务密钥。
5.根据权利要求1所述的计算机实现的方法,还包括从所述身份服务接收所述云服务密钥。
6.根据权利要求1或5所述的计算机实现的方法,其中接收所述云服务密钥包括以下各项中的至少一项:
接收所述云服务密钥与所述会话密钥;
响应于对所述身份服务提供所述云服务密钥的请求,来接收所述云服务密钥。
7.根据权利要求1所述的计算机实现的方法,还包括:
在所述身份服务处,通过向客户端代理提供用于对所述主密钥进行加密和解密的所述会话密钥,接收请求以促进对所述云服务上的加密数据的访问,所述主密钥用于对云服务密钥进行解密;
向所述客户端代理提供所述会话密钥。
8.一种用于管理单点登录应用程序的加密密钥的系统,所述系统包括:
用于接收的装置,所述用于接收的装置存储在存储器中,所述用于接收的装置从身份服务接收关于对访问云服务上的加密数据的请求的通知,所述通知包括用于对主密钥进行加密和解密的会话密钥,所述主密钥用于对云服务密钥进行解密;
用于导出的装置,所述用于导出的装置存储在存储器中,所述用于导出的装置基于从用户接收的至少一个认证元素导出所述主密钥,其中所述至少一个认证元素包括认证因子并且其中所述用于导出的装置通过如下方式导出所述主密钥:
利用基于散列的密钥函数将所述认证元素转换为加密密钥;
基于所述认证元素认证所述用户;
响应于认证所述用户,来检索用于对所述主密钥进行加密和解密的私有密钥;
使用所述私有密钥对所述主密钥进行解密;
用于解密的装置,所述用于解密的装置存储在存储器中,所述用于解密的装置使用所述主密钥对用于对所述云服务上的数据进行解密的云服务密钥进行解密;
用于存储的装置,所述用于存储的装置存储在存储器中,所述用于存储的装置将使用所述会话密钥加密的所述主密钥存储在客户端密钥存储装置中;
所述用于接收的装置从所述身份服务接收关于对访问附加云服务上的加密数据的附加请求的附加通知,所述通知包括所述会话密钥;
所述用于解密的装置在不再从所述用户获得所述认证元素的情况下,通过使用所述会话密钥对所述主密钥进行解密;
所述用于解密的装置使用所述主密钥对用于对所述附加云服务上的数据进行解密的所述附加云服务密钥进行解密;
至少一个物理处理器,所述至少一个物理处理器被配置为执行所述用于接收的装置、所述用于导出的装置、所述用于解密的装置和所述用于存储的装置。
9.根据权利要求8所述的系统,其中所述用于解密的装置向所述云服务提供所述解密云服务密钥来对所述加密数据进行解密。
10.根据权利要求8所述的系统,其中所述用于解密的装置在所述客户端上接收来自所述云服务的所述加密数据以用于使用所述解密云服务密钥进行解密。
11.根据权利要求8所述的系统,其中所述用于解密的装置从所述云服务接收所述云服务密钥。
12.根据权利要求8所述的系统,其中所述用于解密的装置从所述身份服务接收所述云服务密钥。
13.根据权利要求8或12所述的系统,其中所述用于解密的装置通过以下各项中的至少一项接收所述云服务密钥:
接收所述云服务密钥与所述会话密钥;
响应于对所述身份服务提供所述云服务密钥的请求,来接收所述云服务密钥。
14.根据权利要求8所述的系统,其中:
所述身份服务通过向客户端代理提供用于对所述主密钥进行加密和解密的所述会话密钥来接收请求以促进对所述云服务上的加密数据的访问,所述主密钥用于对云服务密钥进行解密;
所述身份服务将所述会话密钥提供给所述客户端代理。
CN201680083810.5A 2016-03-28 2016-12-28 用于管理单点登录应用程序的加密密钥的系统和方法 Active CN109076054B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/083,032 US10367643B2 (en) 2016-03-28 2016-03-28 Systems and methods for managing encryption keys for single-sign-on applications
US15/083032 2016-03-28
PCT/US2016/069036 WO2017171955A1 (en) 2016-03-28 2016-12-28 Systems and methods for managing encryption keys for single-sign-on applications

Publications (2)

Publication Number Publication Date
CN109076054A CN109076054A (zh) 2018-12-21
CN109076054B true CN109076054B (zh) 2021-06-11

Family

ID=57799929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680083810.5A Active CN109076054B (zh) 2016-03-28 2016-12-28 用于管理单点登录应用程序的加密密钥的系统和方法

Country Status (5)

Country Link
US (1) US10367643B2 (zh)
EP (1) EP3449607B1 (zh)
JP (1) JP6669929B2 (zh)
CN (1) CN109076054B (zh)
WO (1) WO2017171955A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10356079B2 (en) * 2016-12-05 2019-07-16 Keeper Security, Inc. System and method for a single sign on connection in a zero-knowledge vault architecture
FR3096161B1 (fr) * 2019-05-14 2021-09-24 Orange Procédé, dispositif et système de sécurisation de données et de clés de chiffrement d'un objet connecté.
US11582036B1 (en) * 2019-10-18 2023-02-14 Splunk Inc. Scaled authentication of endpoint devices
CN111526249B (zh) * 2020-04-16 2022-02-01 维沃移动通信(杭州)有限公司 一种信息处理方法和电子设备
CN114124422B (zh) * 2020-08-31 2023-09-12 北京书生网络技术有限公司 一种密钥管理方法及装置
CN113190878A (zh) * 2021-05-12 2021-07-30 广东康宝莱智慧水务有限公司 一种国密加密算法与水务物联采集系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102271037A (zh) * 2010-06-03 2011-12-07 微软公司 基于在线密钥的密钥保护装置
CN103248476A (zh) * 2013-05-02 2013-08-14 华为数字技术(苏州)有限公司 数据加密密钥的管理方法、系统及终端
CN103959302A (zh) * 2011-06-01 2014-07-30 安全第一公司 用于安全分布式存储的系统与方法
EP2784717A1 (en) * 2012-10-17 2014-10-01 Box, Inc. Remote key management in a cloud-based environment

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005209118A (ja) * 2004-01-26 2005-08-04 Nippon Telegr & Teleph Corp <Ntt> 情報分散ストレージシステムとこのシステムに用いられる全体認証サーバ装置、認証サーバ装置及び分散ストレージサーバ装置及び情報分散ストレージ方法
US20050172127A1 (en) 2004-01-31 2005-08-04 Frank Hartung System and method for transcoding encrypted multimedia messages transmitted between two devices
BRPI0513195A (pt) * 2004-07-09 2008-04-29 Matsushita Electric Ind Co Ltd sistemas para administrar autenticação e autorização de usuário, e para suportar o usuário, métodos para administrar autenticação e autorização de usuário, para acessar serviços de múltiplas redes, para o controlador de autenticação processar uma mensagem de pedido de autenticação, selecionar a combinação de controladores de autenticação do resultado de busca, autenticar um usuário, e descobrir o caminho a um domìnio tendo relação empresarial com o domìnio doméstico, para o controlador de autorização processar a mensagem de pedido de autorização de serviço, e executar autorização de serviço, para um controlador de autenticação e autorização executar autenticação e autorização de serviço, para proteger o sìmbolo de usuário, e para a autoridade de controle de acesso no domìnio doméstico do usuário prover ao controlador de autenticação uma informação de perfil de assinatura limitada do usuário, para alcançar autenticação e autorização rápidas, e para alcançar registro único para acessar múltiplas redes, e, formatos para informação de capacidade de assinatura, para um sìmbolo de usuário, para um domìnio tendo relação empresarial com o domìnio doméstico de um usuário para pedir afirmação de autenticação e de autorização, e para um terminal de usuário indicar suas credenciais para acessar múltiplas redes em múltiplos domìnios administrativos
JP2008124649A (ja) * 2006-11-09 2008-05-29 Toshiba Corp 権利付きコンテンツの移動方法
WO2009003708A1 (en) 2007-07-05 2009-01-08 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Device and method for digital rights management
US8856512B2 (en) * 2008-12-30 2014-10-07 Intel Corporation Method and system for enterprise network single-sign-on by a manageability engine
US8713589B2 (en) 2010-12-23 2014-04-29 Microsoft Corporation Registration and network access control
US20130017347A1 (en) * 2011-07-12 2013-01-17 Baker Hughes Incorporated Scale inhibiting surface texture
US20130173477A1 (en) * 2011-08-19 2013-07-04 Geoffrey I. Cairns Storing and forwarding credentials securely from one RFID device to another
US9270459B2 (en) 2011-09-20 2016-02-23 Cloudbyte, Inc. Techniques for achieving tenant data confidentiality from cloud service provider administrators
JP6098087B2 (ja) * 2012-09-21 2017-03-22 富士通株式会社 解析方法、解析装置および解析プログラム
WO2015042547A1 (en) * 2013-09-20 2015-03-26 Oracle International Corporation Web-based interface integration for single sign-on
JP6190720B2 (ja) * 2013-12-27 2017-08-30 Kddi株式会社 監視装置、監視方法およびプログラム
US9529733B1 (en) 2014-09-18 2016-12-27 Symantec Corporation Systems and methods for securely accessing encrypted data stores

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102271037A (zh) * 2010-06-03 2011-12-07 微软公司 基于在线密钥的密钥保护装置
CN103959302A (zh) * 2011-06-01 2014-07-30 安全第一公司 用于安全分布式存储的系统与方法
EP2784717A1 (en) * 2012-10-17 2014-10-01 Box, Inc. Remote key management in a cloud-based environment
CN103248476A (zh) * 2013-05-02 2013-08-14 华为数字技术(苏州)有限公司 数据加密密钥的管理方法、系统及终端

Also Published As

Publication number Publication date
JP2019511890A (ja) 2019-04-25
EP3449607B1 (en) 2021-11-10
US20170279613A1 (en) 2017-09-28
WO2017171955A1 (en) 2017-10-05
EP3449607A1 (en) 2019-03-06
CN109076054A (zh) 2018-12-21
JP6669929B2 (ja) 2020-03-18
US10367643B2 (en) 2019-07-30

Similar Documents

Publication Publication Date Title
US9258122B1 (en) Systems and methods for securing data at third-party storage services
US9076004B1 (en) Systems and methods for secure hybrid third-party data storage
CN109076054B (zh) 用于管理单点登录应用程序的加密密钥的系统和方法
JP6182589B2 (ja) 安全な第三者データ記憶のためのシステム及び方法
US9202076B1 (en) Systems and methods for sharing data stored on secure third-party storage platforms
US8966287B2 (en) Systems and methods for secure third-party data storage
US9203815B1 (en) Systems and methods for secure third-party data storage
US9529733B1 (en) Systems and methods for securely accessing encrypted data stores
US10157290B1 (en) Systems and methods for encrypting files
US11223636B1 (en) Systems and methods for password breach monitoring and notification
US20170331818A1 (en) Systems and methods for location-restricting one-time passcodes
US10015173B1 (en) Systems and methods for location-aware access to cloud data stores
US10397216B2 (en) Systems and methods for performing secure backup operations
US9313185B1 (en) Systems and methods for authenticating devices
US9548971B2 (en) Systems and methods for smart cipher selection
US8667281B1 (en) Systems and methods for transferring authentication credentials
US11080385B1 (en) Systems and methods for enabling multi-factor authentication for seamless website logins
US10645073B1 (en) Systems and methods for authenticating applications installed on computing devices
US9749299B1 (en) Systems and methods for image-based encryption of cloud data
US10033732B1 (en) Systems and methods for detecting cloning of security tokens
US11184169B1 (en) Systems and methods for crowd-storing encrypiion keys
US10462113B1 (en) Systems and methods for securing push authentications
US10192056B1 (en) Systems and methods for authenticating whole disk encryption systems
US10469457B1 (en) Systems and methods for securely sharing cloud-service credentials within a network of computing devices
US11438378B1 (en) Systems and methods for protecting against password attacks by concealing the use of honeywords in password files

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: California, USA

Applicant after: Norton weifuke Co.

Address before: California, USA

Applicant before: Symantec Corp.

CB02 Change of applicant information
CB02 Change of applicant information

Address after: Arizona, USA

Applicant after: Norton weifuke Co.

Address before: California, USA

Applicant before: Norton weifuke Co.

GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: Arizona

Patentee after: Keane Digital Co.

Address before: Arizona

Patentee before: Norton weifuke Co.