專利名稱:數(shù)據(jù)保護(hù)程序及數(shù)據(jù)保護(hù)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于保護(hù)數(shù)據(jù)的數(shù)據(jù)保護(hù)程序及數(shù)據(jù)保護(hù)方法,尤其涉及用于限制對被保護(hù)資源的訪問的數(shù)據(jù)保護(hù)程序及數(shù)據(jù)保護(hù)方法。
背景技術(shù):
計算機(jī)系統(tǒng)有時要在若干個用戶之間共享。當(dāng)一個計算機(jī)系統(tǒng)在若干用戶間共享時,就有必要限制用戶所能使用的資源,以保護(hù)某些用戶的數(shù)據(jù)免受疏忽錯誤及其他用戶未授權(quán)行為的損害。
常規(guī)的計算機(jī)系統(tǒng)從一個用戶處接收包含了用戶名和口令的驗證信息,根據(jù)接收到的驗證信息驗證用戶,并允許通過驗證的用戶訪問受限資源,這些資源是事先已經(jīng)授權(quán)用戶訪問的。這樣,用戶就可以選擇訪問計算機(jī)系統(tǒng)所提供的資源。雖然上述的驗證過程基本上是在一個用戶接一個用戶的基礎(chǔ)上進(jìn)行的,但也可以在一組用戶的基礎(chǔ)上執(zhí)行相同的驗證過程,以便為各個這樣的組提供有選擇的訪問及信息共享。
迄今為止,對于選擇性訪問的所有驗證操作都必須依照自上而下的過程由系統(tǒng)管理員排序和計劃。然而,上述自上而下的選擇性訪問實現(xiàn)方法的不利之處在于,它在系統(tǒng)工作計劃的初始階段需要消耗大量時間和勞力,這是因為系統(tǒng)管理員必須預(yù)先計劃要在用戶中共享的信息內(nèi)容,而且各個用戶不能根據(jù)自己的意愿進(jìn)行更精細(xì)的訪問限制設(shè)置。
考慮到上述的缺點,已經(jīng)建議允許系統(tǒng)用戶根據(jù)自下而上的方法進(jìn)行更確定的文檔保護(hù)處理。根據(jù)某項提議,用戶借助一種文件加密應(yīng)用對存儲在存儲設(shè)備上的文件進(jìn)行加密,以避免文件被未經(jīng)授權(quán)的第三方使用。
根據(jù)一種通用的文件加密方法,用戶利用諸如文檔生成應(yīng)用—如字處理程序—這樣的應(yīng)用所準(zhǔn)備的一個文檔文件被直接存儲在一個存儲設(shè)備中,存儲在存儲設(shè)備中的該文檔之后再被加密。
當(dāng)利用這樣一種應(yīng)用生成的文檔文件被直接存儲在存儲設(shè)備中時,這些文檔文件在存儲設(shè)備中暫時不受保護(hù)。為了減輕所存儲文檔文件的這種不受保護(hù)的狀態(tài),已考慮使用一個進(jìn)程來監(jiān)視對用戶所使用計算機(jī)系統(tǒng)中的存儲設(shè)備的存取,并自動在文檔文件被存儲到存儲設(shè)備時或是之后立即對其進(jìn)行加密。
根據(jù)上述方法,如果文檔文件的一個存儲目的地(比如一個目錄)要被加密,那么文檔文件也會用與存儲目的地相關(guān)的加密密鑰被加密,而用戶卻并未意識到文檔的加密。當(dāng)被加密的文檔文件從存儲目的地被讀出時會被解密。只有當(dāng)用來監(jiān)視對存儲目的地的存取的機(jī)制工作時,文檔文件才會被加密和解密。通過僅在某個特定的應(yīng)用處在激活狀態(tài)時運行存取監(jiān)視機(jī)制,保護(hù)經(jīng)過加密的文檔文件免受未經(jīng)授權(quán)的使用。
然而,如果存取監(jiān)視機(jī)制自動加密和解密文檔文件,那么惡意的第三方就可能在存取監(jiān)視機(jī)制工作期間讀取加密的文檔文件。特別是,當(dāng)一個激活了存取監(jiān)視機(jī)制的應(yīng)用A在訪問存儲目的地時,應(yīng)用B也可以訪問該存儲目的地并讀取一個解密的文檔文件。
即使應(yīng)用A采取行動限制用戶的訪問,只要存取監(jiān)視機(jī)制已在應(yīng)用A的控制下被激活,那么就可以通過來自于應(yīng)用B的復(fù)制請求等,從存儲目的地讀取一個經(jīng)過加密的文檔文件。這時,被應(yīng)用B讀取的文檔文件也會被存取監(jiān)視機(jī)制解密。因此就出現(xiàn)了這樣一個問題第三方可以從存儲目的地中取出解密信息。
這就使得欺詐行為成為可能,比如一個擁有訪問權(quán)的用戶通過應(yīng)用A激活存取監(jiān)視機(jī)制,再利用另一個應(yīng)用B讀取一個文檔文件。舉例來說,即使應(yīng)用A受到限制僅允許對數(shù)據(jù)進(jìn)行登記,一個被允許使用應(yīng)用A的用戶也很容易利用應(yīng)用B通過這樣的欺詐操作來讀取數(shù)據(jù)。
發(fā)明內(nèi)容
本發(fā)明的一個目標(biāo)是要提供一種數(shù)據(jù)保護(hù)程序及數(shù)據(jù)保護(hù)方法,用來有效地防止對受保護(hù)資源的未授權(quán)訪問,即使在所述資源正受到經(jīng)授權(quán)的訪問時也要提供這種保護(hù)。
為了實現(xiàn)上述目標(biāo),提供了一種數(shù)據(jù)保護(hù)程序用于保護(hù)存儲在受保護(hù)資源中的數(shù)據(jù)。該數(shù)據(jù)保護(hù)程序允許一臺計算機(jī)執(zhí)行一個處理序列,包括在一張訪問許可管理表中登記關(guān)于能夠訪問受保護(hù)資源的程序的識別信息;如果接收到一個對受保護(hù)資源的訪問請求,就獲取關(guān)于輸出該訪問請求的請求來源程序的識別信息;根據(jù)關(guān)于該請求來源程序的識別信息是否已經(jīng)被登記在訪問許可管理表中,來決定是否允許對受保護(hù)資源進(jìn)行訪問;以及如果對受保護(hù)資源的訪問被許可,就響應(yīng)于訪問請求處理受保護(hù)資源中的數(shù)據(jù)。
為了實現(xiàn)上述目標(biāo),還提供了一種用于保護(hù)存儲在受保護(hù)資源中的數(shù)據(jù)的方法,該方法包括在一張訪問許可管理表中登記關(guān)于能夠訪問受保護(hù)資源的程序的識別信息;如果接收到一個對受保護(hù)資源的訪問請求,就獲取關(guān)于輸出該訪問請求的請求來源程序的識別信息;根據(jù)關(guān)于該請求來源程序的識別信息是否已經(jīng)被登記在訪問許可管理表中,來決定是否允許對受保護(hù)資源進(jìn)行訪問;以及如果對受保護(hù)資源的訪問被許可,就響應(yīng)于訪問請求處理受保護(hù)資源中的數(shù)據(jù)。
本發(fā)明的以上及其他的目標(biāo)、特性和優(yōu)點將通過下面結(jié)合附圖的說明變得明顯,各附圖以舉例形式示出了本發(fā)明的優(yōu)選實施例。
圖1示出了體現(xiàn)本發(fā)明原理的方框圖;圖2示出了本發(fā)明一個實施例中所使用的計算機(jī)硬件配置的方框圖;圖3示出了用來提供文件保護(hù)功能的一種配置的方框圖;
圖4示出了訪問許可管理表的數(shù)據(jù)結(jié)構(gòu);圖5示出了保護(hù)資源管理表的數(shù)據(jù)結(jié)構(gòu);圖6示意性地示出了當(dāng)一個客戶標(biāo)識符已被登記時所執(zhí)行的訪問過程;圖7示意性地示出了當(dāng)一個客戶標(biāo)識符未被登記時所執(zhí)行的訪問過程;圖8示出了本發(fā)明實施例的總工作流程的流程圖;圖9示出了一張原理圖,表示登記一個待監(jiān)視的文件夾的過程;圖10示出了登記一個待監(jiān)視文件夾過程的處理序列的流程圖;圖11示出了一張原理圖,表示登記一個應(yīng)用的過程;圖12示出了登記一個應(yīng)用過程的處理序列的流程圖;圖13示出了一張原理圖,表示訪問一個文件的過程;圖14示出了訪問文件過程的處理序列的流程圖;圖15示出了一張原理圖,表示取消應(yīng)用登記的過程;圖16示出了取消應(yīng)用登記過程的處理序列的流程圖;圖17示意性地示出了利用一個特定的硬件/環(huán)境值來保護(hù)文件的訪問過程;以及圖18示出了一張流程圖,表示利用啟動器應(yīng)用的文件保護(hù)過程的總工作流程。
具體實施例方式
下面,將參照附圖來說明本發(fā)明的一個典型實施例。
首先將說明本發(fā)明應(yīng)用于該實施例的概況,接著再給出該實施例的具體細(xì)節(jié)。
圖1以框圖形式示出了本發(fā)明的原理。如圖1中所示,依照本發(fā)明的一個數(shù)據(jù)保護(hù)程序是要用來監(jiān)視對受保護(hù)資源1的訪問,并保護(hù)存儲在資源1中的數(shù)據(jù)1a,該程序允許計算機(jī)執(zhí)行下面所要描述的一個過程。在圖1所示的例子中,假定數(shù)據(jù)1a以加密形式存儲在資源1中,以保護(hù)自己不受未經(jīng)授權(quán)的訪問。
首先,關(guān)于能夠訪問資源1的一個程序的識別信息2a被登記在一張訪問許可管理表3中(步驟S1)。在圖1所示的例子中,“程序A”被登記為關(guān)于能訪問資源1的一個程序的識別信息2a。關(guān)于一個程序的識別信息可以是該程序的程序名、執(zhí)行該程序的進(jìn)程的進(jìn)程名、該進(jìn)程的標(biāo)識符(進(jìn)程ID)、該進(jìn)程的激活時間,等等。
當(dāng)?shù)怯涀R別信息2a時,一個密鑰2b與識別信息2a一起被登記到訪問許可管理表3中。密鑰2b可以是一個值,該值是由請求來源程序2被激活時用戶所輸入的口令唯一確定的。因此就保證了不會產(chǎn)生同樣的密鑰,除非輸入了相同的口令。
此后,當(dāng)接收到一個要訪問資源1的訪問請求2c時,就獲取關(guān)于輸出訪問請求2c的請求來源程序2的識別信息4(步驟S2)。
對資源1的訪問請求2c可以通過監(jiān)視對資源1的訪問而檢測到。例如,監(jiān)測一個資源的名稱(一個驅(qū)動器名、一個文件夾名、一個設(shè)備名,等等),該資源是訪問請求中的一個訪問目的地,接著對監(jiān)測到的名稱與資源1的名稱之間的對應(yīng)關(guān)系進(jìn)行核對。
然后,根據(jù)有關(guān)請求來源程序2的識別信息4是否已經(jīng)被登記在訪問許可管理表3中,來決定是否準(zhǔn)許對資源1的訪問(步驟S3)。在圖1所示的例子中,由于請求來源程序2的識別信息2a已經(jīng)預(yù)先登記過,因此對資源1的訪問就被準(zhǔn)許了。如果訪問請求是由其識別信息還未被登記在訪問許可管理表3中的程序發(fā)出的,那么它的訪問請求就會被拒絕。
如果對資源1的訪問被準(zhǔn)許了,那么就會響應(yīng)于訪問請求2c對資源1中的數(shù)據(jù)1a進(jìn)行處理(步驟S4)。舉例來說,如果訪問請求2c是請求寫入由請求來源程序2生成的數(shù)據(jù)1b,那么就從訪問許可管理表3中取出與識別信息4相關(guān)的密鑰5,并用密鑰5對數(shù)據(jù)1b加密。接著再將加密數(shù)據(jù)1a存儲到資源1中。如果訪問請求2c是請求讀取數(shù)據(jù)1a,那么就從訪問許可管理表3中取出與識別信息4相關(guān)的密鑰5,并用密鑰5對加密數(shù)據(jù)1a進(jìn)行解密。接著再將解密數(shù)據(jù)1b傳送給請求來源程序2。
在依照上述的數(shù)據(jù)保護(hù)程序在計算機(jī)上執(zhí)行這樣的處理期間,僅當(dāng)發(fā)出訪問請求2c的請求來源程序2的識別信息4預(yù)先被登記在訪問許可管理表3中時,才允許訪問,并且根據(jù)訪問請求2c來訪問資源1中的數(shù)據(jù)。
另外,當(dāng)識別信息被登記在訪問許可管理表3中時,一個用來加密和解密數(shù)據(jù)的密鑰也連同識別信息一起被登記到訪問許可管理表3中。因此,即使未經(jīng)授權(quán)的第三方為了操縱目的而將關(guān)于它自己程序的識別信息登記到訪問許可管理表3中,資源1中的數(shù)據(jù)1a也不能被解密,除非密鑰的一致性被確認(rèn)。這樣,資源1中數(shù)據(jù)1a的安全性就得到了保證。
能被登記到訪問許可管理表3中的密鑰可以包括作為參數(shù)而來自被允許存取訪問許可管理表3的程序的輸入、預(yù)定用戶組的組密鑰、以及對于運行文件保護(hù)系統(tǒng)的本地機(jī)獨一無二的、被包含在一個密鑰生成邏輯中的值(硬盤ID,硬標(biāo)記ID,等等)。
一臺安裝了上述數(shù)據(jù)保護(hù)程序的計算機(jī)的系統(tǒng)管理員給予被允許訪問保護(hù)數(shù)據(jù)的用戶一種權(quán)限,讓他能夠使用被準(zhǔn)許訪問資源1的程序??梢岳绨凑找韵逻^程給予用戶使用程序的權(quán)限為了給予用戶使用程序的權(quán)限,關(guān)于受保護(hù)資源的信息以及關(guān)于被允許訪問該資源的應(yīng)用的信息被彼此關(guān)聯(lián)在一起,并登記在一個表文件或是類似文件中。關(guān)于擁有使用應(yīng)用程序權(quán)限的用戶的信息被作為各個應(yīng)用程序的驗證信息登記在該表文件或類似文件中。
通過給予用戶使用程序的權(quán)限,用戶就被允許訪問一個受保護(hù)的資源,該資源可通過這些進(jìn)行訪問,用戶可利用這些程序輸入和輸出數(shù)據(jù)。舉例來說,當(dāng)依照本發(fā)明的一臺計算機(jī)系統(tǒng)接收到來自一個用戶的啟動一個應(yīng)用程序的指令時,該計算機(jī)系統(tǒng)就會查看一個表文件,該文件中含有關(guān)于受保護(hù)資源的登記信息、關(guān)于應(yīng)用程序的登記信息,以及登記的驗證信息,該計算機(jī)系統(tǒng)再根據(jù)表文件中的登記信息確認(rèn)該用戶是否為該應(yīng)用程序的合法用戶以及該應(yīng)用程序是否能夠訪問該資源。如果能夠訪問該資源的應(yīng)用被合法用戶激活,那么計算機(jī)系統(tǒng)就生成一個密鑰并將該密鑰登記在訪問許可管理表3中。這樣,每個用戶就只能訪問該用戶被授權(quán)使用的資源。
由某個應(yīng)用存儲在資源1中的一個文件或是其他數(shù)據(jù)被該利用應(yīng)用生成的一個密鑰加密。因此,嘗試從一個非正當(dāng)啟動的應(yīng)用去訪問存儲在資源1中的文件是不能解密該文件的。從而就可以防止和監(jiān)視根據(jù)未被允許訪問資源1的程序的操作來對信息的未授權(quán)處理及泄漏。換句話說,一個被準(zhǔn)許訪問文件信息的合法用戶,會被禁止通過經(jīng)由系統(tǒng)管理員所不認(rèn)可的程序的未授權(quán)操作來越權(quán)控制資源1。
下面將對本發(fā)明的典型實施例進(jìn)行具體說明。
圖2以框圖形式示出了計算機(jī)100的硬件配置,該計算機(jī)被用于本發(fā)明的實施例中。計算機(jī)100整體由一個CPU(中央處理單元)101控制。CPU101通過總線107與RAM(隨機(jī)存取存儲器)102、存儲設(shè)備103、圖形處理器104、輸入接口105以及通信接口106相連。
RAM102臨時存儲由CPU101執(zhí)行的OS(操作系統(tǒng))程序和應(yīng)用程序的至少一部分。RAM102還存儲各種需要由CPU101進(jìn)行處理的數(shù)據(jù)。存儲設(shè)備103可能包括例如一個硬盤驅(qū)動器(HDD),它存儲OS、各種驅(qū)動程序和應(yīng)用程序。
一臺顯示器11被連接到圖形處理器104上。圖形處理器104根據(jù)來自CPU101的指令在顯示器11的屏幕上顯示圖像。鍵盤12和鼠標(biāo)13連接在輸入接口105上。輸入接口105通過總線107將從鍵盤12和鼠標(biāo)13上輸入的信號傳送給CPU101。
通信接口106連接到網(wǎng)絡(luò)10上。通信接口106通過網(wǎng)絡(luò)10向其它計算機(jī)傳送數(shù)據(jù)并從其它計算機(jī)接收數(shù)據(jù)。
以上硬件配置能夠?qū)崿F(xiàn)根據(jù)本發(fā)明實施例的功能。為了實現(xiàn)根據(jù)本發(fā)明實施例的處理功能,要在計算機(jī)100中安裝一個驅(qū)動程序。當(dāng)計算機(jī)100執(zhí)行該驅(qū)動程序時實現(xiàn)的處理功能下面將被稱為“驅(qū)動器”,而當(dāng)計算機(jī)100執(zhí)行應(yīng)用程序時實現(xiàn)的功能稱為“應(yīng)用”。
下面將說明為了實現(xiàn)根據(jù)本發(fā)明實施例的文件保護(hù)功能而在計算機(jī)100上構(gòu)造的處理功能。
圖3以框圖形式示出了一種用來實現(xiàn)文件保護(hù)功能的配置。如圖3所示,計算機(jī)100包含了一張訪問許可管理表210、一張保護(hù)資源管理表220、一個應(yīng)用230和一個驅(qū)動器240。根據(jù)本發(fā)明的實施例,假設(shè)被保護(hù)資源可以在文件夾(目錄)基礎(chǔ)上指定。因此,由與存儲設(shè)備103相關(guān)的文件系統(tǒng)定義的若干個文件夾111至114中,任何需要的文件夾都可以被指定為受保護(hù)資源。文件夾111中包含多個文件111a、111b……。其他文件夾112至114也包含若干個文件。在圖3所示的例子中,文件夾111的識別信息為“文件夾a(folder a)”,文件夾112的識別信息為“文件夾b(folder b)”,文件夾113的識別信息為”文件夾c(folder c)”,而文件夾114的識別信息為“文件夾d(folder d)”。
訪問許可管理表210中包含登記信息,該信息被用作判定一個應(yīng)用是否被準(zhǔn)許訪問存儲設(shè)備103的準(zhǔn)則。更具體地說,該登記信息包含了應(yīng)用的識別信息、加密密鑰以及用來準(zhǔn)許應(yīng)用訪問存儲設(shè)備103的資源。
保護(hù)資源管理表220中包含了關(guān)于受保護(hù)資源的識別信息。例如,該識別信息可以是作為受保護(hù)資源的文件夾的名稱。
應(yīng)用230具有根據(jù)用戶請求提供服務(wù)的功能。例如,應(yīng)用230可以是包括字處理程序、電子表程序等等在內(nèi)的多種程序中的任何一種。應(yīng)用230響應(yīng)于用戶的控制輸入生成一個文件。為了將一個生成的文件存儲到存儲設(shè)備103中,應(yīng)用230輸出一個訪問請求,以向存儲設(shè)備103寫入生成的文件。要查看存儲在存儲設(shè)備103中的文件,應(yīng)用230輸出一個訪問請求,以讀取所要查看的文件。
為了保護(hù)應(yīng)用230所生成的文件,應(yīng)用230接收用戶輸入的一個口令并進(jìn)行用戶驗證。應(yīng)用230生成一個根據(jù)所輸入的口令唯一確定的密鑰,并通過驅(qū)動器240在訪問許可管理表210中設(shè)置應(yīng)用230的識別信息、密鑰,以及要訪問的文件夾的識別信息。
當(dāng)應(yīng)用230輸出一個寫文件的訪問請求時,驅(qū)動器240就將文件存儲到存儲設(shè)備103中。如果作為文件存儲目的地的文件夾被指定為受保護(hù)資源,并且應(yīng)用230對該文件夾的訪問是被許可的,那么驅(qū)動器240就會加密要存到該文件夾中的文件。
當(dāng)應(yīng)用230輸出一個讀文件的訪問請求時,驅(qū)動器240就從存儲設(shè)備103獲取該文件并將其傳送給應(yīng)用230。如果存儲該文件的文件夾被指定為受保護(hù)資源,并且應(yīng)用230對作為存儲目的地的該文件夾的訪問是被許可的,那么驅(qū)動器240就會解密所獲取的文件。
為了向作為受保護(hù)資源的文件夾中寫入文件以及從其中取出文件,驅(qū)動器240具有一個數(shù)據(jù)表設(shè)置單元241、加密/解密判定單元242、訪問許可/禁止判定單元243、以及加密/解密處理器244。
數(shù)據(jù)表設(shè)置單元241響應(yīng)應(yīng)用230的請求,如文件夾監(jiān)視請求,將數(shù)據(jù)登記到訪問許可管理表210和保護(hù)資源管理表220中或是從其中刪除數(shù)據(jù)。
加密/解密判定單元242響應(yīng)應(yīng)用230的文件訪問請求(文件存儲請求或是文件查看請求),決定文件是否需要被加密或是解密。更具體地說,加密/解密判定單元242要判定文件訪問請求中的訪問目標(biāo)(文件存儲目的地中的文件夾或是存有待查看文件的文件夾)是否已經(jīng)在保護(hù)資源管理表220中被指定為受保護(hù)資源。如果訪問目標(biāo)是一個受保護(hù)資源,那么加密/解密判定單元242就判定該文件需要被加密或解密。
如果加密/解密判定單元242判定一個文件需要被加密或解密,那么訪問許可/禁止判定單元243就要獲取關(guān)于發(fā)出了該文件訪問請求的應(yīng)用230的識別信息。該識別信息可以是例如執(zhí)行應(yīng)用230的進(jìn)程的標(biāo)識符(進(jìn)程ID)。然后,訪問許可/禁止判定單元243決定對于受保護(hù)資源的文件訪問請求是否被準(zhǔn)許。更具體地說,如果匹配關(guān)于應(yīng)用的識別信息與訪問目標(biāo)的文件夾結(jié)合的信息已經(jīng)被登記在訪問許可管理表210中,那么訪問許可/禁止判定單元243就會允許對文件進(jìn)行訪問。
如果訪問許可/禁止判定單元243準(zhǔn)許了對于受保護(hù)資源的文件訪問請求,加密/解密處理器244就會對文件訪問請求所指定的文件進(jìn)行加密或解密。更具體地說,如果文件訪問請求是一個文件存儲請求,那么加密/解密處理器244就對文件訪問請求所指定的文件進(jìn)行加密,并將加密文件保存在受保護(hù)的指定文件夾中。如果文件訪問請求是一個文件查看請求,那么加密/解密處理器244就從受保護(hù)的文件夾中取出指定的文件,并解密該文件。
下面將說明保存在訪問許可管理表210及保護(hù)資源管理表220中數(shù)據(jù)的具體細(xì)節(jié)。
圖4示出了訪問許可管理表210的一種數(shù)據(jù)結(jié)構(gòu)的例子。訪問許可管理表210有一列客戶標(biāo)識符、一列加密密鑰和一列允許訪問的資源。列與列之間按行并排放置的信息項彼此之間相關(guān)聯(lián)。
客戶標(biāo)識符列包含處理功能的識別信息(客戶標(biāo)識符),處理功能比如作為一個客戶被執(zhí)行的應(yīng)用230??蛻魳?biāo)識符可以是例如進(jìn)程ID或是執(zhí)行文件名。在本實施例中,作為客戶工作的各進(jìn)程的ID被設(shè)置在客戶標(biāo)識符列中。
加密密鑰列包含預(yù)定數(shù)據(jù)長度的密鑰。每個密鑰代表了由一個口令唯一生成的信息,該口令是在允許使用應(yīng)用230時由用戶輸入的。因此,一個密鑰實質(zhì)上是僅由一個口令生成的。
允許訪問的資源列包含關(guān)于被允許訪問的資源的識別信息,該信息與客戶標(biāo)識符及密鑰相關(guān)聯(lián)。在圖4所示的例子中,允許訪問的資源被設(shè)為文件夾名。放置在該列中的文件夾名包含了文件系統(tǒng)中到該文件夾的路徑。
在圖4所示的例子中,客戶標(biāo)識符“客戶A”與加密密鑰“密鑰α”及被允許訪問的資源“文件夾a”相關(guān)聯(lián)。
圖5示出了保護(hù)資源管理表220的一種數(shù)據(jù)結(jié)構(gòu)的例子。保護(hù)資源管理表220含有一列保護(hù)資源信息。該列保護(hù)資源信息包含受保護(hù)資源的識別信息。在本實施例中,受保護(hù)資源被設(shè)為文件夾名。設(shè)置在該列中的文件夾名包含了文件系統(tǒng)中到該文件夾的路徑。在圖5所示的例子中,識別信息被表示為“文件夾a”的文件夾111以及識別信息被表示為“文件夾b”的文件夾112都被設(shè)置為受保護(hù)資源。
在對登記于保護(hù)資源管理表220中保護(hù)資源(如文件夾)的訪問請求中,只有來自于客戶標(biāo)識符已被設(shè)置在訪問許可管理表210中的那些客戶的處理請求才會被執(zhí)行。下面將說明當(dāng)客戶標(biāo)識符已被登記在訪問許可管理表210時和當(dāng)客戶標(biāo)識符未被登記在訪問許可管理表210時所執(zhí)行的不同處理過程。
圖6示意性地示出了當(dāng)一個客戶標(biāo)識符已被登記時所執(zhí)行的訪問過程。當(dāng)用戶啟動應(yīng)用230并輸入一個正確的口令作為用戶驗證信息時,應(yīng)用230就會在步驟S11中通過驅(qū)動器240在訪問許可管理表210中登記一個客戶標(biāo)識符(進(jìn)程ID)、一個密鑰和一個資源名(文件夾名)。
例如,假定關(guān)于受保護(hù)資源的信息以及關(guān)于被允許訪問那些受保護(hù)資源的應(yīng)用的信息已經(jīng)被相互關(guān)聯(lián)起來并登記在一個表文件中,還假定被授權(quán)使用各個應(yīng)用程序的用戶的信息(包括口令和用戶標(biāo)識符)已被作為驗證信息登記在該表文件中。當(dāng)用戶輸入一個口令,就會根據(jù)該用戶口令是否已被登記在驗證信息的表文件中來對用戶進(jìn)行驗證。如果用戶被判定為合法用戶,接著就會根據(jù)表文件來確定用戶被授權(quán)使用的應(yīng)用程序所能訪問的受保護(hù)資源,該表文件中包含了關(guān)于受保護(hù)資源的信息以及關(guān)于應(yīng)用程序的信息,它們彼此相關(guān)聯(lián)。執(zhí)行應(yīng)用程序的進(jìn)程的客戶標(biāo)識符(進(jìn)程ID)和取決于口令的密鑰與受保護(hù)資源的資源名(文件夾名)相關(guān)聯(lián),并被登記在訪問許可管理表210中。
隨后,應(yīng)用230在步驟S12中輸出對文件夾111中的文件111a的訪問請求。該訪問請求可以是請求生成文件111a,請求查看文件111a,請求更新文件111a,以及請求刪除文件111a。從應(yīng)用230發(fā)出的訪問請求被傳送給驅(qū)動器240。
驅(qū)動器240響應(yīng)于應(yīng)用230所發(fā)出的訪問請求,獲取應(yīng)用230的進(jìn)程ID。驅(qū)動器240查看訪問許可管理表210,并從中檢索對應(yīng)于所獲取的進(jìn)程ID的客戶標(biāo)識符。然后在步驟S13中驅(qū)動器240獲取一個對應(yīng)于檢索出的客戶標(biāo)識符的密鑰α。
驅(qū)動器240在步驟S15中處理訪問請求所指定的文件111a,同時用獲取的密鑰α加密或解密文件111a。舉例來說,如果訪問請求是一個生成并保存文件111a的請求,那么驅(qū)動器240就用密鑰α加密由應(yīng)用230傳送來的數(shù)據(jù),再將加密數(shù)據(jù)作為文件111a保存在文件夾111中。
如果訪問請求是請求查看已經(jīng)存儲在文件夾111中的文件111a,那么驅(qū)動器240就用密鑰α將文件111a解密為明文數(shù)據(jù),再將這些明文數(shù)據(jù)傳送給應(yīng)用230。
圖7示出了當(dāng)一個客戶標(biāo)識符未被登記時所執(zhí)行的訪問過程。舉例來說,假設(shè)這樣一種情況,在步驟S21中,應(yīng)用231發(fā)出對文件夾111中文件111a的訪問請求,而它的客戶標(biāo)識符卻并未登記在訪問許可管理表210中。由于應(yīng)用231的客戶標(biāo)識符并未登記在訪問許可管理表210中,因此在步驟S22中,驅(qū)動器240拒絕響應(yīng)于訪問請求對文件111a進(jìn)行處理。
如上所述,由于應(yīng)用230的客戶標(biāo)識符(進(jìn)程ID)以及相應(yīng)的密鑰被事先登記,基于所登記的客戶標(biāo)識符及密鑰而指定的文件夾111中文件111a就被保護(hù)起來免受其它應(yīng)用231的訪問。
下面將說明指定一個受保護(hù)資源以及處理保護(hù)狀態(tài)下的文件的過程細(xì)節(jié)。
圖8是本發(fā)明實施例整個工作流程的流程圖。當(dāng)一種處理功能如登記一個客戶標(biāo)識符的功能可以被包含在應(yīng)用230中時,就能應(yīng)用圖8中所示的工作流程。為了將一種處理功能封裝到應(yīng)用230中,需要準(zhǔn)備必要的處理功能作為庫(用于多種軟件的通用功能及程序),而且要設(shè)定該庫在應(yīng)用230工作時被執(zhí)行。下面將按照連續(xù)步驟標(biāo)號說明圖8中所示的處理過程。
當(dāng)用戶輸入一個口令并使用一個控制輸入啟動應(yīng)用230時,應(yīng)用230通過驅(qū)動器240登記待監(jiān)視的文件夾并啟動一個文件夾監(jiān)視機(jī)制。具體地說,被設(shè)置為受保護(hù)資源的文件夾有關(guān)的識別信息由應(yīng)用230登記到保護(hù)資源管理表中。被設(shè)置為受保護(hù)設(shè)備的文件夾可以是用戶指定的所需文件夾或用于應(yīng)用230的規(guī)定文件夾。這個登記過程僅在一個文件夾最初被指定為受監(jiān)視對象時才執(zhí)行一次。響應(yīng)于該登記過程,驅(qū)動器240執(zhí)行一個登記待監(jiān)視文件夾的過程。
更具體地說,假定關(guān)于受保護(hù)資源的信息以及關(guān)于被允許訪問那些受保護(hù)資源的應(yīng)用程序的信息都已經(jīng)被彼此關(guān)聯(lián)并登記在一個表文件中,還假定被授權(quán)使用各個應(yīng)用程序的用戶的信息(包括口令和用戶標(biāo)識符)都已經(jīng)被作為驗證信息登記在表文件中。當(dāng)用戶輸入一個口令并使用一個控制輸入來啟動應(yīng)用230,就會根據(jù)該用戶口令是否已被登記在驗證信息表文件中來驗證用戶。如果該用戶被用戶驗證確認(rèn)為合法用戶,那么就會根據(jù)表文件來決定該用戶被授權(quán)使用的應(yīng)用程序所能訪問的受保護(hù)資源,所述的表文件中含有關(guān)于受保護(hù)資源的信息以及關(guān)于應(yīng)用程序的信息,它們彼此相關(guān)聯(lián)。接著將受保護(hù)資源的資源名(文件夾名)登記到保護(hù)資源管理表220中。
在待監(jiān)視文件夾被登記且文件夾監(jiān)視機(jī)制被啟動之后,應(yīng)用230會激活一種功能(例如字處理程序),該功能是應(yīng)用戶的控制輸入所要執(zhí)行的。這樣的功能會被激活為一個進(jìn)程。該進(jìn)程會由OS(操作系統(tǒng))分配識別信息(進(jìn)程ID)。
應(yīng)用230向驅(qū)動器240輸出一個登記請求,以登記啟動進(jìn)程時所分配到的進(jìn)程ID。響應(yīng)于該登記請求,驅(qū)動器240會執(zhí)行一個應(yīng)用登記進(jìn)程。
在應(yīng)用登記進(jìn)程中,進(jìn)程ID被作為一個客戶標(biāo)識符登記在訪問許可管理表210中,該表由驅(qū)動器240管理。這時,應(yīng)用230會生成一個對應(yīng)于用戶所輸入口令的密鑰。所生成的該密鑰與客戶標(biāo)識符被關(guān)聯(lián)登記在訪問許可管理表210中。在步驟S31中被指定為受保護(hù)資源的文件夾的識別信息被當(dāng)作允許訪問的資源,與客戶標(biāo)識符關(guān)聯(lián)登記在訪問許可管理表210中。
應(yīng)用230通過驅(qū)動器240輸出一個對待監(jiān)視文件夾中某個文件的訪問請求,如請求讀取一個文件或是請求寫入一個文件。響應(yīng)于該訪問請求,驅(qū)動器240執(zhí)行一個訪問進(jìn)程。如果要讀取文件中的數(shù)據(jù),那么驅(qū)動器240解密該文件;如果要將數(shù)據(jù)寫入文件,那么驅(qū)動器240就加密該文件。
應(yīng)用230通知驅(qū)動器240應(yīng)用已完成,也就是說,向驅(qū)動器240發(fā)出一個應(yīng)用登記取消請求。響應(yīng)于該應(yīng)用登記取消請求,驅(qū)動器240執(zhí)行一個進(jìn)程以取消對于該應(yīng)用的登記。更具體地說,驅(qū)動器240會從訪問許可管理表210中刪除對應(yīng)于應(yīng)用230的客戶標(biāo)識符,以及與該客戶標(biāo)識符相關(guān)的密鑰和文件夾識別信息。
應(yīng)用230被終止。下面將說明按圖8所示順序當(dāng)應(yīng)用230發(fā)出處理請求時,驅(qū)動器240所執(zhí)行處理步驟的細(xì)節(jié)。
首先將說明步驟S31中登記一個待監(jiān)視文件夾的過程細(xì)節(jié)。
圖9概念性地示出了登記一個受保護(hù)文件夾的過程。如圖9所示,在步驟S41中應(yīng)用230向驅(qū)動器240發(fā)出一個文件夾監(jiān)視請求。接著,在步驟S42中驅(qū)動器240將文件夾的識別信息作為受保護(hù)資源的信息登記在保護(hù)資源管理表220中。
圖10示出了登記一個受保護(hù)文件夾過程的處理序列。下面將按照連續(xù)的步驟編號說明圖10中所示的處理序列。
驅(qū)動器240接收到應(yīng)用230發(fā)出的文件夾監(jiān)視請求。驅(qū)動器240將接收到的文件夾監(jiān)視請求傳送給數(shù)據(jù)表設(shè)置單元241。被傳送給數(shù)據(jù)表設(shè)置單元241的文件夾監(jiān)視請求中包含關(guān)于待監(jiān)視文件夾的識別信息。
數(shù)據(jù)表設(shè)置單元241確定被指定要監(jiān)視的文件夾是否已經(jīng)是被監(jiān)視的目標(biāo)了。更具體地說,數(shù)據(jù)表設(shè)置單元241檢索保護(hù)資源管理表220并確定被文件夾監(jiān)視請求所指定要監(jiān)視的文件夾的識別信息是否已經(jīng)被登記在保護(hù)資源管理表220中。如果該文件夾的識別信息已經(jīng)被登記在保護(hù)資源管理表220中,那么該文件夾就已經(jīng)是被監(jiān)視的目標(biāo)了。如果沒有,那么該文件夾還不是被監(jiān)視的目標(biāo)。如果被指定要監(jiān)視的文件夾已經(jīng)是一個被監(jiān)視的目標(biāo)了,那么該處理過程返回應(yīng)用230。如果被指定要監(jiān)視的文件夾還不是一個被監(jiān)視的目標(biāo),那么處理過程將進(jìn)入步驟S53。
數(shù)據(jù)表設(shè)置單元241將文件夾監(jiān)視請求所指定文件夾的識別信息登記在保護(hù)資源管理表220中。隨后,處理過程返回應(yīng)用230。
下面將說明步驟S32中應(yīng)用激活過程的細(xì)節(jié)。
圖11概念性地示出了登記一個應(yīng)用的過程。在步驟S61中,應(yīng)用230發(fā)出一個應(yīng)用登記請求以登記一個應(yīng)用。在步驟S62中,驅(qū)動器240檢索保護(hù)資源管理表220并確認(rèn)應(yīng)用登記請求中所包含的文件夾是否要被監(jiān)視。如果一個文件夾要被監(jiān)視,那么在步驟S63中,驅(qū)動器240會將客戶標(biāo)識符、密鑰以及文件夾名登記到訪問許可管理表210中。
圖12示出了登記一個應(yīng)用過程的處理序列。下面將按照連續(xù)的步驟編號說明圖12中所示的處理序列。
驅(qū)動器240接收應(yīng)用230所發(fā)出的應(yīng)用登記請求。驅(qū)動器240將接收到的應(yīng)用登記請求傳送給數(shù)據(jù)表設(shè)置單元241。被傳送給數(shù)據(jù)表設(shè)置單元241的應(yīng)用登記請求中包含一個客戶標(biāo)識符、一個密鑰以及被允許訪問的文件夾(訪問文件夾)的識別信息。
數(shù)據(jù)表設(shè)置單元241確定訪問文件夾是否為被監(jiān)視的目標(biāo)。更具體地說,數(shù)據(jù)表設(shè)置單元241要確定訪問文件夾的識別信息是否已經(jīng)被登記在保護(hù)資源管理表220中了。如果該訪問文件夾的識別信息已經(jīng)被登記,那么該訪問文件夾就是被監(jiān)視的目標(biāo)。如果沒有,那么該訪問文件夾還不是被監(jiān)視的目標(biāo)。如果訪問文件夾是一個被監(jiān)視的目標(biāo),那么該處理過程進(jìn)入步驟S73。如果訪問文件夾還不是一個被監(jiān)視的目標(biāo),那么處理過程將返回應(yīng)用230。
數(shù)據(jù)表設(shè)置單元241確認(rèn)應(yīng)用230的客戶標(biāo)識符是否已經(jīng)被登記在訪問許可管理表210中。如果已經(jīng)被登記,那么該處理過程返回應(yīng)用230。如果沒有被登記,那么該處理過程進(jìn)入步驟S74。
數(shù)據(jù)表設(shè)置單元241將包含在應(yīng)用登記請求中的客戶標(biāo)識符、密鑰以及訪問文件夾的組合登記在訪問許可管理表210中。隨后,該處理過程返回應(yīng)用230。
下面將詳細(xì)說明步驟S34中的文件訪問過程。
圖13概念性地示出了訪問一個文件的過程。應(yīng)用230在步驟S81中發(fā)出一個文件訪問請求。該文件訪問請求被驅(qū)動器240接收。在步驟S82中,驅(qū)動器240檢索保護(hù)資源管理表220,并確認(rèn)應(yīng)文件訪問請求所要訪問的文件是否處在受監(jiān)視的文件夾中。如果所要訪問的文件是受監(jiān)視文件夾中的文件,那么驅(qū)動器240就在步驟S83中檢索訪問許可管理表210并確認(rèn)輸出文件訪問請求的應(yīng)用230是否被準(zhǔn)許訪問該文件。如果應(yīng)用230對該文件的訪問被許可,那么驅(qū)動器240就響應(yīng)于文件訪問請求訪問該文件,并在步驟S84中向應(yīng)用230返回結(jié)果。
圖14示出了訪問文件過程的處理序列。下面將根據(jù)連續(xù)的步驟編號說明圖14中所示的處理序列。
驅(qū)動器240接收應(yīng)用230發(fā)出的文件訪問請求。接收到的文件訪問請求被傳送給加密/解密判定單元242。該文件訪問請求所包含的信息代表了文件名、文件位置(關(guān)于存儲該文件的文件夾的識別信息)、指令語句(表明該文件訪問請求是讀數(shù)據(jù)還是寫數(shù)據(jù)的請求)、以及所要寫入的數(shù)據(jù)(如果文件訪問請求是寫數(shù)據(jù)請求)。
加密/解密判定單元242確定要訪問的文件所處的文件夾是否是一個受監(jiān)視的文件夾。更具體地說,加密/解密判定單元242檢索保護(hù)資源管理表220并確定要訪問的文件所處文件夾的識別信息是否已經(jīng)被登記在保護(hù)資源管理表220中。如果已經(jīng)登記,那么要訪問的文件所處的文件夾是一個受監(jiān)視的文件夾。如果沒有登記,那么要訪問的文件所處的文件夾不是一個受監(jiān)視的文件夾。如果要訪問的文件所處的文件夾是一個受監(jiān)視的文件夾,那么該處理過程進(jìn)入步驟S94。如果要訪問的文件所處的文件夾不是一個受監(jiān)視的文件夾,那么該處理過程進(jìn)入步驟S93。
驅(qū)動器240根據(jù)文件訪問請求,借助于OS(操作系統(tǒng))中所包含的文件系統(tǒng)執(zhí)行一個文件訪問進(jìn)程。
訪問許可/禁止判定單元243檢索訪問許可管理表210,并確定發(fā)出文件訪問請求的應(yīng)用230是否被登記為與受監(jiān)視的該文件夾相關(guān)。
更具體地說,訪問許可/禁止判定單元243獲取發(fā)出文件訪問請求的應(yīng)用230的進(jìn)程ID。該進(jìn)程ID由OS(操作系統(tǒng))管理,因此訪問許可/禁止判定單元243可以通過詢問OS來獲取該進(jìn)程ID。訪問許可/禁止判定單元243確定應(yīng)用230的進(jìn)程ID以及要被訪問的文件所處文件夾的識別信息的組合是否已經(jīng)被登記在訪問許可管理表210中。如果該進(jìn)程ID和文件夾的識別信息的組合已經(jīng)被登記在訪問許可管理表210中,那么訪問許可/禁止判定單元243就可以判定應(yīng)用230是一個已登記客戶。
如果應(yīng)用230是一個已登記客戶,那么該處理過程進(jìn)入步驟S96。如果應(yīng)用230不是一個已登記客戶,那么該處理過程進(jìn)入步驟S95。
訪問許可/禁止判定單元243拒絕來自應(yīng)用230的文件訪問請求,并向應(yīng)用230返回結(jié)果。隨后,該處理過程返回應(yīng)用230。
訪問許可/禁止判定單元243告知加密/解密處理器244該文件訪問請求已經(jīng)被準(zhǔn)許。加密/解密處理器244從訪問許可管理表210中獲取一個密鑰,該密鑰與應(yīng)用230的進(jìn)程ID以及被訪問文件所處文件夾的識別信息的組合相關(guān)。接著加密/解密處理器244執(zhí)行一個文件訪問進(jìn)程,其中包括利用所獲取的密鑰對被訪問的文件進(jìn)行文件加密或解密。
更具體地說,如果文件訪問請求是一個讀取文件的請求,那么加密/解密處理器244利用所獲取的密鑰解密該文件,并將解密文件傳送給應(yīng)用230。如果文件訪問請求是一個寫入文件的請求,那么加密/解密處理器244用獲取的密鑰加密要寫入的數(shù)據(jù),將這些數(shù)據(jù)形成一個文件,并將該文件存儲在受監(jiān)視的文件夾中。隨后,該處理過程返回應(yīng)用230。
下面將說明步驟S35中取消一個應(yīng)用登記的過程。
圖15概念性地示出了取消一個應(yīng)用登記的過程。在步驟S101中,應(yīng)用230發(fā)出一個應(yīng)用登記取消請求。在步驟S102中,驅(qū)動器240刪除登記在訪問許可管理表210中的信息。
圖16是一張流程圖,示出了取消一個應(yīng)用登記的過程的處理序列。下面將按照連續(xù)的步驟編號說明圖16中所示的處理序列。
驅(qū)動器240獲取一個來自應(yīng)用230的應(yīng)用登記取消請求。驅(qū)動器240將獲取的應(yīng)用登記取消請求傳送給數(shù)據(jù)表設(shè)置單元241。
數(shù)據(jù)表設(shè)置單元241確定應(yīng)用230的進(jìn)程ID是否已經(jīng)被登記在訪問許可管理表210中。如果已經(jīng)登記,那么該處理過程進(jìn)入步驟S113。如果沒有登記,那么該處理過程返回應(yīng)用230。
數(shù)據(jù)表設(shè)置單元241從訪問許可管理表210中刪除應(yīng)用230的進(jìn)程ID以及與該進(jìn)程ID相關(guān)的數(shù)據(jù)(密鑰以及文件夾識別信息)。
另一方面,可用于加密/解密數(shù)據(jù)的密鑰可以不是作為參數(shù)的來自于應(yīng)用230的輸入,而可以是分配給用戶組的組密鑰,以及對于運行文件保護(hù)系統(tǒng)的本地機(jī)獨一無二的值(特定的硬件/環(huán)境值),這些值被包含在密鑰生成邏輯中。這些特定的硬件/環(huán)境值可以是例如硬盤ID、硬標(biāo)記ID等等。
圖17示出了利用一個特定的硬件/環(huán)境值來保護(hù)文件的訪問過程。圖17中所示的訪問過程與圖6中所示的訪問過程相似,除了其中加入一個特定的硬件/環(huán)境值250。
當(dāng)用戶啟動應(yīng)用230并輸入一個正確的口令作為用戶驗證信息時,應(yīng)用230就會在步驟S121中向訪問許可管理表210登記一個客戶標(biāo)識符、一個密鑰和一個資源名。隨后,應(yīng)用230在步驟S122中發(fā)出對文件夾111中文件111a的訪問請求。
驅(qū)動器240a響應(yīng)于應(yīng)用230所發(fā)出的訪問請求,獲取應(yīng)用230的進(jìn)程ID。在步驟S123中,驅(qū)動器240a檢索訪問許可管理表210,并從中獲取對應(yīng)于客戶標(biāo)識符的密鑰α,所述的客戶標(biāo)識符對應(yīng)于所獲取的進(jìn)程ID。在步驟S124中,驅(qū)動器240a還要獲取一個特定的硬件/環(huán)境值250。
驅(qū)動器240a利用所獲取的特定硬件/環(huán)境值250作為用于生成加密密鑰或解密密鑰的輔助信息(密鑰生成輔助信息)。更具體地說,驅(qū)動器240a將從訪問許可管理表210中取得的密鑰α與特定硬件/環(huán)境值250組合起來,從而生成一個新的密鑰。接著在步驟S125中,驅(qū)動器240對訪問請求所指定的文件111a進(jìn)行處理,其中包括用生成的新密鑰加密或解密數(shù)據(jù)。
由于加密/解密密鑰是用特定的硬件/環(huán)境值250生成的,因此一個受保護(hù)資源只能由一臺計算機(jī)訪問,從而可以針對通過網(wǎng)絡(luò)進(jìn)行的未授權(quán)訪問企圖實現(xiàn)增強(qiáng)安全性的保護(hù)。
當(dāng)應(yīng)用230中包含了一種借助庫來保護(hù)文件的功能時,就可運用圖8中所示的工作流程。然而,保護(hù)文件的功能可以通過一個啟動器應(yīng)用實現(xiàn)。
圖18示出利用了啟動器應(yīng)用的文件保護(hù)過程的工作流程。在圖18所示的例子中,提供了一個啟動器應(yīng)用231和一個子應(yīng)用232。啟動器應(yīng)用231作為輔助功能,用于響應(yīng)用戶的控制輸入來啟動各種應(yīng)用。子應(yīng)用232是由啟動器應(yīng)用231啟動的一個應(yīng)用。子應(yīng)用232可以是一個字處理程序、一個電子表格程序,等等。
當(dāng)用戶輸入一個口令并使用一個控制輸入來請求啟動器應(yīng)用231啟動子應(yīng)用232時,啟動器應(yīng)用231登記一個待監(jiān)視的文件夾并啟動一個文件夾監(jiān)視機(jī)制。更具體地說,啟動器應(yīng)用231通過驅(qū)動器240將要被設(shè)置為受保護(hù)資源的文件夾的識別信息登記到保護(hù)資源管理表220中。要被設(shè)置為受保護(hù)資源的文件夾可以是用戶任選指定的文件夾,或者是用于應(yīng)用230的規(guī)定文件夾。這個登記過程僅在一個文件夾最初被指定為監(jiān)視對象時執(zhí)行一次。
在受監(jiān)視文件夾被登記且文件夾監(jiān)視機(jī)制被啟動后,啟動器應(yīng)用231被激活。
啟動器應(yīng)用231向OS發(fā)出一個請求以激活子應(yīng)用232,然后子應(yīng)用232被激活。
啟動器應(yīng)用231將一個進(jìn)程ID登記在訪問許可管理表210中作為客戶標(biāo)識符,該進(jìn)程ID是在子應(yīng)用232被激活時分配的,而表210是由驅(qū)動器240管理的。這時,應(yīng)用230生成一個密鑰,該密鑰取決于用戶所輸入的口令。所生成的密鑰連同步驟S134中登記的客戶標(biāo)識符一起被登記在訪問許可管理表210中。在步驟S131中被指定為受保護(hù)資源的文件夾的識別信息作為被允許訪問的資源,連同步驟S134中登記的客戶標(biāo)識符一起被登記在訪問許可管理表210中。
子應(yīng)用232通過驅(qū)動器240訪問受監(jiān)視文件夾中的文件,也就是說,從文件中讀取數(shù)據(jù)或是將數(shù)據(jù)寫入文件。當(dāng)文件中的數(shù)據(jù)被讀取,驅(qū)動器240解密數(shù)據(jù)。當(dāng)數(shù)據(jù)被寫入文件,驅(qū)動器240就加密文件。
子應(yīng)用232響應(yīng)用戶的控制輸入而被終止。
當(dāng)子應(yīng)用232被終止時,啟動器應(yīng)用231告知驅(qū)動器240子應(yīng)用232已完成。驅(qū)動器240從訪問許可管理表210中刪除對應(yīng)于應(yīng)用230的客戶標(biāo)識符以及與該客戶標(biāo)識符相關(guān)的密鑰和文件夾識別信息。
結(jié)束啟動器應(yīng)用231。
根據(jù)本發(fā)明的實施例,如上所述,一個受監(jiān)視的應(yīng)用事先被登記,而驅(qū)動器240選擇性地控制并對應(yīng)用的訪問進(jìn)行判定,以拒絕來自未被登記的應(yīng)用的訪問。因此,可以很容易地限制對于文件的訪問。
系統(tǒng)管理員通過允許在被準(zhǔn)許訪問文件的應(yīng)用的功能范圍內(nèi)對文件進(jìn)行處理,并拒絕為其他處理目的而對文件進(jìn)行的訪問,就可以監(jiān)控信息的未授權(quán)泄漏。
即使是一個被允許訪問受保護(hù)文件的用戶,也會被禁止通過無效操作即來自于未被允許訪問文件的應(yīng)用的訪問請求來處理文件。
即使驅(qū)動器240本身被去掉,由一個已登記應(yīng)用加密的文件在試圖用另一個應(yīng)用解密該文件時也不能被解密。這是因為當(dāng)一個應(yīng)用被登記時,就生成了一個僅能被該應(yīng)用使用的密鑰(用作加密密鑰或是解密密鑰)。
由于分配給各個被允許訪問文件的應(yīng)用的密鑰不相同,嘗試通過一個被允許訪問該文件但未被登記的應(yīng)用來解密該文件是不能正確地解密文件的。因此,只有已登記應(yīng)用的授權(quán)用戶才能正確地解密文件信息,并能根據(jù)應(yīng)用的功能修正和復(fù)制文件信息。
與最近為用于本發(fā)明的系統(tǒng)而開發(fā)的應(yīng)用一樣,常規(guī)程序也可以通過使用一個代理程序(啟動器應(yīng)用)簡單地被包含到該系統(tǒng)中,所述的代理程序用于管理那些常規(guī)程序的啟動、狀態(tài)和完成。因此,現(xiàn)有的應(yīng)用不需修改便可用作本實施例的應(yīng)用。
如果生成密鑰的過程根據(jù)各個應(yīng)用來決定,那么就可以比較容易地為各個應(yīng)用設(shè)計并控制關(guān)于被保護(hù)資源中文件的互操作性及獨占性。因此,就可能控制用于所需應(yīng)用的一組用戶之間的信息共享設(shè)置。
有了上述的選擇性訪問控制能力,就可能構(gòu)建一種系統(tǒng),用來操作和管理文件信息,它具有自下而上的選擇性訪問控制及結(jié)合自上而下的穩(wěn)健性與更高安全性的簡易計劃。
為了實現(xiàn)上述的處理功能,提供了一種數(shù)據(jù)保護(hù)程序,它描述了一臺計算機(jī)所應(yīng)具有的各功能的處理細(xì)節(jié)。當(dāng)計算機(jī)執(zhí)行該數(shù)據(jù)保護(hù)程序時,上述的處理功能就會在計算機(jī)上被執(zhí)行。描述了處理細(xì)節(jié)的數(shù)據(jù)保護(hù)程序可以被記錄在一種記錄媒體上,該媒體可被計算機(jī)讀取。這種可由計算機(jī)讀取的記錄媒體包括磁記錄設(shè)備、光盤、磁-光記錄媒體、半導(dǎo)體存儲器,等等。所述的磁記錄設(shè)備可以是硬盤驅(qū)動器(HDD)、軟(磁)盤(FD)、磁帶,等等。光盤可以是DVD(數(shù)字多功能光盤)、DVD-RAM、CD-ROM(只讀光盤)、CD-R(可錄)/RW(可重寫),等等。磁-光記錄媒體可以是MO(磁-光)盤等。
為了發(fā)布數(shù)據(jù)保護(hù)程序,存有數(shù)據(jù)保護(hù)程序的便攜式記錄媒體如DVD、CD-ROM等等可以發(fā)售。
另外,數(shù)據(jù)保護(hù)程序也可以被存儲在一臺服務(wù)器計算機(jī)的存儲設(shè)備中,再通過網(wǎng)絡(luò)從服務(wù)器計算機(jī)傳送給其他計算機(jī)。
用來執(zhí)行數(shù)據(jù)保護(hù)程序的計算機(jī)將記錄在便攜式記錄媒體上或是從服務(wù)器計算機(jī)傳送來的數(shù)據(jù)保護(hù)程序裝載到例如它自己的存儲設(shè)備中。接著,該計算機(jī)從存儲設(shè)備中讀取數(shù)據(jù)保護(hù)程序,并根據(jù)數(shù)據(jù)保護(hù)程序執(zhí)行一個處理序列。另外,該計算機(jī)也可以直接從便攜式記錄媒體上讀取數(shù)據(jù)保護(hù)程序,并根據(jù)服務(wù)器程序執(zhí)行一個處理序列。再另外,該計算機(jī)還可以在每次接收到從服務(wù)器計算機(jī)傳送來的一部分?jǐn)?shù)據(jù)保護(hù)程序時,根據(jù)數(shù)據(jù)保護(hù)程序執(zhí)行一個處理序列。
根據(jù)本發(fā)明,如上所述,只有當(dāng)輸出了訪問請求的請求來源程序的識別信息已經(jīng)被登記在訪問許可管理表中時,基于該訪問請求對于受保護(hù)資源中數(shù)據(jù)的訪問才能被批準(zhǔn),受保護(hù)資源中的數(shù)據(jù)才能根據(jù)訪問請求被處理。因此,即使當(dāng)受保護(hù)資源中的數(shù)據(jù)正處在被一個準(zhǔn)許訪問該數(shù)據(jù)的應(yīng)用訪問的狀態(tài)中,從識別信息未被登記在訪問許可管理表中的其他應(yīng)用訪問保護(hù)資源中的該數(shù)據(jù)也是要被拒絕的。這樣就提高了受保護(hù)資源中數(shù)據(jù)的安全性。
前面所述只是為了說明本發(fā)明的基本原理。此外,由于本領(lǐng)域技術(shù)人員很容易想出許多修改及變化,因此不希望將本發(fā)明限制于本文所示及所說明的確切構(gòu)造及應(yīng)用,相應(yīng)地,所有合適的修改及等價物都可被視為落入附帶的權(quán)利要求及其等價物所確定的本發(fā)明的范圍內(nèi)。
權(quán)利要求
1.一種數(shù)據(jù)保護(hù)程序,用于保護(hù)存儲在受保護(hù)資源中的數(shù)據(jù),所述的數(shù)據(jù)保護(hù)程序使得一臺計算機(jī)能夠執(zhí)行一個處理序列,包括將關(guān)于能夠訪問所述受保護(hù)資源的程序的識別信息登記在一張訪問許可管理表中;如果接收到一個訪問請求要求訪問所述的受保護(hù)資源,就獲取關(guān)于輸出所述訪問請求的請求來源程序的識別信息;根據(jù)關(guān)于所述請求來源程序的識別信息是否已被登記在所述的訪問許可管理表中,來確定對于所述受保護(hù)資源的訪問是否被準(zhǔn)許;以及如果對于所述受保護(hù)資源的訪問被準(zhǔn)許,就響應(yīng)所述的訪問請求處理所述受保護(hù)資源中的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)保護(hù)程序,其中當(dāng)所述受保護(hù)資源中的數(shù)據(jù)被處理時,如果所述的訪問請求是寫數(shù)據(jù)的請求,那么從執(zhí)行所述請求來源程序的進(jìn)程傳送來的數(shù)據(jù)就被加密并存入所述的受保護(hù)資源,而如果所述的訪問請求是讀取數(shù)據(jù)的請求,那么來自所述受保護(hù)資源的數(shù)據(jù)就被解密并傳送給執(zhí)行所述請求來源程序的進(jìn)程。
3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)保護(hù)程序,其中所述的處理序列還包括將一個與關(guān)于程序的識別信息相關(guān)的密鑰登記在所述的訪問許可管理表中;以及當(dāng)所述受保護(hù)資源中的數(shù)據(jù)要被加密和解密時,就利用登記在所述訪問許可管理表中的與關(guān)于請求來源程序的識別信息相關(guān)的所述密鑰來加密和解密該數(shù)據(jù)。
4.根據(jù)權(quán)利要求3所述的數(shù)據(jù)保護(hù)程序,其中一個由用戶向所述程序輸入的口令唯一確定的值被登記在所述的訪問許可管理表中作為所述的密鑰。
5.根據(jù)權(quán)利要求3所述的數(shù)據(jù)保護(hù)程序,其中所述的處理序列還包括當(dāng)所述受保護(hù)資源中的數(shù)據(jù)要被加密和解密時,利用一個值加密和解密該數(shù)據(jù),該值通過組合所述的與關(guān)于請求來源程序的識別信息相關(guān)的密鑰與一個預(yù)置在所述計算機(jī)中的特定值來給出。
6.根據(jù)權(quán)利要求1所述的數(shù)據(jù)保護(hù)程序,其中所述的處理序列還包括在一張保護(hù)資源管理表中登記關(guān)于一個包含要保護(hù)的數(shù)據(jù)的文件夾的識別信息;以及僅使用登記在所述保護(hù)資源管理表中的所述文件夾作為所述的受保護(hù)資源。
7.根據(jù)權(quán)利要求1所述的數(shù)據(jù)保護(hù)程序,其中所述的處理序列還包括登記關(guān)于所述程序的識別信息以及可訪問資源的資源名的組合;以及根據(jù)關(guān)于所述請求來源程序的識別信息以及由所述訪問請求指定的訪問目標(biāo)的資源名的組合是否已經(jīng)被登記在所述的訪問許可管理表中,來確定對所述受保護(hù)資源的訪問是否被準(zhǔn)許。
8.一種保護(hù)存儲在受保護(hù)資源中的數(shù)據(jù)的方法,所述方法包括將關(guān)于能夠訪問所述受保護(hù)資源的程序的識別信息登記在一張訪問許可管理表中;如果接收到一個訪問請求要求訪問所述的受保護(hù)資源,就獲取關(guān)于輸出所述訪問請求的請求來源程序的識別信息;根據(jù)關(guān)于所述請求來源程序的識別信息是否已被登記在所述的訪問許可管理表中,來確定對于所述受保護(hù)資源的訪問是否被準(zhǔn)許;以及如果對于所述受保護(hù)資源的訪問被準(zhǔn)許,就響應(yīng)所述的訪問請求處理所述受保護(hù)資源中的數(shù)據(jù)。
9.一種用來保護(hù)存儲在受保護(hù)資源中的數(shù)據(jù)的裝置,所述裝置包括識別信息登記裝置,用來將關(guān)于能夠訪問所述受保護(hù)資源的程序的識別信息登記在一張訪問許可管理表中;識別信息獲取裝置,如果接收到一個訪問請求要求訪問所述的受保護(hù)資源,就獲取關(guān)于輸出所述訪問請求的請求來源程序的識別信息;訪問許可/禁止判定裝置,用來根據(jù)關(guān)于所述請求來源程序的識別信息是否已被登記在所述的訪問許可管理表中,確定對于所述受保護(hù)資源的訪問是否被準(zhǔn)許;以及數(shù)據(jù)處理裝置,如果對于所述受保護(hù)資源的訪問被準(zhǔn)許,就響應(yīng)所述的訪問請求處理所述受保護(hù)資源中的數(shù)據(jù)。
10.一種計算機(jī)可讀取的記錄媒體,其中存儲了用于保護(hù)存儲在受保護(hù)資源中的數(shù)據(jù)的數(shù)據(jù)保護(hù)程序,所述的數(shù)據(jù)保護(hù)程序可以被一臺計算機(jī)讀取,所述的數(shù)據(jù)保護(hù)程序使得所述的計算機(jī)執(zhí)行一個處理序列,包括將關(guān)于能夠訪問所述受保護(hù)資源的程序的識別信息登記在一張訪問許可管理表中;如果接收到一個訪問請求要求訪問所述的受保護(hù)資源,就獲取關(guān)于輸出所述訪問請求的請求來源程序的識別信息;根據(jù)關(guān)于所述請求來源程序的識別信息是否已被登記在所述的訪問許可管理表中,來確定對于所述受保護(hù)資源的訪問是否被準(zhǔn)許;以及如果對于所述受保護(hù)資源的訪問被準(zhǔn)許,就響應(yīng)所述的訪問請求處理所述受保護(hù)資源中的數(shù)據(jù)。
全文摘要
一種數(shù)據(jù)保護(hù)程序能夠有效地限制對于受保護(hù)資源的未授權(quán)訪問,即使在受保護(hù)資源處在被一個用戶合法訪問的狀態(tài)下也可提供這種保護(hù)。關(guān)于能夠訪問受保護(hù)資源的程序的識別信息被登記在一張訪問許可管理表中。如果后來接收到一個訪問請求要求訪問受保護(hù)資源,就獲取關(guān)于輸出所述訪問請求的請求來源程序的識別信息。接著,根據(jù)關(guān)于該請求來源程序的識別信息是否已被登記在訪問許可管理表中,來確定對于受保護(hù)資源的訪問是否被準(zhǔn)許。如果對于受保護(hù)資源的訪問被準(zhǔn)許,就響應(yīng)訪問請求處理受保護(hù)資源中的數(shù)據(jù)。
文檔編號G06F12/14GK1467642SQ03110640
公開日2004年1月14日 申請日期2003年4月18日 優(yōu)先權(quán)日2002年7月9日
發(fā)明者梅林祐, 田悅, 山中祐介, 佐佐木孝興, 介, 孝, 梅林 申請人:富士通株式會社