專利名稱:一種可進(jìn)行完整性檢測(cè)的計(jì)算機(jī)系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)系統(tǒng)領(lǐng)域,特別是涉及一種在操作系統(tǒng)啟動(dòng)前對(duì)系統(tǒng)進(jìn)行完整性檢測(cè)的計(jì)算機(jī)系統(tǒng)和方法。
背景技術(shù):
目前計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)已經(jīng)廣泛影響到個(gè)人和企業(yè)的各個(gè)方面,對(duì)計(jì)算機(jī)安全性的需求也進(jìn)一步提高,人們期望系統(tǒng)從一開始啟動(dòng)時(shí),就可以保證運(yùn)行在可靠的操作系統(tǒng)(operation system,OS)環(huán)境中。能夠保證從一個(gè)安全干凈的系統(tǒng)啟動(dòng),是之后進(jìn)行病毒防范及防止病毒入侵的基礎(chǔ),如果當(dāng)前運(yùn)行操作系統(tǒng)已經(jīng)是被病毒感染了的不可靠運(yùn)行環(huán)境,則之后的任何安全防范措施都將失效。因此,需要實(shí)現(xiàn)一種在操作系統(tǒng)啟動(dòng)之前即對(duì)操作系統(tǒng)進(jìn)行完整性檢測(cè)的計(jì)算系統(tǒng)和方法,保證啟動(dòng)的操作系統(tǒng)環(huán)境為安全的,可信任的運(yùn)行環(huán)境,是一直以來人們追求的目標(biāo)。
一般地,對(duì)操作系統(tǒng)進(jìn)行完整性檢測(cè)在該操作系統(tǒng)運(yùn)行之前的外部系統(tǒng)進(jìn)行操作,因此,目前對(duì)上述問題的解決方式通常采取以下方法利用雙模式操作系統(tǒng)切換的方法對(duì)操作系統(tǒng)進(jìn)行完整性檢測(cè)該計(jì)算機(jī)系統(tǒng)安裝兩個(gè)操作系統(tǒng),即在主操作系統(tǒng)之外,再安裝一個(gè)附加的小操作系統(tǒng),在計(jì)算機(jī)底層固件運(yùn)行(Pre-boot)階段,選擇進(jìn)入該附加的小操作系統(tǒng),在其中進(jìn)行主操作系統(tǒng)的完整性檢測(cè),檢測(cè)完畢后,設(shè)置標(biāo)志位并重新啟動(dòng)系統(tǒng),根據(jù)標(biāo)志位的設(shè)置自動(dòng)進(jìn)入主操作系統(tǒng)并運(yùn)行。
該方法的缺陷是缺陷1用戶需要不斷地切換計(jì)算機(jī)模式,使用極不方便,同時(shí)附加一個(gè)小操作系統(tǒng),即使經(jīng)過裁減,仍然需要占有較多的系統(tǒng)存儲(chǔ)空間,增加了計(jì)算機(jī)的存儲(chǔ)空間成本。
缺陷2選擇在“附加操作系統(tǒng)”中進(jìn)行主操作性的完整性檢測(cè),實(shí)際上并不滿足安全信任鏈的嚴(yán)密性,在附加小操作系統(tǒng)中進(jìn)行主系統(tǒng)操作系統(tǒng)完整性檢測(cè)完畢后,必須重新啟動(dòng)(Reboot)系統(tǒng),造成安全信任鏈?zhǔn)聦?shí)上是斷裂的,且針對(duì)該“附加操作系統(tǒng)”的安全攻擊同時(shí)也會(huì)存在,沒有其他策略保證附加操作系統(tǒng)的可靠性。
缺陷3在該方案的控制流程中,必須設(shè)置標(biāo)志位,區(qū)別程序需要進(jìn)入“附加操作系統(tǒng)”,還是檢測(cè)完畢后需要進(jìn)入主操作系統(tǒng),這為方案設(shè)計(jì)增加了成本和復(fù)雜性。而且設(shè)置標(biāo)志位也存在安全漏洞,非法用戶可以通過模擬標(biāo)志位跳過操作系統(tǒng)完整性檢測(cè)。同時(shí),檢測(cè)完畢需要重新啟動(dòng)系統(tǒng),用戶體驗(yàn)有待提高。
由此可見,只有在計(jì)算機(jī)底層固件運(yùn)行階段,即Pre-boot階段完成操作系統(tǒng)完整性及可靠性檢測(cè)的工作,才可以有效保證安全信任鏈的一致性和連貫性,滿足人們使用計(jì)算機(jī)的安全性需求。同時(shí),檢測(cè)完畢可以直接啟動(dòng)操作系統(tǒng),無(wú)需重啟(Reset)過程,免去操作系統(tǒng)啟動(dòng)標(biāo)志位的設(shè)計(jì),并可以獲得較好的用戶體驗(yàn)。但是,在傳統(tǒng)計(jì)算機(jī)底層固件(即BIOS層面)上實(shí)現(xiàn)以上功能非常復(fù)雜,這時(shí)因?yàn)閭鹘y(tǒng)BIOS的功能有限,特別對(duì)文件系統(tǒng)的訪問接口不足,難于實(shí)現(xiàn)對(duì)復(fù)雜操作系統(tǒng)文件的數(shù)據(jù)分析,因此,在傳統(tǒng)BIOS上實(shí)現(xiàn)以上功能較為困難,影響了其技術(shù)的進(jìn)一步發(fā)展。。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種可進(jìn)行完整性檢測(cè)的計(jì)算機(jī)系統(tǒng)和方法,其基于EFI BIOS,在計(jì)算機(jī)底層固件運(yùn)行階段對(duì)操作系統(tǒng)的完整性進(jìn)行檢測(cè)。
為實(shí)現(xiàn)上述目的而提供的一種可進(jìn)行完整性檢測(cè)的計(jì)算機(jī)系統(tǒng),包括EFI存儲(chǔ)單元,還包括運(yùn)行模式單元,其包括一個(gè)完整性檢測(cè)啟動(dòng)控制量,在PEI階段CPU、芯片組、主板的基本初始化完成后,通過判斷該運(yùn)行模式單元,決定是否啟動(dòng)完整性檢測(cè)啟動(dòng)模式。
所述EFI存儲(chǔ)單元包括EFI完整性檢測(cè)單元,用于在完整性檢測(cè)啟動(dòng)模式中,對(duì)EFI鏡像代碼進(jìn)行完整性檢測(cè);EFI完整性檢測(cè)單元包括EFI完整性度量值,用于在EFI完整性檢測(cè)單元對(duì)EFI鏡像代碼進(jìn)行完整性檢測(cè),生成的EFI完整性計(jì)算值后,根據(jù)度量值與計(jì)算值相比較,確定EFI鏡像代碼的完整性。
運(yùn)行模式單元可以存儲(chǔ)在硬件單元中。
所述EFI存儲(chǔ)單元中的FV RECOVERY單元可以是只讀代碼單元。
所述計(jì)算機(jī)系統(tǒng)還包括有EFI鏡像代碼恢復(fù)單元,用于當(dāng)EFI完整性檢測(cè)單元對(duì)EFI鏡像代碼進(jìn)行完整性檢測(cè),確定EFI鏡像代碼為不完整時(shí),調(diào)用所述單元中的EFI鏡像恢復(fù)代碼,恢復(fù)EFI鏡像代碼。
所述的計(jì)算機(jī)系統(tǒng)還包括操作系統(tǒng)完整性檢測(cè)單元,用于在啟動(dòng)操作系統(tǒng)之前強(qiáng)制執(zhí)行操作系統(tǒng)完整性檢測(cè);所述操作系統(tǒng)完整性檢測(cè)單元包括可信文件檢測(cè)單元,用于調(diào)用操作系統(tǒng)完整性檢測(cè)方法,執(zhí)行對(duì)每個(gè)可信文件進(jìn)行完整性檢測(cè),比較判斷每個(gè)可信文件代碼是否被篡改,依次針對(duì)每個(gè)文件生成可信文件計(jì)算值,對(duì)操作系統(tǒng)文件完整性進(jìn)行檢測(cè);所述計(jì)算機(jī)系統(tǒng)還包括可信文件度量值,用于操作系統(tǒng)完整性檢測(cè)單元對(duì)每個(gè)可信文件進(jìn)行完整性檢測(cè),比較判斷每個(gè)可信文件代碼是否被篡改,依次針對(duì)每個(gè)文件生成可信文件計(jì)算值后,根據(jù)可信文件度量值與計(jì)算值相比較,確定單個(gè)可信文件的完整性,進(jìn)而確定操作系統(tǒng)所有可信文件的完整性。
所述操作系統(tǒng)完整性檢測(cè)單元還包括磁盤參數(shù)數(shù)據(jù)檢測(cè)單元,用于讀取磁盤參數(shù)數(shù)據(jù),檢測(cè)其磁盤參數(shù)數(shù)據(jù)是否完整,再調(diào)用可信文件檢測(cè)單元進(jìn)行單個(gè)可信文件完整性檢測(cè)。
所述計(jì)算機(jī)系統(tǒng)還包括磁盤參數(shù)度量值,用于操作系統(tǒng)完整性檢測(cè)單元對(duì)操作系統(tǒng)文件所存儲(chǔ)的磁盤進(jìn)行磁盤參數(shù)完整性檢測(cè),生成磁盤參數(shù)完整性計(jì)算值后,所述度量值與計(jì)算值相比較,確定該操作系統(tǒng)存儲(chǔ)磁盤的完整性。
計(jì)算機(jī)系統(tǒng)還包括磁盤參數(shù)數(shù)據(jù)恢復(fù)單元,用于當(dāng)磁盤參數(shù)數(shù)據(jù)檢測(cè)單元檢測(cè)磁盤參數(shù)為不完整時(shí),調(diào)用該單元中的磁盤參數(shù)數(shù)據(jù),強(qiáng)制恢復(fù)磁盤數(shù)據(jù)。
所述計(jì)算機(jī)系統(tǒng)還包括可信文件列表,用于在磁盤參數(shù)數(shù)據(jù)檢測(cè)完成后,查找對(duì)比操作系統(tǒng)可信文件名,檢測(cè)所有可信文件是否都存在,保證操作系統(tǒng)可信文件的完整性,然后調(diào)用可信文件檢測(cè)單元進(jìn)行單個(gè)可信文件完整性檢測(cè)。
計(jì)算機(jī)系統(tǒng)還包括操作系統(tǒng)可信文件恢復(fù)單元,當(dāng)操作系統(tǒng)完整性檢測(cè)單元對(duì)操作系統(tǒng)可信文件通過可信文件列表或者可信文件度量值比較,進(jìn)行完整性檢測(cè)后,確定操作系統(tǒng)可信文件不完整或者被篡改時(shí),調(diào)用預(yù)先保存的操作系統(tǒng)可信恢復(fù)文件,強(qiáng)制恢復(fù)該可信文件,恢復(fù)完整的操作系統(tǒng)環(huán)境。
可信文件度量值,磁盤參數(shù)度量值,可信文件列表,EFI鏡像代碼恢復(fù)單元,磁盤參數(shù)數(shù)據(jù)恢復(fù)單元和操作系統(tǒng)可信恢復(fù)文件單元,存儲(chǔ)在EFI安全存儲(chǔ)部件中,所述EFI安全存儲(chǔ)部件為本地安全存儲(chǔ)部件,或者外置安全存儲(chǔ)部件,所述的外置安全存儲(chǔ)部件為遠(yuǎn)程安全存儲(chǔ)部件時(shí),所述操作系統(tǒng)可信恢復(fù)文件存儲(chǔ)在遠(yuǎn)程安全存儲(chǔ)部件中;所述計(jì)算機(jī)系統(tǒng)還包括簡(jiǎn)單網(wǎng)絡(luò)驅(qū)動(dòng)單元,簡(jiǎn)單TCP Socket驅(qū)動(dòng)單元,用于在確定操作系統(tǒng)文件不完整時(shí),調(diào)用簡(jiǎn)單網(wǎng)絡(luò)驅(qū)動(dòng)單元,簡(jiǎn)單TCP Socket驅(qū)動(dòng)單元通過網(wǎng)絡(luò)連接到遠(yuǎn)程安全存儲(chǔ)部件,將存儲(chǔ)在遠(yuǎn)程安全存儲(chǔ)部件中的操作系統(tǒng)可信恢復(fù)文件下載到本地恢復(fù)操作系統(tǒng)文件。
計(jì)算機(jī)系統(tǒng)還包括完整性管理單元,用于設(shè)置EFI啟動(dòng)時(shí),是否需要執(zhí)行完整性檢測(cè)啟動(dòng)模式,并可以允許用戶根據(jù)系統(tǒng)運(yùn)行的需要定制操作系統(tǒng)涉及的操作系統(tǒng)可信相關(guān)文件,重新生成磁盤參數(shù)度量值,可信文件列表,可信文件度量值。
所述完整性管理單元包括安全等級(jí)設(shè)置單元用于設(shè)置所述計(jì)算機(jī)系統(tǒng)的啟動(dòng)模式;完整性預(yù)置單元用于定制操作系統(tǒng)可信文件,重新生成磁盤參數(shù)度量值,可信文件列表,可信文件度量值及操作系統(tǒng)可信文件,當(dāng)系統(tǒng)再次進(jìn)行完整性檢測(cè)時(shí),依照新的比較基準(zhǔn)進(jìn)行操作系統(tǒng)完整性檢測(cè);EFI完整性預(yù)置單元在用戶選擇EFI完整性預(yù)置管理時(shí),運(yùn)行EFI完整性預(yù)置單元,生成新的EFI完整性度量值。
本發(fā)明還提供一種計(jì)算機(jī)系統(tǒng)完整性檢測(cè)的方法,包括EFI完整性檢測(cè),即包括下列步驟步驟A在系統(tǒng)上電運(yùn)行至PEI階段,CPU、芯片組、主板的基本初始化完成后,根據(jù)運(yùn)行模式單元,決定是否開啟完整性檢測(cè)啟動(dòng)模式,否則直接按照通常的啟動(dòng)模式開啟計(jì)算機(jī)系統(tǒng);
步驟B當(dāng)以完整性檢測(cè)啟動(dòng)模式啟動(dòng)EFI BIOS時(shí),調(diào)用EFI完整性檢測(cè)單元計(jì)算出EFI完整性計(jì)算值;步驟C比較判斷當(dāng)前EFI完整性度量值和計(jì)算值是否相等,如果相等,則說明EFI鏡像代碼是完整的,執(zhí)行EFI BIOS啟動(dòng)后續(xù)過程;如果不相等,說明EFI鏡像代碼不完整,執(zhí)行后續(xù)過程;步驟D當(dāng)EFI鏡像代碼不完整時(shí),用戶選擇是否調(diào)用EFI鏡像文件恢復(fù)單元中的EFI鏡像文件恢復(fù)代碼進(jìn)行恢復(fù),如果是,則進(jìn)行EFI鏡像代碼恢復(fù),完成EFI完整性檢測(cè),執(zhí)行EFI后續(xù)過程;否則停止運(yùn)行。
所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,還包括操作系統(tǒng)完整性檢測(cè),即還包括下列步驟步驟EEFI完整性檢測(cè)完成后,運(yùn)行DXE階段的流程,DXE調(diào)度操作系統(tǒng)完整性檢測(cè)單元加載入內(nèi)存;步驟F進(jìn)入BDS階段,如果運(yùn)行模式單元為完整性檢測(cè)設(shè)置,則調(diào)用步驟E所述的操作系統(tǒng)完整性檢測(cè)單元;步驟G操作系統(tǒng)完整性檢測(cè)單元中的可信文件檢測(cè)單元調(diào)用操作系統(tǒng)完整性檢測(cè)方法,執(zhí)行對(duì)每個(gè)可信文件進(jìn)行完整性檢測(cè),比較判斷每個(gè)可信文件代碼是否被篡改,依次針對(duì)每個(gè)文件生成可信文件計(jì)算值,對(duì)操作系統(tǒng)文件完整性進(jìn)行檢測(cè);步驟H根據(jù)可信文件度量值與計(jì)算值相比較,確定單個(gè)可信文件的完整性,進(jìn)而確定操作系統(tǒng)所有可信文件的完整性。
所述操作系統(tǒng)完整性檢測(cè)還可以包括下列步驟步驟I當(dāng)操作系統(tǒng)可信文件被篡改時(shí),提示用戶可以進(jìn)行操作系統(tǒng)可信文件恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),如果用戶選擇進(jìn)行恢復(fù)后,進(jìn)行下一步;步驟J檢測(cè)本地操作系統(tǒng)的文件與相應(yīng)的操作系統(tǒng)可信文件是否相一致,如果都相一致,加載并運(yùn)行操作系統(tǒng);否則,進(jìn)入下一步;步驟K提示用戶是否進(jìn)行恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),則如果用戶選擇恢復(fù),則相應(yīng)操作系統(tǒng)可信文件被復(fù)制覆蓋相應(yīng)的文件,加載并運(yùn)行操作系統(tǒng)。
所述步驟G可以包括如下步驟步驟G1操作系統(tǒng)完整性檢測(cè)單元首先調(diào)用磁盤參數(shù)數(shù)據(jù)檢測(cè)單元,讀取磁盤參數(shù)MBR,活動(dòng)分區(qū),分區(qū)表信息,通過散列算法計(jì)算MBR,活動(dòng)分區(qū),分區(qū)表信息的計(jì)算值,并與磁盤參數(shù)度量值進(jìn)行比較,檢測(cè)磁盤參數(shù)是否完整,然后才調(diào)用操作系統(tǒng)完整性檢測(cè)單元中的可信文件檢測(cè)單元對(duì)單個(gè)可信文件進(jìn)行完整性檢測(cè)。
所述步驟G1可以包括如下步驟步驟G11當(dāng)磁盤參數(shù)數(shù)據(jù)檢測(cè)單元檢測(cè)磁盤參數(shù)為不完整時(shí),調(diào)用磁盤參數(shù)數(shù)據(jù)恢復(fù)單元中的磁盤參數(shù)數(shù)據(jù),強(qiáng)制恢復(fù)磁盤數(shù)據(jù)。
所述步驟G還可以包括下列步驟步驟G2在磁盤參數(shù)數(shù)據(jù)檢測(cè)完成后,進(jìn)行操作系統(tǒng)可信文件列表檢測(cè),查找對(duì)比操作系統(tǒng)可信文件名,檢測(cè)所有可信文件是否都存在,保證操作系統(tǒng)可信文件的完整性,然后才調(diào)用可信文件檢測(cè)單元進(jìn)行單個(gè)可信文件完整性檢測(cè)。
所述步驟G2還可以包括下列步驟步驟G21當(dāng)操作系統(tǒng)可信文件列表檢測(cè)到操作系統(tǒng)可信文件不存在時(shí),強(qiáng)制調(diào)用操作系統(tǒng)可信文件恢復(fù)單元,恢復(fù)該操作系統(tǒng)可信文件。
另外,所述操作系統(tǒng)完整性檢測(cè)還也可以包括下列步驟步驟I當(dāng)操作系統(tǒng)文件不完整時(shí),提示用戶可以進(jìn)行操作系統(tǒng)可信文件恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),如果用戶選擇進(jìn)行恢復(fù)后,調(diào)用簡(jiǎn)單網(wǎng)絡(luò)驅(qū)動(dòng)單元,簡(jiǎn)單TCP Socket驅(qū)動(dòng)單元連接到遠(yuǎn)程網(wǎng)絡(luò);步驟J檢測(cè)操作系統(tǒng)的文件與相應(yīng)的操作系統(tǒng)可信文件是否相一致,如果都相一致,關(guān)閉底層網(wǎng)絡(luò)連接,加載并運(yùn)行操作系統(tǒng);否則,進(jìn)入下一步;步驟K提示用戶是否進(jìn)行恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),則如果用戶選擇恢復(fù),則遠(yuǎn)程服務(wù)器上的相應(yīng)操作系統(tǒng)可信文件被復(fù)制并傳送到本地,覆蓋相應(yīng)的文件,然后關(guān)閉底層網(wǎng)絡(luò)連接,加載并運(yùn)行操作系統(tǒng)。
所述步驟G可以包括如下步驟步驟G1操作系統(tǒng)完整性檢測(cè)單元首先調(diào)用磁盤參數(shù)數(shù)據(jù)檢測(cè)單元,讀取磁盤參數(shù)MBR,活動(dòng)分區(qū),分區(qū)表信息,通過散列算法計(jì)算MBR,活動(dòng)分區(qū),分區(qū)表信息的計(jì)算值,并與磁盤參數(shù)度量值進(jìn)行比較,檢測(cè)磁盤參數(shù)是否完整,然后才調(diào)用操作系統(tǒng)完整性檢測(cè)單元中的可信文件檢測(cè)單元對(duì)單個(gè)可信文件進(jìn)行完整性檢測(cè)。
所述步驟G1可以包括如下步驟步驟G11當(dāng)磁盤參數(shù)數(shù)據(jù)檢測(cè)單元檢測(cè)磁盤參數(shù)為不完整時(shí),調(diào)用該單元中的磁盤參數(shù)數(shù)據(jù),強(qiáng)制恢復(fù)磁盤數(shù)據(jù)。
所述步驟G還可以包括下列步驟步驟G2在磁盤參數(shù)數(shù)據(jù)檢測(cè)完成后,進(jìn)行操作系統(tǒng)可信文件列表檢測(cè),查找對(duì)比操作系統(tǒng)可信文件名,檢測(cè)所有可信文件是否都存在,保證操作系統(tǒng)可信文件的完整性,然后才調(diào)用可信文件檢測(cè)單元進(jìn)行單個(gè)可信文件完整性檢測(cè)。
所述步驟G2還可以包括下列步驟步驟G21當(dāng)操作系統(tǒng)可信文件列表檢測(cè)到操作系統(tǒng)可信文件不存在時(shí),提示用戶可以進(jìn)行操作系統(tǒng)可信文件恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),如果用戶選擇進(jìn)行恢復(fù)后,調(diào)用簡(jiǎn)單網(wǎng)絡(luò)驅(qū)動(dòng)單元,簡(jiǎn)單TCP Socket驅(qū)動(dòng)單元連接到遠(yuǎn)程網(wǎng)絡(luò);步驟G22檢測(cè)本地操作系統(tǒng)的文件與遠(yuǎn)程服務(wù)器上相應(yīng)的操作系統(tǒng)可信文件是否相一致,如果都相一致,關(guān)閉底層網(wǎng)絡(luò)連接,返回重新進(jìn)行操作系統(tǒng)可信文件列表檢查;否則,進(jìn)入下一步;步驟G23提示用戶是否進(jìn)行恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),則如果用戶選擇恢復(fù),則遠(yuǎn)程服務(wù)器上的相應(yīng)操作系統(tǒng)可信文件被復(fù)制并傳送到本地,覆蓋相應(yīng)的文件,然后關(guān)閉底層網(wǎng)絡(luò)連接,返回重新進(jìn)行操作系統(tǒng)可信文件列表檢查。
所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,還包括完整性管理配置,其包括如下步驟步驟L在用戶通過了操作系統(tǒng)完整性檢測(cè)之后,選擇是否進(jìn)入操作系統(tǒng)完整性管理單元;步驟M如果用戶不選擇進(jìn)入操作系統(tǒng)完整性管理單元,則直接啟動(dòng)操作系統(tǒng);當(dāng)用戶選擇進(jìn)入操作系統(tǒng)完整性管理單元時(shí),顯示操作系統(tǒng)完整性管理界面,用戶對(duì)操作系統(tǒng)完整性進(jìn)行管理配置;所述步驟M包括下列步驟步驟M1當(dāng)用戶選擇安全等級(jí)管理時(shí),運(yùn)行安全等級(jí)設(shè)置單元,設(shè)置目前的計(jì)算機(jī)系統(tǒng)安全等級(jí);步驟M2在用戶選擇操作系統(tǒng)完整性文件預(yù)置管理時(shí),運(yùn)行操作系統(tǒng)完整性文件預(yù)置單元,用戶定制操作系統(tǒng)可信文件。
步驟M3在用戶選擇EFI代碼完整性預(yù)置管理時(shí),運(yùn)行EFI完整性預(yù)置單元,生成新的EFI完整性度量值。
述步驟M2包括下列步驟步驟M21)運(yùn)行操作系統(tǒng)完整性文件預(yù)置單元,提示并由用戶選擇增加或者減少操作系統(tǒng)可信文件;步驟M22)根據(jù)用戶選擇的操作系統(tǒng)可信文件,生成生成磁盤參數(shù)度量值,可信文件列表,可信文件度量值及其涉及的操作系統(tǒng)可信文件;步驟M23)將生成生成磁盤參數(shù)度量值,可信文件列表,可信文件度量值及其涉及的操作系統(tǒng)可信文件存儲(chǔ)到安全存儲(chǔ)部件;步驟M24)返回操作系統(tǒng)完整性管理單元。
本發(fā)明的有益效果是本發(fā)明實(shí)現(xiàn)了一種在EFI BIOS的計(jì)算機(jī)底層固件運(yùn)行(Pre-boot)階段進(jìn)行操作系統(tǒng)完整性檢測(cè)的系統(tǒng)及方法。它有效的解決了操作系統(tǒng)啟動(dòng)之前的EFI BIOS層面的操作系統(tǒng)完整性的認(rèn)證問題,有效保證安全信任鏈的一致性和嚴(yán)密性,滿足人們使用計(jì)算機(jī)的安全性需求。有效突破了在傳統(tǒng)BIOS上進(jìn)行操作系統(tǒng)完整性檢測(cè)的局限性,解決以前方法的各種存在缺陷。本發(fā)明系統(tǒng)和方法支持功能強(qiáng)大,比較傳統(tǒng)BIOS的實(shí)現(xiàn)系統(tǒng)和方法相對(duì)簡(jiǎn)單實(shí)用、靈活性更強(qiáng)、支持功能更強(qiáng)大、適用性更強(qiáng)等優(yōu)點(diǎn)。
圖1是本發(fā)明存儲(chǔ)布局示意圖;圖2是本發(fā)明EFI工作流程圖;圖3是本發(fā)明EFI鏡像文件完整性檢測(cè)流程圖;圖4是本發(fā)明操作系統(tǒng)完整性檢測(cè)流程圖;
圖5是本發(fā)明的完整性管理界面示意圖;圖6是本發(fā)明實(shí)施例完整性檢測(cè)啟動(dòng)過程示意圖。
具體實(shí)施例方式
下面結(jié)合附圖1-6進(jìn)一步詳細(xì)說明本發(fā)明,本實(shí)施例描述了一個(gè)在EFI環(huán)境下,使用本發(fā)明的技術(shù)方案完成完整性檢測(cè)的計(jì)算機(jī)系統(tǒng),以及配合該計(jì)算機(jī)系統(tǒng)完整性檢測(cè)的實(shí)現(xiàn)步驟。
首先,為詳細(xì)描述本發(fā)明,下面先說明EFI技術(shù)本發(fā)明將涉及可擴(kuò)展固件接口(EFI)技術(shù),可擴(kuò)展固件接口(ExtensibleFirmware Interface,EFI)是1999年出現(xiàn)的用以取代沿用多年的基本輸入輸出系統(tǒng)(BIOS)的新一代接口程序,關(guān)于可擴(kuò)展固件接口的介紹,詳見UEFI論壇關(guān)于EFI技術(shù)的介紹http://www.UEFI.org。EFI介于硬件設(shè)備以及操作系統(tǒng)(比如Windows或者Linux)之間。與傳統(tǒng)的BIOS不同,EFI使用全球最廣泛的高級(jí)語(yǔ)言C語(yǔ)言進(jìn)行編寫,其提供了既具有傳統(tǒng)BIOS的功能又有優(yōu)于傳統(tǒng)BIOS的擴(kuò)展功能,在設(shè)計(jì)機(jī)制和架構(gòu)上也有別于傳統(tǒng)BIOS的實(shí)現(xiàn),是下一代BIOS接口規(guī)范,這就意味著有更多的工程師可以參與EFI的開發(fā)工作,添加許多更有價(jià)值的功能。
EFI具備的基本功能為硬件平臺(tái)初始化;支持啟動(dòng)操作系統(tǒng);脫離操作系統(tǒng)的平臺(tái)管理工具。
EFI的工作模式可以簡(jiǎn)單歸納為啟動(dòng)系統(tǒng),標(biāo)準(zhǔn)固件平臺(tái)初始化,接著從加載EFI驅(qū)動(dòng)程序庫(kù)以及及執(zhí)行相關(guān)程序,在EFI系統(tǒng)啟動(dòng)菜單中選取所要進(jìn)入的系統(tǒng)并向EFI提交啟動(dòng)引導(dǎo)代碼,正常的話將進(jìn)入系統(tǒng),否則將中止啟動(dòng)服務(wù)并返回EFI系統(tǒng)啟動(dòng)菜單。工程師們可以按照不同的需要為EFI增加新的功能,諸如更加詳細(xì)實(shí)用的診斷功能、自我配置程序、列出系統(tǒng)可能發(fā)生的故障等等。
如圖1-6所示,本發(fā)明的一種可進(jìn)行完整性檢測(cè)的計(jì)算機(jī)系統(tǒng),是在EFIBIOS上實(shí)現(xiàn)的,其包括硬件和軟件,硬件包括主板,中央處理器(CPU),內(nèi)存,硬盤及外設(shè)。
主板和CPU分別為支持EFI規(guī)范的主板和CPU。
如圖1、6所示,本發(fā)明的計(jì)算機(jī)系統(tǒng)的EFI存儲(chǔ)單元1(EFI Flash ROMLayout)包括FV_RECOVERY單元2、FV_NVRAM單元3、FV_MAIN單元4。
BIOS ROM存儲(chǔ)單元1是主板上用來存儲(chǔ)BIOS的存儲(chǔ)器,這種存儲(chǔ)單元類型可以采用多種多樣的芯片,如ROM、EPROM、EEPROM、FLASH ROM等。
FV_RECOVERY單元2、FV_NVRAM單元3、FV_MAIN單元4是在EFI存儲(chǔ)單元1中按存儲(chǔ)地址劃分的具有不同功能的代碼段或者代碼卷。
1)FV_RECOVERY單元2存儲(chǔ)EFI的SEC和PEI階段的運(yùn)行代碼單元SEC(Security)階段其用于在計(jì)算機(jī)系統(tǒng)上電(Power On)開始啟動(dòng),PEI階段(PEI foundation)開始之前,檢查處理器執(zhí)行頭幾行的代碼是否可以執(zhí)行,同時(shí),它將初始化很小一塊臨時(shí)內(nèi)存塊供PEI階段的運(yùn)行代碼單元執(zhí)行使用;PEI(Pre-EFI Initialization)階段其用于調(diào)用處理器、芯片組、主板初始化配置例程,進(jìn)行系統(tǒng)的初步初始化,建立可供DXE階段運(yùn)行的最小化的可運(yùn)行環(huán)境。其中,最小化的可運(yùn)行環(huán)境的功能包括確定系統(tǒng)的引導(dǎo)路徑(boot path);初始化內(nèi)存;初始化包含DXE部分代碼存儲(chǔ)的基本輸入輸出的存儲(chǔ)文件,以保證DXE文件單元之后的文件可以正確訪問。
2)FV_NVRAM單元存放系統(tǒng)變量EFI需要的一些環(huán)境系統(tǒng)變量均可以以變量形式從這個(gè)單元讀取。
3)FV_MAIN段包括DXE和BDS階段的運(yùn)行代碼單元DXE(Driver Execution Environment)階段其用于完成系統(tǒng)平臺(tái)初始化的主要工作,負(fù)責(zé)全面初始化CPU、芯片組及系統(tǒng)平臺(tái),并提供給啟動(dòng)操作系統(tǒng)足夠服務(wù),保證操作系統(tǒng)在其后的階段可以運(yùn)行。在該文件單元中,系統(tǒng)將加載大量的EFI驅(qū)動(dòng)支持完成上述功能。
BDS(Boot Device Selection)階段其用于選擇操作系統(tǒng)啟動(dòng)設(shè)備,為啟動(dòng)操作系統(tǒng)做好準(zhǔn)備。
如圖6所示,本發(fā)明是一個(gè)基于架構(gòu)(framework)的EFI計(jì)算機(jī)系統(tǒng),整個(gè)EFI的運(yùn)行流程從冷啟動(dòng)(Code boot)開始,經(jīng)歷幾個(gè)主要階段SEC階段;PEI階段;DXE階段;BDS階段。其后是EFI的一些附加階段,它包含了操作系統(tǒng)的啟動(dòng)和運(yùn)行過程中,EFI與操作系統(tǒng)交互和配合過程TSL(Transient System Load)階段允許在系統(tǒng)尚未被操作系統(tǒng)完全接管的情況下,操作系統(tǒng)裝載過程(Os loader)中可以調(diào)用的EFI服務(wù);RT(runtime)階段提供與操作系統(tǒng)并行運(yùn)行服務(wù)(Runtime服務(wù)),以支持操作系統(tǒng)的需求;AL(Afterlife)階段意味著當(dāng)操作系統(tǒng)結(jié)束執(zhí)行時(shí),重新進(jìn)入EFI,繼續(xù)接管理運(yùn)行。
本發(fā)明的計(jì)算機(jī)系統(tǒng)是在通常的啟動(dòng)模式(BootMode)中,增加一種啟動(dòng)模式(BootMode),為完整性檢測(cè)啟動(dòng)模式(BOOT_IN_OS_INTEGRITY),在該計(jì)算機(jī)系統(tǒng)中,包括運(yùn)行模式單元包括一個(gè)完整性檢測(cè)啟動(dòng)控制量,該控制量控制是否啟動(dòng)完整性檢測(cè)啟動(dòng)模式。
運(yùn)行模式單元可以存儲(chǔ)在硬件單元中,例如設(shè)置一個(gè)硬件開關(guān),該開關(guān)一端接地,另一端聯(lián)結(jié)在計(jì)算機(jī)主板的I/O控制模塊上,該硬件開關(guān)與I/O控制模塊之間的接口可以是GPIO,串口,并口或USB口,但并不限于此。從該硬件開關(guān)所在的I/O地址讀取開關(guān)的“開”或“關(guān)”的狀態(tài),決定計(jì)算機(jī)啟動(dòng)方式是否為完整性啟動(dòng)模式。
所述PEI階段的運(yùn)行代碼單元包括EFI完整性檢測(cè)單元5,用于在CPU(CPU INIT),芯片組(Chipset INIT),主板(Board INIT)完成初步的初始化后,運(yùn)行EFI完整性檢測(cè)單元5,檢測(cè)EFI鏡像代碼完整性。
EFI完整性檢測(cè)單元5包括EFI完整性度量值,用于在EFI完整性檢測(cè)單元5對(duì)EFI鏡像代碼進(jìn)行完整性檢測(cè),生成的EFI完整性計(jì)算值后,根據(jù)度量值與計(jì)算值相比較,確定EFI鏡像代碼的完整性。
EFI完整性檢測(cè)單元5存儲(chǔ)在FV_RECOVERY單元中。
較佳地,所述計(jì)算機(jī)系統(tǒng)EFI存儲(chǔ)單元1中的FV_RECOVERY單元2為只讀(ROM)單元。
在系統(tǒng)上電,運(yùn)行SEC階段進(jìn)入PEI階段,CPU(CPU INIT),芯片組(Chipset INIT),主板(Board INIT)完成初步的初始化后,根據(jù)運(yùn)行模式單元,判斷其啟動(dòng)模式是否為完整性檢測(cè)啟動(dòng)模式,如果是則開啟完整性檢測(cè)啟動(dòng)模式,否則按照正常的啟動(dòng)模式開啟計(jì)算機(jī)系統(tǒng)。
如果啟動(dòng)的是完整性檢測(cè)啟動(dòng)模式,則運(yùn)行EFI完整性檢測(cè)單元5,對(duì)EFI鏡像代碼進(jìn)行完整性檢測(cè),生成的EFI完整性計(jì)算值,根據(jù)度量值與計(jì)算值相比較,確定EFI鏡像代碼的完整性。
在本發(fā)明的計(jì)算機(jī)系統(tǒng)中,還包括有EFI鏡像代碼(Image)恢復(fù)單元8,當(dāng)EFI完整性檢測(cè)單元5對(duì)EFI鏡像代碼進(jìn)行完整性檢測(cè)以后,生成的EFI完整性計(jì)算值,根據(jù)度量值與計(jì)算值相比較,確定EFI鏡像代碼為不完整時(shí),調(diào)用上述恢復(fù)單元中的EFI代碼,恢復(fù)EFI鏡像(Image)代碼。
在本發(fā)明的EFI計(jì)算機(jī)系統(tǒng)中,還包括操作系統(tǒng)完整性檢測(cè)在完整性檢測(cè)啟動(dòng)模式中,在EFI完整性檢測(cè)單元5完成對(duì)EFI完整性檢測(cè)后,進(jìn)入DXE(Driver execution environment)、BDS(Boot Device Selection)階段時(shí),通過操作系統(tǒng)完整性檢測(cè)單元6(module)檢測(cè)操作系統(tǒng)完整性,然后再啟動(dòng)操作系統(tǒng)。
操作系統(tǒng)完整性檢測(cè)單元6,用于在啟動(dòng)操作系統(tǒng)之前執(zhí)行操作系統(tǒng)完整性檢測(cè),其包括磁盤參數(shù)數(shù)據(jù)檢測(cè)單元,用于讀取磁盤參數(shù)數(shù)據(jù),如磁盤主啟動(dòng)記錄(Master Boot Record,MBR),活動(dòng)分區(qū),分區(qū)表等,并檢測(cè)這些磁盤參數(shù)是否完整,如通過散列算法(HASH算法)計(jì)算MBR,活動(dòng)分區(qū)、分區(qū)表的計(jì)算值,與磁盤參數(shù)度量值進(jìn)行比較,檢測(cè)其磁盤參數(shù)數(shù)據(jù)是否完整。
所述的磁盤參數(shù)度量值10是預(yù)先設(shè)定在計(jì)算機(jī)系統(tǒng)中的,用于該單元檢測(cè)磁盤參數(shù)后的計(jì)算值相比較,并判斷磁盤參數(shù)是否完整。
本實(shí)施例中的計(jì)算機(jī)系統(tǒng)還包括操作系統(tǒng)可信文件列表11,用于查找對(duì)比操作系統(tǒng)可信文件名,檢測(cè)所有的操作系統(tǒng)可信文件是否都存在。
操作系統(tǒng)可信文件是保持操作系統(tǒng)完整性的一系列不可被篡改的多個(gè)文件。當(dāng)發(fā)現(xiàn)其中某個(gè)文件被篡改或不完整時(shí),可以從預(yù)先存儲(chǔ)的位置上調(diào)出保存的正確文件(操作系統(tǒng)可信恢復(fù)文件),然后進(jìn)行恢復(fù)。
操作系統(tǒng)完整性檢測(cè)單元6還包括可信文件檢測(cè)單元,用于調(diào)用操作系統(tǒng)完整性檢測(cè)方法,執(zhí)行對(duì)每個(gè)可信文件進(jìn)行完整性檢測(cè),比較判斷每個(gè)可信文件代碼是否被篡改,依次針對(duì)每個(gè)文件生成可信文件計(jì)算值,完成度量值的比較,用于對(duì)操作系統(tǒng)文件完整性進(jìn)行檢測(cè)。
操作系統(tǒng)完整性檢測(cè)方法可以是計(jì)算操作系統(tǒng)文件代碼完整性的各種方法,本實(shí)施例中為散列算法(HASH算法),如果確定操作系統(tǒng)n個(gè)核心文件為操作系統(tǒng)的可信文件,當(dāng)這n個(gè)文件(操作系統(tǒng)可信文件)中有一個(gè)發(fā)生改變,就意味著操作系統(tǒng)不再完整,散列算法為每一個(gè)文件計(jì)算出一個(gè)(hash)值,每個(gè)文件記錄一個(gè)Hash值,逐個(gè)進(jìn)行比較,這n個(gè)文件任何一個(gè)Hash值發(fā)生改變,都意味著操作系統(tǒng)完整性被破壞。
所述的操作系統(tǒng)完整性檢測(cè)方法是可以替換的,其方法可以很復(fù)雜,也可以很簡(jiǎn)單,因此此處不限定其實(shí)際的實(shí)施方法。
所述計(jì)算機(jī)系統(tǒng)還包括可信文件度量值,用于操作系統(tǒng)完整性檢測(cè)單元對(duì)每個(gè)可信文件進(jìn)行完整性檢測(cè),比較判斷每個(gè)可信文件代碼是否被篡改,依次針對(duì)每個(gè)文件生成可信文件計(jì)算值后,根據(jù)度量值與計(jì)算值相比較,確定單個(gè)可信文件的完整性,進(jìn)而確定操作系統(tǒng)所有可信文件的完整性。
如圖6所示,系統(tǒng)在啟動(dòng)操作系統(tǒng)之前執(zhí)行操作系統(tǒng)完整性檢測(cè),即EFI完整性檢測(cè)以后,DXE階段,執(zhí)行引導(dǎo)服務(wù)(Boot Services)、運(yùn)行服務(wù)(RuntimeService),進(jìn)入DXE調(diào)度(DXE Dispatcher),在這一期間,將加載設(shè)備(Devices)、總線(Bus)或者串口設(shè)備驅(qū)動(dòng)(Serial driver),包括操作系統(tǒng)完整性檢測(cè)驅(qū)動(dòng),進(jìn)入BDS階段后,如果啟動(dòng)模式為操作系統(tǒng)完整性檢測(cè)模式,則將調(diào)用操作系統(tǒng)完整性檢測(cè)單元6,執(zhí)行操作系統(tǒng)完整性檢測(cè)。
操作系統(tǒng)完整性檢測(cè)單元6首先調(diào)用磁盤參數(shù)數(shù)據(jù)檢測(cè)單元,讀取磁盤參數(shù)MBR,活動(dòng)分區(qū),分區(qū)表信息,通過散列算法計(jì)算MBR,活動(dòng)分區(qū),分區(qū)表信息的計(jì)算值,并與磁盤參數(shù)度量值10進(jìn)行比較,檢測(cè)磁盤參數(shù)是否完整;然后,進(jìn)行操作系統(tǒng)可信文件列表11檢測(cè),檢查可信文件是否均存在;最后,可信文件檢測(cè)單元調(diào)用操作系統(tǒng)完整性檢測(cè)方法,執(zhí)行對(duì)每個(gè)可信文件進(jìn)行完整性檢測(cè),比較判斷每個(gè)可信文件代碼是否被篡改,依次針對(duì)每個(gè)文件生成可信文件計(jì)算值,對(duì)操作系統(tǒng)文件完整性進(jìn)行檢測(cè);根據(jù)可信文件度量值12與計(jì)算值相比較,確定單個(gè)可信文件的完整性,進(jìn)而確定操作系統(tǒng)所有可信文件的完整性。
操作系統(tǒng)完整性檢測(cè)單元中的代碼都是以驅(qū)動(dòng)形式存儲(chǔ)在EFI代碼單元中的,EFIBIOS在啟動(dòng)過程中,以驅(qū)動(dòng)的形式調(diào)用操作系統(tǒng)完整性檢測(cè)單元。
本發(fā)明的完整性檢測(cè)啟動(dòng)模式中,在DXE,BDS階段,包含的DXE階段運(yùn)行代碼單元包含有簡(jiǎn)單網(wǎng)絡(luò)驅(qū)動(dòng)單元(Simple Network Driver),簡(jiǎn)單TCPSocket驅(qū)動(dòng)單元(Simple Tcp Socket Driver),這些單元在BDS階段中被調(diào)用配合支持操作系統(tǒng)完整性檢測(cè)功能。
在本發(fā)明的計(jì)算機(jī)系統(tǒng)中,還包括磁盤參數(shù)數(shù)據(jù)恢復(fù)單元7該單元中的磁盤參數(shù)包括但不限于MBR、活動(dòng)分區(qū)、分區(qū)表等,當(dāng)磁盤參數(shù)數(shù)據(jù)檢測(cè)單元檢測(cè)磁盤參數(shù)為不完整時(shí),調(diào)用該單元中的磁盤參數(shù)數(shù)據(jù),強(qiáng)制恢復(fù)磁盤數(shù)據(jù)。
操作系統(tǒng)可信文件恢復(fù)單元9該單元中的操作系統(tǒng)可信文件可以包括但不限于操作系統(tǒng)內(nèi)核文件,關(guān)鍵可信數(shù)據(jù)文件等。操作系統(tǒng)可信文件的可根據(jù)系統(tǒng)運(yùn)行的需要以及用戶的需要定制。當(dāng)操作系統(tǒng)完整性檢測(cè)單元對(duì)操作系統(tǒng)文件完整性進(jìn)行檢測(cè)以后,根據(jù)度量值與計(jì)算值相比較,確定操作系統(tǒng)文件不完整時(shí),調(diào)用所述的操作系統(tǒng)可信文件恢復(fù)單元9中的操作系統(tǒng)可信文件,恢復(fù)操作系統(tǒng)文件。
所述的可信文件度量值12,磁盤參數(shù)度量值10,可信文件列表11,EFI鏡像代碼(Image)恢復(fù)單元8,磁盤參數(shù)數(shù)據(jù)恢復(fù)單元7以及操作系統(tǒng)可信文件恢復(fù)單元9,可以存儲(chǔ)在EFI安全存儲(chǔ)部件中。
EFI安全存儲(chǔ)部件為本地安全存儲(chǔ)部件,或者外置安全存儲(chǔ)部件,其可以是任何通過系統(tǒng)總線、USB、無(wú)線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)連接的任何安全存儲(chǔ)部件,包括具有安全保護(hù)功能的硬盤,如具有HPA(Host Protected Area)的硬盤,或者是具有訪問控制功能的flash存儲(chǔ)器,或者是通過USB接口連接地具有訪問控制功能的大容量USB安全存儲(chǔ)部件。
較佳地,所述外置安全存儲(chǔ)部件為遠(yuǎn)程安全存儲(chǔ)部件,操作系統(tǒng)可信文件恢復(fù)單元9存儲(chǔ)在遠(yuǎn)程安全存儲(chǔ)部件中;可信文件度量值12,磁盤參數(shù)度量值10,可信文件列表11,EFI鏡像代碼(Image)恢復(fù)單元8,磁盤參數(shù)數(shù)據(jù)恢復(fù)單元7存儲(chǔ)在本地安全存儲(chǔ)部件中。在確定操作系統(tǒng)文件不完整時(shí),調(diào)用簡(jiǎn)單網(wǎng)絡(luò)驅(qū)動(dòng)單元,簡(jiǎn)單TCP Socket驅(qū)動(dòng)單元通過網(wǎng)絡(luò)連接到遠(yuǎn)程安全存儲(chǔ)部件,下載該單元中的操作系統(tǒng)可信文件到本地恢復(fù)操作系統(tǒng)文件。
由于EFI直接支持文件讀寫功能,所述EFI鏡像文件(Image)及操作系統(tǒng)可信文件等文件均可以以通用文件格式存儲(chǔ)在安全存儲(chǔ)部件中,利用EFI文件訪問接口進(jìn)行訪問,比較在傳統(tǒng)BIOS上實(shí)現(xiàn)時(shí)需要增加一系列的文件系統(tǒng)訪問接口,其實(shí)現(xiàn)方式更為簡(jiǎn)單易行,擴(kuò)展性好。
本發(fā)明的計(jì)算機(jī)系統(tǒng)中,還可以包括完整性管理單元,其功能是設(shè)置EFIBIOS啟動(dòng)時(shí),是否需要執(zhí)行完整性檢測(cè)啟動(dòng)模式,并可以允許用戶根據(jù)系統(tǒng)運(yùn)行的需要定制操作系統(tǒng)涉及的操作系統(tǒng)可信相關(guān)文件,重新生成操作系統(tǒng)完整性度量值。用戶可以在該管理單元中實(shí)現(xiàn)靈活的完整性檢測(cè)設(shè)置管理功能。該管理單元包括下列單元安全等級(jí)設(shè)置單元當(dāng)用戶設(shè)置目前的BIOS安全等級(jí)為“高安全等級(jí)”時(shí),則在EFI BIOS啟動(dòng)過程中,必須執(zhí)行完整性檢測(cè)啟動(dòng)模式,通過EFI完整性檢測(cè)和操作系統(tǒng)完整性檢測(cè)全過程才能加載運(yùn)行操作系統(tǒng);如果設(shè)置為低安全等級(jí),則意味著安全級(jí)別不高,用戶不需要執(zhí)行完整性檢測(cè)。
操作系統(tǒng)完整性文件預(yù)置單元用戶根據(jù)系統(tǒng)運(yùn)行的需要以及用戶的需要定制其涉及的可信相關(guān)文件,用戶可以從些單元重新生成生成磁盤參數(shù)度量值10,可信文件列表11,可信文件度量值12,及其涉及的可信相關(guān)文件,當(dāng)系統(tǒng)再次進(jìn)行完整性檢測(cè)時(shí),將依照新生成的比較基準(zhǔn)進(jìn)行操作系統(tǒng)完整性檢測(cè)。
EFI完整性預(yù)置單元在用戶選擇EFI完整性預(yù)置管理時(shí),運(yùn)行EFI完整性預(yù)置單元,生成新的EFI完整性度量值。
較佳地,系統(tǒng)設(shè)置只有超級(jí)用戶才可以進(jìn)入完整性管理單元,進(jìn)行涉及安全等級(jí)設(shè)置及文件預(yù)置功能。
本發(fā)明預(yù)先在安全存儲(chǔ)部件中存儲(chǔ)磁盤參數(shù)度量值10、可信文件列表11、可信文件度量值12、磁盤參數(shù)數(shù)據(jù)恢復(fù)單元7、EFI鏡像恢復(fù)代碼(Image)單元8、操作系統(tǒng)可信文件恢復(fù)單元9,擴(kuò)展實(shí)現(xiàn)可進(jìn)行完整性檢測(cè)的EFI系統(tǒng)架構(gòu),其在EFI BIOS啟動(dòng)過程中,先進(jìn)行EFI完整性檢測(cè),然后進(jìn)行計(jì)算機(jī)底層固件運(yùn)行階段的操作系統(tǒng)完整性檢測(cè),確認(rèn)將要啟動(dòng)的操作系統(tǒng)后,才允許引導(dǎo)并加載該操作系統(tǒng)運(yùn)行。本發(fā)明充分保證了操作系統(tǒng)啟動(dòng)之前的可靠性檢測(cè),不依賴于操作系統(tǒng),只依賴于EFI BIOS的檢測(cè)鏈,保證了操作系統(tǒng)的安全和可信,從而嚴(yán)格保證了操作系統(tǒng)運(yùn)行環(huán)境的可信任性,滿足應(yīng)用需求,且實(shí)現(xiàn)成本低、應(yīng)用接口可用性強(qiáng)。
下面結(jié)合所述的計(jì)算機(jī)系統(tǒng)詳細(xì)描述本發(fā)明所述的可進(jìn)行計(jì)算機(jī)系統(tǒng)完整性檢測(cè)的方法步驟如圖2-6所示,本發(fā)明的計(jì)算機(jī)系統(tǒng),是在PEI階段,CPU、芯片組、主板的基本初始化以后,進(jìn)行EFI完整性檢測(cè),操作系統(tǒng)完整性檢測(cè),并可以在完整性檢測(cè)過程中,發(fā)現(xiàn)EFI文件(Image)代碼或者操作系統(tǒng)文件不完整時(shí),選擇是否進(jìn)行文件恢復(fù),還可以進(jìn)行操作系統(tǒng)完整性檢測(cè)管理配置。
EFI完整性檢測(cè)包括如下步驟步驟A在系統(tǒng)上電,運(yùn)行SEC階段,進(jìn)入到PEI階段,CPU初始化(CPUINIT),芯片組初始化(Chipset INIT),主板初始化(Board INIT)完成后,運(yùn)行運(yùn)行模式單元,判斷完整性檢測(cè)啟動(dòng)控制量為真或假,如果為真則開啟完整性檢測(cè)啟動(dòng)模式,否則直接按照通常的啟動(dòng)模式開啟計(jì)算機(jī)系統(tǒng);步驟B當(dāng)以完整性檢測(cè)啟動(dòng)模式啟動(dòng)EFI BIOS時(shí),調(diào)用EFI完整性檢測(cè)單元5以散列算法(Hash算法)計(jì)算出EFI完整性計(jì)算值;步驟C比較判斷當(dāng)前EFI完整性度量值和計(jì)算值是否相等,如果相等,則說明EFI鏡像代碼是完整的,執(zhí)行EFI啟動(dòng)后續(xù)過程;如果不相等,說明EFI鏡像代碼不完整;步驟D當(dāng)EFI鏡像代碼不完整時(shí),用戶選擇是否調(diào)用EFI鏡像代碼恢復(fù)單元9中的EFI鏡像文件恢復(fù)代碼進(jìn)行恢復(fù),如果是,則進(jìn)行EFI鏡像代碼恢復(fù),完成EFI完整性檢測(cè),執(zhí)行EFI后續(xù)過程;否則停止運(yùn)行。
當(dāng)EFI完整性檢測(cè)完成后,系統(tǒng)執(zhí)行操作系統(tǒng)完整性檢測(cè)步驟EEFI完整性檢測(cè)完成后,運(yùn)行DXE階段的流程,DXE調(diào)度操作系統(tǒng)完整性檢測(cè)單元6加載入內(nèi)存;步驟F進(jìn)入BDS階段,如果運(yùn)行模式單元為完整性檢測(cè)設(shè)置,則調(diào)用步驟E所述的操作系統(tǒng)完整性檢測(cè)單元6;
步驟G操作系統(tǒng)完整性檢測(cè)單元6中的可信文件檢測(cè)單元調(diào)用操作系統(tǒng)完整性檢測(cè)方法,執(zhí)行對(duì)每個(gè)可信文件進(jìn)行完整性檢測(cè),比較判斷每個(gè)可信文件代碼是否被篡改,依次針對(duì)每個(gè)文件生成可信文件計(jì)算值,對(duì)操作系統(tǒng)文件完整性進(jìn)行檢測(cè);步驟G還包括下列步驟步驟G1操作系統(tǒng)完整性檢測(cè)單元6首先調(diào)用磁盤參數(shù)數(shù)據(jù)檢測(cè)單元,讀取磁盤參數(shù)MBR,活動(dòng)分區(qū),分區(qū)表信息,通過散列算法計(jì)算MBR,活動(dòng)分區(qū),分區(qū)表信息的計(jì)算值,并與磁盤參數(shù)度量值10進(jìn)行比較,檢測(cè)磁盤參數(shù)是否完整;步驟G2在磁盤參數(shù)數(shù)據(jù)檢測(cè)完成后,進(jìn)行操作系統(tǒng)可信文件列表11檢測(cè),查找對(duì)比操作系統(tǒng)可信文件名,檢測(cè)所有可信文件是否都存在,保證操作系統(tǒng)可信文件的完整性,然后才調(diào)用可信文件檢測(cè)單元進(jìn)行單個(gè)可信文件完整性檢測(cè)。
步驟G1還包括下列步驟步驟G11當(dāng)磁盤參數(shù)數(shù)據(jù)檢測(cè)單元檢測(cè)磁盤參數(shù)為不完整時(shí),調(diào)用磁盤參數(shù)數(shù)據(jù)恢復(fù)單元7中的磁盤參數(shù)數(shù)據(jù),強(qiáng)制恢復(fù)磁盤數(shù)據(jù)。
步驟G2還包括下列步驟步驟G21當(dāng)操作系統(tǒng)可信文件列表11檢測(cè)到操作系統(tǒng)可信文件不存在時(shí),提示用戶可以進(jìn)行操作系統(tǒng)可信文件恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),如果用戶選擇進(jìn)行恢復(fù)后,調(diào)用簡(jiǎn)單網(wǎng)絡(luò)驅(qū)動(dòng)單元,簡(jiǎn)單TCP Socket驅(qū)動(dòng)單元連接到遠(yuǎn)程網(wǎng)絡(luò);步驟G22檢測(cè)本地操作系統(tǒng)的文件與遠(yuǎn)程服務(wù)器上相應(yīng)的操作系統(tǒng)可信文件是否相一致,如果都相一致,關(guān)閉底層網(wǎng)絡(luò)連接,返回重新進(jìn)行操作系統(tǒng)可信文件列表11檢查;否則,進(jìn)入下一步;步驟G23提示用戶是否進(jìn)行恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),則如果用戶選擇恢復(fù),則遠(yuǎn)程服務(wù)器上的相應(yīng)操作系統(tǒng)可信文件被復(fù)制并傳送到本地,覆蓋相應(yīng)的文件,然后關(guān)閉底層網(wǎng)絡(luò)連接,返回重新進(jìn)行操作系統(tǒng)可信文件列表11檢查。
步驟H根據(jù)可信文件度量值與計(jì)算值相比較,確定單個(gè)可信文件的完整性,進(jìn)而確定操作系統(tǒng)所有可信文件的完整性;步驟I當(dāng)操作系統(tǒng)文件不完整時(shí),提示用戶可以進(jìn)行操作系統(tǒng)可信文件恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),如果用戶選擇進(jìn)行恢復(fù)后,調(diào)用簡(jiǎn)單網(wǎng)絡(luò)驅(qū)動(dòng)單元,簡(jiǎn)單TCP Socket驅(qū)動(dòng)單元連接到遠(yuǎn)程網(wǎng)絡(luò);步驟J檢測(cè)本地操作系統(tǒng)的文件與遠(yuǎn)程服務(wù)器上相應(yīng)的操作系統(tǒng)可信文件是否相一致,如果都相一致,關(guān)閉底層網(wǎng)絡(luò)連接,加載并運(yùn)行操作系統(tǒng);否則,進(jìn)入下一步;步驟K提示用戶是否進(jìn)行恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),則如果用戶選擇恢復(fù),則遠(yuǎn)程服務(wù)器上的相應(yīng)操作系統(tǒng)可信文件被復(fù)制并傳送到本地,覆蓋相應(yīng)的文件,然后關(guān)閉底層網(wǎng)絡(luò)連接,加載并運(yùn)行操作系統(tǒng)。
在用戶通過操作系統(tǒng)完整性檢測(cè)之后,可以進(jìn)行系統(tǒng)安全配置設(shè)置,包括如下步驟步驟L在用戶通過了操作系統(tǒng)完整性檢測(cè)之后,可以通過按下特定功能鍵選擇是否進(jìn)入操作系統(tǒng)完整性管理單元;步驟M如果用戶不選擇進(jìn)入操作系統(tǒng)完整性管理單元,則直接啟動(dòng)操作系統(tǒng);當(dāng)用戶選擇進(jìn)入操作系統(tǒng)完整性管理單元時(shí),顯示操作系統(tǒng)完整性管理界面,用戶對(duì)操作系統(tǒng)完整性進(jìn)行管理配置;步驟M1當(dāng)用戶選擇安全等級(jí)管理時(shí),運(yùn)行安全等級(jí)設(shè)置單元,在該管理單元中實(shí)現(xiàn)靈活的操作系統(tǒng)完整性管理功能,可以讓用戶設(shè)置目前的計(jì)算機(jī)系統(tǒng)安全等級(jí),如果設(shè)置為高安全等級(jí),則在EFI BIOS啟動(dòng)過程中,必須通過完整性檢測(cè)全過程才能加載并運(yùn)行操作系統(tǒng);如果設(shè)置為低安全等級(jí),則不執(zhí)行操作系統(tǒng)完整性檢測(cè)。
步驟M2在用戶選擇操作系統(tǒng)完整性文件預(yù)置管理時(shí),運(yùn)行操作系統(tǒng)完整性文件預(yù)置單元,允許用戶根據(jù)系統(tǒng)運(yùn)行的需要以及用戶的需要定制其涉及的操作系統(tǒng)可信文件步驟M21運(yùn)行操作系統(tǒng)完整性文件預(yù)置單元,提示并由用戶選擇增加或者減少操作系統(tǒng)可信文件;步驟M22根據(jù)用戶選擇的操作系統(tǒng)可信文件,生成生成磁盤參數(shù)度量值,可信文件列表,可信文件度量值及其涉及的操作系統(tǒng)可信文件;步驟M23將生成生成磁盤參數(shù)度量值,可信文件列表,可信文件度量值及其涉及的操作系統(tǒng)可信文件存儲(chǔ)到安全存儲(chǔ)部件;步驟M24返回操作系統(tǒng)完整性管理單元。
步驟M3在用戶選擇EFI代碼完整性預(yù)置管理時(shí),運(yùn)行EFI完整性預(yù)置單元,生成新的EFI完整性度量值。
本發(fā)明實(shí)現(xiàn)了一種在EFI BIOS啟動(dòng)的計(jì)算機(jī)底層固件運(yùn)行階段(Pre-boot階段)進(jìn)行完整性檢測(cè)的計(jì)算機(jī)系統(tǒng)及方法。它有效的解決了操作系統(tǒng)啟動(dòng)之前的BIOS層面的完整性認(rèn)證問題,有效保證安全信任鏈的一致性和嚴(yán)密性,完全滿足前述的背景技術(shù)需求;其在完整性檢測(cè)完畢可以直接啟動(dòng)操作系統(tǒng),無(wú)需重啟(Reset)過程,免去操作系統(tǒng)啟動(dòng)標(biāo)志位的設(shè)計(jì),并可以獲得較好的用戶體驗(yàn),有效解決以前方法的各種存在缺陷;同時(shí),其支持功能也很強(qiáng)大,比較傳統(tǒng)BIOS的實(shí)現(xiàn)方法更為簡(jiǎn)單,效果更好;而且支持存儲(chǔ)在將操作系統(tǒng)可信文件存儲(chǔ)在遠(yuǎn)程安全存儲(chǔ)部件,實(shí)現(xiàn)遠(yuǎn)程網(wǎng)絡(luò)操作系統(tǒng)完整性檢測(cè)恢復(fù),進(jìn)一步擴(kuò)充可該方法的使用范圍,相比于傳統(tǒng)BIOS具有較大技術(shù)優(yōu)勢(shì)。進(jìn)一步地,其提供了友好性更好的圖形用戶安全管理配置界面,具有更好的易用性和靈活性利用EFI圖形化基礎(chǔ)接口,并配合擴(kuò)展實(shí)現(xiàn)方法,使用戶使用統(tǒng)一的圖形界面完成操作系統(tǒng)完整性管理配置功能,技術(shù)方案更加靈活易用。
本實(shí)施例是為了更好地理解本發(fā)明進(jìn)行的詳細(xì)的描述,而并不是對(duì)本發(fā)明所保護(hù)的范圍的限定,因此,本領(lǐng)域普通技術(shù)人員不脫離本發(fā)明的主旨情況下,未經(jīng)創(chuàng)造性勞動(dòng)而對(duì)本明所做的改變,是在本發(fā)明的保護(hù)范圍內(nèi)的。
權(quán)利要求
1.一種可進(jìn)行完整性檢測(cè)的計(jì)算機(jī)系統(tǒng),包括EFI存儲(chǔ)單元(1),其特征在于,還包括運(yùn)行模式單元,其包括一個(gè)完整性檢測(cè)啟動(dòng)控制量,在PEI階段CPU、芯片組、主板的基本初始化完成后,通過判斷該運(yùn)行模式單元,決定是否啟動(dòng)完整性檢測(cè)啟動(dòng)模式;所述EFI存儲(chǔ)單元包括EFI完整性檢測(cè)單元(5),用于在完整性檢測(cè)啟動(dòng)模式中,對(duì)EFI鏡像代碼進(jìn)行完整性檢測(cè);EFI完整性檢測(cè)單元(5)包括EFI完整性度量值,用于在EFI完整性檢測(cè)單元對(duì)EFI鏡像代碼進(jìn)行完整性檢測(cè),生成的EFI完整性計(jì)算值后,根據(jù)度量值與計(jì)算值相比較,確定EFI鏡像代碼的完整性。
2.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,運(yùn)行模式單元存儲(chǔ)在硬件單元中。
3.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述EFI存儲(chǔ)單元中的FV RECOVERY單元(2)為只讀代碼單元。
4.根據(jù)權(quán)利要求1所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括有EFI鏡像代碼恢復(fù)單元(8),用于當(dāng)EFI完整性檢測(cè)單元(5)對(duì)EFI鏡像代碼進(jìn)行完整性檢測(cè),確定EFI鏡像代碼為不完整時(shí),調(diào)用所述單元(8)中的EFI鏡像恢復(fù)代碼,恢復(fù)EFI鏡像代碼。
5.根據(jù)權(quán)利要求4所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括操作系統(tǒng)完整性檢測(cè)單元(6),用于在啟動(dòng)操作系統(tǒng)之前強(qiáng)制執(zhí)行操作系統(tǒng)完整性檢測(cè);所述操作系統(tǒng)完整性檢測(cè)單元(6)包括可信文件檢測(cè)單元,用于調(diào)用操作系統(tǒng)完整性檢測(cè)方法,執(zhí)行對(duì)每個(gè)可信文件進(jìn)行完整性檢測(cè),比較判斷每個(gè)可信文件代碼是否被篡改,依次針對(duì)每個(gè)文件生成可信文件計(jì)算值,對(duì)操作系統(tǒng)文件完整性進(jìn)行檢測(cè);所述計(jì)算機(jī)系統(tǒng)還包括可信文件度量值(12),用于操作系統(tǒng)完整性檢測(cè)單元(6)對(duì)每個(gè)可信文件進(jìn)行完整性檢測(cè),比較判斷每個(gè)可信文件代碼是否被篡改,依次針對(duì)每個(gè)文件生成可信文件計(jì)算值后,根據(jù)度量值與計(jì)算值相比較,確定單個(gè)可信文件的完整性,進(jìn)而確定操作系統(tǒng)所有可信文件的完整性。
6.根據(jù)權(quán)利要求5所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述操作系統(tǒng)完整性檢測(cè)單元(6)還包括磁盤參數(shù)數(shù)據(jù)檢測(cè)單元,用于讀取磁盤參數(shù)數(shù)據(jù),檢測(cè)其磁盤參數(shù)數(shù)據(jù)是否完整,再調(diào)用可信文件檢測(cè)單元進(jìn)行單個(gè)可信文件完整性檢測(cè)。所述計(jì)算機(jī)系統(tǒng)還包括磁盤參數(shù)度量值(10),用于操作系統(tǒng)完整性檢測(cè)單元(6)對(duì)操作系統(tǒng)文件所存儲(chǔ)的磁盤進(jìn)行磁盤參數(shù)完整性檢測(cè),生成磁盤參數(shù)完整性計(jì)算值后,所述度量值與計(jì)算值相比較,確定該操作系統(tǒng)存儲(chǔ)磁盤參數(shù)的完整性。
7.根據(jù)權(quán)利要求6所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括磁盤參數(shù)數(shù)據(jù)恢復(fù)單元(7),用于當(dāng)磁盤參數(shù)數(shù)據(jù)檢測(cè)單元檢測(cè)磁盤參數(shù)為不完整時(shí),調(diào)用該單元中的磁盤參數(shù)數(shù)據(jù),強(qiáng)制恢復(fù)磁盤數(shù)據(jù)。
8.根據(jù)權(quán)利要求6所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述還包括可信文件列表(11),用于在磁盤參數(shù)數(shù)據(jù)檢測(cè)完成后,查找對(duì)比操作系統(tǒng)可信文件名,檢測(cè)所有可信文件是否存在,保證操作系統(tǒng)可信文件的完整性,然后調(diào)用可信文件檢測(cè)單元進(jìn)行單個(gè)可信文件完整性檢測(cè)。
9.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括操作系統(tǒng)可信文件恢復(fù)單元(9),當(dāng)操作系統(tǒng)完整性檢測(cè)單元(6)對(duì)操作系統(tǒng)可信文件通過可信文件列表(11)或者可信文件度量值(12)比較,進(jìn)行完整性檢測(cè)后,確定操作系統(tǒng)可信文件不完整或者被篡改時(shí),調(diào)用預(yù)先保存的操作系統(tǒng)可信恢復(fù)文件,強(qiáng)制恢復(fù)該可信文件,恢復(fù)完整的操作系統(tǒng)環(huán)境。
10.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述可信文件度量值(12),磁盤參數(shù)度量值(10),可信文件列表(11),EFI鏡像代碼恢復(fù)單元(8),磁盤參數(shù)數(shù)據(jù)恢復(fù)單元(7)和操作系統(tǒng)可信恢復(fù)文件單元(9),存儲(chǔ)在EFI安全存儲(chǔ)部件中。
11.根據(jù)權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述EFI安全存儲(chǔ)部件為本地安全存儲(chǔ)部件,或者外置安全存儲(chǔ)部件。
12.根據(jù)權(quán)利要求11所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述的外置安全存儲(chǔ)部件為遠(yuǎn)程安全存儲(chǔ)部件時(shí),所述操作系統(tǒng)可信恢復(fù)文件單元(9)存儲(chǔ)在遠(yuǎn)程安全存儲(chǔ)部件中;所述計(jì)算機(jī)系統(tǒng)還包括簡(jiǎn)單網(wǎng)絡(luò)驅(qū)動(dòng)單元,簡(jiǎn)單TCP Socket驅(qū)動(dòng)單元,用于在確定操作系統(tǒng)文件不完整時(shí),調(diào)用簡(jiǎn)單網(wǎng)絡(luò)驅(qū)動(dòng)單元,簡(jiǎn)單TCP Socket驅(qū)動(dòng)單元通過網(wǎng)絡(luò)連接到遠(yuǎn)程安全存儲(chǔ)部件,將存儲(chǔ)在遠(yuǎn)程安全存儲(chǔ)部件中的操作系統(tǒng)可信恢復(fù)文件下載到本地恢復(fù)操作系統(tǒng)文件。
13.根據(jù)權(quán)利要求5所述的計(jì)算機(jī)系統(tǒng),其特征在于,還包括完整性管理單元,用于設(shè)置EFI啟動(dòng)時(shí),是否需要執(zhí)行完整性檢測(cè)啟動(dòng)模式,并可以允許用戶根據(jù)系統(tǒng)運(yùn)行的需要定制操作系統(tǒng)涉及的操作系統(tǒng)可信相關(guān)文件,重新生成磁盤參數(shù)度量值(10),可信文件列表(11),可信文件度量值(12)。
14.根據(jù)權(quán)利要求13所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述完整性管理單元包括安全等級(jí)設(shè)置單元用于設(shè)置所述計(jì)算機(jī)系統(tǒng)的啟動(dòng)模式;完整性預(yù)置單元用于定制操作系統(tǒng)可信文件,重新生成磁盤參數(shù)度量值(10),可信文件列表(11),可信文件度量值(12)及操作系統(tǒng)可信文件,當(dāng)系統(tǒng)再次進(jìn)行完整性檢測(cè)時(shí),依照新的比較基準(zhǔn)進(jìn)行操作系統(tǒng)完整性檢測(cè);EFI完整性預(yù)置單元在用戶選擇EFI完整性預(yù)置管理時(shí),運(yùn)行EFI完整性預(yù)置單元,生成新的EFI完整性度量值。
15.一種計(jì)算機(jī)系統(tǒng)完整性檢測(cè)的方法,其特征在于,包括EFI完整性檢測(cè),即包括下列步驟步驟A在系統(tǒng)上電運(yùn)行至PEI階段,CPU、芯片組、主板的基本初始化完成后,根據(jù)運(yùn)行模式單元,決定是否開啟完整性檢測(cè)啟動(dòng)模式,否則直接按照通常的啟動(dòng)模式開啟計(jì)算機(jī)系統(tǒng);步驟B當(dāng)以完整性檢測(cè)啟動(dòng)模式啟動(dòng)EFI BIOS時(shí),調(diào)用EFI完整性檢測(cè)單元(5)計(jì)算出EFI完整性計(jì)算值;步驟C比較判斷當(dāng)前EFI完整性度量值和計(jì)算值是否相等,如果相等,則說明EFI鏡像代碼是完整的,執(zhí)行EFI BIOS啟動(dòng)后續(xù)過程;如果不相等,說明EFI鏡像代碼不完整,執(zhí)行后續(xù)過程。
16.根據(jù)權(quán)利要求15所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,其特征在于,所述EFI完整性檢測(cè)還包括如下步驟步驟D當(dāng)EFI鏡像代碼不完整時(shí),用戶選擇是否調(diào)用EFI鏡像文件恢復(fù)單元(8)中的EFI鏡像恢復(fù)代碼進(jìn)行恢復(fù),如果是,則進(jìn)行EFI鏡像代碼恢復(fù),完成EFI完整性檢測(cè),執(zhí)行EFI BIOS后續(xù)過程;否則停止運(yùn)行。
17.根據(jù)權(quán)利要求15或16所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,其特征在于,還包括操作系統(tǒng)完整性檢測(cè),即還包括下列步驟步驟EEFI完整性檢測(cè)完成后,運(yùn)行DXE階段的流程,DXE調(diào)度操作系統(tǒng)完整性檢測(cè)單元(6)加載入內(nèi)存;步驟F進(jìn)入BDS階段,如果運(yùn)行模式單元為完整性檢測(cè)設(shè)置,則調(diào)用步驟E所述的操作系統(tǒng)完整性檢測(cè)單元(6);步驟G操作系統(tǒng)完整性檢測(cè)單元(6)中的可信文件檢測(cè)單元調(diào)用操作系統(tǒng)完整性檢測(cè)方法,執(zhí)行對(duì)每個(gè)可信文件進(jìn)行完整性檢測(cè),比較判斷每個(gè)可信文件代碼是否被篡改,依次針對(duì)每個(gè)文件生成可信文件計(jì)算值,對(duì)操作系統(tǒng)文件完整性進(jìn)行檢測(cè);步驟H根據(jù)可信文件度量值(12)與計(jì)算值相比較,確定單個(gè)可信文件的完整性,進(jìn)而確定操作系統(tǒng)所有可信文件的完整性。
18.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,其特征在于,所述操作系統(tǒng)完整性檢測(cè)還包括下列步驟步驟I當(dāng)操作系統(tǒng)可信文件被篡改時(shí),提示用戶可以進(jìn)行操作系統(tǒng)可信文件恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),如果用戶選擇進(jìn)行恢復(fù)后,進(jìn)行下一步;步驟J檢測(cè)操作系統(tǒng)的文件與相應(yīng)的操作系統(tǒng)可信文件是否相一致,如果都相一致,加載并運(yùn)行操作系統(tǒng);否則,進(jìn)入下一步;步驟K提示用戶是否進(jìn)行恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),則如果用戶選擇恢復(fù),則相應(yīng)操作系統(tǒng)可信文件都被復(fù)制覆蓋相應(yīng)的文件,加載并運(yùn)行操作系統(tǒng)。
19.根據(jù)權(quán)利要求18所述的完整性檢測(cè)方法,其特征在于,所述步驟G包括如下步驟步驟G1操作系統(tǒng)完整性檢測(cè)單元(6)首先調(diào)用磁盤參數(shù)數(shù)據(jù)檢測(cè)單元,讀取磁盤參數(shù)MBR,活動(dòng)分區(qū),分區(qū)表信息,通過散列算法計(jì)算MBR,活動(dòng)分區(qū),分區(qū)表信息的計(jì)算值,并與磁盤參數(shù)度量值(10)進(jìn)行比較,檢測(cè)磁盤參數(shù)是否完整,然后才調(diào)用操作系統(tǒng)完整性檢測(cè)單元(6)中的可信文件檢測(cè)單元對(duì)單個(gè)可信文件進(jìn)行完整性檢測(cè)。
20.根據(jù)權(quán)利要求19所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,其特征在于,所述步驟G1包括如下步驟步驟G11當(dāng)磁盤參數(shù)數(shù)據(jù)檢測(cè)單元檢測(cè)磁盤參數(shù)為不完整時(shí),調(diào)用磁盤參數(shù)恢復(fù)單元(7)中的磁盤參數(shù)數(shù)據(jù),強(qiáng)制恢復(fù)磁盤數(shù)據(jù)。
21.根據(jù)權(quán)利要求20所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,其特征在于,所述步驟G還包括下列步驟步驟G2在磁盤參數(shù)數(shù)據(jù)檢測(cè)完成后,進(jìn)行操作系統(tǒng)可信文件列表(11)檢測(cè),查找對(duì)比操作系統(tǒng)可信文件名,檢測(cè)所有可信文件是否都存在,保證操作系統(tǒng)可信文件的完整性,然后才調(diào)用可信文件檢測(cè)單元進(jìn)行單個(gè)可信文件完整性檢測(cè)。
22.根據(jù)權(quán)利要求21所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,其特征在于,所述步驟G2還包括下列步驟步驟G21當(dāng)操作系統(tǒng)可信文件列表(11)檢測(cè)到操作系統(tǒng)可信文件不存在時(shí),強(qiáng)制調(diào)用操作系統(tǒng)可信文件恢復(fù)單元(9),恢復(fù)該操作系統(tǒng)可信文件。
23.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,其特征在于,所述操作系統(tǒng)完整性檢測(cè)還包括下列步驟步驟I當(dāng)操作系統(tǒng)文件不完整時(shí),提示用戶可以進(jìn)行操作系統(tǒng)可信文件恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),如果用戶選擇進(jìn)行恢復(fù)后,調(diào)用簡(jiǎn)單網(wǎng)絡(luò)驅(qū)動(dòng)單元,簡(jiǎn)單TCP Socket驅(qū)動(dòng)單元連接到遠(yuǎn)程網(wǎng)絡(luò);步驟J檢測(cè)本地操作系統(tǒng)的文件與遠(yuǎn)程服務(wù)器上相應(yīng)的操作系統(tǒng)可信文件是否相一致,如果都相一致,關(guān)閉底層網(wǎng)絡(luò)連接,加載并運(yùn)行操作系統(tǒng);否則,進(jìn)入下一步;步驟K提示用戶是否進(jìn)行恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),則如果用戶選擇恢復(fù),則遠(yuǎn)程服務(wù)器上的相應(yīng)操作系統(tǒng)可信文件被復(fù)制并傳送到本地,覆蓋相應(yīng)的文件,然后關(guān)閉底層網(wǎng)絡(luò)連接,加載并運(yùn)行操作系統(tǒng)。
24.根據(jù)權(quán)利要求23所述的完整性檢測(cè)方法,其特征在于,所述步驟G包括如下步驟步驟G1操作系統(tǒng)完整性檢測(cè)單元(6)首先調(diào)用磁盤參數(shù)數(shù)據(jù)檢測(cè)單元,讀取磁盤參數(shù)MBR,活動(dòng)分區(qū),分區(qū)表信息,通過散列算法計(jì)算MBR,活動(dòng)分區(qū),分區(qū)表信息的計(jì)算值,并與磁盤參數(shù)度量值(10)進(jìn)行比較,檢測(cè)磁盤參數(shù)是否完整,然后才調(diào)用操作系統(tǒng)完整性檢測(cè)單元(6)中的可信文件檢測(cè)單元對(duì)單個(gè)可信文件進(jìn)行完整性檢測(cè)。
25.根據(jù)權(quán)利要求24所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,其特征在于,所述步驟G1包括如下步驟步驟G11當(dāng)磁盤參數(shù)數(shù)據(jù)檢測(cè)單元檢測(cè)磁盤參數(shù)為不完整時(shí),調(diào)用該單元中的磁盤參數(shù)數(shù)據(jù),強(qiáng)制恢復(fù)磁盤數(shù)據(jù)。
26.根據(jù)權(quán)利要求25所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,其特征在于,所述步驟G還包括下列步驟步驟G2在磁盤參數(shù)數(shù)據(jù)檢測(cè)完成后,進(jìn)行操作系統(tǒng)可信文件列表(11)檢測(cè),查找對(duì)比操作系統(tǒng)可信文件名,檢測(cè)所有可信文件是否都存在,保證操作系統(tǒng)可信文件的完整性,然后才調(diào)用可信文件檢測(cè)單元(6)進(jìn)行單個(gè)可信文件完整性檢測(cè)。
27.根據(jù)權(quán)利要求26所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,其特征在于,所述步驟G2還包括下列步驟步驟G21當(dāng)操作系統(tǒng)可信文件列表檢測(cè)到操作系統(tǒng)可信文件不存在時(shí),提示用戶可以進(jìn)行操作系統(tǒng)可信文件恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),如果用戶選擇進(jìn)行恢復(fù)后,調(diào)用簡(jiǎn)單網(wǎng)絡(luò)驅(qū)動(dòng)單元,簡(jiǎn)單TCP Socket驅(qū)動(dòng)單元連接到遠(yuǎn)程網(wǎng)絡(luò);步驟G22檢測(cè)本地操作系統(tǒng)的文件與遠(yuǎn)程服務(wù)器上相應(yīng)的操作系統(tǒng)可信文件是否相一致,如果都相一致,關(guān)閉底層網(wǎng)絡(luò)連接,返回重新進(jìn)行操作系統(tǒng)可信文件列表(11)檢查;否則,進(jìn)入下一步;步驟G23提示用戶是否進(jìn)行恢復(fù),如果用戶選擇不進(jìn)行恢復(fù),則停止加載操作系統(tǒng),則如果用戶選擇恢復(fù),則遠(yuǎn)程服務(wù)器上的相應(yīng)操作系統(tǒng)可信文件被復(fù)制并傳送到本地,覆蓋相應(yīng)的文件,然后關(guān)閉底層網(wǎng)絡(luò)連接,返回重新進(jìn)行操作系統(tǒng)可信文件列表(11)檢查。
28.根據(jù)權(quán)利要求17所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,其特征在于,還包括完整性管理配置,其包括如下步驟步驟L在用戶通過了操作系統(tǒng)完整性檢測(cè)之后,選擇是否進(jìn)入操作系統(tǒng)完整性管理單元;步驟M如果用戶不選擇進(jìn)入操作系統(tǒng)完整性管理單元,則直接啟動(dòng)操作系統(tǒng);當(dāng)用戶選擇進(jìn)入操作系統(tǒng)完整性管理單元時(shí),顯示操作系統(tǒng)完整性管理界面,用戶對(duì)操作系統(tǒng)完整性進(jìn)行管理配置。
29.根據(jù)權(quán)利要求28所述的計(jì)算機(jī)系統(tǒng)完整性檢測(cè)方法,其特征在于,所述步驟M包括下列步驟步驟M1當(dāng)用戶選擇安全等級(jí)管理時(shí),運(yùn)行安全等級(jí)設(shè)置單元,設(shè)置目前的計(jì)算機(jī)系統(tǒng)安全等級(jí);步驟M2在用戶選擇操作系統(tǒng)完整性文件預(yù)置管理時(shí),運(yùn)行操作系統(tǒng)完整性文件預(yù)置單元,用戶定制操作系統(tǒng)可信文件;步驟M3在用戶選擇EFI代碼完整性預(yù)置管理時(shí),運(yùn)行EFI完整性預(yù)置單元,生成新的EFI完整性度量值。
30.根據(jù)權(quán)利要求29所述的操作系統(tǒng)完整性檢測(cè)方法,其特征在于,所述步驟M2包括下列步驟步驟M21運(yùn)行操作系統(tǒng)完整性文件預(yù)置單元,提示并由用戶選擇增加或者減少操作系統(tǒng)可信文件;步驟M22根據(jù)用戶選擇的操作系統(tǒng)可信文件,生成生成磁盤參數(shù)度量值(10),可信文件列表(11),可信文件度量值(12)及其涉及的操作系統(tǒng)可信文件;步驟M23將生成生成磁盤參數(shù)度量值(10),可信文件列表(11),可信文件度量值(12)及其涉及的操作系統(tǒng)可信文件存儲(chǔ)到EFI安全存儲(chǔ)部件;步驟M24返回操作系統(tǒng)完整性管理單元。
全文摘要
一種可進(jìn)行完整性檢測(cè)的計(jì)算機(jī)系統(tǒng)和方法,包括運(yùn)行模式單元,其包括一個(gè)完整性檢測(cè)啟動(dòng)控制量,通過判斷該運(yùn)行模式單元,決定是否啟動(dòng)完整性檢測(cè)啟動(dòng)模式;EFI完整性檢測(cè)單元(5),對(duì)EFI鏡像代碼進(jìn)行完整性檢測(cè);EFI完整性檢測(cè)單元(5)包括EFI完整性度量值,在生成的EFI完整性計(jì)算值后,根據(jù)度量值與計(jì)算值相比較,確定EFI鏡像代碼的完整性。還包括操作系統(tǒng)完整性檢測(cè)單元(6)及完整性管理單元。其基于EFI BIOS,在計(jì)算機(jī)底層固件運(yùn)行階段對(duì)操作系統(tǒng)的完整性進(jìn)行檢測(cè),具有更好的可靠性及安全性。
文檔編號(hào)G06F21/57GK1952885SQ20051011289
公開日2007年4月25日 申請(qǐng)日期2005年10月19日 優(yōu)先權(quán)日2005年10月19日
發(fā)明者張怡, 周建, 席振新, 田宏萍 申請(qǐng)人:聯(lián)想(北京)有限公司