本發(fā)明涉及計(jì)算機(jī)安全,特別涉及一種系統(tǒng)數(shù)據(jù)安全增強(qiáng)方法。
背景技術(shù):
隨著信息技術(shù)的發(fā)展,計(jì)算機(jī)系統(tǒng)廣泛應(yīng)用于政治、經(jīng)濟(jì)、文化、國(guó)防和安全等重要領(lǐng)域。其中,操作系統(tǒng)內(nèi)核是整個(gè)計(jì)算機(jī)系統(tǒng)工作和安全的基礎(chǔ)。內(nèi)核運(yùn)行于整個(gè)系統(tǒng)的最高權(quán)限層,管理和控制底層硬件資源,為上層文件提供安全隔離的資源抽象和訪問(wèn)接口。越來(lái)越多的安全報(bào)告表明操作系統(tǒng)內(nèi)核仍然存在著大量的漏洞和錯(cuò)誤,攻擊者能夠獲得最髙的權(quán)限、以內(nèi)核權(quán)限實(shí)施任意攻擊行為,包括惡意操作底層硬件、執(zhí)行系統(tǒng)中的任意代碼、讀寫(xiě)內(nèi)存和磁盤(pán)上的任意數(shù)據(jù)等等?,F(xiàn)有技術(shù)基于vmm,對(duì)內(nèi)核權(quán)限操作進(jìn)行截獲和驗(yàn)證,實(shí)現(xiàn)了對(duì)文件的全面保護(hù)。然而另一方面,vmm運(yùn)行于更高的權(quán)限層,操作系統(tǒng)內(nèi)核與vmm之間頻繁的層間切換也導(dǎo)致了較高的性能開(kāi)銷。
技術(shù)實(shí)現(xiàn)要素:
為解決上述現(xiàn)有技術(shù)所存在的問(wèn)題,本發(fā)明提出了一種系統(tǒng)數(shù)據(jù)安全增強(qiáng)方法,包括:
將不可信內(nèi)核與應(yīng)用分別運(yùn)行于內(nèi)核尋址區(qū)和安全尋址區(qū),所述安全尋址區(qū)位于受可信平臺(tái)保護(hù)的安全環(huán)境中。
優(yōu)選地,所述可信平臺(tái)利用硬件虛擬化直接對(duì)控制寄存器的目標(biāo)值進(jìn)行限制;同時(shí)截獲并驗(yàn)證系統(tǒng)中所有的塊表更新操作,實(shí)現(xiàn)內(nèi)存保護(hù);在控制寄存器目標(biāo)列表中設(shè)定最多4個(gè)控制寄存器的目標(biāo)值;將內(nèi)核尋址區(qū)中的內(nèi)核塊表和安全尋址區(qū)中的安全塊表的基地址寫(xiě)入控制寄存器目標(biāo)列表,如果試圖修改為其他目標(biāo)值均使cpu進(jìn)入到安全模式,會(huì)導(dǎo)致整個(gè)系統(tǒng)重啟。
優(yōu)選地,所述內(nèi)核尋址區(qū)中整個(gè)塊表被映射為只讀,運(yùn)行于內(nèi)核尋址區(qū)中的軟件要修改某個(gè)塊表項(xiàng)時(shí),必須首先將該塊表項(xiàng)映射為可寫(xiě);內(nèi)核尋址區(qū)中的軟件試圖解除塊表鎖定的方式包括1)修改控制寄存器、切換尋址區(qū);2)修改控制寄存器的模式標(biāo)志位,使塊表的只讀保護(hù)失效;使用硬件虛擬化禁止普通模式的所有軟件修改控制寄存器的模式標(biāo)志位,任何修改模式標(biāo)志位的操作均使系統(tǒng)進(jìn)入到安全模式。
優(yōu)選地,所述可信平臺(tái)使用一個(gè)數(shù)組來(lái)跟蹤系統(tǒng)中每個(gè)物理塊的映射情況;每個(gè)塊可被定義為3種映射狀態(tài):正常,隔離和占有;正常狀態(tài)的塊被內(nèi)核塊表和安全塊表兩者映射,內(nèi)核和可信平臺(tái)都能訪問(wèn);隔離狀態(tài)的塊僅被安全塊表映射,只能被可信平臺(tái)訪問(wèn);可信平臺(tái)和塊表所在的塊都被映射為隔離狀態(tài);占有狀態(tài)的塊已被分配給某個(gè)應(yīng)用,僅被安全塊表和其應(yīng)用占有者的安全塊表映射,只有可信平臺(tái)和其占有者能訪問(wèn)它們;可信平臺(tái)使用唯一的安全標(biāo)識(shí)符sid來(lái)標(biāo)識(shí)占有塊的占有者;sid在進(jìn)程創(chuàng)建時(shí)由可信平臺(tái)賦予每個(gè)進(jìn)程;
當(dāng)一個(gè)塊被內(nèi)核分配給應(yīng)用a時(shí),可信平臺(tái)要求內(nèi)核只能使用隔離狀態(tài)的塊;當(dāng)可信平臺(tái)將該塊映射到a的安全塊表時(shí),對(duì)該塊的映射狀態(tài)進(jìn)行驗(yàn)證,拒絕所有非隔離塊;然后,該塊被安全的分配給a,標(biāo)記為占有狀態(tài)、并被應(yīng)用a的sid標(biāo)記;可信平臺(tái)通過(guò)驗(yàn)證sid,禁止占有狀態(tài)的塊被內(nèi)核塊表或者其他應(yīng)用的安全塊表映射,保證a的內(nèi)存隔離;同時(shí)禁止應(yīng)用塊在應(yīng)用尋址區(qū)中被重映射;
可信平臺(tái)由應(yīng)用自身維護(hù)一個(gè)鏈表,描述自身的尋址區(qū)映射狀態(tài),該鏈表與應(yīng)用尋址區(qū)的其他數(shù)據(jù)均無(wú)法被內(nèi)核修改;當(dāng)可信平臺(tái)更新應(yīng)用塊表時(shí),査看該鏈表;如果內(nèi)核的塊表更新請(qǐng)求與該鏈表描述的尋址區(qū)映射狀態(tài)不一致,可信平臺(tái)拒絕該請(qǐng)求;
在磁盤(pán)上,不同文件被不同方式標(biāo)記,同一文件的不同數(shù)據(jù)塊被文件偏移標(biāo)記,表示該數(shù)據(jù)塊在文件中的位置;當(dāng)應(yīng)用調(diào)用文件映射函數(shù)時(shí),同時(shí)更新自身維護(hù)的尋址區(qū)狀態(tài)鏈表,包括要讀取的文件對(duì)應(yīng)的id和偏移;當(dāng)可信平臺(tái)進(jìn)行塊表更新驗(yàn)證時(shí),檢查該鏈表;如果該更新對(duì)應(yīng)的尋址區(qū)映射文件,可信平臺(tái)將該鏈表中的id和偏移與文件本身的id和偏移進(jìn)行比對(duì);如果不是應(yīng)用需要的文件或者偏移位置,可信平臺(tái)拒絕將文件映射到尋址區(qū),并通知應(yīng)用。
本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點(diǎn):
本發(fā)明提出了一種系統(tǒng)數(shù)據(jù)安全增強(qiáng)方法,與不可信操作系統(tǒng)完全隔離,避免了頻繁低效的加密解密,并為應(yīng)用提供了全面的保護(hù)。
附圖說(shuō)明
圖1是根據(jù)本發(fā)明實(shí)施例的系統(tǒng)數(shù)據(jù)安全增強(qiáng)方法的流程圖。
具體實(shí)施方式
下文與圖示本發(fā)明原理的附圖一起提供對(duì)本發(fā)明一個(gè)或者多個(gè)實(shí)施例的詳細(xì)描述。結(jié)合這樣的實(shí)施例描述本發(fā)明,但是本發(fā)明不限于任何實(shí)施例。本發(fā)明的范圍僅由權(quán)利要求書(shū)限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中描述諸多具體細(xì)節(jié)以便提供對(duì)本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無(wú)這些具體細(xì)節(jié)中的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書(shū)實(shí)現(xiàn)本發(fā)明。
本發(fā)明的一方面提供了一種系統(tǒng)數(shù)據(jù)安全增強(qiáng)方法。圖1是根據(jù)本發(fā)明實(shí)施例的系統(tǒng)數(shù)據(jù)安全增強(qiáng)方法流程圖。
本發(fā)明在安全尋址區(qū)引入可信平臺(tái),應(yīng)用運(yùn)行于可信平臺(tái)保護(hù)的安全環(huán)境中。將不可信內(nèi)核與應(yīng)用分別運(yùn)行于兩個(gè)不同的尋址區(qū),分別稱為內(nèi)核尋址區(qū)和安全尋址區(qū)。內(nèi)核尋址區(qū)中使用的塊表稱為內(nèi)核塊表,安全尋址區(qū)中使用的塊表稱為安全塊表。當(dāng)安全尋址區(qū)的應(yīng)用與內(nèi)核交互時(shí),應(yīng)用首先進(jìn)入到安全尋址區(qū)的可信平臺(tái),可信平臺(tái)保存應(yīng)用上下文,然后切換到內(nèi)核尋址區(qū),進(jìn)入內(nèi)核執(zhí)行。當(dāng)內(nèi)核返回應(yīng)用時(shí),必須首先返回安全尋址區(qū)的可信平臺(tái),可信平臺(tái)恢復(fù)應(yīng)用上下文,再返回安全尋址區(qū)中的應(yīng)用繼續(xù)執(zhí)行。
可信平臺(tái)利用硬件虛擬化直接對(duì)控制寄存器的目標(biāo)值進(jìn)行限制;同時(shí),可信平臺(tái)截獲并驗(yàn)證系統(tǒng)中所有的塊表更新操作,實(shí)現(xiàn)內(nèi)存保護(hù)。使用硬件虛擬化保證整個(gè)系統(tǒng)(內(nèi)核、應(yīng)用和可信平臺(tái))只能運(yùn)行于內(nèi)核尋址區(qū)和安全尋址區(qū)中。在控制寄存器目標(biāo)列表中設(shè)定最多4個(gè)控制寄存器的目標(biāo)值。當(dāng)軟件修改控制寄存器,且目標(biāo)值是控制寄存器目標(biāo)列表中的一個(gè)時(shí),該控制寄存器修改可直接完成。本發(fā)明僅使用2個(gè)目標(biāo)值,將內(nèi)核尋址區(qū)中的內(nèi)核塊表和安全尋址區(qū)中的安全塊表的基地址寫(xiě)入控制寄存器目標(biāo)列表,因此,整個(gè)系統(tǒng)在運(yùn)行過(guò)程中只能將控制寄存器修改為這兩個(gè)值。如果試圖修改為其他目標(biāo)值均使cpu進(jìn)入到安全模式,本發(fā)明中任何導(dǎo)致進(jìn)入到安全模式的操作都被認(rèn)為是惡意的,并會(huì)導(dǎo)致整個(gè)系統(tǒng)重啟。在內(nèi)核尋址區(qū)中,整個(gè)塊表被映射為只讀。任何運(yùn)行于內(nèi)核尋址區(qū)中的軟件若要修改某個(gè)塊表項(xiàng)時(shí),必須首先將該塊表項(xiàng)映射為可寫(xiě)。內(nèi)核尋址區(qū)中的軟件試圖解除塊表鎖定的方式是:1)修改控制寄存器、切換尋址區(qū)。2)修改控制寄存器的模式標(biāo)志位,使塊表的只讀保護(hù)失效。針對(duì)這種方式,本發(fā)明使用硬件虛擬化禁止普通模式的所有軟件修改控制寄存器的模式標(biāo)志位,任何修改模式標(biāo)志位的操作均使系統(tǒng)進(jìn)入到安全模式,進(jìn)而導(dǎo)致系統(tǒng)重啟。
在安全尋址區(qū)中,本發(fā)明限制只有第0層的軟件能夠修改塊表。塊表在其他層被映射為不可見(jiàn)。因此,整個(gè)系統(tǒng)中只有安全尋址區(qū)的軟件能夠修改塊表。所有的塊表更新操作只能由可信平臺(tái)完成。當(dāng)內(nèi)核需要更新塊表時(shí),只能向可信平臺(tái)發(fā)出請(qǐng)求,可信平臺(tái)能夠截獲并驗(yàn)證所有的塊表更新操作,實(shí)現(xiàn)內(nèi)存保護(hù)。因此本發(fā)明基于控制寄存器控制和塊表鎖定技術(shù),消除了內(nèi)核尋址區(qū)的內(nèi)核修改塊表的權(quán)限。
可信平臺(tái)控制所有進(jìn)入安全尋址區(qū)的入口點(diǎn),保證一旦cpu進(jìn)入安全尋址區(qū),可信平臺(tái)獲得系統(tǒng)控制權(quán)??尚牌脚_(tái)在安全尋址區(qū)完成自身的執(zhí)行流程,在返回外部組件時(shí),將cpu切換回內(nèi)核尋址區(qū)或者安全尋址區(qū)第3層,保證安全尋址區(qū)中只有可信平臺(tái)運(yùn)行。因此,外部組件始終只能運(yùn)行于內(nèi)核尋址區(qū)或者安全尋址區(qū)第3層中,不能破壞安全尋址區(qū)中可信平臺(tái)的數(shù)據(jù)代碼。
從入口點(diǎn)進(jìn)入安全尋址區(qū)第0層后,可信平臺(tái)在整個(gè)執(zhí)行過(guò)程中,中斷被禁止,執(zhí)行流無(wú)法被外部組件劫持:只有當(dāng)返回外部組件時(shí),可信平臺(tái)才恢復(fù)中斷。同時(shí),可信平臺(tái)將cpu切換回內(nèi)核尋址區(qū)或者安全尋址區(qū)第3層,保證安全尋址區(qū)第0層中只有可信平臺(tái)運(yùn)行。當(dāng)可信平臺(tái)中發(fā)生不可屏蔽中斷時(shí),可信平臺(tái)暫時(shí)阻塞該不可屏蔽中斷,防止外部組件使用不可屏蔽中斷劫持可信平臺(tái)執(zhí)行流。當(dāng)返回到內(nèi)核時(shí),可信平臺(tái)再將該不可屏蔽中斷轉(zhuǎn)發(fā)給內(nèi)核進(jìn)行處理。運(yùn)行于內(nèi)核尋址區(qū)的內(nèi)核或者安全尋址區(qū)第3層的應(yīng)用無(wú)法破壞可信平臺(tái)數(shù)據(jù)代碼完整性,也無(wú)法修改塊表、對(duì)可信平臺(tái)的數(shù)據(jù)代碼進(jìn)行惡意映射。
塊表由4級(jí)結(jié)構(gòu)組成(l1、l2、l3和l4表示),控制寄存器指向安全塊表的l4塊表(稱為s-l4),塊表切換是通過(guò)將目標(biāo)文件的l4塊表整體拷貝到s-l4來(lái)實(shí)現(xiàn)的。和其他塊表一樣,s-l4只能被安全尋址區(qū)中的可信平臺(tái)修改。因此,進(jìn)程切換時(shí),內(nèi)核只能向可信平臺(tái)發(fā)出請(qǐng)求,由可信平臺(tái)切換文件塊表。
當(dāng)應(yīng)用發(fā)生中斷、進(jìn)入可信平臺(tái),可信平臺(tái)保存應(yīng)用安全環(huán)境,并將該中斷轉(zhuǎn)發(fā)給內(nèi)核尋址區(qū)中的內(nèi)核,將塊表更新的具體內(nèi)容置于一個(gè)共享內(nèi)存中,到內(nèi)核完成所有處理,當(dāng)操作系統(tǒng)完成中斷處理時(shí),分配相應(yīng)的物理塊??尚牌脚_(tái)從共享內(nèi)存中讀取更新請(qǐng)求,完成塊表更新,然后返回內(nèi)核。內(nèi)核完成余下的中斷處理工作,最終返回可信平臺(tái)??尚牌脚_(tái)恢復(fù)應(yīng)用安全環(huán)境,返回應(yīng)用。
可信平臺(tái)截獲并驗(yàn)證系統(tǒng)中所有發(fā)送到磁盤(pán)外設(shè)的i/o命令,整個(gè)i/o驗(yàn)證過(guò)程在普通模式中實(shí)現(xiàn)。本發(fā)明僅需要截獲內(nèi)存映射i/o,就可以截獲發(fā)送到磁盤(pán)外設(shè)的i/o命令。具體來(lái)說(shuō),基于可信平臺(tái)的內(nèi)存保護(hù)機(jī)制,可信平臺(tái)將分配給磁盤(pán)管理器的i/o內(nèi)存映射為只讀。當(dāng)內(nèi)核需要向磁盤(pán)發(fā)送i/o命令時(shí),它只能將該命令轉(zhuǎn)發(fā)給可信平臺(tái),由可信平臺(tái)訪問(wèn)i/o內(nèi)存,在系統(tǒng)啟動(dòng)時(shí),對(duì)bios設(shè)置的pci配置空間進(jìn)行驗(yàn)證,在系統(tǒng)運(yùn)行過(guò)程中禁止內(nèi)核訪問(wèn)整個(gè)pci配置空間。利用硬件虛擬化禁止普通模式中的軟件訪問(wèn)該段i/o端口;將這段保留的系統(tǒng)內(nèi)存在尋址區(qū)中映射為不可見(jiàn),禁止內(nèi)核訪問(wèn)。
下面具體描述可信平臺(tái)如何保護(hù)應(yīng)用尋址區(qū)中的內(nèi)存,實(shí)現(xiàn)尋址區(qū)隔離和完整性保護(hù)。為了實(shí)現(xiàn)應(yīng)用尋址區(qū)與內(nèi)核的隔離,可信平臺(tái)使用一個(gè)數(shù)組來(lái)跟蹤系統(tǒng)中每個(gè)物理塊的映射情況。每個(gè)塊可被定義為3種映射狀態(tài):正常,隔離和占有。正常狀態(tài)的塊被內(nèi)核塊表和安全塊表兩者映射,因而內(nèi)核和可信平臺(tái)都能訪問(wèn)它們。隔離狀態(tài)的塊僅被安全塊表映射,只能被可信平臺(tái)訪問(wèn)??尚牌脚_(tái)和塊表所在的塊都被映射為隔離狀態(tài)。占有狀態(tài)的塊已被分配給某個(gè)應(yīng)用,僅被安全塊表和其應(yīng)用占有者的安全塊表映射,因而只有可信平臺(tái)和其占有者能訪問(wèn)它們。可信平臺(tái)使用唯一的安全標(biāo)識(shí)符sid來(lái)標(biāo)識(shí)占有塊的占有者。sid在進(jìn)程創(chuàng)建時(shí)由可信平臺(tái)賦予每個(gè)進(jìn)程。
下面以應(yīng)用a的塊分配為例,描述塊映射狀態(tài)的轉(zhuǎn)化過(guò)程和尋址區(qū)隔離。當(dāng)一個(gè)塊被內(nèi)核分配給應(yīng)用a時(shí),可信平臺(tái)要求內(nèi)核只能使用隔離狀態(tài)的塊。當(dāng)可信平臺(tái)將該塊映射到a的安全塊表時(shí),對(duì)該塊的映射狀態(tài)進(jìn)行驗(yàn)證,拒絕所有非隔離塊。然后,該塊被安全的分配給a,標(biāo)記為占有狀態(tài)、并被應(yīng)用a的sid標(biāo)記。可信平臺(tái)通過(guò)驗(yàn)證sid,禁止占有狀態(tài)的塊被內(nèi)核塊表或者其他應(yīng)用的安全塊表映射,保證a的內(nèi)存隔離。同時(shí)禁止應(yīng)用塊在應(yīng)用尋址區(qū)中被重映射。
可信平臺(tái)由應(yīng)用自身維護(hù)一個(gè)鏈表,描述自身的尋址區(qū)映射狀態(tài)。該鏈表與應(yīng)用尋址區(qū)的其他數(shù)據(jù)一樣,無(wú)法被內(nèi)核修改。當(dāng)可信平臺(tái)更新應(yīng)用塊表時(shí),將査看該鏈表。如果內(nèi)核的塊表更新請(qǐng)求與該鏈表描述的尋址區(qū)映射狀態(tài)不一致,可信平臺(tái)將拒絕該請(qǐng)求。下面以文件映射函數(shù)為例,描述這一機(jī)制。
在磁盤(pán)上,不同文件被不同方式標(biāo)記,同一文件的不同數(shù)據(jù)塊被文件偏移標(biāo)記,表示該數(shù)據(jù)塊在文件中的位置。當(dāng)應(yīng)用調(diào)用文件映射函數(shù)時(shí),同時(shí)更新自身維護(hù)的尋址區(qū)狀態(tài)鏈表,包括要讀取的文件對(duì)應(yīng)的id和偏移。當(dāng)可信平臺(tái)進(jìn)行塊表更新驗(yàn)證時(shí),會(huì)檢查該鏈表。如果該更新對(duì)應(yīng)的尋址區(qū)映射文件,可信平臺(tái)將該鏈表中的id和偏移與文件本身的id和偏移進(jìn)行比對(duì)。如果不是應(yīng)用需要的文件或者偏移位置,可信平臺(tái)拒絕將文件映射到尋址區(qū)、并通知應(yīng)用。
本發(fā)明中,應(yīng)用的應(yīng)用數(shù)據(jù)以明文的形式進(jìn)入內(nèi)核,可信平臺(tái)通過(guò)在不可信內(nèi)核中構(gòu)建一條可信應(yīng)用數(shù)據(jù)流來(lái)傳輸應(yīng)用數(shù)據(jù),防止應(yīng)用數(shù)據(jù)被竊取或篡改。本發(fā)明基于可信平臺(tái)的訪問(wèn)控制模型中,應(yīng)用數(shù)據(jù)被安全用戶id即suid標(biāo)識(shí)。每個(gè)用戶都占有自身的suid,用戶在啟動(dòng)自身的應(yīng)用時(shí),將suid賦予應(yīng)用。可信平臺(tái)通過(guò)驗(yàn)證suid保證應(yīng)用數(shù)據(jù)只能被其所有者訪問(wèn)。suid可以標(biāo)記一個(gè)用戶組,用于用戶之間的文件共享;suid可以指定不同的讀寫(xiě)和執(zhí)行權(quán)限。
應(yīng)用數(shù)據(jù)從應(yīng)用尋址區(qū)的塊被拷貝到內(nèi)核的緩存塊,然后從緩存塊傳輸?shù)酱疟P(pán)塊??尚艖?yīng)用數(shù)據(jù)流保證,應(yīng)用數(shù)據(jù)在內(nèi)核中傳輸時(shí),應(yīng)用數(shù)據(jù)與內(nèi)核隔離,無(wú)法被內(nèi)核訪問(wèn)。首先,文件塊被映射為占有狀態(tài),其中的應(yīng)用數(shù)據(jù)無(wú)法被內(nèi)核訪問(wèn)。當(dāng)內(nèi)核需要將應(yīng)用數(shù)據(jù)從文件塊拷貝到緩存塊時(shí),只能向可信平臺(tái)發(fā)出請(qǐng)求,由可信平臺(tái)完成數(shù)據(jù)拷貝。可信平臺(tái)要求內(nèi)核只能提供隔離狀態(tài)的緩存塊,對(duì)于非隔離狀態(tài)的緩存塊,可信平臺(tái)將拒絕拷貝應(yīng)用數(shù)據(jù)。
可信平臺(tái)定義了兩種磁盤(pán)塊的狀態(tài)即空閑和占用,并使用一個(gè)數(shù)組(稱為磁盤(pán)塊數(shù)組)進(jìn)行狀態(tài)跟蹤。在磁盤(pán)塊數(shù)組中,內(nèi)存的一個(gè)位對(duì)應(yīng)一個(gè)磁盤(pán)塊的狀態(tài)??尚牌脚_(tái)對(duì)所有發(fā)送到磁盤(pán)的i/o命令進(jìn)行驗(yàn)證。如果該命令是將應(yīng)用數(shù)據(jù)寫(xiě)入磁盤(pán)塊,可信平臺(tái)確保被寫(xiě)入的磁盤(pán)塊只能是空閑狀態(tài)。在數(shù)據(jù)傳輸完成后,該磁盤(pán)塊變?yōu)檎加脿顟B(tài),suid和應(yīng)用數(shù)據(jù)一起存儲(chǔ)在磁盤(pán)塊上,用于標(biāo)識(shí)該磁盤(pán)塊的所有者。然后,可信平臺(tái)只允許具有相同suid的內(nèi)存塊與該占用磁盤(pán)塊進(jìn)行數(shù)據(jù)傳輸,因而磁盤(pán)塊上應(yīng)用數(shù)據(jù)隔離和訪問(wèn)控制得到保證。
當(dāng)讀取文件時(shí),可信平臺(tái)只允許占用磁盤(pán)塊上的應(yīng)用數(shù)據(jù)傳輸?shù)礁綦x狀態(tài)的緩存塊,同時(shí)該緩存塊被賦予占用磁盤(pán)塊的suid。此后,可信平臺(tái)只允許該緩存塊的數(shù)據(jù)拷貝到具有相同suid的文件塊,被其文件所有者訪問(wèn)。
可信平臺(tái)的用戶驗(yàn)證是基于驗(yàn)證用戶密碼來(lái)實(shí)現(xiàn)的??尚牌脚_(tái)進(jìn)一步使用公鑰/私鑰對(duì)保證不可信內(nèi)核無(wú)法竊取用戶密碼。本發(fā)明使用tpm中的存儲(chǔ)密鑰來(lái)加密和解密可信平臺(tái)的私鑰。當(dāng)用戶啟動(dòng)自身的應(yīng)用時(shí),將自身的用戶密碼放置在應(yīng)用的可執(zhí)行文件,并使用可信平臺(tái)的公鑰進(jìn)行加密。可信平臺(tái)從應(yīng)用可執(zhí)行文件中獲得用戶密碼,并使用自身的私鑰進(jìn)行解密。然后,可信平臺(tái)通過(guò)驗(yàn)證用戶密碼賦予該應(yīng)用相應(yīng)的suid,標(biāo)識(shí)應(yīng)用的身份。在整個(gè)身份驗(yàn)證過(guò)程中,本發(fā)明保證了可信鏈:tpm存儲(chǔ)密鑰→可信平臺(tái)私鑰→用戶密碼→suid。
綜上所述,本發(fā)明提出了一種系統(tǒng)數(shù)據(jù)安全增強(qiáng)方法,與不可信操作系統(tǒng)完全隔離,避免了頻繁低效的加密解密,并為應(yīng)用提供了全面的保護(hù)。
顯然,本領(lǐng)域的技術(shù)人員應(yīng)該理解,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算系統(tǒng)來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算系統(tǒng)上,或者分布在多個(gè)計(jì)算系統(tǒng)所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算系統(tǒng)可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)系統(tǒng)中由計(jì)算系統(tǒng)來(lái)執(zhí)行。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
應(yīng)當(dāng)理解的是,本發(fā)明的上述具體實(shí)施方式僅僅用于示例性說(shuō)明或解釋本發(fā)明的原理,而不構(gòu)成對(duì)本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。