CN104205123B - 用于安全的第三方数据存储的系统和方法 - Google Patents

用于安全的第三方数据存储的系统和方法 Download PDF

Info

Publication number
CN104205123B
CN104205123B CN201380013570.8A CN201380013570A CN104205123B CN 104205123 B CN104205123 B CN 104205123B CN 201380013570 A CN201380013570 A CN 201380013570A CN 104205123 B CN104205123 B CN 104205123B
Authority
CN
China
Prior art keywords
key
encryption
file
client
access
Prior art date
Application number
CN201380013570.8A
Other languages
English (en)
Other versions
CN104205123A (zh
Inventor
W·伯格拉德
Original Assignee
赛门铁克公司
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
Priority to US13/430,607 priority Critical
Priority to US13/430607 priority
Priority to US13/430,607 priority patent/US8458494B1/en
Application filed by 赛门铁克公司 filed Critical 赛门铁克公司
Priority to PCT/US2013/028224 priority patent/WO2013148052A1/en
Publication of CN104205123A publication Critical patent/CN104205123A/zh
Application granted granted Critical
Publication of CN104205123B publication Critical patent/CN104205123B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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; 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/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • H04L63/0478Network 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 applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • 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 communication
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communication using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • 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

Abstract

本发明提供了一种用于安全的第三方数据存储的计算机实现的方法,所述方法可包括1)在服务器端计算设备识别来自客户端系统的访问存储在用户账户下的加密文件的请求,2)响应于所述请求来识别被指定用于所述用户账户的非对称密钥对,所述非对称密钥对包括加密密钥和已用客户端密钥加密的解密密钥,3)从所述客户端系统接收所述客户端密钥,4)用所述客户端密钥对所述解密密钥解密,以及5)使用所述解密密钥访问所述加密文件的未加密版本。还公开了各种其他方法、系统和计算机可读介质。

Description

用于安全的第三方数据存储的系统和方法

背景技术

[0001]组织和消费者越来越多地使用第三方服务来存储数据。第三方存储服务可为客户提供多个有益效果,包括灵活性、低资本要求、附加服务、数据共享和对数据的集中访问。

[0002]许多第三方存储客户想要或需要在将其数据提交给第三方存储供应商之前加密其数据。例如,由于隐私问题,个体消费者可能希望对发送给第三方存储供应商的数据加密。类似地,组织可能希望对发送给第三方存储供应商的数据加密以便确保遵守内部或外部数据保护要求,诸如政府法律法规、与其他组织的合作协议等。遗憾的是,通过在将数据提交给第三方存储系统之前加密数据,客户可能会妨碍第三方存储供应商对数据进行去重的尝试。例如,如果两个客户使用不同加密方案(例如,不同密钥)对相同文件加密,所得到的加密文件将不同,从而有可能妨碍第三方存储供应商将文件去重为多次引用的单个文件。另外,在将文件提交给第三方存储系统之前加密文件可能妨碍第三方存储服务与其定向的其他用户有效共享文件和/或对文件执行其他服务的能力,诸如对文件运行安全扫描、生成文件的自定义视图等。

[0003]鉴于上述限制,本发明识别出需要用于安全的第三方数据存储的附加和改进的系统和方法。

发明内容

[0004]本发明整体涉及用于安全的第三方数据存储的系统和方法。如下文将更详细地描述,通过在第三方存储服务器上保持用于对安全数据(例如,文件和/或用于文件的加密密钥)加密和解密的非对称密钥对并且用客户端所保持的加密密钥来对这些非对称密钥对的解密密钥加密,本文所述的系统和方法可允许第三方存储服务器根据需要加密数据,但需要客户端提交解密密钥以便访问安全数据。

[0005]在一个实施例中,用于安全的第三方数据存储的计算机实现的方法可包括I)在服务器端计算设备识别来自客户端系统的访问存储在用户账户下的加密文件的请求(其中所请求的访问需要对加密文件解密),2)响应于该请求识别被指定用于用户账户的非对称密钥对,该非对称密钥对包括加密密钥和已用客户端密钥加密的解密密钥,3)从客户系统接收客户端密钥,4)用客户端密钥对解密密钥解密,以及5)使用解密密钥访问加密文件的未加密版本。

[0006]在一些例子中,接收客户端密钥可包括将客户端密钥存储在易失性存储器中而不将客户端密钥存储在非易失性存储器中。使用解密密钥访问加密文件的未加密版本可包括多种步骤中的任何一者。在一些实施例中,使用解密密钥访问加密文件的未加密版本可包括I)识别用于对加密文件加密的文件密钥(该文件密钥已用加密密钥加密),2)用解密密钥对文件密钥解密,以及3)用文件密钥对加密文件解密。

[0007]在一些例子中,使用解密密钥访问加密文件的未加密版本可包括生成描述加密文件的未加密版本的元数据。在这些例子中,生成元数据可包括I)执行对加密文件的未加密版本的安全扫描,2)基于加密文件的未加密版本内的内容来对加密文件的未加密版本加索引,和/或3)生成加密文件未加密版本的预览。

[0008]在一些实施例中,使用解密密钥访问加密文件的未加密版本可包括I)识别被指定用于包括所述用户账户的多个用户账户的附加非对称密钥对,其中该附加非对称密钥对包括附加加密密钥和已用(例如,被指定用于所述用户账户的非对称密钥对的)加密密钥加密的附加解密密钥,2)用(例如,被指定用于所述用户账户的非对称密钥对的)解密密钥对附加解密密钥解密,3)识别用于对加密文件加密的文件密钥(该文件密钥已用附加加密密钥加密),4)用附加解密密钥对文件密钥解密,以及5)用文件密钥对加密文件解密。

[0009]在一些例子中,访问加密文件的未加密版本可包括将加密文件的未加密版本传输至客户端系统。除此之外或作为另外一种选择,访问加密文件的未加密版本可包括向附加用户账户提供对加密文件的未加密版本的访问,其中I)附加非对称密钥对被指定用于附加用户账户,2)附加非对称密钥对包括附加加密密钥和附加解密密钥,以及3)附加解密密钥用附加客户端密钥加密。在这些实施例中,向附加用户账户提供对加密文件的未加密版本的访问可包括I)识别用于对加密文件加密的文件密钥(该文件密钥已用加密密钥加密),2)用解密密钥对文件密钥解密,以及3)用附加加密密钥对文件密钥的副本加密。

[0010]在一些例子中,计算机实现的方法还可包括I)识别被指定为访问加密文件的未加密版本的附加用户账户,其中a)附加非对称密钥对被指定用于附加用户账户,b)附加非对称密钥对包括附加加密密钥和附加解密密钥,并且c)附加解密密钥用附加客户端密钥加密,以及2)用附加加密密钥对解密密钥加密。在这些例子中,计算机实现的方法可附加地包括I)识别来自附加客户端系统的经由附加用户账户进一步访问加密文件(其中附加请求访问需要对加密文件解密)的附加请求,2)用附加解密密钥对所述解密密钥解密,以及3)使用解密密钥经由附加用户账户访问加密文件的未加密版本。

[0011]在一个例子中,计算机实现的方法还可包括I)从客户端系统接收加密文件的未加密版本,2)通过a)基于加密文件的未加密版本的至少一个特性生成文件密钥和b)用文件密钥对加密文件的未加密版本加密,来生成加密文件,以及3)用加密密钥对文件密钥加密。在该例子中,计算机实现的方法可附加地包括用通过文件密钥加密的附加加密文件对加密文件去重。

[0012]在一个实施例中,用于实现上述方法的系统可包括I)识别模块,该识别模块被编程为在服务器端计算设备识别来自客户端系统的访问存储在用户账户下的加密文件的请求(其中所请求的访问需要对加密文件解密),2)密钥模块,该密钥模块被编程为响应于请求来识别被指定用于该用户账户的非对称密钥对,该非对称密钥对包括加密密钥和已用客户端密钥加密的解密密钥,3)接收模块,该接收模块被编程为从客户端系统接收客户端密钥,4)解密模块,该解密模块被编程为用客户端密钥对解密密钥解密,以及5)访问模块,该访问模块被编程为使用解密密钥访问加密文件的未加密版本。该系统还可包括至少一个处理器,该处理器被配置为执行识别模块、密钥模块、接收模块、解密模块和访问模块。

[0013]在一些例子中,上述方法可被编码为计算机可读存储介质上的计算机可读指令。例如,计算机可读存储介质可包括一个或多个计算机可执行指令,当由计算设备的至少一个处理器执行时,该指令可使计算设备I)在服务器端计算设备识别来自客户端系统的访问存储在用户账户下的加密文件的请求(其中所请求的访问需要对加密文件解密),2)响应于请求来识别被指定用于该用户账户的非对称密钥对,该非对称密钥对包括加密密钥和已用客户端密钥加密的解密密钥,3)从客户端系统接收客户端密钥,4)用客户端密钥对解密密钥解密,以及5)使用解密密钥访问加密文件的未加密版本。

