用于加密文件系統(tǒng)層的系統(tǒng)和方法
【專利說明】用于加密文件系統(tǒng)層的系統(tǒng)和方法
[0001]對相關(guān)申請的交叉引用
[0002]本申請要求在2013年2月13日提交的美國臨時(shí)申請第61/764,532號(hào)的優(yōu)先權(quán),其全部內(nèi)容通過引用合并于此。
【發(fā)明內(nèi)容】
[0003]密碼文件系統(tǒng)層包括用于例如通過保護(hù)存儲(chǔ)在文件系統(tǒng)中的數(shù)據(jù)、或者恢復(fù)從文件系統(tǒng)檢索的安全數(shù)據(jù)來截取要存儲(chǔ)在文件系統(tǒng)中的數(shù)據(jù)并且修改截取的數(shù)據(jù)中的至少一些的軟件或固件層。一般地,密碼文件系統(tǒng)層截取在應(yīng)用層與文件系統(tǒng)之間傳遞的數(shù)據(jù),并且僅修改位于一個(gè)或更多個(gè)指定目錄中的數(shù)據(jù)。
[0004]根據(jù)一個(gè)方面,這里公開的系統(tǒng)和方法使用選擇性地截取和修改(例如,通過加密)要存儲(chǔ)在指定目錄中的數(shù)據(jù)的密碼文件系統(tǒng)層來透明地提供數(shù)據(jù)安全。密碼文件系統(tǒng)層可與一個(gè)或更多個(gè)密碼方法相組合,以提供使得數(shù)據(jù)可證地安全或可訪問的基于服務(wù)器的安全數(shù)據(jù)方案,同時(shí)消除了對多個(gè)周邊硬件和軟件技術(shù)的需要。在一個(gè)實(shí)現(xiàn)方式(例如,來自安全第一公司的Bitfiler)中,基于服務(wù)器的方案解決比特級(jí)別的安全性。例如,數(shù)據(jù)安全性被集成或者被直接編織到比特級(jí)別的數(shù)據(jù)中。在一些實(shí)施例中,基于服務(wù)器的方案可以是在諸如Windows或Linux平臺(tái)的任何合適的操作系統(tǒng)上運(yùn)行的軟件應(yīng)用。在一些實(shí)施例中,通過在內(nèi)核級(jí)別上操作,實(shí)現(xiàn)了性能和使用便利性的大的改善。在一些實(shí)施例中,基于服務(wù)器的方案使得能夠在硬件和軟件方面建立可利用(leverage)公共企業(yè)基礎(chǔ)架構(gòu)的企業(yè)利益共同體(COI)。由于安全性已被編織到數(shù)據(jù)中,因此可在不損害數(shù)據(jù)安全和訪問控制的情況下使用該公共基礎(chǔ)架構(gòu)。多個(gè)COI可在同一基礎(chǔ)架構(gòu)內(nèi)以及在單個(gè)安全存儲(chǔ)系統(tǒng)內(nèi)共存。利用基于服務(wù)器的方案,沒有在辯論上(forensically)可識(shí)別的數(shù)據(jù)被存儲(chǔ)在任何設(shè)備或介質(zhì)上?;诜?wù)器的方案可與現(xiàn)有的企業(yè)訪問控制系統(tǒng)相集成,從而允許在不修改當(dāng)前的、建立的訪問方案的情況下進(jìn)行簡化的部署。
[0005]在另一方面,本發(fā)明的基于服務(wù)器的方案是與硬件和軟件無關(guān)的?;诜?wù)器的方案應(yīng)用于現(xiàn)有的企業(yè)網(wǎng)絡(luò)、存儲(chǔ)和安全方案。基于服務(wù)器的方案也應(yīng)用于任何協(xié)作、CRM和ERM應(yīng)用。由基于服務(wù)器的方案提供的內(nèi)置安全性使得能夠使用新興的、成本效益的技術(shù)和服務(wù),諸如用于基于云的存儲(chǔ)、基于云的計(jì)算和基于云的應(yīng)用的基礎(chǔ)架構(gòu)。
[0006]本發(fā)明的基于服務(wù)器的方案可利用安全第一公司的SecureParserE X tended?(SP X )核心技術(shù)。在一些實(shí)施例中,SecureParser SPx米用多因素秘密共享算法來傳輸防衛(wèi)級(jí)別的安全性。數(shù)據(jù)在被發(fā)送到多個(gè)位置(在本地和/或在地理上分散,例如,在私有云或公共云中)之前被認(rèn)證、被加密(FIPS 140-2證明,符合套件B)、被分離、被添加冗余比特、被檢查完整性、并且被再次加密??墒褂萌魏魏线m的信息分散算法(IDA)來分離數(shù)據(jù)。數(shù)據(jù)在傳送到存儲(chǔ)位置的同時(shí)被隱藏,并且對于不具有正確的訪問證書的用戶來說是不可訪問的。
[0007]在一些實(shí)施例中,密碼文件系統(tǒng)層被用于保護(hù)正被寫入到貯存器或從貯存器讀取的數(shù)據(jù)。如這里所使用的,密碼文件系統(tǒng)層是用于例如通過保護(hù)存儲(chǔ)在文件系統(tǒng)中的數(shù)據(jù)、或者恢復(fù)從文件系統(tǒng)檢索的安全數(shù)據(jù)來截取要存儲(chǔ)在文件系統(tǒng)上的數(shù)據(jù)并且修改截取的數(shù)據(jù)中的至少一些的軟件層。密碼文件系統(tǒng)層截取在應(yīng)用層和文件系統(tǒng)之間傳遞的數(shù)據(jù),并且僅修改位于一個(gè)或更多個(gè)指定目錄中的數(shù)據(jù)。如果文件在指定目錄中,那么該文件在被存儲(chǔ)之前被修改,這為該文件提供增加的安全性;如果文件不在指定目錄中,那么該文件不被修改。為了逆轉(zhuǎn)在存儲(chǔ)文件之前密碼文件系統(tǒng)層執(zhí)行的修改,指定目錄中的檢索文件也被修改。
【附圖說明】
[0008]以下結(jié)合附圖更詳細(xì)地描述本公開內(nèi)容,這些附圖旨在例示而不是限制本公開內(nèi)容,其中:
[0009]圖1示出根據(jù)實(shí)現(xiàn)方式的用于保護(hù)包括可與在這里討論的任何處理相組合地使用的例示性特征的數(shù)據(jù)的處理。
[0010]圖2示出根據(jù)實(shí)現(xiàn)方式的用于利用與數(shù)據(jù)一起加密和存儲(chǔ)加密主密鑰來解析數(shù)據(jù)的處理。
[0011]圖3示出根據(jù)實(shí)現(xiàn)方式的用于利用與數(shù)據(jù)分開地加密和存儲(chǔ)加密主密鑰來解析數(shù)據(jù)的處理。
[0012]圖4示出根據(jù)實(shí)現(xiàn)方式的用于利用與數(shù)據(jù)一起加密和存儲(chǔ)加密主密鑰來解析數(shù)據(jù)的中間密鑰處理。
[0013]圖5和圖6是根據(jù)實(shí)現(xiàn)方式的具有集成的安全數(shù)據(jù)解析器的例示性系統(tǒng)的框圖。
[0014]圖7是根據(jù)實(shí)現(xiàn)方式的可以以任何合適的組合、利用任何合適的添加、刪除或修改來使用的例示性步驟和特征的處理流程圖。
[0015]圖8是根據(jù)一個(gè)實(shí)現(xiàn)方式的可以以任何合適的組合、利用任何合適的添加、刪除或修改來使用的可選地使用工作組密鑰將密鑰和數(shù)據(jù)成分存儲(chǔ)在份額內(nèi)的簡化框圖。
[0016]圖9A和圖9B是根據(jù)一個(gè)實(shí)現(xiàn)方式的可以以任何合適的組合、利用任何合適的添加、刪除或修改來使用的用于移動(dòng)中的數(shù)據(jù)的頭部產(chǎn)生和數(shù)據(jù)分離的簡化和例示性的處理流程圖。
[0017]圖10是根據(jù)一個(gè)實(shí)現(xiàn)方式的可以以任何合適的組合、利用任何合適的添加、刪除或修改來使用的例示性的份額格式的簡化框圖。
[0018]圖11是表示根據(jù)實(shí)現(xiàn)方式的用于實(shí)現(xiàn)云計(jì)算數(shù)據(jù)安全方案的幾個(gè)示例性配置的框圖。
[0019]圖12是用于執(zhí)行這里描述的處理中的任一個(gè)處理的計(jì)算裝置的框圖。
[0020]圖13是表示根據(jù)一個(gè)實(shí)現(xiàn)方式的包括密碼文件系統(tǒng)層的幾個(gè)軟件層的例示性配置的框圖。
[0021]圖14是表示根據(jù)一個(gè)實(shí)現(xiàn)方式的在寫入操作期間的在應(yīng)用層、密碼文件系統(tǒng)層和文件系統(tǒng)層之間的例示性的交互作用的示意圖。
[0022]圖15是表示根據(jù)一個(gè)實(shí)現(xiàn)方式的在將文件分離成多個(gè)份額的寫入操作期間的在應(yīng)用層、密碼文件系統(tǒng)層和文件系統(tǒng)層之間的例示性的交互作用的示意圖。
[0023]圖16是表示根據(jù)一個(gè)實(shí)現(xiàn)方式的在讀取操作期間的在應(yīng)用層、密碼文件系統(tǒng)層和文件系統(tǒng)層之間的例示性的交互作用的示意圖。
[0024]圖17是表示根據(jù)一個(gè)實(shí)現(xiàn)方式的在已被密碼文件系統(tǒng)層分離成多個(gè)份額的文件的讀取操作期間的在應(yīng)用層、密碼文件系統(tǒng)層和文件系統(tǒng)層之間的例示性的交互作用的示意圖。
[0025]圖18示出根據(jù)一個(gè)實(shí)現(xiàn)方式的密碼文件系統(tǒng)層修改和存儲(chǔ)指定目錄中的文件的處理。
[0026]圖19示出根據(jù)一個(gè)實(shí)現(xiàn)方式的密碼文件系統(tǒng)層監(jiān)視I/O操作并且修改指定文件的處理。
【具體實(shí)施方式】
[0027]根據(jù)一個(gè)方面,在這里描述一個(gè)或更多個(gè)安全服務(wù)器存儲(chǔ)密碼密鑰和用戶認(rèn)證數(shù)據(jù)的密碼系統(tǒng)。密碼系統(tǒng)可單獨(dú)地或與其它系統(tǒng)部件組合地包括安全數(shù)據(jù)解析器。如這里所使用的,安全數(shù)據(jù)解析器包括被配置為執(zhí)行與數(shù)據(jù)的解析、保護(hù)和存儲(chǔ)中的一個(gè)或更多個(gè)有關(guān)的各種功能的軟件和/或硬件。例如,安全數(shù)據(jù)解析器的功能可包括加密數(shù)據(jù)、將數(shù)據(jù)解析成一個(gè)或更多個(gè)份額、加密份額、分散份額、安全地在多個(gè)位置存儲(chǔ)份額、檢索數(shù)據(jù)份額、解密數(shù)據(jù)份額、重新組裝數(shù)據(jù)、解碼數(shù)據(jù)或者這里描述的任何其它功能的任意組合。解析包括從原始數(shù)據(jù)集產(chǎn)生一個(gè)或更多個(gè)不同的份額,其中,份額中的每一個(gè)包括原始數(shù)據(jù)集的至少一部分??赏ㄟ^大量的技術(shù)中的任一個(gè)實(shí)現(xiàn)解析。例如,解析可包括隨機(jī)地、偽隨機(jī)地、確定地、或者使用隨機(jī)、偽隨機(jī)和確定技術(shù)的一些合適的組合,將來自原始數(shù)據(jù)集的數(shù)據(jù)單元分布到一個(gè)或更多個(gè)份額中。解析操作可作用于任意尺寸的數(shù)據(jù),包括單個(gè)比特、一組比特、一組字節(jié)、一組千字節(jié)、一組兆字節(jié)或更大組的數(shù)據(jù)、以及數(shù)據(jù)單元尺寸的任何模式或組合。因此,原始數(shù)據(jù)可被視為這些數(shù)據(jù)單元的序列。在一些實(shí)現(xiàn)方式中,解析操作基于由安全數(shù)據(jù)解析器或者由密碼系統(tǒng)中的另一部件產(chǎn)生的解析信息。解析信息可以為任何合適的形式(例如,一個(gè)或更多個(gè)密鑰,包括預(yù)定的、確定的、偽隨機(jī)的或隨機(jī)的密鑰)。解析信息可確定解析操作的一個(gè)或更多個(gè)方面,包括份額的數(shù)量、一個(gè)或更多個(gè)份額的尺寸、數(shù)據(jù)單元的尺寸、份額內(nèi)的數(shù)據(jù)單元的次序和份額中的來自原始數(shù)據(jù)集中的數(shù)據(jù)的次序的任意組合。在一些實(shí)施例中,解析信息也可指示或者可被使用(連同其它的因素),以確定一個(gè)或更多個(gè)數(shù)據(jù)份額將如何被加密。雖然某些解析技術(shù)可使得數(shù)據(jù)更安全(例如,在一些實(shí)現(xiàn)方式中,數(shù)據(jù)單元本身的尺寸可使得作為結(jié)果的數(shù)據(jù)份額更安全,或者解析可包括重新布置數(shù)據(jù)),但是未必對于每一種解析技術(shù)都是這種情況。作為結(jié)果的份額可以具有任意尺寸的數(shù)據(jù),并且兩個(gè)或更多個(gè)作為結(jié)果的份額可包含不同量的原始數(shù)據(jù)集。
[0028]在一些實(shí)現(xiàn)方式中,解析可包括在產(chǎn)生一個(gè)或更多個(gè)份額之前、期間或之后對原始數(shù)據(jù)集執(zhí)行密碼運(yùn)算。例如,解析可包括例如通過將數(shù)據(jù)的單元重新布置成作為結(jié)果的一個(gè)或多個(gè)份額來混洗(shuffle)份額中的數(shù)據(jù)單元的次序。在一些實(shí)現(xiàn)方式中,解析可包括例如通過重新布置分布到作為結(jié)果的一個(gè)或多個(gè)份額中的一個(gè)或更多個(gè)數(shù)據(jù)單元內(nèi)的子單元來混洗次序比特,其中,子單元至少包括數(shù)據(jù)單元的不同的部分。在解析包括混洗原始數(shù)據(jù)集中的數(shù)據(jù)的情況下,可對任意尺寸的原始數(shù)據(jù)集執(zhí)行混洗操作,包括整個(gè)原始數(shù)據(jù)集、一個(gè)或更多個(gè)份額、數(shù)據(jù)單元、單個(gè)比特、一組比特、一組字節(jié)、一組千字節(jié)、一組兆字節(jié)或更大組的數(shù)據(jù)、以及數(shù)據(jù)單元尺寸的任何模式或組合?;煜磾?shù)據(jù)可包括:以混洗數(shù)據(jù)的方式將原始數(shù)據(jù)分布到一個(gè)或更多個(gè)份額中,將原始數(shù)據(jù)分布到一個(gè)或更多個(gè)份額中、然后混洗作為結(jié)果的份額中的數(shù)據(jù),混洗原始數(shù)據(jù)、然后將混洗的數(shù)據(jù)分布到一個(gè)或更多個(gè)份額中,或者它們的任意組合。
[0029]因此,作為結(jié)果的份額可包括原始數(shù)據(jù)集的基本上隨機(jī)的分布。如這里所使用的,數(shù)據(jù)的基本上隨機(jī)的分布指的是從原始數(shù)據(jù)集產(chǎn)生一個(gè)或更多個(gè)不同的份額,其中,份額中的至少一個(gè)是使用一種或更多種隨機(jī)或偽隨機(jī)技術(shù)、隨機(jī)或偽隨機(jī)信息(例如,隨機(jī)或偽隨機(jī)密鑰)或它們的任意組合產(chǎn)生的。應(yīng)當(dāng)理解,由于在計(jì)算機(jī)中產(chǎn)生真實(shí)隨機(jī)數(shù)可能是不實(shí)際的,因此使用基本上隨機(jī)數(shù)將是足夠的。例如,當(dāng)使用關(guān)于產(chǎn)生真實(shí)隨機(jī)化具有限制的計(jì)算裝置來實(shí)現(xiàn)時(shí),這里提到的隨機(jī)化被理解為包括基本上的隨機(jī)化。作為導(dǎo)致將原始數(shù)據(jù)基本上隨機(jī)分布到份額中的數(shù)據(jù)解析的一個(gè)例子,考慮尺寸為23字節(jié)的原始數(shù)據(jù)集,其中數(shù)據(jù)單元尺寸被選擇為一個(gè)字節(jié),并且份額的數(shù)量被選擇為4。每個(gè)字節(jié)將被分布至IJ4個(gè)份額中的一個(gè)份額中。假定基本上隨機(jī)分布,則會(huì)獲得密鑰,以創(chuàng)建23個(gè)隨機(jī)數(shù)(Γι、r2、r3直至r23)的序列,每個(gè)具有與四個(gè)份額對應(yīng)的I與4之間的值。數(shù)據(jù)的單元(在本例子中,為數(shù)據(jù)的23個(gè)單個(gè)字節(jié))中的每一個(gè)與同四個(gè)份額中的一個(gè)對應(yīng)的23個(gè)隨機(jī)數(shù)中的一個(gè)相關(guān)聯(lián)。通過將數(shù)據(jù)的第一字節(jié)放入到份額數(shù)^中、將字節(jié)2放入到份額r 2中、將字節(jié)3放入到份額r3中直到將數(shù)據(jù)的第23個(gè)字節(jié)放入到份額r 23中,將出現(xiàn)將數(shù)據(jù)的字節(jié)分布到四個(gè)份額中??梢栽诮馕鎏幚碇惺褂酶鞣N其它可能的步驟或步驟的組合或次序,包括調(diào)整數(shù)據(jù)單元的尺寸。為了重新創(chuàng)建原始數(shù)據(jù),將執(zhí)行逆操作。
[0030]解析操作可向產(chǎn)生的份額添加故障容限,使得需要比所有份額少的份額來恢復(fù)原始數(shù)據(jù)。例如,解析操作可在份額中提供足夠的冗余,使得只需要份額的子集來將數(shù)據(jù)重新組裝或者恢復(fù)到其原始或可用的形式。例如,解析可被完成為“4個(gè)中的3個(gè)”解析,使得只需要四個(gè)份額中的三個(gè)份額來將數(shù)據(jù)重新組裝或者恢復(fù)到其原始或可用的形式。這也被稱為“N個(gè)中的M個(gè)解析”,其中,N是份額的總數(shù)量,而M至少比N少I個(gè)。
[0031]圖1表示例示性的安全數(shù)據(jù)解析系統(tǒng)(這里,也被稱為安全數(shù)據(jù)解析器)100。可使用諸如解析器程序或軟件套件的硬件和/或軟件來實(shí)現(xiàn)安全數(shù)據(jù)解析系統(tǒng)100。安全數(shù)據(jù)解析器還可包括一個(gè)或更多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)施和其它硬件或軟件模塊,或者與一個(gè)或更多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)施和其它硬件或軟件模塊連接,其中,可從一個(gè)或更多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)施和其它硬件或軟件模塊接收或傳送數(shù)據(jù),并且可對數(shù)據(jù)執(zhí)行各種功能。系統(tǒng)100可包括一個(gè)或更多個(gè)預(yù)處理器104、一個(gè)或更多個(gè)數(shù)據(jù)解析器106和一個(gè)或更多個(gè)后處理器108。關(guān)于系統(tǒng)100描述的所有特征是可選的,并且可以以任何可能的組合或次序執(zhí)行由預(yù)處理器104、數(shù)據(jù)解析器106和后處理器108執(zhí)行的操作。安全數(shù)據(jù)解析器100接收要被保護(hù)的數(shù)據(jù)102并且將數(shù)據(jù)傳遞給預(yù)處理器104,該預(yù)處理器104可對接收的數(shù)據(jù)102執(zhí)行預(yù)處理操作的任意組合,諸如加密數(shù)據(jù)、向數(shù)據(jù)添加完整性信息(例如,哈希)以及向數(shù)據(jù)添加認(rèn)證信息。預(yù)處理可以替代地或者附加地包括訪問和/或產(chǎn)生由安全數(shù)據(jù)解析器100使用的一個(gè)或更多個(gè)密鑰或其它信息。一個(gè)或更多個(gè)密鑰可以是用于從原始數(shù)據(jù)集產(chǎn)生數(shù)據(jù)的不同部分的任何合適的密鑰和/或用于這里描述的由安全數(shù)據(jù)解析器100執(zhí)行的其它操作的任何合適的密鑰??梢噪S機(jī)地、偽隨機(jī)地或者確定性地產(chǎn)生密鑰。在這里進(jìn)一步描述這些和其它預(yù)處理操作。
[0032]在任何希望的預(yù)處理之后,(可選地變換的)數(shù)據(jù)102和諸如任何合適的密鑰的任何附加信息被傳遞給數(shù)據(jù)解析器106。數(shù)據(jù)解析器106可解析