国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      管理用于文件加密和解密的多個(gè)密鑰的系統(tǒng)和方法

      文檔序號(hào):6554356閱讀:234來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):管理用于文件加密和解密的多個(gè)密鑰的系統(tǒng)和方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及計(jì)算,尤其涉及數(shù)據(jù)的加密,其中多重密鑰被用于對(duì)存儲(chǔ)在一個(gè)或多個(gè)計(jì)算裝置上的數(shù)據(jù)進(jìn)行加密。
      背景技術(shù)
      文件加密正日益成為數(shù)據(jù)安全化的一種選擇。在加密文件系統(tǒng)(EFS)格式中,操作系統(tǒng)甚至可以提供自動(dòng)的文件加密。不管文件加密在何種設(shè)置下被采用,隨著時(shí)間的推移,文件可能需要采用一個(gè)或多個(gè)密鑰來(lái)加密。多個(gè)第一文件根據(jù)第一密鑰來(lái)加密,而多個(gè)第二文件則根據(jù)第二密鑰來(lái)加密,之前的任何文件則都采用之前的密鑰來(lái)加密。
      采用EFS的情況來(lái)舉例,例如,操作系統(tǒng)可以根據(jù)來(lái)自智能卡的可用密鑰來(lái)加密文件。如果用戶(hù)已經(jīng)使用一張智能卡在很多服務(wù)器上來(lái)加密很多文件,當(dāng)用戶(hù)更換當(dāng)前的密鑰時(shí),老的文件依然被老的智能卡所加密,因而用戶(hù)需要手動(dòng)地將其全部再加密。雖然可以設(shè)置自動(dòng)的進(jìn)程從而在更換卡的時(shí)候進(jìn)行解密,但是這樣的進(jìn)程會(huì)消耗時(shí)間和資源,而且,如果用戶(hù)并不是很專(zhuān)業(yè)的話,她有可能會(huì)忘記解密命令。現(xiàn)在,不管何時(shí),當(dāng)用戶(hù)打開(kāi)一個(gè)采用老的智能卡加密的文件時(shí),她需要拔下當(dāng)前的智能卡再插入老的。如果她丟失了老卡,她必須使用EFS恢復(fù)服務(wù)來(lái)恢復(fù)數(shù)據(jù),否則她就完全喪失了對(duì)文件的訪問(wèn)。對(duì)于在一個(gè)特定EFS上用過(guò)了多個(gè)智能卡的用戶(hù)來(lái)講,問(wèn)題就更復(fù)雜了。
      所以,在EFS或其它的環(huán)境下,對(duì)于被多個(gè)加密密鑰所加密的文件,希望能夠?qū)ζ溆虚L(zhǎng)期有效的訪問(wèn),而不需要更換之前所使用的加密密鑰,僅僅通過(guò)當(dāng)前的加密密鑰即可實(shí)現(xiàn)。一種不需用戶(hù)干涉即可解密所有的超時(shí)加密文件的機(jī)制還可以改善可用性,并且避免由于先前的加密密鑰的丟失和損壞所導(dǎo)致的數(shù)據(jù)丟失。

      發(fā)明內(nèi)容
      考慮現(xiàn)有技術(shù)的上述缺陷,本發(fā)明提供用于管理用于文件加密和解密的多重密鑰的系統(tǒng)和方法。通常,用一個(gè)密鑰對(duì)先前使用的密鑰的列表進(jìn)行加密,所采用的密鑰在此被稱(chēng)為“當(dāng)前密鑰”。對(duì)于列表中的密鑰的訪問(wèn)就被限于那些含有當(dāng)前密鑰的訪問(wèn)。為了對(duì)被一個(gè)或多個(gè)先前密鑰所加密的文件進(jìn)行解密,所述列表被解密,并取得適當(dāng)?shù)南惹懊荑€。為了將文件從被先前密鑰加密的狀態(tài)轉(zhuǎn)換為由當(dāng)前密鑰加密的狀態(tài),這一過(guò)程稱(chēng)之為再加密,通過(guò)使用先前密鑰(文件/密鑰被此密鑰所加密),一個(gè)自動(dòng)的進(jìn)程可以加密任何文件和/或用于加密這些文件的解密密鑰,并且使用當(dāng)前密鑰來(lái)加密文件/密鑰。該自動(dòng)進(jìn)程可以在計(jì)算資源足以最小化到用戶(hù)的延遲時(shí)運(yùn)行,其中所述用戶(hù)可能同時(shí)執(zhí)行高優(yōu)先權(quán)的計(jì)算操作。如果引入了新的當(dāng)前密鑰,該先前密鑰可被用于加密密鑰列表,先前密鑰可以被加入到列表中,并且該列表被新的當(dāng)前密鑰所再加密。本發(fā)明的其它優(yōu)點(diǎn)和特征將在下文中描述。


      根據(jù)本發(fā)明的對(duì)用于文件加密和解密的多重密鑰進(jìn)行管理的系統(tǒng)和方法將參考附圖進(jìn)行進(jìn)一步的說(shuō)明,其中圖1是一方框圖,廣泛地表示適用于結(jié)合本發(fā)明的各方面的實(shí)例性的計(jì)算裝置。該計(jì)算裝置包括解壓數(shù)據(jù)103B、103D、104A、105A。對(duì)于這些數(shù)據(jù)的訪問(wèn)需要一個(gè)或多個(gè)可以根據(jù)此處所述的技術(shù)進(jìn)行管理的解密密鑰。
      圖2示出實(shí)例性的現(xiàn)有技術(shù)下的網(wǎng)絡(luò)化的計(jì)算環(huán)境,在該環(huán)境中,計(jì)算機(jī)進(jìn)程,包括本發(fā)明的這些進(jìn)程在內(nèi),可以被實(shí)現(xiàn)。該網(wǎng)絡(luò)化的計(jì)算裝置可以存儲(chǔ)示例性的加密數(shù)據(jù)280A、280B、280C、280D。對(duì)于這些數(shù)據(jù)的訪問(wèn)需要一個(gè)或多個(gè)可以根據(jù)此處所述的技術(shù)進(jìn)行管理的解密密鑰。
      圖3示出實(shí)例性的加密文件系統(tǒng)(EFS),其可以使用加密密鑰來(lái)加密和解密文件。密鑰39可以從某個(gè)位置獲得,例如實(shí)例性的密鑰裝置31,進(jìn)程33使用密鑰39或者由其獲得的密鑰來(lái)解密在任意一個(gè)存儲(chǔ)器34位置中的文件36。
      圖4示出用于獲取密鑰的實(shí)例性的系統(tǒng)和方法,例如來(lái)自諸如智能卡的密鑰裝置的個(gè)人識(shí)別碼(PIN)。當(dāng)進(jìn)入的要求密鑰的指令到達(dá)本地安全授權(quán)安全服務(wù)(LSASS)EFS40時(shí),LSASS EFS 40可以產(chǎn)生一個(gè)進(jìn)程41,此處稱(chēng)之為新進(jìn)程42,其產(chǎn)生用戶(hù)界面44,向用戶(hù)提示要求一個(gè)密鑰。該密鑰可以被送回LSASS EFS以用于對(duì)存儲(chǔ)在智能卡便攜裝置上的,用于在必要時(shí)加密/解密的密鑰進(jìn)行訪問(wèn)。
      圖5示出一個(gè)問(wèn)題的實(shí)施例,該問(wèn)題被本發(fā)明的各種優(yōu)點(diǎn)所解決。當(dāng)一個(gè)密鑰,例如,在EFS55中的第一密鑰59B被更換時(shí),一些文件57的解密需要先前使用的密鑰59A,而其它文件,例如那些存儲(chǔ)在58內(nèi)的文件則需要第一密鑰59B。在任何情況下,新的密鑰,例如,第二密鑰59C,不能被單獨(dú)地使用以解密文件57和58。相應(yīng)地,希望有一種能夠使用第二密鑰59C提供對(duì)文件57和58的有效且無(wú)縫的連續(xù)性訪問(wèn),而且還可以使用第二密鑰59C再加密文件57和58的技術(shù)。
      圖6示出一個(gè)密鑰列表610,其可以存儲(chǔ)在已加密的文件中,例如,文件606。密鑰列表610的屬性被示于圖7中。
      圖7示出一個(gè)示例性的密鑰列表700,被使用當(dāng)前密鑰709而加密。該密鑰列表包括多個(gè)先前密鑰701-704,所述密鑰在必要時(shí)被用于對(duì)那些使用先前密鑰701-704進(jìn)行加密的文件707和708進(jìn)行解密、加密、再加密、以及其它操作。
      圖8示出一種用于再加密鑰的示例性進(jìn)程,也被稱(chēng)為再加密。一種諸如圖8的進(jìn)程可以被實(shí)現(xiàn)為在計(jì)算資源可以有效地提供無(wú)縫的用戶(hù)體驗(yàn)時(shí)執(zhí)行,而不需要等待冗余的所有文件。
      圖9提供在圖8中描述的進(jìn)程的更為詳細(xì)的實(shí)施例。
      圖10示出用于更換用于一個(gè)EFS中的當(dāng)前密鑰的流程。先前使用的密鑰(第一密鑰)可被用于解密密鑰列表。先前的密鑰然后可以被加入到列表中,該列表被新的當(dāng)前密鑰所加密。列表中,先前密鑰可用于任何用先前密鑰加密的文件,而且只有可以訪問(wèn)當(dāng)前密鑰,才可以訪問(wèn)先前密鑰。
      圖11示出用于再加密向?qū)У氖纠詧D形用戶(hù)界面(GUI)。這樣的向?qū)?huì)提示用戶(hù)輸入所有的先前密鑰,以及當(dāng)前密鑰和/或任何對(duì)于訪問(wèn)EFS中的文件而言所需要的新密鑰。
      圖12示出一種配置,其中可能不在圖7的密鑰列表中的密鑰1220-1222可以經(jīng)由諸如密鑰裝置1201被導(dǎo)入計(jì)算機(jī)1200,并且臨時(shí)性地被緩存以用于EFS。當(dāng)用戶(hù)注銷(xiāo)時(shí),這些密鑰被從存儲(chǔ)器中擦除以避免未授權(quán)的使用。
      具體實(shí)施例在以下說(shuō)明和附圖中將提出某些具體的細(xì)節(jié)以提供對(duì)于本發(fā)明的實(shí)施例的各方面的理解。不過(guò),某些眾所周知的經(jīng)常與計(jì)算機(jī)和軟件技術(shù)相關(guān)的細(xì)節(jié)在下文中不再加以闡述,以避免非必要性地遮蔽了本發(fā)明的多種實(shí)施例。而且,相關(guān)領(lǐng)域的普通技術(shù)人員應(yīng)該可以了解到他們可以在下文所述的具體細(xì)節(jié)之外實(shí)施本發(fā)明的其它實(shí)施例。最后,雖然在以下公布內(nèi)容中,各種方法是參照步驟和序列來(lái)描述的,但是這些描述僅僅是為了能夠提供對(duì)于本發(fā)明的實(shí)施例的清楚的執(zhí)行方法,而不應(yīng)該就此認(rèn)為這些步驟和序列對(duì)于實(shí)踐本發(fā)明而言是不可或缺的。
      圖1是一方框圖,其大致上地表示適用于本發(fā)明的各個(gè)方面的示例性計(jì)算裝置100的基本特征。參照?qǐng)D1,用于實(shí)現(xiàn)本發(fā)明的示例性系統(tǒng)包括一個(gè)計(jì)算裝置,例如裝置100。在其最基本的配置中,裝置100通常包括一個(gè)處理單元102和存儲(chǔ)器103。取決于計(jì)算裝置的具體的配置和型號(hào),存儲(chǔ)器103可以是易失性存儲(chǔ)器103A(例如RAM),非易失性存儲(chǔ)器103C(例如ROM,閃存等),或者這二者的結(jié)合。此外,裝置100還包括大容量存儲(chǔ)器(可移動(dòng)的104和/或不可移動(dòng)的105),例如磁盤(pán)、光盤(pán)或者磁帶。在任何此類(lèi)存儲(chǔ)位置103A、103B、104、105,或者在可以通過(guò)通信連接108訪問(wèn)裝置100的位置中,可以找到加密的數(shù)據(jù)103B、103D、104A、105A。加密數(shù)據(jù)根據(jù)某些算法可逆轉(zhuǎn)地被加密編碼,因此如果解密密鑰已知的話,該數(shù)據(jù)就可以被解密編碼。
      裝置100還具有輸入裝置107,例如讀卡器107A和/或輸出裝置106,例如顯示器、打印機(jī)等。裝置100的其它方面包括使用有線或無(wú)線介質(zhì)到其它裝置、計(jì)算機(jī)、網(wǎng)絡(luò)、服務(wù)器等的通信連接108。所有這些裝置在本領(lǐng)域都是公知的,在此不需過(guò)多描述。
      對(duì)于用于對(duì)加密數(shù)據(jù)103B、103D、104A、105A進(jìn)行解密的裝置100而言,需要一個(gè)或多個(gè)密鑰(未示出)。解密密鑰是任何可用于對(duì)加密數(shù)據(jù)進(jìn)行譯碼的信息。這些密鑰本身可以是可從某些形式的計(jì)算機(jī)存儲(chǔ)器,例如非易失性系統(tǒng)存儲(chǔ)器103c中得到的數(shù)字化存儲(chǔ)信息。解密密鑰也可以從多種其它來(lái)源得到,例如插入讀卡器107A中的智能卡,但不限于此。當(dāng)密鑰被存儲(chǔ)在智能卡上時(shí),該卡可以被引入讀卡器107A,計(jì)算機(jī)裝置100將密鑰從卡中取出,該密鑰被用于解密數(shù)據(jù),例如,103B。
      雖然示例性的實(shí)施例中用一個(gè)或多個(gè)孤立的計(jì)算機(jī)系統(tǒng)來(lái)實(shí)現(xiàn)本發(fā)明,本發(fā)明并不局限于此,它還可以在任何其它的計(jì)算機(jī)環(huán)境中實(shí)現(xiàn),例如網(wǎng)絡(luò)或者分布式計(jì)算環(huán)境。而且,本發(fā)明可以在(或通過(guò))多個(gè)處理芯片或裝置中實(shí)現(xiàn),存儲(chǔ)裝置也類(lèi)似地被多個(gè)裝置所影響。這樣的裝置可以包括個(gè)人計(jì)算機(jī),網(wǎng)絡(luò)服務(wù)器、手持裝置、超級(jí)計(jì)算機(jī)、或者集成在其它系統(tǒng)中,例如汽車(chē)或者飛機(jī)中的計(jì)算機(jī)。
      圖2提供實(shí)例性的網(wǎng)絡(luò)式或者分布式計(jì)算機(jī)環(huán)境的示意性圖表。該環(huán)境包括計(jì)算裝置271、272、276和277,還有對(duì)像273、274和275,以及數(shù)據(jù)庫(kù)278。實(shí)體271、272、273、274、275、276、277和278中的每一個(gè)實(shí)體可以包括程序、方法、數(shù)據(jù)存儲(chǔ)、可編程邏輯等。實(shí)體271、272、273、274、275、276、277和278可以覆蓋部分相同和不同的裝置,例如PDA、音頻/視頻裝置、MP3播放器、個(gè)人計(jì)算機(jī)等。每個(gè)實(shí)體271、272、273、274、275、276、277和278可以和另一個(gè)實(shí)體271、272、273、274、275、276、277和278通過(guò)通信網(wǎng)絡(luò)270來(lái)通信。在這一情況下,顯示在示例性位置280A、280B、280C和280D中的加密數(shù)據(jù)可以駐留在網(wǎng)絡(luò)中的任何實(shí)體中。在實(shí)現(xiàn)本發(fā)明的系統(tǒng)和方法時(shí),加密數(shù)據(jù)280A、280B、280C和280D可以被訪問(wèn)、再加密、或者被其它各種裝置使用。
      有很多支持網(wǎng)絡(luò)化計(jì)算環(huán)境的系統(tǒng)、組件、以及網(wǎng)絡(luò)配置。例如,計(jì)算系統(tǒng)可以通過(guò)有線或者無(wú)線的系統(tǒng)、本地網(wǎng)絡(luò)、或者廣域分布的網(wǎng)絡(luò)相連接。當(dāng)前,很多網(wǎng)絡(luò)連接到因特網(wǎng)。任何這樣的網(wǎng)絡(luò),不管是否連接到因特網(wǎng),可以利用現(xiàn)有的系統(tǒng)和方法而聯(lián)合使用。
      網(wǎng)絡(luò)構(gòu)造可以使能諸如客戶(hù)/服務(wù)器、點(diǎn)到點(diǎn)、或者橋接結(jié)構(gòu)的網(wǎng)絡(luò)拓樸?!翱蛻?hù)”指的是一個(gè)類(lèi)或者組內(nèi)的成員,使用了與之不相關(guān)的另一個(gè)類(lèi)或者組內(nèi)的服務(wù)。在計(jì)算環(huán)境中,客戶(hù)是一個(gè)進(jìn)程,舉例而言,大致上是一組需要由另一個(gè)程序提供的服務(wù)的指令或者任務(wù)。該客戶(hù)進(jìn)程使用被請(qǐng)求的服務(wù)而不必去搞清楚任何有關(guān)其它程序或者服務(wù)本身的操作細(xì)節(jié)。在一個(gè)客戶(hù)/服務(wù)器結(jié)構(gòu)中,具體而言,在一個(gè)網(wǎng)絡(luò)化系統(tǒng)中,客戶(hù)往往是一臺(tái)計(jì)算機(jī),其對(duì)由另一臺(tái)計(jì)算機(jī),例如一臺(tái)服務(wù)器所提供的共享網(wǎng)絡(luò)資源進(jìn)行訪問(wèn)。在圖2的例子中,任何實(shí)體271、272、273、274、275、276、277和278可以被視為是客戶(hù)、或服務(wù)器、或者兼為二者,這取決于具體環(huán)境。
      典型但非必要地,服務(wù)器是一個(gè)遠(yuǎn)程計(jì)算機(jī)系統(tǒng),其可以通過(guò)遠(yuǎn)程或者局域網(wǎng)絡(luò),例如因特網(wǎng)來(lái)訪問(wèn)??蛻?hù)進(jìn)程可以在第一計(jì)算機(jī)系統(tǒng)中激活,而服務(wù)器進(jìn)程在第二計(jì)算機(jī)系統(tǒng)中激活,其與另一服務(wù)器進(jìn)程通過(guò)通信介質(zhì)來(lái)通信,從而提供分布式功能并且允許多個(gè)客戶(hù)利用服務(wù)器的信息獲取能力。任何軟件對(duì)像可以在多個(gè)計(jì)算裝置或者對(duì)像間分布。
      客戶(hù)和服務(wù)器可以使用由協(xié)議層所提供的功能而彼此通信。典型地,計(jì)算機(jī)網(wǎng)絡(luò)地址,例如因特網(wǎng)協(xié)議(IP)地址或者其它的標(biāo)記,例如全球資源定位程序(URL)可以被用于將服務(wù)器或者客戶(hù)計(jì)算機(jī)彼此識(shí)別出來(lái)。網(wǎng)絡(luò)地址可以被稱(chēng)之為URL地址。通信可以在通信介質(zhì)上進(jìn)行,例如,客戶(hù)和服務(wù)器可以通過(guò)TCP/IP連接而耦合到另一客戶(hù)和服務(wù)器上以進(jìn)行大容量通信。
      通過(guò)以下的關(guān)于本發(fā)明的描述,將會(huì)變得清楚的是本發(fā)明的各種實(shí)施例可包括一個(gè)網(wǎng)絡(luò)化的客戶(hù)裝置,例如,舉例而言,計(jì)算裝置277。客戶(hù)277可以是一臺(tái)主要由單人操作的個(gè)人計(jì)算機(jī)。此人可以使用客戶(hù)277與很多位置,例如280A和280D進(jìn)行通信,并且將加密數(shù)據(jù)存儲(chǔ)進(jìn)去。計(jì)算裝置272可以是,舉例來(lái)說(shuō),一臺(tái)服務(wù)器,可以在其中保存加密文件,從而使得這些文件可以被遠(yuǎn)程訪問(wèn)。調(diào)制解調(diào)計(jì)算日益涉及到數(shù)據(jù)存儲(chǔ),例如電子郵件和其它個(gè)人數(shù)據(jù)、數(shù)據(jù)庫(kù)、文件,以及在網(wǎng)絡(luò)化環(huán)境中的,可以從網(wǎng)絡(luò)上的多個(gè)地方進(jìn)行訪問(wèn)的公司和企業(yè)信息。一個(gè)密鑰的列表被保存在個(gè)人裝置277上,而在個(gè)人裝置277上運(yùn)行的進(jìn)程管理該列表,同時(shí)也管理對(duì)駐留在個(gè)人裝置277、服務(wù)器272,或者網(wǎng)絡(luò)中任何其它裝置上的加密數(shù)據(jù)進(jìn)行再加密的進(jìn)程。
      根據(jù)各種可以根據(jù)圖2中所提供的大致框架所構(gòu)建的計(jì)算機(jī)環(huán)境,此處所提供的系統(tǒng)和方法不能以任何具體的計(jì)算機(jī)結(jié)構(gòu)作為限制而構(gòu)建。本發(fā)明亦不應(yīng)該被限制于任何單一的實(shí)施例,而應(yīng)根據(jù)所附的權(quán)利要求的范圍來(lái)構(gòu)建。
      本發(fā)明的系統(tǒng)和方法可以在任何數(shù)據(jù)由多重密鑰加密的情形下操作,其中一種這樣的情形就發(fā)生在使用EFS的計(jì)算機(jī)系統(tǒng)中。具體而言,EFS用一個(gè)或多個(gè)密鑰加密文件,而所需的用于該系統(tǒng)的密鑰可能會(huì)隨時(shí)間而改變。當(dāng)這樣的變化發(fā)生時(shí),就有必要保留先前的密鑰以用于繼續(xù)對(duì)這些被先前的密鑰所加密的文件進(jìn)行訪問(wèn)。各種實(shí)施例提供有用的系統(tǒng)和方法用于以安全的方法保留、管理、和訪問(wèn)這些先前的密鑰,并且再加密這些已加密文件以避免其對(duì)于先前密鑰的需要。
      EFS是本領(lǐng)域所公知的,其采用最新的MICROSOFT WINDOWS操作系統(tǒng)來(lái)實(shí)現(xiàn)。這樣的EFS的一個(gè)實(shí)施例被描述于編號(hào)為6,249,866,于2001年6月19日對(duì)Brundree等人的公開(kāi)美國(guó)專(zhuān)利中,其標(biāo)題為“Encrypting File System andMethod”(加密文件系統(tǒng)及方法)。EFS是某種自動(dòng)化的系統(tǒng),在其中當(dāng)文件被存儲(chǔ)于長(zhǎng)期存儲(chǔ)器中時(shí)被自動(dòng)地加密,而當(dāng)授權(quán)用戶(hù)需要的時(shí)候則被自動(dòng)的解密。EFS的各種實(shí)現(xiàn)方式可以提供一個(gè)用戶(hù)認(rèn)證進(jìn)程,通過(guò)該進(jìn)程用戶(hù)可以證明他已被授權(quán)訪問(wèn)這些加密文件。然后,任意數(shù)量的代表用戶(hù)的密鑰被創(chuàng)建以加密和/或解密用戶(hù)需要保護(hù)的文件。
      雖然本發(fā)明可以在任何類(lèi)型的EFS上實(shí)現(xiàn),此處提供對(duì)于MICROSOFTEFS的描述以便討論可能用于本發(fā)明的EFS的特征。MICROSOFTEFS使用公共密鑰密碼系統(tǒng)以保護(hù)文件。這意味著同時(shí)存在著用于加密和解密的公共密鑰和私人密鑰。然而,公共密鑰加密的不是文件本身。所有的文件是用一個(gè)稱(chēng)之為FEK(文件加密密鑰)的對(duì)稱(chēng)的密鑰加密的,該FEK存儲(chǔ)在被加密文件的首部,在一個(gè)叫作文件加密字段(DDF)的字段中。然而,某些FEK并不依然開(kāi)放和暴露。它們以用戶(hù)的公共密鑰加密。當(dāng)用戶(hù)希望打開(kāi)一個(gè)文件時(shí),他們的私人密鑰被用于解密FEK,然后FEK被用于解密文件。這種辦法的優(yōu)點(diǎn)在于即使黑客可以解密FEK,他們還是只能進(jìn)入單個(gè)文件,因?yàn)榇蟛糠治募哂胁煌腇EK。
      圖3描述一個(gè)示例性的加密文件系統(tǒng)(EFS)35。在圖3中,密鑰39從一個(gè)位置,例如示例性的密鑰裝置32中獲取。進(jìn)程33可以使用密鑰39或者依次獲得的密鑰來(lái)解密位于各種存儲(chǔ)器34位置中的任意一個(gè)中的文件36。計(jì)算機(jī)30可以是通用型計(jì)算機(jī)系統(tǒng),或者如參照?qǐng)D1所描述的其它計(jì)算機(jī)裝置。
      為了文件加密,EFS35可以從一個(gè)不對(duì)稱(chēng)的密鑰中獲取一個(gè)對(duì)稱(chēng)的主密鑰。舉例來(lái)說(shuō),該對(duì)稱(chēng)的密鑰可以從一個(gè)被引入密鑰裝置31的非對(duì)稱(chēng)密鑰所得到。對(duì)稱(chēng)主密鑰的使用提供了一些優(yōu)點(diǎn)。例如,第一,這樣的對(duì)稱(chēng)密鑰可以被重用而不必請(qǐng)求對(duì)于存儲(chǔ)在密鑰裝置中的原始不對(duì)稱(chēng)密鑰對(duì)的持續(xù)訪問(wèn)。密鑰緩存節(jié)點(diǎn)可以被用于EFS的一些實(shí)施例中以將這些對(duì)稱(chēng)主密鑰存儲(chǔ)在計(jì)算機(jī)存儲(chǔ)器或者存儲(chǔ)裝置中。與密鑰裝置相關(guān)的兩種密鑰緩存節(jié)點(diǎn)是對(duì)稱(chēng)主密鑰型緩存和Pin/CardState型緩存。一旦對(duì)稱(chēng)主密鑰型緩存被建立,就不需要為該EFS激活密鑰裝置(例如,插入讀卡器的智能卡)以加密/解密文件。由系統(tǒng)參數(shù)所確定的對(duì)稱(chēng)主密鑰型緩存,即使在工作站被鎖住后依然可用,但是可以針對(duì)某一特定用戶(hù)在其注銷(xiāo)后被禁用或者停用。作為對(duì)比,Pin/CardState型緩存在卡被移除讀卡器之后就不可用。
      第二,對(duì)稱(chēng)主密鑰在加密和解密的時(shí)候比非對(duì)稱(chēng)密鑰要快得多。最后,使用了對(duì)稱(chēng)主密鑰的EFS 35的實(shí)施例的另一個(gè)示例性的優(yōu)勢(shì)在于用戶(hù)可以獲得遠(yuǎn)程訪問(wèn)EFS 35的便利。由FEK端到端(end-to-end)地進(jìn)行加密或者解密的文件,在其被從遠(yuǎn)程服務(wù)器上下載并且被客戶(hù)系統(tǒng)訪問(wèn)時(shí),會(huì)請(qǐng)求在客戶(hù)系統(tǒng)上的解密進(jìn)程。對(duì)稱(chēng)主密鑰可以從任何客戶(hù)系統(tǒng)上的計(jì)算機(jī)存儲(chǔ)器上提取或者獲取,其中在該客戶(hù)系統(tǒng)上密鑰裝置被置為可用。一旦對(duì)稱(chēng)主密鑰被提取或者被置為可用,加密或者解密的文件可以從多個(gè)遠(yuǎn)程服務(wù)器上被下載下來(lái)以發(fā)現(xiàn)解密密鑰,并不需要在客戶(hù)系統(tǒng)上進(jìn)行額外的處理。
      在某些EFS中,每個(gè)用戶(hù)的對(duì)稱(chēng)主密鑰可能不同。只有用戶(hù)自己可以獲取對(duì)稱(chēng)主密鑰。由于沒(méi)有用戶(hù)的私人密鑰,其它人將不得獲取用戶(hù)的主密鑰。對(duì)稱(chēng)主密鑰至少?gòu)目梢詮姆菍?duì)稱(chēng)密鑰中提取一次,該非對(duì)稱(chēng)主密鑰可以從密鑰裝置31中獲取。對(duì)稱(chēng)主密鑰然后可以被用于對(duì)隨機(jī)產(chǎn)生的文件加密密鑰(FEK)進(jìn)行加密。
      非對(duì)稱(chēng)密鑰對(duì)可以被存儲(chǔ)在,舉例來(lái)說(shuō),密鑰裝置31中。對(duì)稱(chēng)主密鑰然后從非對(duì)稱(chēng)密鑰對(duì)的私人密鑰中提取出來(lái)?;蛘?,對(duì)稱(chēng)主密鑰可以用非對(duì)稱(chēng)密鑰對(duì)的兩個(gè)密鑰一起來(lái)獲取。在一個(gè)實(shí)施例中,一旦對(duì)稱(chēng)主密鑰被存儲(chǔ)在存儲(chǔ)器32中,對(duì)稱(chēng)主密鑰可以在每次啟動(dòng)的基礎(chǔ)上采用會(huì)話密鑰而被加密用于通用計(jì)算機(jī)或操作系統(tǒng)。
      在不同的實(shí)施例中,密鑰裝置31可以是智能卡、硬件安全模塊、令牌、硬盤(pán)、或者其它可以被配置為安全地存儲(chǔ)非對(duì)稱(chēng)密鑰對(duì)的私人密鑰的裝置。密鑰裝置31可以被認(rèn)為是一種通用裝置,存儲(chǔ)非對(duì)稱(chēng)密鑰對(duì)的私人密鑰。這種情況下,密鑰裝置可以被構(gòu)建為計(jì)算機(jī)30的外圍裝置?;蛘?,密鑰裝置31可以集成在計(jì)算機(jī)30自身內(nèi),例如集成在處理器芯片或者其它芯片的一部分,或者是僅僅包括非對(duì)稱(chēng)密鑰對(duì)的私人密鑰、或者非對(duì)稱(chēng)密鑰對(duì)的芯片、例如一塊專(zhuān)用集成電路芯片(ASIC),它被膠合、或者固定到計(jì)算機(jī)30的主板上。這種情況下,某些時(shí)候芯片可以包含在通用計(jì)算機(jī)中,并在其主板上。如果沒(méi)有存儲(chǔ)非對(duì)稱(chēng)密鑰對(duì)的私人密鑰的硬件裝置,密鑰也可以以軟件形式存儲(chǔ),例如存儲(chǔ)在硬盤(pán)上。這樣,鍵盤(pán)裝置可以被視為非常地通用化。
      EFS 35可以使用多種不同的實(shí)施例或者算法來(lái)從非對(duì)稱(chēng)密鑰對(duì)的私人密鑰中獲取對(duì)稱(chēng)主密鑰。RSA加密算法是一種公知的且可以接受的加密算法。RSA主要被用于公開(kāi)的密鑰加密。其它的算法,例如DES(數(shù)據(jù)加密標(biāo)準(zhǔn))、三級(jí)DES,AES(高級(jí)加密標(biāo)準(zhǔn))等,被用于對(duì)使用對(duì)稱(chēng)主密鑰所加密的FEK對(duì)數(shù)據(jù)文件進(jìn)行加密和解密。
      在某些實(shí)施例中,此處預(yù)期的密鑰列表可以是對(duì)稱(chēng)主密鑰列表-即“主密鑰歷史記錄”。當(dāng)新的非對(duì)稱(chēng)密鑰被引入時(shí),先前的對(duì)稱(chēng)主密鑰被加進(jìn)列表,而新的主密鑰-從新的非對(duì)稱(chēng)密鑰中獲取的主密鑰,被用于加密列表。其它實(shí)施例可以采用其它的EFS密鑰,例如非對(duì)稱(chēng)公共/私人密鑰對(duì)和/或如此處所提供的在密鑰列表中的FEK。
      當(dāng)主密鑰被允許時(shí),由于該主密鑰是軟件對(duì)稱(chēng)密鑰,有可能安全地存儲(chǔ)這些密鑰。使用主密鑰的EFS系統(tǒng)與此處所提供的密鑰管理技術(shù)非常地匹配。相反,在很多實(shí)施例中,沒(méi)有必要提取軟件RSA密鑰(或者它們所產(chǎn)生的主密鑰),因?yàn)镽SA密鑰對(duì)會(huì)繼續(xù)地駐留在加密服務(wù)提供方(CSP)中?!爸髅荑€歷史記錄”屬性,作為本發(fā)明的實(shí)施例可被描述,可以被用于保護(hù)任何形式的密鑰,基于軟件的、基于硬件的、或者其它形式。一個(gè)這樣的密鑰是從硬件RSA私人密鑰中所提取出的主密鑰。
      主密鑰歷史記錄的獨(dú)特方面在于他可以使得基于非對(duì)稱(chēng)密鑰對(duì)的非證書(shū)(x.509,XrML,etc)也采用加密文件系統(tǒng)而使用,并且由系統(tǒng)對(duì)其存儲(chǔ)、管理和使用,而只通過(guò)基于證書(shū)的一個(gè)非對(duì)稱(chēng)密鑰對(duì)來(lái)允許訪問(wèn)。該對(duì)稱(chēng)密鑰可以使用當(dāng)前已被授予證書(shū)的公共密鑰來(lái)包裝,并且采用相應(yīng)的非對(duì)稱(chēng)私人密鑰來(lái)解密。這增加了系統(tǒng)的密鑰的可用性和總體的多樣化。
      概括來(lái)講,參照?qǐng)D3,本發(fā)明可以被用于管理與EFS 35有關(guān)的密鑰。任何EFS可以使用此處所描述的技術(shù)。一個(gè)示例性的EFS由MICROSOFT WINDOWS所使用。MICROSOFTEFS的某些版本從一個(gè)非對(duì)稱(chēng)密鑰對(duì)中提取對(duì)稱(chēng)主密鑰。該對(duì)稱(chēng)主密鑰加密一個(gè)或多個(gè)FEKs。這樣,當(dāng)密鑰如此處所述地加密或者解密文件時(shí),可以理解,這實(shí)際上就是加密和解密一個(gè)FEK,該FEK依次被用于加密或者解密一個(gè)具體的文件。本發(fā)明可以被用于管理在進(jìn)程中任何的和所有的密鑰。
      圖4示出用于獲取密鑰的示例性的系統(tǒng)和方法,例如個(gè)人識(shí)別碼(PIN),從而由一個(gè)內(nèi)部服務(wù)訪問(wèn)諸如智能卡的密鑰裝置,其中該內(nèi)部服務(wù)無(wú)法直接與用戶(hù)互連。當(dāng)請(qǐng)求密鑰的指令到達(dá)一個(gè)本地安全授權(quán)安全服務(wù)(LSASS)EFS 40時(shí),LSASSEFS 40可以產(chǎn)生一個(gè)進(jìn)程41,稱(chēng)之為新進(jìn)程42,其產(chǎn)生一個(gè)向用戶(hù)要求密鑰的用戶(hù)界面44。該密鑰可以被送回LSASS EFS以用于在必要時(shí)加密/解密。
      當(dāng)智能卡上的基于硬件的私人密鑰的主密鑰被使用時(shí),在圖4中所述的進(jìn)程確保EFS具有升級(jí)密鑰列表用的所有必要的個(gè)人識(shí)別碼(PINs)。通常,LSASS是一個(gè)不能和用戶(hù)直接交互的系統(tǒng)服務(wù)。因此,EFS 40可產(chǎn)生(41)一個(gè)分立的進(jìn)程42,該進(jìn)程收集一個(gè)或多個(gè)PINs,例如,可以通過(guò)展現(xiàn)一個(gè)用戶(hù)界面44以提示用戶(hù)輸入正確的PINs。進(jìn)程42然后以一種安全的方法將PINs發(fā)送(43)回LSA。EFS然后緩存該P(yáng)IN一段特定的時(shí)間,如43中所示。該P(yáng)IN將被用于訪問(wèn)智能卡上的私人密鑰以解密被加密的文件。
      圖4的其它實(shí)施例對(duì)于本領(lǐng)域技術(shù)人員來(lái)說(shuō)是易于理解的。例如,另一種完成圖4中所示的操作的方法是由訪問(wèn)加密文件的客戶(hù)應(yīng)用程序來(lái)詢(xún)問(wèn)EFS以確定是否有必要進(jìn)行PIN提示。如果是,則該應(yīng)用程序提示輸入PIN并將其發(fā)送給LSASS??梢圆捎媚J交奶崾?,這可以讓被提示輸入PIN的用戶(hù)更加明白。
      圖5示出由本發(fā)明的各個(gè)優(yōu)點(diǎn)所解決的問(wèn)題的實(shí)施例。當(dāng)一個(gè)密鑰,例如EFS55中的第一密鑰59B被改變時(shí),某些文件57的解密密會(huì)要求先前使用的密鑰59A,而其它文件,例如那些存儲(chǔ)在58中的文件的解密則需要第一密鑰59A。在任何情況下,新的密鑰,例如第二密鑰59C,不能被用于解密文件57和58。因此,希望有一種技術(shù),可以使用第二密鑰59C提供對(duì)文件57和58的有效且無(wú)縫的訪問(wèn),而且可使用第二密鑰59C來(lái)再加密文件57和58。
      考慮以下情況一個(gè)用戶(hù)使用存儲(chǔ)在一張智能卡的密鑰來(lái)加密位于多個(gè)服務(wù)器上的多個(gè)文件。當(dāng)用戶(hù)更改當(dāng)前的密鑰(由EFS當(dāng)前正用的密鑰)時(shí),所有的老文件依然由老的智能卡密鑰所加密,所以用戶(hù)必須或者手動(dòng)地使用諸如再加密向?qū)?yīng)用程序來(lái)執(zhí)行這一操作,或者,如果不是很專(zhuān)業(yè)的話,他可能采用拔出當(dāng)前的智能卡并且插入老卡的辦法。如果他丟失了老卡,他必須采用一種恢復(fù)應(yīng)用程序來(lái)恢復(fù)數(shù)據(jù),例如由MICROSOFTEFS所提供的恢復(fù)進(jìn)程。對(duì)于需要多張智能卡來(lái)取得EFS的密碼的用戶(hù)來(lái)說(shuō),問(wèn)題就更復(fù)雜了。
      為了緩解圖5中所示的問(wèn)題,可以采用密鑰列表、或者密鑰歷史功能來(lái)安全地存儲(chǔ)用戶(hù)過(guò)去所用過(guò)的各種解密密鑰。注意到雖然此問(wèn)題是在EFS的環(huán)境下被描述的,但本發(fā)明可在任何設(shè)置下被用于管理解密密鑰。當(dāng)使用EFS時(shí),本發(fā)明的實(shí)施例包括計(jì)算機(jī)50上設(shè)置的配置,例如通過(guò)一個(gè)注冊(cè)密鑰來(lái)使得保存解密密鑰的記錄的自動(dòng)化進(jìn)程開(kāi)啟或者關(guān)閉。該項(xiàng)策略可以在再加密鑰操作被執(zhí)行時(shí)為一個(gè)EFS用戶(hù)禁止或者使能一個(gè)保存先前加密的文件的加密列表的自動(dòng)化進(jìn)程。當(dāng)此功能由操作系統(tǒng)所提供時(shí),它可以默認(rèn)為開(kāi)啟。
      圖6示出一種如前所述的密鑰列表610。該密鑰列表可以存儲(chǔ)在加密文件,例如文件606中。在該實(shí)施例中,EFS605保存諸如在MICROSOFTEFS中的所有的對(duì)稱(chēng)主密鑰的歷史記錄,其中該主密鑰由策略所使能。在這樣的實(shí)施例中,由于主密鑰是一軟件對(duì)稱(chēng)密鑰,因此有可能安全地存儲(chǔ)列表610。除了安全地存儲(chǔ)先前的密鑰,密鑰列表610特征可以防止軟件RSA密鑰的丟失或者損壞。同時(shí)請(qǐng)注意到該特征在存儲(chǔ)加密密鑰的備份和作為恢復(fù)機(jī)制方面也提供了一些優(yōu)點(diǎn)。
      用于計(jì)算機(jī)60上的某個(gè)特定用戶(hù)的密鑰列表610可以存儲(chǔ)為用戶(hù)描述檔(userprofile)的一部分。例如,用于解密文件606的密鑰可對(duì)應(yīng)于一個(gè)特定的用戶(hù)描述檔。該密鑰列表610可以被作為一個(gè)文件,一個(gè)二進(jìn)制大目標(biāo)(BLOB)結(jié)構(gòu)而被存儲(chǔ)在注冊(cè)表中,或者存儲(chǔ)在諸如USB驅(qū)動(dòng)器或者智能卡的便攜裝置中。在MICROSOFT WINDOWS操作系統(tǒng)中,一個(gè)示例性的包括一個(gè)密鑰列表的二進(jìn)制BLOB結(jié)構(gòu)的注冊(cè)位置是HKCU\Software\Microsoft\Windows NT\CurrentVersion\EFS\CurrentKeys\MasterKeyHistory一個(gè)新的注冊(cè)表值,例如,叫做EncryptionKeyHash,可以被加在MasterKeyHistory注冊(cè)表之后。該注冊(cè)表值可包括用于加密密鑰列表610的證書(shū)的哈希(Hash)。
      圖7示出一個(gè)示例性的密鑰列表700,使用第二密鑰709來(lái)加密。第二密鑰709也可以被稱(chēng)作當(dāng)前密鑰,因?yàn)榈诙荑€709假定是當(dāng)前被EFS系統(tǒng)用于加密文件的密鑰,或者如上所述的是一種FEK。密鑰列表700包括多個(gè)先前密鑰701-704,它們?cè)诒匾獣r(shí)被用于對(duì)采用先前密鑰701-704進(jìn)行了加密的文件707和708進(jìn)行解密、加密、再加密鑰等操作。所以密鑰列表700允許通過(guò)對(duì)當(dāng)前的或者更新的密碼密鑰709的確認(rèn),從而對(duì)采用先前加密密鑰701-704進(jìn)行加密的文件707、708進(jìn)行訪問(wèn)。
      密鑰列表中的密鑰的格式可以是&lt;sizeof(keydata),keydata&gt;
      在此非常有必要指出的是,其它的數(shù)據(jù)也可以存儲(chǔ)在該密鑰列表結(jié)構(gòu)中,這僅僅是一種示例性的實(shí)現(xiàn)方式而已。
      圖7通過(guò)設(shè)置密鑰數(shù)據(jù)欄705的大小來(lái)反映這種格式,其中701a是第一密鑰的大小,702a是先前密鑰702的大小,703a是先前密鑰703的大小,而704a是先前密鑰704的大小。該大小字段,例如701a,執(zhí)行完整性檢查的功能。這種字段的使用便于保證損壞的密鑰不被用來(lái)加密文件。密鑰列表700的加密類(lèi)型可以存儲(chǔ)在用戶(hù)描述檔或者注冊(cè)表中的同一位置,例如EFS/CurrentKeys\MasterKeyHistory\EncryptiorKeyType這類(lèi)密鑰的可能值是,例如EFS_KEY_TYPE_RSAKEY(0x00000001),EFS_KEY_TYPE_MASTERKEY(0x00000002)所以,這種在EFS環(huán)境中的示例性的注冊(cè)表結(jié)構(gòu)可以是HKCU\Software\Microsoft\Windows NT\CurrentVersion\EFSCurrentKeysCertificate Hash(=Current Key)Master Key HistoryEncryption Key Type(RSA or MasterKey)Encryption Key HashHash1Encryped[sizeof(keydata1),keydata1=Ecurrentkey{oldsmart card master key1}]Hash2Encryped[sizeof(keydata2),keydata1=Ecurrentkey{old smartcard master key2}]…
      HashnEncryped[sizeof(keydatan),keydata1=Ecurrentkey{old smart cardmaster keyn}]在實(shí)施例中,此處所提供的密鑰列表700在EFS環(huán)境下使用,并且沒(méi)有當(dāng)前密鑰709,然后,當(dāng)新的當(dāng)前密鑰被設(shè)置時(shí),這個(gè)對(duì)應(yīng)于EncryptionKeyHash的密鑰作為新的入口被加入密鑰列表700中。該實(shí)施例可應(yīng)對(duì)當(dāng)前密鑰709被用戶(hù)不慎刪除的情況。
      先前密鑰701-704,例如,先前主密鑰,可以定期被當(dāng)前密鑰709加密。在此情況下,如果當(dāng)前密鑰709是基于軟件的密鑰,它們可以由一個(gè)RSA密鑰來(lái)加密,如果當(dāng)前密鑰709是一智能卡,則可以使用一種主密鑰。
      所以,一開(kāi)始的時(shí)候,第一密鑰701可以是用于諸如EFS系統(tǒng)中的文件加密的當(dāng)前密鑰,然后當(dāng)前密鑰可變?yōu)榈诙荑€709。密鑰的變動(dòng)有多種原因。可以是安全方面的原因,或者僅僅因?yàn)樵试S對(duì)第一密鑰701進(jìn)行訪問(wèn)的卡,例如一張智能卡丟失了。在一些執(zhí)行方法中,如果一張智能卡被用于加密密鑰歷史,但卻丟了,那么整個(gè)密鑰列表700就丟失了,而文件707、708只能用數(shù)據(jù)恢復(fù)程序來(lái)恢復(fù)。另一些執(zhí)行方法也可以使用數(shù)據(jù)恢復(fù)程序來(lái)加密密鑰列表700。
      該變化也可以是因?yàn)镋FS策略從使用第一密鑰701,例如一個(gè)RSA密鑰,轉(zhuǎn)變?yōu)槭褂玫诙荑€,例如一個(gè)主密鑰,反過(guò)來(lái)也可以。用于從作為當(dāng)前密鑰的第一加密密鑰701轉(zhuǎn)換為作為當(dāng)前密鑰的第二密鑰709的進(jìn)程可以如下進(jìn)行首先用第一密鑰701來(lái)解密密鑰列表然后使用第二密鑰702來(lái)再加密密鑰列表第一密鑰701,例如從智能卡中所獲取的主密鑰,被加密為第二密鑰709進(jìn)行加密,并且加入到注冊(cè)表中的列表700中。
      此外,在某些情形下,可以執(zhí)行以下步驟如果第二密鑰709是軟件密鑰,那么密鑰列表700可以有利地使用一種直接RSA方法來(lái)加密;如果第二密鑰709是智能卡密鑰,那么密鑰列表700可以有利地使用主密鑰方法來(lái)加密。
      圖8示出一種用于再加密鑰的示例性進(jìn)程,也被稱(chēng)之為再加密文件。如圖8的一個(gè)進(jìn)程可以被實(shí)現(xiàn)為,在計(jì)算資源足以提供無(wú)縫的用戶(hù)體驗(yàn)時(shí)進(jìn)行操作,而不需要冗余等待對(duì)于所有文件的再加密鑰。這是一種用于加速對(duì)所有文件再加密鑰的機(jī)制。圖8的進(jìn)程可以簡(jiǎn)化文件的再加密鑰,特別是在使用了一個(gè)或多個(gè)智能卡,并且很多文件需要更新,但不能在相同的進(jìn)程或者對(duì)話中一起完成的情況。有必要指出的是,用于訪問(wèn)先前加密文件的密鑰列表的使用并不要求對(duì)由先前密鑰加密的文件進(jìn)行再加密,僅僅是改善了管理的效率。
      所以,在圖8中,第一文件x被采用(800),并確定用于加密文件x的密鑰(801)。和文件存儲(chǔ)在一起的用于指示適當(dāng)?shù)募用苊荑€的指針可以使密鑰的確定更加便利。接下來(lái),所需的密鑰,例如第一密鑰,可以從密鑰列表802中獲取,并且被用于解密文件x(803)。然后可以使用當(dāng)前密鑰,例如第二密鑰來(lái)加密文件,如步驟804中所示。如果有足夠的計(jì)算資源來(lái)再加密鑰另一個(gè)文件,就可以再進(jìn)行確定(805)。否則進(jìn)程可能空閑(806)或者結(jié)束,直到有此類(lèi)資源可用。用這樣的方法對(duì)文件進(jìn)行再加密鑰就不需要用戶(hù)的干涉,也不需要用戶(hù)等待解密/解密進(jìn)程。還沒(méi)有被再加密的文件可以簡(jiǎn)單地通過(guò)到密鑰列表獲取適當(dāng)?shù)南惹懊荑€以進(jìn)行解密來(lái)實(shí)現(xiàn)訪問(wèn),或者由當(dāng)前密鑰來(lái)解密來(lái)實(shí)現(xiàn)訪問(wèn)。
      圖9提供了示于圖8中的進(jìn)程的實(shí)施例的更多細(xì)節(jié)。對(duì)于那些使用EFS來(lái)加密文件的發(fā)明中的實(shí)施例,圖9的描述更加具體化。如圖9中所述,EFS客戶(hù)開(kāi)始一個(gè)再加密進(jìn)程(900)。在步驟901,文件被打開(kāi)。然后判斷該文件是否是一個(gè)遠(yuǎn)程文件902。如果該文件是本地的,用于訪問(wèn)本地文件903的EFS進(jìn)程被開(kāi)始。如果文件是遠(yuǎn)程的,開(kāi)始一個(gè)適當(dāng)?shù)腅FS標(biāo)記和進(jìn)程以和文件所駐留的服務(wù)器進(jìn)行交互以下載加密文件到EFS客戶(hù)。在兩種情況下,密鑰列表都是在步驟905中被獲取。
      密鑰列表可以使用諸如一個(gè)當(dāng)前EFS主密鑰906來(lái)解密。在一個(gè)MICROSOFT型的EFS中,密鑰被用于解密DDF和獲取FEK907。一個(gè)新的DDF會(huì)被加入到文件908中。老的DDF將從文件909中移除。指示文件的適當(dāng)?shù)拿荑€的指針將被更新,其它一些為保持與特定的EFS系統(tǒng)910相一致所必需的更新也將進(jìn)行(。最后,該文件被關(guān)閉(911)。此時(shí)文件被成功地再加密(912)。對(duì)于本領(lǐng)域技術(shù)人員而言,顯而易見(jiàn)的是,本發(fā)明的一個(gè)優(yōu)點(diǎn)在于可以方便地轉(zhuǎn)移在遠(yuǎn)程服務(wù)器上的文件,而不需要在服務(wù)器上的清楚的或者請(qǐng)求性的管理干涉,或者是不需要請(qǐng)求將用于服務(wù)器上的密鑰轉(zhuǎn)移到客戶(hù)。
      圖10描述了用于改變?cè)贓FS中使用的當(dāng)前密鑰的進(jìn)程。先前使用的密鑰(第一密鑰)可以被用于解密密鑰列表1000。先前密鑰然后可以被加入到列表1001中,該列表可以用新的當(dāng)前密鑰1002來(lái)加密。雖然可能有額外的步驟,列表更新進(jìn)程可以包括這三個(gè)步驟。列表中的先前密鑰對(duì)于任何用先前密鑰所加密的文件而言可用,而唯有具有對(duì)當(dāng)前密鑰的訪問(wèn),方能訪問(wèn)先前密鑰。該進(jìn)程也同樣在圖7中有所解釋。
      參考圖7,本發(fā)明的實(shí)施例提供一個(gè)集成在EFS系統(tǒng)內(nèi)的密鑰列表。在這樣的實(shí)施例中,在步驟1001中,當(dāng)沒(méi)有當(dāng)前密鑰并且一個(gè)新的密鑰被設(shè)置時(shí),一個(gè)對(duì)應(yīng)于EncryptionKeyHash的密鑰作為一個(gè)新的密鑰被加入密鑰列表。這樣的實(shí)施例有利于對(duì)諸如密鑰被刪除的情況的處理是有利的。
      圖10的進(jìn)程可以被定期地執(zhí)行,從而將任何先前密鑰添加到密鑰列表,或者根據(jù)哪個(gè)密鑰是有用且必要的,視需要來(lái)執(zhí)行。當(dāng)?shù)谝幻荑€被EFS用于加密用戶(hù)文件或者為此用于DDF,并且第一密鑰被改變?yōu)榈诙荑€時(shí),通過(guò)諸如圖10中所示的進(jìn)程將第一密鑰存儲(chǔ)在密鑰列表中是有利的。如上所述,密鑰的改變可以有多種原因,其中非限制性地包括EFS策略從使用第一密鑰,例如RSA密鑰,轉(zhuǎn)換為使用第二密鑰,即主密鑰,反過(guò)來(lái)也可以。從第一加密密鑰701作為當(dāng)前密鑰轉(zhuǎn)換為第二密鑰709作為當(dāng)前密鑰的進(jìn)程可以如下進(jìn)行注意到,如圖7中所述,如果第二密鑰是一個(gè)軟件密鑰,則在步驟1002中使用直接RSA方法將該密鑰列表進(jìn)行加密是有利的。如果第二密鑰是智能卡密鑰,那么在步驟1002中使用主密鑰方法來(lái)加密是有利的。
      圖11示出用于一個(gè)再加密鑰向?qū)У氖纠缘膱D形化用戶(hù)界面(GUI)。這樣的向?qū)崾居脩?hù)輸入訪問(wèn)EFS中的文件所需的所有密鑰。圖11的向?qū)Э梢杂梢粋€(gè)進(jìn)程來(lái)支持,該進(jìn)程可以更新圖7中所提供的密鑰列表。通過(guò)提供向?qū)?,允許以一種并非完全自動(dòng)化的方式獲取密鑰,而且因?yàn)樗试S用戶(hù)在進(jìn)程中進(jìn)行輸入而很有用。GUI 1101被顯示在顯示表面1100上。圖11的GUI 1101的元件可以是,例如,一個(gè)用戶(hù)提示1102,指導(dǎo)用戶(hù)輸入先前使用的密鑰;一個(gè)字符輸入?yún)^(qū)域1103,用于輸入解密密鑰;一個(gè)選擇按鍵1105,用于自動(dòng)地輸入密鑰;和一個(gè)命令按鍵1104,用于指示用戶(hù)已經(jīng)完成了信息的輸入,并且密鑰信息應(yīng)該被載入一個(gè)密鑰列表,或者其它的存儲(chǔ)位置,該處所鍵入的密鑰將被自動(dòng)地用于再加密鑰和/或訪問(wèn)文件。
      圖12描述一種配置,其中經(jīng)由諸如密鑰裝置1201或者圖11的GUI的,可能不在圖7的密鑰列表上的密鑰1220-1222被引入計(jì)算機(jī)1200,并且被暫時(shí)地緩存在密鑰緩存1230中以供EFS 1205使用。當(dāng)用戶(hù)注銷(xiāo)時(shí),這樣的密鑰1220-1222可以從存儲(chǔ)器1202中擦除以避免非授權(quán)的使用。
      圖12描述了一種可能引發(fā)緩存1230的使用的典型的情景,其中一個(gè)用戶(hù)具有存儲(chǔ)在多個(gè)智能卡上的多個(gè)密鑰。出于某種原因,難以或者不可能從諸如圖7的密鑰列表的源處獲得密鑰。在這種設(shè)置下,載有密鑰1220的第一智能卡、載有密鑰1221的第二智能卡、載有密鑰1222的第三智能卡可以被插入密鑰裝置1201中,例如一個(gè)可操作地連接到計(jì)算機(jī)上的智能卡讀卡器。每當(dāng)一個(gè)載有密鑰的卡被插入時(shí),計(jì)算機(jī)將該密鑰緩存在密鑰緩存1230中。例如,密鑰1220A、1221A、以及1222A分別是密鑰1220、1221和1222的緩存版本。文件加密和解密進(jìn)程1203然后使用緩存的密鑰1220-1222來(lái)在必要時(shí)對(duì)存儲(chǔ)在任何假象位置1204中的文件1206進(jìn)行解密和/或加密。文件1206也可以被當(dāng)前密鑰所再加密以避免將來(lái)所需的緩存操作。
      簡(jiǎn)要地根據(jù)先前的附圖并參照存儲(chǔ)1204和相關(guān)的元件,例如604、54、和34,應(yīng)該指出的是,一個(gè)計(jì)算裝置通常至少包括某些形式的計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是任何可以由諸如30、50、600、和1200進(jìn)行訪問(wèn)的可用媒體。非限制性地舉例來(lái)說(shuō),計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以任何用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或者其它數(shù)據(jù)等信息的方法或技術(shù)所實(shí)現(xiàn)的易失的和非易失的、移動(dòng)的和不可移動(dòng)的介質(zhì)。非局限性地,計(jì)算機(jī)存儲(chǔ)介質(zhì)包括RAM、ROM、EEPROM、閃存、或者其它存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多用途盤(pán)片(DVD)或其它光存儲(chǔ)體、磁盒、磁帶、磁盤(pán)存儲(chǔ)體或者其它磁性存儲(chǔ)裝置、或者其它任何可用于存儲(chǔ)所需要的信息并且由諸如30、50、600和120的計(jì)算機(jī)所訪問(wèn)的介質(zhì)。通信介質(zhì)通常包含計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或者其它被調(diào)制的數(shù)據(jù)信號(hào)形式的數(shù)據(jù),例如載波或者其它的傳輸機(jī)制,還包括任何信息傳遞介質(zhì)。此處的術(shù)語(yǔ)“被調(diào)制的數(shù)據(jù)信號(hào)”表示一種信號(hào),它所具有一個(gè)或多個(gè)特征以某一種種方式設(shè)定或者被改變,從而在信號(hào)中編碼信息。非局限性地舉例而言,通信介質(zhì)包括有線介質(zhì),例如有線網(wǎng)絡(luò)或者直接網(wǎng)絡(luò)連接,還有聲波、RF、紅外和其它無(wú)線介質(zhì)。以上各種介質(zhì)的組合亦被包括在計(jì)算機(jī)可讀介質(zhì)的范圍之內(nèi)。
      應(yīng)該理解的是,此處所描述的各種技術(shù)可以用硬件或者軟件實(shí)現(xiàn),或者在適當(dāng)?shù)那闆r下可以用二者的結(jié)合來(lái)實(shí)現(xiàn)。所以,本發(fā)明的方法和裝置,或者它們的某個(gè)方面和部分,可以采取程序編碼(例如,指令)的形式,其中該程序編碼嵌入在切實(shí)的媒介中,例如軟盤(pán)、CD-ROM、硬盤(pán)驅(qū)動(dòng)器或者其它機(jī)器可讀的存儲(chǔ)介質(zhì)中,當(dāng)這些程序代碼被載入并且由一種諸如計(jì)算機(jī)的機(jī)器來(lái)執(zhí)行時(shí),該機(jī)器就成為一種用于實(shí)施本發(fā)明的裝置。在程序指令在可編程計(jì)算機(jī)上執(zhí)行的情況下,該計(jì)算裝置通常包括一個(gè)處理器、一個(gè)處理器可讀的存儲(chǔ)介質(zhì)(包括易失的和非易失的存儲(chǔ)器和/或存儲(chǔ)元件)、至少一個(gè)輸入裝置、和至少一個(gè)輸出裝置。對(duì)于一個(gè)或多個(gè)通過(guò)使用諸如數(shù)據(jù)處理API、可再控制等來(lái)執(zhí)行或者利用本發(fā)明的用戶(hù)界面技術(shù)的程序而言,其較佳地被以一種高級(jí)過(guò)程或者面向?qū)ο竦木幊陶Z(yǔ)言來(lái)執(zhí)行以和計(jì)算機(jī)系統(tǒng)進(jìn)行通信。然而,如果需要的話,這些程序也可以用匯編語(yǔ)言或者機(jī)器語(yǔ)言來(lái)實(shí)現(xiàn)。無(wú)論何種情況,該語(yǔ)言可以是匯編語(yǔ)言或者機(jī)器語(yǔ)言,并且與硬件實(shí)現(xiàn)相結(jié)合。
      盡管示例性的實(shí)施例參照的是在一個(gè)或多個(gè)孤立的計(jì)算機(jī)系統(tǒng)中利用本發(fā)明的情況,但本發(fā)明并不局限于此,它可以在任何計(jì)算環(huán)境下實(shí)現(xiàn),例如在一個(gè)網(wǎng)絡(luò)或者分布式計(jì)算機(jī)環(huán)境中。而且,本發(fā)明可以由多個(gè)處理芯片或裝置來(lái)實(shí)現(xiàn),而存儲(chǔ)裝置亦可類(lèi)似地由多個(gè)裝置所實(shí)現(xiàn)。這樣的裝置可以包括個(gè)人計(jì)算機(jī)、網(wǎng)絡(luò)服務(wù)器、手持裝置、超級(jí)計(jì)算機(jī)、或者集成在其它諸如汽車(chē)和飛機(jī)的系統(tǒng)中的計(jì)算機(jī)。所以,本發(fā)明不應(yīng)被局限于單個(gè)實(shí)施例,而應(yīng)以所附的權(quán)利要求的范圍為準(zhǔn)。
      權(quán)利要求
      1.一種管理用于文件加密和解密的多個(gè)密鑰的方法,包括使用第一密鑰來(lái)解密密鑰列表;將第一密鑰加入密鑰列表;使用第二密鑰來(lái)加密密鑰列表。
      2.如權(quán)利要求1所述的方法,還包括使用所述第一密鑰加密至少一個(gè)文件,并將指向第一密鑰的指針和至少一個(gè)文件存儲(chǔ)在一起。
      3.如權(quán)利要求1所述的方法,還包括使用所述第一密鑰解密至少一個(gè)文件,并使用所述第二密鑰加密所述至少一個(gè)文件。
      4.如權(quán)利要求1所述的方法,還包括提示用戶(hù)輸入至少一個(gè)密鑰,并將所述至少一個(gè)密鑰加入密鑰列表。
      5.如權(quán)利要求1所述的方法,其特征在于,密鑰列表和用戶(hù)描述檔存儲(chǔ)在一起。
      6.如權(quán)利要求1所述的方法,其特征在于,第二密鑰存儲(chǔ)在便攜裝置上。
      7.如權(quán)利要求1所述的方法,還包括把不可用的第三密鑰存儲(chǔ)在高速緩沖存儲(chǔ)器中的所述密鑰列表中。
      8.一種承載于計(jì)算機(jī)可讀介質(zhì)上的指令,用于管理用于文件加密和解密的多個(gè)密鑰,其包括使用第一密鑰來(lái)解密密鑰列表的指令;將第一密鑰加入密鑰列表的指令;使用第二密鑰來(lái)加密密鑰列表的指令。
      9.如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),還包括使用所述第一密鑰加密至少一個(gè)文件的指令,和將指向第一密鑰的指針和至少一個(gè)文件存儲(chǔ)在一起的指令。
      10.如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),還包括使用所述第一密鑰解密至少一個(gè)文件的指令,和使用所述第二密鑰加密所述至少一個(gè)文件的指令。
      11.如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),還包括提示用戶(hù)指出至少一個(gè)密鑰的指令,和將所述至少一個(gè)密鑰加入密鑰列表的指令。
      12.如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,密鑰列表和用戶(hù)描述檔存儲(chǔ)在一起。
      13.如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),其特征在于,第二密鑰存儲(chǔ)在便攜裝置上。
      14.如權(quán)利要求8所述的計(jì)算機(jī)可讀介質(zhì),還包括把不可用的第三密鑰存儲(chǔ)在高速緩沖存儲(chǔ)器中的所述密鑰列表中。
      15.一種包括用于管理用于文件加密和解密的多個(gè)密鑰的裝置的計(jì)算機(jī),所述裝置包括使用第一密鑰來(lái)解密密鑰列表的裝置;將第一密鑰加入密鑰列表的裝置;使用第二密鑰來(lái)加密密鑰列表的裝置。
      16.如權(quán)利要求15所述的計(jì)算機(jī),還包括使用所述第一密鑰加密至少一個(gè)文件的裝置,和將指向第一密鑰的指針和至少一個(gè)文件存儲(chǔ)在一起的裝置。
      17.如權(quán)利要求15所述的計(jì)算機(jī),還包括使用所述第一密鑰解密至少一個(gè)文件的裝置,和使用所述第二密鑰加密所述至少一個(gè)文件的裝置。
      18.如權(quán)利要求15所述的計(jì)算機(jī),還包括提示用戶(hù)輸入至少一個(gè)密鑰的裝置,和將所述至少一個(gè)密鑰加入密鑰列表的裝置。
      19.如權(quán)利要求15所述的計(jì)算機(jī),其特征在于,第二密鑰存儲(chǔ)在移動(dòng)裝置上。
      20.如權(quán)利要求15所述的計(jì)算機(jī),還包括把不可用的第三密鑰存儲(chǔ)在緩存存儲(chǔ)器中的所述密鑰列表中的裝置。
      全文摘要
      用于管理用于文件加密和解密的系統(tǒng)和方法可提供一個(gè)已加密的先前使用的密鑰的列表。該列表自身由一個(gè)當(dāng)前密鑰所加密。為了對(duì)于被一個(gè)或多個(gè)先前密鑰所加密的文件進(jìn)行解密,列表可以被解密,從而獲取適當(dāng)?shù)南惹懊荑€。為了再加密文件,一個(gè)自動(dòng)化進(jìn)程可以使用先前密鑰來(lái)解密任何文件,并且使用當(dāng)前密鑰來(lái)加密它們。如果新的當(dāng)前密鑰被引入,先前的當(dāng)前密鑰能夠被用來(lái)加密該密鑰列表,先前當(dāng)前密鑰可以被加入列表,然后使用新的當(dāng)前密鑰來(lái)再加密該清單。
      文檔編號(hào)G06F21/22GK1818920SQ20061000462
      公開(kāi)日2006年8月16日 申請(qǐng)日期2006年1月26日 優(yōu)先權(quán)日2005年2月7日
      發(fā)明者D·B·克羅斯, D·G·布瑞斯, 顧建榮, K·S·尤, M·I·伊納-皮耶特龍薩努 申請(qǐng)人:微軟公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1