[0014]如将在下文中更详细地说明,通过在第三方存储服务器上保持用于对安全数据加密和解密的非对称密钥对并且用客户端所保持的加密密钥对非对称密钥对的解密密钥加密,本文所述的系统和方法可对客户端数据进行安全存储和加密而不存储为访问未加密状态下的安全数据所需的客户端解密密钥。这些系统和方法从而可阻止已获取第三方存储系统访问的攻击者访问未加密状态下的安全数据,同时仍允许和/或促进该安全数据的共享、去重、分析和/或加索引。

[0015]来自上述实施例中的任何一者的特征可根据本文所述的一般原理彼此结合地使用。通过结合附图和权利要求阅读下面的详细描述,将会更充分地理解这些和其他实施例、特征和优点。

附图说明

[0016]附图示出了多个示例性实施例并且为说明书的一部分。这些附图结合下面的描述展示并且说明本发明的各种原理。

[0017]图1为用于安全的第三方数据存储的示例性系统的框图。

[0018]图2为用于安全的第三方数据存储的示例性系统的框图。

[0019]图3为用于安全的第三方数据存储的示例性方法的流程图。

[0020]图4为用于安全的第三方数据存储的示例性系统的框图。

[0021]图5为用于安全的第三方数据存储的示例性系统的框图。

[0022]图6为用于安全的第三方数据存储的示例性系统的框图。

[0023]图7为用于安全的第三方数据存储的示例性系统的框图。

[0024]图8为能够实现本文描述和/或示出的实施例中的一者或多者的示例性计算系统的框图。

[0025]图9为能够实现本文描述和/或示出的实施例中的一者或多者的示例性计算网络的框图。

[0026]在全部附图中,相同引用字符和描述指示类似但未必相同的元件。虽然本文所述的示例性实施例易受各种修改和替代形式的影响,但在附图中以举例的方式示出了特定实施例并且将在本文中详细描述这些特定实施例。然而,本文所述的示例性实施例并非旨在限于所公开的特定形式。相反,本发明涵盖落在所附权利要求范围内的所有修改形式、等同形式和替代形式。

具体实施方式

[0027]下面将参考图1-2和4-7提供对用于安全的第三方数据存储的示例性系统的详细描述。还将结合图3提供相应计算机实现方法的详细描述。此外,将分别结合图8和9提供能够实现本文所述实施例中的一者或多者的示例性计算系统和网络体系结构的详细描述。

[0028]图1为用于安全的第三方数据存储的示例性系统100的框图。如该附图所示,示例性系统100可包括用于执行一个或多个任务的一个或多个模块102。例如,并且如将在下面更详细地说明,示例性系统100可包括识别模块104,该识别模块104被编程为在服务器端计算设备识别来自客户端系统的访问存储在用户账户下的加密文件的请求。示例性系统100也可包括密钥模块106,该密钥模块106被编程为响应于请求来识别被指定用于该用户账户的非对称密钥对,该非对称密钥对包括加密密钥和已用客户端密钥加密的解密密钥。

[0029]此外,并且如将在下面更详细地描述,示例性系统100可包括接收模块108,该接收模块108被编程为从客户端系统接收客户端密钥。示例性系统100也可包括解密模块110,该解密模块110被编程为用客户端密钥对解密密钥解密。示例性系统100可附加包括访问模块112,该访问模块112被编程为使用解密密钥访问加密文件的未加密版本。尽管示出为独立元件,但图1中的模块102中的一者或多者可表示单个模块或应用程序的部分。

[0030]在某些实施例中,图1中的模块102中的一者或多者可表不一个或多个软件应用程序或程序,当由计算设备执行时所述软件应用程序或程序可使计算设备执行一个或多个任务。例如,并且如将在下文更详细地描述,模块102中的一者或多者可表示被存储并且被配置为在一个或多个计算设备上运行的软件模块,所述计算设备诸如为图2中示出的设备(例如,计算设备202和/或客户端系统206)、图8中的计算系统810和/或图9中的示例性网络体系结构900的部分。图1中的模块102中的一者或多者也可表示被配置为执行一个或多个任务的一台或多台专用计算机的全部或部分。

[0031]图1中的示例性系统100可以多种方式来实现。例如,示例性系统100的全部或一部分可表示图2中的示例性系统200的部分。如图2所示,系统200可包括经由网络204与客户端系统206通信(以向客户端系统206提供例如第三方存储服务)的计算设备202。

[0032]在一个实施例中,图1中的模块102中的一者或多者在由计算设备202的至少一个处理器执行时可促进计算设备202实现安全的第三方数据存储。例如,并且如将在下面更详细地描述,模块102中的一者或多者可使计算设备2021)在服务器端计算设备202识别来自客户端系统206的访问存储在用户账户240下的加密文件242的请求210,2)响应于请求210来识别被指定用于用户账户240的非对称密钥对220,该非对称密钥对220包括加密密钥222和已用客户端密钥230加密的加密解密密钥224,3)从客户端系统206接收客户端密钥230,4)用客户端密钥230对加密解密密钥224解密(产生例如解密密钥226)以及5)使用解密密钥226访问加密文件242 (例如,文件244)的未加密版本。

[0033]计算设备202和客户端系统206通常表示能够读取计算机可执行指令的任何类型或形式的计算设备。计算设备202和客户端系统206的例子包括但不限于服务器、台式计算机、膝上型计算机、平板、移动电话、个人数字助理(PDA)、多媒体播放器、嵌入式系统、这些设备中的一者或多者的组合、图8中的示例性计算系统810或任何其他合适的计算设备。

[0034]网络204通常表示能够促进通信或数据传输的任何介质或体系结构。网络204的例子包括但不限于内联网、广域网(WAN)、局域网(LAN)、个人局域网(PAN)、互联网、电力线通信(PLC)、蜂窝网络(例如,GSM网络)、图9中的示例性网络体系结构900等等。网络204可使用无线或有线连接促进通信或数据传输。在一个实施例中,网络204可促进计算设备202与客户端系统206之间的通信。

[0035]图3为用于安全的第三方数据存储的示例性计算机实现方法300的流程图。图3中示出的步骤可由任何合适的计算机可执行代码和/或计算系统执行。在一些实施例中,图3中示出的步骤可由图1中的系统100、图2中的系统200、图8中的计算系统810和/或图9中的示例性网络体系结构900的部分的组件中的一者或多者执行。

[0036]如图3所示,在步骤302本文所述系统中的一者或多者可在服务器端计算设备识别来自客户端系统的访问存储在用户账户下的加密文件的请求。例如,在步骤302,识别模块104可作为图2中的计算设备202的一部分识别来自客户端系统206的访问存储在用户账户240下的加密文件242的请求210。在上述两个例子中,所请求的访问可需要或涉及对加密文件解密。

[0037]在一些例子中,服务器端计算设备可作为第三方存储系统的一部分运行。如本文所用,术语“第三方存储系统”可指能够为用户存储数据的任何类型或形式的存储系统,包括基于云的存储系统。在一些例子中,第三方存储系统可存储用于多个不同实体的数据。在至少一个例子中,用第三方存储系统存储数据的实体可能需要针对彼此(以便例如阻止未经授权访问实体内的数据)、针对入侵者(例如,未经授权访问存储在第三方存储系统内的数据的实体)和/或第三方存储系统的一个或多个管理员的数据安全性。在一些例子中,第三方存储系统可表示或包括单实例存储系统(即,被配置为仅存储用于多个所有者的内容的每个项目的单个实例)。

[0038]因此,客户端系统可继而包括用于促进使用第三方存储系统的任何系统。在一些例子中,客户端系统可由不同于服务器端计算设备的所有者和/或管理员的实体拥有和/或进行管理。

[0039]如本文所用,术语“文件”可指数据的任何合适单元,包括但不限于文件、数据对象、数据区段、数据流的部分、数据库、数据库条目和/或电子文档。此外,短语“用户账户”可指可对应于数据所有者(用于例如识别由数据所有者拥有的数据和/或保护数据所有者拥有的数据以供数据所有者使用)的任何标识符和/或权限系统。

[0040]识别模块104可识别多种类型请求中的任何一者。例如,如将在下面更详细地说明,识别模块104可识别为客户端系统检索加密文件的未加密版本的请求。除此之外或作为另外一种选择,识别模块104可识别与另一个用户账户共享文件的可访问版本的请求。在一些例子中,识别模块104可识别对文件执行一个或多个程序(例如,需要对加密文件的未加密版本进行访问的程序)的请求。

