新四季網

用於安全的第三方數據存儲的系統和方法

2023-04-22 23:24:46 3

用於安全的第三方數據存儲的系統和方法
【專利摘要】本發明提供了一種用於安全的第三方數據存儲的計算機實現的方法,所述方法可包括1)在伺服器端計算設備識別來自客戶端系統的訪問存儲在用戶帳戶下的加密文件的請求,2)響應於所述請求來識別被指定用於所述用戶帳戶的非對稱密鑰對,所述非對稱密鑰對包括加密密鑰和已用客戶端密鑰加密的解密密鑰,3)從所述客戶端系統接收所述客戶端密鑰,4)用所述客戶端密鑰對所述解密密鑰解密,以及5)使用所述解密密鑰訪問所述加密文件的未加密版本。還公開了各種其他方法、系統和計算機可讀介質。
【專利說明】用於安全的第三方數據存儲的系統和方法

【背景技術】
[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 (I)和510(2)被配置為經由第三方存儲伺服器520所促進的第三方存儲服務來存儲和/或訪問一個或多個文件。例如,第三方存儲伺服器520可以為客戶端系統510(1)存儲加密文件540。在該例子中,非對稱密鑰對530 (I)可對應於客戶端系統510 (I),非對稱密鑰對530 (2)可對應於客戶端系統510 (2)。因此,加密文件540可以是用文件密鑰544加密的,該文件密鑰544用加密密鑰532(1)加密並且存儲為加密的文件密鑰542(1)。
[0064]在步驟550,客戶端系統510 (I)可將請求傳輸至第三方存儲伺服器520以與客戶端系統510 (2)共享對加密文件540的未加密內容的訪問。請求可包括客戶端密鑰512(1)。第三方存儲伺服器520可接收客戶端密鑰512 (I)並且在步驟552用客戶端密鑰512 (I)對加密的解密密鑰534(1)解密以獲得解密密鑰536(1)。在步驟554,第三方存儲伺服器520可用解密密鑰536(1)對加密的文件密鑰542(1)解密以獲得文件密鑰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 (I)和610 (2),該客戶端系統610 (I)和610(2)被配置為經由第三方存儲伺服器620所促進的第三方存儲服務來存儲和/或訪問一個或多個文件。例如,第三方存儲伺服器620可為客戶端系統610(1)存儲加密文件640、642和644。在該例子中,非對稱密鑰對630 (I)可對應於客戶端系統610 (I),非對稱密鑰對630 (2)可對應於客戶端系統610 (2)。因此,加密文件640、642和644可以是分別用加密的文件密鑰641、643和645加密的,所述加密的文件密鑰繼而可以是用加密密鑰632(1)加密的。
[0068]在步驟650,客戶端系統610 (I)可將請求傳輸至第三方存儲伺服器620以與客戶端系統610(2)共享對加密文件640、642和644的未加密內容的訪問。請求可包括客戶端密鑰612 (I)。第三方存儲伺服器620可接收客戶端密鑰612 (I)並且在步驟652用客戶端密鑰612(1)對加密的解密密鑰634(1)解密以獲得解密密鑰636(1)。
[0069]在步驟654,第三方存儲伺服器620可用加密密鑰632 (2)對解密密鑰636 (I)加密以獲得加密的解密密鑰638。第三方存儲伺服器620隨後可存儲加密的解密密鑰638以供將來使用。隨後,在步驟656,客戶端系統610 (2)可向第三方存儲伺服器620發送訪問加密文件640、642和644中的一者或多者的請求(包括客戶端密鑰612(2))。第三方存儲伺服器620隨後可通過以下過程來提供訪問:用加密的解密密鑰634 (2)對加密的解密密鑰638解密以獲得解密密鑰636 (I),並且用解密密鑰636 (I)對文件密鑰641、643和645中的一者或多者解密以獲得加密文件640、642和644中的一者或多者的未加密內容。
[0070]返回圖3的步驟310,在一些例子中,訪問模塊112可基於用戶帳戶群組的成員資格提供對加密文件的未加密版本的訪問。例如,訪問模塊112可識別被指定用於包括所述用戶帳戶的用戶帳戶群組的附加非對稱密鑰對。附加非對稱密鑰對可包括附加加密密鑰和附加解密密鑰。可用對應於用戶帳戶的非對稱密鑰對的加密密鑰來對附加解密密鑰加密。訪問模塊112隨後可用解密密鑰對附加解密密鑰解密。訪問模塊112可進一步識別用於對加密文件加密的文件密鑰。文件密鑰可用附加加密密鑰加密。因此,訪問模塊112可用附加解密密鑰對文件密鑰解密並且用文件密鑰對加密文件解密。在附加例子中,加密文件可以是用附加的加密密鑰,而不是文件密鑰進行加密。在該例子中,訪問模塊112可僅用附加解密密鑰對加密文件解密。
[0071]圖7示出了用於安全的第三方數據存儲的示例性系統700。如圖7所示,示例性系統700可包括客戶端系統710 (I)、710 (2)和710 (3),該客戶端系統710 (I)、710 (2)和710(3)被配置為經由第三方存儲伺服器720所促進的第三方存儲服務來存儲和/或訪問一個或多個文件。例如,第三方存儲伺服器720可為客戶端系統710(1)-(3)存儲加密文件746、747和748。在該例子中,個人非對稱密鑰對730 (I)可對應於客戶端系統710 (I)並且群組非對稱密鑰對740(2)可對應於作為群組的客戶端系統710(1)-(3)(其中例如客戶端系統710(1)、710(2)和710(3)各自具有分別帶有加密解密密鑰744 (I)、744 (2)和744(3)的群組解密密鑰738的加密版本)。加密文件746、747和748可用加密密鑰742加密。
[0072]在步驟750,客戶端系統710 (I)可將請求傳輸至第三方存儲伺服器720,以訪問加密文件740的未加密內容。請求可包括客戶端密鑰712 (I)。第三方存儲伺服器720可接收客戶端密鑰712(1)並且在步驟752用客戶端密鑰712(1)對加密的解密密鑰734(1)解密,以獲得個人解密密鑰736 (I)。在步驟754,第三方存儲伺服器720可用個人解密密鑰736 (I)對加密的解密密鑰744(1)解密,以獲得群組解密密鑰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 (I)-(N)可直接連接到伺服器945。存儲設備960 (I) - (N)和存儲設備970 (I)-(N)通常表示能夠存儲數據和/或其他計算機可讀指令的任何類型或形式的存儲設備或介質。在某些實施例中,存儲設備960 (I)-(N)和存儲設備970 (I)-(N)可表示被配置為使用各種協議,諸如NFS、SMB或CIFS,與伺服器940和945進行通信的網絡連接存儲(NAS)設備。
[0092]伺服器940和945還可連接到存儲區域網絡(SAN)光纖網980。SAN光纖網980通常表示能夠促進多個存儲設備之間的通信的任何類型或形式的計算機網絡或體系結構。SAN光纖網980可促進伺服器940和945與多個存儲設備990 (I)-(N)和/或智能存儲陣列995之間的通信。SAN光纖網980還可經由網絡950以及伺服器940和945以這樣的方式促進客戶端系統910、920和930與存儲設備990 (I)-(N)和/或智能存儲陣列995之間的通信:設備990 (I)-(N)和陣列995呈現為客戶端系統910、920和930的本地連接設備。與存儲設備960 (I)-(N)和存儲設備970 (I)-(N)相同,存儲設備990 (I) - (N)和智能存儲陣列995通常表示能夠存儲數據和/或其他計算機可讀指令的任何類型或形式的存儲設備或介質。
[0093]在某些實施例中,並參考圖8的示例性計算系統810,通信接口,諸如圖8中的通信接口 822,可用於在每個客戶端系統910、920和930與網絡950之間提供連接。客戶端系統910、920和930可能能夠使用(例如)網頁瀏覽器或其他客戶端軟體來訪問伺服器940或945上的信息。此類軟體可允許客戶端系統910、920和930訪問由伺服器940、伺服器945、存儲設備960 (I) - (N)、存儲設備970 (I) - (N)、存儲設備990 (I) - (N)或智能存儲陣列995託管的數據。儘管圖9示出了使用網絡(諸如網際網路)來交換數據,但本文描述和/或示出的實施例並非僅限於網際網路或任何特定的基於網絡的環境。
[0094]在至少一個實施例中,本文所公開的一個或多個示例性實施例中的全部或一部分可被編碼為電腦程式並加載到伺服器940、伺服器945、存儲設備960 (I)-(N)、存儲設備970 (I)-(N)、存儲設備990 (I)-(N)或智能存儲陣列995或它們的任意組合上並加以執行。本文所公開的一個或多個示例性實施例中的全部或一部分還可被編碼為電腦程式,存儲在伺服器940中,由伺服器945運行,以及通過網絡950分配到客戶端系統910、920和930。
[0095]如上詳述,計算系統810和/或網絡體系結構900的一個或多個組件可執行和/或作為一種方式用於單獨或與其他元件結合來執行用於安全的第三方數據存儲的示例性方法的一個或多個步驟。
[0096]雖然上述發明使用特定框圖、流程圖和例子闡述了各種實施例,但每個框圖組件、流程圖步驟、操作和/或本文描述和/或示出的組件可使用範圍廣泛的硬體、軟體或固件(或其任何組合)配置來單獨和/或共同實現。此外,包含在其他組件內的組件的任何公開內容應當被視為在本質上是示例性的,因為可實施許多其他體系結構來實現相同功能。
[0097]在一些例子中,圖1中的示例性系統100的全部或一部分可表示雲計算環境或基於網絡的環境的部分。雲計算環境可以通過網際網路提供各種服務和應用程式。這些基於雲的服務(例如軟體即服務(software as a service)、平臺即服務(platform as aservice)、基礎結構即服務等(infrastructure as a service))可以通過網頁瀏覽器或其他遠程接口進行訪問。本文所述的各種功能可以通過遠程桌面環境或任何其他基於雲的計算環境提供。
[0098]本文描述和/或示出的過程參數和步驟序列僅通過舉例的方式給出並且可根據需要改變。例如,雖然本文示出和/或描述的步驟可以特定順序示出或討論,但這些步驟不必按示出或討論的順序來執行。本文描述和/或示出的各種示例性方法還可省略本文描述或示出的步驟中的一者或多者,或除了所公開的那些步驟之外還包括附加步驟。
[0099]雖然本文已經在充分發揮功能的計算系統的背景下描述和/或示出了各種實施例,但這些示例性實施例中的一者或多者可作為各種形式的程序產品來分配,而不考慮用於實際進行分配的計算機可讀存儲介質的特定類型。本文所公開的實施例還可使用執行某些任務的軟體模塊來實現。這些軟體模塊可包括腳本、批處理或可存儲在計算機可讀存儲介質上或計算系統中的其他可執行文件。在一些實施例中,這些軟體模塊可將計算系統配置為執行本文所公開的示例性實施例中的一者或多者。
[0100]此外,本文所述的模塊中的一者或多者可將數據、物理設備和/或物理設備的表示從一種形式轉換為另一種形式。例如,本文所述的模塊中的一者或多者可將計算設備轉換為用於安全的第三方存儲的設備。又如,本文所述的模塊中的一者或多者可將加密文件轉換成未加密文件。
[0101]提供前面描述的目的是使本領域的其他技術人員能夠最好地利用本文所公開的示例性實施例的各個方面。該示例性描述並非旨在是詳盡的或局限於所公開的任何精確形式。在不脫離本發明精神和範圍的前提下,可進行許多修改和變化。本文所公開的實施例在所有方面均應被視為示例性的而非限制性的。應當參考所附權利要求及其等同形式來確定本發明的範圍。
[0102]除非另有說明,否則在本說明書和權利要求中使用的術語「一」或「一個」應當理解為是表示「…中的至少一者」。此外,為了易於使用,在本說明書和權利要求中使用的詞語「包括」和「具有」與詞語「包含」可互換並且與詞語「包含」具有相同含義。
【權利要求】
1.一種用於安全的第三方數據存儲的方法,所述方法的至少一部分由包括至少一個處理器的計算設備來執行,所述方法包括: 在所述伺服器端計算設備識別來自客戶端系統的訪問存儲在用戶帳戶下的加密文件的請求,其中所述所請求的訪問需要對所述加密文件解密; 響應於所述請求來識別被指定用於所述用戶帳戶的非對稱密鑰對,所述非對稱密鑰對包括加密密鑰和已用客戶端密鑰加密的解密密鑰; 從所述客戶端系統接收所述客戶端密鑰; 用所述客戶端密鑰對所述解密密鑰解密; 使用所述解密密鑰訪問所述加密文件的未加密版本。
2.根據權利要求1所述的計算機實現的方法,其中使用所述解密密鑰訪問所述加密文件包括: 識別用於對所述加密文件加密的文件密鑰,其中所述文件密鑰用所述加密密鑰加密; 用所述解密密鑰對所述文件密鑰解密; 用所述文件密鑰對所述加密文件解密。
3.根據權利要求1所述的計算機實現的方法,其中: 訪問所述加密文件包括向附加用戶帳戶提供對所述加密文件的所述未加密版本的訪問; 附加非對稱密鑰對被指定用於所述附加用戶帳戶,所述附加非對稱密鑰對包括附加加密密鑰和已用附加客戶端密鑰加密的附加解密密鑰。
4.根據權利要求3所述的計算機實現的方法,其中向所述附加用戶帳戶提供對所述加密文件的所述未加密版本的訪問包括: 識別用於對所述加密文件加密的文件密鑰,其中所述文件密鑰用所述加密密鑰加密; 用所述解密密鑰對所述文件密鑰解密; 用所述附加加密密鑰對所述文件密鑰的副本加密。
5.根據權利要求1所述的計算機實現的方法,其中訪問所述加密文件包括將所述加密文件的所述未加密版本傳輸至所述客戶端系統。
6.根據權利要求1所述的計算機實現的方法,其中使用所述解密密鑰訪問所述加密文件的所述未加密版本包括生成描述所述加密文件的未加密版本的元數據。
7.根據權利要求6所述的計算機實現的方法,其中生成描述所述加密文件的所述未加密版本的所述元數據包括以下各項中的至少一者: 對所述加密文件的所述未加密版本執行安全掃描; 基於所述加密文件的所述未加密版本內的內容來對所述加密文件的所述未加密版本加索引; 基於所述加密文件的所述未加密版本內的內容來生成所述加密文件的所述未加密版本的預覽。
8.根據權利要求1所述的計算機實現的方法,還包括: 從所述客戶端系統接收所述加密文件的所述未加密版本; 通過以下各項生成所述加密文件: 基於所述加密文件的所述未加密版本的至少一個特性生成文件密鑰; 用所述文件密鑰對所述加密文件的所述未加密版本加密; 用所述加密密鑰對所述文件密鑰加密。
9.根據權利要求8所述的計算機實現的方法,還包括用通過所述文件密鑰加密的附加加密文件對所述加密文件去重。
10.根據權利要求1所述的計算機實現的方法,其中接收所述客戶端密鑰包括將所述客戶端密鑰存儲在易失性存儲器中而不將所述客戶端密鑰存儲在非易失性存儲器中。
11.根據權利要求1所述的計算機實現的方法,還包括: 識別被指定為訪問所述加密文件的所述未加密版本的附加用戶帳戶,其中附加非對稱密鑰對被指定用於所述附加用戶帳戶,所述附加非對稱密鑰對包括附加加密密鑰和已用附加客戶端密鑰加密的附加解密密鑰; 用所述附加加密密鑰對所述解密密鑰加密。
12.根據權利要求11所述的計算機實現的方法,還包括: 識別來自附加客戶端系統的經由所述附加用戶帳戶進一步訪問所述加密文件的附加請求,其中所述所請求的附加訪問需要對所述加密文件解密; 用所述附加解密密鑰對所述解密密鑰解密; 使用所述解密密鑰經由所述附加用戶帳戶來訪問所述加密文件的所述未加密版本。
13.根據權利要求1所述的計算機實現的方法,其中使用所述解密密鑰訪問所述加密文件的所述未加密版本包括: 識別被指定用於包括所述用戶帳戶的多個用戶帳戶的附加非對稱密鑰對,所述附加非對稱密鑰對包括附加加密密鑰和已用所述加密密鑰加密的附加解密密鑰; 用所述解密密鑰對所述附加解密密鑰解密; 識別用於對所述加密密鑰加密的文件密鑰,其中所述文件密鑰用所述附加加密密鑰加密; 用所述附加解密密鑰對所述文件密鑰解密; 用所述文件密鑰對所述加密文件解密。
14.一種用於安全的第三方數據存儲的系統,所述系統包括: 識別模塊,其被編程為在所述伺服器端計算設備識別來自客戶端系統的以訪問存儲在用戶帳戶下的加密文件的請求,其中所請求的訪問需要對所述加密文件解密; 密鑰模塊,其被編程為響應於所述請求識別被指定用於所述用戶帳戶的非對稱密鑰對,所述非對稱密鑰對包括加密密鑰和已用客戶端密鑰加密的解密密鑰; 接收模塊,其被編程為從所述客戶端系統接收所述客戶端密鑰; 解密模塊,所述解密模塊被編程為用所述客戶端密鑰對所述解密密鑰解密; 訪問模塊,其被編程為使用所述解密密鑰訪問所述加密文件的未加密版本; 至少一個處理器,其被配置為執行所述識別模塊、所述密鑰模塊、所述接收模塊、所述解密模塊和所述訪問模塊。
15.根據權利要求14所述的系統,其中所述訪問模塊被編程為使用所述解密密鑰通過以下過程訪問所述加密文件: 識別用於對所述加密文件加密的文件密鑰,其中所述文件密鑰用所述加密密鑰加密; 用所述解密密鑰對所述文件密鑰解密; 用所述文件密鑰對所述加密文件解密。
16.根據權利要求14所述的系統,其中: 所述訪問模塊被編程為通過向附加用戶帳戶提供對所述加密文件的所述未加密版本的訪問來訪問所述加密文件; 附加非對稱密鑰對被指定用於所述附加用戶帳戶,所述附加非對稱密鑰對包括附加加密密鑰和已用附加客戶端密鑰加密的附加解密密鑰。
17.根據權利要求16所述的系統,其中所述訪問模塊被編程為通過以下過程向所述附加用戶帳戶提供對所述加密文件的所述未加密版本的訪問: 識別用於對所述加密文件加密的文件密鑰,其中所述文件密鑰用所述加密密鑰加密; 用所述解密密鑰對所述文件密鑰解密; 用所述附加加密密鑰對所述文件密鑰的副本加密。
18.根據權利要求14所述的系統,其中所述訪問模塊被編程為通過將所述加密文件的所述未加密版本傳輸至所述客戶端系統來訪問所述加密文件。
19.根據權利要求14所述的系統,其中所述訪問模塊被編程為通過生成描述所述加密文件的所述未加密版本的元數據來使用所述解密密鑰訪問所述加密文件的所述未加密版本。
20.一種計算機可讀存儲介質,其包括一個或多個計算機可執行指令,當由計算設備的至少一個處理器執行時,所述指令可使所述計算設備: 在所述伺服器端計算設備識別來自客戶端系統的訪問加密文件的請求,其中所述所請求的訪問需要對所述加密文件解密; 響應於所述請求來識別非對稱密鑰對,所述非對稱密鑰對包括加密密鑰和已用客戶端密鑰加密的解密密鑰; 從所述客戶端系統接收所述客戶端密鑰; 用所述客戶端密鑰對所述解密密鑰解密; 使用所述解密密鑰訪問所述加密文件的未加密版本。
【文檔編號】G06F21/78GK104205123SQ201380013570
【公開日】2014年12月10日 申請日期:2013年2月28日 優先權日:2012年3月26日
【發明者】W·伯格拉德 申請人:賽門鐵克公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