個(gè)外部模塊可替代內(nèi)置到安全數(shù)據(jù)解析器500中的能力。
[0081]密碼反饋密鑰產(chǎn)生器514可為每個(gè)安全數(shù)據(jù)解析器操作產(chǎn)生要用作將原始會(huì)話密鑰尺寸(例如,128、256、512或1024比特的值)擴(kuò)展到等于要被解析的數(shù)據(jù)的長度的值的操作的種子值的唯一密鑰或隨機(jī)數(shù)(例如,使用隨機(jī)數(shù)產(chǎn)生器512)??蔀槊艽a反饋密鑰產(chǎn)生而使用任何合適的算法,諸如AES密碼反饋密鑰產(chǎn)生算法。
[0082]為了促進(jìn)將安全數(shù)據(jù)解析器500及其外部模塊(例如,安全數(shù)據(jù)解析器層526)集成到應(yīng)用層524(例如,電子郵件應(yīng)用或數(shù)據(jù)庫應(yīng)用)中,可以使用可使用例如API功能調(diào)用的包裝層。可以使用用于將安全數(shù)據(jù)解析器層526集成到應(yīng)用層524中的任何其它合適的配置。
[0083]圖5還表示當(dāng)在應(yīng)用層524中發(fā)出寫入(例如,向存儲(chǔ)裝置)、插入(例如,在數(shù)據(jù)庫字段中)或傳送(例如,跨越網(wǎng)絡(luò))命令時(shí)可以如何使用安全數(shù)據(jù)解析器500和外部模塊。在步驟550,要被解析的數(shù)據(jù)被識(shí)別,并且對(duì)安全數(shù)據(jù)解析器進(jìn)行調(diào)用。調(diào)用穿過包裝器層522,其中,在該步驟552,包裝器層522將在步驟550識(shí)別的輸入數(shù)據(jù)流傳輸?shù)浇M裝數(shù)據(jù)緩沖器508中。而且,在步驟552,可以存儲(chǔ)任何合適的份額信息、文件名、任何其它合適的信息、或它們的任何組合(例如,作為包裝器層522處的信息556)。安全數(shù)據(jù)解析器500然后解析它從組裝數(shù)據(jù)緩沖器508作為輸入取得的數(shù)據(jù)。它將數(shù)據(jù)份額輸出到份額緩沖器510中。在步驟554,包裝器層522從存儲(chǔ)的信息556獲得任何合適的份額信息(即,在步驟552通過包裝器522存儲(chǔ)的)和份額位置(例如,來自一個(gè)或更多個(gè)配置文件)。包裝器層522然后適當(dāng)?shù)貙懭胼敵龇蓊~(從份額緩沖器510獲得的)(例如,寫入到在網(wǎng)絡(luò)上通信的一個(gè)或更多個(gè)存儲(chǔ)裝置,等等)。
[0084]圖6表示在出現(xiàn)讀取(例如,從存儲(chǔ)裝置)、選擇(例如,從數(shù)據(jù)庫字段)或者接收(例如,從網(wǎng)絡(luò))時(shí)可以如何使用安全數(shù)據(jù)解析器500和外部模塊。在步驟600,要被恢復(fù)的數(shù)據(jù)被識(shí)別,并且從應(yīng)用層524進(jìn)行對(duì)于安全數(shù)據(jù)解析器500的調(diào)用。在步驟602,從包裝器層522獲得任何合適的份額信息,并且確定份額位置。包裝器層522將在步驟600識(shí)別的數(shù)據(jù)的多個(gè)部分加載到份額緩沖器510中。安全數(shù)據(jù)解析器500然后處理在這里描述的這些份額(例如,如果在四個(gè)份額中只有三個(gè)份額是可用的,那么可以使用安全數(shù)據(jù)解析器500的冗余能力,以僅使用這三個(gè)份額來恢復(fù)原始數(shù)據(jù))?;謴?fù)的數(shù)據(jù)然后存儲(chǔ)在組裝數(shù)據(jù)緩沖器508中。在步驟504,應(yīng)用層522將存儲(chǔ)在組裝數(shù)據(jù)緩沖器508中的數(shù)據(jù)轉(zhuǎn)換成其原始數(shù)據(jù)格式(如果需要的話)并且向應(yīng)用層524提供其原始格式的原始數(shù)據(jù)。
[0085]圖7示出用于使用安全數(shù)據(jù)解析器的部件的示例性選項(xiàng)700。以下參照?qǐng)D7概述選項(xiàng)的幾個(gè)示例性組合。如關(guān)于圖5和圖6描述的那樣,安全數(shù)據(jù)解析器在本質(zhì)上可以是模塊化的,從而允許在圖7所示的功能塊中的每一個(gè)內(nèi)使用任何已知的算法。圖7的例子中所示的標(biāo)簽僅示出算法的一個(gè)可能的組合。作為標(biāo)簽的算法的替代,可以使用任何合適的算法或算法的組合。例如,作為沙米爾的替代,可以使用諸如布拉克利的其它密鑰解析(例如,秘密共享)算法,或者AES加密可被諸如3DES的其它已知的加密算法替代。
[0086]1)710、716、717、718、719、720、721、722
[0087]如果在步驟710接收先前加密的數(shù)據(jù),那么數(shù)據(jù)可被解析成預(yù)定數(shù)量的份額。如果解析算法需要密鑰,那么可使用密碼安全偽隨機(jī)數(shù)產(chǎn)生器在步驟716產(chǎn)生會(huì)話密鑰。會(huì)話密鑰可在步驟718被解析成具有故障容限的預(yù)定數(shù)量的份額之前可選地在步驟717使用全有或全無變換(AoNT)被變換成變換會(huì)話密鑰。數(shù)據(jù)然后在步驟719被解析成預(yù)定數(shù)量的份額。故障容限方案可在步驟720被使用以允許從少于份額的總數(shù)量的數(shù)據(jù)重新產(chǎn)生數(shù)據(jù)。一旦創(chuàng)建了份額,就可在步驟721將認(rèn)證/完整性信息嵌入到份額中。每個(gè)份額可選地可在步驟722被后加密。
[0088]2)711、716、717、718、719、720、721、722
[0089]在一些實(shí)施例中,可在解析數(shù)據(jù)之前首先通過使用由用戶或外部系統(tǒng)提供的預(yù)加密密鑰加密輸入數(shù)據(jù)。在步驟711提供外部預(yù)加密密鑰。例如,可從外部密鑰存儲(chǔ)庫提供密鑰。如果解析算法需要密鑰,那么可在步驟716通過使用密碼安全偽隨機(jī)數(shù)產(chǎn)生器產(chǎn)生會(huì)話密鑰。會(huì)話密鑰可以可選地在步驟718被解析成具有故障容限的預(yù)定數(shù)量的份額之前在步驟717中通過使用全有或全無變換(AoNT)被變換成變換會(huì)話密鑰。數(shù)據(jù)然后在步驟719被解析成預(yù)定數(shù)量的份額。故障容限方案可在步驟720被使用以允許從比份額的總數(shù)量少的數(shù)據(jù)重新產(chǎn)生數(shù)據(jù)。一旦創(chuàng)建了份額,就可在步驟721將認(rèn)證/完整性信息嵌入到份額中。每個(gè)份額可選地可在步驟722被后加密。
[0090]3)712、713、714、715、716、717、718、719、720、721、722
[0091]在一些實(shí)施例中,需要加密,但不使用用于預(yù)加密的外部密鑰。在這種實(shí)施例中,可在步驟712使用密碼安全偽隨機(jī)數(shù)產(chǎn)生器產(chǎn)生加密密鑰,以變換數(shù)據(jù)。可在步驟713進(jìn)行使用產(chǎn)生的加密密鑰來加密數(shù)據(jù)。加密密鑰可選地可在步驟714使用全有或全無變換(AoNT)被變換成變換會(huì)話密鑰。然后,變換加密密鑰和/或產(chǎn)生的加密密鑰可在步驟715被解析成具有故障容限的預(yù)定數(shù)量的份額。如果解析算法需要密鑰,那么可在步驟716進(jìn)行使用密碼安全偽隨機(jī)數(shù)產(chǎn)生器來產(chǎn)生會(huì)話密鑰。會(huì)話密鑰可選地可在步驟718被解析成具有故障容限的預(yù)定數(shù)量的份額之前在步驟717使用全有或全無變換(AoNT)被變換成變換會(huì)話密鑰。數(shù)據(jù)然后在步驟719被解析成預(yù)定數(shù)量的份額。故障容限方案可在步驟720被使用以允許從比份額的總數(shù)量少的數(shù)據(jù)重新產(chǎn)生數(shù)據(jù)。一旦創(chuàng)建了份額,就可在步驟721將認(rèn)證/完整性信息嵌入到份額中。每個(gè)份額然后可選地可在步驟722被后加密。
[0092]安全數(shù)據(jù)解析器可通過促進(jìn)物理分離來提供靈活的數(shù)據(jù)保護(hù)。數(shù)據(jù)可首先被加密,然后被解析成具有“η個(gè)中的m個(gè)”故障容限的份額。這允許當(dāng)少于總數(shù)量的份額可用時(shí)重新產(chǎn)生原始信息。例如,一些份額可能在傳送中丟失或者被破壞。如后面更詳細(xì)地討論的那樣,可從故障容限或者附加到份額的完整性信息重新創(chuàng)建丟失或破壞的份額。
[0093]為了創(chuàng)建份額,大量的密鑰可選地被上述安全數(shù)據(jù)解析器利用。這些密鑰可包括以下密鑰中的一個(gè)或更多個(gè):
[0094]預(yù)加密密鑰:當(dāng)選擇份額的預(yù)加密時(shí),外部加密密鑰可被傳送到安全數(shù)據(jù)解析器。該密鑰可被產(chǎn)生并且被外部地存儲(chǔ)在密鑰存儲(chǔ)庫(或其它位置)中,并且可被用于可選地在解析數(shù)據(jù)之前加密數(shù)據(jù)。
[0095]內(nèi)部加密密鑰:該密鑰可在內(nèi)部產(chǎn)生并且被安全數(shù)據(jù)解析器用于在解析之前加密數(shù)據(jù)。然后,可使用密鑰解析算法將該密鑰安全地存儲(chǔ)于份額內(nèi)。
[0096]會(huì)話密鑰:該密鑰不與加密算法一起使用;而是,它可用于在選擇隨機(jī)解析時(shí)作為數(shù)據(jù)分割算法的密鑰。當(dāng)使用隨機(jī)解析時(shí),會(huì)話密鑰可在內(nèi)部產(chǎn)生并且被安全數(shù)據(jù)解析器用于將數(shù)據(jù)分成份額??墒褂妹荑€解析算法將該密鑰安全地存儲(chǔ)于份額內(nèi)。
[0097]后加密密鑰:當(dāng)選擇份額的后加密時(shí),外部密鑰可被傳送到安全數(shù)據(jù)解析器并且用于后加密單個(gè)的份額。該密鑰可被產(chǎn)生并且被外部地存儲(chǔ)在密鑰存儲(chǔ)庫或其它適當(dāng)?shù)奈恢弥小?br>[0098]在一些實(shí)施例中,當(dāng)以這種方式使用安全數(shù)據(jù)解析器保護(hù)數(shù)據(jù)時(shí),只有假定存在所有的需要的份額和外部加密密鑰,信息才可被重新組裝。
[0099]除了信息資產(chǎn)的個(gè)別保護(hù)以外,有時(shí)需要在不同的用戶組或利益社團(tuán)之間共享信息。于是,可能需要控制對(duì)于該用戶組內(nèi)的單個(gè)份額的訪問,或者在僅允許組的成員重新組裝份額的那些用戶之間共享證書。因而,工作組密鑰可被部署給組成員。工作組密鑰應(yīng)被保護(hù)并且保持機(jī)密,因?yàn)楣ぷ鹘M密鑰的損壞會(huì)潛在地允許組外的人訪問信息。工作組密鑰概念允許通過加密存儲(chǔ)于份額內(nèi)的密鑰信息來增強(qiáng)信息資產(chǎn)的保護(hù)。一旦該操作被執(zhí)行,即使所有需要的份額和其它外部密鑰被發(fā)現(xiàn),攻擊者沒有在不訪問工作組密鑰的情況下重新創(chuàng)建信息的希望。
[0100]圖8表示用于在份額內(nèi)存儲(chǔ)密鑰成分和數(shù)據(jù)成分的例示性的框圖800。在示圖800的例子中,可選的預(yù)加密和后加密步驟被省略,盡管可在其它實(shí)施例中包括這些步驟。
[0101]用于解析數(shù)據(jù)的簡化處理包括首先在加密階段802使用加密密鑰加密數(shù)據(jù)。然后,加密密鑰可選地可在階段804利用工作組密鑰被加密。然后,可選地通過工作組密鑰加密的加密密鑰可被解析成份額并且存儲(chǔ)于數(shù)據(jù)份額812內(nèi)。會(huì)話密鑰808也可被解析并且存儲(chǔ)于份額812內(nèi)。使用會(huì)話密鑰,加密密鑰810被解析并且存儲(chǔ)于份額812內(nèi)。
[0102]為了恢復(fù)數(shù)據(jù),可從份額812檢索并且恢復(fù)會(huì)話密鑰部分。然后,可逆轉(zhuǎn)數(shù)據(jù)的解析操作以恢復(fù)加密的數(shù)據(jù)。加密密鑰(利用工作組密鑰被加密)的發(fā)可被檢索并且加密的加密密鑰被恢復(fù)。然后,加密的加密密鑰可使用工作組密鑰被解密。最后,加密的數(shù)據(jù)于是可使用加密密鑰被解密以揭示原始數(shù)據(jù)。
[0103]存在用于部署和保護(hù)工作組密鑰的幾個(gè)安全方法。選擇哪種方法以用于特定的應(yīng)用依賴于大量的因素。這些因素可包括需要的安全水平、成本、便利性和工作組中的用戶的數(shù)量。示例性的技術(shù)包括基于硬件的密鑰存儲(chǔ)和基于軟件的密鑰存儲(chǔ)。
[0104]基于硬件的方案一般對(duì)加密系統(tǒng)中的加密/解密密鑰的安全性提供最強(qiáng)的保證?;谟布拿荑€存儲(chǔ)方案的例子包括在便攜式裝置(例如,智能卡/軟件狗)或非便攜式密鑰存儲(chǔ)外設(shè)中存儲(chǔ)密鑰的防盜密鑰令牌裝置。這些裝置被設(shè)計(jì)為防止未授權(quán)方很容易地復(fù)制密鑰材料。密鑰可由受信任的機(jī)構(gòu)產(chǎn)生并且分發(fā)給用戶,或者在硬件內(nèi)產(chǎn)生。另外,密鑰存儲(chǔ)系統(tǒng)可提供多因素認(rèn)證,其中,密鑰的使用要求訪問物理對(duì)象(令牌)和口令句或生物識(shí)別。雖然對(duì)于高安全部署或應(yīng)用可能希望專用的基于硬件的密鑰存儲(chǔ),但其它的部署可選擇直接在本地硬件(例如,盤、RAM或諸如USB驅(qū)動(dòng)器的非易失性RAM存儲(chǔ)器)上存儲(chǔ)密鑰。這針對(duì)內(nèi)部攻擊或者例如在攻擊者能夠直接訪問加密機(jī)器的情況下提供低級(jí)保護(hù)。
[0105]為了保護(hù)盤上的密鑰,基于軟件的密鑰管理常常通過利用從其它認(rèn)證度量的組合導(dǎo)出的密鑰以加密的形式存儲(chǔ)密鑰來保護(hù)密鑰,該認(rèn)證度量包括:密碼和口令句、其它密鑰(例如,來自基于硬件的方案)的存在、生物識(shí)別、或任何合適的組合。由這種技術(shù)提供的安全水平的范圍可以為從由一些操作系統(tǒng)(例如,MS Windows和Linux)提供的相對(duì)弱的密鑰保護(hù)機(jī)制到使用多因素認(rèn)證實(shí)現(xiàn)的更健壯的方案。
[0106]可有利地在大量的應(yīng)用和技術(shù)中使用在這里描述的安全數(shù)據(jù)解析器。例如,電子郵件系統(tǒng)、RAID系統(tǒng)、視頻廣播系統(tǒng)、數(shù)據(jù)庫系統(tǒng)、磁帶備份系統(tǒng)或任何其他合適的系統(tǒng)可以具有以任何合適的水平集成的安全數(shù)據(jù)解析器。如上面討論的那樣,應(yīng)當(dāng)理解,安全數(shù)據(jù)解析器也可通過包括例如有線、無線或物理傳輸介質(zhì)的任何傳輸介質(zhì)被集成用于任意類型的移動(dòng)中的數(shù)據(jù)的保護(hù)和故障容限。作為一個(gè)例子,經(jīng)由因特網(wǎng)協(xié)議的語音(VoIP)應(yīng)用可利用安全數(shù)據(jù)解析器以解決與通常在VoIP中發(fā)現(xiàn)的回聲和延遲有關(guān)的問題。通過使用故障容限,可以消除對(duì)丟棄的數(shù)據(jù)包進(jìn)行網(wǎng)絡(luò)重試的需求,即使在丟失了預(yù)定數(shù)量的份額的情況下,這也保證了數(shù)據(jù)包的傳送。也可以以最小的延遲和緩沖有效地“在飛行中”解析和恢復(fù)數(shù)據(jù)包(例如,網(wǎng)絡(luò)包),從而導(dǎo)致用于各種類型的移動(dòng)中的數(shù)據(jù)的綜合方案。安全數(shù)據(jù)解析器可作用于網(wǎng)絡(luò)數(shù)據(jù)包、網(wǎng)絡(luò)語音包、文件系統(tǒng)數(shù)據(jù)塊、或者任何其它合適的信息單元。除了與VoIP應(yīng)用集成以外,安全數(shù)據(jù)解析器可與文件共享應(yīng)用(例如,對(duì)等文件共享應(yīng)用)、視頻廣播應(yīng)用、電子投票或輪詢應(yīng)用(可實(shí)現(xiàn)電子投票協(xié)議和盲簽名,諸如Sensus協(xié)議)、電子郵件應(yīng)用、或可能需要或者希望安全通信的任何其它網(wǎng)絡(luò)應(yīng)用相集成。
[0107]在一些實(shí)施例中,可由安全數(shù)據(jù)解析器在兩個(gè)不同的階段一頭部產(chǎn)生階段和數(shù)據(jù)解析階段一提供對(duì)于移動(dòng)中的網(wǎng)絡(luò)數(shù)據(jù)的支持。分別在圖9A和圖9B中表示簡化的頭部產(chǎn)生階段900和簡化的數(shù)據(jù)解析階段910??蓪?duì)網(wǎng)絡(luò)數(shù)據(jù)包、文件系統(tǒng)塊或者任何其它合適的信息執(zhí)行這些處理中的一個(gè)或兩者。
[0108]在一些實(shí)施例中,可在網(wǎng)絡(luò)數(shù)據(jù)包流的啟動(dòng)時(shí)就執(zhí)行頭部產(chǎn)生處理900。在步驟902,可產(chǎn)生隨機(jī)(或偽隨機(jī))加密密鑰K。然后,加密密鑰K可選地可在AES密鑰包裝步驟904被加密(例如,使用上述工作組密鑰)。雖然可在一些實(shí)施例中使用AES密鑰包裝,但是可在其它的實(shí)施例中使用任何合適的密鑰加密或密鑰包裝算法。AES密鑰包裝步驟904可對(duì)整個(gè)加密密鑰K進(jìn)行操作,或者加密密鑰可被解析成幾個(gè)塊(例如,64比特塊)。如果希望的話,AES密鑰包裝步驟904然后可對(duì)加密密鑰的塊進(jìn)行操作。
[0109]在步驟906,秘密共享算法(例如,沙米爾)可用于將加密密鑰K解析成密鑰份額。每個(gè)密鑰份額然后可被嵌入到輸出份額中的一個(gè)中(例如,在份額頭部中)。最后,份額完整性塊