[0041]识别模块104可在多种上下文中的任何一者中接收请求。例如,识别模块104可从客户端系统接收用户发起的请求。除此之外或作为另外一种选择,并且如将在下文更详细地说明,识别模块104可接收仅通过从客户端系统接收使得能够访问加密文件的客户端密钥来访问加密文件的隐式请求。

[0042]返回图3,在步骤304,本文所述的系统中的一者或多者可响应于请求来识别被指定用于用户账户的非对称密钥对,该非对称密钥对包括加密密钥和已用客户端密钥加密的解密密钥。例如,在步骤304,密钥模块106可作为图2中的计算设备202的一部分,响应于请求210来识别被指定用于用户账户240的非对称密钥对220,该非对称密钥对220包括加密密钥222和已用客户端密钥230加密的加密解密密钥224。

[0043]如本文所用,短语“非对称密钥对”可指包括加密密钥(或“公用密钥”)和解密密钥(或“私有密钥”)的任何一对密码密钥。加密密钥可包括不需要保密以便对用密钥加密的数据进行保护的任何密钥。例如,加密密钥可用于使用非对称密钥算法来加密数据。因此,对用加密密钥加密的数据解密可能需要非对称密钥对的相应解密密钥。在一些例子中,非对称密钥对可存储在第三方存储系统上和/或由第三方存储系统存储。在至少一个例子中,加密密钥和解密密钥均不可分配到第三方存储系统之外。

[0044]此外,如本文所用的短语“客户端密钥”可指用于对非对称密钥对的解密密钥加密和/或解密的任何合适密码密钥。在一些例子中,客户端密钥可包括对称密钥(例如,既用于加密数据,也用于对所述数据解密的密钥)。例如,客户端密钥可被配置为根据高级加密标准规范(例如,AES-256)对数据加密和解密。在一些例子中,客户端密钥可在客户端系统上生成。例如,客户端密钥可使用密钥派生功能生成,例如基于密码的密钥派生功能(例如,PBKDF2)。

[0045]在一些例子中,客户端密钥可缓存到客户端系统上。除此之外或作为另外一种选择,客户端密钥可根据需要通过密码生成(例如,在客户端系统或在第三方存储系统生成)。在一些例子中,可从外部密钥存储库检索客户端密钥。如将在下文更详细地说明,在一些例子中,客户端密钥可不存储在服务器端计算设备上和/或由服务器端计算设备实现的第三方存储系统内。在一些例子中,可能仅可通过相应客户端来访问客户端密钥。该客户端可对应于组织、带有共享秘密的团体、计算设备和/或任何其他合适的实体。

[0046]在一些例子中,本文所述的系统中的一者或多者可能已使用非对称密钥对内的加密密钥对加密文件加密。例如,本文所述的系统中的一者或多者可从客户端系统接收加密文件的未加密版本并且随后生成加密文件。这些系统可通过基于加密文件的未加密版本的至少一个特性生成文件密钥并且随后用该文件密钥对加密文件的未加密版本加密来生成加密文件。例如,这些系统可衍生加密文件的未加密版本的散列并且使文件密钥基于该散列。这样,本文所述的系统和方法可由相同未加密文件产生相同加密文件,从而允许跨客户端的去重。

[0047]例如,本文所述的系统可通过用文件密钥加密的附加加密文件对所述加密文件去重。在生成文件密钥时,这些系统可用加密密钥对文件密钥加密。如本文所用的术语“去重”可指与减小单实例数据存储系统中所用的存储空间的量相关的一个或多个操作,包括用于检测和阻止数据冗余地存储至单实例数据存储系统的操作。去重可使用任何合适的去重技术或算法来执行。在一些例子中,去重可包括文件级别的去重。除此之外或作为另外一种选择,去重可包括块级别的去重。

[0048]除了对加密文件的未加密版本加密之外,在一些例子中,本文所述系统中的一者或多者可基于加密文件的未加密版本执行一个或多个操作(例如,在对加密文件的未加密版本加密之前并且从而无法再访问加密文件的未加密版本)ο例如,本文所述的系统中的一者或多者可对加密文件的未加密版本的内容加索引,对加密文件的未加密版本执行反恶意软件扫描,生成加密文件的未加密版本的内容预览等。在这些例子中,一旦对加密文件加密,这些系统就可将从加密文件的未加密版本生成的元数据与该加密文件关联。

[0049]密钥模块106可识别以任何合适方式被指定用于用户账户的非对称密钥对。在一些例子中,第三方存储系统可托管多个用户账户的数据,每个用户账户带有指定并且不同的非对称密钥对。因此,密钥模块106可根据客户端系统提供的一个或多个标识符和/或凭证识别用于该用户账户的非对称密钥对。

[0050]返回图3,在步骤306,本文所述的系统中的一者或多者可从客户端系统接收客户端密钥。例如,在步骤306,接收模块108可作为图2中的计算设备202的一部分从客户端系统206接收客户端密钥230。[0051 ]如之前所述,在一些例子中,客户端密钥可不存储在服务器端上(即,不存储在服务器端计算设备和/或关联的第三方存储系统上)。例如,接收模块108可接收客户端密钥并且将客户端密钥存储在易失性存储器中而不将客户端密钥存储在非易失性存储器中。如本文所用,短语“易失性存储器”可指任何非持久性和/或临时性存储位置。在一些例子中,短语“易失性存储器”可指随机存取存储器。此外,短语“非易失性存储器”可指任何持久性存储位置。例如,短语“非易失性存储器”可指文件系统用来存储一个或多个文件的存储设备。在一些例子中,接收模块108可接收客户端密钥并且在使用之后不保留该客户端密钥。例如,接收模块108可在与客户端系统的会话已终止之后丢弃客户端密钥。

[0052]接收模块108可以多种方式中的任何一者从客户端系统接收客户端密钥。例如,接收模块108可直接从客户端系统接收客户端密钥。除此之外或作为另外一种选择,接收模块108可通过接收表示客户端密钥并且从中可生成客户端密钥的数据而从客户端系统接收客户端密钥。例如,接收模块108可从客户端系统接收用于密钥派生功能的密码并且使用该密钥派生功能来自密码生成客户端密钥。在该例子中,接收模块108也可将密码仅保持在非易失性存储器中和/或在使用密码生成客户端密钥时丢弃该密码。

[0053]返回图3,在步骤308,本文所述的系统中的一者或多者可用客户端密钥对解密密钥解密。例如,在步骤308,解密模块110可作为图2中的计算设备202的一部分用客户端密钥230对加密的解密密钥224解密(产生例如解密密钥226)。

[0054]解密模块110可以任何合适方式对解密密钥解密。例如,解密模块110可根据预先确定的对称密钥算法将客户端密钥应用于解密密钥以生成解密密钥的解密版本。

[0055]在步骤310,本文所述系统中的一者或多者可使用解密密钥访问加密文件的未加密版本。例如,在步骤310,访问模块112作为图2中的计算设备202的一部分可使用解密密钥226访问加密文件242的未加密版本(例如,文件244)。

[0056]访问模块112可使用解密密钥以各种方式中的任何一者访问加密文件的未加密版本。例如,访问模块112可识别用于对加密文件加密的文件密钥。在该例子中,可用加密密钥对文件密钥加密。因此,访问模块112可用解密密钥对文件密钥解密并且随后用文件密钥对加密文件解密。

[0057]访问模块112可访问加密文件的未加密版本以传输至多个终端中的任何一者。例如,如上详述,来自客户端系统的请求可包括检索加密文件的未加密版本的请求。因此,访问模块112可将加密文件的未加密版本传输至客户端系统(例如,响应于请求)。

[0058]图4示出了用于安全的第三方数据存储的示例性系统400。如图4所示,示例性系统400可包括客户端系统410,客户端系统410被配置为经由第三方存储服务器420所促进的第三方存储服务来存储一个或多个文件。例如,客户端系统410可能先前已将未加密文件446传输至第三方存储服务器420。第三方存储服务器420可能已使用加密密钥432识别了与客户端系统410和加密的未加密文件446相关联的非对称密钥对430。在一个例子中,客户端系统410可尝试检索现在作为加密文件440存储在第三方存储服务器420上的未加密文件446。例如,在步骤450,客户端系统410可向第三方存储服务器420传输消息,该消息请求未加密文件446并且包含客户端密钥412。第三方存储服务器420可因此接收客户端密钥412并且将客户端密钥412保持在存储器中以供使用。

[0059] 在步骤452,第三方存储服务器420可识别非对称密钥对430并且用客户端密钥412对加密的解密密钥434解密以产生解密密钥436。在步骤454,第三方存储服务器420可使用解密密钥436对加密的文件密钥442解密以获得用于加密文件440的文件密钥444。在步骤456,第三方存储服务器420可使用文件密钥444对加密文件440解密并且获得未加密文件446。在步骤458,第三方存储服务器420可将未加密文件446传输至客户端系统410,从而满足客户端系统410的请求。此外,第三方存储系统420可丢弃客户端密钥412、解密密钥436和文件密钥444,并且删除未加密文件446。

