欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

提供數(shù)據(jù)安全性的系統(tǒng)和方法

文檔序號(hào):6467251閱讀:449來源:國(guó)知局
專利名稱:提供數(shù)據(jù)安全性的系統(tǒng)和方法
背景技術(shù)
1.發(fā)明領(lǐng)域本發(fā)明是針對(duì)計(jì)算機(jī)中存儲(chǔ)數(shù)據(jù)的保護(hù),特別是對(duì)那些從外部源輸入的數(shù)據(jù)的保護(hù)。
2.先有技術(shù)簡(jiǎn)述數(shù)據(jù)可從多種數(shù)據(jù)源加載到計(jì)算機(jī)上,包括電子傳輸,如因特網(wǎng)和內(nèi)部網(wǎng)(intranet)傳輸,從CD-ROM、軟盤或其他輸入/輸出裝置下載。一旦這些文件已被下載,則文件的發(fā)送者或創(chuàng)建者便沒有辦法保持對(duì)信息的控制。這種情況已變得特別重要,因?yàn)橛懈嗟陌▽S袃?nèi)容的秘密文件和材料正以這種方式傳送。
考慮到上述情況并為了克服先有技術(shù)的缺陷,開發(fā)了本發(fā)明。
發(fā)明概要本發(fā)明提供用于數(shù)據(jù)安全性的系統(tǒng)和方法,例如防止其后對(duì)文件的再傳輸或未授權(quán)的打開文件。
附圖簡(jiǎn)述

