專利名稱::一種建立計(jì)算機(jī)中可信任運(yùn)行環(huán)境的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及計(jì)算機(jī)安全
技術(shù)領(lǐng)域:
,特別是指一種建立計(jì)算機(jī)中可信任運(yùn)行環(huán)境的方法。
背景技術(shù):
:計(jì)算機(jī)操作系統(tǒng)由于自身的缺陷,在受到攻擊,特別是新的未知攻擊或病毒攻擊后,非常容易造成系統(tǒng)的崩潰,從而使整個(gè)系統(tǒng)無法繼續(xù)工作,即使能夠工作,也會出現(xiàn)這樣或那樣的問題。這樣,必將導(dǎo)致使用戶對計(jì)算機(jī)的運(yùn)行環(huán)境是否可信產(chǎn)生懷疑,而不敢在計(jì)算機(jī)上進(jìn)行機(jī)密的信息處理和交互,如電子支付,電子公文等操作,這對于社會的發(fā)展是沒有任何好處的。目前對上述問題的解決方式通常有以下幾種方法一應(yīng)用防病毒軟件解決上述問題。具體方法為由防病毒軟件采用特征匹配的方法對網(wǎng)絡(luò)病毒的攻擊進(jìn)行檢測,發(fā)現(xiàn)病毒后將中毒文件進(jìn)行隔離或?qū)χ卸疚募M(jìn)行殺毒操作,從而保證計(jì)算機(jī)的安全。該方法的缺陷是無法檢測未知病毒的攻擊。在新的病毒庫,規(guī)則庫和漏洞補(bǔ)丁發(fā)布前,計(jì)算機(jī)系統(tǒng)無法抵御攻擊行為。同時(shí),該防病毒軟件自身也容易受到攻擊。方法二應(yīng)用主機(jī)入侵檢測軟件解決上述問題。具體方法為由主機(jī)入侵檢測軟件利用供給特征規(guī)則庫對攻擊行為進(jìn)行檢測,并報(bào)警。該方法的缺陷與方法一的缺陷類似無法檢測未知的攻擊,在新的病毒庫,規(guī)則庫和漏洞補(bǔ)丁發(fā)布前,計(jì)算機(jī)系統(tǒng)將無法抵御攻擊行為。同時(shí),該主機(jī)入侵檢測軟件自身也容易受到攻擊。方法三利用雙網(wǎng)物理隔離,或雙網(wǎng)物理隔離計(jì)算機(jī),或雙模式操作系統(tǒng)切換的方法解決上述問題。具體方法為通過雙網(wǎng)或雙模式的切換來保證計(jì)算機(jī)運(yùn)行環(huán)境的安全。該方法的缺陷是增加了計(jì)算機(jī)本身的成本,同時(shí),用戶需要不斷地切換計(jì)算機(jī)模式,使用極不方便。方法四應(yīng)用進(jìn)程隔離技術(shù)解決上述問題。具體方法為為進(jìn)程設(shè)置身份鑒別標(biāo)識,并鑒別進(jìn)程的訪問者,同時(shí)使不同進(jìn)程之間實(shí)現(xiàn)隔離,監(jiān)視進(jìn)程池中的進(jìn)程的物理內(nèi)存使用情況,CPU利用情況,系統(tǒng)性能情況等,以防止進(jìn)程間的內(nèi)存溢出。該方法的缺陷是沒有對進(jìn)程本身是否已受到攻擊進(jìn)行檢測,仍然存在安全隱患。上述所有方法均是對各種攻擊的防護(hù)措施,并不能確保計(jì)算機(jī)中運(yùn)行環(huán)境的安全與可信。
發(fā)明內(nèi)容有鑒于此,本發(fā)明的目的在于提供一種建立計(jì)算機(jī)中可信任運(yùn)行環(huán)境的方法,從根本上保證計(jì)算機(jī)中運(yùn)行環(huán)境的安全與可信,且方便用戶應(yīng)用。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)一種建立計(jì)算機(jī)中可信任運(yùn)行環(huán)境的方法,預(yù)先在操作系統(tǒng)內(nèi)設(shè)置可信文件驗(yàn)證模塊、可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊,加載并運(yùn)行安全的操作系統(tǒng),該方法還包括以下步驟可信文件驗(yàn)證模塊截獲所有文件操作行為,檢查當(dāng)前待操作文件是否為可信任文件,如果是,則根據(jù)該文件操作類型進(jìn)行處理,如果是不可信任文件,則對該文件驗(yàn)證合格后,再對文件進(jìn)行操作處理;可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊定時(shí)驗(yàn)證所有進(jìn)程代碼的運(yùn)行狀態(tài)和完整性是否正常,如果不正常,則發(fā)出警告,保存該進(jìn)程運(yùn)行的現(xiàn)場數(shù)據(jù)后,關(guān)閉此進(jìn)程,否則繼續(xù)正常運(yùn)行。較佳地,所述加載并運(yùn)行安全的操作系統(tǒng)的過程包括預(yù)先設(shè)置基本文件管理系統(tǒng),包含用戶預(yù)先指定的操作系統(tǒng)核心文件,涉及啟動的文件,及用戶需要保護(hù)的應(yīng)用軟件的文件名的可信文件列表,同時(shí),在安全存儲部件內(nèi)設(shè)置所有需要確保安全的數(shù)據(jù)及其完整性值,在計(jì)算機(jī)的底層固件中設(shè)置可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊,具體加載并運(yùn)行操作系統(tǒng)的過程包括以下步驟a、對計(jì)算機(jī)內(nèi)的底層固件驗(yàn)證成功并啟動后,由底層固件驗(yàn)證基本文件管理系統(tǒng)的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果一致,則底層固件啟動該基本文件管理系統(tǒng),然后執(zhí)行步驟b,否則停止系統(tǒng)啟動;b、基本文件管理系統(tǒng)啟動可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊,由該可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊從磁盤扇區(qū)中讀取磁盤參數(shù),驗(yàn)證該磁盤參數(shù)的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則執(zhí)行步驟c,否則,可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊從安全存儲部件中取出預(yù)先存儲的磁盤數(shù)據(jù),將其寫到當(dāng)前的磁盤扇區(qū)中后,執(zhí)行步驟c;c、可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊驗(yàn)證可信文件列表的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則執(zhí)行步驟d,否則,從安全存儲部件中取出預(yù)先存儲的可信文件列表,覆蓋當(dāng)前的可信文件列表,然后執(zhí)行步驟d;d、可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊讀取可信文件列表中的操作系統(tǒng)內(nèi)核文件,驗(yàn)證該操作系統(tǒng)內(nèi)核文件的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則裝載并運(yùn)行操作系統(tǒng),否則,從安全存儲部件中取出預(yù)先存儲的操作系統(tǒng)內(nèi)核文件覆蓋當(dāng)前的操作系統(tǒng)內(nèi)核文件后,裝載并運(yùn)行操作系統(tǒng)。較佳地,所述基本文件管理系統(tǒng)位于安全存儲部件中,或底層固件中,或操作系統(tǒng)中;所述可信文件列表位于安全存儲部件中,或操作系統(tǒng)中。較佳地,所述安全存儲部件內(nèi)所有需要確保安全的數(shù)據(jù)是根據(jù)系統(tǒng)運(yùn)行的需要以及用戶的需要確定的;所述所有需要確保安全的數(shù)據(jù)包括但不限于底層固件,操作系統(tǒng),各種應(yīng)用軟件和文件的數(shù)據(jù)以及磁盤參數(shù)。較佳地,所述磁盤參數(shù)包括但不限于主引導(dǎo)扇區(qū)參數(shù)、分區(qū)引導(dǎo)扇區(qū)參數(shù)以及文件分配表參數(shù)。較佳地,所述可信文件驗(yàn)證模塊檢查當(dāng)前待操作文件是否為可信任文件的方法為檢查當(dāng)前待操作文件是否為可信文件列表中的文件,如果是,則當(dāng)前待操作文件為可信任文件,否則當(dāng)前待操作文件為不可信任文件。較佳地,對于可信任文件,根據(jù)當(dāng)前文件操作類型進(jìn)行處理的過程為檢查當(dāng)前文件操作行為的類型是讀操作還是修改操作,如果是讀操作,則驗(yàn)證該當(dāng)前待操作文件的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則加載該當(dāng)前待操作文件到內(nèi)存中,允許訪問者執(zhí)行讀操作,否則,從安全存儲部件中取出預(yù)先存儲的該可信任文件,覆蓋當(dāng)前文件后,再加載該當(dāng)前待操作文件到內(nèi)存中,允許訪問者執(zhí)行讀操作;如果是修改操作,則檢查計(jì)算機(jī)當(dāng)前處于安全狀態(tài)后,允許訪問者修改可信文件列表,之后,重新計(jì)算可信文件列表和所修改文件的完整性值,并將該新的可信文件列表的完整性值和修改后該文件的完整性值存儲在安全存儲部件中。較佳地,所述修改操作包括但不限于寫操作、和/或?qū)傩孕薷牟僮鳎?或刪除操作,和/或創(chuàng)建新文件操作;所述安全狀態(tài)為計(jì)算機(jī)當(dāng)前與網(wǎng)絡(luò)沒有物理連接,且可信文件列表當(dāng)前處于修改操作有效的狀態(tài)。較佳地,進(jìn)一步包括,設(shè)置一使修改操作有效的物理開關(guān),根據(jù)該物理開關(guān)的開或關(guān)的狀態(tài),確定可信文件列表當(dāng)前是否處于修改操作有效的狀態(tài)。較佳地,對于不可信任文件,對該文件驗(yàn)證合格后,再對文件進(jìn)行操作處理的過程為對不可信任文件進(jìn)行病毒檢測完畢后,將該不可信任文件所對應(yīng)的進(jìn)程加載到虛擬機(jī)中,由虛擬機(jī)監(jiān)視該進(jìn)程的行為,如果發(fā)現(xiàn)該進(jìn)程存在非法行為,則報(bào)警,并關(guān)閉該進(jìn)程,否則,允許對該文件進(jìn)行操作處理。較佳地,所述非法行為至少包括對操作系統(tǒng)文件的非法修改操作、和/或?qū)Υ疟P的非法修改操作、和/或內(nèi)存訪問非法越界、和/或執(zhí)行非法跳轉(zhuǎn)操作。較佳地,所述可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊定時(shí)驗(yàn)證所有進(jìn)程代碼的運(yùn)行狀態(tài)是否正常的過程為檢查進(jìn)程程序指針是否超越進(jìn)程規(guī)定的物理內(nèi)存地址,和/或進(jìn)程代碼是否跨越規(guī)定的物理內(nèi)存地址;所述可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊定時(shí)驗(yàn)證所有進(jìn)程代碼的完整性是否正常的方法為在文件首次加載到內(nèi)存時(shí),計(jì)算該文件所對應(yīng)進(jìn)程的進(jìn)程代碼在內(nèi)存中的完整性值,并將該完整性值存儲在安全存儲部件中;可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊定時(shí)驗(yàn)證當(dāng)前所有進(jìn)程代碼的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則進(jìn)程代碼正常,否則不正常。較佳地,所述可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊驗(yàn)證出進(jìn)程代碼的運(yùn)行狀態(tài)和/或完整性不正常后,該方法進(jìn)一步包括由可信文件驗(yàn)證模塊重新對不正常的進(jìn)程所對應(yīng)的文件進(jìn)行驗(yàn)證后,再次加載該文件到內(nèi)存中,并計(jì)算該文件所對應(yīng)進(jìn)程在內(nèi)存中的完整性值,將計(jì)算出的完整性值存儲到安全存儲部件中,之后,根據(jù)上次保存的進(jìn)程運(yùn)行的現(xiàn)場數(shù)據(jù),使該進(jìn)程恢復(fù)到上次運(yùn)行的狀態(tài)。較佳地,所述文件操作行為包括但不限于讀寫文件操作,修改文件屬性操作,刪除文件操作,和創(chuàng)建文件操作。較佳地,所述安全存儲部件為以上所述安全存儲部件可以是具有強(qiáng)制訪問控制授權(quán)的硬盤存儲部件,也可以是具有強(qiáng)制訪問授權(quán)控制的芯片存儲部件,還可以是具有訪問控制機(jī)制的內(nèi)存部件。較佳地,所述安全存儲部件為安全芯片,或具有安全保護(hù)功能的硬盤,或具有訪問控制功能的flash存儲器。本發(fā)明預(yù)先在操作系統(tǒng)內(nèi)設(shè)置可信文件驗(yàn)證模塊、可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊,加載并運(yùn)行安全的操作系統(tǒng),由可信文件驗(yàn)證模塊截獲所有文件操作行為,如果是對可信任文件的操作行為,則根據(jù)該文件操作類型進(jìn)行處理,如果是對不可信任文件的操作行為,則對該文件驗(yàn)證合格后,再對文件進(jìn)行操作處理;可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊定時(shí)驗(yàn)證所有進(jìn)程代碼的運(yùn)行狀態(tài)和完整性是否正常,如果不正常,則發(fā)出警告,保存該進(jìn)程運(yùn)行的現(xiàn)場數(shù)據(jù)后,關(guān)閉此進(jìn)程,否則繼續(xù)正常運(yùn)行。應(yīng)用本發(fā)明,基于可信計(jì)算機(jī)硬件平臺,從操作系統(tǒng)啟動開始,對操作系統(tǒng)內(nèi)核、應(yīng)用文件及進(jìn)程本身是否受到攻擊進(jìn)行檢測與恢復(fù),而不是通過病毒庫、規(guī)則庫等信息檢測是否存在病毒,這樣,無論是否存在已知或未知病毒的攻擊,都能夠確保計(jì)算機(jī)中運(yùn)行環(huán)境的安全與可信,從而為用戶提供了可信任的運(yùn)行環(huán)境,而用戶只需確定需要確保安全的文件及數(shù)據(jù)即可,方便了應(yīng)用,且實(shí)現(xiàn)成本低。圖1所示為應(yīng)用本發(fā)明一實(shí)施例的加載并運(yùn)行操作系統(tǒng)的流程示意圖;圖2所示為可信文件驗(yàn)證模塊對當(dāng)前待操作文件進(jìn)行驗(yàn)證的流程示意圖;圖3所示為可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊驗(yàn)證對進(jìn)程代碼進(jìn)行驗(yàn)證的流程示意圖;圖4所示為由物理開關(guān)控制修改操作有效的示意圖。具體實(shí)施例方式下面結(jié)合附圖對本發(fā)明進(jìn)行詳細(xì)說明。本發(fā)明的思路是基于可信的計(jì)算機(jī)硬件平臺,通過對操作系統(tǒng)、應(yīng)用軟件和進(jìn)程的全面驗(yàn)證,建立信任鏈,為用戶提供已證明的可信任的運(yùn)行環(huán)境。圖1所示為應(yīng)用本發(fā)明一實(shí)施例的加載并運(yùn)行操作系統(tǒng)的流程示意圖。在本實(shí)施例中,預(yù)先在計(jì)算機(jī)內(nèi)的底層固件中設(shè)置具備磁盤管理功能和文件管理功能的基本文件管理系統(tǒng),以及可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊,該模塊用于驗(yàn)證操作系統(tǒng)中涉及啟動的核心文件。在計(jì)算機(jī)的安全存儲部件內(nèi)設(shè)置根據(jù)系統(tǒng)運(yùn)行的需要以及用戶的需要確定的所有需要確保安全的數(shù)據(jù)及其完整性值,該需要確保安全的數(shù)據(jù)包括底層固件,如BIOS,操作系統(tǒng),各種應(yīng)用軟件和文件等數(shù)據(jù),以及磁盤參數(shù)。設(shè)置可信文件列表,該可信文件列表內(nèi)包含用戶預(yù)先指定的操作系統(tǒng)核心文件,涉及啟動的文件,及用戶需要保護(hù)的應(yīng)用軟件的文件名。具體加載并運(yùn)行操作系統(tǒng)的過程包括以下步驟步驟101,對計(jì)算機(jī)內(nèi)的底層固件驗(yàn)證成功并啟動后,由底層固件驗(yàn)證基本文件管理系統(tǒng)的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果一致,則執(zhí)行步驟102,否則,停止系統(tǒng)啟動。步驟102~步驟103,底層固件啟動該基本文件管理系統(tǒng),由基本文件管理系統(tǒng)啟動可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊。步驟104,由該可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊從磁盤扇區(qū)中讀取磁盤參數(shù),驗(yàn)證該磁盤參數(shù)的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則執(zhí)行步驟106,否則,執(zhí)行步驟105。上述磁盤參數(shù)包括但不限于主引導(dǎo)扇區(qū)參數(shù)、分區(qū)引導(dǎo)扇區(qū)參數(shù)以及文件分配表(FATfileallocationtable)參數(shù)。步驟105,可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊從安全存儲部件中取出預(yù)先存儲的磁盤數(shù)據(jù),將其覆蓋當(dāng)前的磁盤扇區(qū)的參數(shù)后,執(zhí)行步驟106。步驟106,可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊驗(yàn)證可信文件列表的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則執(zhí)行步驟108,否則,執(zhí)行步驟107。步驟107,可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊從安全存儲部件中取出預(yù)先存儲的可信文件列表,覆蓋當(dāng)前的可信文件列表,然后執(zhí)行步驟108。步驟108,可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊讀取可信文件列表中的操作系統(tǒng)內(nèi)核文件,驗(yàn)證該操作系統(tǒng)內(nèi)核文件的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則執(zhí)行步驟110,否則,執(zhí)行步驟109。步驟109,可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊從安全存儲部件中取出預(yù)先存儲的操作系統(tǒng)內(nèi)核文件覆蓋當(dāng)前的操作系統(tǒng)內(nèi)核文件后,執(zhí)行步驟110。步驟110,裝載并運(yùn)行操作系統(tǒng)。至此,可確保已運(yùn)行的操作系統(tǒng)是安全的。在上述實(shí)施例中基本文件管理系統(tǒng)設(shè)置在底層固件中,這樣可以提高計(jì)算機(jī)啟動引導(dǎo)的速度。當(dāng)然,基本文件管理系統(tǒng)也可以設(shè)置在安全存儲部件中,或操作系統(tǒng)中??尚盼募斜砜梢栽O(shè)置在安全存儲部件中,也可以設(shè)置在操作系統(tǒng)中。在操作系統(tǒng)正常運(yùn)行后,啟動可信文件驗(yàn)證模塊對當(dāng)前待操作文件進(jìn)行驗(yàn)證,啟動可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊對所有進(jìn)程代碼的運(yùn)行狀態(tài)和完整性進(jìn)行驗(yàn)證,以確保計(jì)算機(jī)運(yùn)行環(huán)境的安全。下面分別說明可信文件驗(yàn)證模塊和可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊的驗(yàn)證方法。圖2所示為可信文件驗(yàn)證模塊對當(dāng)前待操作文件進(jìn)行驗(yàn)證的流程示意圖。步驟201,可信文件驗(yàn)證模塊截獲所有文件操作行為,該文件操作行為包括讀寫文件,修改文件屬性,刪除文件,創(chuàng)建文件等。步驟202,檢查當(dāng)前要操作的文件是否為可信文件列表中的文件,是則執(zhí)行步驟203,否則,執(zhí)行步驟208。步驟203,檢查所截獲文件操作行為的操作類型,如果是讀操作,則執(zhí)行步驟204,如果是修改操作,則執(zhí)行步驟207。步驟204,驗(yàn)證該當(dāng)前待操作文件的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則執(zhí)行步驟206,否則執(zhí)行步驟205。步驟205,從安全存儲部件中取出預(yù)先存儲的該可信任文件,覆蓋當(dāng)前文件。步驟206,加載該當(dāng)前待操作文件到內(nèi)存中,允許訪問者執(zhí)行讀操作,結(jié)束本流程。步驟207,檢查計(jì)算機(jī)當(dāng)前處于安全狀態(tài)后,允許訪問者修改可信文件列表,之后,重新計(jì)算可信文件列表和修改后文件的完整性值,并將該新的可信文件列表的完整性值和修改后該文件的完整性值存儲在安全存儲部件中,結(jié)束本流程。上述修改操作包括但不限于寫操作、和/或?qū)傩孕薷牟僮鳎?或刪除操作,和/或創(chuàng)建新文件;檢查計(jì)算機(jī)當(dāng)前處于安全狀態(tài)的過程為檢測計(jì)算機(jī)當(dāng)前是否與網(wǎng)絡(luò)沒有物理連接,且可信文件列表當(dāng)前處于修改操作有效的狀態(tài)。所謂修改操作有效的狀態(tài)即使計(jì)算機(jī)上的安全物理開關(guān)處于有效狀態(tài)。參見圖4,圖4所示為由物理開關(guān)控制修改操作有效的示意圖。設(shè)置一使修改操作有效的物理開關(guān),該物理開關(guān)一端接地,另一端聯(lián)結(jié)在計(jì)算機(jī)主板的I/O控制模塊上,該I/O控制模塊可以在芯片組中實(shí)現(xiàn),也可以在CPU中實(shí)現(xiàn)。物理開關(guān)與I/O控制模塊之間的接口可以是GPIO,串口,并口或USB口,但并不限于此。在檢查可信文件列表當(dāng)前是否處于修改操作有效的狀態(tài)時(shí),從物理開關(guān)所在的I/O地址讀取該物理開關(guān)的“開”或“關(guān)”的狀態(tài),如果該物理開關(guān)處于“關(guān)”的狀態(tài),則可信文件列表當(dāng)前處于修改操作有效的狀態(tài),如果該物理開關(guān)處于“開”的狀態(tài),則可信文件列表當(dāng)前處于修改操作無效的狀態(tài)。步驟208,對不可信任文件進(jìn)行病毒檢測完畢后,將該不可信任文件所對應(yīng)的進(jìn)程加載到虛擬機(jī)中,由虛擬機(jī)監(jiān)視該進(jìn)程的行為,如果發(fā)現(xiàn)該進(jìn)程存在非法行為,則報(bào)警,并關(guān)閉該進(jìn)程,否則,允許訪問者對該文件進(jìn)行操作。上述虛擬機(jī)是運(yùn)行在本計(jì)算機(jī)上的一個(gè)軟件,該虛擬機(jī)軟件模擬正常計(jì)算機(jī)的對該進(jìn)程的行為進(jìn)行監(jiān)視。上述非法行為至少包括對操作系統(tǒng)文件進(jìn)行非法修改操作、和/或?qū)Υ疟P參數(shù)進(jìn)行非法修改操作、和/或內(nèi)存訪問非法越界、和/或執(zhí)行非法跳轉(zhuǎn)操作。圖3所示為可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊驗(yàn)證對進(jìn)程代碼進(jìn)行驗(yàn)證的流程示意圖。步驟301,文件經(jīng)驗(yàn)證確認(rèn)為可信任文件后,在可信任文件首次加載到內(nèi)存時(shí),計(jì)算該文件所對應(yīng)進(jìn)程的進(jìn)程代碼在內(nèi)存中的完整性值,并將該完整性值存儲在安全存儲部件中。步驟302,可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊定時(shí)檢查在內(nèi)存中所有進(jìn)程的運(yùn)行狀態(tài)和進(jìn)程代碼的完整性是否正常,如果不正常,則執(zhí)行步驟303,否則,繼續(xù)正常執(zhí)行,并定時(shí)重復(fù)執(zhí)行步驟302。上述驗(yàn)證所有進(jìn)程代碼的運(yùn)行狀態(tài)是否正常的過程為檢查進(jìn)程程序指針是否超越進(jìn)程規(guī)定的物理內(nèi)存地址,和/或進(jìn)程代碼是否跨越規(guī)定的物理內(nèi)存地址;上述驗(yàn)證所有進(jìn)程代碼的完整性是否正常的方法為驗(yàn)證當(dāng)前所有進(jìn)程代碼的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則進(jìn)程代碼正常,否則不正常。其中,檢查進(jìn)程程序指針是否超越進(jìn)程規(guī)定的物理內(nèi)存地址,和/或進(jìn)程代碼是否跨越規(guī)定的物理內(nèi)存地址的操作,可以由軟件模塊實(shí)現(xiàn),也可以由CPU和芯片組實(shí)現(xiàn)。步驟303,發(fā)出警告,保存進(jìn)程運(yùn)行的現(xiàn)場數(shù)據(jù),關(guān)閉此進(jìn)程。之后,可以將該進(jìn)程所對應(yīng)的文件再次經(jīng)可信文件驗(yàn)證模塊驗(yàn)證后,重新裝載該文件到內(nèi)存中,并重新計(jì)算該文件的進(jìn)程代碼在內(nèi)存中的完整性值,然后存儲該新的完整性值到安全存儲部件中,同時(shí),根據(jù)上次保存的進(jìn)程運(yùn)行的現(xiàn)場數(shù)據(jù),使進(jìn)程恢復(fù)到步上次運(yùn)行的狀態(tài)。以上所述安全存儲部件可以是具有強(qiáng)制訪問控制授權(quán)的硬盤存儲部件,也可以是具有強(qiáng)制訪問授權(quán)控制的芯片存儲部件,還可以是具有訪問控制機(jī)制的內(nèi)存部件。上述硬盤存儲部件的保護(hù)通過硬盤控制邏輯電路完成,與硬盤邏輯分區(qū)以及操作系統(tǒng)分區(qū)無關(guān)。其中,所謂強(qiáng)制訪問控制授權(quán)是指安全存儲部件能夠基于口令字對訪問者鑒別成功后,允許訪問者訪問自身;或者,安全存儲部件與訪問者利用預(yù)先共享的一對秘密信息,利用基于hash函數(shù)和隨機(jī)數(shù)參與運(yùn)算的認(rèn)證協(xié)議,完成對訪問者的身份認(rèn)證,且認(rèn)證成功后允許訪問者訪問自身。具體的以上所述安全存儲部件可以是安全芯片(TPM,TrustedPlatformModule),也可以是具有安全保護(hù)功能的硬盤,如具有HPA(HostProtectedArea)的硬盤,還可以是具有訪問控制功能的flash存儲器。具體有關(guān)安全芯片的描述已在本申請人提出的發(fā)明名稱為“一種安全芯片及基于該芯片的信息安全處理設(shè)備和方法”,申請?zhí)枮椤?3138380.7”的中國專利中公開,在此不再詳細(xì)描述,同時(shí)在該申請中也已經(jīng)說明了對計(jì)算機(jī)內(nèi)底層固件驗(yàn)證的方法,因此,在步驟101中,也不再詳細(xì)說明驗(yàn)證底層固件的方法。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1.一種建立計(jì)算機(jī)中可信任運(yùn)行環(huán)境的方法,其特征在于,預(yù)先在操作系統(tǒng)內(nèi)設(shè)置可信文件驗(yàn)證模塊、可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊,加載并運(yùn)行安全的操作系統(tǒng),該方法還包括以下步驟可信文件驗(yàn)證模塊截獲所有文件操作行為,檢查當(dāng)前待操作文件是否為可信任文件,如果是,則根據(jù)該文件操作類型進(jìn)行處理,如果是不可信任文件,則對該文件驗(yàn)證合格后,再對文件進(jìn)行操作處理;可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊定時(shí)驗(yàn)證所有進(jìn)程代碼的運(yùn)行狀態(tài)和完整性是否正常,如果不正常,則發(fā)出警告,保存該進(jìn)程運(yùn)行的現(xiàn)場數(shù)據(jù)后,關(guān)閉此進(jìn)程,否則繼續(xù)正常運(yùn)行。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述加載并運(yùn)行安全的操作系統(tǒng)的過程包括預(yù)先設(shè)置基本文件管理系統(tǒng),包含用戶預(yù)先指定的操作系統(tǒng)核心文件,涉及啟動的文件,及用戶需要保護(hù)的應(yīng)用軟件的文件名的可信文件列表,同時(shí),在安全存儲部件內(nèi)設(shè)置所有需要確保安全的數(shù)據(jù)及其完整性值,在計(jì)算機(jī)的底層固件中設(shè)置可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊,具體加載并運(yùn)行操作系統(tǒng)的過程包括以下步驟a、對計(jì)算機(jī)內(nèi)的底層固件驗(yàn)證成功并啟動后,由底層固件驗(yàn)證基本文件管理系統(tǒng)的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果一致,則底層固件啟動該基本文件管理系統(tǒng),然后執(zhí)行步驟b,否則停止系統(tǒng)啟動;b、基本文件管理系統(tǒng)啟動可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊,由該可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊從磁盤扇區(qū)中讀取磁盤參數(shù),驗(yàn)證該磁盤參數(shù)的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則執(zhí)行步驟c,否則,可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊從安全存儲部件中取出預(yù)先存儲的磁盤數(shù)據(jù),將其寫到當(dāng)前的磁盤扇區(qū)中后,執(zhí)行步驟c;c、可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊驗(yàn)證可信文件列表的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則執(zhí)行步驟d,否則,從安全存儲部件中取出預(yù)先存儲的可信文件列表,覆蓋當(dāng)前的可信文件列表,然后執(zhí)行步驟d;d、可信操作系統(tǒng)基礎(chǔ)軟件完整性驗(yàn)證恢復(fù)模塊讀取可信文件列表中的操作系統(tǒng)內(nèi)核文件,驗(yàn)證該操作系統(tǒng)內(nèi)核文件的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則裝載并運(yùn)行操作系統(tǒng),否則,從安全存儲部件中取出預(yù)先存儲的操作系統(tǒng)內(nèi)核文件覆蓋當(dāng)前的操作系統(tǒng)內(nèi)核文件后,裝載并運(yùn)行操作系統(tǒng)。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述基本文件管理系統(tǒng)位于安全存儲部件中,或底層固件中,或操作系統(tǒng)中;所述可信文件列表位于安全存儲部件中,或操作系統(tǒng)中。4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述安全存儲部件內(nèi)所有需要確保安全的數(shù)據(jù)是根據(jù)系統(tǒng)運(yùn)行的需要以及用戶的需要確定的;所述所有需要確保安全的數(shù)據(jù)包括但不限于底層固件,操作系統(tǒng),各種應(yīng)用軟件和文件的數(shù)據(jù)以及磁盤參數(shù)。5.根據(jù)權(quán)利要求2或4所述的方法,其特征在于,所述磁盤參數(shù)包括但不限于主引導(dǎo)扇區(qū)參數(shù)、分區(qū)引導(dǎo)扇區(qū)參數(shù)以及文件分配表參數(shù)。6.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述可信文件驗(yàn)證模塊檢查當(dāng)前待操作文件是否為可信任文件的方法為檢查當(dāng)前待操作文件是否為可信文件列表中的文件,如果是,則當(dāng)前待操作文件為可信任文件,否則當(dāng)前待操作文件為不可信任文件。7.根據(jù)權(quán)利要求6所述的方法,其特征在于,對于可信任文件,根據(jù)當(dāng)前文件操作類型進(jìn)行處理的過程為檢查當(dāng)前文件操作行為的類型是讀操作還是修改操作,如果是讀操作,則驗(yàn)證該當(dāng)前待操作文件的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則加載該當(dāng)前待操作文件到內(nèi)存中,允許訪問者執(zhí)行讀操作,否則,從安全存儲部件中取出預(yù)先存儲的該可信任文件,覆蓋當(dāng)前文件后,再加載該當(dāng)前待操作文件到內(nèi)存中,允許訪問者執(zhí)行讀操作;如果是修改操作,則檢查計(jì)算機(jī)當(dāng)前處于安全狀態(tài)后,允許訪問者修改可信文件列表,之后,重新計(jì)算可信文件列表和所修改文件的完整性值,并將該新的可信文件列表的完整性值和修改后該文件的完整性值存儲在安全存儲部件中。8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述修改操作包括但不限于寫操作、和/或?qū)傩孕薷牟僮?,?或刪除操作,和/或創(chuàng)建新文件操作;所述安全狀態(tài)為計(jì)算機(jī)當(dāng)前與網(wǎng)絡(luò)沒有物理連接,且可信文件列表當(dāng)前處于修改操作有效的狀態(tài)。9.根據(jù)權(quán)利要求8所述的方法,其特征在于,進(jìn)一步包括設(shè)置一使修改操作有效的物理開關(guān),根據(jù)該物理開關(guān)的開或關(guān)的狀態(tài),確定可信文件列表當(dāng)前是否處于修改操作有效的狀態(tài)。10.根據(jù)權(quán)利要求6所述的方法,其特征在于,對于不可信任文件,對該文件驗(yàn)證合格后,再對文件進(jìn)行操作處理的過程為對不可信任文件進(jìn)行病毒檢測完畢后,將該不可信任文件所對應(yīng)的進(jìn)程加載到虛擬機(jī)中,由虛擬機(jī)監(jiān)視該進(jìn)程的行為,如果發(fā)現(xiàn)該進(jìn)程存在非法行為,則報(bào)警,并關(guān)閉該進(jìn)程,否則,允許對該文件進(jìn)行操作處理。11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述非法行為至少包括對操作系統(tǒng)文件的非法修改操作、和/或?qū)Υ疟P的非法修改操作、和/或內(nèi)存訪問非法越界、和/或執(zhí)行非法跳轉(zhuǎn)操作。12.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊定時(shí)驗(yàn)證所有進(jìn)程代碼的運(yùn)行狀態(tài)是否正常的過程為檢查進(jìn)程程序指針是否超越進(jìn)程規(guī)定的物理內(nèi)存地址,和/或進(jìn)程代碼是否跨越規(guī)定的物理內(nèi)存地址;所述可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊定時(shí)驗(yàn)證所有進(jìn)程代碼的完整性是否正常的方法為在文件首次加載到內(nèi)存時(shí),計(jì)算該文件所對應(yīng)進(jìn)程的進(jìn)程代碼在內(nèi)存中的完整性值,并將該完整性值存儲在安全存儲部件中;可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊定時(shí)驗(yàn)證當(dāng)前所有進(jìn)程代碼的完整性值與預(yù)先存儲在安全存儲部件中的完整性值是否一致,如果是,則進(jìn)程代碼正常,否則不正常。13.根據(jù)權(quán)利要求12所述的方法,其特征在于,所述可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊驗(yàn)證出進(jìn)程代碼的運(yùn)行狀態(tài)和/或完整性不正常后,該方法進(jìn)一步包括由可信文件驗(yàn)證模塊重新對不正常的進(jìn)程所對應(yīng)的文件進(jìn)行驗(yàn)證后,再次加載該文件到內(nèi)存中,并計(jì)算該文件所對應(yīng)進(jìn)程在內(nèi)存中的完整性值,將計(jì)算出的完整性值存儲到安全存儲部件中,之后,根據(jù)上次保存的進(jìn)程運(yùn)行的現(xiàn)場數(shù)據(jù),使該進(jìn)程恢復(fù)到上次運(yùn)行的狀態(tài)。14.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述文件操作行為包括但不限于讀寫文件操作,修改文件屬性操作,刪除文件操作,和創(chuàng)建文件操作。15.根據(jù)權(quán)利要求2、3、4、7、12所述的方法,其特征在于,所述安全存儲部件為以上所述安全存儲部件可以是具有強(qiáng)制訪問控制授權(quán)的硬盤存儲部件,也可以是具有強(qiáng)制訪問授權(quán)控制的芯片存儲部件,還可以是具有訪問控制機(jī)制的內(nèi)存部件。16.根據(jù)權(quán)利要求2、3、4、7、12所述的方法,其特征在于,所述安全存儲部件為安全芯片,或具有安全保護(hù)功能的硬盤,或具有訪問控制功能的flash存儲器。全文摘要本發(fā)明公開了一種建立計(jì)算機(jī)中可信任運(yùn)行環(huán)境的方法,關(guān)鍵是在操作系統(tǒng)內(nèi)設(shè)置可信文件驗(yàn)證模塊、可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊,加載并運(yùn)行安全的操作系統(tǒng)??尚盼募?yàn)證模塊截獲所有文件操作行為,如是對可信任文件的操作行為,則根據(jù)該文件操作類型進(jìn)行處理,如是對不可信文件的操作行為,則對該文件驗(yàn)證合格后再對文件進(jìn)行操作;可信進(jìn)程內(nèi)存代碼驗(yàn)證模塊定時(shí)驗(yàn)證所有進(jìn)程代碼的運(yùn)行狀態(tài)和完整性是否正常,如不正常則發(fā)警告,保存該進(jìn)程運(yùn)行的現(xiàn)場數(shù)據(jù)后,關(guān)閉此進(jìn)程并修復(fù),否則正常運(yùn)行。應(yīng)用本發(fā)明,對文件及進(jìn)程本身是否受到攻擊進(jìn)行檢測,這樣無論是否存在已知或未知病毒的攻擊,都能確保計(jì)算機(jī)運(yùn)行環(huán)境的安全,且方便用戶應(yīng)用,實(shí)現(xiàn)成本低。文檔編號G06F1/00GK1702590SQ20041009557公開日2005年11月30日申請日期2004年12月2日優(yōu)先權(quán)日2004年12月2日發(fā)明者韋衛(wèi),彭朝然,尹萍,劉永華申請人:聯(lián)想(北京)有限公司