[0060]返回图3的步骤310,在一些例子中,访问模块112可访问加密文件的未加密版本以生成描述加密文件的未加密版本的元数据。在一些例子中,访问模块112随后可存储与加密文件相关的元数据,使得描述加密文件的元数据即使在加密文件的未加密版本在第三方存储系统上不再可直接访问之后仍然可用。

[0061 ]例如,访问模块112可对加密文件的未加密版本执行安全扫描(例如,以确定加密文件是否包括任何恶意软件或引起任何其他安全风险)。在另一个例子中,访问模块112可基于加密文件的未加密版本内的内容来对加密文件的未加密版本加索引(例如,以促进基于其内容搜索加密文件而不访问加密文件的未加密版本)。在附加例子中,访问模块112可基于加密文件的未加密版本的内容生成加密文件的未加密版本的预览(例如,以促进浏览加密文件而不访问加密文件的未加密版本)。如上详述,在一些例子中,当加密文件的未加密版本第一次被上载时(例如,在加密之前),本文所述的一个或多个系统可除此之外或作为另外一种选择执行上述操作中的一者或多者。

[0062]在一些例子中,访问模块112可向另一方提供对加密文件的未加密版本的访问。例如,访问模块112可向另一个用户账户提供对加密文件的未加密版本的访问。在该例子中,可针对附加用户账户指定附加非对称密钥对,包括附加加密密钥和附加解密密钥。可用附加客户端密钥(与例如对应于附加用户账户的附加客户端系统有关)对附加解密密钥加密。在该例子中,访问模块112可通过首先识别用于对加密文件加密的文件密钥而向附加用户账户提供对加密文件的未加密版本的访问。由于加密文件可与用户账户有关,因此可用加密密钥(即,对应于用户账户的非对称密钥对的加密密钥)对文件密钥加密。访问模块112随后可用解密密钥对文件密钥解密并且用附加加密密钥对文件密钥的副本加密。这样,附加用户账户可对加密文件进行访问(通过例如提交附加客户端密钥以对文件密钥解密,从而允许由文件密钥对加密文件解密)。

[0063]图5示出了用于安全的第三方数据存储的示例性系统500。如图5所示,示例性系统500可包括客户端系统510(1)和510(2),该客户端系统510(1)和510(2)被配置为经由第三方存储服务器520所促进的第三方存储服务来存储和/或访问一个或多个文件。例如,第三方存储服务器520可以为客户端系统510(1)存储加密文件540。在该例子中,非对称密钥对530(1)可对应于客户端系统510(1),非对称密钥对530(2)可对应于客户端系统510(2)。因此,加密文件540可以是用文件密钥544加密的,该文件密钥544用加密密钥532(1)加密并且存储为加密的文件密钥542 (I)。

[0064]在步骤550,客户端系统510(1)可将请求传输至第三方存储服务器520以与客户端系统510 (2)共享对加密文件540的未加密内容的访问。请求可包括客户端密钥512 (I)。第三方存储服务器520可接收客户端密钥512(1)并且在步骤552用客户端密钥512(1)对加密的解密密钥534 (I)解密以获得解密密钥536 (I)0在步骤554,第三方存储服务器520可用解密密钥536 (I)对加密的文件密钥542 (I)解密以获得文件密钥544。在步骤556,第三方存储服务器520可用加密密钥532(2)对文件密钥544加密以获得加密的文件密钥542(2),并且可存储加密的文件密钥542(2)以供将来使用。在步骤558,第三方存储服务器520可从客户端系统510 (2)接收请求,以访问加密文件540的未加密内容。请求可包括客户端密钥512 (2),从而允许第三方存储服务器520对加密的解密密钥534(2)解密,并且从而对加密的文件密钥542(2)解密,以便获得文件密钥544并且对加密文件540解密。

[0065]在一些例子中,访问模块112可通过允许对应于附加用户账户的附加客户端密钥对用户账户的解密密钥解密,来向附加用户账户提供对加密文件的未加密版本的访问。例如,访问模块112可识别被指定为访问加密文件的未加密版本的附加用户账户。在该例子中,可针对附加用户账户指定附加非对称密钥对,该非对称密钥对包括附加加密密钥和附加解密密钥。可用附加客户端密钥(与例如对应于附加用户账户的附加客户端系统有关)对附加解密密钥加密。

[0066] 在上述例子中,访问模块112可通过用附加加密密钥对解密密钥加密(并且,例如存储加密的解密密钥以供以后与附加用户账户一起使用)而向附加用户账户提供对加密文件的未加密版本的访问。例如,本文所述的系统中的一者或多者可稍后识别来自附加客户端系统的附加请求,以经由附加用户账户进一步访问加密文件。这些系统随后可用附加解密密钥对解密密钥解密并且使用解密密钥来经由附加用户账户访问加密文件的未加密版本(通过例如使用解密密钥对已用以对加密文件加密的文件密钥解密并且接着用文件密钥对加密文件解密)。在一些例子中,上述方法可用于在用户账户和附加用户账户之间共享多个文件。该方法也可消除一些密码处理步骤(通过例如不要求针对共享的每个文件生成单独的加密文件)。

[0067]图6示出了用于安全的第三方数据存储的示例性系统600。如图6所示,示例性系统600可包括客户端系统610(1)和610(2),该客户端系统610(1)和610(2)被配置为经由第三方存储服务器620所促进的第三方存储服务来存储和/或访问一个或多个文件。例如,第三方存储服务器620可为客户端系统610(1)存储加密文件640、642和644。在该例子中,非对称密钥对630(1)可对应于客户端系统610(1),非对称密钥对630(2)可对应于客户端系统610

(2)。因此,加密文件640、642和644可以是分别用加密的文件密钥641、643和645加密的,所述加密的文件密钥继而可以是用加密密钥632(1)加密的。

[0068]在步骤650,客户端系统610(1)可将请求传输至第三方存储服务器620以与客户端系统610(2)共享对加密文件640、642和644的未加密内容的访问。请求可包括客户端密钥612(1)。第三方存储服务器620可接收客户端密钥612(1)并且在步骤652用客户端密钥612(I)对加密的解密密钥634( I)解密以获得解密密钥636( I)。

[0069] 在步骤654,第三方存储服务器620可用加密密钥632(2)对解密密钥636(1)加密以获得加密的解密密钥638。第三方存储服务器620随后可存储加密的解密密钥638以供将来使用。随后,在步骤656,客户端系统610(2)可向第三方存储服务器620发送访问加密文件640、642和644中的一者或多者的请求(包括客户端密钥612(2))。第三方存储服务器620随后可通过以下过程来提供访问:用加密的解密密钥634(2)对加密的解密密钥638解密以获得解密密钥636(1 ),并且用解密密钥636( I)对文件密钥641、643和645中的一者或多者解密以获得加密文件640、642和644中的一者或多者的未加密内容。

[0070]返回图3的步骤310,在一些例子中,访问模块112可基于用户账户群组的成员资格提供对加密文件的未加密版本的访问。例如,访问模块112可识别被指定用于包括所述用户账户的用户账户群组的附加非对称密钥对。附加非对称密钥对可包括附加加密密钥和附加解密密钥。可用对应于用户账户的非对称密钥对的加密密钥来对附加解密密钥加密。访问模块112随后可用解密密钥对附加解密密钥解密。访问模块112可进一步识别用于对加密文件加密的文件密钥。文件密钥可用附加加密密钥加密。因此,访问模块112可用附加解密密钥对文件密钥解密并且用文件密钥对加密文件解密。在附加例子中,加密文件可以是用附加的加密密钥,而不是文件密钥进行加密。在该例子中,访问模块112可仅用附加解密密钥对加密文件解密。

[0071]图7示出了用于安全的第三方数据存储的示例性系统700。如图7所示,示例性系统700可包括客户端系统710(1 )、710(2)和710(3),该客户端系统710(1 )、710(2)和710(3)被配置为经由第三方存储服务器720所促进的第三方存储服务来存储和/或访问一个或多个文件。例如,第三方存储服务器720可为客户端系统710( 1)-(3)存储加密文件746、747和748。在该例子中,个人非对称密钥对730(1)可对应于客户端系统710(1)并且群组非对称密钥对740(2)可对应于作为群组的客户端系统710(1 )-(3)(其中例如客户端系统710(1)、710

(2)和710(3)各自具有分别带有加密解密密钥744(1)、744(2)和744(3)的群组解密密钥738的加密版本)。加密文件746、747和748可用加密密钥742加密。