圖1是方框圖,顯示用于數(shù)據(jù)安全性的系統(tǒng)的方法的一個(gè)實(shí)施例。
圖2是方框圖,顯示根據(jù)本發(fā)明的一個(gè)實(shí)施例的一個(gè)安全的數(shù)據(jù)傳輸系統(tǒng)的一部分。
圖3是方框圖,描繪根據(jù)本發(fā)明的一個(gè)實(shí)施例在應(yīng)用程序接口部件與裝置驅(qū)動(dòng)器之間的交互作用。
圖4A-C是根據(jù)本發(fā)明的一個(gè)實(shí)施例的注冊(cè)表(registry)監(jiān)視系統(tǒng)的流程圖。
圖5A-D是根據(jù)本發(fā)明的一個(gè)實(shí)施例的共享存儲(chǔ)器封鎖方法的流程圖。
圖6是根據(jù)本發(fā)明的背接通法(back-channeling)的一個(gè)實(shí)施例進(jìn)行操作的計(jì)算機(jī)系統(tǒng)方框圖。
圖7是根據(jù)本發(fā)明的背接通法的一個(gè)實(shí)施例在存儲(chǔ)庫(kù)(memoryvault)系統(tǒng)中文件打開的流程圖。
圖8是根據(jù)本發(fā)明的背接通法的一個(gè)實(shí)施例在存儲(chǔ)庫(kù)系統(tǒng)中文件讀/寫的流程圖。
圖9是根據(jù)本發(fā)明的背接通法的一個(gè)實(shí)施例在存儲(chǔ)庫(kù)系統(tǒng)中的文件信息請(qǐng)求的流程圖。
圖10是根據(jù)本發(fā)明的背接通法的一個(gè)實(shí)施例在存儲(chǔ)庫(kù)系統(tǒng)中的文件改變請(qǐng)求的流程圖。
圖11是Windows9X操作系統(tǒng)的系統(tǒng)體系結(jié)構(gòu)布局方框圖。
圖12是WindowsNT操作系統(tǒng)的系統(tǒng)體系結(jié)構(gòu)布局方框圖。
圖13是說明本發(fā)明的堆棧定位法的一個(gè)實(shí)施例的流程圖。
圖14是說明本發(fā)明的堆棧定位法的再鉤連(re-hooking)步驟的流程圖。
圖15是根據(jù)本發(fā)明的一個(gè)實(shí)施例監(jiān)視系統(tǒng)時(shí)鐘改變或修改的方法流程圖。
圖16是通過以預(yù)先確定的跟蹤間隔校驗(yàn)系統(tǒng)時(shí)鐘值來監(jiān)視系統(tǒng)時(shí)鐘改變或修改的方法流程圖。
圖17是根據(jù)本發(fā)明的端口封鎖法的一個(gè)實(shí)施例進(jìn)行操作的計(jì)算機(jī)系統(tǒng)示意圖。
圖18是根據(jù)本發(fā)明的端口封鎖法的一個(gè)實(shí)施例進(jìn)行操作的計(jì)算機(jī)系統(tǒng)中的端口請(qǐng)求流程圖。
圖19(a)是根據(jù)本發(fā)明的端口封鎖法的一個(gè)實(shí)施例進(jìn)行操作的計(jì)算機(jī)系統(tǒng)中的端口打開請(qǐng)求流程圖。
圖19(b)是根據(jù)本發(fā)明的端口封鎖法的一個(gè)實(shí)施例進(jìn)行操作的計(jì)算機(jī)系統(tǒng)中的端口關(guān)閉請(qǐng)求流程圖。
圖19(c)是根據(jù)本發(fā)明的端口封鎖法的一個(gè)實(shí)施例進(jìn)行操作的計(jì)算機(jī)系統(tǒng)中的安全檢查流程圖。
圖20是根據(jù)本發(fā)明的網(wǎng)絡(luò)封鎖法的一個(gè)實(shí)施例進(jìn)行操作的計(jì)算機(jī)系統(tǒng)示意圖。
圖21是根據(jù)本發(fā)明的網(wǎng)絡(luò)封鎖法的一個(gè)實(shí)施例進(jìn)行操作的計(jì)算機(jī)系統(tǒng)中的網(wǎng)絡(luò)請(qǐng)求流程圖。
圖22是根據(jù)本發(fā)明的原理為阻止來自文件系統(tǒng)的調(diào)用而插入的掩護(hù)器驅(qū)動(dòng)器(cloaker driver)的圖示。
圖23是本發(fā)明的一個(gè)實(shí)施例的流程圖,該實(shí)施例中調(diào)用處理是對(duì)從文件系統(tǒng)管理器下行到來的選定調(diào)用類型進(jìn)行的,并向上返回到文件系統(tǒng)管理器。
圖24是Windows95操作系統(tǒng)的文件系統(tǒng)邏輯層次圖。
圖25是在Windows95操作系統(tǒng)的文件系統(tǒng)邏輯層次內(nèi)一個(gè)典型的文件系統(tǒng)請(qǐng)求鏈的圖示。
圖26A-26G是圖2的處理調(diào)用5和返回例行程序的流程圖。
圖27是根據(jù)本發(fā)明的一個(gè)實(shí)施例傳送一個(gè)信息包的系統(tǒng)的流程圖。
圖28A-28B是根據(jù)本發(fā)明的一個(gè)實(shí)施例傳送一個(gè)電子包的方法流程圖。
圖29是Windows9X操作系統(tǒng)的系統(tǒng)體系結(jié)構(gòu)布局圖。
圖30是WindowsNT操作系統(tǒng)的系統(tǒng)體系結(jié)構(gòu)布局圖。
圖31是本發(fā)明的文件騙術(shù)(spoofing)法的一個(gè)實(shí)施例的流程圖。
發(fā)明詳述現(xiàn)在詳細(xì)參考附圖,這里相似的參考數(shù)字對(duì)應(yīng)于若干圖中的相似部件,圖1顯示用于數(shù)據(jù)安全性的系統(tǒng)和方法的一個(gè)實(shí)施例,其中包含數(shù)據(jù)安全系統(tǒng)10。在本實(shí)施例中,如圖所示,數(shù)據(jù)安全系統(tǒng)10最好包含打包器(packager)12和客戶機(jī)(client)或接收器14。如這里將詳細(xì)描述的那樣,本實(shí)施例中的打包器12的操作用于創(chuàng)建安全數(shù)據(jù)內(nèi)容,而接收器14的操作用于管理安全數(shù)據(jù)的使用。在一個(gè)最佳實(shí)施例中,打包器10和接收器14在一計(jì)算機(jī)網(wǎng)絡(luò)上組合操作以創(chuàng)建和保持?jǐn)?shù)據(jù)安全。雖然圖中沒有畫出,但在其他實(shí)施例中,如果希望的話,打包器10和接收器14可以彼此獨(dú)立地使用。如這里所用的術(shù)語“計(jì)算機(jī)”、“計(jì)算機(jī)系統(tǒng)”或“系統(tǒng)”應(yīng)被廣泛地解釋為包括能夠接收、傳送和/或使用信息的任何裝置,包括但不限于處理器、微處理器或類似裝置、個(gè)人計(jì)算機(jī)(如膝上、掌上PC、臺(tái)式或工作站)、網(wǎng)絡(luò)服務(wù)器、大型計(jì)算機(jī)、電子有線或無線裝置(如電話)、交互電視(如適于與因特網(wǎng)連接的電視機(jī)或與電視機(jī)一起使用的電子裝置)、蜂窩電話、個(gè)人數(shù)字助理、電子尋呼機(jī)、以及數(shù)字手表。在所示一例中,信息以電子郵件形式傳送。再有,本發(fā)明的計(jì)算機(jī)、計(jì)算機(jī)系統(tǒng)或系統(tǒng)可在網(wǎng)絡(luò)上(如因特網(wǎng)、內(nèi)部網(wǎng)或外部網(wǎng)(extranet))上與其他系統(tǒng)組合操作,或者可以作為單獨(dú)的系統(tǒng)進(jìn)行操作。
這一實(shí)施例中的打包器10最好是通過創(chuàng)建一個(gè)可執(zhí)行程序來進(jìn)行操作,該可執(zhí)行程序能安全地向接收者發(fā)送數(shù)據(jù)。接收器14最好包含一個(gè)或多個(gè)裝置驅(qū)動(dòng)器和一個(gè)應(yīng)用程序接口,如這一實(shí)施例中的Win32過程,它管理安全數(shù)據(jù)的使用。如這里將詳細(xì)描述的那樣,在這一實(shí)施例中有9個(gè)含有內(nèi)核方式模塊的裝置驅(qū)動(dòng)器作為接收器14的一部分。這里所使用的術(shù)語“數(shù)據(jù)”或“信息”是可以交換使用的,并應(yīng)廣泛地解釋為復(fù)蓋任何類型的信息、數(shù)據(jù)或其他內(nèi)容,如文本、圖形、音頻、視頻或任何組合,而且有任何所希望的格式,如任何適當(dāng)?shù)挠?jì)算機(jī)文件格式。
當(dāng)受保護(hù)信息的發(fā)送者希望向外部源發(fā)送一包專有的或敏感的數(shù)據(jù)時(shí),通常是響應(yīng)屏幕上的提示而選擇一個(gè)要打包的文件。然后選擇用于操作那包數(shù)據(jù)的允許規(guī)則設(shè)置。這些允許規(guī)則設(shè)置可以是多種不同類型的,如要進(jìn)行的特定操作(例如禁止復(fù)制)、允許的副本數(shù)(例如2)、占有的時(shí)間限(如1小時(shí))。這些可以是基本的允許規(guī)則或者是可以定制的。這里將描述根據(jù)本實(shí)施例的打包器12的一個(gè)最佳實(shí)施例。
當(dāng)終端(end)用戶從打包器12接收到數(shù)據(jù)時(shí),該終端用戶打開該文件,而且在這可執(zhí)行包中的一個(gè)傳感器程序最好是進(jìn)行校驗(yàn)以確定接收器14是否是在運(yùn)行,一旦確定之后,便向接收器14發(fā)出信號(hào),告知它應(yīng)該處理該包。在這個(gè)實(shí)施例中,傳感器程序?qū)ふ乙粋€(gè)能讀這個(gè)可執(zhí)行包的驅(qū)動(dòng)器。在本實(shí)施例中接收器14至少包含一個(gè)裝置驅(qū)動(dòng)器,最好包含9個(gè)裝置驅(qū)動(dòng)器,下文中將更詳細(xì)地描述。在未顯示的其他實(shí)施例中,希望時(shí)可利用更多些或更少些裝置驅(qū)動(dòng)器和/或不同類型的裝置驅(qū)動(dòng)器。為了演示的目的,下面將首先針對(duì)單一裝置驅(qū)動(dòng)器來描述本實(shí)施例中9個(gè)裝置驅(qū)動(dòng)器的功能方面,因?yàn)檠b置驅(qū)動(dòng)器的數(shù)量是可改變的。一般地說,在這個(gè)實(shí)施例中要下載的文件的安全性是由接收器14通過使用一個(gè)保護(hù)驅(qū)動(dòng)器和相應(yīng)的包含安全數(shù)據(jù)文件的存儲(chǔ)庫(kù)來維持的。要受保護(hù)的所有數(shù)據(jù)文件最好都存儲(chǔ)在這個(gè)庫(kù)中。在效果上,該庫(kù)是受保護(hù)文件的保管所(repostory)。如果不能找到這個(gè)驅(qū)動(dòng)器,則該包通知用戶需要一個(gè)驅(qū)動(dòng)器和/或復(fù)蓋它本身從而破壞它本身,或者提供某些其他的所希望的選擇。如果找到了驅(qū)動(dòng)器,則驅(qū)動(dòng)器從存儲(chǔ)在存儲(chǔ)庫(kù)中的數(shù)據(jù)中解析出規(guī)則并創(chuàng)建“標(biāo)志”文件供計(jì)算機(jī)使用,并且對(duì)存在于存儲(chǔ)庫(kù)外部的這個(gè)可執(zhí)行文件進(jìn)行復(fù)蓋(切碎)以去掉這個(gè)可執(zhí)行文件和數(shù)據(jù)的一切痕跡。在這一實(shí)施例中,該驅(qū)動(dòng)器創(chuàng)件一個(gè)標(biāo)志文件,該驅(qū)動(dòng)器使用一個(gè)存儲(chǔ)在存儲(chǔ)庫(kù)中的虛擬表把這標(biāo)志文件映射到實(shí)際文件,作為計(jì)算機(jī)過程使用的空間占有者。
在本實(shí)施例中,存儲(chǔ)庫(kù)是硬盤上的空間,含有要受保護(hù)的文件以及內(nèi)部安全性數(shù)據(jù),如下文中將描述的存儲(chǔ)庫(kù)控制塊、文件控制塊、存儲(chǔ)庫(kù)分配表和存儲(chǔ)庫(kù)數(shù)據(jù)塊。在這一實(shí)施例中,在存儲(chǔ)庫(kù)中包含的文件包括該文件的計(jì)算機(jī)名,由驅(qū)動(dòng)器產(chǎn)生的或由數(shù)據(jù)創(chuàng)建者產(chǎn)生的該文件的名字以及實(shí)際數(shù)據(jù)文件本身。存儲(chǔ)庫(kù)分配表(Vault AllocationTable)的作用是一個(gè)可由驅(qū)動(dòng)器尋址的鏈接表,它把計(jì)算機(jī)名鏈接于賦給該文件并存儲(chǔ)在該存儲(chǔ)庫(kù)中的名字。再有,在這一實(shí)施例中存儲(chǔ)庫(kù)中的數(shù)據(jù)最好是加密的和/或可以是壓縮的,被填充的,然后交錯(cuò)存儲(chǔ)的(interlaced),從而提供進(jìn)一步的安全性。該存儲(chǔ)庫(kù)還最好由各級(jí)外部保護(hù)加以保護(hù),這在下文中將詳細(xì)討論。
驅(qū)動(dòng)器是一個(gè)針對(duì)存儲(chǔ)庫(kù)的驅(qū)動(dòng)器,當(dāng)它被下載時(shí)把它自己放在計(jì)算機(jī)用戶和存儲(chǔ)庫(kù)之間。該存儲(chǔ)庫(kù)和驅(qū)動(dòng)器被加載到硬盤驅(qū)動(dòng)器上。該驅(qū)動(dòng)器監(jiān)視計(jì)算機(jī)中的低層次調(diào)用,并使用虛擬表和來自計(jì)算機(jī)用戶的輸入對(duì)存儲(chǔ)庫(kù)中的文件進(jìn)行操作以保護(hù)該文件系統(tǒng)而不管其內(nèi)容如何。該驅(qū)動(dòng)器是在計(jì)算機(jī)引導(dǎo)時(shí)加載。該驅(qū)動(dòng)器知道它自己的位置和存儲(chǔ)庫(kù)的位置并對(duì)它本身和存儲(chǔ)庫(kù)賦予新的標(biāo)志名供計(jì)算機(jī)操作系統(tǒng)用戶利用。因?yàn)橛?jì)算機(jī)是對(duì)這些標(biāo)志(假的)名進(jìn)行操作而不知道該驅(qū)動(dòng)器駐留于計(jì)算機(jī)硬盤驅(qū)動(dòng)器上時(shí)的真實(shí)文件名或位置,所以該驅(qū)動(dòng)器和存儲(chǔ)庫(kù)的存在及位置對(duì)該系統(tǒng)的用戶而言是不可見的,或者說是“被遮掩”的。因?yàn)樗鼈兪遣豢梢姷?,所以在?jì)算機(jī)啟動(dòng)以后是不能由計(jì)算機(jī)用戶尋址的。實(shí)際上,驅(qū)動(dòng)器監(jiān)視地址指向計(jì)算機(jī)中文件的低層次調(diào)用指令。當(dāng)該文件對(duì)應(yīng)于存儲(chǔ)庫(kù)中所存文件的標(biāo)志或驅(qū)動(dòng)器本身時(shí),該驅(qū)動(dòng)器最好截?cái)嗄莻€(gè)指令從而封鎖用戶對(duì)指定文件的訪問。
該驅(qū)動(dòng)器是在硬盤驅(qū)動(dòng)器上并被引導(dǎo)到存儲(chǔ)器中。驅(qū)動(dòng)器迫使計(jì)算機(jī)首先引導(dǎo)這被遮掩的驅(qū)動(dòng)器從而使它是第一個(gè)啟動(dòng)的驅(qū)動(dòng)器,并使計(jì)算機(jī)最后關(guān)閉這被遮掩的驅(qū)動(dòng)器。因?yàn)樗紫瘸跏蓟蚴紫纫龑?dǎo)起來,該驅(qū)動(dòng)器總是在工作,所以總能遮掩驅(qū)動(dòng)器和存儲(chǔ)庫(kù)以及存儲(chǔ)庫(kù)內(nèi)的組成部分(elements)。以這種方式,這些組成部分總是受到保護(hù)并準(zhǔn)備好供操作。
因?yàn)樵擈?qū)動(dòng)器是第一個(gè),所以它總能遮掩需要被遮掩的東西。這是第一級(jí)防御,它使得難于定位系統(tǒng)內(nèi)要被攻擊的文件。如果這被遮掩的驅(qū)動(dòng)器不是第一個(gè)被鉤連(hooked)的話,則這是一個(gè)很好的指示,表明一個(gè)未授權(quán)用戶正在試圖攻擊或侵入該驅(qū)動(dòng)器或存儲(chǔ)庫(kù)文件中包含的敏感數(shù)據(jù)。對(duì)這些數(shù)據(jù)進(jìn)行工作的被遮掩的驅(qū)動(dòng)器是第一個(gè)被啟動(dòng)的。當(dāng)計(jì)算機(jī)啟動(dòng)時(shí),它被鉤連到文件系統(tǒng)中。這些鉤連是可識(shí)別的,而該驅(qū)動(dòng)器感知這些鉤連并對(duì)它們計(jì)數(shù)。如果該驅(qū)動(dòng)器感知它不是第一個(gè)鉤連,則該驅(qū)動(dòng)器最好試圖在已存在的鉤連之上建立鉤連。在其他實(shí)施例中,系統(tǒng)被安排成該驅(qū)動(dòng)器破壞其自身和存儲(chǔ)庫(kù),其作法是重復(fù)地覆寫硬盤驅(qū)動(dòng)器中它所在的那些部分。以這種方式,使數(shù)據(jù)不能被竄改。
在操作過程中,該驅(qū)動(dòng)器為計(jì)算機(jī)的實(shí)際操作系統(tǒng)創(chuàng)建標(biāo)志或位置的持有者。這些標(biāo)志也是進(jìn)入驅(qū)動(dòng)器的入口,該驅(qū)動(dòng)器把標(biāo)志名翻譯成實(shí)際名。該驅(qū)動(dòng)器截?cái)鄬?duì)操作系統(tǒng)的低層次調(diào)用,以確定該過程是否要在存儲(chǔ)庫(kù)內(nèi)的文件上進(jìn)行。如果該過程是要在該存儲(chǔ)庫(kù)內(nèi)的文件上進(jìn)行,則該驅(qū)動(dòng)器將該功能及實(shí)際文件名與庫(kù)分配表中的允許表比較,以確定那個(gè)過程是否能在識(shí)別出的文件上進(jìn)行。如果該允許被拒絕,則該驅(qū)動(dòng)器或者能通過WIN32層返回一個(gè)“該文件不能被找到”或“已進(jìn)行了非法命令”的消息并阻止處理過程,或者能通過覆蓋寫來破壞它本身。如果允許被允許,則驅(qū)動(dòng)器進(jìn)入該表以得到特定文件的存儲(chǔ)庫(kù)地址。該驅(qū)動(dòng)器使用該地址以及存儲(chǔ)庫(kù)分配表中的加密壓縮和填充信息,把文件從存儲(chǔ)庫(kù)中拉出并按指令對(duì)其進(jìn)行操作。存儲(chǔ)庫(kù)控制塊監(jiān)視該文件被如何使用,以確定它是否遵從了關(guān)于該文件允許使用次數(shù)或持續(xù)時(shí)間的規(guī)則設(shè)置。
一個(gè)黑客有可能在系統(tǒng)啟動(dòng)之前進(jìn)入系統(tǒng)并對(duì)存儲(chǔ)庫(kù)定位,所以提供了若干保護(hù)層以防止對(duì)該文件或驅(qū)動(dòng)器的未授權(quán)復(fù)制、移動(dòng)、傳輸或操作。于是,在驅(qū)動(dòng)器和存儲(chǔ)器中納入了相互獨(dú)立和分層的保護(hù)機(jī)制。
第一個(gè)機(jī)制是把存儲(chǔ)庫(kù)、驅(qū)動(dòng)器和/或允許數(shù)據(jù)庫(kù)錨定(anchor)在被授權(quán)的計(jì)算機(jī)中。對(duì)這些項(xiàng)目的錨定點(diǎn)最好在該系統(tǒng)第一次運(yùn)行時(shí)確定。錨定點(diǎn)被定義為存儲(chǔ)庫(kù)、驅(qū)動(dòng)器或允許數(shù)據(jù)庫(kù)駐留的起始群集(clusters)所在的地址。在這個(gè)實(shí)施例中最好有各種錨定組合并用作加密/解密的密鑰。如果在這一實(shí)施例中后來該密鑰不“工作”,則表明這些文件中有一個(gè)或多個(gè)被移動(dòng)或修改。所以,系統(tǒng)在操作前將檢驗(yàn)該驅(qū)動(dòng)器、存儲(chǔ)庫(kù)和/或允許數(shù)據(jù)庫(kù)是否已被移動(dòng)。如果是,則在這個(gè)實(shí)施例中,它將指令驅(qū)動(dòng)器覆蓋寫它本身及存儲(chǔ)庫(kù),因?yàn)檫@種移動(dòng)是已被竄改或移動(dòng)的指示。所存儲(chǔ)文件或驅(qū)動(dòng)器在計(jì)算機(jī)硬盤驅(qū)動(dòng)器上的起始點(diǎn)通常是計(jì)算機(jī)制造商、計(jì)算機(jī)型號(hào)以及先前在計(jì)算機(jī)硬盤驅(qū)動(dòng)器上存儲(chǔ)的數(shù)據(jù)和文件量的函數(shù)。所以這等價(jià)于一個(gè)隨機(jī)發(fā)生器識(shí)別代碼。如果該驅(qū)動(dòng)器或存儲(chǔ)庫(kù)被啟動(dòng),但它不認(rèn)出它自己的錨定位置,它將覆蓋寫它本身。再有,如果它不能認(rèn)出相應(yīng)組成部分(相應(yīng)的驅(qū)動(dòng)器或存儲(chǔ)庫(kù))的地址,它便知道或者它或者其他部分已被移動(dòng)因而被簾改,于是將覆蓋寫它們本身。
再有,該驅(qū)動(dòng)器能向存儲(chǔ)庫(kù)發(fā)送一個(gè)CRC型檢驗(yàn)和。該存儲(chǔ)庫(kù)在允許對(duì)一文件進(jìn)行操作之前利用該校驗(yàn)和以確認(rèn)驅(qū)動(dòng)器的完整性和同一性。如果彼此不能相認(rèn),則它們將覆蓋寫它們本身,以實(shí)現(xiàn)阻止對(duì)文件的未授權(quán)使用。
在處理過程中,對(duì)存儲(chǔ)庫(kù)內(nèi)的文件數(shù)據(jù)進(jìn)行操作的計(jì)算機(jī)程序?qū)⒆詈檬莿?chuàng)建其他軟件操作所需要的數(shù)據(jù)文件。一個(gè)例子是用于打印。打印文件在存儲(chǔ)庫(kù)內(nèi)創(chuàng)建中間數(shù)據(jù)文件,從而在存儲(chǔ)庫(kù)外部不會(huì)發(fā)生“背接通”。結(jié)果,創(chuàng)建臨時(shí)文件供其使用的其他軟件程序?qū)嶋H上是通過該驅(qū)動(dòng)器進(jìn)行工作以實(shí)現(xiàn)它們?cè)诖鎯?chǔ)庫(kù)內(nèi)的操作。
如果該存儲(chǔ)庫(kù)和/或驅(qū)動(dòng)器要以某種方式再傳送給一個(gè)非授權(quán)計(jì)算機(jī),則本發(fā)明在端口管理系統(tǒng)級(jí)進(jìn)行操作以阻止任何數(shù)據(jù)離開,如下文中將詳細(xì)討論的那樣。
避開這種保護(hù)的一種嘗試可能是把一個(gè)受保護(hù)的文件復(fù)制到一個(gè)會(huì)對(duì)應(yīng)于存儲(chǔ)庫(kù)中未發(fā)現(xiàn)的文件的總文件中。實(shí)際上,使用如MicrosoftWord中已知的“剪切板”功能。該驅(qū)動(dòng)器監(jiān)視這些低層次操作系統(tǒng)調(diào)用。當(dāng)由驅(qū)動(dòng)器監(jiān)測(cè)到一個(gè)對(duì)存儲(chǔ)庫(kù)中文件的復(fù)制命令時(shí),則驅(qū)動(dòng)器通過WIN32層顯示一個(gè)消息,告訴用戶或者是存儲(chǔ)器滿,或者是沒有存儲(chǔ)器或者是非法操作。
如前文指出的那樣,在本實(shí)施例中最好有9個(gè)裝置驅(qū)動(dòng)器。在本實(shí)施例中這9個(gè)裝置驅(qū)動(dòng)器在圖1中標(biāo)識(shí)為DGCOMM 22,它主要負(fù)責(zé)Win32過程(標(biāo)識(shí)為DG32 20)與驅(qū)動(dòng)器之間的通信;DGFS 24,它作為文件系統(tǒng)驅(qū)動(dòng)器進(jìn)行操作;DGPRMDB 26,它負(fù)責(zé)維持允許數(shù)據(jù)庫(kù)和使允許生效;DGVAULT 28,它負(fù)責(zé)存儲(chǔ)庫(kù)并含有全部被加密的數(shù)據(jù);DGGUARD 30,它保護(hù)對(duì)輸入/輸出端口、注冊(cè)表(registry)、TCP/IP和共享存儲(chǔ)器的訪問;DGWATCH 32,它定時(shí)檢驗(yàn)系統(tǒng)完整性;DGTIMER 34,它提供規(guī)則的計(jì)時(shí)器間隔;DGANCHOR 36,它防止移動(dòng)或攻擊各組成部分;以及DGCRYPT 38,它提供對(duì)數(shù)據(jù)的加密/解密。
DG32 20是Win32過程,它的作用是接收器14的命令中心。在這一實(shí)施例中,DG32 20注視要執(zhí)行的包并提示用戶給出文件命以存儲(chǔ)包有效負(fù)載;通知DGFS 24一個(gè)包有效負(fù)載應(yīng)被吸收到存儲(chǔ)庫(kù)中;當(dāng)DGFS 24通知DG32 20有一個(gè)應(yīng)用正試圖打開一個(gè)受保密的文件時(shí),向終端用戶呈現(xiàn)一個(gè)對(duì)話;當(dāng)應(yīng)用退出時(shí)通知裝置驅(qū)動(dòng)器;當(dāng)允許期滿時(shí)應(yīng)允許裝置驅(qū)動(dòng)器的要求封鎖剪切板訪問并終止應(yīng)用。
DGCOMM 22處理Win32層和裝置驅(qū)動(dòng)器層之間的所有通信。在這一實(shí)施例中,DGCOMM 22最好是提供單個(gè)一組裝置驅(qū)動(dòng)器輸入/輸出控制功能,它們被從Win32層調(diào)用以向裝置驅(qū)動(dòng)器層發(fā)送信息或從裝置驅(qū)動(dòng)器層接收信息,并提供由其他裝置驅(qū)動(dòng)器使用的功能以通知Win32它應(yīng)調(diào)用一個(gè)裝置以從裝置驅(qū)動(dòng)器層提取某些信息。
在這一實(shí)施例中的DGFS 24負(fù)責(zé)維持穿過可安裝的文件系統(tǒng)管理器的文件系統(tǒng)調(diào)用。DGFS 24最好提供如下主要功能實(shí)施對(duì)受保密的文件的應(yīng)用訪問,為數(shù)據(jù)進(jìn)出存儲(chǔ)庫(kù)提供通道,為標(biāo)志文件制造假的文件大小以及隱藏或“遮掩”受保密的系統(tǒng)文件。
在這一實(shí)施例中的DGVAULT是一個(gè)自含式(self-contained)文件系統(tǒng),用于存儲(chǔ)受保密的文件以及由打開DCCRYPT文件的應(yīng)用程序創(chuàng)建的臨時(shí)文件。最好是存儲(chǔ)庫(kù)中的所有數(shù)據(jù)都被加密并包含各組成部分,包括存儲(chǔ)庫(kù)控制塊(Vault Control Block)、文件控制塊(FileControl Block)、存儲(chǔ)庫(kù)分配表(Vault Allocation Table)和存儲(chǔ)庫(kù)數(shù)據(jù)。
在這一實(shí)施例中的DGPRMDB 26含有關(guān)于存儲(chǔ)庫(kù)中文件的信息;例如,文件允許信息,包括但不限于數(shù)據(jù)文件可被打開的時(shí)間長(zhǎng)度,一個(gè)文件可被打開的次數(shù),在其后一文件不再可以被打開的日期,文件打印允許以及剪切板允許。此外,該允許數(shù)據(jù)庫(kù)最好包括存儲(chǔ)庫(kù)中使用的文件名,凡打開過的每個(gè)包的包ID以及系統(tǒng)ID。
在這一實(shí)施例中的DGCRYPT 38提供對(duì)系統(tǒng)的加密和解密服務(wù),例如,重解密(heavy decryption)以從受保密的包中得到受保密的文件數(shù)據(jù),對(duì)進(jìn)、出DGVAULT 28所管理的存儲(chǔ)庫(kù)的數(shù)據(jù)進(jìn)行輕度加密/解密,以及對(duì)DGPRMDB 26管理的允許數(shù)據(jù)庫(kù)進(jìn)行輕度加密。
在這一實(shí)施例中的DGANCHOR 36為系統(tǒng)提供另一層安全性。例如,在這一實(shí)施例中,DGANCHOR 36根據(jù)文件的物理位置以及作為加密/解密密鑰的所有錨的組合,為系統(tǒng)中的每個(gè)文件確定一個(gè)唯一的標(biāo)識(shí)(錨)。
在這一實(shí)施例中的DGGUARD 30負(fù)責(zé)封鎖對(duì)各種注冊(cè)表?xiàng)l目(registry entries)的訪問,例如串行和并行端口連接,網(wǎng)絡(luò)連接,數(shù)據(jù)牽引和置放,以及續(xù)傳電子郵件連接。
DGWATCH 32的作用是該系統(tǒng)的看門狗。在這一實(shí)施例中,DGWATCH 32以最好是規(guī)則的時(shí)間間隔詢問系統(tǒng)中的所有裝置驅(qū)動(dòng)器以保證系統(tǒng)的完整性。
在這一實(shí)施例中的DGTIMER 34為系統(tǒng)提供內(nèi)部計(jì)時(shí)服務(wù)。在本實(shí)施例中,DGTIMER 34按最好是規(guī)則的時(shí)間間隔調(diào)用DGWATCH 32以確信所有部件仍在適當(dāng)?shù)剡\(yùn)行,按最好是規(guī)則的時(shí)間間隔調(diào)用DGPRMBD 26從而使計(jì)時(shí)器和允許信息能被更新,以及在計(jì)劃進(jìn)行整個(gè)系統(tǒng)完整性檢驗(yàn)之后按短的時(shí)間間隔調(diào)用DGPRMBD 26,例如幾秒鐘一次。在本實(shí)施例中這9個(gè)裝置驅(qū)動(dòng)器的能力以及各裝置驅(qū)動(dòng)器在運(yùn)行中彼此之間的關(guān)系,將在下文中更詳細(xì)地描述。
根據(jù)本實(shí)施例的另一個(gè)保護(hù)機(jī)制是監(jiān)視系統(tǒng)注冊(cè)表。注冊(cè)表是配置數(shù)據(jù)的分層存儲(chǔ)倉(cāng)庫(kù)。注冊(cè)表可以追蹤計(jì)算機(jī)上存儲(chǔ)的所有軟件,以及程序間的關(guān)系。注冊(cè)表可以追蹤多個(gè)用戶和硬件配置。在多個(gè)用戶當(dāng)中的優(yōu)選(preference)可以改變。
在注冊(cè)表中的每一段數(shù)據(jù)有一個(gè)與其關(guān)聯(lián)的鍵(Key)值。名字和值一起被稱作一個(gè)值條目。一個(gè)鍵類似于一個(gè)文件夾而它本身可以包含一個(gè)或多個(gè)文件夾(它們可被稱作子鍵)以及一個(gè)或多個(gè)名字—值對(duì)。鍵也可被稱作名字或操縱柄(handle)。為訪問數(shù)據(jù)和提取所存儲(chǔ)的值,需要正確的鍵。
因?yàn)樽?cè)表是一個(gè)數(shù)據(jù)庫(kù),因而是一個(gè)數(shù)據(jù)存儲(chǔ)位置,它可用于泄出數(shù)據(jù)(Leaking data)。在這里使用的“泄出數(shù)據(jù)”意思是從希望在其中使數(shù)據(jù)被保密的系統(tǒng)向外傳送數(shù)據(jù)。一個(gè)過程可以向注冊(cè)表寫信息,例如用于臨時(shí)存儲(chǔ)。然后另一個(gè)過程可以訪問這注冊(cè)表中的信息并把該數(shù)據(jù)寫入一個(gè)注冊(cè)表鍵中。然后另一過程可以從這個(gè)注冊(cè)表鍵中讀出該數(shù)據(jù)并寫入盤或其他存儲(chǔ)裝置,從而泄出數(shù)據(jù)。于是,對(duì)于數(shù)據(jù)安全性重要的應(yīng)用,需要限制數(shù)據(jù)從注冊(cè)表泄出。
下面說明監(jiān)視注冊(cè)表的方法和系統(tǒng)的若干實(shí)施例,它們可能會(huì)減少或消除從注冊(cè)表泄出數(shù)據(jù)。本發(fā)明防護(hù)各個(gè)過程以拒絕向系統(tǒng)的不可見方面?zhèn)魉蛿?shù)據(jù)。這包括例如限制向文件系統(tǒng)寫、在通信端口上傳送數(shù)據(jù)、與其他過程共享存儲(chǔ)器以及向注冊(cè)表寫數(shù)據(jù)。
注冊(cè)表監(jiān)視方法的一個(gè)實(shí)施示例包含向調(diào)用過程要求一個(gè)注冊(cè)表鍵的操縱柄,為該操縱柄請(qǐng)求一個(gè)注冊(cè)表鍵值,以及通過檢驗(yàn)被保密的過程清單和拒絕清單來得到安全性許可證以完成這些請(qǐng)求。因?yàn)橄蜃?cè)表添加內(nèi)容的能力被封鎖,從注冊(cè)表刪除內(nèi)容的能力也被封鎖。所以,該系統(tǒng)包括一種方法用于修改和刪出含有安全性校驗(yàn)的鍵和值。
圖2和圖3描繪根據(jù)本發(fā)明的一個(gè)實(shí)施例的計(jì)算機(jī)系統(tǒng)100。注冊(cè)表?xiàng)l目護(hù)衛(wèi)驅(qū)動(dòng)器120與文件系統(tǒng)鉤連驅(qū)動(dòng)器140通信。這兩個(gè)驅(qū)動(dòng)器都存在于內(nèi)核(環(huán)0)級(jí)130。應(yīng)用程序160在較高級(jí)140上運(yùn)行。當(dāng)應(yīng)用160請(qǐng)求訪問注冊(cè)表110或共享存儲(chǔ)器115時(shí),護(hù)衛(wèi)驅(qū)動(dòng)器120與鉤連驅(qū)動(dòng)器140一起監(jiān)視和處置這些請(qǐng)求。
一個(gè)包攜帶數(shù)據(jù)并向命令中心提供相關(guān)聯(lián)的信息,該命令中心是應(yīng)用編程接口(例如Win32過程)的一個(gè)組件。一個(gè)通信驅(qū)動(dòng)器處置應(yīng)用編程接口與多個(gè)裝置驅(qū)動(dòng)器之間的通信。它提供單個(gè)一組裝置驅(qū)動(dòng)器I/O控制功能,這些功能由應(yīng)用編程接口調(diào)用以向裝置驅(qū)動(dòng)器發(fā)送信息或從中提取信息。由鉤連驅(qū)動(dòng)器調(diào)用通信驅(qū)動(dòng)器以通知命令中心有一過程正試圖打開一個(gè)被打包的文件。這些裝置驅(qū)動(dòng)器與應(yīng)用編程接口一起服從發(fā)源者(originator)的允許選擇,把被打包的內(nèi)容調(diào)度到一個(gè)存儲(chǔ)庫(kù)中并支持對(duì)該內(nèi)容的訪問。命令中心可以注視要被執(zhí)行的包并提示用戶給出文件名以保存包的有效負(fù)載。它可以通知文件系統(tǒng)鉤連驅(qū)動(dòng)器有一個(gè)包的有效負(fù)載應(yīng)被吸收到存儲(chǔ)庫(kù)中。它可以向用戶呈現(xiàn)一個(gè)對(duì)話,指出一個(gè)應(yīng)用正試圖打開一個(gè)包文件。當(dāng)應(yīng)用退出時(shí)它還可以通知裝置驅(qū)動(dòng)器106。當(dāng)允許期滿時(shí),命令中心可以應(yīng)允許裝置驅(qū)動(dòng)器的請(qǐng)求封鎖剪切板訪問和終止應(yīng)用。允許信息包含在一個(gè)數(shù)據(jù)庫(kù)中,它可以包括例如文件名、包ID、文件系統(tǒng)ID和文件允許信息。文件允許信息包括但不限于一個(gè)文件可被打開的時(shí)間長(zhǎng)度或次數(shù)、在其后一個(gè)文件不再可以被打開的日期以及打印和剪切板允許。
文件系統(tǒng)鉤連驅(qū)動(dòng)器140從正在等待訪問一包或被吸收的文件的用戶那里得到數(shù)據(jù)請(qǐng)求。當(dāng)鉤連驅(qū)動(dòng)器140收到這些請(qǐng)求時(shí),它對(duì)過程進(jìn)行安全檢查,然后詢問用戶。然后該過程被添加到被保密的過程清單中。注冊(cè)表監(jiān)視器被告知該過程是受保密的,因而它可以在將來封鎖訪問。
圖4A-C描繪本發(fā)明的一個(gè)實(shí)施示例。本領(lǐng)域技術(shù)人員將會(huì)理解,對(duì)注冊(cè)表監(jiān)視系統(tǒng)的各種改變,包括安全檢查以封鎖對(duì)鍵和值的封鎖,等效于這里所描述的步驟,因而在本發(fā)明的精神和范圍之內(nèi)。圖4A描繪注冊(cè)表打開鍵調(diào)用的過濾序列示例。進(jìn)行這一調(diào)用是要得到一個(gè)由注冊(cè)表鍵到一調(diào)用過程的操縱柄。注冊(cè)表鍵操縱柄調(diào)用是在步驟302進(jìn)行的。在步驟304,確定一個(gè)過程ID和注冊(cè)表鍵。根據(jù)這一信息,在步驟306,通過檢驗(yàn)被保密過程清單,確定該過程是否是受保密的。隨著各個(gè)調(diào)用的啟動(dòng),這受保密過程清單被持續(xù)地更新。如果該過程是受保密的,則在步驟308確定該注冊(cè)表鍵是否是在拒絕清單中。這拒絕清單也是被持續(xù)更新的。如果這注冊(cè)表鍵是在拒絕清單上,則在步驟310該過程被拒絕訪問注冊(cè)表,而這一調(diào)用在步驟312被成功地過濾。如果該過程不在受保密的清單上或者如果該注冊(cè)表鍵名不在拒絕清單上,則在步驟314完成這一請(qǐng)求而該調(diào)用在步驟312被成功地過濾。
圖4B是注冊(cè)表鍵值調(diào)用過濾序列的流程圖示例。在步驟316請(qǐng)求該操縱柄的注冊(cè)表鍵值。在步驟318確定過程ID和注冊(cè)表鍵值。在步驟320,再次查詢受保密過程清單以確定該過程是否是受保密的。如果該過程是受保密的,則在步驟322確定該注冊(cè)表鍵是否在拒絕清單上。如果該注冊(cè)表鍵是在拒絕清單上,則在步驟324該過程被拒絕訪問注冊(cè)表鍵值,而且該調(diào)用在塊326被成功地過濾。如果該過程不在受保密清單上,則在步驟328完成該請(qǐng)求,而該調(diào)用在塊326被成功地過濾。如果該注冊(cè)表鍵不在拒絕清單上,則在步驟330處理值請(qǐng)求,并在步驟332確定該值是否在拒絕清單上。如果該值不在拒絕清單上,則在步驟328允許完成該請(qǐng)求,而該調(diào)用在塊326被成功地過濾。如果該值在拒絕清單上,則在步驟324拒絕對(duì)注冊(cè)表鍵值的訪問,而該調(diào)用在塊326被成功地過濾。
然后操縱柄和值可被刪除或修改。用4C中描繪了刪除或修改序列的流程圖示例。在步驟334進(jìn)行刪除或設(shè)值調(diào)用。然后在步驟336確定過程ID。然后,在步驟338通過檢驗(yàn)該過程是否在受保密過程清單上來確定該過程是否是受保密的。如果該過程不是在受保密過程清單上,則在步驟340完成該請(qǐng)求,并在步驟342通過建立一個(gè)記錄并把該記錄送入受保密過程清單,來使該調(diào)用被追蹤。如果該過程是在受保密的過程清單上,則在步驟344不允許完成該請(qǐng)求。在步驟342,通過建立一個(gè)記錄并把該記錄送入受保密過程清單,來使該調(diào)用被追蹤。
進(jìn)一步說明一個(gè)注冊(cè)表監(jiān)視系統(tǒng),這里的注冊(cè)表按這里描述的方法被監(jiān)視。此外,本發(fā)明的一個(gè)實(shí)施例包括一個(gè)計(jì)算機(jī),它被配置成根據(jù)這些方法監(jiān)視注冊(cè)表。本發(fā)明的一些實(shí)施例進(jìn)一步包括一個(gè)機(jī)器可讀的介質(zhì),其中含有根據(jù)這里描述的方法監(jiān)視注冊(cè)表的程序。
另一保護(hù)機(jī)制是監(jiān)視和管理共享存儲(chǔ)器。共享存儲(chǔ)器可用于兩個(gè)或多個(gè)當(dāng)前正在運(yùn)行的任務(wù)或線程之間的通信。一個(gè)程序創(chuàng)建的存儲(chǔ)器段可以由其他過程訪問。
共享存儲(chǔ)器還可被利用供泄出數(shù)據(jù)。如果一個(gè)過程向一共享存儲(chǔ)器位置寫信息而另一過程從那個(gè)位置訪問信息,則發(fā)生數(shù)據(jù)泄出。
已知為封鎖共享存儲(chǔ)器,通常要避免過程訪問序列外的數(shù)據(jù)以保證只使用更新過的數(shù)據(jù)。在由第一個(gè)過程使用期間,對(duì)共享存儲(chǔ)器空間的訪問被禁止,然后才打開封鎖允許共享該空間的過程去訪問更新過的數(shù)據(jù)。現(xiàn)有技術(shù)中已知的存儲(chǔ)器封鎖不能解決數(shù)據(jù)泄出問題。因此,在數(shù)據(jù)安全性重要的地方,便需要限制從共享存儲(chǔ)器泄出數(shù)據(jù)。
這里公開的實(shí)施例可以禁止具有共享頁(yè)面的過程訪問受保密的數(shù)據(jù)。對(duì)共享頁(yè)面的封鎖過程可以減少或消除從共享存儲(chǔ)器中泄出數(shù)據(jù)。實(shí)施例包括在一過程被允許打開一受保密的數(shù)據(jù)文件之前進(jìn)行安全檢查。這種安全檢查可以包含查明該過程的共享存儲(chǔ)器狀態(tài)和確定該過程是否在受保密過程清單。
共享存儲(chǔ)器封鎖過程可分成兩個(gè)主要部分。第一部分包含鉤連服務(wù)調(diào)用,包括用于收集數(shù)據(jù)的預(yù)約、提交和釋放調(diào)用。第二部分包括使用數(shù)據(jù)以控制對(duì)受保密數(shù)據(jù)的訪問。
針對(duì)圖2和圖3,當(dāng)鉤連驅(qū)動(dòng)器202收到請(qǐng)求時(shí),它調(diào)用注冊(cè)表?xiàng)l目護(hù)衛(wèi)驅(qū)動(dòng)器204以確定該過程是否是受保密的以及是否存在共享頁(yè)面。護(hù)衛(wèi)驅(qū)動(dòng)器204檢驗(yàn)受保密的過程及共享存儲(chǔ)器記錄。如果不存在共享,則該請(qǐng)求可被應(yīng)允,如果存在共享,則護(hù)衛(wèi)驅(qū)動(dòng)器204通知鉤連驅(qū)動(dòng)器202該過程不是受保密的,所以該請(qǐng)求被拒絕。如果這些頁(yè)面不是共享的,則該用戶被允許訪問受保密的數(shù)據(jù)并把該過程放到受保密過程清單上。
下面是本發(fā)明的一個(gè)實(shí)施示例。本領(lǐng)域技術(shù)人員將會(huì)理解,對(duì)共享存儲(chǔ)器封鎖的各種改變,包括安全檢查以確定這些過程是否是受保密的和這些頁(yè)面是否是共享的,等效于這里所描述的步驟,因而在本發(fā)明的精神和范圍內(nèi)。圖5A-D中描繪了共享存儲(chǔ)器封鎖的實(shí)施示例。圖5A是頁(yè)面預(yù)訂調(diào)用過濾序列示例的流程圖。預(yù)訂調(diào)用為一個(gè)發(fā)請(qǐng)求的應(yīng)用預(yù)定一個(gè)存儲(chǔ)器頁(yè)面。該過濾序列在步驟402中提供該調(diào)用而開始。然后在步驟404中該調(diào)用被過濾,作法是首先根據(jù)請(qǐng)求參數(shù)確定該頁(yè)面能否被共享。如果該頁(yè)面不能被共享,則在步驟406允許完成該請(qǐng)求。如果該頁(yè)面能被共享,則在步驟408該預(yù)定調(diào)用被追蹤,作法是建立一個(gè)記錄并把該記錄送入一個(gè)共享存儲(chǔ)器清單。該記錄可以包括過程ID、頁(yè)面號(hào)和共享計(jì)數(shù)。圖5B描繪用于過濾一頁(yè)面提交調(diào)用的序列示例。在步驟410提供了一個(gè)頁(yè)面提交調(diào)用,用于為發(fā)請(qǐng)求的過程或?yàn)槠浜蟀l(fā)請(qǐng)求的過程提交存儲(chǔ)器頁(yè)面。在步驟412,通過訪問共享存儲(chǔ)器清單確定該頁(yè)面是否被另一過程共享。如果該頁(yè)面是被共享的,則在步驟414通過訪問受保密過程清單確定這些共享過程中是否有哪一個(gè)為受保密的。受保密過程清單是通過連續(xù)編譯當(dāng)用戶試圖打開受保護(hù)文件時(shí)產(chǎn)生的記錄而建立的。如果任一個(gè)過程是受保密的,則不允許頁(yè)面共享,如步驟416中所示,而且在步驟418中該提交調(diào)用被追蹤。如果兩個(gè)過程都不是受保密的,則在步驟420建立一個(gè)新的共享存儲(chǔ)器記錄,并在步驟422用這新記錄中包含的信息去更新共享存儲(chǔ)器清單。對(duì)任何共享頁(yè)面的過程還更新共享計(jì)數(shù)。如果該頁(yè)面不是共享的,則在步驟424中完成該提交請(qǐng)求。然后進(jìn)行被提交的應(yīng)用。圖5C描述頁(yè)面釋放調(diào)用的過濾序列示例。頁(yè)面釋放調(diào)用可以用于釋放一些或全部地址空間的存儲(chǔ)器頁(yè)面。在步驟426提供這一調(diào)用。在步驟428通過檢驗(yàn)受保密過程清單來確定該過程是否是受保密的。如果該過程是受保密的,則在步驟430對(duì)該頁(yè)面覆蓋寫,以刪除受保密的數(shù)據(jù),并在步驟432刪除共享存儲(chǔ)器清單中其頁(yè)面號(hào)與覆蓋寫的頁(yè)面相同的全部記錄。如果該過程不是受保密的,則在步驟432中也從共享存儲(chǔ)器清單中刪除其頁(yè)面號(hào)對(duì)應(yīng)于未受保密過程頁(yè)面的全部記錄。一旦頁(yè)面被刪除,則在步驟434該頁(yè)面釋放調(diào)用被追蹤。
在一個(gè)過程被允許通過鉤連驅(qū)動(dòng)器打開打包的數(shù)據(jù)之前,要進(jìn)行安全檢查以確定該過程的共享存儲(chǔ)器狀態(tài),并因此確定是否應(yīng)允對(duì)該過程的訪問。沒有任何帶有共享頁(yè)面的過程被允許訪問打包的數(shù)據(jù)。圖5D是共享存儲(chǔ)器狀態(tài)安全檢查流程圖。在步驟490中該安全檢查被啟動(dòng)。在步驟492確定該過程是否有任何頁(yè)面帶有大于零的共享計(jì)數(shù)。如果該過程有任何頁(yè)面帶有大于零的共享計(jì)數(shù),則該過程沒能通過安全檢驗(yàn),于是在步驟414拒絕對(duì)該過程的訪問。如果該過程沒有任何頁(yè)面其共享計(jì)數(shù)大于零,則在步驟416應(yīng)允對(duì)受保密數(shù)據(jù)的訪問并把該過程添加到受保密過程清單。
又一個(gè)實(shí)施示例是針對(duì)一個(gè)共享存儲(chǔ)器封鎖系統(tǒng),其中該系統(tǒng)根據(jù)這里描述的方法封鎖存儲(chǔ)器。所示共享存儲(chǔ)器封鎖系統(tǒng)實(shí)施例包含一個(gè)應(yīng)用編程接口以把一個(gè)或多個(gè)打包的文件調(diào)度到一個(gè)受保密的存儲(chǔ)庫(kù)并支持文件內(nèi)容訪問。該應(yīng)用編程接口包括一個(gè)命令中心去監(jiān)視包訪問。一個(gè)文件系統(tǒng)鉤連驅(qū)動(dòng)器與該命令中心通信并與一注冊(cè)表?xiàng)l目護(hù)衛(wèi)驅(qū)動(dòng)器通信,以進(jìn)行共享存儲(chǔ)器封鎖。
進(jìn)一步公開的是受保密數(shù)據(jù)傳輸系統(tǒng),它具有接收器部件用于訪問由發(fā)送者提供的受保密的文件內(nèi)容,這里該接收器包括一個(gè)共享存儲(chǔ)器封鎖系統(tǒng)。
根據(jù)本發(fā)明的又一個(gè)保護(hù)機(jī)制是這里將要描述的數(shù)據(jù)背接通。
為了防止數(shù)據(jù)被未授權(quán)訪問,該數(shù)據(jù)可被加密。加密算法通常設(shè)計(jì)成使用一對(duì)密鑰—一個(gè)密鑰用于加密,一個(gè)密鑰用于解密。加密用于使信息編碼并把它作為加密的文件發(fā)送。加密也可用于建立兩個(gè)計(jì)算機(jī)之間的安全連接,從而使竊聽者不能截?cái)啾唤粨Q的數(shù)據(jù)。
一個(gè)加密的容器(container)可用于保護(hù)計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)。一個(gè)加密的容器是盤上的一個(gè)保留區(qū),受保護(hù)的數(shù)據(jù)被復(fù)制和保存到它的上面。這可通過建立一個(gè)加密的文件來實(shí)現(xiàn),該文件被作為文件系統(tǒng)安裝并起文件系統(tǒng)的作用。先有技術(shù)的加密容器允許內(nèi)容發(fā)布者向用戶發(fā)布內(nèi)容而不危及內(nèi)容的安全??蛻舳巳萜?container-opener)打開器應(yīng)用程序用于訪問這加密的容器。客戶端容器打開器可以以任意多種方式限制對(duì)加密容器內(nèi)數(shù)據(jù)的訪問。例如,它可以允許該數(shù)據(jù)只在某些時(shí)候或具有付款密鑰證明時(shí)才能被訪問。
一旦該容器被打開而且該數(shù)據(jù)被釋放,則先有技術(shù)的加密容器系統(tǒng)便有有限的安全性。當(dāng)在運(yùn)行先有技術(shù)的軟件和操作系統(tǒng)的計(jì)算機(jī)中打開一個(gè)文件時(shí),在系統(tǒng)操作過程中,例如在打印過程中,數(shù)據(jù)可能泄出到應(yīng)用中(例如剪切板或其他系統(tǒng)應(yīng)用)并可能被復(fù)制和不安全地留在那里。這危及了該系統(tǒng)的安全。
某些客戶端容器打開器可以帶有集成的數(shù)據(jù)顯示機(jī)制,它允許用戶觀看該保密數(shù)據(jù)。例如,F(xiàn)ilio(NextPage公司)提供了一個(gè)觀看者瀏覽器用于顯示文件,該觀看者瀏覽器通過關(guān)掉應(yīng)用級(jí)控制來防止對(duì)數(shù)據(jù)的未授權(quán)使用。然而,這意味著當(dāng)Filio中的文件被顯示時(shí),數(shù)據(jù)仍能被保存到剪切板上并受到來自系統(tǒng)級(jí)的其他方式攻擊。
由客戶端容器打開器應(yīng)用程序做出的水印或數(shù)字指紋能用于追蹤已被打開并從加密容器中去掉的內(nèi)容的來源。這將允許追蹤已被未授權(quán)發(fā)布的內(nèi)容。然而,這仍允許數(shù)據(jù)被未授權(quán)用戶觀看。
所公開的實(shí)施例允許一個(gè)包括存儲(chǔ)器存儲(chǔ)庫(kù)系統(tǒng)的計(jì)算機(jī)系統(tǒng)由未保護(hù)的應(yīng)用使用來自該存儲(chǔ)庫(kù)的受保密的數(shù)據(jù),而不必修改這些應(yīng)用或安全性缺口。這是通過實(shí)現(xiàn)這些未保護(hù)應(yīng)用所用的或所產(chǎn)生的數(shù)據(jù)的背接通(back-channeling)來完成的(換句話說,這類數(shù)據(jù)的隔離和任何這類數(shù)據(jù)的創(chuàng)建都是在該存儲(chǔ)庫(kù)中而不是在系統(tǒng)存儲(chǔ)器中的任何其他地方),從而以保護(hù)原始受保密數(shù)據(jù)的相同方式進(jìn)行保護(hù)。
參考圖6,在一個(gè)最佳實(shí)施例中,背通道法在計(jì)算機(jī)系統(tǒng)500上實(shí)現(xiàn)。計(jì)算機(jī)系統(tǒng)500含有存儲(chǔ)器510,它可以以任意多種方式配置,且可以包括若干存儲(chǔ)器系統(tǒng)和多種存儲(chǔ)器介質(zhì)。在存儲(chǔ)器510中駐留至少一個(gè)存儲(chǔ)庫(kù)520。在一個(gè)最佳實(shí)施例中,存儲(chǔ)庫(kù)520使用一個(gè)文件的邏輯構(gòu)造,并在其中嵌入一個(gè)簡(jiǎn)單的、穩(wěn)健的文件結(jié)構(gòu),能管理來自異類(heterogenous)文件源的數(shù)據(jù)。存儲(chǔ)器510及硬件只能由駐留在內(nèi)核(環(huán)0)級(jí)530中的內(nèi)核方式應(yīng)用程序直接訪問。這種內(nèi)核方式應(yīng)用程序之一是文件系統(tǒng)安全驅(qū)動(dòng)器540。如箭頭所示,在任何較高級(jí)的較高級(jí)應(yīng)用程序(在圖6中集體顯示為550)只通過駐留在內(nèi)核(環(huán)0)級(jí)530中的應(yīng)用程序訪問存儲(chǔ)器。在本發(fā)明的一個(gè)最佳實(shí)施例中,與文件系統(tǒng)安全驅(qū)動(dòng)器540相關(guān)聯(lián)的安全系統(tǒng)保證由較高級(jí)應(yīng)用560提出的數(shù)據(jù)請(qǐng)求總是由文件系統(tǒng)驅(qū)動(dòng)器540處置。文件系統(tǒng)安全驅(qū)動(dòng)器540保持關(guān)于運(yùn)行中的受保密過程、較高級(jí)應(yīng)用用于訪問受保密文件及其他存儲(chǔ)庫(kù)文件的文件操縱柄、以及文件系統(tǒng)安全驅(qū)動(dòng)器540能用于訪問受保密文件及其他存儲(chǔ)庫(kù)文件的存儲(chǔ)庫(kù)文件操縱柄的信息。文件系統(tǒng)安全驅(qū)動(dòng)器540使用這些信息確保對(duì)存儲(chǔ)庫(kù)信息的訪問是可能的但是是受限制的。這一點(diǎn)是通過對(duì)文件打開、文件讀/寫、文件信息、以及文件改變這些請(qǐng)求的截?cái)嗪妥饔脕硗瓿傻?。?duì)這些請(qǐng)求的處置示于圖7至圖10。
參考圖7,一個(gè)過程發(fā)出一個(gè)文件打開請(qǐng)求,該請(qǐng)求由文件系統(tǒng)安全驅(qū)動(dòng)器540(圖6)接收。一收到文件打開請(qǐng)求(600),該請(qǐng)求便被檢驗(yàn)看是否是針對(duì)受保密文件(605)。如果是,則該請(qǐng)求被檢驗(yàn)看該發(fā)請(qǐng)求的過程是否在受保密過程清單中(610)。
如果該請(qǐng)求是針對(duì)受保密文件的,而發(fā)請(qǐng)求的過程不在受保密過程清單上,則由安全驅(qū)動(dòng)器對(duì)發(fā)請(qǐng)求的過程進(jìn)行安全檢查(615)。如果該過程未通過安全檢查,則該發(fā)請(qǐng)求的過程得到對(duì)0字節(jié)標(biāo)志文件的訪問而不是對(duì)所請(qǐng)求的文件的訪問(620)。如果該過程通過了安全檢查,則對(duì)許可進(jìn)行檢查并詢問用戶是否要打開一個(gè)受保密文件(625)。如果許可是不允許的,或者如果用戶不想打開它,則該發(fā)請(qǐng)求的過程得到對(duì)0字節(jié)標(biāo)志文件的訪問而不是對(duì)所請(qǐng)求的文件的訪問(620)。如果用戶確想打開它,則此過程被添加到受保密過程清單(630)。(關(guān)于打開一受保密文件的信息將被傳送到安全驅(qū)動(dòng)器的一部分中,以便監(jiān)視所允許的文件打開個(gè)數(shù)。)將對(duì)該過程給予一個(gè)文件操縱柄并將建立相應(yīng)的存儲(chǔ)庫(kù)文件操縱柄;這些操縱柄將存儲(chǔ)在打開文件清單上供檢索(635)。以這種方式,一個(gè)文件被打開并準(zhǔn)備好用于背接通(640)。
如果該請(qǐng)求是針對(duì)一個(gè)受保護(hù)文件的,而且發(fā)請(qǐng)求的過程是在受保密過程清單上,那么如果該過程先前未曾打開這個(gè)請(qǐng)求的文件,則將發(fā)生檢驗(yàn)與詢問(225)。如果該過程在先前已打開了該文件,則該過程的活動(dòng)被背接通(back channoled)。該過程被給予一個(gè)文件操縱柄,并將創(chuàng)建相應(yīng)的存儲(chǔ)庫(kù)文件操縱柄;這些操縱柄將存儲(chǔ)在打開文件清單上供檢索(635)。一個(gè)文件被打開并準(zhǔn)備好用于背接通(640)。
如果該請(qǐng)求不是針對(duì)受保密文件的,則受保密過程清單被查詢,看該請(qǐng)求是否是由受保密過程做出的(645)。如果是,則進(jìn)行檢驗(yàn)看該文件是否存在(650)。如果它不存在,則為了背接通,在存儲(chǔ)庫(kù)中建立一個(gè)對(duì)應(yīng)于文件請(qǐng)求655的文件。以這種方式,一個(gè)受保密的過程不允許在存儲(chǔ)外建立文件(不受保密的文件)。這就是背接受——不允許一個(gè)受保密的過程把保密信息“泄漏”到不受該存儲(chǔ)庫(kù)保護(hù)的文件中。
如果該請(qǐng)求是由一個(gè)受保密過程發(fā)出的,但針對(duì)的不是一個(gè)受保密的文件,則該文件打開請(qǐng)求的文件請(qǐng)求標(biāo)記被修改,從而在這個(gè)未受保密的文件中的數(shù)據(jù)不能被抹掉或修改。以這種方式,一個(gè)受保密的過程能訪問存儲(chǔ)庫(kù)外的未受保密數(shù)據(jù),但不能對(duì)它寫——防止受保密的數(shù)據(jù)寫到未受保密(不在存儲(chǔ)庫(kù)中)的文件中。該修正過的請(qǐng)求被傳送到文件系統(tǒng)以完成該請(qǐng)求(665)。
如果該請(qǐng)求不是針對(duì)一個(gè)受保密的文件,而且不是由受保密的過程發(fā)出的請(qǐng)求,則該請(qǐng)求不涉及安全性問題,于是該請(qǐng)求被傳送到文件系統(tǒng)以完成該請(qǐng)求(665)。
以這種方式,受保密的數(shù)據(jù)只能由受保密的過程訪問,由受保密過程打開的新文件總是在存儲(chǔ)庫(kù)中創(chuàng)建,而且由受保密過程打開的不保密文件不能被寫入。
如圖8中所示,當(dāng)文件讀/寫請(qǐng)求被文件系統(tǒng)安全驅(qū)動(dòng)器(540,圖6)截?cái)鄷r(shí)也會(huì)實(shí)施背接通。當(dāng)在700收到這樣一個(gè)請(qǐng)求時(shí),便在705進(jìn)行檢驗(yàn)看該文件操縱柄是否在打開文件清單中。如果是,則該文件是在存儲(chǔ)庫(kù)中。在710進(jìn)行檢驗(yàn)看此發(fā)請(qǐng)求的過程是否在受保密過程清單中。如果是,則在715在相應(yīng)的存儲(chǔ)庫(kù)文件上實(shí)現(xiàn)該請(qǐng)求,從而完成該請(qǐng)求,從而在720背接通這讀或?qū)懻?qǐng)求。如果不是,則該請(qǐng)求是由一不受保密過程發(fā)出的針對(duì)一個(gè)受保密文件的請(qǐng)求,于是在725該請(qǐng)求被拒絕。
如果在檢驗(yàn)705該文件操縱柄不是在打開文件清單上,則進(jìn)行進(jìn)一步的檢驗(yàn)看該過程是否在受保密過程清單上(730)。如果不是,則允許文件系統(tǒng)完成該請(qǐng)求(735)。如果是,則檢驗(yàn)該請(qǐng)求是否是一個(gè)寫請(qǐng)求(740)。如果不是,則該文件可被打開,即使它是一個(gè)不受保密的文件而該過程是一個(gè)受保密的過程,因?yàn)樽x一個(gè)不受保密文件不會(huì)泄漏任何保密數(shù)據(jù)。該請(qǐng)求被傳送到文件系統(tǒng)735。如果該文件是不保密的,而該過程是受保密的,而該請(qǐng)求是寫,在這種情況下存在數(shù)據(jù)泄漏的危險(xiǎn)。所以寫請(qǐng)求被封鎖(725)。
以不同的方式處理文件信息請(qǐng)求——正確的文件大小甚至能被不受保密的過程訪問。這是文件大小欺騙(spoofing)——在該最佳實(shí)施例中,文件系統(tǒng)把受保密文件的訪問看作是指向一個(gè)零字節(jié)文件,于是,如果由文件系統(tǒng)處理一個(gè)文件大小請(qǐng)求,則將返回一個(gè)零大小。在此最佳實(shí)施例中,不保密的過程被允許看到保密文件的大小,所以,參考圖9,當(dāng)收到請(qǐng)求時(shí)(900),進(jìn)行檢驗(yàn)看它是否是存儲(chǔ)庫(kù)文件(805)。如果它不是存儲(chǔ)庫(kù)文件,則把請(qǐng)求傳送到文件系統(tǒng)以完成該請(qǐng)求(810)。如果它是一存儲(chǔ)庫(kù)文件的操縱柄或該存儲(chǔ)庫(kù)文件的名字,則檢驗(yàn)并返回相應(yīng)的實(shí)際存儲(chǔ)庫(kù)文件的大小(815)。
對(duì)文件改變請(qǐng)求——不是讀、寫或打開的改變請(qǐng)求——的處理與對(duì)文件寫的處理類似。參考圖10,當(dāng)收到文件改變請(qǐng)求時(shí)(900),檢驗(yàn)該請(qǐng)求看所訪問的文件是否是存儲(chǔ)庫(kù)文件(905)。如果是,則用新的文件信息更新打開文件清單以及其他數(shù)據(jù)庫(kù)(910)。如果該文件不是一個(gè)存儲(chǔ)庫(kù)文件,則檢驗(yàn)該過程看它是否是一個(gè)受保密過程(915)。如果它不是一個(gè)受保密過程,則不涉及任何安全性問題,于是該請(qǐng)求被傳送到文件系統(tǒng)以完成該請(qǐng)求(920)。如果它是一個(gè)受保密過程但該文件不是受保密的,則該請(qǐng)求被封鎖,以保證該受保密過程將不會(huì)損壞先前存在的數(shù)據(jù)(925)。
本發(fā)明的再一個(gè)實(shí)施示例是針對(duì)一個(gè)文件系統(tǒng)安全驅(qū)動(dòng)器,其中該驅(qū)動(dòng)器根據(jù)這里提供的方法實(shí)現(xiàn)一個(gè)具有背接通的存儲(chǔ)庫(kù)系統(tǒng)。所示文件系統(tǒng)安全驅(qū)動(dòng)器包含一個(gè)駐留在內(nèi)核級(jí)上的驅(qū)動(dòng)器,它監(jiān)視文件系統(tǒng)請(qǐng)求并允許在必要時(shí)有限制地訪問駐留在存儲(chǔ)庫(kù)上的文件和創(chuàng)建存儲(chǔ)庫(kù)文件。
進(jìn)一步公開的是一個(gè)受保密的數(shù)據(jù)傳輸系統(tǒng),它具有接收器部件去訪問由發(fā)送者提供的受保密文件的內(nèi)容,這里的接收器包括一個(gè)存儲(chǔ)庫(kù)系統(tǒng)和一個(gè)按照這里提供的方法工作的文件系統(tǒng)安全驅(qū)動(dòng)器。
再進(jìn)一步公開的是一個(gè)計(jì)算機(jī),被配置成包括一個(gè)存儲(chǔ)庫(kù)系統(tǒng)和一個(gè)被編程的計(jì)算機(jī)可讀介質(zhì),以監(jiān)視文件系統(tǒng)請(qǐng)求并按照這里提供的方法允許有限地訪問駐留在存儲(chǔ)庫(kù)上的文件和創(chuàng)建存儲(chǔ)庫(kù)文件。
根據(jù)本發(fā)明的另一種保護(hù)機(jī)制是堆棧定位(stack positioning),這里將詳細(xì)描述這一機(jī)制。
計(jì)算機(jī)系統(tǒng)通常包括一個(gè)或多個(gè)本地的或連成網(wǎng)絡(luò)的數(shù)據(jù)存儲(chǔ)裝置。在這種計(jì)算機(jī)系統(tǒng)上執(zhí)行的典型的應(yīng)用程序通過調(diào)用由操作系統(tǒng)提供的標(biāo)準(zhǔn)文件系統(tǒng)服務(wù)(如在數(shù)據(jù)存儲(chǔ)裝置上創(chuàng)建、讀和寫文件的服務(wù))來訪問這些數(shù)據(jù)存儲(chǔ)裝置。
裝置驅(qū)動(dòng)器是一組由計(jì)算機(jī)實(shí)現(xiàn)的指令,它們實(shí)現(xiàn)一般輸入/輸出操作的針對(duì)裝置的方面。在典型的操作系統(tǒng)中,如裝置驅(qū)動(dòng)器等軟件應(yīng)用以“內(nèi)核方式”或“用戶方式”運(yùn)行。一個(gè)虛擬裝置驅(qū)動(dòng)器是這樣一類裝置驅(qū)動(dòng)器,它有對(duì)操作系統(tǒng)內(nèi)核的直接訪問,如通過以內(nèi)核方式運(yùn)行來實(shí)現(xiàn)。
“內(nèi)核方式”是處理器的一種具有高度特權(quán)的存儲(chǔ)器訪問方式?!坝脩舴绞健笔翘幚砥鞯牟荒敲从刑貦?quán)的存儲(chǔ)器訪問方式。存儲(chǔ)器訪問方式是處理器硬件狀態(tài)的一部分。內(nèi)核方式特權(quán)級(jí)也稱作“環(huán)0”,而用戶方式特權(quán)級(jí)也稱作“環(huán)3”。內(nèi)核方式訪問允許虛擬裝置驅(qū)動(dòng)器在很低的級(jí)別上與系統(tǒng)和硬件資源交互作用。
在傳統(tǒng)的操作系統(tǒng)中,裝置驅(qū)動(dòng)器可以表示為一個(gè)在另一個(gè)頂上的分層結(jié)構(gòu)。這種分層結(jié)構(gòu)有時(shí)也稱作堆棧(stack)或調(diào)用鏈(callingchain)。通常控制一硬件裝置的驅(qū)動(dòng)器是最低級(jí)別的裝置驅(qū)動(dòng)器。如果在硬件驅(qū)動(dòng)器之上只有單個(gè)裝置驅(qū)動(dòng)器,則該驅(qū)動(dòng)器稱作單片(monolithic)驅(qū)動(dòng)器。然而,在最低級(jí)別驅(qū)動(dòng)器上可以放置多個(gè)驅(qū)動(dòng)器。對(duì)由最低級(jí)別驅(qū)動(dòng)器控制的一個(gè)或多個(gè)硬件裝置的輸入和輸出請(qǐng)求(“I/O請(qǐng)求”)首先由最高級(jí)別驅(qū)動(dòng)器處置,然后由任何較低級(jí)別的中間驅(qū)動(dòng)器逐一處理,最后由最低級(jí)別的驅(qū)動(dòng)器處置。
文件系統(tǒng)驅(qū)動(dòng)器一般是最高級(jí)別驅(qū)動(dòng)器,疊放在數(shù)據(jù)存儲(chǔ)裝置的裝置驅(qū)動(dòng)器(例如硬盤驅(qū)動(dòng)器)的上面。文件系統(tǒng)驅(qū)動(dòng)器實(shí)現(xiàn)指向文件系統(tǒng)的I/O請(qǐng)求的高級(jí)別方面,如創(chuàng)建、打開、擴(kuò)展以及刪除文件和目錄的那些請(qǐng)求。在單個(gè)計(jì)算機(jī)中可以存在多個(gè)文件系統(tǒng)驅(qū)動(dòng)器,而文件系統(tǒng)驅(qū)動(dòng)器可以針對(duì)不同類型的文件系統(tǒng),如FAT和NTFS文件系統(tǒng)。
在具有可安裝的文件系統(tǒng)管理器和分層裝置驅(qū)動(dòng)器的操作系統(tǒng)中監(jiān)視I/O請(qǐng)求,這在本領(lǐng)域是已知的,這些操作系統(tǒng)有例如Windows95、Windows98和WindowsMe操作系統(tǒng),它們可從華盛頓州Redmond的微軟公司得到,這里統(tǒng)稱為“Windows9X”。在Windows9X操作系統(tǒng)中,可通過注冊(cè)一個(gè)與可安裝的文件系統(tǒng)管理器鉤連的文件系統(tǒng)應(yīng)用編程接口來實(shí)現(xiàn)文件系統(tǒng)監(jiān)視。Windows9X提供一個(gè)函數(shù),稱作IFSMGR InstallFileSystemApiHook,它被設(shè)計(jì)成用于監(jiān)視對(duì)文件系統(tǒng)的I/O請(qǐng)求。這一服務(wù)允許虛擬裝置驅(qū)動(dòng)器通過鉤連到文件系統(tǒng)調(diào)用中來監(jiān)視所有的文件系統(tǒng)活動(dòng)。借助系統(tǒng)初始化過程中對(duì)IFSMGR InstallFileSystemApiHook的調(diào)用,一個(gè)虛擬裝置驅(qū)動(dòng)器可以把自己插入所有文件系統(tǒng)請(qǐng)求的堆棧中。
多少有些不同的途徑已經(jīng)用于監(jiān)視面向?qū)ο蟮牟僮飨到y(tǒng)上的文件系統(tǒng),這類操作系統(tǒng)有例如WindowsNT操作系統(tǒng)及其后繼的操作系統(tǒng),如Windows2000,它們可從華盛頓州Redmond的微軟公司得到,這里統(tǒng)稱為“WindowsNT”。在WindowsNT中,I/O請(qǐng)求用稱作I/O請(qǐng)求包(“IRPs”)的數(shù)據(jù)結(jié)構(gòu)來描述,它們用于軟件應(yīng)用和驅(qū)動(dòng)器之間的通信。所有對(duì)硬件裝置的IRP都由以內(nèi)核方式操作的裝置驅(qū)動(dòng)器處理。高級(jí)別的、中間的以及低級(jí)別的驅(qū)動(dòng)器交換IRP以完成給定的I/O請(qǐng)求。最低級(jí)別驅(qū)動(dòng)器調(diào)用一個(gè)稱作硬件訪問層(Hardware AccessLayer,HAL)的NT層以獲得對(duì)硬件的直接控制。已知在WindowsNT系統(tǒng)上把文件系統(tǒng)監(jiān)視器實(shí)現(xiàn)成一個(gè)裝置驅(qū)動(dòng)器對(duì)象,它創(chuàng)件過濾器裝置對(duì)象并把那些對(duì)象附著在目標(biāo)文件系統(tǒng)裝置對(duì)象上,從而使文件系統(tǒng)監(jiān)視器將看見指向被監(jiān)視數(shù)據(jù)存儲(chǔ)裝置的所有IRP。
在電子計(jì)算機(jī)的文件系統(tǒng)領(lǐng)域需要防止未授權(quán)的活動(dòng)(activity)。未授權(quán)活動(dòng)包括,但不限于,從受保密的文件或受保密的文件系統(tǒng)向一個(gè)未受保密的文件系統(tǒng)裝置驅(qū)動(dòng)器發(fā)送數(shù)據(jù),以及蓄意的、未授權(quán)的或偶然的對(duì)數(shù)據(jù)的修改或損壞,例如被計(jì)算機(jī)病毒。傳統(tǒng)的文件系統(tǒng)驅(qū)動(dòng)器,例如用于檢測(cè)和監(jiān)視文件系統(tǒng)中活動(dòng)的文件系統(tǒng)監(jiān)視器,通常不包括有效的安全措施來防止在目標(biāo)數(shù)據(jù)存儲(chǔ)裝置之上高于最高級(jí)別裝置驅(qū)動(dòng)器的級(jí)別上由軟件應(yīng)用或被成層的裝置驅(qū)動(dòng)器采取的未授權(quán)活動(dòng)或者使它本身成層的企圖。
還應(yīng)該理解,這里所用的術(shù)語“裝置驅(qū)動(dòng)器”或“驅(qū)動(dòng)器”包括直接或間接訪問或控制硬件裝置的任何一組由計(jì)算機(jī)實(shí)現(xiàn)的指令,包括但不限于裝置驅(qū)動(dòng)器、虛擬裝置驅(qū)動(dòng)器(VxD)、使用NT內(nèi)核方式體系結(jié)構(gòu)的指令組、使用Win 32驅(qū)動(dòng)器模式(WDM)的指令組、以及其他指令組,它們以任何計(jì)算機(jī)語言針對(duì)任何計(jì)算機(jī)、計(jì)算機(jī)體系結(jié)構(gòu)、網(wǎng)絡(luò)或操作系統(tǒng)寫成。
雖然在圖中所示實(shí)施例含有一個(gè)裝置驅(qū)動(dòng)器,為了演示的目的被描繪成“文件系統(tǒng)監(jiān)視器”,但如這里所使用的術(shù)語“文件系統(tǒng)監(jiān)視器”一般地指使用本發(fā)明的堆棧定位的任何種類裝置驅(qū)動(dòng)器。本發(fā)明范圍內(nèi)的裝置驅(qū)動(dòng)器可以實(shí)現(xiàn)可由裝置驅(qū)動(dòng)器實(shí)現(xiàn)的任何種類有用的功能,包括但不限于通用目的的監(jiān)視、許可監(jiān)視、過濾、加密、解密、病毒檢測(cè)、數(shù)據(jù)鏡象、指向任何裝置的I/O功能以及其他功能,而且不限于監(jiān)視或與文件系統(tǒng)有關(guān)的功能。實(shí)現(xiàn)堆棧定位的任何驅(qū)動(dòng)器裝置都適當(dāng)?shù)芈淙氡景l(fā)明的范圍。
本發(fā)明的一個(gè)實(shí)施例可在Windows9X操作系統(tǒng)上實(shí)現(xiàn)?,F(xiàn)在參考圖11,Windows9X操作系統(tǒng)的組成部件在用戶方式(user mode)代碼1000和內(nèi)核方式(kernel mode)代碼1030之間分割,它們提供不同級(jí)別的系統(tǒng)保護(hù)。對(duì)于一個(gè)實(shí)施例,用戶方式代碼1000包括一個(gè)能運(yùn)行16位和32位軟件應(yīng)用1021-1022的系統(tǒng)虛擬機(jī)1020和多個(gè)MS-DOS虛擬機(jī)1025。在這個(gè)實(shí)施例中,內(nèi)核方式代碼1030包含低級(jí)別的操作系統(tǒng)服務(wù)和虛擬裝置驅(qū)動(dòng)器,如虛擬機(jī)管理器1040、本發(fā)明的文件系統(tǒng)監(jiān)視器1050以及可安裝的文件系統(tǒng)管理器1060。
在可安裝的文件系統(tǒng)管理器1060的下面是用于文件系統(tǒng)(如FAT和NTFS)的多個(gè)文件系統(tǒng)驅(qū)動(dòng)器1070-1072。在文件系統(tǒng)驅(qū)動(dòng)器1070-1072的下面是塊I/O子系統(tǒng)1080。塊I/O子系統(tǒng)1080包括一個(gè)I/O監(jiān)督器(supervisor)1081,它管理那些通過文件系統(tǒng)分層結(jié)構(gòu)傳送的請(qǐng)求,還包括一個(gè)單片式驅(qū)動(dòng)器1082用于端口I/O,以及分層的多個(gè)裝置驅(qū)動(dòng)器1083-1084。
在這個(gè)實(shí)施例中,在來自用戶方式代碼10的和來自以用戶方式1000運(yùn)行的應(yīng)用1021-1022的I/O請(qǐng)求被送到可安裝的文件系統(tǒng)管理器1060之前,第一裝置驅(qū)動(dòng)器1050阻斷所有這些I/O請(qǐng)求。第一裝置驅(qū)動(dòng)器1050能監(jiān)視和過濾(如果希望過濾的話)在可安裝文件系統(tǒng)管理器1060、文件系統(tǒng)驅(qū)動(dòng)器1070-1072以及塊I/O子系統(tǒng)1080中發(fā)生的所有文件系統(tǒng)活動(dòng)。借助系統(tǒng)初始化過程中對(duì)IFSMGR InstallFileSystemApiHook的調(diào)用,在操作系統(tǒng)啟動(dòng)或重啟動(dòng)時(shí)第一裝置驅(qū)動(dòng)器1050被鉤連到這類調(diào)用中,在此時(shí)它在功能上被插入到所有文件系統(tǒng)請(qǐng)求堆棧上的最上層位置。從可安裝的文件系統(tǒng)管理器1060向下竄過多層結(jié)構(gòu)1083-1084中的每個(gè)驅(qū)動(dòng)器,一個(gè)I/O請(qǐng)求從最高級(jí)別傳送到最低級(jí)別,而當(dāng)一請(qǐng)求的結(jié)果沿這堆棧向上傳到該I/O請(qǐng)求的源頭時(shí),這些裝置還能看到這個(gè)請(qǐng)求結(jié)果。在該堆棧上的每個(gè)裝置驅(qū)動(dòng)器可以自己服務(wù)于一個(gè)I/O請(qǐng)求而不把它傳送到較低級(jí)別,或者如果希望的話它本身產(chǎn)生一個(gè)新的I/O請(qǐng)求。這種裝置驅(qū)動(dòng)器可以實(shí)現(xiàn)那些需要等待的功能,如等待一個(gè)中斷,或等待一個(gè)裝置變?yōu)榭捎玫?。在這種等待過程中,裝置驅(qū)動(dòng)器只是簡(jiǎn)單地返回到它的調(diào)用者,允許發(fā)出調(diào)用的應(yīng)用或裝置驅(qū)動(dòng)器與此I/O請(qǐng)求平行地進(jìn)行其他工作。另一種作法是,發(fā)出調(diào)用的應(yīng)用或裝置驅(qū)動(dòng)器可以簡(jiǎn)單地等待(“鎖住”)直至I/O請(qǐng)求完成。
在另一實(shí)施例中,參考圖12所示,本發(fā)明可以在WindowsNT操作系統(tǒng)上實(shí)現(xiàn)。如本技術(shù)領(lǐng)域所知,在WindowsNT下以用戶方式運(yùn)行的應(yīng)用1100可以向操作系統(tǒng)服務(wù)1110發(fā)送I/O請(qǐng)求。I/O管理器1120接收I/O請(qǐng)求,并在各驅(qū)動(dòng)器之間協(xié)調(diào)I/O請(qǐng)求包的傳送。在另一種作法中,各驅(qū)動(dòng)器可以彼此直接通信,無需I/O管理器1120或其他裝置來協(xié)調(diào)各驅(qū)動(dòng)器之間的信息傳送。
如WindowsNT這類操作系統(tǒng)的傳統(tǒng)輸入/輸出系統(tǒng)包含多個(gè)裝置驅(qū)動(dòng)器1130-1132用于處理I/O請(qǐng)求。這種裝置驅(qū)動(dòng)器由例如文件系統(tǒng)驅(qū)動(dòng)器1130和分層的多個(gè)裝置驅(qū)動(dòng)器1131-1132來加以說明。I/O管理器1120通常向負(fù)責(zé)管理I/O請(qǐng)求目標(biāo)的文件系統(tǒng)驅(qū)動(dòng)器1130發(fā)送I/O請(qǐng)求包。然而,如本技術(shù)領(lǐng)域所知,文件系統(tǒng)監(jiān)視器1150能以面向?qū)ο蟮姆绞礁郊拥狡渌b置驅(qū)動(dòng)器1130-1132上。于是,I/O管理器1120把對(duì)目標(biāo)裝置驅(qū)動(dòng)器1130-1132的I/O請(qǐng)求包引導(dǎo)到已附著在目標(biāo)裝置驅(qū)動(dòng)器1130-1132上的文件系統(tǒng)監(jiān)視器1150。在所示實(shí)施例中,文件系統(tǒng)監(jiān)視器1150附著在這多個(gè)文件系統(tǒng)驅(qū)動(dòng)器對(duì)象1130的每一個(gè)上。
圖13是在文件系統(tǒng)監(jiān)視器1250中使用堆棧定位提供數(shù)據(jù)安全性的一種方法的一個(gè)實(shí)施例的流程圖。為了說明的目的,所示實(shí)施例中的文件系統(tǒng)監(jiān)視器1250對(duì)文件系統(tǒng)請(qǐng)求進(jìn)行過濾,這些請(qǐng)求是指向文件系統(tǒng)的I/O請(qǐng)求。然而,應(yīng)該理解,本發(fā)明可以有用地實(shí)現(xiàn)于任何裝置驅(qū)動(dòng)器中,不管這種裝置驅(qū)動(dòng)器的目的如何,也不必考慮文件系統(tǒng)或監(jiān)視功能。
如圖13中所示,每次檢測(cè)到文件系統(tǒng)請(qǐng)求時(shí),本發(fā)明的堆棧定位過程在步驟1200開始。在步驟1210,過程確定該文件系統(tǒng)過濾器是否被步驟1223中先前的迭代關(guān)掉。如果是,則過程在步驟1225繼續(xù),允許其后的調(diào)用不被過濾,并在步驟1233退出。
回到步驟1210,如果文件系統(tǒng)過濾器未在先前被關(guān)掉,則過程在步驟1220繼續(xù),并確定這是否是步驟1200檢測(cè)到的第一個(gè)文件系統(tǒng)請(qǐng)求。如果是,則過程在步驟1230繼續(xù),并確定調(diào)用模塊的地址。因?yàn)檫@是第一個(gè)文件系統(tǒng)請(qǐng)求,在邏輯上保證了該文件系統(tǒng)監(jiān)視器1250是剛被加載,所以在功能上處于與該文件系統(tǒng)關(guān)聯(lián)的裝置驅(qū)動(dòng)器堆棧中的最上層。在一個(gè)WindowsNT實(shí)施例中,調(diào)用模塊是通過參考文件系統(tǒng)監(jiān)視器1250上附著的裝置字段來確定的,當(dāng)文件系統(tǒng)監(jiān)視器1250在功能上處于裝置驅(qū)動(dòng)器堆棧中的最上層的該字段將為零。繼續(xù)到步驟1231,該過程存儲(chǔ)在步驟1230中確定的調(diào)用模塊的地址。過程在步驟1232繼續(xù)完成過濾功能以及在文件系統(tǒng)監(jiān)視器1250中實(shí)現(xiàn)的其他有用功能。然后,該過程在步驟1233結(jié)束。
回到步驟1220,如果它不是由步驟1200檢測(cè)到的第一個(gè)文件系統(tǒng)請(qǐng)求,該過程在步驟1221繼續(xù),并確定調(diào)用模塊地址。在一個(gè)WindowsNT實(shí)施例中,調(diào)用模塊是通過參考文件系統(tǒng)監(jiān)視器1250上附著的裝置字段來確定的,如果有任何裝置對(duì)象已附著在文件系統(tǒng)監(jiān)視器1250上,則該字裝將不為零。在步驟1222,調(diào)用模塊地址與先前在步驟1231存儲(chǔ)的地址比較。通過在這一點(diǎn)上比較調(diào)用模塊地址,文件系統(tǒng)監(jiān)視器1250將能檢測(cè)出任何其它裝置,它試圖通過把自己放在調(diào)用模塊和文件系統(tǒng)監(jiān)視器1250之間來得到高于文件系統(tǒng)監(jiān)視器1250的優(yōu)先級(jí)。如果在步驟1222這兩個(gè)調(diào)用模塊地址相同,則過程在步驟1232繼續(xù)。
如果在步驟1222這兩個(gè)調(diào)用模塊地址不相同,則過程在步驟1223繼續(xù),并設(shè)置標(biāo)志指出關(guān)掉過濾。這個(gè)標(biāo)志與在步驟1210檢測(cè)的標(biāo)志相同。該過程在步驟1224繼續(xù)并啟動(dòng)再鉤連過程,下文中將參考圖14描述這個(gè)再鉤連過程。在步驟1224之后,過程在步驟1225繼續(xù),允許其后的調(diào)用不受過濾地進(jìn)行,并在步驟1233退出。
圖14是再鉤連過程的一個(gè)實(shí)施例的流程圖。在步驟1300,本發(fā)明的再鉤連過程被啟動(dòng)。在步驟1310繼續(xù),該過程對(duì)所存儲(chǔ)的一個(gè)計(jì)數(shù)增1,該計(jì)數(shù)表明這個(gè)再鉤連過程已被啟動(dòng)多少次。繼續(xù)到步驟1320,該過程確定所存儲(chǔ)的計(jì)數(shù)是否已達(dá)到最大閾值。該最大閾值是一個(gè)預(yù)先確定的值,它觸發(fā)一個(gè)可編程的安全性響應(yīng)。
在對(duì)防害數(shù)據(jù)安全性企圖的容限為零的那些實(shí)施例中,最大閾值值為1是適當(dāng)?shù)摹T诳梢越邮苣撤N容限的實(shí)施例中高于1的最大閾值將是適當(dāng)?shù)?。在另一些?shí)施例中將以不同的閾值使多個(gè)或不同的可編程安全性響應(yīng)生效。
可能會(huì)發(fā)現(xiàn),大范圍的可編程安全性響應(yīng)是符合希望的??删幊贪踩皂憫?yīng)包括但不限于破壞曾被請(qǐng)求的數(shù)據(jù),或者,如果這數(shù)據(jù)是存儲(chǔ)在一個(gè)安全虛擬文件系統(tǒng)中的話,則破壞數(shù)據(jù)和這安全虛擬文件系統(tǒng)二者。可編程安全性響應(yīng)的再一些實(shí)施例包括終止打開的應(yīng)用、破壞數(shù)據(jù)存儲(chǔ)裝置上的文件系統(tǒng)監(jiān)視器、停止計(jì)算機(jī)的操作、以及使計(jì)算機(jī)進(jìn)入一種需要重新啟動(dòng)的狀態(tài)。前述只是舉例,不應(yīng)被認(rèn)為是根據(jù)本發(fā)明對(duì)可編程安全性響應(yīng)的限制。
回到步驟1320,如果所存儲(chǔ)的計(jì)數(shù)已達(dá)到最大閾值,則在步驟1330,啟動(dòng)這可編程安全性響應(yīng),然后該過程在步驟1350結(jié)束。
如果所存儲(chǔ)的計(jì)數(shù)尚未達(dá)到最大閾值,則在步驟340該過程啟動(dòng)該文件系統(tǒng)監(jiān)視器1050的重附著(reattachment)。這可通過在堆棧的功能上最頂級(jí)啟動(dòng)一個(gè)新的文件系統(tǒng)監(jiān)視器1050來實(shí)現(xiàn)。在諸如WindowsNT這樣的面向?qū)ο蟮沫h(huán)境中,對(duì)單一驅(qū)動(dòng)器對(duì)象可以有許多個(gè)附著(attachment),而且不必要從堆棧中去掉或卸掉文件系統(tǒng)監(jiān)視器1050,盡管可能會(huì)希望這樣做。在另一實(shí)施例中,可以通過編輯調(diào)用鏈,使先前初始化的文件系統(tǒng)監(jiān)視器1050返回到功能上的最高級(jí)別,從而實(shí)現(xiàn)再附著。
在步驟1340,該過程還使指出關(guān)掉過濾過程的標(biāo)志復(fù)位,表明可以恢復(fù)過濾。參考圖13,這一標(biāo)志與步驟1223中設(shè)置并在步驟1210被檢驗(yàn)的那個(gè)標(biāo)志是同一標(biāo)志。
在另一實(shí)施示例中,根據(jù)這里的任何實(shí)施例的堆棧定位的特點(diǎn)可被納入到背接通過程中,如圖6-8中所示任何實(shí)施例中的背接通過程。一個(gè)好處是最上層堆棧位置可以保證背接通直接作用于調(diào)用過程而不是任何中間的文件系統(tǒng)過濾器。
根據(jù)本發(fā)明的又一個(gè)保護(hù)機(jī)制是監(jiān)視時(shí)鐘操作,下面將對(duì)此進(jìn)行描述。
某些計(jì)算機(jī)程序含有一些限制,它們限制程序的使用時(shí)間。這些限制或者可由同意程序使用條件的許可證來規(guī)定,或者可由程序的所有者或提供者規(guī)定。例如,軟件的試用版通常允許在一個(gè)指定時(shí)段內(nèi)使用,例如30天。設(shè)置試用軟件有效期的一種已知方法是記錄系統(tǒng)時(shí)鐘信息(包括日期和時(shí)間信息)并把期滿日期設(shè)為該日期之后的第30天。另一種已知的方法是使期滿日期編程到計(jì)算機(jī)代碼中。利用這種方法,只有當(dāng)系統(tǒng)時(shí)鐘早于該期滿日期時(shí)程序才能運(yùn)行,不管該程序是何時(shí)安裝到計(jì)算機(jī)系統(tǒng)上的。
根據(jù)這兩種方法中的任何一種,用戶都被禁止在期滿日期之后執(zhí)行該計(jì)算機(jī)程序。通常,在期滿日期之后執(zhí)行一個(gè)程序的嘗試會(huì)產(chǎn)生一個(gè)屏幕消息,告訴用戶該程序已經(jīng)過期??朔@個(gè)期滿日期參數(shù)的一種已知方法是人為地把系統(tǒng)時(shí)鐘重新設(shè)置到一個(gè)落在允許時(shí)間段內(nèi)的日期和時(shí)間,即重設(shè)到早于期滿日期的時(shí)間和日期。
已經(jīng)有一些解決這一問題的嘗試,作法是在系統(tǒng)時(shí)鐘日期遲于期滿日期時(shí)用戶試圖執(zhí)行一程序之后,便完全地使不依賴于系統(tǒng)時(shí)鐘信息的程序失效。然而,這一解決辦法是苛刻的,就是說,它不允許用戶校正系統(tǒng)時(shí)鐘和繼續(xù)使用或許是被允許的軟件。
在計(jì)算機(jī)系統(tǒng)領(lǐng)域需要防止對(duì)嵌入計(jì)算機(jī)代碼中的使用限制(例如有效期參數(shù))進(jìn)行破壞,而同時(shí)又不會(huì)永久性地使對(duì)程序或其中的數(shù)據(jù)的使用或訪問變成無效。本發(fā)明通過提供一種監(jiān)視系統(tǒng)時(shí)鐘以防止未授權(quán)訪問數(shù)據(jù)的方法和裝置來滿足這一需求。本發(fā)明檢測(cè)對(duì)系統(tǒng)時(shí)鐘的修改或改變,并使與時(shí)鐘有關(guān)的許可變成無效直至系統(tǒng)時(shí)鐘返回到它的正確值為止。
現(xiàn)在參考圖15,圖中顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例用于監(jiān)視計(jì)算機(jī)系統(tǒng)時(shí)鐘的方法框圖。根據(jù)這一方法,時(shí)鐘監(jiān)視器與存儲(chǔ)在存儲(chǔ)器中的許可數(shù)據(jù)庫(kù)通信。許可數(shù)據(jù)庫(kù)包含至少一個(gè)與時(shí)鐘有關(guān)的許可字段和一個(gè)具有所存儲(chǔ)時(shí)間值的存儲(chǔ)時(shí)間值字段。每個(gè)許可字段包含至少一個(gè)與時(shí)鐘有關(guān)的許可。與時(shí)鐘有關(guān)的許可是控制對(duì)數(shù)據(jù)進(jìn)行訪問的參數(shù),這種控制是基于來自系統(tǒng)時(shí)鐘的信息,如時(shí)間和日期信息,或者系統(tǒng)時(shí)鐘的速度。在本領(lǐng)域已知計(jì)算機(jī)系統(tǒng)基本上是根據(jù)系統(tǒng)時(shí)鐘進(jìn)行操作。
與時(shí)鐘有關(guān)的許可包括例如用日期、小時(shí)或分鐘指定一個(gè)用戶有多長(zhǎng)時(shí)間可以訪問該數(shù)據(jù)。實(shí)現(xiàn)這一許可的一種方法是對(duì)訪問時(shí)間減量,這個(gè)訪問時(shí)間是從一過程訪問該數(shù)據(jù)的時(shí)刻直到該過程到期的時(shí)刻。該訪問時(shí)間在內(nèi)部被追蹤;然而,從系統(tǒng)處理器的“滴嗒聲”(tick)中導(dǎo)出系統(tǒng)時(shí)鐘速度被用于對(duì)訪問時(shí)間減量。如果在處理過程中該訪問時(shí)間被完全用完,則該過程將自動(dòng)被終止。在訪問時(shí)間期滿之后,該數(shù)據(jù)將被覆蓋寫并刪除。與時(shí)鐘有關(guān)的許可的另一個(gè)例子是指定一個(gè)日期,在那一天該數(shù)據(jù)將不再可用。用戶將能訪問該數(shù)據(jù)直至期滿日期的到來。如果一個(gè)過程在期滿的那一天讓數(shù)據(jù)打開,則過程會(huì)自動(dòng)被終止,而數(shù)據(jù)被覆蓋寫并刪除。與時(shí)鐘有關(guān)的許可的又一個(gè)例子是指定一個(gè)授權(quán)日期,在那一天該數(shù)據(jù)將變?yōu)榭稍L問的。根據(jù)這一許可,在未過授權(quán)日期之前用戶將不能訪問該數(shù)據(jù)。一旦已過授權(quán)日期,該用戶將能訪問該數(shù)據(jù)。與時(shí)鐘有關(guān)的許可的其他例子包括“無許可”或“無限制使用”。受到與時(shí)鐘有關(guān)的許可限制的數(shù)據(jù)可以存儲(chǔ)在存儲(chǔ)裝置上,如硬盤、軟盤、CD-ROM或磁帶上,或者可以嵌到許可數(shù)據(jù)庫(kù)或計(jì)算機(jī)程序之中。
時(shí)鐘監(jiān)視器包含計(jì)算機(jī)代碼,它在執(zhí)行時(shí)啟動(dòng)對(duì)時(shí)鐘監(jiān)視器的初始化(步驟1412)。在本發(fā)明的一個(gè)實(shí)施例中,該計(jì)算機(jī)代碼是一個(gè)計(jì)算機(jī)程序,它存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,例如磁盤或光盤。該計(jì)算機(jī)代碼可以是單一的代碼模塊,或者最好是分解成一系列模塊用于實(shí)現(xiàn)時(shí)鐘監(jiān)視器的那些功能。在一個(gè)實(shí)施例中,通過發(fā)出實(shí)現(xiàn)代碼模塊功能的調(diào)用,使那些公用功能能被單一代碼模塊實(shí)現(xiàn)不只一次。一旦開始初始化,該時(shí)鐘監(jiān)視器便從系統(tǒng)時(shí)鐘讀取當(dāng)前時(shí)間(步驟1414)。然后時(shí)鐘監(jiān)視器確定許可數(shù)據(jù)庫(kù)是否被初始化,這包括它是否已在先前的場(chǎng)合被初始化(步驟1416)。在本發(fā)明的一個(gè)實(shí)施例中,一個(gè)計(jì)算機(jī)程序的執(zhí)行會(huì)通過許可數(shù)據(jù)庫(kù)驅(qū)動(dòng)器使許可數(shù)據(jù)庫(kù)初始化。如果許可數(shù)據(jù)庫(kù)驅(qū)動(dòng)器被加載到計(jì)算機(jī)系統(tǒng)上,則認(rèn)為該數(shù)據(jù)庫(kù)被“初始化”了。在這個(gè)實(shí)施例中,時(shí)鐘監(jiān)視器計(jì)算機(jī)代碼可以嵌入到計(jì)算機(jī)程序中用于初始化許可數(shù)據(jù)庫(kù)。在另一實(shí)施例中,確定許可數(shù)據(jù)庫(kù)是否被初始化的步驟涉及從許可數(shù)據(jù)庫(kù)中讀取所存儲(chǔ)的時(shí)間值。如果所存儲(chǔ)的時(shí)間值是零,則該數(shù)據(jù)庫(kù)未被初始化。如果所存儲(chǔ)的時(shí)間值不為零,則數(shù)據(jù)庫(kù)是被初始化了。
如果許可數(shù)據(jù)庫(kù)被初始化了,則從步驟1414得到的當(dāng)前時(shí)間值與許可數(shù)據(jù)庫(kù)中存儲(chǔ)時(shí)間值字段中所存儲(chǔ)的時(shí)間值進(jìn)行比較(步驟1418)。如果從步驟1414得到的當(dāng)前時(shí)間值遲于所存儲(chǔ)的時(shí)間值,則在步驟1420將當(dāng)前時(shí)間值存儲(chǔ)在存儲(chǔ)時(shí)間值字段中。如果由步驟1414得到的當(dāng)前時(shí)間值早于所存儲(chǔ)時(shí)間值,則在步驟1422使與時(shí)鐘有關(guān)的許可無效,從而防止訪問該數(shù)據(jù)。
如果許可數(shù)據(jù)庫(kù)未被初始化,則在步驟1224將步驟1414得到的當(dāng)前時(shí)間值存儲(chǔ)在存儲(chǔ)時(shí)間值字段中。根據(jù)圖15中描繪的方法,在步驟1420、1422或1424任何一個(gè)步驟之后,在步驟1426時(shí)鐘監(jiān)視器被初始化。
圖16顯示根據(jù)本發(fā)明的一個(gè)實(shí)施例的方法,這里,在時(shí)鐘監(jiān)視器初始化之后,按預(yù)先確定的追蹤間隔檢驗(yàn)系統(tǒng)時(shí)鐘以證實(shí)系統(tǒng)時(shí)鐘的完好。間隔檢驗(yàn)是在步驟1528開始的。一個(gè)內(nèi)部時(shí)鐘使用系統(tǒng)時(shí)鐘速度對(duì)步驟1414得到的當(dāng)前時(shí)間值增量并跟蹤真正的系統(tǒng)時(shí)間。真正的系統(tǒng)時(shí)間是存儲(chǔ)的時(shí)間值加上一個(gè)內(nèi)部占用時(shí)間(elapsed time),這個(gè)占用時(shí)間是從時(shí)鐘監(jiān)視器被初始化的時(shí)間算起的。該內(nèi)部占用時(shí)間最好存在許可數(shù)據(jù)庫(kù)中。在預(yù)先確定的跟蹤時(shí)間間隔,在步驟1530時(shí)鐘監(jiān)視器讀取系統(tǒng)時(shí)鐘的時(shí)間值,并在步驟1532將它與內(nèi)部時(shí)鐘保持的真實(shí)系統(tǒng)時(shí)間進(jìn)行比較。預(yù)先確定的追蹤時(shí)間間隔可以是任何時(shí)間值,但最好是在零到60秒的范圍內(nèi)。最好這個(gè)預(yù)先確定的追蹤時(shí)間間隔為1分鐘。也是在步驟1532,根據(jù)步驟1530讀出的系統(tǒng)時(shí)鐘時(shí)間值和真實(shí)系統(tǒng)時(shí)間的比較結(jié)果,時(shí)鐘監(jiān)視器產(chǎn)生一個(gè)時(shí)間偏差。該時(shí)間偏差與一個(gè)可接受的偏差進(jìn)行比較。這可接受的偏差最好是預(yù)先確定的,而且可以是任何時(shí)間值,例如在零秒至3小時(shí)范圍內(nèi)的時(shí)間值。最好是這可接受的偏差為3小時(shí)。
如果時(shí)間偏差是在可接受的偏差之外,則在步驟1534時(shí)鐘監(jiān)視器得出結(jié)論該系統(tǒng)時(shí)鐘值已被改過,于是使所有與時(shí)鐘有關(guān)的許可變?yōu)闊o效。如果時(shí)間偏差在可接受的偏差范圍內(nèi),則在步驟1536時(shí)鐘監(jiān)視器使與時(shí)鐘有關(guān)的許可生效。在步驟1538,存儲(chǔ)真實(shí)系統(tǒng)時(shí)間,最好是存在許可數(shù)據(jù)庫(kù)中,然后在步驟1540完成間隔檢驗(yàn)。
在一個(gè)實(shí)施例中,如果在步驟1534中或在圖15的步驟1422中,與時(shí)鐘有關(guān)的許可變?yōu)闊o效,則一般會(huì)重復(fù)圖16中的步驟。如果在圖16中那些步驟的這一循環(huán)中所產(chǎn)生的時(shí)間偏差在可接受的偏差之內(nèi),則與時(shí)鐘有關(guān)的許可重新生效,這些許可按需要生效,真實(shí)系統(tǒng)時(shí)間被存儲(chǔ),最好是存儲(chǔ)在許可數(shù)據(jù)庫(kù)的存儲(chǔ)時(shí)間值字段中,從系統(tǒng)時(shí)鐘讀出的時(shí)間值存儲(chǔ)在許可數(shù)據(jù)庫(kù)中的最后一個(gè)已知的好系統(tǒng)時(shí)間字段。
在另一實(shí)施例中,當(dāng)計(jì)算機(jī)關(guān)閉時(shí),真實(shí)系統(tǒng)時(shí)間與系統(tǒng)時(shí)鐘值比較。如果系統(tǒng)時(shí)鐘值在可接受的偏差范圍內(nèi),則把系統(tǒng)時(shí)鐘值存儲(chǔ)到存儲(chǔ)時(shí)間值字段中。這使得能考慮和存儲(chǔ)相對(duì)較小的偏差。
另一種保護(hù)機(jī)制是端口封鎖。在計(jì)算機(jī)系統(tǒng)中,過程可以訪問許多系統(tǒng)資源,如串行端口或到因特網(wǎng)的連接。在受保密的數(shù)據(jù)被不受保密的應(yīng)用訪問的場(chǎng)合中,必須開發(fā)出一種手段,借以能限制那些不受保密的應(yīng)用進(jìn)行可能會(huì)危及數(shù)據(jù)安全的操作。
已知如何打開一個(gè)完全與外界隔絕通信的系統(tǒng)中打開受保密的數(shù)據(jù),該系統(tǒng)與不保密的應(yīng)用可能借以偶然地或有意地危及受保密數(shù)據(jù)的手段無連接。還知道如何以受保密的應(yīng)用打開受保密的數(shù)據(jù),已知這些應(yīng)用沒有偶然地或有意地危及受保密數(shù)據(jù)的危險(xiǎn)。這些解決方案防止把公開的軟件應(yīng)用用于打開受保密的數(shù)據(jù),或者防止使用一個(gè)沒有切斷與外界通信聯(lián)系的計(jì)算機(jī),因而這些解決方案在其有用性方面是有限的。
所公開的這個(gè)實(shí)施例禁止某些過程使用它們運(yùn)行的計(jì)算機(jī)的端口資源。這些可以是受保密的過程,例如已經(jīng)打開受保密數(shù)據(jù)的過程。在本發(fā)明的一個(gè)最佳實(shí)施例中,通過確認(rèn)一個(gè)過程存在于受保密過程清單上,來確定該過程的狀態(tài)是受保密狀態(tài)。
如圖17中所示,在一個(gè)最佳實(shí)施例中,在計(jì)算機(jī)1600中一控制應(yīng)用1610在內(nèi)核(環(huán)0)級(jí)1620上運(yùn)行,而應(yīng)用1630在較高級(jí)別1640上運(yùn)行。當(dāng)應(yīng)用請(qǐng)求訪問端口1650時(shí),控制應(yīng)用1610監(jiān)視并處置這些訪問請(qǐng)求。
如圖18中所示,在某些計(jì)算機(jī)系統(tǒng)中,例如微軟WindowsNT和Windows2000操作系統(tǒng)中,端口監(jiān)視能阻斷所有與端口有關(guān)的調(diào)用。當(dāng)發(fā)起一個(gè)端口請(qǐng)求時(shí)(1700),控制應(yīng)用(圖17中的1610)阻斷那個(gè)請(qǐng)求,并確定過程id(標(biāo)識(shí))(1710)。在一個(gè)最佳實(shí)施例中,該控制應(yīng)用(圖17中的1610)訪問一個(gè)不允許打開一端口的過程的清單。過程id用于確定該過程是否是一個(gè)受保密(不允許打開一端口)的過程(1720)。如果它是受保密的,則在1730封鎖該請(qǐng)求。如果它不是受保密的,則把該請(qǐng)求送到該端口(1750)。
如圖19(a)中所示,在某些計(jì)算機(jī)系統(tǒng)中,例如微軟Windows95和98操作系統(tǒng)中,端口監(jiān)視只能阻斷打開和關(guān)閉調(diào)用。為了保證對(duì)一端口有訪問的過程在其后不會(huì)變成受保密的過程,必須對(duì)要變?yōu)槭鼙C苓^程的任何過程進(jìn)行檢驗(yàn)。當(dāng)發(fā)起一個(gè)打開端口請(qǐng)求時(shí)(1800),控制應(yīng)用(圖17中的1610)阻斷該請(qǐng)求并確定過程id(1810)。在一個(gè)最佳實(shí)施例中該控制應(yīng)用(圖17中的1610)訪問一個(gè)不允許打開一端口的過程的清單。過程id用于確定該過程是否是一個(gè)受保密(不允許打開一端口)的過程(1820)。如果它是受保密的,則在1830封鎖該請(qǐng)求。如果它不是受保密的,則把該請(qǐng)求送到該端口,并對(duì)過程ID和端口操縱柄進(jìn)行追蹤(1850)。
如圖19(b)中所示,當(dāng)發(fā)起一個(gè)關(guān)閉端口請(qǐng)求時(shí)(1860),控制應(yīng)用(圖17中的1610)阻斷那個(gè)請(qǐng)求并完成該調(diào)用(1862)。然后過程ID和端口操縱柄從受追蹤的打開端口數(shù)據(jù)庫(kù)中去掉(1864)。
除了對(duì)打開端口和關(guān)閉端口請(qǐng)求的這些操作外,如圖19(c)中所示,當(dāng)一過程受到安全檢查以確定它是否將是受保密的過程時(shí)(1870),對(duì)照受追蹤的打開端口數(shù)據(jù)庫(kù)檢驗(yàn)該過程的id(1872)。如果該過程有打開的端口,則該過程可以不被做成受保密的,于是安全檢查失敗(1874),于是安全檢查完成(1876)。如果該過程沒有打開的端口,它將通過安全檢查,而且該過程id將加到受保密過程清單中(1878)。
本發(fā)明的又一個(gè)實(shí)施示例是針對(duì)一個(gè)根據(jù)這里提供的方法實(shí)現(xiàn)的端口封鎖系統(tǒng),這里某些過程被限制不能使用一端口。進(jìn)一步公開的是一個(gè)受保密的數(shù)據(jù)傳輸系統(tǒng),它有一個(gè)根據(jù)這里提供的方法實(shí)現(xiàn)的端口封鎖部件以禁止某些過程使用一端口。再進(jìn)一步公開的是根據(jù)這里提供的方法進(jìn)行編程以封鎖端口使用的計(jì)算機(jī)可讀介質(zhì)。再進(jìn)一步公開的是一個(gè)計(jì)算機(jī),它被配置成包括一個(gè)端口封鎖系統(tǒng),它根據(jù)這里提供的方法封鎖某些過程使之不能使用端口。
與端口封鎖類似的另一種保護(hù)機(jī)制是網(wǎng)絡(luò)/TDI封鎖。
所公開的實(shí)施例禁止某些過程利用它們?cè)谄渖线\(yùn)行的計(jì)算機(jī)的網(wǎng)絡(luò)資源。它們可以是受保密的過程,例如已打開受保密數(shù)據(jù)的過程。在本發(fā)明的一個(gè)最佳實(shí)施例中,通過確定一個(gè)過程存在于受保密過程清單上,來確定該過程的狀態(tài)是受保密狀態(tài)。
如圖20中所示,在一個(gè)最佳實(shí)施例中,在計(jì)算機(jī)1900中有一控制應(yīng)用1910在內(nèi)核(環(huán)0)級(jí)1920上運(yùn)行,而應(yīng)用1930在較高級(jí)別1940上運(yùn)行。當(dāng)應(yīng)用請(qǐng)求訪問網(wǎng)絡(luò)/TDI接口1950時(shí),控制應(yīng)用1910監(jiān)視和處置這些訪問請(qǐng)求。
如圖21中所示,通過不允許為受保密的應(yīng)用處理發(fā)送請(qǐng)求,來實(shí)現(xiàn)網(wǎng)絡(luò)封鎖。當(dāng)發(fā)起一個(gè)發(fā)送請(qǐng)求時(shí)(2000),控制應(yīng)用(圖20中的1910)阻斷那個(gè)請(qǐng)求并確定過程id(標(biāo)識(shí))(2010)。在一個(gè)最佳實(shí)施例中,該控制應(yīng)用(力20中的1910)訪問一個(gè)不允許訪問該網(wǎng)絡(luò)的過程的清單。過程id用于確定該過程是否是一個(gè)受保密(不允許訪問該網(wǎng)絡(luò))的過程(2020)。如果它是受保密的,則在2030封鎖該請(qǐng)求。如果它不是受保密的,則把該請(qǐng)求送到網(wǎng)絡(luò)上(2050)。
本發(fā)明的又一個(gè)實(shí)施示例是針對(duì)一個(gè)網(wǎng)絡(luò)封鎖系統(tǒng),它是根據(jù)這里提供的方法實(shí)現(xiàn)的,其中某些過程被限制不能訪問一網(wǎng)絡(luò)。進(jìn)一步公開的是一個(gè)受保密的數(shù)據(jù)傳輸系統(tǒng),它有一個(gè)根據(jù)這里提供的方法實(shí)現(xiàn)的網(wǎng)絡(luò)封鎖部件以禁止某些過程訪問網(wǎng)絡(luò)。再進(jìn)一步公開的是根據(jù)這里提供的方法編程的計(jì)算機(jī)可讀介質(zhì)。再進(jìn)一步公開的是一個(gè)計(jì)算機(jī),它被配置成包括一個(gè)網(wǎng)絡(luò)封鎖系統(tǒng),它根據(jù)這里提供的方法封鎖某些過程使之不能訪問網(wǎng)絡(luò)。
另一種保護(hù)機(jī)制與隱藏(hiding)或偽裝(cloaking)文件有關(guān)。圖22是一個(gè)系統(tǒng)實(shí)施例的方框圖,該系統(tǒng)通過監(jiān)視文件系統(tǒng)調(diào)用來隱藏或偽裝文件。如圖所示,該系統(tǒng)包括操作系統(tǒng)(OS)層2210和應(yīng)用層2112。在一個(gè)實(shí)施例中,操作系統(tǒng)層2100是Windows95,盡管Windows98、NT、2000、基于Unix的系統(tǒng)或者允許有入口點(diǎn)進(jìn)入文件系統(tǒng)控制的任何操作系統(tǒng)的確也可以利用本發(fā)明各種實(shí)施例的相同原理。操作系統(tǒng)2100包括一個(gè)文件系統(tǒng)2114(例如一個(gè)可安裝的文件系統(tǒng),IFS),它處置來自應(yīng)用層2112中的應(yīng)用的調(diào)用。一般地說,在操作系統(tǒng)2110中裝置驅(qū)動(dòng)器成為裝置,而在應(yīng)用層2112中的應(yīng)用通過一個(gè)定義的應(yīng)用程序接口(API)使用這些裝置完成任務(wù)。根據(jù)本發(fā)明的原理,高級(jí)別偽裝器應(yīng)用2116與一個(gè)偽裝器驅(qū)動(dòng)器2118相關(guān)聯(lián)。例如,偽裝器應(yīng)用2116和偽裝器驅(qū)動(dòng)器2118可以是由一個(gè)軟件供應(yīng)商供給的部件并能聯(lián)合完成功能,如下文描述的隱藏或偽裝文件功能。
偽裝器驅(qū)動(dòng)器2118監(jiān)視穿過文件系統(tǒng)2114的調(diào)用并對(duì)其作出反應(yīng)。除了偽裝器應(yīng)用2116外,在應(yīng)用層2112中能存在其他高級(jí)別應(yīng)用2119,它們能通過文件系統(tǒng)2114發(fā)送調(diào)用。這些調(diào)用可以發(fā)源于例如文字處理或其他應(yīng)用,或者來自Windows文件管理器環(huán)境內(nèi)部。這里感興趣的文件系統(tǒng)調(diào)用是與“打開”(open)、“找出第一個(gè)”(find first)、“找出下一個(gè)”(find next)、“刪出”(delete)和“重命名”(rename)這些命令相關(guān)聯(lián)的調(diào)用。為便于描述,這些命令有時(shí)也簡(jiǎn)單地稱作調(diào)用。一般而言,感興趣的操作包括打開文件、找出剩余文件和刪除文件的任何基本操作。這樣,對(duì)于本發(fā)明的實(shí)施例,作為舉例,但不是作為限定,“讀”、 “寫”和“得到屬性”調(diào)用被歸類于“打開”調(diào)用之中,因?yàn)榕c這些調(diào)用中的每一個(gè)一起,都將產(chǎn)生“打開”調(diào)用。類似地,為了演示但不是作為限定,“目錄”調(diào)用被歸類于“找出第一個(gè)”和“找出下一個(gè)”調(diào)用。每個(gè)介質(zhì)裝置2120(例如硬盤驅(qū)動(dòng)器、ZIP驅(qū)動(dòng)器、軟盤驅(qū)動(dòng)器、帶驅(qū)動(dòng)器、可寫CD-ROM驅(qū)動(dòng)器或其他固定的或可卸的存儲(chǔ)介質(zhì))一般有低級(jí)別驅(qū)動(dòng)器2122與之關(guān)聯(lián),這低級(jí)別驅(qū)動(dòng)器2122處置與介質(zhì)裝置2120的接口。
在操作中,偽裝器或監(jiān)視驅(qū)動(dòng)器2118得到并分析每個(gè)穿過文件系統(tǒng)2114的調(diào)用。偽裝器驅(qū)動(dòng)器2118能得到對(duì)文件系統(tǒng)調(diào)用的訪問,例如可作為裝置驅(qū)動(dòng)器插入文件系統(tǒng)2114而不實(shí)際地與一特定裝置相關(guān)聯(lián)。使用這一訪問,偽裝驅(qū)動(dòng)器2118能評(píng)定該調(diào)用是否是源于偽裝應(yīng)用2116或其他應(yīng)用2119以及該調(diào)用是否是感興趣的調(diào)用,如“打開”、“找出第一個(gè)”、“找出下一個(gè)”、“刪除”或“重命名”。偽裝器驅(qū)動(dòng)器2118還能決定是否把該調(diào)用傳送到與介質(zhì)裝置2120關(guān)聯(lián)的驅(qū)動(dòng)器2122,或者拒絕或放棄該調(diào)用,或者改變返回變量或產(chǎn)生一個(gè)返回變量而不把該調(diào)用下傳到其后各層。利用這些操作,偽裝器驅(qū)動(dòng)器2118能以如下方式對(duì)用戶隱藏文件它們將是不可見的,而且將不能被任何應(yīng)用或Windows系統(tǒng)命令發(fā)現(xiàn)。
實(shí)現(xiàn)偽裝器應(yīng)用2116來允許用戶偽裝或隱藏文件。運(yùn)行偽裝器應(yīng)用允許用戶選擇希望偽裝的文件,然后對(duì)這些文件使用偽裝操作,其作法是把選定的文件名傳送到偽裝器驅(qū)動(dòng)器2118,從而把它們添加到偽裝器驅(qū)動(dòng)器2118內(nèi)的一個(gè)查尋表或數(shù)據(jù)庫(kù)中。最好是要求用戶在啟動(dòng)偽裝過程前先選擇一個(gè)口令,而且只有使用這個(gè)口令才能允許該用戶解除對(duì)先前被偽裝的文件所做的偽裝。該口令又最好與Windows用戶口令不同。這樣,兩個(gè)或更多個(gè)用戶能使用同一計(jì)算機(jī)硬件,但即使知道存在所存儲(chǔ)的文件卻只能訪問所存儲(chǔ)文件的不同子集。用戶1能把文件隱藏在該系統(tǒng)上而對(duì)用戶2保密,反之亦然。不僅文件內(nèi)容被隱藏,而且文件存在本身也被隱藏,因?yàn)樵诒景l(fā)明的一個(gè)實(shí)施例中,被偽裝的文件將不會(huì)出現(xiàn)在任何目錄清單中,而且它們也不能以任何方式被操作系統(tǒng)訪問,直至它們被用戶解除偽裝為止,而用戶在解除這些文件的偽裝時(shí)必須首先輸入適當(dāng)?shù)目诹睢?br> 作為一種附加的預(yù)防措施,在把要偽裝的文件名添加到偽裝器驅(qū)動(dòng)器的查尋表或數(shù)據(jù)庫(kù)之后(或之前)可對(duì)被偽裝的文件自動(dòng)加密。在打入正確口令之后,當(dāng)文件打開時(shí)被加密的文件便被解密,而當(dāng)文件關(guān)閉時(shí)又重被加密。被偽裝的文件當(dāng)關(guān)閉時(shí)將保持為被加密的,直至不再希望偽裝時(shí)為止。當(dāng)被授權(quán)的用戶使用偽裝器應(yīng)用2116去掉偽裝時(shí)(這是通過從偽裝器驅(qū)動(dòng)器查尋表或數(shù)據(jù)庫(kù)中去掉文件名來實(shí)現(xiàn)的),該文件將被自動(dòng)解密。偽裝器應(yīng)用和偽裝器驅(qū)動(dòng)器可以使用許多方式影響加密和解密過程,上面的描述只是一種實(shí)施方式。加密的基本有用性源于某些人從軟盤引導(dǎo)該系統(tǒng),從而在不同的操作系統(tǒng)上運(yùn)行該系統(tǒng),這意味著偽裝器驅(qū)動(dòng)器程序會(huì)不被執(zhí)行。這樣,對(duì)文件加密使在軟盤引導(dǎo)的場(chǎng)合難以(如果不是不可能的話)破譯這些文件的內(nèi)容,從而防止對(duì)這些文件的未授權(quán)訪問。
圖23是根據(jù)本發(fā)明的一種方法實(shí)施例的流程圖,該方法用于監(jiān)視對(duì)一操作系統(tǒng)的文件系統(tǒng)結(jié)構(gòu)的文件系統(tǒng)調(diào)用,和用于控制原始調(diào)用或返回的變量。圖23的方法是由虛擬偽裝器軟件驅(qū)動(dòng)器2118實(shí)現(xiàn)的,其目的是隱藏或偽裝可能存儲(chǔ)在介質(zhì)裝置2220上的文件。在一個(gè)實(shí)施例中,圖23的方法能用在Windows95的可安裝文件系統(tǒng)(IFS)內(nèi)執(zhí)行的一個(gè)銷售商提供的驅(qū)動(dòng)器(VSD)來實(shí)現(xiàn)。
如圖23中所示,在步驟2210中,一個(gè)文件系統(tǒng)調(diào)用被阻斷。通常,該文件系統(tǒng)調(diào)用是要對(duì)存儲(chǔ)在介質(zhì)裝置2220上的數(shù)據(jù)實(shí)現(xiàn)某種功能,但在能完成那個(gè)功能之前被阻斷了。在圖23的步驟2212中,確定被阻斷的調(diào)用的類型是否是應(yīng)被處理的一種。通常,感興趣的調(diào)用應(yīng)是調(diào)用任何能找到或識(shí)別出由該用戶或先前的用戶偽裝過的文件的調(diào)用。通過偽裝,一個(gè)文件不論從用戶的角度還是從操作系統(tǒng)的角度都是不可見的,而且不能被訪問、改變、修改、刪除、列出或者甚至不能被操作系統(tǒng)發(fā)現(xiàn)。這樣,一旦一個(gè)文件被偽裝,感興趣的調(diào)用便包括“打開”、“找出第一個(gè)”、 “找出下一個(gè)”、 “刪除”和“重命名”。通常,如果一個(gè)文件被偽裝,則試圖根據(jù)被偽裝文件采取某些行動(dòng)的調(diào)用或該調(diào)用返回的變量便受到控制,以便隱藏或偽裝該文件。這種控制可以包括產(chǎn)生一個(gè)諸如錯(cuò)誤代碼之類的返回變量或者如下文中結(jié)合圖26A-26G解釋的其他行動(dòng)。如果在步驟2212中沒有識(shí)別出這種調(diào)用,則在步驟2214中原始調(diào)用被通過該文件系統(tǒng)被傳送。如果該調(diào)用應(yīng)被處理,即它是一個(gè)感興趣的調(diào)用,則在步驟2216進(jìn)行對(duì)該調(diào)用的某種處理,以保證不讓該用戶知道這個(gè)被偽裝的文件。具體的處理類型取決于調(diào)用的類型,這將結(jié)合圖26A-26G更充分地解釋。
根據(jù)本發(fā)明,步驟2216的調(diào)用處理能對(duì)用戶和對(duì)發(fā)出調(diào)用的系統(tǒng)應(yīng)用都透明地實(shí)現(xiàn)。在調(diào)用處理之后,在步驟2218該調(diào)用返回到發(fā)出調(diào)用的系統(tǒng)應(yīng)用,例如圖22中的應(yīng)用2119。
圖24是Windows95可安裝文件系統(tǒng)(IFS)2114的文件系統(tǒng)邏輯分層圖。如圖3中所示,可安裝文件系統(tǒng)被做成多達(dá)32個(gè)邏輯層,每層含有一個(gè)或多個(gè)虛擬裝置,通過它們傳送塊裝置(block-device)請(qǐng)求。對(duì)于典型的硬件,大多數(shù)邏輯層是空的。例如,對(duì)于硬盤驅(qū)動(dòng)器,一個(gè)文件系統(tǒng)請(qǐng)求(或調(diào)用)在到達(dá)硬件裝置的路上通常只經(jīng)過約5個(gè)虛擬裝置。
圖25是在Windows95操作系統(tǒng)的文件系統(tǒng)邏輯層內(nèi)的一個(gè)典型的文件系統(tǒng)請(qǐng)求鏈或路徑圖。如圖25中所示,一個(gè)典型的路徑在IFS管理器2422處開始,并移動(dòng)到文件系統(tǒng)驅(qū)動(dòng)器2424。然后,該請(qǐng)求移動(dòng)到一個(gè)指定類型的驅(qū)動(dòng)器2426以及在這種情況中的銷售商提供的偽裝器驅(qū)動(dòng)器2118。在銷售商提供的偽裝器驅(qū)動(dòng)器2118之后,該請(qǐng)求落在端口驅(qū)動(dòng)器2122和介質(zhì)驅(qū)動(dòng)器2120(例如硬驅(qū)動(dòng)器或其他存儲(chǔ)裝置)。該請(qǐng)求在物理級(jí)別上完成之后,該請(qǐng)求沿該鏈向上返回到發(fā)出調(diào)用的系統(tǒng)應(yīng)用。
在圖24中,左側(cè)的數(shù)字代表抽象層,以最小的數(shù)字代表較高的抽象層。最頂層是該文件系統(tǒng)的入口點(diǎn)。較高的數(shù)字較接近硬件,而最高的數(shù)字(低層)代表直接訪問硬件的虛擬裝置。一個(gè)輸入/輸出(I/O)管理器(IOS)管理那些通過該文件系統(tǒng)層次結(jié)構(gòu)的請(qǐng)求。在這鏈條上的每個(gè)虛擬裝置能根據(jù)請(qǐng)求所指向的邏輯或物理裝置來選擇請(qǐng)求。在一個(gè)請(qǐng)求沿此鏈條向上返回應(yīng)用時(shí),這些裝置還能看到請(qǐng)求的結(jié)果。再有,在此鏈條上的虛擬裝置驅(qū)動(dòng)器(VxD)能自己對(duì)請(qǐng)求提供服務(wù)而不把它們傳送到較低級(jí)別,或者它們本身能產(chǎn)生請(qǐng)求。
過程能在可安裝的文件系統(tǒng)的每一級(jí)別上發(fā)生,但大多數(shù)塊裝置并不需要在此鏈條的每一級(jí)別上有入口。在這邏輯層結(jié)構(gòu)的頂部,IFS管理器層管理來自應(yīng)用的高級(jí)別I/O請(qǐng)求。它采取一個(gè)指向特定邏輯驅(qū)動(dòng)器的調(diào)用,并沿著正確的向下調(diào)用鏈把該調(diào)用傳送到適當(dāng)?shù)木碜粉櫰?volume tracker)、文件系統(tǒng)驅(qū)動(dòng)器(FSD)等等。卷追蹤器對(duì)具有相同可卸性規(guī)則的裝置組進(jìn)行工作。例如,CD-ROM卷追蹤器保證,在其上帶有文件系統(tǒng)的CD在該驅(qū)動(dòng)器允許任何請(qǐng)求傳到較低層之前處在該驅(qū)動(dòng)器中。文件系統(tǒng)驅(qū)動(dòng)器(FSD)對(duì)一種特定類型的所有裝置進(jìn)行工作,例如硬盤或CD-ROM裝置。它們?nèi)〉糜蒊FS管理器產(chǎn)生的輸入邏輯請(qǐng)求并把它們翻譯成物理請(qǐng)求傳送到較低級(jí)別。此外,F(xiàn)SD能啟動(dòng)對(duì)裝置(如盤片)的邏輯錯(cuò)誤恢復(fù)。
針對(duì)類型的驅(qū)動(dòng)器(TSD)對(duì)一個(gè)特定類型的所有裝置進(jìn)行工作。它們?nèi)〉糜蒄SD產(chǎn)生的邏輯請(qǐng)求并把它翻譯成物理扇區(qū)請(qǐng)求。它們通常與相應(yīng)的FSD駐留在同一層中,但在鏈條中處于較低的位置。SCSI驅(qū)動(dòng)器(SCSI-izer)是該鏈條中的下一個(gè),使用SCSI驅(qū)動(dòng)器的原因是SCSI裝置需要比其他裝置,例如更流行的IDE/ESDI裝置,更復(fù)雜的請(qǐng)求包。SCSI驅(qū)動(dòng)器取得一個(gè)一般的物理請(qǐng)求并創(chuàng)建一個(gè)SCSI請(qǐng)求塊(SRB),它含有關(guān)于該請(qǐng)求的詳細(xì)的針對(duì)SCSI的信息,如邏輯單元號(hào)(LUN)和目標(biāo)(SCSI目標(biāo)能有多達(dá)7個(gè)LUN掛斷它們)。
銷售商提供的驅(qū)動(dòng)器(VSD)為Windows95下的第三方開發(fā)商提供一個(gè)特殊一層。結(jié)果,VSD層的功能由VSD作者確定。傳統(tǒng)的用途包括塊裝置驅(qū)動(dòng)器、低級(jí)別第二盤高速緩存(例如在閃爍存儲(chǔ)器中的高速緩存)、數(shù)據(jù)加密以及RAID盤管理。
SCSI端口驅(qū)動(dòng)器取得輸入的請(qǐng)求并確定哪個(gè)SCSI小型端口驅(qū)動(dòng)器應(yīng)容納它們。多種SCSI類型可加載到同一系統(tǒng)上,它們每一個(gè)可以要求一個(gè)定制的SCSI小型端口驅(qū)動(dòng)器。SCSI端口驅(qū)動(dòng)器還負(fù)責(zé)初始化小型端口驅(qū)動(dòng)器。SCSI小型端口驅(qū)動(dòng)器(MPD)是SCSI裝置的硬件驅(qū)動(dòng)器。它們管理中斷以及在I/O端口級(jí)與按上文實(shí)現(xiàn)請(qǐng)求的裝置的交互。它們還能實(shí)現(xiàn)針對(duì)適配器的錯(cuò)誤恢復(fù)。
端口驅(qū)動(dòng)器(PDR)(對(duì)于非SCSI硬件)實(shí)現(xiàn)類似于SCSI端口驅(qū)動(dòng)器和小型端口驅(qū)動(dòng)器的功能。它們提供直接與硬件交互作用的32位盤訪問以實(shí)現(xiàn)I/O。在Windows95不能提供端口驅(qū)動(dòng)器的某些場(chǎng)合,使用實(shí)模式映射器(RMM)。通過提供即插即用BIDS和包括許多針對(duì)硬件的端口驅(qū)動(dòng)器,Windows95通常能提供用于大多數(shù)盤硬件的32位訪問。然而,Windows95可能會(huì)在一個(gè)帶有秘傳硬件的老個(gè)人計(jì)算機(jī)上運(yùn)行,所以它必須允許用于它不能提供端口驅(qū)動(dòng)器以在保護(hù)模式下處置盤I/O的場(chǎng)合。一個(gè)系統(tǒng)還可能使用實(shí)模式盤驅(qū)動(dòng)器軟件,它提供Windows95保護(hù)模式的對(duì)應(yīng)物中不能提供的功能。對(duì)于這些場(chǎng)合,在保護(hù)模式虛擬驅(qū)動(dòng)器的鏈條上的最后一個(gè)入口是RMM而不是端口驅(qū)動(dòng)器。RMM向下調(diào)用實(shí)模式驅(qū)動(dòng)器以實(shí)現(xiàn)硬件I/O并沿文件系統(tǒng)鏈條向上返回結(jié)果。實(shí)模式驅(qū)動(dòng)器是一個(gè)特定的系統(tǒng)的硬件或軟件配置所要求的硬件驅(qū)動(dòng)器。然而,不鼓勵(lì)使用實(shí)模式驅(qū)動(dòng)器(10)因?yàn)樾阅軙?huì)受損(由于從保護(hù)模式到實(shí)模式過渡所需的開銷以及在實(shí)模式下較慢的執(zhí)行速度),但仍允許它們,以具有靈活性和向后兼容性。
通常,文件系統(tǒng)結(jié)構(gòu)的較上層由微軟公司寫成,作為Windows95的一部分,而較低層由盤驅(qū)動(dòng)器制造商提供。于是,通常為第三方開發(fā)商開發(fā)使用的層是虛擬供給驅(qū)動(dòng)器(VSD)層。如前面提到的那樣,根據(jù)本發(fā)明,VSD能阻斷文件系統(tǒng)調(diào)用和進(jìn)行調(diào)用處理,從而保證任何受偽裝的文件能對(duì)用戶隱藏。
在本發(fā)明的一個(gè)實(shí)施例中,一個(gè)25銷售商提供的驅(qū)動(dòng)器用于阻斷文件系統(tǒng)“打開”、“找出第一個(gè)”、“找出下一個(gè)”、“刪除”和“重命名”調(diào)用,從而對(duì)用戶隱藏受偽裝的文件。對(duì)這些調(diào)用的阻斷發(fā)生在圖23的步驟2210。然后在步驟2212識(shí)別這些調(diào)用,供每次執(zhí)行步驟2216時(shí)進(jìn)行調(diào)用處理。
圖26A-26G是進(jìn)行調(diào)用阻斷和處理的一個(gè)實(shí)施例的流程圖,該實(shí)施例可適用于處理“打開”、“找出第一個(gè)”、“找出下一個(gè)”、“刪除”和“重命名”等調(diào)用和返回。系統(tǒng)文件調(diào)用阻斷在步驟2510中完成。在調(diào)用阻斷之后,該調(diào)用被評(píng)估看其類型是否是感興趣的調(diào)用類型。這一評(píng)估在步驟2512至2520進(jìn)行。在步驟2512中,偽裝器驅(qū)動(dòng)器確定該調(diào)用是否是“打開”調(diào)用;在步驟2514中確定該調(diào)用是否是“找出第一個(gè)”調(diào)用;在步驟2516中確定該調(diào)用是否是“找出下一個(gè)”調(diào)用;在步驟2518中確定該調(diào)用是否是“刪除”調(diào)用;以及在步驟2520中確定該調(diào)用是否是“重命名”調(diào)用。任何“否”的決定沿流程圖2512-2520向下走。如果調(diào)用不是任何一個(gè)感興趣的調(diào)用,則在步驟2522A將調(diào)用傳送到下一層,這樣,該調(diào)用得以通過而未被偽裝器驅(qū)動(dòng)器2118修改。
如果在步驟2512中確定該調(diào)用是“打開”調(diào)用,則檢驗(yàn)文件名以確定該文件是否是被偽裝的。偽裝器驅(qū)動(dòng)器18查尋在查尋表或數(shù)據(jù)庫(kù)中的文件名,看該文件是否先前已被偽裝。如果該文件未被偽裝,則偽裝器驅(qū)動(dòng)器18在步驟2522A把該調(diào)用發(fā)送到下一層。如果該文件是被偽裝的,則在步驟2532由偽裝器驅(qū)動(dòng)器2118產(chǎn)生返回變量,該返回變量傳向文件系統(tǒng)管理器并最終向用戶表明未找到該文件或已發(fā)生某種錯(cuò)誤。例如,偽裝器驅(qū)動(dòng)器2118可把錯(cuò)誤代碼設(shè)為值2,表明一個(gè)“文件未找到”消息,和把返回變量設(shè)為“-1”,表明該調(diào)用執(zhí)行失敗。作為附加的保護(hù),偽裝器驅(qū)動(dòng)器2118把文件句柄設(shè)為“NULL(空)”,它向IFS管理器表明該句柄不存在。步驟2532的純結(jié)果不只是防止該文件被打開,而且向用戶表明該文件本身在系統(tǒng)中不存在。這樣,假定用戶對(duì)系統(tǒng)中存在的某個(gè)文件(例如“SECRET.doc”)有懷疑,則使用“打開”命令訪問該文件的任何嘗試都被每次在步驟2532返回空句柄和錯(cuò)誤消息所擊敗。
步驟2514檢驗(yàn)“找出第一個(gè)”調(diào)用。如果發(fā)現(xiàn)了這個(gè)調(diào)用,則它被沿著系統(tǒng)各層下傳,而在返回時(shí)在步驟2542檢驗(yàn)所檢索到的文件名,看該請(qǐng)求是否已命中了一個(gè)被偽裝的文件。如果該文件未被偽裝,該驅(qū)動(dòng)器進(jìn)入步驟2522B并把該調(diào)用直接沿該鏈條向上傳送到IFS管理器。如果在步驟2542中確定該文件是一個(gè)被偽裝的文件,則偽裝器驅(qū)動(dòng)器2118進(jìn)到步驟2544并執(zhí)行“找出下一個(gè)”功能。一旦在步驟2546返回,返回變量被檢查,再次看所命中的文件是否是被偽裝的。如果它不是被偽裝的,該程序進(jìn)到步驟2522B,如前面描述的那樣。如果被命中的文件是被偽裝的,則程序循環(huán)回到步驟2544,再次執(zhí)行“找出下一個(gè)”功能。以這種方式,被偽裝文件的名字甚至它的存在都對(duì)用戶隱藏了,只有第一個(gè)找到的未被偽裝的文件將顯示給用戶。
對(duì)于“找出下一個(gè)”調(diào)用,進(jìn)行與上述類似的步驟。這樣,如果在步驟2516中識(shí)別出“找出下一個(gè)”調(diào)用,則在步驟2550該調(diào)用沿該鏈條向下傳送并返回該文件名,如果在步驟2552檢驗(yàn)的文件名對(duì)應(yīng)于一個(gè)被偽裝的文件,則在步驟2554沿該鏈條向下傳送另一個(gè)“找出下一個(gè)”調(diào)用而不允許向IFS管理器返回第一個(gè)文件名。在步驟2556對(duì)這一個(gè)“找出下一個(gè)”功能的返回結(jié)果進(jìn)行檢驗(yàn),如果它不是指向一個(gè)被偽裝的文件,則程序進(jìn)到步驟2522B并把返回結(jié)果送到IFS管理器。如果在步驟2556中返回結(jié)果標(biāo)識(shí)一個(gè)被偽裝的文件,則程序又循環(huán)到步驟2554,再產(chǎn)生另一個(gè)“找出下一個(gè)”功能。以這種方式,“找出下一個(gè)”功能從不向OS識(shí)別出一個(gè)被偽裝的文件的標(biāo)識(shí)。
“找出第一個(gè)”和“找出下一個(gè)”調(diào)用通常用于列出目錄,這樣,在流程圖中概括的步驟防止被偽裝的文件顯示在目錄清單上,從而有效地隱藏任何被偽裝的文件。
步驟2518檢驗(yàn)“刪除”調(diào)用。如果發(fā)現(xiàn)了這個(gè)調(diào)用,則在步驟2560確定所命中的文件是否是被偽裝的。如果該文件不是被偽裝的,則進(jìn)行步驟2522A以把該調(diào)用向下傳到下一層。如果所命中的文件是被偽裝的,則通過把錯(cuò)誤代碼置為2使得顯示一個(gè)錯(cuò)誤消息”文件未找到”,通過把返回代碼置為“-1”表明一個(gè)失敗,并把控制返回給文件系統(tǒng)管理器。以這種方式,用戶不能刪除所命中的文件,而且的確該系統(tǒng)表現(xiàn)為猶如該文件并不存在——這恰是對(duì)偽裝文件所希望的結(jié)果。
在步驟2520中檢驗(yàn)“重命名”調(diào)用。如果發(fā)現(xiàn)了這個(gè)調(diào)用,則偽裝器驅(qū)動(dòng)器2118進(jìn)入步驟2570以確定該命中的文件是否是被偽裝的。如果該文件不是被偽裝的,則在步驟2522A該調(diào)用向下傳到下一層。如果該文件是被偽裝的,則在步驟M產(chǎn)生一個(gè)返回變量以把錯(cuò)誤代碼設(shè)為2并返回-1,如在步驟2562中做的那樣。
應(yīng)該理解,偽裝器操作是實(shí)時(shí)進(jìn)行的,每當(dāng)用戶啟動(dòng)一個(gè)過程,而該過程能造成產(chǎn)生“打開”、“找出第一個(gè)”、“找出下一個(gè)”、“刪除”和“重命名”調(diào)用之一時(shí),便進(jìn)行偽裝器操作。
如上文指出的對(duì)文件調(diào)用及返回結(jié)果的監(jiān)視,是由偽裝器驅(qū)動(dòng)器2118進(jìn)行的。通常,這個(gè)文件及返回結(jié)果是“IFS請(qǐng)求包”的一部分,該請(qǐng)求從IFS管理器向下行進(jìn)到較低級(jí)別的驅(qū)動(dòng)器,而返回結(jié)果或返回變量被插入該包并從較低級(jí)別驅(qū)動(dòng)器沿鏈條向上發(fā)送到IFS管理器。
對(duì)于“打開”、“刪除”和“重命名”調(diào)用,將圖26A-26G中所示的原理擴(kuò)展到WindowsNT環(huán)境是直接了當(dāng)?shù)?。然而,?duì)于“找出第一個(gè)”和“找出下一個(gè)”,則需要更多的處理去管理索引緩存器,所返回的索引緩存器用于描述目錄中的文件清單。NTFS文件系統(tǒng)以事務(wù)處理數(shù)據(jù)庫(kù)方式運(yùn)作,并對(duì)其文件編排索引以用于快速查尋和顯示。這種索引是預(yù)制的。這樣,為了偽裝文件,一旦索引運(yùn)行被返回到偽裝器驅(qū)動(dòng)器,這些文件必須從存儲(chǔ)器段中去掉。
圖26A-26G所示本發(fā)明實(shí)施例基本上防止了操作系統(tǒng)用戶知道任何被偽裝文件本身的存在。然而,在某些應(yīng)用中,可能希望允許用戶列出目錄中的被偽裝文件,但卻不能訪問這些文件。該文件被稱作禁止訪問的。實(shí)質(zhì)上,用戶被拒絕有效地訪問該文件,即用戶只能通過觀看目錄清單中的名字得知該文件的存在。在這一實(shí)施例中,目錄列表不是由口令保護(hù)的,但除了查看以外對(duì)該文件的訪問是由口令保護(hù)的,從而只允許具有訪問權(quán)限的人才能訪問這些文件。在這一實(shí)施例中,被偽裝的文件最好加密,以保證該文件的內(nèi)容是不可得到的。這樣的實(shí)施例可應(yīng)用于允許任何人計(jì)算機(jī)或存儲(chǔ)裝置搜索敏感文件而不必害怕這些敏感文件可被掩護(hù)操作者訪問。
本發(fā)明上述實(shí)施例的實(shí)現(xiàn)僅需要在步驟2514和2516中分別去掉“找出打開”和“找出下一個(gè)”調(diào)用。以這種方式,目錄列表將是可能的,但打開、刪除和重命名過程將是不允許的。
本發(fā)明的又一實(shí)施例利用可以應(yīng)用于給定過程或應(yīng)用的許可或限制,以及可應(yīng)用于該應(yīng)用內(nèi)選定過程的許可或限制。該文件稱作限制使用的。例如,人們可利用本發(fā)明的這一實(shí)施例去允許文字處理程序讀出一個(gè)文件以及編輯和復(fù)制一個(gè)文件,但不能刪除一個(gè)文件。
在這個(gè)實(shí)施例中,圖26A-26G的監(jiān)視系統(tǒng)將被修改成除了步驟2518、2560、2522A和2562中的刪除調(diào)用監(jiān)視外去掉所有其他調(diào)用監(jiān)視。增加的一個(gè)邏輯查詢將要確定所監(jiān)視的調(diào)用或請(qǐng)求包是否含有一個(gè)指定的文字處理應(yīng)用,例如Word。如果偽裝器驅(qū)動(dòng)器確定這發(fā)請(qǐng)求的應(yīng)用是Word,而且從文件系統(tǒng)管理器發(fā)出了刪除命令,則序列將分支到對(duì)刪除的監(jiān)視步驟2518、2560、2522A和2562。以這種方式,本發(fā)明的這個(gè)實(shí)施例不去偽裝一個(gè)文件,相反,將對(duì)該文件的使用限制于至少是在給定應(yīng)用中通??捎玫囊粋€(gè)特性。
偽裝器應(yīng)用2118允許用戶選擇(取消選擇)哪些文件要存儲(chǔ)到偽裝器驅(qū)動(dòng)器2118的數(shù)據(jù)庫(kù)或查尋表中(從數(shù)據(jù)庫(kù)或查尋表中去掉)。偽裝器應(yīng)用2116還提供一個(gè)用戶界面供插入用戶口令、加密選項(xiàng)以及可用于偽裝的、禁止訪問的和限制使用的操作方式的其他類型許可。偽裝器應(yīng)用在開始時(shí)列出選定目錄中的所有文件并允許用戶突顯(highlight)那些希望被偽裝的文件。這突顯作用有效地選擇要被偽裝的文件。通過送入“選擇”(按回車鍵或在對(duì)話框中的“o.k.”指令),用戶使選定的文件存入偽裝器驅(qū)動(dòng)器數(shù)據(jù)庫(kù)或查尋表。最好要求用戶輸入口令,從而使用戶以后能去掉對(duì)文件的偽裝或添加新的要被偽裝的文件??诹羁稍陂_始時(shí)送入,也可在文件選擇之后送入,但無論如何要在用于監(jiān)視來自文件系統(tǒng)管理器的調(diào)用的程序執(zhí)行之前送入。為了去掉對(duì)文件的偽裝,用戶再送入他的口令,該口令由偽裝器應(yīng)用認(rèn)出,然后該應(yīng)用提取出列在偽裝器驅(qū)動(dòng)器數(shù)據(jù)庫(kù)(或查尋表)中的文件名,從而使它們最好可在通常的目錄列表命令過程中顯示出來。在文件清單中使用突顯或其他手段使被偽裝的文件區(qū)別出來,使得用戶知道哪些文件要取消選擇,從而從數(shù)據(jù)庫(kù)或查尋表中去掉它們,從而取消對(duì)它們的偽裝。與此同時(shí),還可以選擇其他文件以便進(jìn)行偽裝、禁止訪問和/或限制使用。
對(duì)于每個(gè)文件,可以使用來自偽裝器應(yīng)用的GUI的對(duì)話框或其他輸入,選擇偽裝、禁止訪問和限制使用等方式。程序流在每個(gè)文件的基礎(chǔ)上執(zhí)行每種方式。這樣,文件A和B可能是被偽裝的,文件可能是被禁止訪問的,而文件D和E可能是限制使用的。方式/文件組合的初始選擇是使用應(yīng)用程序在文件/方式選擇過程期間由用戶做出的。在另一種操作方式中,要被隱藏的文件不需要由操作系統(tǒng)的用戶來選擇,而是可以由銷售某一應(yīng)用供在操作系統(tǒng)上安裝的第三方銷售商來預(yù)先選擇。第三方銷售商可能希望保持某些數(shù)據(jù)或。exe文件不被操作系統(tǒng)用戶意外刪除,而同時(shí)又讓這些文件可被該應(yīng)用程序訪問。例如應(yīng)用X可能含有文件Y和Z,銷售商想使它們被偽裝,即使其對(duì)于操作系統(tǒng)而言是不可見的,除非應(yīng)用X想訪問。在這種情況中,應(yīng)用X含有一個(gè)偽裝器驅(qū)動(dòng)器,它相對(duì)于操作系統(tǒng)偽裝文件Y和Z,但對(duì)應(yīng)用X不偽裝它們。這一操作基本上是對(duì)文件Y和Z的限制使用。如果應(yīng)用X試圖訪問文件Y和Z,則操作系統(tǒng)能通過文件管理器提供完全的訪問和使用許可。如果用戶試圖在應(yīng)用X之外得到任何類型的訪問,則這些行為被拒絕,操作系統(tǒng)的行動(dòng)就如這兩個(gè)文件并不存在(即它們不能被找到)。除防止一個(gè)文件被用戶意外刪除之外的一個(gè)應(yīng)用是禁止一個(gè)文件被用戶復(fù)制。這一應(yīng)用對(duì)于許多應(yīng)用是重要的,例如在因特網(wǎng)上分發(fā)音頻和視頻內(nèi)容文件的那些應(yīng)用。在這種情況中,應(yīng)用A能“播放”被偽裝的文件,因?yàn)閼?yīng)用A有使用許可。然而,該用戶卻不能通過操作系統(tǒng)的文件系統(tǒng)管理器去管理文件(移動(dòng)、復(fù)制、重命名、刪除、目錄列表)。
當(dāng)然,可以利用偽裝器驅(qū)動(dòng)器給用戶某些使用許可而不是通過應(yīng)用A,例如目錄列表和刪除命令,但禁止其他命令,以防止該文件在因特網(wǎng)上復(fù)制或再傳送。
本發(fā)明各種實(shí)施例的偽裝器驅(qū)動(dòng)器可通過因特網(wǎng)下載給用戶或者通過CD提供給用戶。在下載的情況中,該程序存儲(chǔ)在一個(gè)服務(wù)器存儲(chǔ)器中并沿著通常的電子商務(wù)路徑下載。
如前文解釋的,偽裝或隱藏文件防止文件被列出在目錄清單上,或者是防止計(jì)算裝置的操作系統(tǒng)訪問該文件。這樣,文件可以不被打開、刪除、重命名或被計(jì)算機(jī)操作系統(tǒng)的文件系統(tǒng)訪問。偽裝器驅(qū)動(dòng)器識(shí)別來自文件管理器的調(diào)用或到文件管理器的返回。這里調(diào)用和返回至少與指定的文件標(biāo)識(shí)數(shù)據(jù)相關(guān)聯(lián),例如與文件名關(guān)聯(lián)。這種關(guān)聯(lián)可以是對(duì)調(diào)用或返回包中的文件名的直接對(duì)照,或者是對(duì)指針的間接對(duì)照,這些指針又去標(biāo)識(shí)文件名或標(biāo)識(shí)數(shù)據(jù),從而唯一地標(biāo)識(shí)該文件。以這種方式,要被拒絕的操作(打開、找出第一個(gè)、找出下一個(gè)、刪除和重命名)可以唯一地與指定文件關(guān)聯(lián),該文件的標(biāo)識(shí)可針對(duì)偽裝器驅(qū)動(dòng)器或查尋表來檢驗(yàn),從而只把拒絕加到選定為被偽裝、禁止訪問或限制使用的那些文件上。
下面說明根據(jù)本發(fā)明的一個(gè)打包器(packager)的最佳實(shí)施例。如前文指出的那樣,打包器12最好與一個(gè)客戶機(jī)或接收器14一起操作。
當(dāng)前技術(shù)的一個(gè)已知問題是電子消息的作者不能對(duì)該消息經(jīng)網(wǎng)絡(luò)傳送之后它所發(fā)生的情況保持控制。例如,接收者可能把該消息再傳給其他用戶,打印該消息,存儲(chǔ)該消息供以后查看,或者把該消息復(fù)制到剪切板上。作者可能不想讓一個(gè)敏感的電子郵件或消息傳到第三方,或者把消息的副本存儲(chǔ)或打印供將來參考。然而,當(dāng)前技術(shù)不能完全解決這一需要。
某些電子郵件程序允許作者把一消息指定為“私人的”。這一設(shè)置限制接收者修改原始消息并將作者傳送的消息以修改過的外貌轉(zhuǎn)發(fā)給第三方的能力。然而,這一設(shè)置并不限制接收者以該消息的原始形式轉(zhuǎn)發(fā)、復(fù)制到剪切板、存儲(chǔ)或打印該消息的能力。
在電子和數(shù)字通信領(lǐng)域需要有一種方法和裝置,它允許作者設(shè)置通信許可,該許可限制接收者使用所傳信息的能力。再有,還需要一種方法和裝置,它允許作者保證只有預(yù)期的接收者能收到該消息。本發(fā)明解決這一需要,即提供一種方法和裝置用于產(chǎn)生一個(gè)加密的數(shù)據(jù)包,它包含數(shù)據(jù)文件、一個(gè)唯一的標(biāo)識(shí)、以及一個(gè)或多個(gè)控制該文件使用的許可。該包還可以含有接收者的唯一標(biāo)識(shí)以及在一收到該包之后要安裝在接收者計(jì)算機(jī)系統(tǒng)上的客戶機(jī)軟件包。
本發(fā)明的另一種方法對(duì)上述方法添加如下步驟在有操作系統(tǒng)的客戶機(jī)計(jì)算機(jī)系統(tǒng)上接收計(jì)算機(jī)可執(zhí)行文件并在客戶機(jī)計(jì)算機(jī)系統(tǒng)上執(zhí)行該計(jì)算機(jī)可執(zhí)行文件。執(zhí)行該文件包含的步驟有確定該操作系統(tǒng)是否是一個(gè)可兼容的操作系統(tǒng),如果是,則在客戶機(jī)計(jì)算機(jī)系統(tǒng)上執(zhí)行一客戶機(jī)軟件。該客戶機(jī)軟件的執(zhí)行創(chuàng)建一個(gè)客戶機(jī)許可數(shù)據(jù)庫(kù)和在客戶機(jī)計(jì)算機(jī)系統(tǒng)上的一個(gè)存儲(chǔ)庫(kù)(vault)。在執(zhí)行該客戶機(jī)軟件之后,該方法進(jìn)一步包含確定被加密包是否有效的步驟,如果是的話,把該包全局唯一標(biāo)識(shí)(global unique identifier)記錄在客戶機(jī)許可數(shù)據(jù)庫(kù)中,從數(shù)據(jù)包中提取數(shù)據(jù)文件和一個(gè)或多個(gè)許可,把數(shù)據(jù)文件存入存儲(chǔ)庫(kù)并把這一個(gè)或多個(gè)許可存入客戶機(jī)許可數(shù)據(jù)庫(kù)。如果該包不是有效的,則該方法在這計(jì)算機(jī)可執(zhí)行文件中設(shè)置一個(gè)狀態(tài),指明該包被安裝了。
現(xiàn)在參考圖27,圖中顯示根據(jù)本發(fā)明的一個(gè)最佳實(shí)施例傳送信息包的系統(tǒng)的方框圖。打包器2612產(chǎn)生一個(gè)計(jì)算機(jī)可執(zhí)行程序,例如“package.exe”2614,用于在網(wǎng)絡(luò)2616上向客戶機(jī)計(jì)算機(jī)系統(tǒng)2617傳輸供客戶機(jī)訪問。該計(jì)算機(jī)可執(zhí)行文件2614包含一個(gè)由打包器2612收集的信息包。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,信息包包括數(shù)據(jù)文件2618和許可數(shù)據(jù)庫(kù)2620。在本發(fā)明的另一實(shí)施例中,信息包進(jìn)一步包括加密軟件2622和可選的但不是必須的客戶機(jī)軟件2624。最好是,該客戶機(jī)軟件有一個(gè)版本指定。打包器2612為每個(gè)信息包產(chǎn)生一個(gè)包全局唯一標(biāo)識(shí)(PGUID)并把它包括在信息包中。在一個(gè)最佳實(shí)施例中,該信息包,包括PGUID在內(nèi),被加密軟件2622加密。PGUID可以是例如一個(gè)字母數(shù)字符號(hào)字符串。
根據(jù)本發(fā)明的一種方法,打包器2612接收數(shù)據(jù)文件2618和許可數(shù)據(jù)庫(kù)2620。許可數(shù)據(jù)庫(kù)2620有一個(gè)或多個(gè)可由作者配置的許可,它們與數(shù)據(jù)文件2618關(guān)聯(lián),用于控制數(shù)據(jù)文件2618的使用。這些許可的一個(gè)功能是限制數(shù)據(jù)文件2618的共享??捎勺髡吲渲玫脑S可的示例包括訪問計(jì)數(shù)、訪問時(shí)間、期滿日期、授權(quán)日期、剪切板許可、打印許可、無限訪問許可、應(yīng)用許可、以及系統(tǒng)事件許可。
訪問計(jì)數(shù)許可指定可允許用戶訪問數(shù)據(jù)文件2618的次數(shù)。在一個(gè)實(shí)施例中,一個(gè)訪問計(jì)數(shù)定義為允許該客戶機(jī)計(jì)算機(jī)系統(tǒng)2617上的一個(gè)過程在該過程的生命期訪問數(shù)據(jù)文件2618。訪問時(shí)間許可指定客戶機(jī)可訪問一個(gè)文件的時(shí)間總量。一旦客戶機(jī)計(jì)算機(jī)系統(tǒng)2617上的一個(gè)過程打開數(shù)據(jù)文件2618,該訪問時(shí)間便被減量,直至該過程終止,或者,如果在該過程終止之前訪問時(shí)間已完全用完,則該過程自動(dòng)被終止。
期滿日期許可指定該數(shù)據(jù)文件將不再能被訪問的日期。在期滿日期發(fā)生之前,客戶機(jī)將有對(duì)該文件進(jìn)行無限訪問,但以數(shù)據(jù)文件2618上的任何其他許可為條件。如果在客戶計(jì)算機(jī)系統(tǒng)2617上的任何過程在期滿日期讓數(shù)據(jù)文件2618打開,則該過程自動(dòng)被終止。在期滿日期,該文件的內(nèi)容被覆蓋并被刪除。最好是這個(gè)期滿日期許可也從許可數(shù)據(jù)庫(kù)中去掉。
授權(quán)日期許可指定一個(gè)日期,在那一天該數(shù)據(jù)文件2618將變?yōu)榭稍L問的。以對(duì)數(shù)據(jù)文件2618的其他許可為條件,一個(gè)用戶在該日期過去之前將不能訪問數(shù)據(jù)文件2618。所有這些訪問許可以被獨(dú)立地或組合地配置和生效。
剪切板許可指定客戶機(jī)能否把數(shù)據(jù)文件2618或者該文件的一部分復(fù)制到例如Windows剪切板上。剪切板許可還可被配置成防止客戶機(jī)把該數(shù)據(jù)文件轉(zhuǎn)發(fā)到另一計(jì)算機(jī)系統(tǒng)。打印許可指定該客戶機(jī)能否打印數(shù)據(jù)文件2618。無限訪問許可保證客戶機(jī)對(duì)數(shù)據(jù)文件2618進(jìn)行無限訪問。數(shù)據(jù)文件2618最好是只讀的,它允許具有無限訪問許可的客戶機(jī)以無限時(shí)間量查看數(shù)據(jù)文件2618。然而,該客戶機(jī)將不被允許進(jìn)行任何更多的事情,除非有其他許可伴隨該數(shù)據(jù)文件2618,例如打印許可和剪切板許可。
應(yīng)用許可確定一個(gè)應(yīng)用清單上的一個(gè)或多個(gè)應(yīng)用是否正在客戶計(jì)算機(jī)系統(tǒng)2617上運(yùn)行,如果這些應(yīng)用之一正在運(yùn)行,則使其不能訪問該數(shù)據(jù)文件。另一種作法是,如果這些應(yīng)用之一沒有在運(yùn)行,則應(yīng)用許可可以使該數(shù)據(jù)文件不能被訪問。系統(tǒng)事件許可分析客戶計(jì)算機(jī)系統(tǒng)2617以確定已發(fā)生了哪些系統(tǒng)事件并根據(jù)已發(fā)生的系統(tǒng)事件確定是否允許訪問數(shù)據(jù)文件2618。
在一個(gè)最佳實(shí)施例中,打包器2612能規(guī)定一個(gè)口令以限制對(duì)該包的訪問。在客戶向客戶機(jī)計(jì)算機(jī)系統(tǒng)2617送入適當(dāng)?shù)目诹钪埃撔畔鼘⒉荒鼙辉L問。在另一實(shí)施例中,打包器2612可以接收一個(gè)接收者的全局唯一標(biāo)識(shí)(RGUID)并把它包括在信息包中。RGUID標(biāo)識(shí)的客戶是作者希望向其傳送數(shù)據(jù)文件2618的客戶,RGUID可以由作者手工送入該包或者從存儲(chǔ)在打包器2612中的客戶清單中選擇。
該信息包被鏈接在計(jì)算機(jī)可執(zhí)行文件2614中供在網(wǎng)絡(luò)2616上傳送給客戶計(jì)算機(jī)系統(tǒng)2617。
現(xiàn)在參考圖28A-28B,圖中顯示根據(jù)本發(fā)明的一個(gè)實(shí)施例在產(chǎn)生計(jì)算機(jī)可執(zhí)行文件2714之后傳送信息包的方法。根據(jù)這一方法,包含實(shí)現(xiàn)本方法的代碼的計(jì)算機(jī)可執(zhí)行文件2714在客戶機(jī)計(jì)算機(jī)系統(tǒng)2717上執(zhí)行,步驟2730。在信息包受口令保護(hù)的實(shí)施例中,客戶被提示送入口令。在步驟2732中,客戶機(jī)計(jì)算機(jī)系統(tǒng)2717確定該操作系統(tǒng)是否是一個(gè)可兼容的操作系統(tǒng)。如果該操作系統(tǒng)不是可兼容的,則該包被刪除和覆蓋,步驟2734??杉嫒莸牟僮飨到y(tǒng)包括但不限于Windows95、98、NT和2000??蛇x地,如圖28的步驟2736中所示,客戶機(jī)計(jì)算機(jī)系統(tǒng)2717確定是否第二個(gè)信息包已被加載到客戶機(jī)計(jì)算機(jī)系統(tǒng)2717上,如果是,則在步驟2738終止這第二包。在步驟2740,系統(tǒng)2717確定是否安裝了客戶機(jī)軟件2724。如果未安裝客戶機(jī)軟件,則從該包中提取出客戶機(jī)軟件2724并安裝到客戶機(jī)計(jì)算機(jī)系統(tǒng)2717上,步驟2742。如果已安裝了客戶機(jī)軟件,則系統(tǒng)2717將包中客戶機(jī)軟件的版本與所安裝軟件的版本進(jìn)行比較,步驟2744。如果在該包中的客戶機(jī)軟件版本遲于系統(tǒng)2417上已安裝的版本,則通過從該包中提取較新的版本并將它安裝在系統(tǒng)2717上來更新已安裝的客戶機(jī)軟件,步驟2742。在另一實(shí)施例中,可從該包中提取客戶機(jī)軟件2724并進(jìn)行安裝,而不檢驗(yàn)所安裝的版本。
在步驟2748中,執(zhí)行客戶機(jī)軟件2724,從而在客戶機(jī)計(jì)算機(jī)系統(tǒng)上建立一個(gè)客戶機(jī)許可數(shù)據(jù)庫(kù)和一個(gè)存儲(chǔ)庫(kù)。該存儲(chǔ)庫(kù)是與操作系統(tǒng)充分集成的虛擬盤環(huán)境,但又與操作系統(tǒng)隔絕,從而能實(shí)現(xiàn)新的操作規(guī)則并能在其中檢驗(yàn)數(shù)據(jù)文件,而不會(huì)危及整個(gè)系統(tǒng)。在圖28所示實(shí)施例中,客戶機(jī)軟件2724包含一個(gè)或多個(gè)裝置驅(qū)動(dòng)器和一個(gè)或多個(gè)Win 32模塊,它們是在執(zhí)行該軟件時(shí)安裝到客戶計(jì)算機(jī)系統(tǒng)2717上的,步驟2750。裝置驅(qū)動(dòng)器或Win 32模塊中至少有一個(gè)創(chuàng)建客戶機(jī)許可數(shù)據(jù)庫(kù)和存儲(chǔ)庫(kù),步驟2752。在一個(gè)最佳實(shí)施例中,Win 32模塊裝置驅(qū)動(dòng)器是修改的Win 32可執(zhí)行驅(qū)動(dòng)器。裝置驅(qū)動(dòng)器和Win 32模塊還實(shí)現(xiàn)軟件2724的其他功能,例如確認(rèn)許可結(jié)構(gòu)是否已被改變。一旦加載了所有裝置驅(qū)動(dòng)器和Win 32模塊,它們被偽裝,部分地是為了防止黑客進(jìn)入存儲(chǔ)庫(kù),步驟2754。在安裝客戶機(jī)軟件之后,操作系統(tǒng)被修改,以便當(dāng)系統(tǒng)2717被加電時(shí)修改的Win 32可執(zhí)行驅(qū)動(dòng)器能被自動(dòng)地初始化。
至少一個(gè)裝置驅(qū)動(dòng)器與計(jì)算機(jī)可執(zhí)行文件2714通信。在一個(gè)實(shí)施例中,Win 32模塊之一接收一個(gè)查詢?cè)撔畔恼?qǐng)求,步驟2756。然后該Win 32模塊確定該信息包是否是受口令保護(hù)的,步驟2758,如果是,則向該客戶詢問口令,步驟2760。如果該包不是受口令保護(hù)的,或者它是受口令保護(hù)的且在步驟2762送入了正確的口令,則該Win 32模塊確定該包是否有效,步驟2764。如果該包是有效的,則把數(shù)據(jù)文件吸收到存儲(chǔ)庫(kù)中,把一個(gè)或多個(gè)許可存儲(chǔ)到客戶機(jī)許可數(shù)據(jù)庫(kù)中,并且用PGUID更新該客戶機(jī)許可數(shù)據(jù)庫(kù),步驟2766。
最好是,通過讀取該包中的PGUID并對(duì)此PGUID檢驗(yàn)客戶機(jī)許可數(shù)據(jù)庫(kù)來確定一個(gè)包的有效性。如果在客戶機(jī)許可數(shù)據(jù)庫(kù)中存在這個(gè)PGUID,說明該包已在另一個(gè)時(shí)候被接收到存儲(chǔ)庫(kù)中,因此該包是無效的。如果發(fā)生這一情況,則設(shè)置計(jì)算機(jī)可讀文件2714中的一個(gè)狀態(tài),以指出該包已經(jīng)被安裝。設(shè)置這一狀態(tài)可以是例如改變一個(gè)數(shù)據(jù)位或設(shè)置一個(gè)標(biāo)志。如果該P(yáng)GUID不在客戶許可數(shù)據(jù)庫(kù)中,則該包對(duì)于存儲(chǔ)庫(kù)是新的,因而是有效的。
在有一個(gè)RGUID在信息包中的實(shí)施例中,一個(gè)包的有效性通過檢驗(yàn)客戶機(jī)許可數(shù)據(jù)庫(kù)查找RGUID來確定。如果在客戶機(jī)許可數(shù)據(jù)庫(kù)中存在這個(gè)RGUID,則該包是預(yù)期給予接收該包的客戶機(jī)的,因此該包是有效的。如果這個(gè)RGUID不在客戶機(jī)許可數(shù)據(jù)庫(kù)中,則表明該包不是預(yù)期給予該客戶機(jī)的,于是計(jì)算機(jī)可執(zhí)行文件2714被刪除并被覆蓋,步驟2868。
在數(shù)據(jù)文件被吸收到存儲(chǔ)庫(kù)中之后,客戶機(jī)軟件2724最好通過裝置驅(qū)動(dòng)器之一來刪除和覆蓋計(jì)算機(jī)可執(zhí)行文件2714。
在一個(gè)實(shí)施例中,在該包被確定為有效之后,但在把數(shù)據(jù)文件吸收到存儲(chǔ)庫(kù)中之前,裝置驅(qū)動(dòng)器詢問客戶機(jī)以建立與存儲(chǔ)庫(kù)中數(shù)據(jù)文件的關(guān)聯(lián)。該關(guān)聯(lián)優(yōu)選一個(gè)文件,最好是一個(gè)“標(biāo)志”文件,它實(shí)質(zhì)上是一個(gè)零字節(jié)長(zhǎng)的文件??蛻魴C(jī)能以傳統(tǒng)的方式給該文件命名。對(duì)客戶機(jī)而言,該文件看起來是代表存儲(chǔ)庫(kù)中的實(shí)際數(shù)據(jù)文件,但它不是。如果該客戶機(jī)訪問該標(biāo)志文件的屬性,則一個(gè)對(duì)話框顯示出與該數(shù)據(jù)文件關(guān)聯(lián)的一個(gè)或多個(gè)許可。
一旦已選定一個(gè)文件名,而且客戶機(jī)已破譯該數(shù)據(jù)并將其傳送到存儲(chǔ)庫(kù)中,該數(shù)據(jù)便可通過打開數(shù)據(jù)文件進(jìn)行訪問。這可由任何用戶指定的過程完成。如果該用戶雙擊該文件,與那個(gè)文件類型相關(guān)聯(lián)的應(yīng)用便自動(dòng)啟動(dòng)并試圖通過一個(gè)調(diào)用過程打開該文件??蛻魴C(jī)軟件2724阻斷這個(gè)調(diào)用過程并對(duì)該調(diào)用過程進(jìn)行安全檢查。安全檢查確認(rèn)該調(diào)用過程未在數(shù)據(jù)文件內(nèi)建立數(shù)據(jù)空洞(hole)來“泄漏”數(shù)據(jù)?!靶孤?shù)據(jù)”的意思是把數(shù)據(jù)傳送到希望對(duì)數(shù)據(jù)保密的系統(tǒng)之外。對(duì)于數(shù)據(jù)安全性重要的應(yīng)用,需要限制數(shù)據(jù)泄露。
如果調(diào)用過程通過安全檢查,則向客戶顯示一個(gè)對(duì)話框以確認(rèn)該客戶對(duì)該數(shù)據(jù)字段的請(qǐng)求。顯示出含有一個(gè)或多個(gè)許可的許可集,并向客戶展現(xiàn)任何警告以求認(rèn)可。警告包括例如一旦該數(shù)據(jù)字段被訪問,所有未保存的數(shù)據(jù)將會(huì)丟失。一旦客戶同意,如圖27所示,客戶計(jì)算機(jī)系統(tǒng)2617的環(huán)境便強(qiáng)烈地改變。在系統(tǒng)2617上運(yùn)行的任何過程都將不能修改系統(tǒng)2617上的任何東西。在訪問該數(shù)據(jù)文件的過程退出或被例如過期許可終止之前,這些限制將保持在那里。
另一種保護(hù)機(jī)制是針對(duì)騙術(shù)的,這里將對(duì)此進(jìn)行描述。
數(shù)據(jù)安全是計(jì)算機(jī)用戶和知識(shí)產(chǎn)權(quán)所有者嚴(yán)重關(guān)切的問題。越來越普遍地使用諸如加密等措施來對(duì)保護(hù)數(shù)據(jù)文件,以防止數(shù)據(jù)丟失或未授權(quán)的行動(dòng)。
已知受保密的文件,例如加密的文件,是和未保密的文件并排存儲(chǔ)在同一文件系統(tǒng)中的。加密的文件象任何其他文件一樣出現(xiàn)在文件目錄中,并帶有相關(guān)的文件屬性,如名字和大小。然而,在解密之前文件中包含的數(shù)據(jù)對(duì)用戶應(yīng)用是難懂的。再有,加密過程可能使文件的大小變得大于或小于原始的未加密文件。在這種情況中,要文件系統(tǒng)確定該文件大小的請(qǐng)求不會(huì)可靠地返回該原始數(shù)據(jù)的真實(shí)大小。從用戶的角度看,這類數(shù)據(jù)安全性缺乏所希望的透明性特點(diǎn)。
還知道可把受保密的文件存儲(chǔ)到與普通文件系統(tǒng)分開的特殊物理的或虛擬的位置。這種位置可以包括遠(yuǎn)程連網(wǎng)裝置,加密的或受口令保護(hù)的文件系統(tǒng),或其他虛擬的受保密的文件系統(tǒng)。這類數(shù)據(jù)安全性防止用戶在單一文件目錄中將受保密的和不受保密的文件自由地相互混雜,即使這些文件可能在邏輯上是相互關(guān)聯(lián)的。雖然用戶可以在未受保密的目錄中設(shè)置與另一位置中的受保密文件的符號(hào)鏈接或快捷方式,但對(duì)被授權(quán)的人員而言,這種作法給方便地訪問受保密數(shù)據(jù)的過程平添了一層不希望的困惑和努力。
還應(yīng)該理解,這里所用的術(shù)語“裝置驅(qū)動(dòng)器”或“驅(qū)動(dòng)器”包括直接或間接訪問或控制硬件裝置的任何一組計(jì)算機(jī)可實(shí)施指令,包括但不限于裝置驅(qū)動(dòng)器、虛擬裝置驅(qū)動(dòng)器(VxD)、使用NT內(nèi)核方式體系結(jié)構(gòu)的指令組、使用Win 32驅(qū)動(dòng)器模式(WDM)的指令組、以及其他指令組,它們可以以任何計(jì)算機(jī)語言針對(duì)任何計(jì)算機(jī)、計(jì)算機(jī)體系結(jié)構(gòu)、網(wǎng)絡(luò)或操作系統(tǒng)寫成。
這里所用的術(shù)語“信息”和“數(shù)據(jù)”每個(gè)都要包括另一個(gè)的最廣義定義,而且每個(gè)包括文本、音頻和視頻數(shù)據(jù)。進(jìn)一步的例子是,術(shù)語“信息”可指原始數(shù)據(jù)、處理后的數(shù)據(jù)、或原始數(shù)據(jù)與處理后數(shù)據(jù)的組合。
雖然圖中所示實(shí)施例包含一個(gè)為演示目的而描述的裝置驅(qū)動(dòng)器,稱作“文件系統(tǒng)監(jiān)視器”,但這里所用的術(shù)語“文件系統(tǒng)監(jiān)視器”通常是指使用本發(fā)明的文件騙術(shù)的任何類型裝置驅(qū)動(dòng)器。本發(fā)明范圍內(nèi)的裝置驅(qū)動(dòng)器可以實(shí)現(xiàn)一個(gè)裝置驅(qū)動(dòng)器可實(shí)現(xiàn)的任何種有用的功能,包括但不限于通用目的的監(jiān)視、許可監(jiān)視、過濾、加密、解密、病毒檢測(cè)、數(shù)據(jù)鏡象、指向任何裝置的I/O功能以及其他功能,而且不限于監(jiān)視或者與文件系統(tǒng)有關(guān)的功能。任何實(shí)現(xiàn)文件騙術(shù)的裝置驅(qū)動(dòng)器都正好落在本發(fā)明的范圍之內(nèi)。
本發(fā)明的一個(gè)實(shí)施例可以在Windows9X操作系統(tǒng)上實(shí)現(xiàn)?,F(xiàn)在參考圖29,Windows9X操作系統(tǒng)的組成部件在用戶方式代碼2800和內(nèi)核方式代碼2830之間分割,它們提供不同級(jí)別的系統(tǒng)保護(hù)。對(duì)于一個(gè)實(shí)施例,用戶方式代碼2800包括一個(gè)能運(yùn)行16位和32位軟件應(yīng)用2821-2822的系統(tǒng)虛擬機(jī)2820和多個(gè)MS-DOS虛擬機(jī)2825。在這個(gè)實(shí)施例中,內(nèi)核方式代碼2830包含低級(jí)別的操作系統(tǒng)服務(wù)和虛擬裝置驅(qū)動(dòng)器,如虛擬機(jī)管理器2840,本發(fā)明的文件系統(tǒng)監(jiān)視器2850以及可安裝文件系統(tǒng)管理器2860。
在可安裝文件系統(tǒng)管理器2860的下面是用于如FAT和NTFS文件系統(tǒng)的多個(gè)文件系統(tǒng)驅(qū)動(dòng)器2870-2872。在文件系統(tǒng)驅(qū)動(dòng)器2870-2872下面的是塊I/O子系統(tǒng)2880。塊I/O子系統(tǒng)2880包括一個(gè)I/O監(jiān)督器2881,它管理那些通過文件系統(tǒng)分層結(jié)構(gòu)傳送的請(qǐng)求,還包括一個(gè)用于端口I/O的單片式驅(qū)動(dòng)器2882,以及分層的多個(gè)裝置驅(qū)動(dòng)器2883-2884。
在這個(gè)實(shí)施例中,在來自用戶方式代碼2810的以及來自以用戶方式2810運(yùn)行的應(yīng)用2821-2822的I/O請(qǐng)求被送到可安裝的文件系統(tǒng)管理器2860之前,第一裝置驅(qū)動(dòng)器2850阻斷所有這些I/O請(qǐng)求。第一裝置驅(qū)動(dòng)器2850能監(jiān)視和過濾(如果希望過濾的話)在可安裝文件系統(tǒng)管理器2860、文件系統(tǒng)驅(qū)動(dòng)器2870-2872以及塊I/O子系統(tǒng)2880中發(fā)生的所有文件系統(tǒng)活動(dòng)。借助系統(tǒng)初始化過程中對(duì)IFSMGR InstallFileSystemApiHook的調(diào)用,在操作系統(tǒng)啟動(dòng)或重啟動(dòng)時(shí),第一裝置驅(qū)動(dòng)器2850被鉤連到這類調(diào)用中,在此時(shí)它在功能上被插入到所有文件系統(tǒng)請(qǐng)求堆棧的最上層位置。從可安裝的文件系統(tǒng)管理器2860向下穿過多個(gè)分層驅(qū)動(dòng)器2883-2884中的每個(gè)驅(qū)動(dòng)器,一個(gè)I/O請(qǐng)求從最高級(jí)別傳送到最低級(jí)別,而當(dāng)一請(qǐng)求的結(jié)果沿這堆棧向上傳回到該I/O請(qǐng)求的源頭時(shí),這些裝置還能看到這個(gè)請(qǐng)求結(jié)果。在該堆棧上的每個(gè)裝置驅(qū)動(dòng)器可以自己服務(wù)于一個(gè)I/O請(qǐng)求而不把它傳送到較低級(jí)別,或者如果希望的話它本身產(chǎn)生一個(gè)新的I/O請(qǐng)求。這種裝置驅(qū)動(dòng)器可以實(shí)現(xiàn)那些需要等待的功能,如等待一個(gè)中斷或等待一個(gè)裝置變?yōu)榭捎玫摹T谶@種等待過程中,裝置驅(qū)動(dòng)器只是簡(jiǎn)單地返回到它的調(diào)用者,允許發(fā)出調(diào)用的應(yīng)用或裝置驅(qū)動(dòng)器與此I/O請(qǐng)求平行地進(jìn)行其他工作。另一種作法是,發(fā)出調(diào)用的應(yīng)用或裝置驅(qū)動(dòng)器可以簡(jiǎn)單地等待(“鎖住”)直至I/O請(qǐng)求完成。
在另一實(shí)施例中,參考圖30所示,本發(fā)明可以在WindowsNT操作系統(tǒng)上實(shí)現(xiàn)。如本技術(shù)領(lǐng)域所熟知,在WindowsNT下以用戶方式運(yùn)行的應(yīng)用2900可以向操作系統(tǒng)服務(wù)2910發(fā)送I/O請(qǐng)求。I/O管理器2920接收I/O請(qǐng)求,并在各驅(qū)動(dòng)器之間協(xié)調(diào)I/O請(qǐng)求包的傳送。在另一種作法中,各驅(qū)動(dòng)器可以彼此直接通信,無需使用I/O管理器2920或其他裝置來協(xié)調(diào)各驅(qū)動(dòng)器之間的信息傳送。
如WindowsNT這類操作系統(tǒng)的傳統(tǒng)輸入/輸出系統(tǒng)包含多個(gè)裝置驅(qū)動(dòng)器2930-2932用于處理I/O請(qǐng)求。這種裝置驅(qū)動(dòng)器由例如文件系統(tǒng)驅(qū)動(dòng)器2930和分層的多個(gè)裝置驅(qū)動(dòng)器2931-2932來加以說明。I/O管理器2920通常向負(fù)責(zé)管理I/O請(qǐng)求目標(biāo)的文件系統(tǒng)驅(qū)動(dòng)器2930發(fā)送I/O請(qǐng)求包。然而,如本技術(shù)領(lǐng)域所知,文件系統(tǒng)監(jiān)視器2850能以面向?qū)ο蟮姆绞礁郊釉谄渌b置驅(qū)動(dòng)器2930-2932上。于是,I/O管理器2920把對(duì)目標(biāo)裝置驅(qū)動(dòng)器2930-2932的I/O請(qǐng)求包引導(dǎo)到已附著在目標(biāo)裝置驅(qū)動(dòng)器2930-2932上的文件系統(tǒng)監(jiān)視器2950。在所示實(shí)施例中,文件系統(tǒng)監(jiān)視器2950附著在這多個(gè)文件系統(tǒng)驅(qū)動(dòng)器對(duì)象2930的每一個(gè)上。
圖31是在文件系統(tǒng)監(jiān)視器2950中使用文件騙術(shù)以提供數(shù)據(jù)安全性的一種方法的實(shí)施例流程圖。
如圖31中所示,每次檢測(cè)到文件系統(tǒng)請(qǐng)求時(shí),本發(fā)明的文件騙術(shù)過程在步驟3000中啟動(dòng)。在步驟3010,該過程確定該文件系統(tǒng)請(qǐng)求是否涉及采取了騙術(shù)的文件。步驟3010中的確定是對(duì)指定一被命名文件作為請(qǐng)求對(duì)象的任何文件系統(tǒng)請(qǐng)求完成的。這種文件系統(tǒng)請(qǐng)求包括打開文件用的FILE_OPEN、刪除文件用的FILE_DELETE以及對(duì)文件重命名用的FILN_RENAME。在WindowsNT操作系統(tǒng)中,這種文件系統(tǒng)請(qǐng)求還包括查詢文件信息用的FILE_QUERY_INFORMATION以及設(shè)置文件信息用的FILE_SET_INFORMATION。這些調(diào)用每個(gè)都要求指定一個(gè)文件名。在步驟3010的確定中,檢驗(yàn)指定的文件名以確定它是否是一個(gè)被實(shí)施騙術(shù)的文件。
被實(shí)施騙術(shù)的文件是這樣一個(gè)文件,通過把數(shù)據(jù)放在一個(gè)受保密的位置已使該文件受到保密,在那里這種數(shù)據(jù)不能真正被用戶訪問,例如,作為舉例但不限于,放在一個(gè)受保密或被加密的虛擬文件系統(tǒng)中,而同時(shí)在該文件系統(tǒng)的用戶可訪問部分中維持一個(gè)標(biāo)志文件作為占位者。為節(jié)省盤空間,標(biāo)記文件的長(zhǎng)度可以是零字節(jié)。在一個(gè)實(shí)施例中,從用戶的角度看,標(biāo)志文件透明地表現(xiàn)為含有受保密的數(shù)據(jù),而文件施加騙術(shù)過程將使任何文件系統(tǒng)請(qǐng)求到達(dá)受保密的文件位置。
為確定一個(gè)文件是否是被施加騙術(shù)的文件,該過程針對(duì)所有被施加騙術(shù)的文件的數(shù)據(jù)庫(kù)來檢驗(yàn)文件名,而且如果該文件是一個(gè)被施加騙術(shù)的文件,則該過程確定與該標(biāo)志文件關(guān)聯(lián)的受保密的文件。在另一個(gè)實(shí)施例中,該過程可以依靠標(biāo)志文件中存儲(chǔ)的數(shù)據(jù)。
如果步驟3010的確定是該文件請(qǐng)求涉及一個(gè)被施加騙術(shù)的文件,該過程在步驟3011繼續(xù),并完成該文件系統(tǒng)請(qǐng)求。在一個(gè)實(shí)施例中,該過程調(diào)用下一個(gè)較低的驅(qū)動(dòng)器來完成對(duì)那個(gè)標(biāo)志文件的文件系統(tǒng)請(qǐng)求。在另一個(gè)實(shí)施例中,該過程重寫文件系統(tǒng)請(qǐng)求,使得指向受保密的文件而不是標(biāo)志文件,并調(diào)用下一個(gè)較低的驅(qū)動(dòng)器來完成對(duì)那個(gè)受保密文件的文件系統(tǒng)請(qǐng)求。
過程在步驟3012繼續(xù),在步驟3012修改文件系統(tǒng)調(diào)用所返回的信息。諸如文件大小等文件屬性是由文件系統(tǒng)請(qǐng)求返回的信息的組成部分。過程從返回信息中去掉關(guān)于標(biāo)志文件的選定文件屬性,代之以相應(yīng)的受保密的文件的文件屬性。例如,那里標(biāo)志文件的文件大小為零,而用戶將代之以看到相應(yīng)的受保密的文件的文件大小。
然后過程在步驟3040結(jié)束。
回到步驟3010,如果步驟3010確定的是該文件請(qǐng)求不涉及被施加騙術(shù)的文件,則過程在步驟3020繼續(xù)并確定該文件系統(tǒng)調(diào)用是否涉及一個(gè)可能會(huì)返回被施加騙術(shù)的文件的目錄調(diào)用。在Windows9X中這類文件系統(tǒng)請(qǐng)求包括找出第一個(gè)匹配文件用的FIND_OPEN和FIND_FIRST,以及找出下一個(gè)匹配文件用的FIND_NEXT。在WindowsNT操作系統(tǒng)中, 這類文件系統(tǒng)請(qǐng)求包括DIRECTORY_CONTROL,它提供一個(gè)匹配文件名緩存區(qū)。
如果步驟3020確定的是該文件系統(tǒng)請(qǐng)求涉及一個(gè)可能會(huì)返回被施加騙術(shù)的文件的目錄調(diào)用,則過程在步驟3021繼續(xù)并完成該文件系統(tǒng)調(diào)用。在一個(gè)實(shí)施例中,該過程調(diào)用下一個(gè)較低的驅(qū)動(dòng)器來完成對(duì)標(biāo)志文件的文件系統(tǒng)請(qǐng)求。在另一個(gè)實(shí)施例中,該過程重寫文件系統(tǒng)請(qǐng)求,使得指向受保密的文件而不是標(biāo)志文件,并調(diào)用下一個(gè)較低的驅(qū)動(dòng)器來完成對(duì)那個(gè)受保密文件的文件系統(tǒng)請(qǐng)求。
過程在步驟3022繼續(xù),在步驟3022確定由文件系統(tǒng)調(diào)用返回的信息是否指向任何被施加騙術(shù)的文件。找出第一個(gè)匹配文件或下一個(gè)匹配文件的請(qǐng)求每個(gè)將返回單一文件。向WindowsNT文件系統(tǒng)對(duì)目錄控制的請(qǐng)求則返回一個(gè)文件名緩存區(qū),其中每個(gè)文件都必須考慮。如果沒有返回被施加騙術(shù)的文件,則過程在步驟3040結(jié)束。
如果返回了任何被施加騙術(shù)的文件,則過程在步驟3025繼續(xù),在那里修改文件系統(tǒng)請(qǐng)求所返回的信息。諸如文件大小等文件屬性是由文件系統(tǒng)請(qǐng)求返回的信息的組成部分。過程從返回信息中去掉標(biāo)志文件的選定文件屬性,代之以相應(yīng)的受保密的文件的文件屬性。例如,那里標(biāo)志文件的文件大小為零,而用戶將代之以看到相應(yīng)的受保密的文件的文件大小。然后過程在步驟3040結(jié)束。
回到步驟3020,如果步驟3020確定的是該文件系統(tǒng)請(qǐng)求不涉及可能返回被施加騙術(shù)的文件的目錄調(diào)用,則過程在步驟3030繼續(xù)并完成該文件系統(tǒng)請(qǐng)求,并在步驟3040結(jié)束。
所以,應(yīng)該理解,本發(fā)明可以受到許多不同的變化和組合,不限于本申請(qǐng)中所示特定實(shí)施例。此外,還應(yīng)該理解,在各實(shí)施例中公開的每一段都不需要在單一實(shí)施例中提供,相反,能以所希望的若干段的任何所希望的組合來提供。還應(yīng)該理解,根據(jù)本發(fā)明的系統(tǒng)可由專用硬件或由傳統(tǒng)的通用計(jì)算機(jī)硬件或由它們的任何組合來整體構(gòu)成或部分地構(gòu)成,其中的任何部分可由適當(dāng)?shù)某绦蚩刂?。任何程序可以整體地或部分地以傳統(tǒng)方式構(gòu)成一個(gè)系統(tǒng)的組成部分或存儲(chǔ)在一個(gè)系統(tǒng)中,或者保持整體或部分地通過網(wǎng)絡(luò)或其他以傳統(tǒng)方式傳送信息的機(jī)制提供到該系統(tǒng)中。因此,應(yīng)該理解,上面對(duì)本發(fā)明的描述可以受到本領(lǐng)域技術(shù)人員的相當(dāng)大的修改、變化和修正,而這類修改、變化和修正應(yīng)該認(rèn)為是在所附權(quán)利要求中提出的本發(fā)明范圍之內(nèi)。描述過本發(fā)明之后,本領(lǐng)域的技術(shù)人員將會(huì)清楚,本發(fā)明可以以許多方式改變而不離開本發(fā)明的精神和范圍。任何的和所有的這些修改都被認(rèn)為是包括在下述權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.保持?jǐn)?shù)據(jù)安全性的一種方法,包含創(chuàng)建一個(gè)包,其中包含數(shù)據(jù)和一個(gè)或多個(gè)限定數(shù)據(jù)使用的許可;以及提供一個(gè)接收器用于處理該包和把該數(shù)據(jù)存儲(chǔ)在一個(gè)存儲(chǔ)庫(kù)(vault)中。
2.根據(jù)權(quán)利要求1的方法,這里處理包的步驟進(jìn)一步包含打開該包并確認(rèn)處理該包的接收器。
3.根據(jù)權(quán)利要求2的方法,進(jìn)一步包含查找至少一個(gè)用于讀該包的驅(qū)動(dòng)器。
4.根據(jù)權(quán)利要求1的方法,進(jìn)一步包含檢測(cè)所述一個(gè)或多個(gè)許可的違犯情況(violation)。
5.根據(jù)權(quán)利要求4的方法,其中提供接收器的步驟進(jìn)一步包含提供內(nèi)部安全性。
6.根據(jù)權(quán)利要求5的方法,其中該內(nèi)部安全性包含建立一個(gè)與數(shù)據(jù)對(duì)應(yīng)的標(biāo)志文件并把針對(duì)該數(shù)據(jù)的標(biāo)志文件映射到一個(gè)虛擬表中,該虛擬表包括數(shù)據(jù)的實(shí)際文件名和標(biāo)志文件的相應(yīng)標(biāo)志名,其中虛擬表和數(shù)據(jù)存儲(chǔ)在存儲(chǔ)庫(kù)中。
7.根據(jù)權(quán)利要求5的方法,其中提供內(nèi)部安全性的步驟包含為至少一個(gè)存儲(chǔ)庫(kù)標(biāo)識(shí)出一個(gè)對(duì)應(yīng)于原始位置的錨定地址,標(biāo)識(shí)出一個(gè)用于讀該包的驅(qū)動(dòng)器和一個(gè)存儲(chǔ)這些許可的數(shù)據(jù)庫(kù),把這些地址組合到一起以提供一個(gè)限定系統(tǒng)操作的鍵(key)并標(biāo)識(shí)出何時(shí)該鍵將不再操作。
8.根據(jù)權(quán)利要求5的方法,其中建立包的步驟進(jìn)一步包含一個(gè)可執(zhí)行程序,用于該包被打開時(shí)核實(shí)接收器的操作。
9.根據(jù)權(quán)利要求5的方法,其中內(nèi)部安全性包含對(duì)注冊(cè)表(registry)的監(jiān)視,包含向發(fā)出調(diào)用的過程請(qǐng)求注冊(cè)表鍵操縱柄;請(qǐng)求該操縱柄的注冊(cè)表鍵值;以及得到安全性權(quán)限(clearance)以完成這些請(qǐng)求。
10.權(quán)利要求9的方法,在向發(fā)出調(diào)用的過程請(qǐng)求注冊(cè)表鍵操縱柄之后,進(jìn)一步包含確定一個(gè)過程ID和注冊(cè)表鍵;通過檢驗(yàn)受保密過程清單,確定該過程是否是受保密的;如果該過程是受保密的,則確定該注冊(cè)表鍵是否在一個(gè)拒絕清單上;如果該注冊(cè)表鍵是在該拒絕清單上,則拒絕該過程對(duì)注冊(cè)表鍵的訪問;以及如果該過程不在受保密清單上或者如果該注冊(cè)表鍵名不在該拒絕清單上,則完成該請(qǐng)求。
11.權(quán)利要求9的方法,在請(qǐng)求操縱柄的注冊(cè)表鍵值之后,進(jìn)一步包含確定一個(gè)過程ID和注冊(cè)表鍵值;通過檢驗(yàn)受保密過程清單,確定該過程是否是受保密的;如果該過程是受保密的,則確定該注冊(cè)表鍵是否在拒絕清單上;如果該注冊(cè)表鍵是在該拒絕清單上,則拒絕該過程對(duì)注冊(cè)表鍵值的訪問;如果該過程不在受保密清單上,則完成該請(qǐng)求;如果注冊(cè)表鍵不在拒絕清單上而該過程在受保密過程清單上,則處理該值請(qǐng)求并確定該值是否在拒絕清單上;如果該值不在拒絕清單上,則允許完成該請(qǐng)求;以及如果該值在拒絕清單上,則拒絕對(duì)注冊(cè)表鍵值的訪問。
12.權(quán)利要求9的方法,在修改和刪除操縱柄及值之后,進(jìn)一步包含確定一個(gè)過程ID;通過檢驗(yàn)該過程是否在受保密過程清單上來確定該過程是否是受保密的;如果該過程不在受保密過程清單上,則完成該請(qǐng)求;以及如果該過程在受保密過程清單上,則不允許完成該請(qǐng)求。
13.根據(jù)權(quán)利要求5的方法,其中提供內(nèi)部安全性的步驟包含監(jiān)視共享存儲(chǔ)器的方法,包含提供一個(gè)調(diào)用,用于為發(fā)出請(qǐng)求的過程預(yù)約一存儲(chǔ)器頁(yè)面;根據(jù)該頁(yè)面能否被共享來過濾這一預(yù)約調(diào)用;提供一個(gè)調(diào)用,用于為發(fā)出請(qǐng)求的過程或以后發(fā)出請(qǐng)求的過程提交該存儲(chǔ)器頁(yè)面;以及根據(jù)該頁(yè)面是否能被共享以及該過程能否是被保密的,過濾這一提交調(diào)用。
14.權(quán)利要求13的方法,其中過濾預(yù)約調(diào)用包含根據(jù)請(qǐng)求參數(shù)確定該頁(yè)面能否被共享;如果該頁(yè)面不能被共享,則允許完成該請(qǐng)求;以及如果該頁(yè)面能被共享,則通過建立記錄和把記錄送入共享存儲(chǔ)器清單來跟蹤該預(yù)約調(diào)用。
15.權(quán)利要求14的方法,其中該記錄包括過程ID、頁(yè)面號(hào)和共享計(jì)數(shù)。
16.權(quán)利要求13的方法,其中過濾提交調(diào)用包含通過訪問共享存儲(chǔ)器清單,確定該頁(yè)面是否被另一過程共享;如果該頁(yè)面是被共享的,則通過訪問受保密過程清單確定這兩個(gè)共享過程中是否有任何一個(gè)是受保密的;如果有任何一個(gè)過程是受保密的,則不允許頁(yè)面共享;如果這兩個(gè)過程都不是受保密的,則建立新的共享存儲(chǔ)器記錄,更新共享該頁(yè)面的過程的共享計(jì)數(shù),并用這新記錄中含有的信息更新共享存儲(chǔ)器清單;以及如果該頁(yè)面不是被共享的,則完成提交請(qǐng)求。
17.權(quán)利要求16的方法,其中該記錄包括過程ID、頁(yè)面號(hào)和共享計(jì)數(shù)。
18.權(quán)利要求13的方法,進(jìn)一步包含提供一個(gè)調(diào)用,以釋放所有地址空間的存儲(chǔ)器頁(yè)面;通過檢驗(yàn)受保密過程清單,確定該過程是否是受保密的;如果該過程是受保密的,則覆蓋寫該頁(yè)面以刪除受保密的數(shù)據(jù),并刪除共享存儲(chǔ)器清單中頁(yè)面號(hào)與被覆蓋寫的頁(yè)面相同的所有記錄;以及如果該過程不是受保密的,則從共享存儲(chǔ)器清單中刪除其頁(yè)面號(hào)與不受保密過程頁(yè)面相對(duì)應(yīng)的所有記錄。
19.根據(jù)權(quán)利要求5的方法,其中提供內(nèi)部安全性的步驟進(jìn)一步包含存儲(chǔ)庫(kù)提供步驟,即提供一個(gè)存儲(chǔ)庫(kù)系統(tǒng)用于隔離存儲(chǔ)庫(kù)數(shù)據(jù)與其他系統(tǒng)數(shù)據(jù);以及文件系統(tǒng)安全驅(qū)動(dòng)器提供步驟,即提供一個(gè)文件系統(tǒng)安全驅(qū)動(dòng)器,該驅(qū)動(dòng)器阻斷文件系統(tǒng)調(diào)用,并對(duì)所述被阻斷的文件系統(tǒng)調(diào)用中的每個(gè)特定調(diào)用,確定所述被阻斷的文件系統(tǒng)調(diào)用的所述特定調(diào)用是否是來自一個(gè)訪問所述存儲(chǔ)庫(kù)的過程,如果所述被阻斷的文件系統(tǒng)調(diào)用的所述特定調(diào)用是來自一個(gè)訪問所述存儲(chǔ)庫(kù)的過程,則允許該文件系統(tǒng)調(diào)用只在所述存儲(chǔ)庫(kù)系統(tǒng)內(nèi)創(chuàng)建或修改數(shù)據(jù)。
20.權(quán)利要求19的方法,其中所述提供文件系統(tǒng)安全驅(qū)動(dòng)器的步驟進(jìn)一步包含一個(gè)文件打開處理步驟,用于所述被阻斷的文件系統(tǒng)調(diào)用的每個(gè)特定調(diào)用,該調(diào)用是一個(gè)文件打開調(diào)用,包含如下步驟確定所述文件打開調(diào)用是否是對(duì)所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中的數(shù)據(jù)進(jìn)行的請(qǐng)求;以及如果所述文件打開調(diào)用是對(duì)所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中數(shù)據(jù)的請(qǐng)求,則對(duì)作出所述請(qǐng)求的該過程進(jìn)行檢驗(yàn),看所述過程是否已經(jīng)是一個(gè)先前打開了所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中的所述數(shù)據(jù)的受保密過程,如果是,則允許訪問所述存儲(chǔ)庫(kù)數(shù)據(jù),并對(duì)作出所述請(qǐng)求的過程進(jìn)行訪問檢驗(yàn),然后處理該請(qǐng)求,即如果通過了所述訪問檢驗(yàn),則允許訪問所述尚不是受保密過程的過程,但如果沒有通過所述訪問檢驗(yàn),則根本不允許訪問;如果所述文件打開調(diào)用不是對(duì)所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中數(shù)據(jù)的請(qǐng)求,則對(duì)作出所述請(qǐng)求的過程進(jìn)行檢驗(yàn),看所述過程是否已是一個(gè)受保密的過程,如果作出所述請(qǐng)求的過程不是一個(gè)受保密的過程,則把該請(qǐng)求傳送到操作系統(tǒng)上,如果作出所述請(qǐng)求的過程是一個(gè)受保密的過程,則確定所述文件打開調(diào)用中所指的文件是否存在,如果存在,則打開該文件供只讀,如果它不存在,則在所述存儲(chǔ)庫(kù)數(shù)據(jù)中創(chuàng)建該文件。
21.權(quán)利要求20的方法,其中通過允許訪問先前未被允許訪問存儲(chǔ)庫(kù)數(shù)據(jù)的所述過程,對(duì)請(qǐng)求進(jìn)行的處理包含如下步驟詢問用戶以確定該用戶是否想要打開所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中的數(shù)據(jù),并且只有當(dāng)所述用戶想要打開所述數(shù)據(jù)時(shí)才打開所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中的所述數(shù)據(jù)。
22.權(quán)利要求21的方法,其中通過允許訪問先前未被允許訪問存儲(chǔ)庫(kù)數(shù)據(jù)的所述過程對(duì)請(qǐng)求進(jìn)行的處理包含如下步驟記錄所述被允許的訪問并監(jiān)視全部被允許的訪問。
23.權(quán)利要求20的方法,其中通過允許訪問先前未被允許訪問存儲(chǔ)庫(kù)數(shù)據(jù)的所述過程來對(duì)請(qǐng)求進(jìn)行的處理包含如下步驟把作出所述請(qǐng)求先前未被允許訪問存儲(chǔ)庫(kù)數(shù)據(jù)的所述過程記錄在被允許訪問所述存儲(chǔ)庫(kù)數(shù)據(jù)的過程清單中。
24.權(quán)利要求20的方法,其中在所述存儲(chǔ)庫(kù)數(shù)據(jù)中創(chuàng)建所述文件的所述步驟包含如下步驟向所述受保密過程發(fā)送一個(gè)代替(stand-in)文件操縱柄;創(chuàng)建一個(gè)相應(yīng)的存儲(chǔ)庫(kù)文件操縱柄;以及存儲(chǔ)所述代替文件操縱柄和所述相應(yīng)的存儲(chǔ)庫(kù)文件操縱柄。
25.權(quán)利要求20的方法,其中打開所述文件供只讀的所述步驟包含如下步驟修改所述文件打開調(diào)用的任何文件請(qǐng)求標(biāo)志,這些標(biāo)志指出允許對(duì)該文件進(jìn)行修改;以及把所述修改過的文件打開調(diào)用傳送到所述操作系統(tǒng)。
26.權(quán)利要求19的方法,其中所述文件系統(tǒng)安全驅(qū)動(dòng)器提供步驟進(jìn)一步包含一個(gè)文件讀/寫請(qǐng)求處理步驟,用于所述被阻斷的文件系統(tǒng)調(diào)用的每個(gè)特定調(diào)用,該調(diào)用是一個(gè)文件讀/寫調(diào)用,包含如下步驟確定所述文件讀/寫請(qǐng)求是否是對(duì)所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中的數(shù)據(jù)進(jìn)行的請(qǐng)求;如果所述讀/寫請(qǐng)求是對(duì)所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中數(shù)據(jù)的請(qǐng)求,如果作出所述請(qǐng)求的過程被允許訪問所述存儲(chǔ)庫(kù)數(shù)據(jù)的話,則允許訪問;以及如果所述讀/寫請(qǐng)求不是對(duì)所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中數(shù)據(jù)的請(qǐng)求,如果作出所述請(qǐng)求的過程不被允許訪問所述存儲(chǔ)庫(kù)數(shù)據(jù)的話,則允許訪問;如果所述讀/寫請(qǐng)求是一個(gè)讀請(qǐng)求的話,也允許訪問。
27.權(quán)利要求19的方法,其中所述文件系統(tǒng)安全驅(qū)動(dòng)器提供步驟進(jìn)一步包含文件信息請(qǐng)求步驟,包含如下步驟確定所述文件信息請(qǐng)求是否是一個(gè)關(guān)于所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中數(shù)據(jù)的請(qǐng)求,如果不是,則把所述文件信息請(qǐng)求發(fā)送到所述操作系統(tǒng),如果是,則判定正確的文件大小并返回所述正確的文件大小。
28.權(quán)利要求19的方法,其中所述文件系統(tǒng)安全驅(qū)動(dòng)器提供步驟進(jìn)一步包含文件改變請(qǐng)求步驟,包含如下步驟確定所述文件改變請(qǐng)求是否是一個(gè)關(guān)于所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中數(shù)據(jù)的請(qǐng)求,如果是,則對(duì)所述存儲(chǔ)庫(kù)數(shù)據(jù)進(jìn)行所述文件改變請(qǐng)求,如果不是,則進(jìn)行檢驗(yàn)看發(fā)出請(qǐng)求的過程是否是一個(gè)受保密的過程,如果不是,則把所述文件改變請(qǐng)求傳送到所述操作系統(tǒng),如果是,則封鎖該請(qǐng)求。
29.權(quán)利要求19的方法,其中所述文件系統(tǒng)安全驅(qū)動(dòng)器提供步驟進(jìn)一步包含文件打開處理步驟,用于所述被阻斷的文件系統(tǒng)調(diào)用中的每個(gè)特定調(diào)用,該調(diào)用是一個(gè)文件打開調(diào)用,包含如下步驟確定所述文件打開調(diào)用是否是對(duì)所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中的數(shù)據(jù)進(jìn)行的請(qǐng)求;以及如果所述文件打開調(diào)用是對(duì)所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中數(shù)據(jù)的請(qǐng)求,則對(duì)作出所述請(qǐng)求的該過程進(jìn)行檢驗(yàn),看所述過程是否已經(jīng)是一個(gè)先前打開了所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中的所述數(shù)據(jù)的受保密過程,如果是,則允許訪問所述存儲(chǔ)庫(kù)數(shù)據(jù),并對(duì)作出所述請(qǐng)求的過程進(jìn)行訪問檢驗(yàn),然后處理該請(qǐng)求,即如果通過了所述訪問檢驗(yàn),則允許訪問所述尚不是受保密過程的過程,但如果沒有通過所述訪問檢驗(yàn),則根本不允許訪問;如果所述文件打開調(diào)用不是對(duì)所述存儲(chǔ)率數(shù)據(jù)當(dāng)中數(shù)據(jù)的請(qǐng)求,則對(duì)作出所述請(qǐng)求的過程進(jìn)行檢驗(yàn),看所述過程是否已是一個(gè)受保密的過程,如果作出所述請(qǐng)求的所述過程不是一個(gè)受保密的過程,則把該請(qǐng)求傳送到操作系統(tǒng)上,如果作出所述請(qǐng)求的過程是一個(gè)受保密的過程,則確定所述文件打開調(diào)用中所指的文件是否存在,如果存在,則打開該文件供只讀,如果它不存在,則在所述存儲(chǔ)庫(kù)數(shù)據(jù)中創(chuàng)建該文件;一個(gè)文件讀/寫請(qǐng)求處理步驟,用于所述被阻斷的文件系統(tǒng)調(diào)用中的每個(gè)特定調(diào)用,該調(diào)用是一個(gè)文件讀/寫調(diào)用,包含如下步驟確定所述文件讀/寫請(qǐng)求是否是對(duì)所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中的數(shù)據(jù)進(jìn)行的請(qǐng)求;如果該讀/寫請(qǐng)求是對(duì)所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中數(shù)據(jù)的請(qǐng)求,如果作出所述請(qǐng)求的過程被允許訪問所述存儲(chǔ)庫(kù)數(shù)據(jù)的話,則允許訪問;以及如果該讀/寫請(qǐng)求不是對(duì)所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中數(shù)據(jù)的請(qǐng)求,如果作出所述請(qǐng)求的過程不被允許訪問所述存儲(chǔ)庫(kù)數(shù)據(jù)的話,則允許訪問;如果所述讀/寫請(qǐng)求是一個(gè)讀請(qǐng)求的話,也允許訪問;一個(gè)文件信息請(qǐng)求步驟,包含如下步驟確定所述文件信息請(qǐng)求是否是一個(gè)關(guān)于所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中數(shù)據(jù)的請(qǐng)求,如果不是,則把所述文件信息請(qǐng)求發(fā)送到所述操作系統(tǒng),如果是,則判定正確的文件大小并返回所述正確的文件大??;一個(gè)文件改變請(qǐng)求步驟,包含如下步驟確定所述文件改變請(qǐng)求是否是一個(gè)關(guān)于所述存儲(chǔ)庫(kù)數(shù)據(jù)當(dāng)中數(shù)據(jù)的請(qǐng)求,如果是,則對(duì)所述存儲(chǔ)庫(kù)數(shù)據(jù)進(jìn)行所述文件改變請(qǐng)求,如果不是,則進(jìn)行檢驗(yàn)看發(fā)出請(qǐng)求的過程是否是一個(gè)受保密的過程,如果不是,則把所述文件改變請(qǐng)求傳送到所述操作系統(tǒng),如果是,則封鎖該請(qǐng)求。
30.根據(jù)權(quán)利要求5的方法,其中提供內(nèi)部安全性的步驟進(jìn)一步包含監(jiān)視計(jì)算機(jī)的系統(tǒng)時(shí)鐘以防止對(duì)數(shù)據(jù)的非授權(quán)訪問,包含如下步驟初始化一個(gè)時(shí)鐘監(jiān)視器,包含如下步驟從系統(tǒng)時(shí)鐘讀出第一時(shí)間值;確定在該計(jì)算機(jī)系統(tǒng)上是否初始化了一個(gè)許可數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)有一個(gè)或多個(gè)與時(shí)鐘有關(guān)的許可字段,每個(gè)字段包含一個(gè)或多個(gè)與時(shí)鐘有關(guān)的許可,以及一個(gè)含有存儲(chǔ)時(shí)間值的存儲(chǔ)時(shí)間值字段;如果該許可數(shù)據(jù)庫(kù)被初始化了,則把第一時(shí)間值與存儲(chǔ)時(shí)間值進(jìn)行比較,如果第一時(shí)間值遲于所存儲(chǔ)時(shí)間值,則把第一時(shí)間值存儲(chǔ)在存儲(chǔ)時(shí)間值字段,如果第一時(shí)間值早于所存儲(chǔ)時(shí)間值,則使一個(gè)或多個(gè)與時(shí)間有關(guān)的許可無效,從而通過使與時(shí)間有關(guān)的許可無效來防止對(duì)數(shù)據(jù)的訪問;以及如果許可數(shù)據(jù)庫(kù)未被初始化,則把第一時(shí)間值存儲(chǔ)到存儲(chǔ)時(shí)間值字段。
31.權(quán)利要求30的方法,其中確定許可數(shù)據(jù)庫(kù)是否是初始化了的步驟包含如下步驟從許可數(shù)據(jù)庫(kù)中的存儲(chǔ)時(shí)間值字段中讀出所存儲(chǔ)的時(shí)間值,如果所存儲(chǔ)的時(shí)間值為零,則結(jié)論是該許可數(shù)據(jù)庫(kù)未被初始化,如果所存儲(chǔ)的時(shí)間值不為零,則結(jié)論是許可數(shù)據(jù)庫(kù)已初始化。
32.權(quán)利要求30的方法,進(jìn)一步包含如下步驟追蹤一個(gè)真系統(tǒng)時(shí)間,該時(shí)間是存儲(chǔ)的時(shí)間加上從時(shí)鐘監(jiān)視器初始化時(shí)開始度量的內(nèi)部延遲時(shí)間;在一預(yù)先確定的追蹤時(shí)間間隔后,從系統(tǒng)時(shí)鐘讀出第二時(shí)間值;把第二時(shí)間值與真系統(tǒng)時(shí)間比較并且根據(jù)比較產(chǎn)生一個(gè)時(shí)間偏差;如果該時(shí)間偏差不在可接受的偏差范圍內(nèi),則使一個(gè)或多個(gè)與時(shí)鐘有關(guān)的許可無效;如果該時(shí)間偏差在可接受的偏差范圍內(nèi),則使與時(shí)鐘有關(guān)的許可生效;以及存儲(chǔ)真系統(tǒng)時(shí)間。
33.權(quán)利要求32的方法,在如果該時(shí)間偏差不在可接受的偏差范圍內(nèi),則使一個(gè)或多個(gè)與時(shí)鐘有關(guān)的許可無效這一步驟之后,進(jìn)一步包含如下步驟從系統(tǒng)時(shí)鐘讀出第三時(shí)間值;將第三時(shí)間值與內(nèi)部延遲時(shí)間作比較;根據(jù)比較結(jié)果產(chǎn)生第二時(shí)間偏差;以及如果該第二時(shí)間偏差在可接受的偏差范圍內(nèi),重新使與時(shí)間有關(guān)的許可生效,把真系統(tǒng)時(shí)間存儲(chǔ)在存儲(chǔ)時(shí)間值字段中,并把第三時(shí)間存儲(chǔ)在許可數(shù)據(jù)庫(kù)中的最后一個(gè)已知的好的系統(tǒng)時(shí)間值字段。
34.權(quán)利要求32的方法,其中預(yù)先確定的追蹤時(shí)間間隔基本上在零秒至60秒范圍內(nèi)。
35.權(quán)利要求32的方法,其中可接受的偏差基本上在零秒和3小時(shí)的范圍內(nèi)。
36.權(quán)利要求30的方法,進(jìn)一步包含如下步驟跟蹤一個(gè)真系統(tǒng)時(shí)間,它是存儲(chǔ)的時(shí)間值加上從時(shí)鐘監(jiān)視器初始化時(shí)開始度量的一個(gè)其系統(tǒng)時(shí)間;從系統(tǒng)時(shí)鐘讀出第二時(shí)間值;把第二時(shí)間值與真系統(tǒng)時(shí)間比較并且根據(jù)比較產(chǎn)生一個(gè)時(shí)間偏差;如果該時(shí)間偏差在可接受的偏差范圍內(nèi),則把第二時(shí)間值存儲(chǔ)在存儲(chǔ)時(shí)間值字段。
37.權(quán)利要求36的方法,進(jìn)一步包含關(guān)掉計(jì)算機(jī)的步驟。
38.權(quán)利要求36的方法,其中可接受的偏差基本上在零秒至3小時(shí)的范圍內(nèi)。
39.權(quán)利要求30的方法,其中與時(shí)鐘有關(guān)的許可包含與日期有關(guān)的許可。
40.根據(jù)權(quán)利要求5的方法,用于在操作上可安裝在計(jì)算機(jī)操作系統(tǒng)中的第一裝置驅(qū)動(dòng)器中提供數(shù)據(jù)安全性,該計(jì)算機(jī)操作系統(tǒng)有分層的多個(gè)裝置驅(qū)動(dòng)器用于訪問數(shù)據(jù)存儲(chǔ)裝置中的數(shù)據(jù),該方法包含如下步驟檢測(cè)一個(gè)對(duì)所述第一裝置驅(qū)動(dòng)器的I/O請(qǐng)求;確定所述第一裝置驅(qū)動(dòng)器是否在功能上處于分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層;如果所述第一裝置驅(qū)動(dòng)器是在功能上處于分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層,則在所述第一裝置驅(qū)動(dòng)器中進(jìn)行該I/O請(qǐng)求;以及如果所述第一裝置驅(qū)動(dòng)器不是在功能上處于分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層,則拒絕在所述第一裝置驅(qū)動(dòng)器中的這個(gè)I/O請(qǐng)求,并允許由分層多個(gè)裝置驅(qū)動(dòng)器中的下一個(gè)較低級(jí)別裝置驅(qū)動(dòng)器來進(jìn)行該I/O請(qǐng)求。
41.權(quán)利要求40的方法,其中所述第一裝置驅(qū)動(dòng)器是文件系統(tǒng)監(jiān)視器。
42.權(quán)利要求40的方法,其中數(shù)據(jù)存儲(chǔ)在受保密的虛擬文件系統(tǒng)中,而且進(jìn)行I/O請(qǐng)求的步驟進(jìn)一步包含實(shí)現(xiàn)數(shù)據(jù)安全措施的步驟。
43.權(quán)利要求40的方法,其中數(shù)據(jù)以加密形式存儲(chǔ),而且進(jìn)行I/O請(qǐng)求的步驟進(jìn)一步包含對(duì)數(shù)據(jù)解密的步驟。
44.權(quán)利要求40的方法,其中進(jìn)行I/O請(qǐng)求的步驟進(jìn)一步包含檢驗(yàn)數(shù)據(jù)病毒的步驟。
45.權(quán)利要求40的方法,其中確定所述第一裝置驅(qū)動(dòng)器在功能上是否處于分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層的步驟進(jìn)一步包含如下步驟確定所述第一裝置驅(qū)動(dòng)器先前是否已被調(diào)用過;如果所述第一裝置驅(qū)動(dòng)器先前未曾被調(diào)用,則檢測(cè)初始調(diào)用模塊地址,存儲(chǔ)所述初始調(diào)用模塊地址,并得出結(jié)論所述第一裝置驅(qū)動(dòng)器在功能上處于這分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層;如果所述第一裝置驅(qū)動(dòng)器先前曾被調(diào)用過,則檢測(cè)第二調(diào)用模塊地址,把所述第二調(diào)用模塊地址與初始調(diào)用模塊地址比較,并只有當(dāng)初始調(diào)用模塊地址與第二調(diào)用模塊地址匹配才能得出結(jié)論所述第一裝置驅(qū)動(dòng)器在功能上處于這分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層。
46.權(quán)利要求40的方法,其中在受保密的第一裝置驅(qū)動(dòng)器中拒絕I/O請(qǐng)求的步驟進(jìn)一步包含如下步驟設(shè)置第一裝置驅(qū)動(dòng)器關(guān)閉標(biāo)志;以及初始化一個(gè)再鉤連過程。
47.權(quán)利要求40的方法,在檢測(cè)對(duì)所述第一裝置驅(qū)動(dòng)器的I/O請(qǐng)求步驟之后,進(jìn)一步包含如下步驟檢驗(yàn)是否設(shè)置了第一裝置驅(qū)動(dòng)器關(guān)閉標(biāo)志;以及如果設(shè)置了所述第一裝置驅(qū)動(dòng)器關(guān)閉標(biāo)志,則略去所述第一裝置驅(qū)動(dòng)器中的進(jìn)一步的步驟,并允許由這分層的多個(gè)裝置驅(qū)動(dòng)器中的下一個(gè)較低級(jí)別的裝置驅(qū)動(dòng)器來進(jìn)行該I/O請(qǐng)求。
48.權(quán)利要求47的方法,其中初始化一個(gè)再鉤連過程的步驟進(jìn)一步包含如下步驟對(duì)該再鉤連過程已被初始化的次數(shù)進(jìn)行計(jì)數(shù);檢驗(yàn)該次數(shù)是否已達(dá)到了預(yù)先確定的最大閾值;如果該次數(shù)已達(dá)到了預(yù)先確定的最大閾值,則初始化可編程安全響應(yīng);如果該次數(shù)尚未達(dá)到預(yù)先確定的最大閾值,則對(duì)功能上處于分層的多個(gè)裝置驅(qū)動(dòng)器中最頂層的所述第一裝置驅(qū)動(dòng)器初始化其再連接;如果所述第一裝置驅(qū)動(dòng)器已再連接為功能上處于這分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層,則復(fù)位所述第一裝置驅(qū)動(dòng)器標(biāo)志;以及結(jié)束該再鉤連過程。
49.權(quán)利要求48的方法,其中可編程的安全響應(yīng)包含破壞數(shù)據(jù)的步驟。
50.權(quán)利要求48的方法,其中數(shù)據(jù)存儲(chǔ)在受保密的虛擬文件系統(tǒng)中,而且破壞數(shù)據(jù)的步驟進(jìn)一步包含破壞這受保密的虛擬文件系統(tǒng)的步驟。
51.權(quán)利要求48的方法,其中可編程安全響應(yīng)包含終止打開應(yīng)用的步驟。
52.權(quán)利要求48的方法,其中可編程安全響應(yīng)包含破壞數(shù)據(jù)存儲(chǔ)裝置上的所述第一裝置驅(qū)動(dòng)器的步驟。
53.權(quán)利要求48的方法,其中可編程安全響應(yīng)包含停止計(jì)算機(jī)的操作的步驟。
54.權(quán)利要求48的方法,其中可編程安全響應(yīng)包含使計(jì)算機(jī)進(jìn)入需重新引導(dǎo)狀態(tài)的步驟。
55.根據(jù)權(quán)利要求1的方法,進(jìn)一步包含端口請(qǐng)求檢測(cè)步驟,該步驟檢測(cè)由一過程發(fā)出的使用一端口的端口請(qǐng)求;過程識(shí)別步驟,該步驟確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);過程檢驗(yàn)步驟,該步驟確定是否應(yīng)允許所述過程訪問所述端口;以及允許/拒絕步驟,在該步驟中,如果所述過程應(yīng)被允許訪問所述端口,則允許完成所述端口請(qǐng)求,而如果所述過程不應(yīng)被允許訪問所述端口,則拒絕所述端口請(qǐng)求。
56.權(quán)利要求55的方法,其中所述過程檢驗(yàn)步驟包含受保密過程清單檢驗(yàn)步驟,該步驟確定所述過程是否出現(xiàn)在受保密過程清單上。
57.權(quán)利要求55的方法,進(jìn)一步包含追蹤所述端口請(qǐng)求的追蹤步驟。
58.根據(jù)權(quán)利要求5的方法,其中提供內(nèi)部安全性的步驟進(jìn)一步包含端口請(qǐng)求檢測(cè)步驟,該步驟檢測(cè)由一過程發(fā)出的使用一端口的端口請(qǐng)求;打開端口過程識(shí)別步驟,在該步驟中,如果所述端口請(qǐng)求是一個(gè)打開端口請(qǐng)求,則確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);打開端口過程檢驗(yàn)步驟,在該步驟中,如果所述端口請(qǐng)求是一個(gè)打開端口請(qǐng)求,則確定是否應(yīng)允許所述過程打開所述端口;打開端口允許/拒絕步驟,在該步驟中,如果所述端口請(qǐng)求是一個(gè)打開端口請(qǐng)求,則如果所述過程應(yīng)被允許打開所述端口則允許完成所述打開端口請(qǐng)求并跟蹤所述打開端口請(qǐng)求,如果所述過程不應(yīng)被允許打開所述端口則拒絕所述端口請(qǐng)求;關(guān)閉端口過程完成步驟,如果所述端口請(qǐng)求是一個(gè)關(guān)閉端口請(qǐng)求,則完成所述端口請(qǐng)求;以及關(guān)閉端口記錄日志步驟,該步驟記錄所述端口的關(guān)閉。
59.根據(jù)權(quán)利要求58的方法,其中所述打開端口過程檢驗(yàn)步驟包含受保密過程清單檢驗(yàn)步驟,該步驟確定所述過程是否出現(xiàn)在受保密過程的清單上。
60.根據(jù)權(quán)利要求58的方法,其中對(duì)所述打開端口請(qǐng)求的所述追蹤包含保持一個(gè)日志,記錄所述打開端口請(qǐng)求的過程ID和返回的端口操縱柄,而追蹤所述端口關(guān)閉情況的所述關(guān)閉端口日志步驟包含從所述日志中去掉那個(gè)端口關(guān)閉請(qǐng)求的過程ID和返回的端口操縱柄的記錄。
61.根據(jù)權(quán)利要求60的方法,進(jìn)一步包含安全檢查步驟,包含的步驟有檢驗(yàn)一過程是否已打開端口,對(duì)具有打開端口的過程拒絕安全檢查放行,對(duì)不具有打開端口的過程允許安全檢查放行。
62.根據(jù)權(quán)利要求61的方法,其中所述打開端口過程檢驗(yàn)步驟包含確定所述過程標(biāo)識(shí)是否出現(xiàn)在一受保密過程清單上,其中所述對(duì)不具有打開端口的過程允許安全檢查放行的步驟包含把所述過程放到受保密過程清單上的步驟。
63.根據(jù)權(quán)利要求5的方法,其中提供內(nèi)部安全性的步驟進(jìn)一步包含網(wǎng)絡(luò)請(qǐng)求檢測(cè)步驟,該步驟檢測(cè)由一過程發(fā)出的使用網(wǎng)絡(luò)的網(wǎng)絡(luò)請(qǐng)求;過程識(shí)別步驟,該步驟確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);過程檢驗(yàn)步驟,該步驟確定是否應(yīng)允許所述過程訪問所述網(wǎng)絡(luò);以及允許/拒絕步驟,在該步驟中,如果所述過程應(yīng)被允許訪問所述網(wǎng)絡(luò),則允許完成所述網(wǎng)絡(luò)請(qǐng)求,如果所述過程不應(yīng)被允許訪問所述網(wǎng)絡(luò),則拒絕所述網(wǎng)絡(luò)請(qǐng)求。
64.根據(jù)權(quán)利要求63的方法,其中所述過程檢驗(yàn)步驟包含受保密過程清單檢驗(yàn)步驟,該步驟確定所述過程是否出現(xiàn)在受保密過程的清單上。
65.根據(jù)權(quán)利要求64的方法,其中所述網(wǎng)絡(luò)請(qǐng)求接口是傳輸數(shù)據(jù)接口(Transport Data Interface)。
66.根據(jù)權(quán)利要求1的方法,其中創(chuàng)建包的步驟包含接收一個(gè)數(shù)據(jù)文件供打包;接收一個(gè)許可數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)有一個(gè)或多個(gè)與該數(shù)據(jù)文件關(guān)聯(lián)的許可,這一個(gè)或多個(gè)許可控制客戶機(jī)對(duì)該文件的使用;產(chǎn)生一個(gè)包全局唯一標(biāo)識(shí);產(chǎn)生一個(gè)數(shù)據(jù)包,含有該文件、一個(gè)或多個(gè)許可以及該全局唯一標(biāo)識(shí);對(duì)該包加密;以及產(chǎn)生一個(gè)含有該加密包的計(jì)算機(jī)可執(zhí)行文件。
67.權(quán)利要求66的方法,其中一個(gè)或多個(gè)許可選自一組許可,包含訪問計(jì)數(shù)許可、訪問時(shí)間許可、期滿日期許可、授權(quán)日期許可、剪切板許可、打印許可、無限訪問許可、應(yīng)用許可以及系統(tǒng)事件許可。
68.權(quán)利要求67的方法,進(jìn)一步包含為訪問該計(jì)算機(jī)可讀文件設(shè)置口令的步驟。
69.權(quán)利要求68的方法,其中該數(shù)據(jù)包進(jìn)一步包含一個(gè)接收者全局唯一標(biāo)識(shí),還進(jìn)一步包含接收接收者全局唯一標(biāo)識(shí)的步驟,該步驟在產(chǎn)生包全局唯一標(biāo)識(shí)的步驟之后。
70.權(quán)利要求69的方法,其中該數(shù)據(jù)包進(jìn)一步包含一個(gè)客戶機(jī)軟件。
71.根據(jù)權(quán)利要求1的方法,進(jìn)一步包含接收一個(gè)數(shù)據(jù)文件供打包;接收一個(gè)包許可數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)有一個(gè)或多個(gè)與該數(shù)據(jù)文件關(guān)聯(lián)的許可,這一個(gè)或多個(gè)許可控制客戶機(jī)對(duì)該文件的使用;產(chǎn)生一個(gè)包全局唯一標(biāo)識(shí);產(chǎn)生一個(gè)數(shù)據(jù)包,含有該數(shù)據(jù)文件、一個(gè)或多個(gè)許可、全面唯一標(biāo)識(shí)及客戶機(jī)軟件;對(duì)該包加密;產(chǎn)生一個(gè)含有該加密包的計(jì)算機(jī)可執(zhí)行文件;在具有一操作系統(tǒng)的客戶計(jì)算機(jī)系統(tǒng)上接收該計(jì)算機(jī)可執(zhí)行文件;在該客戶計(jì)算機(jī)系統(tǒng)上執(zhí)行該計(jì)算機(jī)可執(zhí)行文件含有如下步驟確定該操作系統(tǒng)是否是一個(gè)可兼容的操作系統(tǒng),如果是,則在該客戶計(jì)算機(jī)系統(tǒng)上執(zhí)行一客戶機(jī)軟件,該客戶機(jī)軟件的執(zhí)行在該客戶計(jì)算機(jī)系統(tǒng)上創(chuàng)建一個(gè)客戶許可數(shù)據(jù)庫(kù)和一個(gè)存儲(chǔ)庫(kù);以及確定該加密包是否有效,如果是,則把該包全局唯一標(biāo)識(shí)記錄在客戶許可數(shù)據(jù)庫(kù)中,從該數(shù)據(jù)包中提取該數(shù)據(jù)文件和一個(gè)或多個(gè)許可,把該數(shù)據(jù)文件存儲(chǔ)在存儲(chǔ)庫(kù)中,把一個(gè)或多個(gè)許可存儲(chǔ)在客戶許可數(shù)據(jù)庫(kù)中,如果不是,則在該計(jì)算機(jī)可執(zhí)行文件中設(shè)置一個(gè)狀態(tài),指出該包已被安裝。
72.權(quán)利要求71的方法,進(jìn)一步包含一個(gè)步驟確定是否有第二包加載到該計(jì)算機(jī)系統(tǒng)上,如果是,則在該客戶計(jì)算機(jī)系統(tǒng)上執(zhí)行客戶機(jī)軟件的步驟之前終止這第二包。
73.權(quán)利要求72的方法,其中確定該包是否有效的步驟包含如下步驟查尋客戶許可數(shù)據(jù)庫(kù)以得到該包全局唯一標(biāo)識(shí),如果該包全局唯一標(biāo)識(shí)不在該客戶許可數(shù)據(jù)庫(kù)中則認(rèn)為該包有效,如果該包全局唯一標(biāo)識(shí)不在該客戶許可數(shù)據(jù)庫(kù)中則認(rèn)為該包無效。
74.權(quán)利要求73的方法,其中該包進(jìn)一步包含帶有版本指示的客戶機(jī)軟件,并在執(zhí)行該客戶機(jī)軟件之前,確定是否在該客戶計(jì)算機(jī)系統(tǒng)上安裝了該客戶機(jī)軟件的第二個(gè)版本,如果不是,則從包中提取出該客戶機(jī)軟件并把該客戶機(jī)軟件安裝到該客戶計(jì)算機(jī)系統(tǒng)上。
75.權(quán)利要求74的方法,其中如果在該客戶計(jì)算機(jī)系統(tǒng)上安裝了該客戶機(jī)軟件的第二個(gè)版本,則確定在該客戶計(jì)算機(jī)系統(tǒng)上安裝的客戶機(jī)軟件的版本指示是否早于這第二個(gè)版本,如果是,則從該包中提取該客戶機(jī)軟件并把該客戶機(jī)軟件安裝到該客戶計(jì)算機(jī)系統(tǒng)上。
76.權(quán)利要求74的方法,其中該客戶機(jī)軟件包含一個(gè)或多個(gè)裝置驅(qū)動(dòng)器,而客戶許可數(shù)據(jù)庫(kù)及存儲(chǔ)庫(kù)是由這一個(gè)或多個(gè)裝置驅(qū)動(dòng)器中的至少一個(gè)產(chǎn)生的。
77.權(quán)利要求71的方法,其中該客戶機(jī)軟件包含一個(gè)或多個(gè)裝置驅(qū)動(dòng)器,而客戶許可數(shù)據(jù)庫(kù)及存儲(chǔ)庫(kù)是由這一個(gè)或多個(gè)裝置驅(qū)動(dòng)器中的至少一個(gè)產(chǎn)生的。
78.權(quán)利要求71的方法,其中該包進(jìn)一步包含一個(gè)接收機(jī)全局唯一標(biāo)識(shí),并且其中確定加密包是否有效的步驟包含如下步驟查尋該客戶許可數(shù)據(jù)庫(kù)以得到第二個(gè)接收機(jī)全局唯一標(biāo)識(shí),如果沒有找到,則認(rèn)為該包是無效的,如果找到了,則將接收機(jī)全局唯一標(biāo)識(shí)與這第二個(gè)接收機(jī)全局唯一標(biāo)識(shí)比較,以確定它們是否匹配,如果是,則認(rèn)為該包是有效的,如果不是,則認(rèn)為該包是無效的。
79.權(quán)利要求71的方法,其中一個(gè)或多個(gè)許可選自一組許可,包含訪問計(jì)數(shù)許可、訪問時(shí)間許可、期滿日期許可、授權(quán)日期許可、剪切板許可、打印許可、無限訪問許可、應(yīng)用許可以及系統(tǒng)事件許可。
80.權(quán)利要求71的方法,其中該計(jì)算機(jī)可執(zhí)行程序是受口令保護(hù)的。
81.根據(jù)權(quán)利要求5的方法,其中提供內(nèi)部安全性的步驟包含檢測(cè)一個(gè)文件系統(tǒng)請(qǐng)求;完成所述文件系統(tǒng)請(qǐng)求;接收來自所述文件系統(tǒng)請(qǐng)求的返回信息;確定所述文件系統(tǒng)請(qǐng)求是否是針對(duì)一個(gè)與受保密的文件相關(guān)聯(lián)的標(biāo)志文件;以及如果是,則修改所述返回信息以反映該受保密的文件的文件屬性。
82.權(quán)利要求81的方法,其中所述文件屬性是文件的大小。
83.權(quán)利要求81的方法,其中該確定步驟進(jìn)一步包含如下步驟確定所述返回信息是否標(biāo)識(shí)與多個(gè)受保密文件關(guān)聯(lián)的多個(gè)標(biāo)志文件;以及如果是,則修改所述返回信息以反映該多個(gè)受保密的文件的文件屬性。
84.權(quán)利要求81的方法,其中該受保密的文件是以加密形式存儲(chǔ)的。
85.權(quán)利要求81的方法,其中該受保密的文件存儲(chǔ)在一個(gè)受保密的虛擬文件系統(tǒng)中。
86.權(quán)利要求81的方法,其中受保密的文件存儲(chǔ)在遠(yuǎn)程連網(wǎng)裝置上。
87.權(quán)利要求81的方法,其中該文件系統(tǒng)請(qǐng)求是打開一個(gè)文件。
88.權(quán)利要求81的方法,其中該文件系統(tǒng)請(qǐng)求是刪除一個(gè)文件。
89.權(quán)利要求81的方法,其中該文件系統(tǒng)請(qǐng)求是重命名一個(gè)文件。
90.權(quán)利要求81的方法,其中該文件系統(tǒng)請(qǐng)求是查詢文件信息。
91.權(quán)利要求83的方法,其中該文件系統(tǒng)請(qǐng)求是設(shè)置文件信息。
92.權(quán)利要求83的方法,其中該文件系統(tǒng)請(qǐng)求是找出第一個(gè)匹配文件。
93.權(quán)利要求83的方法,其中該文件系統(tǒng)請(qǐng)求是找出下一個(gè)匹配文件。
94.權(quán)利要求83的方法,其中該文件系統(tǒng)請(qǐng)求是目錄控制。
95.一個(gè)用于保持?jǐn)?shù)據(jù)安全性的系統(tǒng),包含一個(gè)接收器,用于接收一個(gè)包,其中包含數(shù)據(jù)和一個(gè)或多個(gè)規(guī)定數(shù)據(jù)使用的許可;以及一個(gè)存儲(chǔ)庫(kù),用于存儲(chǔ)該數(shù)據(jù)。
96.根據(jù)權(quán)利要求95的系統(tǒng),進(jìn)一步包含內(nèi)部安全性以保護(hù)存儲(chǔ)在存儲(chǔ)庫(kù)中的數(shù)據(jù)。
97.根據(jù)權(quán)利要求96的系統(tǒng),其中該內(nèi)部安全性進(jìn)一步檢測(cè)對(duì)所述一個(gè)或多個(gè)許可的違犯情況。
98.根據(jù)權(quán)利要求97的系統(tǒng),其中該內(nèi)部安全性包含一個(gè)與該數(shù)據(jù)對(duì)應(yīng)的標(biāo)志文件,和一個(gè)通過使用該數(shù)據(jù)的實(shí)際文件名和標(biāo)志文件的標(biāo)志名針對(duì)該數(shù)據(jù)來映射標(biāo)志文件的虛擬表,其中該虛擬表和數(shù)據(jù)存儲(chǔ)在存儲(chǔ)庫(kù)中。
99.根據(jù)權(quán)利要求97的系統(tǒng),其中該內(nèi)部安全性包含用于至少一個(gè)存儲(chǔ)庫(kù)的與一原始位置對(duì)應(yīng)的錨定地址、用于讀該包的驅(qū)動(dòng)器和存儲(chǔ)這些許可的數(shù)據(jù)庫(kù),把這些地址組合到一起以提供一個(gè)限定系統(tǒng)操作的鍵(key)并標(biāo)識(shí)出何時(shí)該鍵將不再操作。
100.根據(jù)權(quán)利要求97的系統(tǒng),其中該內(nèi)部安全性進(jìn)一步包含一個(gè)注冊(cè)表監(jiān)視系統(tǒng),包含針對(duì)調(diào)用過程的注冊(cè)表鍵操縱柄;該操縱柄的注冊(cè)表鍵值;過程ID和注冊(cè)表鍵;安全性權(quán)限(clearance),以完成該請(qǐng)求;其中通過檢驗(yàn)受保密過程清單確定該過程是否是受保密的;如果該過程是受保密的,則確定該注冊(cè)表鍵是否在一個(gè)拒絕清單上;如果該注冊(cè)表鍵是在該拒絕清單上,則拒絕該過程對(duì)該注冊(cè)表鍵的訪問;以及如果該過程不在受保密清單上或者如果該注冊(cè)表鍵名不在該拒絕清單上,則完成該請(qǐng)求。
101.根據(jù)權(quán)利要求97的系統(tǒng),其中該內(nèi)部安全性包含一個(gè)共享存儲(chǔ)器系統(tǒng),包含一個(gè)調(diào)用,用于為發(fā)出請(qǐng)求的過程預(yù)約一存儲(chǔ)器頁(yè)面;根據(jù)該頁(yè)面能否被共享使該預(yù)約調(diào)用被過濾;一個(gè)調(diào)用,用于為發(fā)出請(qǐng)求的過程或以后發(fā)出請(qǐng)求的過程提交該存儲(chǔ)器頁(yè)面;根據(jù)該頁(yè)面能否被共享以及該過程能否是被保密的,來使該提交調(diào)用被過濾。
102.根據(jù)權(quán)利要求97的系統(tǒng),其中該內(nèi)部安全性進(jìn)一步包含一個(gè)存儲(chǔ)庫(kù)系統(tǒng),用于把存儲(chǔ)庫(kù)數(shù)據(jù)與其他系統(tǒng)數(shù)據(jù)隔離;以及一個(gè)文件系統(tǒng)安全驅(qū)動(dòng)器,它阻斷文件系統(tǒng)調(diào)用,并對(duì)所述被阻斷的文件系統(tǒng)調(diào)用中的每個(gè)特定調(diào)用,確定所述被阻斷的文件系統(tǒng)調(diào)中的所述特定調(diào)用是否是來自一個(gè)訪問所述存儲(chǔ)庫(kù)數(shù)據(jù)的過程,如果所述被阻斷的文件系統(tǒng)調(diào)用中的所述特定調(diào)用是來自一個(gè)訪問所述存儲(chǔ)庫(kù)數(shù)據(jù)的過程,則允許該文件系統(tǒng)調(diào)用只在所述存儲(chǔ)庫(kù)系統(tǒng)內(nèi)創(chuàng)建或修改數(shù)據(jù)。
103.根據(jù)權(quán)利要求97的系統(tǒng),其中該內(nèi)部安全性進(jìn)一步包含一個(gè)監(jiān)視計(jì)算機(jī)系統(tǒng)時(shí)鐘的系統(tǒng),以防止對(duì)數(shù)據(jù)的非授權(quán)訪問,包含從系統(tǒng)時(shí)鐘讀出第一時(shí)間值;確定在該計(jì)算機(jī)系統(tǒng)上是否初始化了一個(gè)許可數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)有一個(gè)或多個(gè)與時(shí)鐘有關(guān)的許可字段,每個(gè)字段包含一個(gè)或多個(gè)與時(shí)鐘有關(guān)的許可,以及一個(gè)存儲(chǔ)時(shí)間值字段,其中含有存儲(chǔ)的時(shí)間值;如果該許可數(shù)據(jù)庫(kù)被初始化了,則把第一時(shí)間值與存儲(chǔ)時(shí)間值進(jìn)行比較,如果第一時(shí)間值遲于所存儲(chǔ)時(shí)間值,則把第一時(shí)間值存儲(chǔ)在存儲(chǔ)時(shí)間值字段,如果第一時(shí)間值早于所存儲(chǔ)時(shí)間值,則使一個(gè)或多個(gè)與時(shí)間有關(guān)的許可無效,從而通過使與時(shí)間有關(guān)的許可無效來防止對(duì)數(shù)據(jù)的訪問;以及如果許可數(shù)據(jù)庫(kù)未被初始化,則把第一時(shí)間值存儲(chǔ)到存儲(chǔ)時(shí)間值字段。
104.根據(jù)權(quán)利要求97的系統(tǒng),其中該內(nèi)部安全性包含檢測(cè)一個(gè)對(duì)所述第一裝置驅(qū)動(dòng)器的I/O請(qǐng)求;確定所述第一裝置驅(qū)動(dòng)器是否在功能上處于分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層;如果所述第一裝置驅(qū)動(dòng)器是在功能上處于分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層,則在所述第一裝置驅(qū)動(dòng)器中進(jìn)行該I/O請(qǐng)求;以及如果所述第一裝置驅(qū)動(dòng)器不是在功能上處于分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層,則拒絕在所述第一裝置驅(qū)動(dòng)器中的這個(gè)I/O請(qǐng)求,并允許由分層多個(gè)裝置驅(qū)動(dòng)器中的下一個(gè)較低級(jí)別裝置驅(qū)動(dòng)器來進(jìn)行該I/O請(qǐng)求。
105.根據(jù)權(quán)利要求97的系統(tǒng),其中該內(nèi)部安全性包含端口請(qǐng)求檢測(cè)步驟,該步驟檢測(cè)由一過程發(fā)出的使用一端口的端口請(qǐng)求;過程識(shí)別步驟,該步驟確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);過程檢驗(yàn)步驟,該步驟確定是否應(yīng)允許所述過程訪問所述端口;以及允許/拒絕步驟,在該步驟中,如果所述過程應(yīng)被允許訪問所述端口,則允許完成所述端口請(qǐng)求,而如果所述過程不應(yīng)被允許訪問所述端口,則拒絕所述端口請(qǐng)求。
106.根據(jù)權(quán)利要求97的系統(tǒng),其中內(nèi)部安全性包含端口請(qǐng)求檢測(cè)步驟,該步驟檢測(cè)由一過程發(fā)出的使用一端口的端口請(qǐng)求;打開端口過程識(shí)別步驟,在該步驟中,如果所述端口請(qǐng)求是一個(gè)打開端口請(qǐng)求,則確定所述請(qǐng)求過程的標(biāo)識(shí);打開端口過程檢驗(yàn)步驟,在該步驟中,如果所述端口請(qǐng)求是一個(gè)打開端口請(qǐng)求,則確定是否應(yīng)允許所述過程打開所述端口;打開端口允許/拒絕步驟,在該步驟中,如果所述端口請(qǐng)求是一個(gè)打開端口請(qǐng)求,則如果所述過程應(yīng)被允許打開所述端口則允許完成所述打開端口請(qǐng)求并跟蹤所述打開端口請(qǐng)求,如果所述過程不應(yīng)被允許打開所述端口則拒絕所述端口請(qǐng)求;關(guān)閉端口過程完成步驟,在該步驟中,如果所述端口請(qǐng)求是一個(gè)關(guān)閉端口請(qǐng)求,則完成所述端口請(qǐng)求;以及關(guān)閉端口記錄日志步驟,該步驟記錄所述端口的關(guān)閉。
107.根據(jù)權(quán)利要求97的系統(tǒng),其中內(nèi)部安全性包含網(wǎng)絡(luò)請(qǐng)求檢測(cè)步驟,該步驟檢測(cè)由一過程發(fā)出的使用網(wǎng)絡(luò)的網(wǎng)絡(luò)請(qǐng)求;過程識(shí)別步驟,該步驟確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);過程檢驗(yàn)步驟,該步驟確定是否應(yīng)允許所述過程訪問該網(wǎng)絡(luò);以及允許/拒絕步驟,在該步驟中,如果所述過程應(yīng)被允許訪問該網(wǎng)絡(luò),則允許完成所述網(wǎng)絡(luò)請(qǐng)求,如果所述過程不應(yīng)被允許訪問該網(wǎng)絡(luò),則拒絕所述網(wǎng)絡(luò)請(qǐng)求。
108.根據(jù)權(quán)利要求96的系統(tǒng),包含一個(gè)機(jī)器可讀介質(zhì),它有信息打包軟件,用于產(chǎn)生包含信息包的計(jì)算機(jī)可執(zhí)行文件,該信息包包含一個(gè)數(shù)據(jù)文件;一個(gè)許可數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)有一個(gè)或多個(gè)與該數(shù)據(jù)文件關(guān)聯(lián)的許可;一個(gè)加密軟件;一個(gè)與該機(jī)器可讀介質(zhì)通信的網(wǎng)絡(luò);一個(gè)與該網(wǎng)絡(luò)通信的客戶計(jì)算機(jī)系統(tǒng),該計(jì)算機(jī)系統(tǒng)適于接收該信息包并執(zhí)行該計(jì)算機(jī)可執(zhí)行文件,該計(jì)算機(jī)系統(tǒng)有一個(gè)客戶許可數(shù)據(jù)庫(kù)和一個(gè)適于接收信息包的存儲(chǔ)庫(kù)。
109.權(quán)利要求108的系統(tǒng),其中該信息包進(jìn)一步包含一個(gè)包全局唯一標(biāo)識(shí),該客戶計(jì)算機(jī)系統(tǒng)進(jìn)一步包含一個(gè)計(jì)算機(jī)代碼模塊,該模塊適于讀出該包全局唯一標(biāo)識(shí),查尋客戶許可數(shù)據(jù)庫(kù)以得到該包全局唯一標(biāo)識(shí),如果在客戶許可數(shù)據(jù)庫(kù)中找到了該包全局唯一標(biāo)識(shí),則拒絕該包。
110.權(quán)利要求109的方法,其中該信息包進(jìn)一步包含一個(gè)接收者全局唯一標(biāo)識(shí),并且該客戶計(jì)算機(jī)系統(tǒng)進(jìn)一步包含一個(gè)計(jì)算機(jī)代碼模塊,該模塊適于讀出該接收者全局唯一標(biāo)識(shí),查尋客戶許可數(shù)據(jù)庫(kù)以得到該接收者全局唯一標(biāo)識(shí),如果在客戶許可數(shù)據(jù)庫(kù)中沒有找到該接收者的全局唯一標(biāo)識(shí),則拒絕該包。
111.權(quán)利要求110的方法,其中該一個(gè)或多個(gè)許可選自一組,該組包含訪問計(jì)數(shù)許可、訪問時(shí)間許可、期滿日期許可、授權(quán)日期許可、剪切板許可、打印許可、無限訪問許可、應(yīng)用許可以及系統(tǒng)事件許可。
112.根據(jù)權(quán)利要求97的系統(tǒng),其中該系統(tǒng)包含一個(gè)裝置驅(qū)動(dòng)器用于訪問數(shù)據(jù),該裝置驅(qū)動(dòng)器可操作地安裝在電子計(jì)算機(jī)上的操作系統(tǒng)中,其中所述裝置驅(qū)動(dòng)器檢測(cè)一個(gè)文件系統(tǒng)請(qǐng)求;完成所述文件系統(tǒng)請(qǐng)求;接收來自所述文件系統(tǒng)請(qǐng)求的返回信息;確定所述文件系統(tǒng)請(qǐng)求是否是針對(duì)一個(gè)與受保密的文件相關(guān)聯(lián)的標(biāo)志文件;以及如果是,則修改所述返回信息以反映該受保密文件的文件屬性。
113.權(quán)利要求112的系統(tǒng),其中所述文件屬性是文件的大小。
114.權(quán)利要求113的系統(tǒng),其中所述裝置驅(qū)動(dòng)器進(jìn)一步確定所述返回信息是否標(biāo)識(shí)與多個(gè)受保密文件關(guān)聯(lián)的多個(gè)標(biāo)志文件;如果是,則修改所述返回信息以反映這多個(gè)受保密文件的文件屬性。
115.權(quán)利要求114的系統(tǒng),其中所述第一裝置驅(qū)動(dòng)器是一個(gè)文件系統(tǒng)監(jiān)視器。
116.權(quán)利要求114的系統(tǒng),其中該受保密文件以加密形式存儲(chǔ)。
117.權(quán)利要求114的系統(tǒng),其中該受保密文件存儲(chǔ)在一個(gè)保密的虛擬文件系統(tǒng)中。
118.權(quán)利要求114的系統(tǒng),其中該受保密文件存儲(chǔ)在遠(yuǎn)程連網(wǎng)裝置上。
119.權(quán)利要求114的系統(tǒng),其中該文件系統(tǒng)請(qǐng)求是打開一個(gè)文件。
120.權(quán)利要求114的系統(tǒng),其中該文件系統(tǒng)請(qǐng)求是刪除一個(gè)文件。
121.權(quán)利要求114的系統(tǒng),其中該文件系統(tǒng)請(qǐng)求是重命名一個(gè)文件。
122.權(quán)利要求114的系統(tǒng),其中該文件系統(tǒng)請(qǐng)求是查詢文件信息。
123.權(quán)利要求114的系統(tǒng),其中該文件系統(tǒng)請(qǐng)求是設(shè)置文件信息。
124.權(quán)利要求123的系統(tǒng),其中該文件系統(tǒng)請(qǐng)求是找出第一個(gè)匹配文件。
125.權(quán)利要求123的系統(tǒng),其中該文件系統(tǒng)請(qǐng)求是找出下一個(gè)匹配文件。
126.權(quán)利要求123的系統(tǒng),其中該文件系統(tǒng)請(qǐng)求是目錄控制。
127.根據(jù)權(quán)利要求97的系統(tǒng),進(jìn)一步包含一個(gè)端口封鎖系統(tǒng),其中所述端口封鎖系統(tǒng)進(jìn)行操作以檢測(cè)由一過程發(fā)出的使用端口的端口請(qǐng)求;確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);確定是否應(yīng)允許所述過程訪問所述端口;以及如果所述過程應(yīng)被允許訪問所述端口則允許完成所述端口請(qǐng)求,如果所述過程不應(yīng)被允許訪問所述端口則拒絕所述端口請(qǐng)求。
128.根據(jù)權(quán)利要求97的系統(tǒng),進(jìn)一步包含一個(gè)網(wǎng)絡(luò)封鎖系統(tǒng),其中所述網(wǎng)絡(luò)封鎖系統(tǒng)進(jìn)行操作以確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);確定是否應(yīng)允許所述過程訪問所述網(wǎng)絡(luò);以及如果所述過程應(yīng)被允許訪問所述網(wǎng)絡(luò)則允許完成所述網(wǎng)絡(luò)請(qǐng)求,如果所述過程不應(yīng)被允許訪問所述網(wǎng)絡(luò)則拒絕所述網(wǎng)絡(luò)請(qǐng)求。
129.用于監(jiān)視數(shù)據(jù)安全性的一種計(jì)算機(jī)可讀介質(zhì),包含至少一個(gè)模塊用于創(chuàng)建一個(gè)包,該包中包含數(shù)據(jù)和用于限定數(shù)據(jù)使用的一個(gè)或多個(gè)許可,以及一個(gè)模塊用于打開該包并把數(shù)據(jù)存儲(chǔ)在一個(gè)存儲(chǔ)庫(kù)中供有限制地訪問該數(shù)據(jù)。
130.根據(jù)權(quán)利要求129的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包含一個(gè)模塊用于檢測(cè)對(duì)所述一個(gè)或多個(gè)許可的違犯情況。
131.根據(jù)權(quán)利要求130的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包含一個(gè)模塊用于創(chuàng)建一個(gè)與存儲(chǔ)庫(kù)中數(shù)據(jù)對(duì)應(yīng)的標(biāo)志表并把針對(duì)該數(shù)據(jù)的標(biāo)志文件映射到一個(gè)虛擬表中,該虛擬表存儲(chǔ)在該存儲(chǔ)庫(kù)中,表中包括該數(shù)據(jù)的實(shí)際文件名及相應(yīng)的標(biāo)志文件的標(biāo)志名。
132.根據(jù)權(quán)利要求130的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包含一個(gè)模塊用于提供內(nèi)部安全性,包括為至少一個(gè)存儲(chǔ)庫(kù)標(biāo)識(shí)一個(gè)與原始位置對(duì)應(yīng)的錨定地址,一個(gè)用于讀出該包的驅(qū)動(dòng)器以及存儲(chǔ)這些許可的數(shù)據(jù)庫(kù),把這些地址組合在一起以提供一個(gè)鍵(key)用于限定系統(tǒng)操作和標(biāo)識(shí)何時(shí)該鍵將不再操作。
133.根據(jù)權(quán)利要求130的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包含一個(gè)模塊用于監(jiān)視一個(gè)注冊(cè)表,包括向發(fā)出調(diào)用的過程請(qǐng)求注冊(cè)表鍵(key)操縱柄的模塊;請(qǐng)求該操縱柄的注冊(cè)表鍵值的模塊;以及得到安全性權(quán)限以完成這些請(qǐng)求的模塊。
134.根據(jù)權(quán)利要求130的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包含一個(gè)模塊用于監(jiān)視共享存儲(chǔ)器,包含用于提供一個(gè)調(diào)用的模塊,來為發(fā)出請(qǐng)求的過程預(yù)約一存儲(chǔ)器頁(yè)面;根據(jù)該頁(yè)面能否被共享來過濾這一預(yù)約調(diào)用的模塊;用于提供一個(gè)調(diào)用的模塊,來為發(fā)出請(qǐng)求的過程或以后發(fā)出請(qǐng)求的過程提交該存儲(chǔ)器頁(yè)面;以及根據(jù)是該頁(yè)面是否能被共享以及該過程能否是被保密的過濾這一提交調(diào)用的模塊。
135.根據(jù)權(quán)利要求130的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包含提供一個(gè)存儲(chǔ)庫(kù)系統(tǒng)用于使存儲(chǔ)庫(kù)數(shù)據(jù)與其他系統(tǒng)數(shù)據(jù)隔離的模塊;以及提供文件系統(tǒng)安全驅(qū)動(dòng)器的模塊,該驅(qū)動(dòng)器阻斷文件系統(tǒng)調(diào)用,并對(duì)所述被阻斷的文件系統(tǒng)調(diào)用中的每個(gè)特定調(diào)用,確定所述被阻斷的文件系統(tǒng)調(diào)用中的所述特定調(diào)用是否是來自一個(gè)訪問所述存儲(chǔ)庫(kù)的過程,如果所述被阻斷的文件系統(tǒng)調(diào)用中的所述特定調(diào)用是來自一個(gè)訪問所述存儲(chǔ)庫(kù)的過程,則允許該文件系統(tǒng)調(diào)用只在所述存儲(chǔ)庫(kù)系統(tǒng)內(nèi)創(chuàng)建或修改數(shù)據(jù)。
136.根據(jù)權(quán)利要求130的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包含一個(gè)模塊用于監(jiān)視計(jì)算機(jī)的系統(tǒng)時(shí)鐘以防止對(duì)數(shù)據(jù)的非授權(quán)訪問,包含如下步驟一個(gè)模塊,用于初始化一個(gè)時(shí)鐘監(jiān)視器,包含從系統(tǒng)時(shí)鐘讀出第一時(shí)間值;確定在該計(jì)算機(jī)系統(tǒng)上是否初始化了一個(gè)許可數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)有一個(gè)或多個(gè)與時(shí)鐘有關(guān)的許可字段,每個(gè)字段包含一個(gè)或多個(gè)與時(shí)鐘有關(guān)的許可,以及一個(gè)含有存儲(chǔ)時(shí)間值的存儲(chǔ)時(shí)間值字段;如果該許可數(shù)據(jù)庫(kù)被初始化了,則把第一時(shí)間值與存儲(chǔ)時(shí)間值進(jìn)行比較,如果第一時(shí)間值遲于所存儲(chǔ)時(shí)間值,則把第一時(shí)間值存儲(chǔ)在存儲(chǔ)時(shí)間值字段,如果第一時(shí)間值早于所存儲(chǔ)時(shí)間值,則使一個(gè)或多個(gè)與時(shí)間有關(guān)的許可無效,從而通過使與時(shí)間有關(guān)的許可無效來防止對(duì)數(shù)據(jù)的訪問;以及如果許可數(shù)據(jù)庫(kù)未被初始化,則把第一時(shí)間值存儲(chǔ)到存儲(chǔ)時(shí)間值字段。
137.根據(jù)權(quán)利要求130的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包含檢測(cè)對(duì)所述第一裝置驅(qū)動(dòng)器的I/O請(qǐng)求的模塊;確定所述第一裝置驅(qū)動(dòng)器是否在功能上處于分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層的模塊;如果所述第一裝置驅(qū)動(dòng)器是在功能上處于分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層,則在所述第一裝置驅(qū)動(dòng)器中進(jìn)行該I/O請(qǐng)求的模塊;以及如果所述第一裝置驅(qū)動(dòng)器不是在功能上處于分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層,則拒絕在所述第一裝置驅(qū)動(dòng)器中的這個(gè)I/O請(qǐng)求,并允許由分層多個(gè)裝置驅(qū)動(dòng)器中的下一個(gè)較低級(jí)別裝置驅(qū)動(dòng)器來進(jìn)行該I/O請(qǐng)求的模塊。
138.根據(jù)權(quán)利要求129的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包含端口請(qǐng)求檢測(cè)步驟,該步驟檢測(cè)由一過程發(fā)出的使用一端口的端口請(qǐng)求;過程識(shí)別步驟,該步驟確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);過程檢驗(yàn)步驟,該步驟確定是否應(yīng)允許所述過程訪問所述端口;以及允許/拒絕步驟,在該步驟中,如果所述過程應(yīng)被允許訪問所述端口,則允許完成所述端口請(qǐng)求,而如果所述過程不應(yīng)被允許訪問所述端口,則拒絕所述端口請(qǐng)求。
139.根據(jù)權(quán)利要求130的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包含端口請(qǐng)求檢測(cè)步驟,該步驟檢測(cè)由一過程發(fā)出的使用一端口的端口請(qǐng)求;打開端口過程識(shí)別步驟,在該步驟中,如果所述端口請(qǐng)求是一個(gè)打開端口請(qǐng)求,則確定所述請(qǐng)求過程的標(biāo)識(shí);打開端口過程檢驗(yàn)步驟,在該步驟中,如果所述端口請(qǐng)求是一個(gè)打開端口請(qǐng)求,則確定是否應(yīng)允許所述過程打開所述端口;打開端口允許/拒絕步驟,在該步驟中,如果所述端口請(qǐng)求是一個(gè)打開端口的請(qǐng)求,則如果所述過程應(yīng)被允許打開所述端口則允許完成所述打開端口請(qǐng)求并跟蹤所述打開端口請(qǐng)求,如果所述過程不應(yīng)被允許打開所述端口則拒絕所述端口請(qǐng)求;關(guān)閉端口過程完成步驟,在該步驟中,如果所述端口請(qǐng)求是一個(gè)關(guān)閉端口請(qǐng)求,則完成所述端口請(qǐng)求;以及關(guān)閉端口記錄日志步驟,該步驟記錄所述端口的關(guān)閉。
140.根據(jù)權(quán)利要求130的計(jì)算機(jī)可讀介質(zhì),進(jìn)一步包含網(wǎng)絡(luò)請(qǐng)求檢測(cè)步驟,該步驟檢測(cè)由一過程發(fā)出的使用網(wǎng)絡(luò)的網(wǎng)絡(luò)請(qǐng)求;過程識(shí)別步驟,該步驟確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);過程檢驗(yàn)步驟,該步驟確定是否應(yīng)允許所述過程訪問所述網(wǎng)絡(luò);以及允許/拒絕步驟,在該步驟中,如果所述過程應(yīng)被允許訪問所述網(wǎng)絡(luò),則允許完成所述網(wǎng)絡(luò)請(qǐng)求,如果所述過程不應(yīng)被允許訪問所述網(wǎng)絡(luò),則拒絕所述網(wǎng)絡(luò)請(qǐng)求。
141.根據(jù)權(quán)利要求130的機(jī)器可讀介質(zhì),包含一個(gè)信息包,其中包含一個(gè)數(shù)據(jù)文件;一個(gè)許可數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)有一個(gè)或多個(gè)與該數(shù)據(jù)文件關(guān)聯(lián)的許可,這一個(gè)或多個(gè)許可控制客戶機(jī)對(duì)該文件的使用;一個(gè)包全局唯一標(biāo)識(shí);以及一個(gè)接收器全局唯一標(biāo)識(shí)。
142.根據(jù)權(quán)利要求141的機(jī)器可讀介質(zhì),其中該一個(gè)或多個(gè)許可選自一組許可,該組包含訪問計(jì)數(shù)許可、訪問時(shí)間許可、期滿日期許可、授權(quán)日期許可、剪切板許可、打印許可、無限訪問許可、應(yīng)用許可、以及系統(tǒng)事件許可。
143.權(quán)利要求142的機(jī)器可讀介質(zhì),進(jìn)一步包含一個(gè)客戶機(jī)軟件。
144.根據(jù)權(quán)利要求130的機(jī)器可讀介質(zhì),進(jìn)一步包含一個(gè)用于訪問數(shù)據(jù)的裝置驅(qū)動(dòng)器程序,所述裝置驅(qū)動(dòng)器程序包含用于檢測(cè)文件系統(tǒng)請(qǐng)求的一組由計(jì)算機(jī)實(shí)現(xiàn)的指令;用于完成所述文件系統(tǒng)請(qǐng)求的一組由計(jì)算機(jī)實(shí)現(xiàn)的指令;用于接收從所述文件系統(tǒng)請(qǐng)求返回的信息的一組由計(jì)算機(jī)實(shí)現(xiàn)的指令;用于確定所述文件系統(tǒng)請(qǐng)求是否是針對(duì)與一受保密文件關(guān)聯(lián)的標(biāo)志文件的一組由計(jì)算機(jī)實(shí)現(xiàn)的指令;以及一組由計(jì)算機(jī)實(shí)現(xiàn)的指令,如果所述返回信息標(biāo)識(shí)的是與多個(gè)受保密文件關(guān)聯(lián)的多個(gè)標(biāo)志文件的話,用于修改所述返回信息以反映多個(gè)受保密文件的文件屬性。
145.根據(jù)權(quán)利要求144的計(jì)算機(jī)可讀介質(zhì),其中該裝置驅(qū)動(dòng)器程序進(jìn)一步包括用于確定所述返回信息是否標(biāo)識(shí)與多個(gè)受保密的文件相關(guān)聯(lián)的多個(gè)標(biāo)志文件的一組由計(jì)算機(jī)實(shí)現(xiàn)的指令;以及一組由計(jì)算機(jī)實(shí)現(xiàn)的指令,如果所述返回信息標(biāo)識(shí)的是與多個(gè)受保密文件關(guān)聯(lián)的多個(gè)標(biāo)志文件,用于修改所述返回信息以反映多個(gè)受保密文件的文件屬性。
146.根據(jù)權(quán)利要求130的計(jì)算機(jī)可讀介質(zhì),被編程為通過實(shí)現(xiàn)端口封鎖系統(tǒng)來保護(hù)受保密的數(shù)據(jù),該端口封鎖系統(tǒng)進(jìn)行操作以檢測(cè)由一過程發(fā)出的使用端口的端口請(qǐng)求;確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);確定是否應(yīng)允許所述過程訪問所述端口;以及如果所述過程應(yīng)被允許訪問該端口則允許完成所述端口請(qǐng)求,如果所述過程不應(yīng)被允許訪問該端口則拒絕所述端口請(qǐng)求。
147.根據(jù)權(quán)利要求130的計(jì)算機(jī)可讀介質(zhì),被編程為通過實(shí)現(xiàn)網(wǎng)絡(luò)封鎖系統(tǒng)來保護(hù)受保密的數(shù)據(jù),該網(wǎng)絡(luò)封鎖系統(tǒng)進(jìn)行操作以確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);確定是否應(yīng)允許所述過程訪問該網(wǎng)絡(luò);以及如果所述過程應(yīng)被允許訪問該網(wǎng)絡(luò)則允許完成所述網(wǎng)絡(luò)訪問,如果所述過程不應(yīng)被允許訪問該網(wǎng)絡(luò)則拒絕所述網(wǎng)絡(luò)訪問。
148.一個(gè)在至少兩個(gè)計(jì)算機(jī)之間傳送數(shù)據(jù)期間保持安全性的系統(tǒng),包含第一計(jì)算機(jī),具有一系統(tǒng)用于創(chuàng)建一包,該包包含數(shù)據(jù)和一個(gè)或多個(gè)許可,這些許可選自一個(gè)可用許可清單,用于限定對(duì)數(shù)據(jù)的使用;以及第二計(jì)算機(jī),具有一系統(tǒng)用于從第一計(jì)算機(jī)接收該包,在確認(rèn)后打開該包并把該包存儲(chǔ)在一個(gè)存儲(chǔ)庫(kù)中。
149.根據(jù)權(quán)利要求148的系統(tǒng),進(jìn)一步包含內(nèi)部安全機(jī)制,其中該內(nèi)部安全機(jī)制包含如下多個(gè)檢測(cè)對(duì)所述一個(gè)或多個(gè)許可的違犯情況;創(chuàng)建一個(gè)與數(shù)據(jù)對(duì)應(yīng)的標(biāo)志文件,并把針對(duì)該數(shù)據(jù)的標(biāo)志文件映射到一個(gè)虛擬表中,該虛擬表包括數(shù)據(jù)的真實(shí)文件名和對(duì)應(yīng)的標(biāo)志文件的標(biāo)志名,其中虛擬表和數(shù)據(jù)存儲(chǔ)在存儲(chǔ)庫(kù)中;標(biāo)識(shí)一個(gè)用于至少一個(gè)存儲(chǔ)庫(kù)的與一原始位置對(duì)應(yīng)的錨定地址、用于讀該包的驅(qū)動(dòng)器和存儲(chǔ)這些許可的數(shù)據(jù)庫(kù),把這些地址組合到一起以提供一個(gè)限定系統(tǒng)操作的鍵(key)并標(biāo)識(shí)出何時(shí)該鍵將不再操作;監(jiān)視一個(gè)注冊(cè)表,包含請(qǐng)求一個(gè)針對(duì)調(diào)用過程的注冊(cè)表鍵操縱柄;請(qǐng)求該操縱柄的注冊(cè)表鍵值;以及得到安全性權(quán)限,以完成該請(qǐng)求;監(jiān)視共享存儲(chǔ)器,包含提供一個(gè)調(diào)用,為發(fā)出請(qǐng)求的過程預(yù)約一個(gè)存儲(chǔ)器頁(yè)面;根據(jù)該頁(yè)面能否被共享來過濾該預(yù)約調(diào)用;提供一個(gè)調(diào)用,為發(fā)出請(qǐng)求的過程或以后發(fā)出請(qǐng)求的過程提交該存儲(chǔ)器頁(yè)面;以及根據(jù)該頁(yè)面能否被共享以及該過程能否是被保密的,來過濾該提交調(diào)用;提供一個(gè)存儲(chǔ)庫(kù)系統(tǒng),用于把存儲(chǔ)庫(kù)數(shù)據(jù)與其他系統(tǒng)數(shù)據(jù)隔離;提供一個(gè)文件系統(tǒng)安全驅(qū)動(dòng)器,它阻斷文件系統(tǒng)調(diào)用,并對(duì)所述被阻斷的文件系統(tǒng)調(diào)用中的每個(gè)特定調(diào)用,確定所述被阻斷的文件系統(tǒng)調(diào)用中的所述特定調(diào)用是否是來自一個(gè)訪問所述存儲(chǔ)庫(kù)數(shù)據(jù)的過程,如果所述被阻斷的文件系統(tǒng)調(diào)用中的所述特定調(diào)用是來自一個(gè)訪問所述存儲(chǔ)庫(kù)數(shù)據(jù)的過程,則允許該文件系統(tǒng)調(diào)用只在所述存儲(chǔ)庫(kù)系統(tǒng)內(nèi)創(chuàng)建或修改數(shù)據(jù);監(jiān)視計(jì)算機(jī)系統(tǒng)時(shí)鐘,以防止對(duì)數(shù)據(jù)的非授權(quán)訪問,包含初始化一個(gè)時(shí)鐘監(jiān)視器,包含如下步驟從系統(tǒng)時(shí)鐘讀出第一時(shí)間值;確定在該計(jì)算機(jī)系統(tǒng)上是否初始化了一個(gè)許可數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)有一個(gè)或多個(gè)與時(shí)鐘有關(guān)的許可字段,每個(gè)字段包含一個(gè)或多個(gè)與時(shí)鐘有關(guān)的許可,以及一個(gè)含有存儲(chǔ)的時(shí)間值的存儲(chǔ)時(shí)間值字段;如果該許可數(shù)據(jù)庫(kù)被初始化了,則把第一時(shí)間值與存儲(chǔ)時(shí)間值進(jìn)行比較,如果第一時(shí)間值遲于所存儲(chǔ)時(shí)間值,則把第一時(shí)間值存儲(chǔ)在存儲(chǔ)時(shí)間值字段,如果第一時(shí)間值早于所存儲(chǔ)時(shí)間值,則使一個(gè)或多個(gè)與時(shí)間有關(guān)的許可無效,從而通過使與時(shí)間有關(guān)的許可無效來防止對(duì)數(shù)據(jù)的訪問;以及如果許可數(shù)據(jù)庫(kù)未被初始化,則把第一時(shí)間值存儲(chǔ)到存儲(chǔ)時(shí)間值字段;檢測(cè)一個(gè)對(duì)所述第一裝置驅(qū)動(dòng)器的I/O請(qǐng)求;確定所述第一裝置驅(qū)動(dòng)器是否在功能上處于分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層;如果所述第一裝置驅(qū)動(dòng)器是在功能上處于分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層,則在所述第一裝置驅(qū)動(dòng)器中進(jìn)行I/O請(qǐng)求;以及如果所述第一裝置驅(qū)動(dòng)器不是在功能上處于分層的多個(gè)裝置驅(qū)動(dòng)器中的最頂層,則拒絕在所述第一裝置驅(qū)動(dòng)器中的這個(gè)I/O請(qǐng)求,并允許由分層多個(gè)裝置驅(qū)動(dòng)器中的下一個(gè)較低級(jí)別裝置驅(qū)動(dòng)器來進(jìn)行該I/O請(qǐng)求;檢測(cè)由一過程發(fā)出的使用一端口的端口請(qǐng)求;確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);確定是否應(yīng)允許所述過程訪問所述端口;如果所述過程應(yīng)被允許訪問所述端口則允許完成所述端口請(qǐng)求,而如果所述過程不應(yīng)被允許訪問所述端口則拒絕所述端口請(qǐng)求;檢測(cè)由一過程發(fā)出的使用一端口的端口請(qǐng)求;如果所述端口請(qǐng)求是一個(gè)打開端口請(qǐng)求,則確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);如果所述端口請(qǐng)求是一個(gè)打開端口請(qǐng)求,則確定是否應(yīng)允許所述過程打開所述端口;如果所述端口請(qǐng)求是一個(gè)打開端口請(qǐng)求,則如果所述過程應(yīng)被允許打開所述端口則允許完成所述打開端口請(qǐng)求并跟蹤所述打開端口請(qǐng)求,如果所述過程不應(yīng)被允許打開所述端口則拒絕所述端口請(qǐng)求;如果所述端口請(qǐng)求是一個(gè)關(guān)閉端口請(qǐng)求,則完成所述端口請(qǐng)求;記錄所述端口的關(guān)閉;檢測(cè)由一過程發(fā)出的使用網(wǎng)絡(luò)的網(wǎng)絡(luò)請(qǐng)求;確定所述發(fā)出請(qǐng)求過程的標(biāo)識(shí);確定是否應(yīng)允許所述過程訪問該網(wǎng)絡(luò);以及如果所述過程應(yīng)被允許訪問該網(wǎng)絡(luò),則允許完成所述網(wǎng)絡(luò)請(qǐng)求,如果所述過程不應(yīng)被允許訪問該網(wǎng)絡(luò),則拒絕所述網(wǎng)絡(luò)請(qǐng)求;檢測(cè)一個(gè)文件系統(tǒng)請(qǐng)求;完成所述文件系統(tǒng)請(qǐng)求;接收來自所述文件系統(tǒng)請(qǐng)求的返回信息;確定所述文件系統(tǒng)請(qǐng)求是否是針對(duì)一個(gè)與受保密的文件相關(guān)聯(lián)的標(biāo)志文件;以及如果是,則修改所述返回信息以反映該受保密文件的文件屬性。
全文摘要
一種系統(tǒng)和方法保護(hù)數(shù)據(jù)的安全性。該數(shù)據(jù)與一個(gè)或多個(gè)許可打包在一起,該許可指定允許針對(duì)該數(shù)據(jù)可采取哪些行動(dòng)。當(dāng)同意打開該包時(shí)該包能被打開,并保持所允許的許可。該數(shù)據(jù)存儲(chǔ)在一個(gè)存儲(chǔ)庫(kù)(vault)內(nèi),有若干可用的安全措施防止對(duì)數(shù)據(jù)的非授權(quán)訪問。
文檔編號(hào)G06F1/00GK1345497SQ00802532
公開日2002年4月17日 申請(qǐng)日期2000年9月29日 優(yōu)先權(quán)日1999年10月1日
發(fā)明者喬治·弗里德曼, 羅伯特·菲利普·斯塔雷克, 卡洛斯·穆爾多克 申請(qǐng)人:因弗拉沃克斯公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
屯留县| 旺苍县| 资阳市| 融水| 嘉义县| 大理市| 大名县| 布尔津县| 上林县| 华安县| 芜湖市| 左权县| 邵阳市| 拜泉县| 苏尼特左旗| 舟山市| 保德县| 崇左市| 巴林左旗| 铜梁县| 新河县| 准格尔旗| 饶河县| 新乐市| 呼和浩特市| 葫芦岛市| 文成县| 屏南县| 天镇县| 珠海市| 宜昌市| 永丰县| 合作市| 平度市| 清新县| 皋兰县| 邮箱| 余江县| 桃园市| 九龙城区| 南通市|