專利名稱:基于安全芯片的防病毒方法
技術領域:
本發明涉及一種基于安全芯片的防病毒方法,通過以安全芯片為信任根,對BIOS代碼文件、MBR代碼文件、可信文件等計算機關鍵文件進行安全備份和智能修復,并且在操作系統運行時執行文件監控功能,構建了完整的信任鏈,從而可以實現操作系統的安全啟動,防止惡意程序的運行,達到防御已知和未知病毒的目的。
背景技術:
目前存在多種能實現類似目的的解決方案。例如,在現有技術公知的普通防病毒方法中,使用病毒掃描引擎,對內存和磁盤文件進行掃描和監控,根據病毒特征庫進行比較,發現病毒則報警和清除。然而,此種方法的缺點是只能發現已知病毒,而且由于運行在操作系統啟動以后,不能對操作系統啟動前和啟動時的過程進行監控。
還存在一種操作系統修復方法,在該方法中,使用硬盤的HPA備份操作系統的核心文件,當核心文件與備份文件校驗不一致時提示用戶進行修復或備份。該方法的缺點是沒有采用TPM安全芯片,安全性不夠高。因為硬盤HPA是存在較大可能性被攻擊者進行修改操作的,備份文件很可能被篡改而不被發現。
因此,需要一種基于安全芯片的防病毒方法,能夠在操作系統啟動前和啟動時,防止惡意程序的運行,從而實現防御已知和未知病毒的目的。
發明內容為了克服現有技術中存在的缺陷提出了本發明,本發明的目的是提出一種基于安全芯片的防病毒方法,通過以安全芯片為信任根,對BIOS代碼文件、MBR代碼文件、可信文件等計算機關鍵文進行安全備份和智能修復,并且在操作系統運行時執行文件監控功能,構建了完整的信任鏈,從而可以實現操作系統的安全啟動,防止惡意程序的運行,達到防御已知和未知病毒的目的。
為了實現上述目的,根據本發明,提出了一種基于安全芯片的防病毒方法,所述方法包括以下步驟在安全芯片的存儲器中存儲將計算機關鍵文件和系統控制程序進行散列運算所獲得的哈希值,并且在備份存儲區中存儲計算機關鍵文件的備份文件;在機器加電時,利用安全芯片的存儲器中所存儲的系統控制程序的哈希值來校驗系統控制程序的完整性;如果系統控制程序是完整的,則由所述系統控制程序執行控制,所述系統控制程序利用安全芯片的存儲器中所存儲的計算機關鍵文件的哈希值,校驗計算機關鍵文件的完整性;如果計算機關鍵文件均是完整的,則啟動操作系統;以及相反,如果計算機關鍵文件的任一個不完整,則利用備份存儲區中存儲的計算機關鍵文件的備份文件來恢復其。
優選地,所述計算機關鍵文件包括BIOS代碼文件、MBR部分的代碼文件、可信文件。
優選地,所述系統控制程序利用安全芯片的存儲器中所存儲的計算機關鍵文件的哈希值、校驗計算機關鍵文件的完整性的步驟包括所述系統控制程序分別利用安全芯片的存儲器中所存儲的BIOS代碼文件、MBR部分的代碼文件、可信文件的哈希值,依次校驗BIOS代碼文件、MBR部分的代碼文件、可信文件的完整性。
優選地,所述備份存儲區為硬盤保護區。
優選地,所述方法還包括步驟在操作系統啟動之后,由系統控制程序利用安全芯片的存儲器中所存儲的可信文件的哈希值,實時校驗可信文件的完整性;如果可信文件完整且待運行文件存在可信列表中時,允許所述待運行文件運行;相反,則禁止所述待運行文件運行。
優選地,所述利用安全芯片的存儲器中所存儲的系統控制程序的哈希值來校驗系統控制程序的完整性的步驟包括對當前系統控制程序執行與所述散列運算相同的散列運算以獲得當前系統控制程序的哈希值;將所述哈希值與安全芯片的存儲器中所存儲的系統控制程序的哈希值進行比較;如果兩者一致,則表示當前系統控制程序是完整的。
優選地,所述利用安全芯片的存儲器中所存儲的計算機關鍵文件的哈希值,校驗計算機關鍵文件的備份文件的完整性的步驟包括對計算機關鍵文件執行與所述散列運算相同的散列運算以獲得當前計算機關鍵文件的哈希值;將所述哈希值與安全芯片的存儲器中所存儲的計算機關鍵文件的相應哈希值進行比較;如果兩者分別一致,則表示計算機關鍵文件是完整的。
優選地,在安全芯片的存儲器中存儲的散列值是通過兩次散列運算所獲得的散列值。
優選地,所述兩次散列運算所分別采用的兩個散列函數是相同的。
優選地,所述兩次散列運算所分別采用的兩個散列函數是不同的。
優選地,所述可信文件是干凈的操作系統核心文件。
優選地,所述安全芯片的存儲器受到安全芯片的認證保護。
通過參考以下結合附圖對所采用的優選實施例的詳細描述,本發明的上述目的、優點和特征將變得顯而易見,其中圖1是示出了為了實現根據基于安全芯片的防病毒方法,安全芯片的存儲器和HPA存儲區的存儲內容與BIOS(基本輸入輸出系統)代碼文件、MBR(主引導記錄)代碼文件、可信文件的關系的示意圖;以及圖2是示出了根據本發明的基于安全芯片的防病毒方法的流程圖。
具體實施方式本發明的技術原理在于以安全芯片為信任根,對系統啟動過程中的各環節進行完整性檢查,傳遞信任關系,建立整個計算機系統的可信計算環境,從而達到防病毒的目的。
下面將參考附圖來描述根據本發明的優選實施例。
圖1是示出了為了實現根據基于安全芯片的防病毒方法,安全芯片的存儲器和HPA存儲區的存儲內容與BIOS代碼文件、MBR代碼文件、可信文件(計算機關鍵文件)的關系的示意圖。
如圖1所示,預先將正確的BIOS代碼文件及其哈希值(hash值)存儲在硬盤保護區(HPA區域,也被稱為硬盤隱藏區),該HPA區域是一般用戶無法訪問的。另外,將HPA區域用作數據保護區域是本領域所公知的。然后,將該哈希值再進行散列運算得到的哈希值保存在安全芯片的存儲器中,也就是,將對BIOS代碼文件進行了兩次散列運算所得到的哈希值存儲在圖1所示的安全芯片的存儲器中,該安全芯片的存儲器受到安全芯片的保護,需要得到安全芯片的擁有者的授權和認證才能訪問,這里,安全芯片技術也是本領域所公知的,在此不再詳細描述。
同樣地,預先將正確的硬盤MBR部分的代碼文件及其哈希值存儲在硬盤保護區,并將該哈希值再進行散列運算得到的哈希值保存在安全芯片的存儲器中。
同樣地,預先創建可信文件列表,并將該列表中的可信文件(主要是干凈的操作系統核心文件)以及哈希值存儲在硬盤保護區,并將所有可信文件的哈希值再進行散列運算得到的哈希值保存在安全芯片的存儲器中。
最后,系統控制程序文件及其哈希值也存儲在硬盤保護區,并將該哈希值再進行散列運算得到的哈希值保存在安全芯片的存儲器中。
總之,在硬盤保護區中存儲了BIOS代碼文件、MBR部分的代碼文件、可信文件和系統控制程序文件經過一次散列運算后所得到哈希值。另外,還存儲了BIOS代碼文件、MBR部分的代碼文件、可信文件的備份文件和系統控制程序文件,用于在它們受到纂改時恢復其。在安全芯片的存儲器中存儲了BIOS代碼文件、MBR部分的代碼文件、可信文件和系統控制程序文件經過兩次散列運算后所得到哈希值,用于在機器啟動之前和啟動之后執行校驗操作,如以下將詳細描述的。
需要注意的是,作為示例,如圖1所示,MBR部分的代碼文件存儲區、可信文件存儲區和HPA區域通常處于硬盤中,而BIOS代碼文件處于計算機的只讀ROM中。另外,以上僅作為示例給出了通過兩次散列運算來獲得散列值的方式,但是本發明并不局限于此,其可以是任意次數的散列運算。此外,BIOS代碼文件、MBR部分的代碼文件和可信文件并不必須存儲在于HPA區域中,其可以存儲在任意形式(例如硬盤、ROM等)的文件備份區中。
圖2是示出了根據本發明的基于安全芯片的防病毒方法的流程圖。
如圖2所示,機器加電啟動時(步驟201),由安全芯片校驗HPA中的控制程序,即,安全芯片對控制程序進行兩次散列運算(步驟203),這里所示的兩次散列運算如上所述。然后,將經過兩次散列運算所獲得的哈希值與存儲在安全芯片的存儲器中的哈希值進行比較(步驟205),如果不同(步驟205中的否),則停止啟動并退出。如果相同(步驟205中的是),則將控制權交給控制程序,由控制程序依次校驗BIOS代碼文件、MBR(主引導記錄)代碼文件及可信文件,即,對BIOS代碼文件、MBR代碼文件及可信文件進行兩次散列運算(步驟207、步驟211和步驟215)。然后,將兩次散列運算所獲得的哈希值與存儲在安全芯片中的哈希值進行比較(步驟209、步驟213和步驟217),即檢查BIOS代碼文件、MBR代碼文件及可信文件的完整性。如果不同(步驟209、步驟213和步驟217中的否),則修復被破壞的BIOS代碼文件、MBR代碼文件及可信文件(步驟227),即,由HPA中的相應備份文件來恢復被破壞的BIOS代碼文件、MBR代碼文件及可信文件。這樣,可保證在操作系統啟動前恢復BIOS/MBR/操作系統正常狀態,直接消除病毒影響,有效防范已知和未知病毒,保證操作系統安全啟動。
操作系統運行后(步驟219),系統控制程序實時監控可信文件的狀態(步驟221),即,將可信文件經過兩次散列運算所獲得的哈希值與安全芯片的存儲器中所存儲的相應哈希值進行比較以檢查可信文件的完整性。如果發現哈希值與安全芯片中的存儲值不一致(步驟221中的否),則根據用戶的選擇自動進行修復或者更新(步驟229),該修復過程與以上的修復過程類似。相反,如果一致,(步驟221中的是),則檢查待運行文件是否在該可信列表中(步驟223)。如果該文件不在該可信列表中(步驟223中的否),則可以根據用戶的選擇不允許其運行(步驟231),這種做法不依賴于病毒特征庫即可達到抵御未知或已知病毒目的,使各種病毒無法在系統運行起來。相反,如果該程序存在于可信列表中(步驟223的是),則允許該程序的執行。
需要注意的是,對于以上提到的兩次散列運算,兩次散列運算所采用的散列函數可以是相同的也可以是不同的。
根據本發明,采用安全芯片保存系統關鍵信息,安全性高,保證了HPA的安全性,提供了硬件級完整性度量手段。另外,在本發明中,獨立于被保護操作系統,從BIOS開始,依次對硬盤信息及操作系統核心文件等系統啟動的關鍵環節進行完整性度量,比一般的防病毒軟件提供了更底層、更徹底的防護。
盡管以上已經結合本發明的優選實施例示出了本發明,但是本領域的技術人員將會理解,在不脫離本發明的精神和范圍的情況下,可以對本發明進行各種修改、替換和改變。因此,本發明不應由上述實施例來限定,而應由所附權利要求
及其等價物來限定。
權利要求
1.一種基于安全芯片的防病毒方法,所述方法包括以下步驟在安全芯片的存儲器中存儲將計算機關鍵文件和系統控制程序進行散列運算所獲得的哈希值,并且在備份存儲區中存儲計算機關鍵文件的備份文件;在機器加電時,利用安全芯片的存儲器中所存儲的系統控制程序的哈希值來校驗系統控制程序的完整性;如果系統控制程序是完整的,則由所述系統控制程序執行控制,所述系統控制程序利用安全芯片的存儲器中所存儲的計算機關鍵文件的哈希值,校驗計算機關鍵文件的完整性;如果計算機關鍵文件均是完整的,則啟動操作系統;以及相反,如果計算機關鍵文件的任一個不完整,則利用備份存儲區中存儲的計算機關鍵文件的備份文件來恢復其。
2.根據權利要求
1所述的方法,其特征在于所述計算機關鍵文件包括BIOS代碼文件、MBR部分的代碼文件、可信文件。
3.根據權利要求
2所述的方法,其特征在于所述系統控制程序利用安全芯片的存儲器中所存儲的計算機關鍵文件的哈希值、校驗計算機關鍵文件的完整性的步驟包括所述系統控制程序分別利用安全芯片的存儲器中所存儲的BIOS代碼文件、MBR部分的代碼文件、可信文件的哈希值,依次校驗BIOS代碼文件、MBR部分的代碼文件、可信文件的完整性。
4.根據權利要求
1所述的方法,其特征在于所述備份存儲區為硬盤保護區。
5.根據權利要求
2所述的方法,其特征在于還包括步驟在操作系統啟動之后,由系統控制程序利用安全芯片的存儲器中所存儲的可信文件的哈希值,實時校驗可信文件的完整性;如果可信文件完整且待運行文件存在可信列表中時,允許所述待運行文件運行;相反,則禁止所述待運行文件運行。
6.根據權利要求
1所述的方法,其特征在于所述利用安全芯片的存儲器中所存儲的系統控制程序的哈希值來校驗系統控制程序的完整性的步驟包括對當前系統控制程序執行與所述散列運算相同的散列運算以獲得當前系統控制程序的哈希值;將所述哈希值與安全芯片的存儲器中所存儲的系統控制程序的哈希值進行比較;如果兩者一致,則表示當前系統控制程序是完整的。
7.根據權利要求
1所述的方法,其特征在于所述利用安全芯片的存儲器中所存儲的計算機關鍵文件的哈希值,校驗計算機關鍵文件的備份文件的完整性的步驟包括對計算機關鍵文件執行與所述散列運算相同的散列運算以獲得當前計算機關鍵文件的哈希值;將所述哈希值與安全芯片的存儲器中所存儲的計算機關鍵文件的相應哈希值進行比較;如果兩者分別一致,則表示計算機關鍵文件是完整的。
8.根據權利要求
1所述的方法,其特征在于在安全芯片的存儲器中存儲的散列值是通過兩次散列運算所獲得的散列值。
9.根據權利要求
1所述的方法,其特征在于所述兩次散列運算所分別采用的兩個散列函數是相同的。
10.根據權利要求
1所述的方法,其特征在于所述兩次散列運算所分別采用的兩個散列函數是不同的。
11.根據權利要求
1所述的方法,其特征在于所述可信文件是干凈的操作系統核心文件。
12.根據權利要求
1所述的方法,其特征在于所述安全芯片的存儲器受到安全芯片的認證保護。
專利摘要
根據本發明,提出了一種基于安全芯片的防病毒方法,所述方法包括以下步驟在安全芯片的存儲器中存儲將計算機關鍵文件和系統控制程序進行散列運算所獲得的哈希值,并且在備份存儲區中存儲計算機關鍵文件的備份文件;在機器加電時,利用安全芯片的存儲器中所存儲的系統控制程序的哈希值來校驗系統控制程序的完整性;如果系統控制程序是完整的,則由所述系統控制程序執行控制,所述系統控制程序利用安全芯片的存儲器中所存儲的計算機關鍵文件的哈希值,校驗計算機關鍵文件的完整性;如果計算機關鍵文件均是完整的,則啟動操作系統;以及相反,如果計算機關鍵文件的任一個不完整,則利用備份存儲區中存儲的計算機關鍵文件的備份文件來恢復其。
文檔編號G06F1/00GK1991779SQ200510136600
公開日2007年7月4日 申請日期2005年12月30日
發明者李俊, 王凱, 馮榮峰, 徐娜 申請人:聯想(北京)有限公司導出引文BiBTeX, EndNote, RefMan