[0072]在步骤750,客户端系统710(1)可将请求传输至第三方存储服务器720,以访问加密文件740的未加密内容。请求可包括客户端密钥712(1)。第三方存储服务器720可接收客户端密钥712(1)并且在步骤752用客户端密钥712(1)对加密的解密密钥734(1)解密,以获得个人解密密钥736(1)。在步骤754,第三方存储服务器720可用个人解密密钥736(1)对加密的解密密钥744( I)解密,以获得群组解密密钥738。在步骤756,第三方存储服务器720可用群组解密密钥738对加密文件746解密,以获得未加密文件749。在步骤758,第三方存储服务器720可将未加密文件749传输至客户端系统710(1)。以类似的方式,第三方存储服务器720可通过分别用客户端密钥712(2)和712(3)对加密的解密密钥744(2)和744(3)解密,来获得针对客户端系统710(2)和710(3)的加密文件746、747和/或748的未加密版本。作为另外一种选择,如之前所述,在一些例子中,加密文件746、747和748可各自用相应的文件密钥加密,该文件密钥可继而各自用加密密钥742加密。在这些例子中,第三方存储服务器720可用群组解密密钥738对文件密钥解密并且随后用相应的文件密钥对加密文件746、747和748解密。

[0073]如上所述,通过保持用于对第三方存储服务器上的安全数据加密和解密的非对称密钥对并且用客户端所保持的加密密钥对非对称密钥对的解密密钥加密,本文所述的系统和方法可安全地存储和加密客户端数据而不存储为访问未加密状态下的安全数据所需的客户端解密密钥。这些系统和方法从而可阻止已获取对第三方存储系统访问的攻击者访问未加密状态下的安全数据,同时仍允许和/或促进该安全数据的共享、去重、分析和/或加索引。

[0074]图8为能够实现本文描述和/或示出的实施例中的一者或多者的示例性计算系统810的框图。例如,计算系统810的全部或一部分可执行和/或作为一种方式用于单独或与其他元件结合使用来执行以下各项中的一者或多者:本文所述的识别、接收、生成、加密、去重、存储、解密、使用、访问、传输、生成、执行、加索引和提供步骤。计算系统810的全部或一部分也可执行和/或作为一种方式来执行本文描述和/或示出的任何其他步骤、方法或过程。

[0075]计算系统810在广义上表示能够执行计算机可读指令的任何单处理器或多处理器计算设备或系统。计算系统810的例子包括但不限于工作站、膝上型计算机、客户端终端、月艮务器、分布式计算系统、手持式设备或任何其他计算系统或设备。在其最基本的配置中,计算系统810可包括至少一个处理器814和系统内存816。

[0076] 处理器814通常表示能够处理数据或解译和执行指令的任何类型或形式的处理单元。在某些实施例中,处理器814可接收来自软件应用程序或模块的指令。这些指令可使处理器814执行本文描述和/或示出的一个或多个示例性实施例的功能。

[0077]系统内存816通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的易失性或非易失性存储设备或介质。系统内存816的例子包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、闪存存储器或任何其他合适的存储器设备。尽管不是必需的,但在某些实施例中,计算系统810可包括易失性存储器单元(诸如系统内存816)和非易失性存储设备(诸如,主存储设备832,如下详述)。在一个例子中,图1的模块102中的一者或多者可加载到系统内存816中。

[0078]在某些实施例中,除处理器814和系统内存816之外,示例性计算系统810还可包括一个或多个组件或元件。例如,如图8所示,计算系统810可包括内存控制器818、输入/输出(I/O)控制器820和通信接口 822,它们中的每一者都可经由通信基础结构812互连。通信基础结构812通常表示能够促进计算设备的一个或多个组件之间的通信的任何类型或形式的基础结构。通信基础结构812的例子包括但不限于通信总线(诸如ISA、PC1、PCIe或类似总线)和网络。

[0079]内存控制器818通常表示能够处理内存或数据或控制计算系统810的一个或多个组件之间的通信的任何类型或形式的设备。例如,在某些实施例中,内存控制器818可经由通信基础结构812来控制处理器814、系统内存816和I/O控制器820之间的通信。

[0080] I/O控制器820通常表示能够协调和/或控制计算设备的输入和输出功能的任何类型或形式的模块。例如,在某些实施例中,I/O控制器820可控制或促进计算系统810的一个或多个元件之间的数据传输,所述元件诸如处理器814、系统内存816、通信接口 822、显示适配器826、输入接口 830和存储接口 834。

[0081 ]通信接口 822在广义上表示能够促进示例性计算系统810与一个或多个附加设备之间的通信的任何类型或形式的通信设备或适配器。例如,在某些实施例中,通信接口822可促进计算系统810与包括附加计算系统的专用或公共网络之间的通信。通信接口 822的例子包括但不限于有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器和任何其他合适的接口。在至少一个实施例中,通信接口822可经由与网络(诸如互联网)的直接链接来提供与远程服务器的直接连接。通信接口 822还可通过例如局域网(诸如以太网网络)、个人局域网、电话或电缆网络、蜂窝电话连接、卫星数据连接或任何其他合适的连接来间接提供此类连接。

[0082] 在某些实施例中,通信接口 822还可表示主机适配器,该主机适配器可被配置为经由外部总线或通信信道来促进计算系统810与一个或多个附加网络或存储设备之间的通信。主机适配器的例子包括但不限于SCSI主机适配器、USB主机适配器、IEEE1394主机适配器、SATA和eSATA主机适配器、ATA和PATA主机适配器、光纤信道接口适配器、以太网适配器等等。通信接口 822还可允许计算系统810参与分布式或远程计算。例如,通信接口 822可接收来自远程设备的指令或将指令发送到远程设备以供执行。

[0083] 如图8所示,计算系统810还可包括至少一个显示设备824,该显示设备824经由显示适配器826连接到通信基础结构812。显示设备824通常表示能够以可视方式显示由显示适配器826转发的信息的任何类型或形式的设备。类似地,显示适配器826通常表示被配置为转发来自通信基础结构812(或来自帧缓冲器,如本领域所已知)的图形、文本和其他数据以在显示设备824上显示的任何类型或形式的设备。

[0084]如图8所示,示例性计算系统810还可包括经由输入接口 830连接到通信基础结构812的至少一个输入设备828。输入设备828通常表示能够向示例性计算系统810提供输入(由计算机或人生成)的任何类型或形式的输入设备。输入设备828的例子包括但不限于键盘、指针设备、语音识别设备或任何其他输入设备。

[0085] 如图8所示,示例性计算系统810还可包括主存储设备832和经由存储接口 834连接到通信基础结构812的备份存储设备833。存储设备832和833通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。例如,存储设备832和833可为磁盘驱动器(例如,所谓的硬盘驱动器)、固态驱动器、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等等。存储接口 834通常表示用于在计算系统810的存储设备832和833与其他组件之间传输数据的任何类型或形式的接口或设备。

[0086]在某些实施例中,存储设备832和833可被配置为对被配置为存储计算机软件、数据或其他计算机可读信息的可移动存储单元执行读取和/或写入。合适的可移动存储单元的实例包括但不限于软盘、磁带、光盘、闪存设备等。存储设备832和833还可包括允许将计算机软件、数据或其他计算机可读指令加载到计算系统810内的其他类似结构或设备。例如,存储设备832和833可被配置为读取和写入软件、数据或其他计算机可读信息。存储设备832和833还可为计算系统810的一部分,或者可为通过其他接口系统进行访问的独立设备。

[0087]可将多个其他设备或子系统连接到计算系统810。相反地,无需提供图8中示出的所有组件和设备,亦可实践本文描述和/或示出的实施例。上文提及的设备和子系统也可通过不同于图8所示的方式互连。计算系统810还可采用任何数量的软件、固件和/或硬件配置。例如,本文所公开的一个或多个示例性实施例可被编码为计算机可读存储介质上的计算机程序(也称为计算机软件、软件应用程序、计算机可读指令或计算机控制逻辑)。短语“计算机可读存储介质”通常指能够存储或携带计算机可读指令的任何形式的设备、载体或介质。计算机可读存储介质的例子包括但不限于传输型介质,诸如载波,和非暂态型介质,诸如磁存储介质(例如,硬盘驱动器和软盘)、光存储介质(例如,CD-或DVD-ROM)、电子存储介质(例如,固态驱动器和闪存介质)和其他分配系统。

