用于安全的第三方數(shù)據(jù)存儲(chǔ)的系統(tǒng)和方法
【專利摘要】本發(fā)明提供了一種用于安全的第三方數(shù)據(jù)存儲(chǔ)的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法可包括1)在服務(wù)器端計(jì)算設(shè)備識(shí)別來(lái)自客戶端系統(tǒng)的訪問(wèn)存儲(chǔ)在用戶賬戶下的加密文件的請(qǐng)求,2)響應(yīng)于所述請(qǐng)求來(lái)識(shí)別被指定用于所述用戶賬戶的非對(duì)稱密鑰對(duì),所述非對(duì)稱密鑰對(duì)包括加密密鑰和已用客戶端密鑰加密的解密密鑰,3)從所述客戶端系統(tǒng)接收所述客戶端密鑰,4)用所述客戶端密鑰對(duì)所述解密密鑰解密,以及5)使用所述解密密鑰訪問(wèn)所述加密文件的未加密版本。還公開(kāi)了各種其他方法、系統(tǒng)和計(jì)算機(jī)可讀介質(zhì)。
【專利說(shuō)明】用于安全的第三方數(shù)據(jù)存儲(chǔ)的系統(tǒng)和方法
【背景技術(shù)】
[0001]組織和消費(fèi)者越來(lái)越多地使用第三方服務(wù)來(lái)存儲(chǔ)數(shù)據(jù)。第三方存儲(chǔ)服務(wù)可為客戶提供多個(gè)有益效果,包括靈活性、低資本要求、附加服務(wù)、數(shù)據(jù)共享和對(duì)數(shù)據(jù)的集中訪問(wèn)。
[0002]許多第三方存儲(chǔ)客戶想要或需要在將其數(shù)據(jù)提交給第三方存儲(chǔ)供應(yīng)商之前加密其數(shù)據(jù)。例如,由于隱私問(wèn)題,個(gè)體消費(fèi)者可能希望對(duì)發(fā)送給第三方存儲(chǔ)供應(yīng)商的數(shù)據(jù)加密。類似地,組織可能希望對(duì)發(fā)送給第三方存儲(chǔ)供應(yīng)商的數(shù)據(jù)加密以便確保遵守內(nèi)部或外部數(shù)據(jù)保護(hù)要求,諸如政府法律法規(guī)、與其他組織的合作協(xié)議等。遺憾的是,通過(guò)在將數(shù)據(jù)提交給第三方存儲(chǔ)系統(tǒng)之前加密數(shù)據(jù),客戶可能會(huì)妨礙第三方存儲(chǔ)供應(yīng)商對(duì)數(shù)據(jù)進(jìn)行去重的嘗試。例如,如果兩個(gè)客戶使用不同加密方案(例如,不同密鑰)對(duì)相同文件加密,所得到的加密文件將不同,從而有可能妨礙第三方存儲(chǔ)供應(yīng)商將文件去重為多次引用的單個(gè)文件。另外,在將文件提交給第三方存儲(chǔ)系統(tǒng)之前加密文件可能妨礙第三方存儲(chǔ)服務(wù)與其定向的其他用戶有效共享文件和/或?qū)ξ募?zhí)行其他服務(wù)的能力,諸如對(duì)文件運(yùn)行安全掃描、生成文件的自定義視圖等。
[0003]鑒于上述限制,本發(fā)明識(shí)別出需要用于安全的第三方數(shù)據(jù)存儲(chǔ)的附加和改進(jìn)的系統(tǒng)和方法。
【發(fā)明內(nèi)容】
[0004]本發(fā)明整體涉及用于安全的第三方數(shù)據(jù)存儲(chǔ)的系統(tǒng)和方法。如下文將更詳細(xì)地描述,通過(guò)在第三方存儲(chǔ)服務(wù)器上保持用于對(duì)安全數(shù)據(jù)(例如,文件和/或用于文件的加密密鑰)加密和解密的非對(duì)稱密鑰對(duì)并且用客戶端所保持的加密密鑰來(lái)對(duì)這些非對(duì)稱密鑰對(duì)的解密密鑰加密,本文所述的系統(tǒng)和方法可允許第三方存儲(chǔ)服務(wù)器根據(jù)需要加密數(shù)據(jù),但需要客戶端提交解密密鑰以便訪問(wèn)安全數(shù)據(jù)。
[0005]在一個(gè)實(shí)施例中,用于安全的第三方數(shù)據(jù)存儲(chǔ)的計(jì)算機(jī)實(shí)現(xiàn)的方法可包括I)在服務(wù)器端計(jì)算設(shè)備識(shí)別來(lái)自客戶端系統(tǒng)的訪問(wèn)存儲(chǔ)在用戶賬戶下的加密文件的請(qǐng)求(其中所請(qǐng)求的訪問(wèn)需要對(duì)加密文件解密),2)響應(yīng)于該請(qǐng)求識(shí)別被指定用于用戶賬戶的非對(duì)稱密鑰對(duì),該非對(duì)稱密鑰對(duì)包括加密密鑰和已用客戶端密鑰加密的解密密鑰,3)從客戶系統(tǒng)接收客戶端密鑰,4)用客戶端密鑰對(duì)解密密鑰解密,以及5)使用解密密鑰訪問(wèn)加密文件的未加密版本。
[0006]在一些例子中,接收客戶端密鑰可包括將客戶端密鑰存儲(chǔ)在易失性存儲(chǔ)器中而不將客戶端密鑰存儲(chǔ)在非易失性存儲(chǔ)器中。使用解密密鑰訪問(wèn)加密文件的未加密版本可包括多種步驟中的任何一者。在一些實(shí)施例中,使用解密密鑰訪問(wèn)加密文件的未加密版本可包括I)識(shí)別用于對(duì)加密文件加密的文件密鑰(該文件密鑰已用加密密鑰加密),2)用解密密鑰對(duì)文件密鑰解密,以及3)用文件密鑰對(duì)加密文件解密。
[0007]在一些例子中,使用解密密鑰訪問(wèn)加密文件的未加密版本可包括生成描述加密文件的未加密版本的元數(shù)據(jù)。在這些例子中,生成元數(shù)據(jù)可包括I)執(zhí)行對(duì)加密文件的未加密版本的安全掃描,2)基于加密文件的未加密版本內(nèi)的內(nèi)容來(lái)對(duì)加密文件的未加密版本加索弓丨,和/或3)生成加密文件未加密版本的預(yù)覽。
[0008]在一些實(shí)施例中,使用解密密鑰訪問(wèn)加密文件的未加密版本可包括I)識(shí)別被指定用于包括所述用戶賬戶的多個(gè)用戶賬戶的附加非對(duì)稱密鑰對(duì),其中該附加非對(duì)稱密鑰對(duì)包括附加加密密鑰和已用(例如,被指定用于所述用戶賬戶的非對(duì)稱密鑰對(duì)的)加密密鑰加密的附加解密密鑰,2)用(例如,被指定用于所述用戶賬戶的非對(duì)稱密鑰對(duì)的)解密密鑰對(duì)附加解密密鑰解密,3)識(shí)別用于對(duì)加密文件加密的文件密鑰(該文件密鑰已用附加加密密鑰加密),4)用附加解密密鑰對(duì)文件密鑰解密,以及5)用文件密鑰對(duì)加密文件解密。
[0009]在一些例子中,訪問(wèn)加密文件的未加密版本可包括將加密文件的未加密版本傳輸至客戶端系統(tǒng)。除此之外或作為另外一種選擇,訪問(wèn)加密文件的未加密版本可包括向附加用戶賬戶提供對(duì)加密文件的未加密版本的訪問(wèn),其中I)附加非對(duì)稱密鑰對(duì)被指定用于附加用戶賬戶,2)附加非對(duì)稱密鑰對(duì)包括附加加密密鑰和附加解密密鑰,以及3)附加解密密鑰用附加客戶端密鑰加密。在這些實(shí)施例中,向附加用戶賬戶提供對(duì)加密文件的未加密版本的訪問(wèn)可包括I)識(shí)別用于對(duì)加密文件加密的文件密鑰(該文件密鑰已用加密密鑰加密),2)用解密密鑰對(duì)文件密鑰解密,以及3)用附加加密密鑰對(duì)文件密鑰的副本加密。
[0010]在一些例子中,計(jì)算機(jī)實(shí)現(xiàn)的方法還可包括I)識(shí)別被指定為訪問(wèn)加密文件的未加密版本的附加用戶賬戶,其中a)附加非對(duì)稱密鑰對(duì)被指定用于附加用戶賬戶,b)附加非對(duì)稱密鑰對(duì)包括附加加密密鑰和附加解密密鑰,并且c)附加解密密鑰用附加客戶端密鑰加密,以及2)用附加加密密鑰對(duì)解密密鑰加密。在這些例子中,計(jì)算機(jī)實(shí)現(xiàn)的方法可附加地包括I)識(shí)別來(lái)自附加客戶端系統(tǒng)的經(jīng)由附加用戶賬戶進(jìn)一步訪問(wèn)加密文件(其中附加請(qǐng)求訪問(wèn)需要對(duì)加密文件解密)的附加請(qǐng)求,2)用附加解密密鑰對(duì)所述解密密鑰解密,以及3)使用解密密鑰經(jīng)由附加用戶賬戶訪問(wèn)加密文件的未加密版本。
[0011]在一個(gè)例子中,計(jì)算機(jī)實(shí)現(xiàn)的方法還可包括I)從客戶端系統(tǒng)接收加密文件的未加密版本,2)通過(guò)a)基于加密文件的未加密版本的至少一個(gè)特性生成文件密鑰和b)用文件密鑰對(duì)加密文件的未加密版本加密,來(lái)生成加密文件,以及3)用加密密鑰對(duì)文件密鑰加密。在該例子中,計(jì)算機(jī)實(shí)現(xiàn)的方法可附加地包括用通過(guò)文件密鑰加密的附加加密文件對(duì)加密文件去重。
[0012]在一個(gè)實(shí)施例中,用于實(shí)現(xiàn)上述方法的系統(tǒng)可包括I)識(shí)別模塊,該識(shí)別模塊被編程為在服務(wù)器端計(jì)算設(shè)備識(shí)別來(lái)自客戶端系統(tǒng)的訪問(wèn)存儲(chǔ)在用戶賬戶下的加密文件的請(qǐng)求(其中所請(qǐng)求的訪問(wèn)需要對(duì)加密文件解密),2)密鑰模塊,該密鑰模塊被編程為響應(yīng)于請(qǐng)求來(lái)識(shí)別被指定用于該用戶賬戶的非對(duì)稱密鑰對(duì),該非對(duì)稱密鑰對(duì)包括加密密鑰和已用客戶端密鑰加密的解密密鑰,3)接收模塊,該接收模塊被編程為從客戶端系統(tǒng)接收客戶端密鑰,4)解密模塊,該解密模塊被編程為用客戶端密鑰對(duì)解密密鑰解密,以及5)訪問(wèn)模塊,該訪問(wèn)模塊被編程為使用解密密鑰訪問(wèn)加密文件的未加密版本。該系統(tǒng)還可包括至少一個(gè)處理器,該處理器被配置為執(zhí)行識(shí)別模塊、密鑰模塊、接收模塊、解密模塊和訪問(wèn)模塊。
[0013]在一些例子中,上述方法可被編碼為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)可讀指令。例如,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可包括一個(gè)或多個(gè)計(jì)算機(jī)可執(zhí)行指令,當(dāng)由計(jì)算設(shè)備的至少一個(gè)處理器執(zhí)行時(shí),該指令可使計(jì)算設(shè)備I)在服務(wù)器端計(jì)算設(shè)備識(shí)別來(lái)自客戶端系統(tǒng)的訪問(wèn)存儲(chǔ)在用戶賬戶下的加密文件的請(qǐng)求(其中所請(qǐng)求的訪問(wèn)需要對(duì)加密文件解密),2)響應(yīng)于請(qǐng)求來(lái)識(shí)別被指定用于該用戶賬戶的非對(duì)稱密鑰對(duì),該非對(duì)稱密鑰對(duì)包括加密密鑰和已用客戶端密鑰加密的解密密鑰,3)從客戶端系統(tǒng)接收客戶端密鑰,4)用客戶端密鑰對(duì)解密密鑰解密,以及5)使用解密密鑰訪問(wèn)加密文件的未加密版本。
[0014]如將在下文中更詳細(xì)地說(shuō)明,通過(guò)在第三方存儲(chǔ)服務(wù)器上保持用于對(duì)安全數(shù)據(jù)加密和解密的非對(duì)稱密鑰對(duì)并且用客戶端所保持的加密密鑰對(duì)非對(duì)稱密鑰對(duì)的解密密鑰加密,本文所述的系統(tǒng)和方法可對(duì)客戶端數(shù)據(jù)進(jìn)行安全存儲(chǔ)和加密而不存儲(chǔ)為訪問(wèn)未加密狀態(tài)下的安全數(shù)據(jù)所需的客戶端解密密鑰。這些系統(tǒng)和方法從而可阻止已獲取第三方存儲(chǔ)系統(tǒng)訪問(wèn)的攻擊者訪問(wèn)未加密狀態(tài)下的安全數(shù)據(jù),同時(shí)仍允許和/或促進(jìn)該安全數(shù)據(jù)的共享、去重、分析和/或加索引。
[0015]來(lái)自上述實(shí)施例中的任何一者的特征可根據(jù)本文所述的一般原理彼此結(jié)合地使用。通過(guò)結(jié)合附圖和權(quán)利要求閱讀下面的詳細(xì)描述,將會(huì)更充分地理解這些和其他實(shí)施例、特征和優(yōu)點(diǎn)。
【專利附圖】
【附圖說(shuō)明】
[0016]附圖示出了多個(gè)示例性實(shí)施例并且為說(shuō)明書的一部分。這些附圖結(jié)合下面的描述展示并且說(shuō)明本發(fā)明的各種原理。
[0017]圖1為用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性系統(tǒng)的框圖。
[0018]圖2為用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性系統(tǒng)的框圖。
[0019]圖3為用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性方法的流程圖。
[0020]圖4為用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性系統(tǒng)的框圖。
[0021]圖5為用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性系統(tǒng)的框圖。
[0022]圖6為用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性系統(tǒng)的框圖。
[0023]圖7為用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性系統(tǒng)的框圖。
[0024]圖8為能夠?qū)崿F(xiàn)本文描述和/或示出的實(shí)施例中的一者或多者的示例性計(jì)算系統(tǒng)的框圖。
[0025]圖9為能夠?qū)崿F(xiàn)本文描述和/或示出的實(shí)施例中的一者或多者的示例性計(jì)算網(wǎng)絡(luò)的框圖。
[0026]在全部附圖中,相同引用字符和描述指示類似但未必相同的元件。雖然本文所述的示例性實(shí)施例易受各種修改和替代形式的影響,但在附圖中以舉例的方式示出了特定實(shí)施例并且將在本文中詳細(xì)描述這些特定實(shí)施例。然而,本文所述的示例性實(shí)施例并非旨在限于所公開(kāi)的特定形式。相反,本發(fā)明涵蓋落在所附權(quán)利要求范圍內(nèi)的所有修改形式、等同形式和替代形式。
【具體實(shí)施方式】
[0027]下面將參考圖1-2和4-7提供對(duì)用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性系統(tǒng)的詳細(xì)描述。還將結(jié)合圖3提供相應(yīng)計(jì)算機(jī)實(shí)現(xiàn)方法的詳細(xì)描述。此外,將分別結(jié)合圖8和9提供能夠?qū)崿F(xiàn)本文所述實(shí)施例中的一者或多者的示例性計(jì)算系統(tǒng)和網(wǎng)絡(luò)體系結(jié)構(gòu)的詳細(xì)描述。
[0028]圖1為用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性系統(tǒng)100的框圖。如該附圖所示,示例性系統(tǒng)100可包括用于執(zhí)行一個(gè)或多個(gè)任務(wù)的一個(gè)或多個(gè)模塊102。例如,并且如將在下面更詳細(xì)地說(shuō)明,示例性系統(tǒng)100可包括識(shí)別模塊104,該識(shí)別模塊104被編程為在服務(wù)器端計(jì)算設(shè)備識(shí)別來(lái)自客戶端系統(tǒng)的訪問(wèn)存儲(chǔ)在用戶賬戶下的加密文件的請(qǐng)求。示例性系統(tǒng)100也可包括密鑰模塊106,該密鑰模塊106被編程為響應(yīng)于請(qǐng)求來(lái)識(shí)別被指定用于該用戶賬戶的非對(duì)稱密鑰對(duì),該非對(duì)稱密鑰對(duì)包括加密密鑰和已用客戶端密鑰加密的解密密鑰。
[0029]此外,并且如將在下面更詳細(xì)地描述,示例性系統(tǒng)100可包括接收模塊108,該接收模塊108被編程為從客戶端系統(tǒng)接收客戶端密鑰。示例性系統(tǒng)100也可包括解密模塊110,該解密模塊110被編程為用客戶端密鑰對(duì)解密密鑰解密。示例性系統(tǒng)100可附加包括訪問(wèn)模塊112,該訪問(wèn)模塊112被編程為使用解密密鑰訪問(wèn)加密文件的未加密版本。盡管示出為獨(dú)立元件,但圖1中的模塊102中的一者或多者可表示單個(gè)模塊或應(yīng)用程序的部分。
[0030]在某些實(shí)施例中,圖1中的模塊102中的一者或多者可表示一個(gè)或多個(gè)軟件應(yīng)用程序或程序,當(dāng)由計(jì)算設(shè)備執(zhí)行時(shí)所述軟件應(yīng)用程序或程序可使計(jì)算設(shè)備執(zhí)行一個(gè)或多個(gè)任務(wù)。例如,并且如將在下文更詳細(xì)地描述,模塊102中的一者或多者可表示被存儲(chǔ)并且被配置為在一個(gè)或多個(gè)計(jì)算設(shè)備上運(yùn)行的軟件模塊,所述計(jì)算設(shè)備諸如為圖2中示出的設(shè)備(例如,計(jì)算設(shè)備202和/或客戶端系統(tǒng)206)、圖8中的計(jì)算系統(tǒng)810和/或圖9中的示例性網(wǎng)絡(luò)體系結(jié)構(gòu)900的部分。圖1中的模塊102中的一者或多者也可表示被配置為執(zhí)行一個(gè)或多個(gè)任務(wù)的一臺(tái)或多臺(tái)專用計(jì)算機(jī)的全部或部分。
[0031]圖1中的示例性系統(tǒng)100可以多種方式來(lái)實(shí)現(xiàn)。例如,示例性系統(tǒng)100的全部或一部分可表示圖2中的示例性系統(tǒng)200的部分。如圖2所示,系統(tǒng)200可包括經(jīng)由網(wǎng)絡(luò)204與客戶端系統(tǒng)206通信(以向客戶端系統(tǒng)206提供例如第三方存儲(chǔ)服務(wù))的計(jì)算設(shè)備202。
[0032]在一個(gè)實(shí)施例中,圖1中的模塊102中的一者或多者在由計(jì)算設(shè)備202的至少一個(gè)處理器執(zhí)行時(shí)可促進(jìn)計(jì)算設(shè)備202實(shí)現(xiàn)安全的第三方數(shù)據(jù)存儲(chǔ)。例如,并且如將在下面更詳細(xì)地描述,模塊102中的一者或多者可使計(jì)算設(shè)備2021)在服務(wù)器端計(jì)算設(shè)備202識(shí)別來(lái)自客戶端系統(tǒng)206的訪問(wèn)存儲(chǔ)在用戶賬戶240下的加密文件242的請(qǐng)求210,2)響應(yīng)于請(qǐng)求210來(lái)識(shí)別被指定用于用戶賬戶240的非對(duì)稱密鑰對(duì)220,該非對(duì)稱密鑰對(duì)220包括加密密鑰222和已用客戶端密鑰230加密的加密解密密鑰224,3)從客戶端系統(tǒng)206接收客戶端密鑰230,4)用客戶端密鑰230對(duì)加密解密密鑰224解密(產(chǎn)生例如解密密鑰226)以及5)使用解密密鑰226訪問(wèn)加密文件242 (例如,文件244)的未加密版本。
[0033]計(jì)算設(shè)備202和客戶端系統(tǒng)206通常表示能夠讀取計(jì)算機(jī)可執(zhí)行指令的任何類型或形式的計(jì)算設(shè)備。計(jì)算設(shè)備202和客戶端系統(tǒng)206的例子包括但不限于服務(wù)器、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板、移動(dòng)電話、個(gè)人數(shù)字助理(PDA)、多媒體播放器、嵌入式系統(tǒng)、這些設(shè)備中的一者或多者的組合、圖8中的示例性計(jì)算系統(tǒng)810或任何其他合適的計(jì)算設(shè)備。
[0034]網(wǎng)絡(luò)204通常表示能夠促進(jìn)通信或數(shù)據(jù)傳輸?shù)娜魏谓橘|(zhì)或體系結(jié)構(gòu)。網(wǎng)絡(luò)204的例子包括但不限于內(nèi)聯(lián)網(wǎng)、廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)、個(gè)人局域網(wǎng)(PAN)、互聯(lián)網(wǎng)、電力線通信(PLC)、蜂窩網(wǎng)絡(luò)(例如,GSM網(wǎng)絡(luò))、圖9中的示例性網(wǎng)絡(luò)體系結(jié)構(gòu)900等等。網(wǎng)絡(luò)204可使用無(wú)線或有線連接促進(jìn)通信或數(shù)據(jù)傳輸。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)204可促進(jìn)計(jì)算設(shè)備202與客戶端系統(tǒng)206之間的通信。
[0035]圖3為用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性計(jì)算機(jī)實(shí)現(xiàn)方法300的流程圖。圖3中示出的步驟可由任何合適的計(jì)算機(jī)可執(zhí)行代碼和/或計(jì)算系統(tǒng)執(zhí)行。在一些實(shí)施例中,圖3中示出的步驟可由圖1中的系統(tǒng)100、圖2中的系統(tǒng)200、圖8中的計(jì)算系統(tǒng)810和/或圖9中的示例性網(wǎng)絡(luò)體系結(jié)構(gòu)900的部分的組件中的一者或多者執(zhí)行。
[0036]如圖3所示,在步驟302本文所述系統(tǒng)中的一者或多者可在服務(wù)器端計(jì)算設(shè)備識(shí)別來(lái)自客戶端系統(tǒng)的訪問(wèn)存儲(chǔ)在用戶賬戶下的加密文件的請(qǐng)求。例如,在步驟302,識(shí)別模塊104可作為圖2中的計(jì)算設(shè)備202的一部分識(shí)別來(lái)自客戶端系統(tǒng)206的訪問(wèn)存儲(chǔ)在用戶賬戶240下的加密文件242的請(qǐng)求210。在上述兩個(gè)例子中,所請(qǐng)求的訪問(wèn)可需要或涉及對(duì)加密文件解密。
[0037]在一些例子中,服務(wù)器端計(jì)算設(shè)備可作為第三方存儲(chǔ)系統(tǒng)的一部分運(yùn)行。如本文所用,術(shù)語(yǔ)“第三方存儲(chǔ)系統(tǒng)”可指能夠?yàn)橛脩舸鎯?chǔ)數(shù)據(jù)的任何類型或形式的存儲(chǔ)系統(tǒng),包括基于云的存儲(chǔ)系統(tǒng)。在一些例子中,第三方存儲(chǔ)系統(tǒng)可存儲(chǔ)用于多個(gè)不同實(shí)體的數(shù)據(jù)。在至少一個(gè)例子中,用第三方存儲(chǔ)系統(tǒng)存儲(chǔ)數(shù)據(jù)的實(shí)體可能需要針對(duì)彼此(以便例如阻止未經(jīng)授權(quán)訪問(wèn)實(shí)體內(nèi)的數(shù)據(jù))、針對(duì)入侵者(例如,未經(jīng)授權(quán)訪問(wèn)存儲(chǔ)在第三方存儲(chǔ)系統(tǒng)內(nèi)的數(shù)據(jù)的實(shí)體)和/或第三方存儲(chǔ)系統(tǒng)的一個(gè)或多個(gè)管理員的數(shù)據(jù)安全性。在一些例子中,第三方存儲(chǔ)系統(tǒng)可表示或包括單實(shí)例存儲(chǔ)系統(tǒng)(即,被配置為僅存儲(chǔ)用于多個(gè)所有者的內(nèi)容的每個(gè)項(xiàng)目的單個(gè)實(shí)例)。
[0038]因此,客戶端系統(tǒng)可繼而包括用于促進(jìn)使用第三方存儲(chǔ)系統(tǒng)的任何系統(tǒng)。在一些例子中,客戶端系統(tǒng)可由不同于服務(wù)器端計(jì)算設(shè)備的所有者和/或管理員的實(shí)體擁有和/或進(jìn)行管理。
[0039]如本文所用,術(shù)語(yǔ)“文件”可指數(shù)據(jù)的任何合適單元,包括但不限于文件、數(shù)據(jù)對(duì)象、數(shù)據(jù)區(qū)段、數(shù)據(jù)流的部分、數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)條目和/或電子文檔。此外,短語(yǔ)“用戶賬戶”可指可對(duì)應(yīng)于數(shù)據(jù)所有者(用于例如識(shí)別由數(shù)據(jù)所有者擁有的數(shù)據(jù)和/或保護(hù)數(shù)據(jù)所有者擁有的數(shù)據(jù)以供數(shù)據(jù)所有者使用)的任何標(biāo)識(shí)符和/或權(quán)限系統(tǒng)。
[0040]識(shí)別模塊104可識(shí)別多種類型請(qǐng)求中的任何一者。例如,如將在下面更詳細(xì)地說(shuō)明,識(shí)別模塊104可識(shí)別為客戶端系統(tǒng)檢索加密文件的未加密版本的請(qǐng)求。除此之外或作為另外一種選擇,識(shí)別模塊104可識(shí)別與另一個(gè)用戶賬戶共享文件的可訪問(wèn)版本的請(qǐng)求。在一些例子中,識(shí)別模塊104可識(shí)別對(duì)文件執(zhí)行一個(gè)或多個(gè)程序(例如,需要對(duì)加密文件的未加密版本進(jìn)行訪問(wèn)的程序)的請(qǐng)求。
[0041]識(shí)別模塊104可在多種上下文中的任何一者中接收請(qǐng)求。例如,識(shí)別模塊104可從客戶端系統(tǒng)接收用戶發(fā)起的請(qǐng)求。除此之外或作為另外一種選擇,并且如將在下文更詳細(xì)地說(shuō)明,識(shí)別模塊104可接收僅通過(guò)從客戶端系統(tǒng)接收使得能夠訪問(wèn)加密文件的客戶端密鑰來(lái)訪問(wèn)加密文件的隱式請(qǐng)求。
[0042]返回圖3,在步驟304,本文所述的系統(tǒng)中的一者或多者可響應(yīng)于請(qǐng)求來(lái)識(shí)別被指定用于用戶賬戶的非對(duì)稱密鑰對(duì),該非對(duì)稱密鑰對(duì)包括加密密鑰和已用客戶端密鑰加密的解密密鑰。例如,在步驟304,密鑰模塊106可作為圖2中的計(jì)算設(shè)備202的一部分,響應(yīng)于請(qǐng)求210來(lái)識(shí)別被指定用于用戶賬戶240的非對(duì)稱密鑰對(duì)220,該非對(duì)稱密鑰對(duì)220包括加密密鑰222和已用客戶端密鑰230加密的加密解密密鑰224。
[0043]如本文所用,短語(yǔ)“非對(duì)稱密鑰對(duì)”可指包括加密密鑰(或“公用密鑰”)和解密密鑰(或“私有密鑰”)的任何一對(duì)密碼密鑰。加密密鑰可包括不需要保密以便對(duì)用密鑰加密的數(shù)據(jù)進(jìn)行保護(hù)的任何密鑰。例如,加密密鑰可用于使用非對(duì)稱密鑰算法來(lái)加密數(shù)據(jù)。因此,對(duì)用加密密鑰加密的數(shù)據(jù)解密可能需要非對(duì)稱密鑰對(duì)的相應(yīng)解密密鑰。在一些例子中,非對(duì)稱密鑰對(duì)可存儲(chǔ)在第三方存儲(chǔ)系統(tǒng)上和/或由第三方存儲(chǔ)系統(tǒng)存儲(chǔ)。在至少一個(gè)例子中,加密密鑰和解密密鑰均不可分配到第三方存儲(chǔ)系統(tǒng)之外。
[0044]此外,如本文所用的短語(yǔ)“客戶端密鑰”可指用于對(duì)非對(duì)稱密鑰對(duì)的解密密鑰加密和/或解密的任何合適密碼密鑰。在一些例子中,客戶端密鑰可包括對(duì)稱密鑰(例如,既用于加密數(shù)據(jù),也用于對(duì)所述數(shù)據(jù)解密的密鑰)。例如,客戶端密鑰可被配置為根據(jù)高級(jí)加密標(biāo)準(zhǔn)規(guī)范(例如,AES-256)對(duì)數(shù)據(jù)加密和解密。在一些例子中,客戶端密鑰可在客戶端系統(tǒng)上生成。例如,客戶端密鑰可使用密鑰派生功能生成,例如基于密碼的密鑰派生功能(例如,PBKDF2)。
[0045]在一些例子中,客戶端密鑰可緩存到客戶端系統(tǒng)上。除此之外或作為另外一種選擇,客戶端密鑰可根據(jù)需要通過(guò)密碼生成(例如,在客戶端系統(tǒng)或在第三方存儲(chǔ)系統(tǒng)生成)。在一些例子中,可從外部密鑰存儲(chǔ)庫(kù)檢索客戶端密鑰。如將在下文更詳細(xì)地說(shuō)明,在一些例子中,客戶端密鑰可不存儲(chǔ)在服務(wù)器端計(jì)算設(shè)備上和/或由服務(wù)器端計(jì)算設(shè)備實(shí)現(xiàn)的第三方存儲(chǔ)系統(tǒng)內(nèi)。在一些例子中,可能僅可通過(guò)相應(yīng)客戶端來(lái)訪問(wèn)客戶端密鑰。該客戶端可對(duì)應(yīng)于組織、帶有共享秘密的團(tuán)體、計(jì)算設(shè)備和/或任何其他合適的實(shí)體。
[0046]在一些例子中,本文所述的系統(tǒng)中的一者或多者可能已使用非對(duì)稱密鑰對(duì)內(nèi)的加密密鑰對(duì)加密文件加密。例如,本文所述的系統(tǒng)中的一者或多者可從客戶端系統(tǒng)接收加密文件的未加密版本并且隨后生成加密文件。這些系統(tǒng)可通過(guò)基于加密文件的未加密版本的至少一個(gè)特性生成文件密鑰并且隨后用該文件密鑰對(duì)加密文件的未加密版本加密來(lái)生成加密文件。例如,這些系統(tǒng)可衍生加密文件的未加密版本的散列并且使文件密鑰基于該散列。這樣,本文所述的系統(tǒng)和方法可由相同未加密文件產(chǎn)生相同加密文件,從而允許跨客戶端的去重。
[0047]例如,本文所述的系統(tǒng)可通過(guò)用文件密鑰加密的附加加密文件對(duì)所述加密文件去重。在生成文件密鑰時(shí),這些系統(tǒng)可用加密密鑰對(duì)文件密鑰加密。如本文所用的術(shù)語(yǔ)“去重”可指與減小單實(shí)例數(shù)據(jù)存儲(chǔ)系統(tǒng)中所用的存儲(chǔ)空間的量相關(guān)的一個(gè)或多個(gè)操作,包括用于檢測(cè)和阻止數(shù)據(jù)冗余地存儲(chǔ)至單實(shí)例數(shù)據(jù)存儲(chǔ)系統(tǒng)的操作。去重可使用任何合適的去重技術(shù)或算法來(lái)執(zhí)行。在一些例子中,去重可包括文件級(jí)別的去重。除此之外或作為另外一種選擇,去重可包括塊級(jí)別的去重。
[0048]除了對(duì)加密文件的未加密版本加密之外,在一些例子中,本文所述系統(tǒng)中的一者或多者可基于加密文件的未加密版本執(zhí)行一個(gè)或多個(gè)操作(例如,在對(duì)加密文件的未加密版本加密之前并且從而無(wú)法再訪問(wèn)加密文件的未加密版本)。例如,本文所述的系統(tǒng)中的一者或多者可對(duì)加密文件的未加密版本的內(nèi)容加索引,對(duì)加密文件的未加密版本執(zhí)行反惡意軟件掃描,生成加密文件的未加密版本的內(nèi)容預(yù)覽等。在這些例子中,一旦對(duì)加密文件加密,這些系統(tǒng)就可將從加密文件的未加密版本生成的元數(shù)據(jù)與該加密文件關(guān)聯(lián)。
[0049]密鑰模塊106可識(shí)別以任何合適方式被指定用于用戶賬戶的非對(duì)稱密鑰對(duì)。在一些例子中,第三方存儲(chǔ)系統(tǒng)可托管多個(gè)用戶賬戶的數(shù)據(jù),每個(gè)用戶賬戶帶有指定并且不同的非對(duì)稱密鑰對(duì)。因此,密鑰模塊106可根據(jù)客戶端系統(tǒng)提供的一個(gè)或多個(gè)標(biāo)識(shí)符和/或憑證識(shí)別用于該用戶賬戶的非對(duì)稱密鑰對(duì)。
[0050]返回圖3,在步驟306,本文所述的系統(tǒng)中的一者或多者可從客戶端系統(tǒng)接收客戶端密鑰。例如,在步驟306,接收模塊108可作為圖2中的計(jì)算設(shè)備202的一部分從客戶端系統(tǒng)206接收客戶端密鑰230。
[0051]如之前所述,在一些例子中,客戶端密鑰可不存儲(chǔ)在服務(wù)器端上(即,不存儲(chǔ)在服務(wù)器端計(jì)算設(shè)備和/或關(guān)聯(lián)的第三方存儲(chǔ)系統(tǒng)上)。例如,接收模塊108可接收客戶端密鑰并且將客戶端密鑰存儲(chǔ)在易失性存儲(chǔ)器中而不將客戶端密鑰存儲(chǔ)在非易失性存儲(chǔ)器中。如本文所用,短語(yǔ)“易失性存儲(chǔ)器”可指任何非持久性和/或臨時(shí)性存儲(chǔ)位置。在一些例子中,短語(yǔ)“易失性存儲(chǔ)器”可指隨機(jī)存取存儲(chǔ)器。此外,短語(yǔ)“非易失性存儲(chǔ)器”可指任何持久性存儲(chǔ)位置。例如,短語(yǔ)“非易失性存儲(chǔ)器”可指文件系統(tǒng)用來(lái)存儲(chǔ)一個(gè)或多個(gè)文件的存儲(chǔ)設(shè)備。在一些例子中,接收模塊108可接收客戶端密鑰并且在使用之后不保留該客戶端密鑰。例如,接收模塊108可在與客戶端系統(tǒng)的會(huì)話已終止之后丟棄客戶端密鑰。
[0052]接收模塊108可以多種方式中的任何一者從客戶端系統(tǒng)接收客戶端密鑰。例如,接收模塊108可直接從客戶端系統(tǒng)接收客戶端密鑰。除此之外或作為另外一種選擇,接收模塊108可通過(guò)接收表示客戶端密鑰并且從中可生成客戶端密鑰的數(shù)據(jù)而從客戶端系統(tǒng)接收客戶端密鑰。例如,接收模塊108可從客戶端系統(tǒng)接收用于密鑰派生功能的密碼并且使用該密鑰派生功能來(lái)自密碼生成客戶端密鑰。在該例子中,接收模塊108也可將密碼僅保持在非易失性存儲(chǔ)器中和/或在使用密碼生成客戶端密鑰時(shí)丟棄該密碼。
[0053]返回圖3,在步驟308,本文所述的系統(tǒng)中的一者或多者可用客戶端密鑰對(duì)解密密鑰解密。例如,在步驟308,解密模塊110可作為圖2中的計(jì)算設(shè)備202的一部分用客戶端密鑰230對(duì)加密的解密密鑰224解密(產(chǎn)生例如解密密鑰226)。
[0054]解密模塊110可以任何合適方式對(duì)解密密鑰解密。例如,解密模塊110可根據(jù)預(yù)先確定的對(duì)稱密鑰算法將客戶端密鑰應(yīng)用于解密密鑰以生成解密密鑰的解密版本。
[0055]在步驟310,本文所述系統(tǒng)中的一者或多者可使用解密密鑰訪問(wèn)加密文件的未加密版本。例如,在步驟310,訪問(wèn)模塊112作為圖2中的計(jì)算設(shè)備202的一部分可使用解密密鑰226訪問(wèn)加密文件242的未加密版本(例如,文件244)。
[0056]訪問(wèn)模塊112可使用解密密鑰以各種方式中的任何一者訪問(wèn)加密文件的未加密版本。例如,訪問(wèn)模塊112可識(shí)別用于對(duì)加密文件加密的文件密鑰。在該例子中,可用加密密鑰對(duì)文件密鑰加密。因此,訪問(wèn)模塊112可用解密密鑰對(duì)文件密鑰解密并且隨后用文件密鑰對(duì)加密文件解密。
[0057]訪問(wèn)模塊112可訪問(wèn)加密文件的未加密版本以傳輸至多個(gè)終端中的任何一者。例如,如上詳述,來(lái)自客戶端系統(tǒng)的請(qǐng)求可包括檢索加密文件的未加密版本的請(qǐng)求。因此,訪問(wèn)模塊112可將加密文件的未加密版本傳輸至客戶端系統(tǒng)(例如,響應(yīng)于請(qǐng)求)。
[0058]圖4示出了用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性系統(tǒng)400。如圖4所示,示例性系統(tǒng)400可包括客戶端系統(tǒng)410,客戶端系統(tǒng)410被配置為經(jīng)由第三方存儲(chǔ)服務(wù)器420所促進(jìn)的第三方存儲(chǔ)服務(wù)來(lái)存儲(chǔ)一個(gè)或多個(gè)文件。例如,客戶端系統(tǒng)410可能先前已將未加密文件446傳輸至第三方存儲(chǔ)服務(wù)器420。第三方存儲(chǔ)服務(wù)器420可能已使用加密密鑰432識(shí)別了與客戶端系統(tǒng)410和加密的未加密文件446相關(guān)聯(lián)的非對(duì)稱密鑰對(duì)430。在一個(gè)例子中,客戶端系統(tǒng)410可嘗試檢索現(xiàn)在作為加密文件440存儲(chǔ)在第三方存儲(chǔ)服務(wù)器420上的未加密文件446。例如,在步驟450,客戶端系統(tǒng)410可向第三方存儲(chǔ)服務(wù)器420傳輸消息,該消息請(qǐng)求未加密文件446并且包含客戶端密鑰412。第三方存儲(chǔ)服務(wù)器420可因此接收客戶端密鑰412并且將客戶端密鑰412保持在存儲(chǔ)器中以供使用。
[0059]在步驟452,第三方存儲(chǔ)服務(wù)器420可識(shí)別非對(duì)稱密鑰對(duì)430并且用客戶端密鑰412對(duì)加密的解密密鑰434解密以產(chǎn)生解密密鑰436。在步驟454,第三方存儲(chǔ)服務(wù)器420可使用解密密鑰436對(duì)加密的文件密鑰442解密以獲得用于加密文件440的文件密鑰444。在步驟456,第三方存儲(chǔ)服務(wù)器420可使用文件密鑰444對(duì)加密文件440解密并且獲得未加密文件446。在步驟458,第三方存儲(chǔ)服務(wù)器420可將未加密文件446傳輸至客戶端系統(tǒng)410,從而滿足客戶端系統(tǒng)410的請(qǐng)求。此外,第三方存儲(chǔ)系統(tǒng)420可丟棄客戶端密鑰412、解密密鑰436和文件密鑰444,并且刪除未加密文件446。
[0060]返回圖3的步驟310,在一些例子中,訪問(wèn)模塊112可訪問(wèn)加密文件的未加密版本以生成描述加密文件的未加密版本的元數(shù)據(jù)。在一些例子中,訪問(wèn)模塊112隨后可存儲(chǔ)與加密文件相關(guān)的元數(shù)據(jù),使得描述加密文件的元數(shù)據(jù)即使在加密文件的未加密版本在第三方存儲(chǔ)系統(tǒng)上不再可直接訪問(wèn)之后仍然可用。
[0061]例如,訪問(wèn)模塊112可對(duì)加密文件的未加密版本執(zhí)行安全掃描(例如,以確定加密文件是否包括任何惡意軟件或引起任何其他安全風(fēng)險(xiǎn))。在另一個(gè)例子中,訪問(wèn)模塊112可基于加密文件的未加密版本內(nèi)的內(nèi)容來(lái)對(duì)加密文件的未加密版本加索引(例如,以促進(jìn)基于其內(nèi)容搜索加密文件而不訪問(wèn)加密文件的未加密版本)。在附加例子中,訪問(wèn)模塊112可基于加密文件的未加密版本的內(nèi)容生成加密文件的未加密版本的預(yù)覽(例如,以促進(jìn)瀏覽加密文件而不訪問(wèn)加密文件的未加密版本)。如上詳述,在一些例子中,當(dāng)加密文件的未加密版本第一次被上載時(shí)(例如,在加密之前),本文所述的一個(gè)或多個(gè)系統(tǒng)可除此之外或作為另外一種選擇執(zhí)行上述操作中的一者或多者。
[0062]在一些例子中,訪問(wèn)模塊112可向另一方提供對(duì)加密文件的未加密版本的訪問(wèn)。例如,訪問(wèn)模塊112可向另一個(gè)用戶賬戶提供對(duì)加密文件的未加密版本的訪問(wèn)。在該例子中,可針對(duì)附加用戶賬戶指定附加非對(duì)稱密鑰對(duì),包括附加加密密鑰和附加解密密鑰??捎酶郊涌蛻舳嗣荑€(與例如對(duì)應(yīng)于附加用戶賬戶的附加客戶端系統(tǒng)有關(guān))對(duì)附加解密密鑰加密。在該例子中,訪問(wèn)模塊112可通過(guò)首先識(shí)別用于對(duì)加密文件加密的文件密鑰而向附加用戶賬戶提供對(duì)加密文件的未加密版本的訪問(wèn)。由于加密文件可與用戶賬戶有關(guān),因此可用加密密鑰(即,對(duì)應(yīng)于用戶賬戶的非對(duì)稱密鑰對(duì)的加密密鑰)對(duì)文件密鑰加密。訪問(wèn)模塊112隨后可用解密密鑰對(duì)文件密鑰解密并且用附加加密密鑰對(duì)文件密鑰的副本加密。這樣,附加用戶賬戶可對(duì)加密文件進(jìn)行訪問(wèn)(通過(guò)例如提交附加客戶端密鑰以對(duì)文件密鑰解密,從而允許由文件密鑰對(duì)加密文件解密)。
[0063]圖5示出了用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性系統(tǒng)500。如圖5所示,示例性系統(tǒng)500可包括客戶端系統(tǒng)510(1)和510 (2),該客戶端系統(tǒng)510 (I)和510(2)被配置為經(jīng)由第三方存儲(chǔ)服務(wù)器520所促進(jìn)的第三方存儲(chǔ)服務(wù)來(lái)存儲(chǔ)和/或訪問(wèn)一個(gè)或多個(gè)文件。例如,第三方存儲(chǔ)服務(wù)器520可以為客戶端系統(tǒng)510(1)存儲(chǔ)加密文件540。在該例子中,非對(duì)稱密鑰對(duì)530 (I)可對(duì)應(yīng)于客戶端系統(tǒng)510 (I),非對(duì)稱密鑰對(duì)530 (2)可對(duì)應(yīng)于客戶端系統(tǒng)510 (2)。因此,加密文件540可以是用文件密鑰544加密的,該文件密鑰544用加密密鑰532(1)加密并且存儲(chǔ)為加密的文件密鑰542(1)。
[0064]在步驟550,客戶端系統(tǒng)510 (I)可將請(qǐng)求傳輸至第三方存儲(chǔ)服務(wù)器520以與客戶端系統(tǒng)510 (2)共享對(duì)加密文件540的未加密內(nèi)容的訪問(wèn)。請(qǐng)求可包括客戶端密鑰512(1)。第三方存儲(chǔ)服務(wù)器520可接收客戶端密鑰512 (I)并且在步驟552用客戶端密鑰512 (I)對(duì)加密的解密密鑰534(1)解密以獲得解密密鑰536(1)。在步驟554,第三方存儲(chǔ)服務(wù)器520可用解密密鑰536(1)對(duì)加密的文件密鑰542(1)解密以獲得文件密鑰544。在步驟556,第三方存儲(chǔ)服務(wù)器520可用加密密鑰532(2)對(duì)文件密鑰544加密以獲得加密的文件密鑰542 (2),并且可存儲(chǔ)加密的文件密鑰542 (2)以供將來(lái)使用。在步驟558,第三方存儲(chǔ)服務(wù)器520可從客戶端系統(tǒng)510(2)接收請(qǐng)求,以訪問(wèn)加密文件540的未加密內(nèi)容。請(qǐng)求可包括客戶端密鑰512 (2),從而允許第三方存儲(chǔ)服務(wù)器520對(duì)加密的解密密鑰534 (2)解密,并且從而對(duì)加密的文件密鑰542(2)解密,以便獲得文件密鑰544并且對(duì)加密文件540解密。
[0065]在一些例子中,訪問(wèn)模塊112可通過(guò)允許對(duì)應(yīng)于附加用戶賬戶的附加客戶端密鑰對(duì)用戶賬戶的解密密鑰解密,來(lái)向附加用戶賬戶提供對(duì)加密文件的未加密版本的訪問(wèn)。例如,訪問(wèn)模塊112可識(shí)別被指定為訪問(wèn)加密文件的未加密版本的附加用戶賬戶。在該例子中,可針對(duì)附加用戶賬戶指定附加非對(duì)稱密鑰對(duì),該非對(duì)稱密鑰對(duì)包括附加加密密鑰和附加解密密鑰??捎酶郊涌蛻舳嗣荑€(與例如對(duì)應(yīng)于附加用戶賬戶的附加客戶端系統(tǒng)有關(guān))對(duì)附加解密密鑰加密。
[0066]在上述例子中,訪問(wèn)模塊112可通過(guò)用附加加密密鑰對(duì)解密密鑰加密(并且,例如存儲(chǔ)加密的解密密鑰以供以后與附加用戶賬戶一起使用)而向附加用戶賬戶提供對(duì)加密文件的未加密版本的訪問(wèn)。例如,本文所述的系統(tǒng)中的一者或多者可稍后識(shí)別來(lái)自附加客戶端系統(tǒng)的附加請(qǐng)求,以經(jīng)由附加用戶賬戶進(jìn)一步訪問(wèn)加密文件。這些系統(tǒng)隨后可用附加解密密鑰對(duì)解密密鑰解密并且使用解密密鑰來(lái)經(jīng)由附加用戶賬戶訪問(wèn)加密文件的未加密版本(通過(guò)例如使用解密密鑰對(duì)已用以對(duì)加密文件加密的文件密鑰解密并且接著用文件密鑰對(duì)加密文件解密)。在一些例子中,上述方法可用于在用戶賬戶和附加用戶賬戶之間共享多個(gè)文件。該方法也可消除一些密碼處理步驟(通過(guò)例如不要求針對(duì)共享的每個(gè)文件生成單獨(dú)的加密文件)。
[0067]圖6示出了用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性系統(tǒng)600。如圖6所示,示例性系統(tǒng)600可包括客戶端系統(tǒng)610 (I)和610 (2),該客戶端系統(tǒng)610 (I)和610(2)被配置為經(jīng)由第三方存儲(chǔ)服務(wù)器620所促進(jìn)的第三方存儲(chǔ)服務(wù)來(lái)存儲(chǔ)和/或訪問(wèn)一個(gè)或多個(gè)文件。例如,第三方存儲(chǔ)服務(wù)器620可為客戶端系統(tǒng)610(1)存儲(chǔ)加密文件640、642和644。在該例子中,非對(duì)稱密鑰對(duì)630 (I)可對(duì)應(yīng)于客戶端系統(tǒng)610 (I),非對(duì)稱密鑰對(duì)630 (2)可對(duì)應(yīng)于客戶端系統(tǒng)610 (2)。因此,加密文件640、642和644可以是分別用加密的文件密鑰641、643和645加密的,所述加密的文件密鑰繼而可以是用加密密鑰632(1)加密的。
[0068]在步驟650,客戶端系統(tǒng)610 (I)可將請(qǐng)求傳輸至第三方存儲(chǔ)服務(wù)器620以與客戶端系統(tǒng)610(2)共享對(duì)加密文件640、642和644的未加密內(nèi)容的訪問(wèn)。請(qǐng)求可包括客戶端密鑰612 (I)。第三方存儲(chǔ)服務(wù)器620可接收客戶端密鑰612 (I)并且在步驟652用客戶端密鑰612(1)對(duì)加密的解密密鑰634(1)解密以獲得解密密鑰636(1)。
[0069]在步驟654,第三方存儲(chǔ)服務(wù)器620可用加密密鑰632 (2)對(duì)解密密鑰636 (I)加密以獲得加密的解密密鑰638。第三方存儲(chǔ)服務(wù)器620隨后可存儲(chǔ)加密的解密密鑰638以供將來(lái)使用。隨后,在步驟656,客戶端系統(tǒng)610 (2)可向第三方存儲(chǔ)服務(wù)器620發(fā)送訪問(wèn)加密文件640、642和644中的一者或多者的請(qǐng)求(包括客戶端密鑰612(2))。第三方存儲(chǔ)服務(wù)器620隨后可通過(guò)以下過(guò)程來(lái)提供訪問(wèn):用加密的解密密鑰634 (2)對(duì)加密的解密密鑰638解密以獲得解密密鑰636 (I),并且用解密密鑰636 (I)對(duì)文件密鑰641、643和645中的一者或多者解密以獲得加密文件640、642和644中的一者或多者的未加密內(nèi)容。
[0070]返回圖3的步驟310,在一些例子中,訪問(wèn)模塊112可基于用戶賬戶群組的成員資格提供對(duì)加密文件的未加密版本的訪問(wèn)。例如,訪問(wèn)模塊112可識(shí)別被指定用于包括所述用戶賬戶的用戶賬戶群組的附加非對(duì)稱密鑰對(duì)。附加非對(duì)稱密鑰對(duì)可包括附加加密密鑰和附加解密密鑰??捎脤?duì)應(yīng)于用戶賬戶的非對(duì)稱密鑰對(duì)的加密密鑰來(lái)對(duì)附加解密密鑰加密。訪問(wèn)模塊112隨后可用解密密鑰對(duì)附加解密密鑰解密。訪問(wèn)模塊112可進(jìn)一步識(shí)別用于對(duì)加密文件加密的文件密鑰。文件密鑰可用附加加密密鑰加密。因此,訪問(wèn)模塊112可用附加解密密鑰對(duì)文件密鑰解密并且用文件密鑰對(duì)加密文件解密。在附加例子中,加密文件可以是用附加的加密密鑰,而不是文件密鑰進(jìn)行加密。在該例子中,訪問(wèn)模塊112可僅用附加解密密鑰對(duì)加密文件解密。
[0071]圖7示出了用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性系統(tǒng)700。如圖7所示,示例性系統(tǒng)700可包括客戶端系統(tǒng)710 (I)、710 (2)和710 (3),該客戶端系統(tǒng)710 (I)、710 (2)和710(3)被配置為經(jīng)由第三方存儲(chǔ)服務(wù)器720所促進(jìn)的第三方存儲(chǔ)服務(wù)來(lái)存儲(chǔ)和/或訪問(wèn)一個(gè)或多個(gè)文件。例如,第三方存儲(chǔ)服務(wù)器720可為客戶端系統(tǒng)710(1)-(3)存儲(chǔ)加密文件746、747和748。在該例子中,個(gè)人非對(duì)稱密鑰對(duì)730 (I)可對(duì)應(yīng)于客戶端系統(tǒng)710 (I)并且群組非對(duì)稱密鑰對(duì)740(2)可對(duì)應(yīng)于作為群組的客戶端系統(tǒng)710(1)-(3)(其中例如客戶端系統(tǒng)710(1)、710(2)和710(3)各自具有分別帶有加密解密密鑰744 (I)、744 (2)和744(3)的群組解密密鑰738的加密版本)。加密文件746、747和748可用加密密鑰742加密。
[0072]在步驟750,客戶端系統(tǒng)710 (I)可將請(qǐng)求傳輸至第三方存儲(chǔ)服務(wù)器720,以訪問(wèn)加密文件740的未加密內(nèi)容。請(qǐng)求可包括客戶端密鑰712 (I)。第三方存儲(chǔ)服務(wù)器720可接收客戶端密鑰712(1)并且在步驟752用客戶端密鑰712(1)對(duì)加密的解密密鑰734(1)解密,以獲得個(gè)人解密密鑰736 (I)。在步驟754,第三方存儲(chǔ)服務(wù)器720可用個(gè)人解密密鑰736 (I)對(duì)加密的解密密鑰744(1)解密,以獲得群組解密密鑰738。在步驟756,第三方存儲(chǔ)服務(wù)器720可用群組解密密鑰738對(duì)加密文件746解密,以獲得未加密文件749。在步驟758,第三方存儲(chǔ)服務(wù)器720可將未加密文件749傳輸至客戶端系統(tǒng)710(1)。以類似的方式,第三方存儲(chǔ)服務(wù)器720可通過(guò)分別用客戶端密鑰712(2)和712(3)對(duì)加密的解密密鑰744(2)和744(3)解密,來(lái)獲得針對(duì)客戶端系統(tǒng)710(2)和710(3)的加密文件746、747和/或748的未加密版本。作為另外一種選擇,如之前所述,在一些例子中,加密文件746、747和748可各自用相應(yīng)的文件密鑰加密,該文件密鑰可繼而各自用加密密鑰742加密。在這些例子中,第三方存儲(chǔ)服務(wù)器720可用群組解密密鑰738對(duì)文件密鑰解密并且隨后用相應(yīng)的文件密鑰對(duì)加密文件746、747和748解密。
[0073]如上所述,通過(guò)保持用于對(duì)第三方存儲(chǔ)服務(wù)器上的安全數(shù)據(jù)加密和解密的非對(duì)稱密鑰對(duì)并且用客戶端所保持的加密密鑰對(duì)非對(duì)稱密鑰對(duì)的解密密鑰加密,本文所述的系統(tǒng)和方法可安全地存儲(chǔ)和加密客戶端數(shù)據(jù)而不存儲(chǔ)為訪問(wèn)未加密狀態(tài)下的安全數(shù)據(jù)所需的客戶端解密密鑰。這些系統(tǒng)和方法從而可阻止已獲取對(duì)第三方存儲(chǔ)系統(tǒng)訪問(wèn)的攻擊者訪問(wèn)未加密狀態(tài)下的安全數(shù)據(jù),同時(shí)仍允許和/或促進(jìn)該安全數(shù)據(jù)的共享、去重、分析和/或加索引。
[0074]圖8為能夠?qū)崿F(xiàn)本文描述和/或示出的實(shí)施例中的一者或多者的示例性計(jì)算系統(tǒng)810的框圖。例如,計(jì)算系統(tǒng)810的全部或一部分可執(zhí)行和/或作為一種方式用于單獨(dú)或與其他元件結(jié)合使用來(lái)執(zhí)行以下各項(xiàng)中的一者或多者:本文所述的識(shí)別、接收、生成、加密、去重、存儲(chǔ)、解密、使用、訪問(wèn)、傳輸、生成、執(zhí)行、加索引和提供步驟。計(jì)算系統(tǒng)810的全部或一部分也可執(zhí)行和/或作為一種方式來(lái)執(zhí)行本文描述和/或示出的任何其他步驟、方法或過(guò)程。
[0075]計(jì)算系統(tǒng)810在廣義上表示能夠執(zhí)行計(jì)算機(jī)可讀指令的任何單處理器或多處理器計(jì)算設(shè)備或系統(tǒng)。計(jì)算系統(tǒng)810的例子包括但不限于工作站、膝上型計(jì)算機(jī)、客戶端終端、服務(wù)器、分布式計(jì)算系統(tǒng)、手持式設(shè)備或任何其他計(jì)算系統(tǒng)或設(shè)備。在其最基本的配置中,計(jì)算系統(tǒng)810可包括至少一個(gè)處理器814和系統(tǒng)內(nèi)存816。
[0076]處理器814通常表示能夠處理數(shù)據(jù)或解譯和執(zhí)行指令的任何類型或形式的處理單元。在某些實(shí)施例中,處理器814可接收來(lái)自軟件應(yīng)用程序或模塊的指令。這些指令可使處理器814執(zhí)行本文描述和/或示出的一個(gè)或多個(gè)示例性實(shí)施例的功能。
[0077]系統(tǒng)內(nèi)存816通常表示能夠存儲(chǔ)數(shù)據(jù)和/或其他計(jì)算機(jī)可讀指令的任何類型或形式的易失性或非易失性存儲(chǔ)設(shè)備或介質(zhì)。系統(tǒng)內(nèi)存816的例子包括但不限于隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、閃存存儲(chǔ)器或任何其他合適的存儲(chǔ)器設(shè)備。盡管不是必需的,但在某些實(shí)施例中,計(jì)算系統(tǒng)810可包括易失性存儲(chǔ)器單元(諸如系統(tǒng)內(nèi)存816)和非易失性存儲(chǔ)設(shè)備(諸如,主存儲(chǔ)設(shè)備832,如下詳述)。在一個(gè)例子中,圖1的模塊102中的一者或多者可加載到系統(tǒng)內(nèi)存816中。
[0078]在某些實(shí)施例中,除處理器814和系統(tǒng)內(nèi)存816之外,示例性計(jì)算系統(tǒng)810還可包括一個(gè)或多個(gè)組件或元件。例如,如圖8所示,計(jì)算系統(tǒng)810可包括內(nèi)存控制器818、輸入/輸出(I/O)控制器820和通信接口 822,它們中的每一者都可經(jīng)由通信基礎(chǔ)結(jié)構(gòu)812互連。通信基礎(chǔ)結(jié)構(gòu)812通常表示能夠促進(jìn)計(jì)算設(shè)備的一個(gè)或多個(gè)組件之間的通信的任何類型或形式的基礎(chǔ)結(jié)構(gòu)。通信基礎(chǔ)結(jié)構(gòu)812的例子包括但不限于通信總線(諸如ISA、PC1、PCIe或類似總線)和網(wǎng)絡(luò)。
[0079]內(nèi)存控制器818通常表示能夠處理內(nèi)存或數(shù)據(jù)或控制計(jì)算系統(tǒng)810的一個(gè)或多個(gè)組件之間的通信的任何類型或形式的設(shè)備。例如,在某些實(shí)施例中,內(nèi)存控制器818可經(jīng)由通信基礎(chǔ)結(jié)構(gòu)812來(lái)控制處理器814、系統(tǒng)內(nèi)存816和I/O控制器820之間的通信。
[0080]I/O控制器820通常表示能夠協(xié)調(diào)和/或控制計(jì)算設(shè)備的輸入和輸出功能的任何類型或形式的模塊。例如,在某些實(shí)施例中,I/o控制器820可控制或促進(jìn)計(jì)算系統(tǒng)810的一個(gè)或多個(gè)元件之間的數(shù)據(jù)傳輸,所述元件諸如處理器814、系統(tǒng)內(nèi)存816、通信接口 822、顯示適配器826、輸入接口 830和存儲(chǔ)接口 834。
[0081]通信接口 822在廣義上表示能夠促進(jìn)示例性計(jì)算系統(tǒng)810與一個(gè)或多個(gè)附加設(shè)備之間的通信的任何類型或形式的通信設(shè)備或適配器。例如,在某些實(shí)施例中,通信接口 822可促進(jìn)計(jì)算系統(tǒng)810與包括附加計(jì)算系統(tǒng)的專用或公共網(wǎng)絡(luò)之間的通信。通信接口 822的例子包括但不限于有線網(wǎng)絡(luò)接口(諸如網(wǎng)絡(luò)接口卡)、無(wú)線網(wǎng)絡(luò)接口(諸如無(wú)線網(wǎng)絡(luò)接口卡)、調(diào)制解調(diào)器和任何其他合適的接口。在至少一個(gè)實(shí)施例中,通信接口 822可經(jīng)由與網(wǎng)絡(luò)(諸如互聯(lián)網(wǎng))的直接鏈接來(lái)提供與遠(yuǎn)程服務(wù)器的直接連接。通信接口 822還可通過(guò)例如局域網(wǎng)(諸如以太網(wǎng)網(wǎng)絡(luò))、個(gè)人局域網(wǎng)、電話或電纜網(wǎng)絡(luò)、蜂窩電話連接、衛(wèi)星數(shù)據(jù)連接或任何其他合適的連接來(lái)間接提供此類連接。
[0082]在某些實(shí)施例中,通信接口 822還可表示主機(jī)適配器,該主機(jī)適配器可被配置為經(jīng)由外部總線或通信信道來(lái)促進(jìn)計(jì)算系統(tǒng)810與一個(gè)或多個(gè)附加網(wǎng)絡(luò)或存儲(chǔ)設(shè)備之間的通信。主機(jī)適配器的例子包括但不限于SCSI主機(jī)適配器、USB主機(jī)適配器、IEEE1394主機(jī)適配器、SATA和eSATA主機(jī)適配器、ATA和PATA主機(jī)適配器、光纖信道接口適配器、以太網(wǎng)適配器等等。通信接口 822還可允許計(jì)算系統(tǒng)810參與分布式或遠(yuǎn)程計(jì)算。例如,通信接口 822可接收來(lái)自遠(yuǎn)程設(shè)備的指令或?qū)⒅噶畎l(fā)送到遠(yuǎn)程設(shè)備以供執(zhí)行。
[0083]如圖8所示,計(jì)算系統(tǒng)810還可包括至少一個(gè)顯示設(shè)備824,該顯示設(shè)備824經(jīng)由顯示適配器826連接到通信基礎(chǔ)結(jié)構(gòu)812。顯示設(shè)備824通常表示能夠以可視方式顯示由顯示適配器826轉(zhuǎn)發(fā)的信息的任何類型或形式的設(shè)備。類似地,顯示適配器826通常表示被配置為轉(zhuǎn)發(fā)來(lái)自通信基礎(chǔ)結(jié)構(gòu)812(或來(lái)自幀緩沖器,如本領(lǐng)域所已知)的圖形、文本和其他數(shù)據(jù)以在顯示設(shè)備824上顯示的任何類型或形式的設(shè)備。
[0084]如圖8所示,示例性計(jì)算系統(tǒng)810還可包括經(jīng)由輸入接口 830連接到通信基礎(chǔ)結(jié)構(gòu)812的至少一個(gè)輸入設(shè)備828。輸入設(shè)備828通常表示能夠向示例性計(jì)算系統(tǒng)810提供輸入(由計(jì)算機(jī)或人生成)的任何類型或形式的輸入設(shè)備。輸入設(shè)備828的例子包括但不限于鍵盤、指針設(shè)備、語(yǔ)音識(shí)別設(shè)備或任何其他輸入設(shè)備。
[0085]如圖8所示,示例性計(jì)算系統(tǒng)810還可包括主存儲(chǔ)設(shè)備832和經(jīng)由存儲(chǔ)接口 834連接到通信基礎(chǔ)結(jié)構(gòu)812的備份存儲(chǔ)設(shè)備833。存儲(chǔ)設(shè)備832和833通常表示能夠存儲(chǔ)數(shù)據(jù)和/或其他計(jì)算機(jī)可讀指令的任何類型或形式的存儲(chǔ)設(shè)備或介質(zhì)。例如,存儲(chǔ)設(shè)備832和833可為磁盤驅(qū)動(dòng)器(例如,所謂的硬盤驅(qū)動(dòng)器)、固態(tài)驅(qū)動(dòng)器、軟盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器、閃存驅(qū)動(dòng)器等等。存儲(chǔ)接口 834通常表示用于在計(jì)算系統(tǒng)810的存儲(chǔ)設(shè)備832和833與其他組件之間傳輸數(shù)據(jù)的任何類型或形式的接口或設(shè)備。
[0086]在某些實(shí)施例中,存儲(chǔ)設(shè)備832和833可被配置為對(duì)被配置為存儲(chǔ)計(jì)算機(jī)軟件、數(shù)據(jù)或其他計(jì)算機(jī)可讀信息的可移動(dòng)存儲(chǔ)單元執(zhí)行讀取和/或?qū)懭?。合適的可移動(dòng)存儲(chǔ)單元的實(shí)例包括但不限于軟盤、磁帶、光盤、閃存設(shè)備等。存儲(chǔ)設(shè)備832和833還可包括允許將計(jì)算機(jī)軟件、數(shù)據(jù)或其他計(jì)算機(jī)可讀指令加載到計(jì)算系統(tǒng)810內(nèi)的其他類似結(jié)構(gòu)或設(shè)備。例如,存儲(chǔ)設(shè)備832和833可被配置為讀取和寫入軟件、數(shù)據(jù)或其他計(jì)算機(jī)可讀信息。存儲(chǔ)設(shè)備832和833還可為計(jì)算系統(tǒng)810的一部分,或者可為通過(guò)其他接口系統(tǒng)進(jìn)行訪問(wèn)的獨(dú)立設(shè)備。
[0087]可將多個(gè)其他設(shè)備或子系統(tǒng)連接到計(jì)算系統(tǒng)810。相反地,無(wú)需提供圖8中示出的所有組件和設(shè)備,亦可實(shí)踐本文描述和/或示出的實(shí)施例。上文提及的設(shè)備和子系統(tǒng)也可通過(guò)不同于圖8所示的方式互連。計(jì)算系統(tǒng)810還可采用任何數(shù)量的軟件、固件和/或硬件配置。例如,本文所公開(kāi)的一個(gè)或多個(gè)示例性實(shí)施例可被編碼為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的計(jì)算機(jī)程序(也稱為計(jì)算機(jī)軟件、軟件應(yīng)用程序、計(jì)算機(jī)可讀指令或計(jì)算機(jī)控制邏輯)。短語(yǔ)“計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”通常指能夠存儲(chǔ)或攜帶計(jì)算機(jī)可讀指令的任何形式的設(shè)備、載體或介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的例子包括但不限于傳輸型介質(zhì),諸如載波,和非暫態(tài)型介質(zhì),諸如磁存儲(chǔ)介質(zhì)(例如,硬盤驅(qū)動(dòng)器和軟盤)、光存儲(chǔ)介質(zhì)(例如,CD-或DVD-ROM)、電子存儲(chǔ)介質(zhì)(例如,固態(tài)驅(qū)動(dòng)器和閃存介質(zhì))和其他分配系統(tǒng)。
[0088]可將包含計(jì)算機(jī)程序的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)加載到計(jì)算系統(tǒng)810中。然后可將計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上存儲(chǔ)的全部或一部分計(jì)算機(jī)程序存儲(chǔ)在系統(tǒng)內(nèi)存816中和/或存儲(chǔ)設(shè)備832和833的各個(gè)部分中。當(dāng)由處理器814執(zhí)行時(shí),加載到計(jì)算系統(tǒng)810中的計(jì)算機(jī)程序可使處理器814執(zhí)行和/或作為一種方式來(lái)執(zhí)行本文描述和/或示出的示例性實(shí)施例中的一者或多者的功能。除此之外或作為另外一種選擇,可在固件和/或硬件中實(shí)施本文描述和/或示出的示例性實(shí)施例中的一者或多者。例如,計(jì)算系統(tǒng)810可被配置為用于實(shí)施本文所公開(kāi)的示例性實(shí)施例中的一者或多者的專用集成電路(ASIC)。
[0089]圖9為示例性網(wǎng)絡(luò)體系結(jié)構(gòu)900的框圖,其中客戶端系統(tǒng)910、920和930以及服務(wù)器940和945可連接到網(wǎng)絡(luò)950。如上詳述,網(wǎng)絡(luò)體系結(jié)構(gòu)900的全部或一部分可執(zhí)行和/或作為一種方式用于單獨(dú)或與其他元件結(jié)合使用來(lái)執(zhí)行以下各項(xiàng)中的一者或多者:本文所公開(kāi)的識(shí)別、接收、生成、加密、去重、存儲(chǔ)、解密、使用、訪問(wèn)、傳輸、生成、執(zhí)行、加索引和提供步驟。網(wǎng)絡(luò)體系結(jié)構(gòu)900的全部或一部分也可用于執(zhí)行和/或作為一種方式用于執(zhí)行本發(fā)明中闡述的其他步驟和特征。
[0090]客戶端系統(tǒng)910、920和930通常表示任何類型或形式的計(jì)算設(shè)備或系統(tǒng),諸如圖8中的示例性計(jì)算系統(tǒng)810。類似地,服務(wù)器940和945通常表示被配置為提供各種數(shù)據(jù)庫(kù)服務(wù)和/或運(yùn)行特定軟件應(yīng)用程序的計(jì)算設(shè)備或系統(tǒng),諸如應(yīng)用程序服務(wù)器或數(shù)據(jù)庫(kù)服務(wù)器。網(wǎng)絡(luò)950通常表示任何電信或計(jì)算機(jī)網(wǎng)絡(luò),包括(例如)內(nèi)聯(lián)網(wǎng)、廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)、個(gè)人局域網(wǎng)(PAN)或互聯(lián)網(wǎng)。在一個(gè)例子中,客戶端系統(tǒng)910、920和/或930和/或服務(wù)器940和/或945可包括圖1的系統(tǒng)100的全部或一部分。
[0091]如圖9所示,一個(gè)或多個(gè)存儲(chǔ)設(shè)備960(1)-(N)可直接連接到服務(wù)器940。類似地,一個(gè)或多個(gè)存儲(chǔ)設(shè)備970 (I)-(N)可直接連接到服務(wù)器945。存儲(chǔ)設(shè)備960 (I) - (N)和存儲(chǔ)設(shè)備970 (I)-(N)通常表示能夠存儲(chǔ)數(shù)據(jù)和/或其他計(jì)算機(jī)可讀指令的任何類型或形式的存儲(chǔ)設(shè)備或介質(zhì)。在某些實(shí)施例中,存儲(chǔ)設(shè)備960 (I)-(N)和存儲(chǔ)設(shè)備970 (I)-(N)可表示被配置為使用各種協(xié)議,諸如NFS、SMB或CIFS,與服務(wù)器940和945進(jìn)行通信的網(wǎng)絡(luò)連接存儲(chǔ)(NAS)設(shè)備。
[0092]服務(wù)器940和945還可連接到存儲(chǔ)區(qū)域網(wǎng)絡(luò)(SAN)光纖網(wǎng)980。SAN光纖網(wǎng)980通常表示能夠促進(jìn)多個(gè)存儲(chǔ)設(shè)備之間的通信的任何類型或形式的計(jì)算機(jī)網(wǎng)絡(luò)或體系結(jié)構(gòu)。SAN光纖網(wǎng)980可促進(jìn)服務(wù)器940和945與多個(gè)存儲(chǔ)設(shè)備990 (I)-(N)和/或智能存儲(chǔ)陣列995之間的通信。SAN光纖網(wǎng)980還可經(jīng)由網(wǎng)絡(luò)950以及服務(wù)器940和945以這樣的方式促進(jìn)客戶端系統(tǒng)910、920和930與存儲(chǔ)設(shè)備990 (I)-(N)和/或智能存儲(chǔ)陣列995之間的通信:設(shè)備990 (I)-(N)和陣列995呈現(xiàn)為客戶端系統(tǒng)910、920和930的本地連接設(shè)備。與存儲(chǔ)設(shè)備960 (I)-(N)和存儲(chǔ)設(shè)備970 (I)-(N)相同,存儲(chǔ)設(shè)備990 (I) - (N)和智能存儲(chǔ)陣列995通常表示能夠存儲(chǔ)數(shù)據(jù)和/或其他計(jì)算機(jī)可讀指令的任何類型或形式的存儲(chǔ)設(shè)備或介質(zhì)。
[0093]在某些實(shí)施例中,并參考圖8的示例性計(jì)算系統(tǒng)810,通信接口,諸如圖8中的通信接口 822,可用于在每個(gè)客戶端系統(tǒng)910、920和930與網(wǎng)絡(luò)950之間提供連接??蛻舳讼到y(tǒng)910、920和930可能能夠使用(例如)網(wǎng)頁(yè)瀏覽器或其他客戶端軟件來(lái)訪問(wèn)服務(wù)器940或945上的信息。此類軟件可允許客戶端系統(tǒng)910、920和930訪問(wèn)由服務(wù)器940、服務(wù)器945、存儲(chǔ)設(shè)備960 (I) - (N)、存儲(chǔ)設(shè)備970 (I) - (N)、存儲(chǔ)設(shè)備990 (I) - (N)或智能存儲(chǔ)陣列995托管的數(shù)據(jù)。盡管圖9示出了使用網(wǎng)絡(luò)(諸如互聯(lián)網(wǎng))來(lái)交換數(shù)據(jù),但本文描述和/或示出的實(shí)施例并非僅限于互聯(lián)網(wǎng)或任何特定的基于網(wǎng)絡(luò)的環(huán)境。
[0094]在至少一個(gè)實(shí)施例中,本文所公開(kāi)的一個(gè)或多個(gè)示例性實(shí)施例中的全部或一部分可被編碼為計(jì)算機(jī)程序并加載到服務(wù)器940、服務(wù)器945、存儲(chǔ)設(shè)備960 (I)-(N)、存儲(chǔ)設(shè)備970 (I)-(N)、存儲(chǔ)設(shè)備990 (I)-(N)或智能存儲(chǔ)陣列995或它們的任意組合上并加以執(zhí)行。本文所公開(kāi)的一個(gè)或多個(gè)示例性實(shí)施例中的全部或一部分還可被編碼為計(jì)算機(jī)程序,存儲(chǔ)在服務(wù)器940中,由服務(wù)器945運(yùn)行,以及通過(guò)網(wǎng)絡(luò)950分配到客戶端系統(tǒng)910、920和930。
[0095]如上詳述,計(jì)算系統(tǒng)810和/或網(wǎng)絡(luò)體系結(jié)構(gòu)900的一個(gè)或多個(gè)組件可執(zhí)行和/或作為一種方式用于單獨(dú)或與其他元件結(jié)合來(lái)執(zhí)行用于安全的第三方數(shù)據(jù)存儲(chǔ)的示例性方法的一個(gè)或多個(gè)步驟。
[0096]雖然上述發(fā)明使用特定框圖、流程圖和例子闡述了各種實(shí)施例,但每個(gè)框圖組件、流程圖步驟、操作和/或本文描述和/或示出的組件可使用范圍廣泛的硬件、軟件或固件(或其任何組合)配置來(lái)單獨(dú)和/或共同實(shí)現(xiàn)。此外,包含在其他組件內(nèi)的組件的任何公開(kāi)內(nèi)容應(yīng)當(dāng)被視為在本質(zhì)上是示例性的,因?yàn)榭蓪?shí)施許多其他體系結(jié)構(gòu)來(lái)實(shí)現(xiàn)相同功能。
[0097]在一些例子中,圖1中的示例性系統(tǒng)100的全部或一部分可表示云計(jì)算環(huán)境或基于網(wǎng)絡(luò)的環(huán)境的部分。云計(jì)算環(huán)境可以通過(guò)互聯(lián)網(wǎng)提供各種服務(wù)和應(yīng)用程序。這些基于云的服務(wù)(例如軟件即服務(wù)(software as a service)、平臺(tái)即服務(wù)(platform as aservice)、基礎(chǔ)結(jié)構(gòu)即服務(wù)等(infrastructure as a service))可以通過(guò)網(wǎng)頁(yè)瀏覽器或其他遠(yuǎn)程接口進(jìn)行訪問(wèn)。本文所述的各種功能可以通過(guò)遠(yuǎn)程桌面環(huán)境或任何其他基于云的計(jì)算環(huán)境提供。
[0098]本文描述和/或示出的過(guò)程參數(shù)和步驟序列僅通過(guò)舉例的方式給出并且可根據(jù)需要改變。例如,雖然本文示出和/或描述的步驟可以特定順序示出或討論,但這些步驟不必按示出或討論的順序來(lái)執(zhí)行。本文描述和/或示出的各種示例性方法還可省略本文描述或示出的步驟中的一者或多者,或除了所公開(kāi)的那些步驟之外還包括附加步驟。
[0099]雖然本文已經(jīng)在充分發(fā)揮功能的計(jì)算系統(tǒng)的背景下描述和/或示出了各種實(shí)施例,但這些示例性實(shí)施例中的一者或多者可作為各種形式的程序產(chǎn)品來(lái)分配,而不考慮用于實(shí)際進(jìn)行分配的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的特定類型。本文所公開(kāi)的實(shí)施例還可使用執(zhí)行某些任務(wù)的軟件模塊來(lái)實(shí)現(xiàn)。這些軟件模塊可包括腳本、批處理或可存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上或計(jì)算系統(tǒng)中的其他可執(zhí)行文件。在一些實(shí)施例中,這些軟件模塊可將計(jì)算系統(tǒng)配置為執(zhí)行本文所公開(kāi)的示例性實(shí)施例中的一者或多者。
[0100]此外,本文所述的模塊中的一者或多者可將數(shù)據(jù)、物理設(shè)備和/或物理設(shè)備的表示從一種形式轉(zhuǎn)換為另一種形式。例如,本文所述的模塊中的一者或多者可將計(jì)算設(shè)備轉(zhuǎn)換為用于安全的第三方存儲(chǔ)的設(shè)備。又如,本文所述的模塊中的一者或多者可將加密文件轉(zhuǎn)換成未加密文件。
[0101]提供前面描述的目的是使本領(lǐng)域的其他技術(shù)人員能夠最好地利用本文所公開(kāi)的示例性實(shí)施例的各個(gè)方面。該示例性描述并非旨在是詳盡的或局限于所公開(kāi)的任何精確形式。在不脫離本發(fā)明精神和范圍的前提下,可進(jìn)行許多修改和變化。本文所公開(kāi)的實(shí)施例在所有方面均應(yīng)被視為示例性的而非限制性的。應(yīng)當(dāng)參考所附權(quán)利要求及其等同形式來(lái)確定本發(fā)明的范圍。
[0102]除非另有說(shuō)明,否則在本說(shuō)明書和權(quán)利要求中使用的術(shù)語(yǔ)“一”或“一個(gè)”應(yīng)當(dāng)理解為是表示“…中的至少一者”。此外,為了易于使用,在本說(shuō)明書和權(quán)利要求中使用的詞語(yǔ)“包括”和“具有”與詞語(yǔ)“包含”可互換并且與詞語(yǔ)“包含”具有相同含義。
【權(quán)利要求】
1.一種用于安全的第三方數(shù)據(jù)存儲(chǔ)的方法,所述方法的至少一部分由包括至少一個(gè)處理器的計(jì)算設(shè)備來(lái)執(zhí)行,所述方法包括: 在所述服務(wù)器端計(jì)算設(shè)備識(shí)別來(lái)自客戶端系統(tǒng)的訪問(wèn)存儲(chǔ)在用戶賬戶下的加密文件的請(qǐng)求,其中所述所請(qǐng)求的訪問(wèn)需要對(duì)所述加密文件解密; 響應(yīng)于所述請(qǐng)求來(lái)識(shí)別被指定用于所述用戶賬戶的非對(duì)稱密鑰對(duì),所述非對(duì)稱密鑰對(duì)包括加密密鑰和已用客戶端密鑰加密的解密密鑰; 從所述客戶端系統(tǒng)接收所述客戶端密鑰; 用所述客戶端密鑰對(duì)所述解密密鑰解密; 使用所述解密密鑰訪問(wèn)所述加密文件的未加密版本。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中使用所述解密密鑰訪問(wèn)所述加密文件包括: 識(shí)別用于對(duì)所述加密文件加密的文件密鑰,其中所述文件密鑰用所述加密密鑰加密; 用所述解密密鑰對(duì)所述文件密鑰解密; 用所述文件密鑰對(duì)所述加密文件解密。
3.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中: 訪問(wèn)所述加密文件包括向附加用戶賬戶提供對(duì)所述加密文件的所述未加密版本的訪問(wèn); 附加非對(duì)稱密鑰對(duì)被指定用于所述附加用戶賬戶,所述附加非對(duì)稱密鑰對(duì)包括附加加密密鑰和已用附加客戶端密鑰加密的附加解密密鑰。
4.根據(jù)權(quán)利要求3所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中向所述附加用戶賬戶提供對(duì)所述加密文件的所述未加密版本的訪問(wèn)包括: 識(shí)別用于對(duì)所述加密文件加密的文件密鑰,其中所述文件密鑰用所述加密密鑰加密; 用所述解密密鑰對(duì)所述文件密鑰解密; 用所述附加加密密鑰對(duì)所述文件密鑰的副本加密。
5.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中訪問(wèn)所述加密文件包括將所述加密文件的所述未加密版本傳輸至所述客戶端系統(tǒng)。
6.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中使用所述解密密鑰訪問(wèn)所述加密文件的所述未加密版本包括生成描述所述加密文件的未加密版本的元數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中生成描述所述加密文件的所述未加密版本的所述元數(shù)據(jù)包括以下各項(xiàng)中的至少一者: 對(duì)所述加密文件的所述未加密版本執(zhí)行安全掃描; 基于所述加密文件的所述未加密版本內(nèi)的內(nèi)容來(lái)對(duì)所述加密文件的所述未加密版本加索引; 基于所述加密文件的所述未加密版本內(nèi)的內(nèi)容來(lái)生成所述加密文件的所述未加密版本的預(yù)覽。
8.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括: 從所述客戶端系統(tǒng)接收所述加密文件的所述未加密版本; 通過(guò)以下各項(xiàng)生成所述加密文件: 基于所述加密文件的所述未加密版本的至少一個(gè)特性生成文件密鑰; 用所述文件密鑰對(duì)所述加密文件的所述未加密版本加密; 用所述加密密鑰對(duì)所述文件密鑰加密。
9.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括用通過(guò)所述文件密鑰加密的附加加密文件對(duì)所述加密文件去重。
10.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中接收所述客戶端密鑰包括將所述客戶端密鑰存儲(chǔ)在易失性存儲(chǔ)器中而不將所述客戶端密鑰存儲(chǔ)在非易失性存儲(chǔ)器中。
11.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括: 識(shí)別被指定為訪問(wèn)所述加密文件的所述未加密版本的附加用戶賬戶,其中附加非對(duì)稱密鑰對(duì)被指定用于所述附加用戶賬戶,所述附加非對(duì)稱密鑰對(duì)包括附加加密密鑰和已用附加客戶端密鑰加密的附加解密密鑰; 用所述附加加密密鑰對(duì)所述解密密鑰加密。
12.根據(jù)權(quán)利要求11所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括: 識(shí)別來(lái)自附加客戶端系統(tǒng)的經(jīng)由所述附加用戶賬戶進(jìn)一步訪問(wèn)所述加密文件的附加請(qǐng)求,其中所述所請(qǐng)求的附加訪問(wèn)需要對(duì)所述加密文件解密; 用所述附加解密密鑰對(duì)所述解密密鑰解密; 使用所述解密密鑰經(jīng)由所述附加用戶賬戶來(lái)訪問(wèn)所述加密文件的所述未加密版本。
13.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其中使用所述解密密鑰訪問(wèn)所述加密文件的所述未加密版本包括: 識(shí)別被指定用于包括所述用戶賬戶的多個(gè)用戶賬戶的附加非對(duì)稱密鑰對(duì),所述附加非對(duì)稱密鑰對(duì)包括附加加密密鑰和已用所述加密密鑰加密的附加解密密鑰; 用所述解密密鑰對(duì)所述附加解密密鑰解密; 識(shí)別用于對(duì)所述加密密鑰加密的文件密鑰,其中所述文件密鑰用所述附加加密密鑰加密; 用所述附加解密密鑰對(duì)所述文件密鑰解密; 用所述文件密鑰對(duì)所述加密文件解密。
14.一種用于安全的第三方數(shù)據(jù)存儲(chǔ)的系統(tǒng),所述系統(tǒng)包括: 識(shí)別模塊,其被編程為在所述服務(wù)器端計(jì)算設(shè)備識(shí)別來(lái)自客戶端系統(tǒng)的以訪問(wèn)存儲(chǔ)在用戶賬戶下的加密文件的請(qǐng)求,其中所請(qǐng)求的訪問(wèn)需要對(duì)所述加密文件解密; 密鑰模塊,其被編程為響應(yīng)于所述請(qǐng)求識(shí)別被指定用于所述用戶賬戶的非對(duì)稱密鑰對(duì),所述非對(duì)稱密鑰對(duì)包括加密密鑰和已用客戶端密鑰加密的解密密鑰; 接收模塊,其被編程為從所述客戶端系統(tǒng)接收所述客戶端密鑰; 解密模塊,所述解密模塊被編程為用所述客戶端密鑰對(duì)所述解密密鑰解密; 訪問(wèn)模塊,其被編程為使用所述解密密鑰訪問(wèn)所述加密文件的未加密版本; 至少一個(gè)處理器,其被配置為執(zhí)行所述識(shí)別模塊、所述密鑰模塊、所述接收模塊、所述解密模塊和所述訪問(wèn)模塊。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述訪問(wèn)模塊被編程為使用所述解密密鑰通過(guò)以下過(guò)程訪問(wèn)所述加密文件: 識(shí)別用于對(duì)所述加密文件加密的文件密鑰,其中所述文件密鑰用所述加密密鑰加密; 用所述解密密鑰對(duì)所述文件密鑰解密; 用所述文件密鑰對(duì)所述加密文件解密。
16.根據(jù)權(quán)利要求14所述的系統(tǒng),其中: 所述訪問(wèn)模塊被編程為通過(guò)向附加用戶賬戶提供對(duì)所述加密文件的所述未加密版本的訪問(wèn)來(lái)訪問(wèn)所述加密文件; 附加非對(duì)稱密鑰對(duì)被指定用于所述附加用戶賬戶,所述附加非對(duì)稱密鑰對(duì)包括附加加密密鑰和已用附加客戶端密鑰加密的附加解密密鑰。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中所述訪問(wèn)模塊被編程為通過(guò)以下過(guò)程向所述附加用戶賬戶提供對(duì)所述加密文件的所述未加密版本的訪問(wèn): 識(shí)別用于對(duì)所述加密文件加密的文件密鑰,其中所述文件密鑰用所述加密密鑰加密; 用所述解密密鑰對(duì)所述文件密鑰解密; 用所述附加加密密鑰對(duì)所述文件密鑰的副本加密。
18.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述訪問(wèn)模塊被編程為通過(guò)將所述加密文件的所述未加密版本傳輸至所述客戶端系統(tǒng)來(lái)訪問(wèn)所述加密文件。
19.根據(jù)權(quán)利要求14所述的系統(tǒng),其中所述訪問(wèn)模塊被編程為通過(guò)生成描述所述加密文件的所述未加密版本的元數(shù)據(jù)來(lái)使用所述解密密鑰訪問(wèn)所述加密文件的所述未加密版本。
20.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其包括一個(gè)或多個(gè)計(jì)算機(jī)可執(zhí)行指令,當(dāng)由計(jì)算設(shè)備的至少一個(gè)處理器執(zhí)行時(shí),所述指令可使所述計(jì)算設(shè)備: 在所述服務(wù)器端計(jì)算設(shè)備識(shí)別來(lái)自客戶端系統(tǒng)的訪問(wèn)加密文件的請(qǐng)求,其中所述所請(qǐng)求的訪問(wèn)需要對(duì)所述加密文件解密; 響應(yīng)于所述請(qǐng)求來(lái)識(shí)別非對(duì)稱密鑰對(duì),所述非對(duì)稱密鑰對(duì)包括加密密鑰和已用客戶端密鑰加密的解密密鑰; 從所述客戶端系統(tǒng)接收所述客戶端密鑰; 用所述客戶端密鑰對(duì)所述解密密鑰解密; 使用所述解密密鑰訪問(wèn)所述加密文件的未加密版本。
【文檔編號(hào)】G06F21/78GK104205123SQ201380013570
【公開(kāi)日】2014年12月10日 申請(qǐng)日期:2013年2月28日 優(yōu)先權(quán)日:2012年3月26日
【發(fā)明者】W·伯格拉德 申請(qǐng)人:賽門鐵克公司