[0088]可将包含计算机程序的计算机可读存储介质加载到计算系统810中。然后可将计算机可读存储介质上存储的全部或一部分计算机程序存储在系统内存816中和/或存储设备832和833的各个部分中。当由处理器814执行时,加载到计算系统810中的计算机程序可使处理器814执行和/或作为一种方式来执行本文描述和/或不出的不例性实施例中的一者或多者的功能。除此之外或作为另外一种选择,可在固件和/或硬件中实施本文描述和/或示出的示例性实施例中的一者或多者。例如,计算系统810可被配置为用于实施本文所公开的示例性实施例中的一者或多者的专用集成电路(ASIC)。

[0089]图9为示例性网络体系结构900的框图,其中客户端系统910、920和930以及服务器940和945可连接到网络950。如上详述,网络体系结构900的全部或一部分可执行和/或作为一种方式用于单独或与其他元件结合使用来执行以下各项中的一者或多者:本文所公开的识别、接收、生成、加密、去重、存储、解密、使用、访问、传输、生成、执行、加索引和提供步骤。网络体系结构900的全部或一部分也可用于执行和/或作为一种方式用于执行本发明中阐述的其他步骤和特征。

[0090]客户端系统910、920和930通常表示任何类型或形式的计算设备或系统,诸如图8中的示例性计算系统810。类似地,服务器940和945通常表示被配置为提供各种数据库服务和/或运行特定软件应用程序的计算设备或系统,诸如应用程序服务器或数据库服务器。网络950通常表示任何电信或计算机网络,包括(例如)内联网、广域网(WAN)、局域网(LAN)、个人局域网(PAN)或互联网。在一个例子中,客户端系统910、920和/或930和/或服务器940和/或945可包括图1的系统100的全部或一部分。

[0091] 如图9所示,一个或多个存储设备960(1)-(N)可直接连接到服务器940。类似地,一个或多个存储设备970(1)-(N)可直接连接到服务器945。存储设备960(1)-(N)和存储设备970(1)-(N)通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。在某些实施例中,存储设备960(1)-(N)和存储设备970(1)-(N)可表示被配置为使用各种协议,诸如NFS、SMB或CIFS,与服务器940和945进行通信的网络连接存储(NAS)设备。

[0092] 服务器940和945还可连接到存储区域网络(SAN)光纤网980 JAN光纤网980通常表示能够促进多个存储设备之间的通信的任何类型或形式的计算机网络或体系结构。SAN光纤网980可促进服务器940和945与多个存储设备990(1 )-(N)和/或智能存储阵列995之间的通信。SAN光纤网980还可经由网络950以及服务器940和945以这样的方式促进客户端系统910、920和930与存储设备990(1)-(N)和/或智能存储阵列995之间的通信:设备990(1)-(N)和阵列995呈现为客户端系统910、920和930的本地连接设备。与存储设备960(1 )-(N)和存储设备970(1)-(N)相同,存储设备990(1)-(N)和智能存储阵列995通常表示能够存储数据和/或其他计算机可读指令的任何类型或形式的存储设备或介质。

[0093]在某些实施例中,并参考图8的示例性计算系统810,通信接口,诸如图8中的通信接口 822,可用于在每个客户端系统910、920和930与网络950之间提供连接。客户端系统910、920和930可能能够使用(例如)网页浏览器或其他客户端软件来访问服务器940或945上的信息。此类软件可允许客户端系统910、920和930访问由服务器940、服务器945、存储设备960(1 )-(N)、存储设备970(1 )-(N)、存储设备990(1 )-(N)或智能存储阵列995托管的数据。尽管图9示出了使用网络(诸如互联网)来交换数据,但本文描述和/或示出的实施例并非仅限于互联网或任何特定的基于网络的环境。

[0094]在至少一个实施例中,本文所公开的一个或多个示例性实施例中的全部或一部分可被编码为计算机程序并加载到服务器940、服务器945、存储设备960(1)-(N)、存储设备970(1)-(N)、存储设备990(1)-(N)或智能存储阵列995或它们的任意组合上并加以执行。本文所公开的一个或多个示例性实施例中的全部或一部分还可被编码为计算机程序,存储在服务器940中,由服务器945运行,以及通过网络950分配到客户端系统910、920和930。

[0095]如上详述,计算系统810和/或网络体系结构900的一个或多个组件可执行和/或作为一种方式用于单独或与其他元件结合来执行用于安全的第三方数据存储的示例性方法的一个或多个步骤。

[0096]虽然上述发明使用特定框图、流程图和例子阐述了各种实施例,但每个框图组件、流程图步骤、操作和/或本文描述和/或示出的组件可使用范围广泛的硬件、软件或固件(或其任何组合)配置来单独和/或共同实现。此外,包含在其他组件内的组件的任何公开内容应当被视为在本质上是示例性的,因为可实施许多其他体系结构来实现相同功能。

[0097] 在一些例子中,图1中的示例性系统100的全部或一部分可表示云计算环境或基于网络的环境的部分。云计算环境可以通过互联网提供各种服务和应用程序。这些基于云的服务(例如软件即服务(software as a service)、平台即服务(platform as a service)、基础结构即服务等(infrastructure as a service))可以通过网页浏览器或其他远程接口进行访问。本文所述的各种功能可以通过远程桌面环境或任何其他基于云的计算环境提供。

[0098]本文描述和/或示出的过程参数和步骤序列仅通过举例的方式给出并且可根据需要改变。例如,虽然本文示出和/或描述的步骤可以特定顺序示出或讨论,但这些步骤不必按示出或讨论的顺序来执行。本文描述和/或示出的各种示例性方法还可省略本文描述或示出的步骤中的一者或多者,或除了所公开的那些步骤之外还包括附加步骤。

[0099]虽然本文已经在充分发挥功能的计算系统的背景下描述和/或示出了各种实施例,但这些示例性实施例中的一者或多者可作为各种形式的程序产品来分配,而不考虑用于实际进行分配的计算机可读存储介质的特定类型。本文所公开的实施例还可使用执行某些任务的软件模块来实现。这些软件模块可包括脚本、批处理或可存储在计算机可读存储介质上或计算系统中的其他可执行文件。在一些实施例中,这些软件模块可将计算系统配置为执行本文所公开的示例性实施例中的一者或多者。

[0100]此外,本文所述的模块中的一者或多者可将数据、物理设备和/或物理设备的表示从一种形式转换为另一种形式。例如,本文所述的模块中的一者或多者可将计算设备转换为用于安全的第三方存储的设备。又如,本文所述的模块中的一者或多者可将加密文件转换成未加密文件。

[0101]提供前面描述的目的是使本领域的其他技术人员能够最好地利用本文所公开的示例性实施例的各个方面。该示例性描述并非旨在是详尽的或局限于所公开的任何精确形式。在不脱离本发明精神和范围的前提下,可进行许多修改和变化。本文所公开的实施例在所有方面均应被视为示例性的而非限制性的。应当参考所附权利要求及其等同形式来确定本发明的范围。

[0102]除非另有说明,否则在本说明书和权利要求中使用的术语“一”或“一个”应当理解为是表示“…中的至少一者”。此外,为了易于使用,在本说明书和权利要求中使用的词语“包括”和“具有”与词语“包含”可互换并且与词语“包含”具有相同含义。

Claims (18)

1.一种用于安全的第三方数据存储的计算机实现的方法,所述方法的至少一部分由包括至少一个处理器的计算设备来执行,所述方法包括: 在服务器端计算设备识别来自客户端系统的访问存储在用户账户下的加密文件的请求,其中所请求的访问需要对所述加密文件解密; 响应于所述请求来识别被指定用于所述用户账户的非对称密钥对,所述非对称密钥对包括加密密钥和已用客户端密钥加密的解密密钥; 从所述客户端系统接收所述客户端密钥; 在所述服务器端计算设备用所述客户端密钥对所述解密密钥解密; 在所述服务器端计算设备使用所述解密密钥访问所述加密文件的未加密版本; 识别被指定为访问所述加密文件的所述未加密版本的附加用户账户,其中附加非对称密钥对被指定用于所述附加用户账户,所述附加非对称密钥对包括附加加密密钥和已用附加客户端密钥加密的附加解密密钥; 用所述附加加密密钥对所述解密密钥加密。
2.根据权利要求1所述的计算机实现的方法,其中使用所述解密密钥访问所述加密文件包括: 识别用于对所述加密文件加密的文件密钥,其中所述文件密钥用所述加密密钥加密; 用所述解密密钥对所述文件密钥解密; 用所述文件密钥对所述加密文件解密。
3.根据权利要求1所述的计算机实现的方法,其中: 访问所述加密文件包括向附加用户账户提供对所述加密文件的所述未加密版本的访问。
4.根据权利要求3所述的计算机实现的方法,其中向所述附加用户账户提供对所述加密文件的所述未加密版本的访问包括: 识别用于对所述加密文件加密的文件密钥,其中所述文件密钥用所述加密密钥加密; 用所述解密密钥对所述文件密钥解密; 用所述附加加密密钥对所述文件密钥的副本加密。
5.根据权利要求1所述的计算机实现的方法,其中访问所述加密文件包括将所述加密文件的所述未加密版本传输至所述客户端系统。
6.根据权利要求1所述的计算机实现的方法,其中使用所述解密密钥访问所述加密文件的所述未加密版本包括生成描述所述加密文件的未加密版本的元数据。
7.根据权利要求6所述的计算机实现的方法,其中生成描述所述加密文件的所述未加密版本的所述元数据包括以下各项中的至少一者: 对所述加密文件的所述未加密版本执行安全扫描; 基于所述加密文件的所述未加密版本内的内容来对所述加密文件的所述未加密版本加索引; 基于所述加密文件的所述未加密版本内的内容来生成所述加密文件的所述未加密版本的预览。
8.根据权利要求1所述的计算机实现的方法,还包括: 从所述客户端系统接收所述加密文件的所述未加密版本; 通过以下各项生成所述加密文件: 基于所述加密文件的所述未加密版本的至少一个特性生成文件密钥; 用所述文件密钥对所述加密文件的所述未加密版本加密; 用所述加密密钥对所述文件密钥加密。
9.根据权利要求8所述的计算机实现的方法,还包括用通过所述文件密钥加密的附加加密文件对所述加密文件去重。
10.根据权利要求1所述的计算机实现的方法,其中接收所述客户端密钥包括将所述客户端密钥存储在易失性存储器中而不将所述客户端密钥存储在非易失性存储器中。
11.根据权利要求1所述的计算机实现的方法,还包括: 识别来自附加客户端系统的经由所述附加用户账户进一步访问所述加密文件的附加请求,其中所述所请求的附加访问需要对所述加密文件解密; 用所述附加解密密钥对所述解密密钥解密; 使用所述解密密钥经由所述附加用户账户来访问所述加密文件的所述未加密版本。
12.根据权利要求1所述的计算机实现的方法,其中使用所述解密密钥访问所述加密文件的所述未加密版本包括: 用所述解密密钥对所述附加解密密钥解密; 识别用于对所述加密密钥加密的文件密钥,其中所述文件密钥用所述附加加密密钥加密; 用所述附加解密密钥对所述文件密钥解密; 用所述文件密钥对所述加密文件解密。
13.—种用于安全的第三方数据存储的系统,所述系统包括: 识别模块,其被编程为在服务器端计算设备识别来自客户端系统的以访问存储在用户账户下的加密文件的请求,其中所请求的访问需要对所述加密文件解密; 密钥模块,其被编程为响应于所述请求识别被指定用于所述用户账户的非对称密钥对,所述非对称密钥对包括加密密钥和已用客户端密钥加密的解密密钥; 接收模块,其被编程为从所述客户端系统接收所述客户端密钥; 解密模块,所述解密模块被编程为在所述服务器端计算设备用所述客户端密钥对所述解密密钥解密; 访问模块,其被编程为: 在所述服务器端计算设备使用所述解密密钥访问所述加密文件的未加密版本; 识别被指定为访问所述加密文件的所述未加密版本的附加用户账户,其中附加非对称密钥对被指定用于所述附加用户账户, 所述附加非对称密钥对包括附加加密密钥和已用附加客户端密钥加密的附加解密密钥; 用所述附加加密密钥对所述解密密钥加密; 至少一个处理器,其被配置为执行所述识别模块、所述密钥模块、所述接收模块、所述解密模块和所述访问模块。
14.根据权利要求13所述的系统,其中所述访问模块被编程为使用所述解密密钥通过以下过程访问所述加密文件: 识别用于对所述加密文件加密的文件密钥,其中所述文件密钥用所述加密密钥加密; 用所述解密密钥对所述文件密钥解密; 用所述文件密钥对所述加密文件解密。
15.根据权利要求13所述的系统,其中: 所述访问模块被编程为通过向附加用户账户提供对所述加密文件的所述未加密版本的访问来访问所述加密文件。
16.根据权利要求15所述的系统,其中所述访问模块被编程为通过以下过程向所述附加用户账户提供对所述加密文件的所述未加密版本的访问: 识别用于对所述加密文件加密的文件密钥,其中所述文件密钥用所述加密密钥加密; 用所述解密密钥对所述文件密钥解密; 用所述附加加密密钥对所述文件密钥的副本加密。
17.根据权利要求13所述的系统,其中所述访问模块被编程为通过将所述加密文件的所述未加密版本传输至所述客户端系统来访问所述加密文件。
18.根据权利要求13所述的系统,其中所述访问模块被编程为通过生成描述所述加密文件的所述未加密版本的元数据来使用所述解密密钥访问所述加密文件的所述未加密版本。
CN201380013570.8A 2012-03-26 2013-02-28 用于安全的第三方数据存储的系统和方法 CN104205123B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US13/430,607 2012-03-26
US13/430607 2012-03-26
US13/430,607 US8458494B1 (en) 2012-03-26 2012-03-26 Systems and methods for secure third-party data storage
PCT/US2013/028224 WO2013148052A1 (en) 2012-03-26 2013-02-28 Systems and methods for secure third-party data storage

Publications (2)

Publication Number Publication Date
CN104205123A CN104205123A (zh) 2014-12-10
CN104205123B true CN104205123B (zh) 2017-02-22

Family

ID=48484448

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380013570.8A CN104205123B (zh) 2012-03-26 2013-02-28 用于安全的第三方数据存储的系统和方法

Country Status (6)

Country Link
US (2) US8458494B1 (zh)
EP (1) EP2831803B1 (zh)
JP (1) JP6182589B2 (zh)
CN (1) CN104205123B (zh)
CA (1) CA2868766C (zh)
WO (1) WO2013148052A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458494B1 (en) * 2012-03-26 2013-06-04 Symantec Corporation Systems and methods for secure third-party data storage
US8966287B2 (en) * 2012-03-26 2015-02-24 Symantec Corporation Systems and methods for secure third-party data storage
US8762718B2 (en) * 2012-08-03 2014-06-24 Palo Alto Research Center Incorporated Broadcast deduplication for satellite broadband
US8904503B2 (en) 2013-01-15 2014-12-02 Symantec Corporation Systems and methods for providing access to data accounts within user profiles via cloud-based storage services
US9183403B2 (en) * 2013-06-28 2015-11-10 Hewlett-Packard Development Company, L.P. Key retrieval
DE102013108714B3 (de) * 2013-08-12 2014-08-21 Deutsche Post Ag Support decryption of encrypted data
EP3036680B1 (en) * 2013-08-21 2018-07-18 Intel Corporation Processing data privately in the cloud
US9203815B1 (en) 2013-11-27 2015-12-01 Symantec Corporation Systems and methods for secure third-party data storage
US10331895B1 (en) * 2014-01-07 2019-06-25 Amazon Technologies, Inc. Forced data transformation policy
US9679160B1 (en) 2014-01-13 2017-06-13 Symantec Corporation Systems and methods for maintaining encrypted search indexes on third-party storage systems
US10389709B2 (en) * 2014-02-24 2019-08-20 Amazon Technologies, Inc. Securing client-specified credentials at cryptographically attested resources
US9076004B1 (en) 2014-05-07 2015-07-07 Symantec Corporation Systems and methods for secure hybrid third-party data storage
US10303879B1 (en) 2014-11-06 2019-05-28 Amazon Technologies, Inc. Multi-tenant trusted platform modules
US10043015B2 (en) * 2014-11-20 2018-08-07 At&T Intellectual Property I, L.P. Method and apparatus for applying a customer owned encryption
WO2016182509A1 (en) * 2015-05-13 2016-11-17 Agency For Science, Technology And Research Network system, and methods of encrypting data, decrypting encrypted data in the same
US9397984B1 (en) 2015-06-25 2016-07-19 Xuesong Hu Apparatus and method for secure file transfer
CN105262743A (zh) * 2015-10-10 2016-01-20 山东超越数控电子有限公司 数据存储方法及安全装置、网络存储系统
US10289865B1 (en) 2016-03-08 2019-05-14 Symantec Corporation Systems and methods for providing kinship-based accessibility to securely stored data
US10063372B1 (en) * 2016-03-25 2018-08-28 EMC IP Holding Company LLC Generating pre-encrypted keys
US10664574B1 (en) * 2017-09-15 2020-05-26 Architecture Technology Corporation Distributed data storage and sharing in a peer-to-peer network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1818920A (zh) * 2005-02-07 2006-08-16 微软公司 管理用于文件加密和解密的多个密钥的系统和方法
WO2008124201A2 (en) * 2007-01-26 2008-10-16 Safenet, Inc. Secure file encryption

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085323A (en) * 1996-04-15 2000-07-04 Kabushiki Kaisha Toshiba Information processing system having function of securely protecting confidential information
GB2318486B (en) * 1996-10-16 2001-03-28 Ibm Data communications system
JP3457184B2 (ja) * 1998-06-25 2003-10-14 シャープ株式会社 検索装置及びその制御プログラムを記憶した媒体
US6226618B1 (en) * 1998-08-13 2001-05-01 International Business Machines Corporation Electronic content delivery system
JP4206529B2 (ja) * 1998-09-17 2009-01-14 ソニー株式会社 コンテンツ管理方法及びコンテンツ記憶システム
JP2000172548A (ja) * 1998-12-11 2000-06-23 Nippon Telegr & Teleph Corp <Ntt> 電子データ管理方法,装置およびそのプログラム記録媒体
US6820204B1 (en) * 1999-03-31 2004-11-16 Nimesh Desai System and method for selective information exchange
US20050192008A1 (en) * 1999-03-31 2005-09-01 Nimesh Desai System and method for selective information exchange
US7200230B2 (en) * 2000-04-06 2007-04-03 Macrovision Corporation System and method for controlling and enforcing access rights to encrypted media
DE60128290T2 (de) * 2000-05-11 2007-08-30 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zur Dateienverwaltung
US6947556B1 (en) * 2000-08-21 2005-09-20 International Business Machines Corporation Secure data storage and retrieval with key management and user authentication
GB2367933B (en) * 2000-10-10 2002-10-23 F Secure Oyj Encryption
US20020071560A1 (en) * 2000-12-12 2002-06-13 Kurn David Michael Computer system having an autonomous process for centralized cryptographic key administration
US7711122B2 (en) * 2001-03-09 2010-05-04 Arcot Systems, Inc. Method and apparatus for cryptographic key storage wherein key servers are authenticated by possession and secure distribution of stored keys
JP3993989B2 (ja) * 2001-04-18 2007-10-17 株式会社パンプキンハウス 暗号システムおよびその制御方法,暗号システムにおいて用いられる鍵管理サーバおよびクライアント,ならびにこれらの制御方法
US7395436B1 (en) * 2002-01-31 2008-07-01 Kerry Nemovicher Methods, software programs, and systems for electronic information security
US7062656B2 (en) * 2002-02-22 2006-06-13 International Busness Machines Corporation Method for providing secure access to information held in a shared respiratory
JP3864867B2 (ja) * 2002-07-23 2007-01-10 ソニー株式会社 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US7320076B2 (en) * 2003-03-05 2008-01-15 Sun Microsystems, Inc. Method and apparatus for a transaction-based secure storage file system
US7703140B2 (en) 2003-09-30 2010-04-20 Guardian Data Storage, Llc Method and system for securing digital assets using process-driven security policies
JP2005190135A (ja) * 2003-12-25 2005-07-14 Canon Inc 情報処理装置及びその制御方法、プログラム
EP1735939A1 (en) * 2004-03-29 2006-12-27 Smart Internet Technology Crc Pty Limited Digital license sharing system and method
EP2267624B1 (en) * 2004-04-19 2017-07-12 Lumension Security S.A. A generic framework for runtime interception and execution control of interpreted languages
WO2005121972A1 (en) * 2004-06-14 2005-12-22 Research In Motion Limited Method and system for securing data utilizing redundant secure key storage
US7797342B2 (en) * 2004-09-03 2010-09-14 Sybase, Inc. Database system providing encrypted column support for applications
US9158933B2 (en) * 2007-08-17 2015-10-13 Sybase, Inc. Protection of encryption keys in a database
JP4597784B2 (ja) * 2005-06-09 2010-12-15 シャープ株式会社 データ処理装置
AU2006299819B2 (en) * 2005-10-12 2011-02-10 Carbonite Gmbh Method and system for data backup
EP1984866B1 (en) * 2006-02-07 2011-11-02 Nextenders (India) Private Limited Document security management system
US7505978B2 (en) 2006-02-13 2009-03-17 International Business Machines Corporation Aggregating content of disparate data types from disparate data sources for single point access
US8074078B2 (en) * 2006-05-15 2011-12-06 Research In Motion Limited System and method for remote reset of password and encryption key
US20080181406A1 (en) * 2007-01-30 2008-07-31 Technology Properties Limited System and Method of Storage Device Data Encryption and Data Access Via a Hardware Key
US20090046858A1 (en) * 2007-03-21 2009-02-19 Technology Properties Limited System and Method of Data Encryption and Data Access of a Set of Storage Devices via a Hardware Key
KR101200572B1 (ko) * 2007-07-09 2012-11-13 삼성전자주식회사 공개 브로드캐스트 암호화를 이용한 인증 방법 및 컨텐츠재생 방법과 그 장치
JP2009245227A (ja) * 2008-03-31 2009-10-22 Fujitsu Ltd 情報記憶装置
JP2010097550A (ja) * 2008-10-20 2010-04-30 Intelligent Software:Kk ウイルス防止プログラム、コンピュータに着脱可能な記憶装置、及びウイルス防止方法
US8345866B2 (en) * 2009-02-27 2013-01-01 Research In Motion Limited Secure data transfer on a handheld communications device
US8751826B2 (en) * 2009-04-01 2014-06-10 Salesforce.Com, Inc. Enhanced system security
US8959062B2 (en) * 2009-08-13 2015-02-17 Hitachi Solutions, Ltd. Data storage device with duplicate elimination function and control device for creating search index for the data storage device
EP2348449A3 (en) * 2009-12-18 2013-07-10 CompuGroup Medical AG A computer implemented method for performing cloud computing on data being stored pseudonymously in a database
US8478996B2 (en) * 2009-12-21 2013-07-02 International Business Machines Corporation Secure Kerberized access of encrypted file system
US9137017B2 (en) * 2010-05-28 2015-09-15 Red Hat, Inc. Key recovery mechanism
US8458494B1 (en) * 2012-03-26 2013-06-04 Symantec Corporation Systems and methods for secure third-party data storage
US8966287B2 (en) * 2012-03-26 2015-02-24 Symantec Corporation Systems and methods for secure third-party data storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1818920A (zh) * 2005-02-07 2006-08-16 微软公司 管理用于文件加密和解密的多个密钥的系统和方法
WO2008124201A2 (en) * 2007-01-26 2008-10-16 Safenet, Inc. Secure file encryption

Also Published As

Publication number Publication date
WO2013148052A1 (en) 2013-10-03
JP2015517146A (ja) 2015-06-18
CA2868766A1 (en) 2013-10-03
EP2831803A1 (en) 2015-02-04
US8458494B1 (en) 2013-06-04
US8745416B2 (en) 2014-06-03
EP2831803A4 (en) 2015-11-04
EP2831803B1 (en) 2018-12-19
CA2868766C (en) 2018-08-14
CN104205123A (zh) 2014-12-10
JP6182589B2 (ja) 2017-08-16
US20130254558A1 (en) 2013-09-26

Similar Documents

Publication Publication Date Title
US10586054B2 (en) Privacy firewall
US10542430B2 (en) Quorum-based secure authentication
US10419416B2 (en) Encryption and decryption techniques using shuffle function
US10671760B2 (en) Secure and private data storage
CA2899014C (en) Policy enforcement with associated data
US9413735B1 (en) Managing distribution and retrieval of security key fragments among proxy storage devices
CN103916456B (zh) 用于云存储服务的透明加密/解密网关
US9077541B2 (en) Methods and systems for storage of large data objects
EP3195555B1 (en) Secure key management for roaming protected content
US9342705B1 (en) Systems and methods for searching shared encrypted files on third-party storage systems
CN103731432B (zh) 一种支持多用户的可搜索加密方法
US9537918B2 (en) File sharing with client side encryption
US10404670B2 (en) Data security service
CN105051750B (zh) 用于加密文件系统层的系统和方法
CN103246842B (zh) 用于验证和数据加密的方法和设备
US9432346B2 (en) Protocol for controlling access to encryption keys
CN104885093B (zh) 基于加密的数据访问管理
US10298555B2 (en) Securing files under the semi-trusted user threat model using per-file key encryption
CN102546764B (zh) 一种云存储系统的安全访问方法
EP2731041B1 (en) Computer system for storing and retrieval of encrypted data items, client computer, computer program product and computer-implemented method
US20150365385A1 (en) Method and apparatus for securing sensitive data in a cloud storage system
RU2589861C2 (ru) Система и способ шифрования данных пользователя
US9122888B2 (en) System and method to create resilient site master-key for automated access
US9070112B2 (en) Method and system for securing documents on a remote shared storage resource
US10090998B2 (en) Multiple authority data security and access

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200107

Address after: California, USA

Patentee after: CA,INC.

Address before: California, USA

Patentee before: Symantec Corporation