專利名稱:基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)信息安全領(lǐng)域,尤其涉及一種操作系統(tǒng)的可信引導(dǎo)方法。
背景技術(shù):
隨著計(jì)算機(jī)系統(tǒng),尤其是端系統(tǒng)中安全問題的日益突出,網(wǎng)絡(luò)環(huán)境下的計(jì)算機(jī)系統(tǒng)正面臨嚴(yán)重的信任危機(jī)。信息系統(tǒng)產(chǎn)生安全問題的主要原因是主機(jī)軟、硬件結(jié)構(gòu)存在設(shè)計(jì)漏洞;對(duì)合法的用戶沒有進(jìn)行嚴(yán)格的認(rèn)證和授權(quán)控制,導(dǎo)致資源被濫用;惡意程序利用系統(tǒng)弱點(diǎn)肆意進(jìn)行破壞等。要徹底解決這些問題,歸根結(jié)底要從體系結(jié)構(gòu)上解決端系統(tǒng)的安全問題,為系統(tǒng)建立可信的計(jì)算環(huán)境??尚庞?jì)算平臺(tái)技術(shù)就是由此而生??尚庞?jì)算平臺(tái)技術(shù)由可信計(jì)算組織(Trusted Computing Group, TCG)提出,旨在基于可信硬件——可信平臺(tái)模塊TPM(Trust Platform Module),并通過系統(tǒng)引導(dǎo)過程中的不斷的信任度量實(shí)現(xiàn)信任鏈的傳遞,構(gòu)建可信的計(jì)算環(huán)境。可信引導(dǎo)是可信計(jì)算平臺(tái)TPM的核心安全功能,通過可信引導(dǎo),建立軟件應(yīng)用運(yùn)行的可信計(jì)算環(huán)境,確保系統(tǒng)軟硬件整體的完整性。可信引導(dǎo)過程必須保證以下三點(diǎn)(1) 信任的逐層傳遞。當(dāng)前一個(gè)可執(zhí)行實(shí)體被度量并驗(yàn)證是可信并執(zhí)行后,其轉(zhuǎn)移控制權(quán)至下一個(gè)可執(zhí)行實(shí)體之前,必須先對(duì)其進(jìn)行度量,驗(yàn)證可信后方可轉(zhuǎn)移控制權(quán),信任從而傳遞至下一個(gè)執(zhí)行實(shí)體。(2)在信任鏈的建立過程中涉及到的所有的度量和驗(yàn)證調(diào)用將最終由TPM 驗(yàn)證模塊來完成。(3)信任鏈建立在逐層度量和驗(yàn)證基礎(chǔ)上,在驗(yàn)證過程中,由TPM負(fù)責(zé)保證重要秘密數(shù)據(jù)的完整性和保密性。在可信鏈傳遞過程中涉及的所有重要數(shù)據(jù)、需要預(yù)存的驗(yàn)證碼都必須由TPM來保存,不能使用可移動(dòng)的存儲(chǔ)裝置或PC機(jī)的系統(tǒng)內(nèi)存,并且這些數(shù)據(jù)在使用過程中不能脫離TPM。TPM也不能提供訪問這些數(shù)據(jù)的外部調(diào)用接口,以保證這些重要數(shù)據(jù)的秘密和可信。目前,在基于TPM計(jì)算機(jī)系統(tǒng)中,可信引導(dǎo)主要包括兩個(gè)階段硬件平臺(tái)的引導(dǎo)和操作系統(tǒng)的啟動(dòng)階段。硬件平臺(tái)的引導(dǎo)包括從平臺(tái)加電、BIOS運(yùn)行到BIOS將控制權(quán)交給 Boot之前。這期間主要是保證硬件環(huán)境的可信。操作系統(tǒng)的啟動(dòng)階段從主引導(dǎo)區(qū)調(diào)入操作系統(tǒng)裝載程序一直到操作系統(tǒng)內(nèi)核運(yùn)行完畢,并運(yùn)行^it進(jìn)程。該階段主要保證系統(tǒng)的啟動(dòng)過程和操作系統(tǒng)內(nèi)核的可信。基于TPM的操作系統(tǒng)的啟動(dòng)階段中的可信引導(dǎo)過程,基本步驟如下
第一步可信BIOS根據(jù)設(shè)置運(yùn)行引導(dǎo)扇區(qū)中的Boot程序;由TPM中的驗(yàn)證程序?qū)oot 程序進(jìn)行可信度量。如果驗(yàn)證成功,則將Boot讀到內(nèi)存0000 7C00h處,再將控制權(quán)轉(zhuǎn)交給硬件平臺(tái)的CPU運(yùn)行Boot程序,進(jìn)入操作系統(tǒng)引導(dǎo)階段。第二步由TPM驗(yàn)證操作系統(tǒng)引導(dǎo)程序Grub。如果驗(yàn)證成功,則將位于主引導(dǎo)扇區(qū)的Grub Stagel引導(dǎo)代碼加載到內(nèi)存,并將控制權(quán)交給CPU運(yùn)行Grub程序,進(jìn)入操作系統(tǒng)內(nèi)核加載階段。第三步進(jìn)入Grub Stagel引導(dǎo)過程,由TPM驗(yàn)證Grub Stagel. 5階段的代碼,若驗(yàn)證成功,則執(zhí)行Magel. 5階段的代碼,加載文件系統(tǒng)。
第四步進(jìn)入Grub Mage2引導(dǎo)過程,由TPM驗(yàn)證Grub Mage2階段的代碼,若驗(yàn)證成功,則執(zhí)行Mage2階段的代碼。Mage2階段的代碼根據(jù)配置文件/boot/Grub/Grub, conf配置文件的信息,可以讀取由Grub引導(dǎo)的操作系統(tǒng)駐留的磁盤分區(qū)、內(nèi)核映像及磁盤虛擬RAM文件initrd。第五步打開配置文件,讀取操作系統(tǒng)內(nèi)核映像,由TPM驗(yàn)證操作系統(tǒng)內(nèi)核映像的完整性,若驗(yàn)證成功,則加載操作系統(tǒng)內(nèi)核映像并傳遞控制權(quán)。第六步操作系統(tǒng)內(nèi)核映像加載完畢,由TPM驗(yàn)證hit進(jìn)程,驗(yàn)證成功后,創(chuàng)建內(nèi)核關(guān)鍵數(shù)據(jù)結(jié)構(gòu),創(chuàng)建并運(yùn)行內(nèi)核hit進(jìn)程。第七步Init進(jìn)程根據(jù)系統(tǒng)配置確定需要加載內(nèi)核模塊和需要?jiǎng)?chuàng)建的守護(hù)進(jìn)程, 由TPM模塊驗(yàn)證其完整性,并執(zhí)行相應(yīng)動(dòng)作加載內(nèi)核模塊、創(chuàng)建守護(hù)進(jìn)程,并開始接收用戶的輸入,整個(gè)機(jī)器進(jìn)入正常的執(zhí)行狀態(tài)。至此,操作系統(tǒng)的可信引導(dǎo)過程結(jié)束?;赥PM的操作系統(tǒng)可信引導(dǎo)過程基于“正向完整性驗(yàn)證”過程實(shí)現(xiàn),即“通過與操作系統(tǒng)引導(dǎo)過程相一致的完整性驗(yàn)證過程實(shí)現(xiàn)可信引導(dǎo)”??尚庞?jì)算平臺(tái)技術(shù)引入了可信平臺(tái)模塊TPM以及相關(guān)的軟件作為系統(tǒng)的可信根, 通過信任的傳遞過程,確保計(jì)算平臺(tái)和應(yīng)用程序的可信賴性,提高終端平臺(tái)的安全性。但是,要想獲得TCG定義的各種安全特性,就必須要有專門的可信硬件支持,這成了限制可信計(jì)算平臺(tái)技術(shù)推廣應(yīng)用的主要障礙。在整個(gè)可信引導(dǎo)過程中,TPM芯片是可信計(jì)算信任鏈得以傳遞的基礎(chǔ)。但是,目前配置了 TPM芯片的計(jì)算設(shè)備并不多,從而限制了可信計(jì)算技術(shù)的應(yīng)用范圍。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是針對(duì)現(xiàn)有技術(shù)存在的問題,本發(fā)明提供一種以數(shù)據(jù)和可執(zhí)行文件鏡像的完整性驗(yàn)證為主要安全手段,以階段完整性驗(yàn)證為主要方式的,可代替TPM的操作系統(tǒng)可信引導(dǎo),且靈活性和易用性更好的基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法。為解決上述技術(shù)問題,本發(fā)明采用以下技術(shù)方案
一種基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,其特征在于包括以下步驟
(1)預(yù)度量操作系統(tǒng)進(jìn)行常規(guī)引導(dǎo)直至開始接收用戶輸入,加載系統(tǒng)預(yù)度量程序,由系統(tǒng)預(yù)度量程序依次讀取系統(tǒng)引導(dǎo)各階段的信息,每讀取一個(gè)階段的信息,便對(duì)所述階段的信息進(jìn)行第一次可信度量,并將第一次可信度量的結(jié)果作為所述階段的可信引導(dǎo)度量值寫入一存儲(chǔ)單元中;
(2)反向完整性驗(yàn)證操作系統(tǒng)再次引導(dǎo)直至開始接收用戶輸入,加載反向完整性驗(yàn)證模塊和所述存儲(chǔ)單元,由所述反向完整性驗(yàn)證模塊從所述存儲(chǔ)單元中讀取系統(tǒng)引導(dǎo)各階段的可信引導(dǎo)度量值,并依次讀取系統(tǒng)引導(dǎo)各階段的信息,每讀取一個(gè)階段的信息,便對(duì)所述階段的信息進(jìn)行第二次可信度量,將所述第二次可信度量的結(jié)果與所述階段的可信引導(dǎo)度量值進(jìn)行比對(duì),若二者不相等,則將系統(tǒng)狀態(tài)置為不可信并激活相應(yīng)的可信引導(dǎo)失敗處理程序;否則進(jìn)入下一階段的第二次可信度量和比對(duì)直至系統(tǒng)引導(dǎo)所有階段的度量完成,將操作系統(tǒng)置為可信狀態(tài),操作系統(tǒng)可信引導(dǎo)成功。
作為本發(fā)明的進(jìn)一步改進(jìn)
上述的方法中,所述系統(tǒng)引導(dǎo)的各階段的信息包括依次加載的以下9個(gè)階段的文件信
息
DBIOS信息;
2)主引導(dǎo)扇區(qū)中的GrubStagel數(shù)據(jù);
3)Grub Stagel. 5 數(shù)據(jù);
4)Grub Stage2 的數(shù)據(jù);
5)Grub配置文件;
6)內(nèi)核映像文件; 7Mnit進(jìn)程數(shù)據(jù);
8)Init進(jìn)程根據(jù)系統(tǒng)配置加載的內(nèi)核模塊數(shù)據(jù);
9)Init進(jìn)程根據(jù)系統(tǒng)配置加載的守護(hù)進(jìn)程數(shù)據(jù);
其中,所述BIOS信息包括系統(tǒng)平臺(tái)硬件信息的固件層的信息、實(shí)現(xiàn)系統(tǒng)引導(dǎo)的最初階段的信息和完成硬件加電到操作系統(tǒng)引導(dǎo)開始的功能操作信息;所述主引導(dǎo)扇區(qū)中的Grub Stagel數(shù)據(jù)、Grub Stagel. 5數(shù)據(jù)、Grub Stage2的數(shù)據(jù)和hit進(jìn)程根據(jù)系統(tǒng)配置加載的內(nèi)核模塊數(shù)據(jù)屬于操作系統(tǒng)內(nèi)核。所述操作系統(tǒng)進(jìn)行常規(guī)引導(dǎo)直至開始接收用戶輸入和所述操作系統(tǒng)進(jìn)行再次引導(dǎo)直至開始接收用戶輸入,指從BIOS加載直到hit進(jìn)程成功加載。所述系統(tǒng)預(yù)度量程序和所述反向完整性驗(yàn)證模塊設(shè)置于操作系統(tǒng)中,所述存儲(chǔ)單元設(shè)置于一 USBKey中。所述加載系統(tǒng)預(yù)度量程序前,先對(duì)所述USBKey進(jìn)行PIN碼驗(yàn)證,驗(yàn)證成功后再加載所述系統(tǒng)預(yù)度量程序。所述可信度量是通過SHAl算法實(shí)現(xiàn)的,SHAl算法模塊預(yù)設(shè)于所述USBKey中。所述加載反向完整性驗(yàn)證模塊前,先對(duì)所述USBKey進(jìn)行PIN碼驗(yàn)證,若成功,則驗(yàn)證反向完整性驗(yàn)證模塊的合法性和完整性,驗(yàn)證成功后,加載所述反向完整性驗(yàn)證模塊。在進(jìn)行驗(yàn)證反向完整性驗(yàn)證模塊的合法性和完整性時(shí),具體實(shí)現(xiàn)方式為采用一用戶數(shù)字證書對(duì)所述反向完整性驗(yàn)證模塊進(jìn)行摘要驗(yàn)證和簽名認(rèn)證,所述用戶數(shù)字證書存儲(chǔ)于所述USBKey中,所述摘要驗(yàn)證和簽名驗(yàn)證的算法模塊也預(yù)設(shè)于所述USBKey中。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于
1、本發(fā)明的基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,以數(shù)據(jù)和可執(zhí)行文件鏡像的完整性驗(yàn)證為主要安全手段,以階段完整性驗(yàn)證為主要方式,因而對(duì)操作系統(tǒng)引導(dǎo)過程中的模塊加載順序不敏感,并能確保軟件功能代碼的完整性;與基于TPM的操作系統(tǒng)可信引導(dǎo)過程相比,本發(fā)明具有更好的靈活性和易用性。2、本發(fā)明的基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,在不具備TPM芯片的計(jì)算機(jī)上,基于USBKey實(shí)現(xiàn)了操作系統(tǒng)的可信引導(dǎo),大大提升了可信計(jì)算技術(shù)的應(yīng)用范圍;簡化了可信引導(dǎo)的環(huán)境,通過反向驗(yàn)證方法,支持系統(tǒng)引導(dǎo)過程的任意階段的系統(tǒng)完整性驗(yàn)證。
圖1是本發(fā)明的具體實(shí)施例中的USBKey與涉及的操作系統(tǒng)模塊間的關(guān)系示意圖2是本發(fā)明具體實(shí)施例中的預(yù)度量步驟流程示意圖; 圖3是本發(fā)明具體實(shí)施例中的反向完整性驗(yàn)證步驟流程示意圖。
具體實(shí)施例方式以下將結(jié)合說明書附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。如圖1所示,本發(fā)明的基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,是通過操作系統(tǒng)內(nèi)核、BIOS (固件)、USBKey (USB智能卡)三部分配合實(shí)現(xiàn)的。操作系統(tǒng)內(nèi)核是軟件系統(tǒng)運(yùn)行的基本環(huán)境,完成系統(tǒng)硬件的驅(qū)動(dòng)加載和系統(tǒng)執(zhí)行環(huán)境的構(gòu)建。在系統(tǒng)引導(dǎo)過程中,操作系統(tǒng)內(nèi)核包括系統(tǒng)引導(dǎo)的Mage U Stage 1. 5、Stage 2和之后加載的內(nèi)核模塊。 BIOS涵蓋了系統(tǒng)平臺(tái)硬件信息的固件層,實(shí)現(xiàn)系統(tǒng)引導(dǎo)的最初階段,完成硬件加電到操作系統(tǒng)引導(dǎo)開始的功能操作。本實(shí)施例中,用到的USBKey內(nèi)置了 CPU、存儲(chǔ)器和芯片操作系統(tǒng)(COS),內(nèi)部具有安全數(shù)據(jù)存儲(chǔ)空間(本實(shí)施例中,為存儲(chǔ)單元),可以存儲(chǔ)用戶數(shù)字證書、 密鑰等秘密數(shù)據(jù)。USBKey內(nèi)部還設(shè)有一計(jì)算單元,支持SHAl算法、簽名、認(rèn)證、數(shù)據(jù)加解密、 數(shù)據(jù)摘要等封閉操作,可以利用其實(shí)現(xiàn)對(duì)數(shù)據(jù)的完整性校驗(yàn)。如圖2、圖3所示,本發(fā)明的基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,包括以下步驟
1、預(yù)度量操作系統(tǒng)進(jìn)行常規(guī)引導(dǎo)直至開始接收用戶輸入,加載系統(tǒng)預(yù)度量程序,由系統(tǒng)預(yù)度量程序依次讀取系統(tǒng)引導(dǎo)各階段的信息,每讀取一個(gè)階段的信息,便對(duì)該階段的信息進(jìn)行第一次可信度量,并將第一次可信度量的結(jié)果作為該階段的可信引導(dǎo)度量值寫入于一存儲(chǔ)單元中;如圖2所示,其具體步驟如下
1. 1操作系統(tǒng)進(jìn)行常規(guī)引導(dǎo)直至開始接收用戶輸入,即從BIOS加載一直到hit進(jìn)程成功加載,此時(shí),插入U(xiǎn)SBKey,進(jìn)行PIN碼驗(yàn)證,若成功則運(yùn)行系統(tǒng)預(yù)度量程序,否則預(yù)度量失??;
1. 2由系統(tǒng)預(yù)度量程序讀取BIOS信息,并采用設(shè)于USBKey中的SHAl算法模塊進(jìn)行可信度量,將度量結(jié)果作為BIOS度量值,存入U(xiǎn)SBKey的存儲(chǔ)單元中。SHAl算法,即安全哈希算法(Secure Hash Algorithm)主要適用于數(shù)字簽名標(biāo)準(zhǔn) (Digital Signature Standard DSS)中的數(shù)字簽名算法(Digital Signature Algorithm DSA)。對(duì)于長度小于2~64位的消息,SHAl算法會(huì)產(chǎn)生一個(gè)160位的消息摘要;當(dāng)接收到消息的時(shí)候,這個(gè)消息摘要可以用來驗(yàn)證數(shù)據(jù)的完整性(SHA1算法的詳細(xì)規(guī)范,可參考 NIST NSA 網(wǎng)站 http://www. itl.nist. gov/fipspubs 的標(biāo)準(zhǔn) FIPS 180-2: Secure Hash Standard (SHS))。1.3由系統(tǒng)預(yù)度量程序讀取主引導(dǎo)扇區(qū)中的Grub Magel數(shù)據(jù),并采用設(shè)于 USBKey中的SHAl算法模塊進(jìn)行可信度量,將度量結(jié)果作為Grub Stagel度量值,存入 USBKey的存儲(chǔ)單元中;
1. 4系統(tǒng)預(yù)度量程序讀取Grub Stagel. 5的代碼數(shù)據(jù),并采用設(shè)于USBKey中的SHAl算法模塊進(jìn)行可信度量,將度量結(jié)果作為Grub Magel. 5度量值,存入U(xiǎn)SBKey的存儲(chǔ)單元中; 1. 5系統(tǒng)預(yù)度量程序讀取Grub Stage2的代碼數(shù)據(jù),并采用設(shè)于USBKey中的SHAl算法模塊進(jìn)行可信度量,將度量結(jié)果作為Grub Mage2度量值,存入U(xiǎn)SBKey的存儲(chǔ)單元中;
1. 6系統(tǒng)預(yù)度量程序讀取Grub配置文件/boot/Grub/Grub, conf,并采用設(shè)于USBKey 中的SHAl算法模塊進(jìn)行可信度量,將度量結(jié)果作為Grub配置文件度量值,存入U(xiǎn)SBKey的存儲(chǔ)單元中;
1. 7系統(tǒng)預(yù)度量程序讀取操作系統(tǒng)內(nèi)核映像文件,并采用設(shè)于USBKey中的SHAl算法模塊進(jìn)行可信度量,將度量結(jié)果作為操作系統(tǒng)內(nèi)核映像度量值,存入U(xiǎn)SBKey的存儲(chǔ)單元中;
1. 8系統(tǒng)預(yù)度量程序讀取hit進(jìn)程數(shù)據(jù),并用USBKey進(jìn)行可信度量,將度量結(jié)果作為 Init進(jìn)程度量值,存入U(xiǎn)SBKey的存儲(chǔ)單元中;
1. 9系統(tǒng)預(yù)度量程序讀取后續(xù)加載內(nèi)核模塊數(shù)據(jù),并用USBKey進(jìn)行可信度量,將度量結(jié)果作為內(nèi)核模塊度量值,存入U(xiǎn)SBKey的存儲(chǔ)單元中;
1. 10系統(tǒng)預(yù)度量程序讀取后續(xù)加載守護(hù)進(jìn)程數(shù)據(jù),并用USBKey進(jìn)行可信度量,將度量結(jié)果作為守護(hù)進(jìn)程度量值,存入U(xiǎn)SBKey的存儲(chǔ)單元中;
1. 11利用USBKey中的用戶數(shù)字證書,用USBKey對(duì)反向完整性驗(yàn)證模塊ReV_Verify_ Mod進(jìn)行摘要和簽名驗(yàn)證,并將結(jié)果作為摘要值,存入U(xiǎn)SBKey的存儲(chǔ)單元中;
1.12系統(tǒng)預(yù)度量過程結(jié)束,退出預(yù)度量程序。 2、反向完整性驗(yàn)證操作系統(tǒng)再次引導(dǎo)直至開始接收用戶輸入,加載反向完整性驗(yàn)證模塊和所述存儲(chǔ)單元,由所述反向完整性驗(yàn)證模塊從所述存儲(chǔ)單元中讀取系統(tǒng)引導(dǎo)各階段的可信引導(dǎo)度量值,并依次讀取系統(tǒng)引導(dǎo)各階段的信息,每讀取一個(gè)階段的信息,便對(duì)所述階段的信息進(jìn)行第二次可信度量,將所述第二次可信度量的結(jié)果與所述階段的可信引導(dǎo)度量值進(jìn)行比對(duì),若二者不相等,則將系統(tǒng)狀態(tài)置為不可信并激活相應(yīng)的可信引導(dǎo)失敗處理程序;否則進(jìn)入下一階段的第二次可信度量和比對(duì)直至系統(tǒng)引導(dǎo)所有階段的度量完成,將操作系統(tǒng)置為可信狀態(tài),操作系統(tǒng)可信引導(dǎo)成功。如圖3所示,其具體步驟如下
2.1插入U(xiǎn)SBKey,操作系統(tǒng)再次引導(dǎo)直至開始接收用戶輸入,即從BIOS加載一直到 Init進(jìn)程成功加載;
2. 2由hit進(jìn)程加載USBKey驅(qū)動(dòng),并進(jìn)行USBKey的PIN碼驗(yàn)證; 2. 3若PIN碼驗(yàn)證成功,USBKey成功加載,則用USBKey驗(yàn)證反向完整性驗(yàn)證模塊Rev_ Verify_Mod的合法性和完整性(本實(shí)施例中,采用用戶數(shù)字證書進(jìn)行摘要和簽名驗(yàn)證,該用戶數(shù)字證書存儲(chǔ)于上述USBKey中,摘要驗(yàn)證和簽名驗(yàn)證的算法模塊也預(yù)設(shè)于該USBKey 中),將驗(yàn)證結(jié)果與步驟1. 11中存儲(chǔ)的摘要值進(jìn)行比對(duì),若二者相同,則驗(yàn)證成功;由操作系統(tǒng)內(nèi)核加載反向完整性驗(yàn)證模塊ReV_Verify_Mod,并將控制權(quán)交給ReV_Verify_M0d模塊;
2. 4由ReV_Verify_M0d模塊從USBKey安全存儲(chǔ)區(qū)域讀取預(yù)度量過程中記錄的操作系統(tǒng)引導(dǎo)各階段的可信引導(dǎo)度量值,包括BIOS度量值、Grub Magel度量值、Grub Stagel. 5 度量值、Grub Stage2度量值、Grub配置文件度量值、操作系統(tǒng)內(nèi)核映像度量值、Init進(jìn)程度量值、內(nèi)核模塊度量值和守護(hù)進(jìn)程度量值;
2. 5由Rev_Verify_M0d模塊讀取BIOS信息,并用USBKey進(jìn)行可信度量,將度量結(jié)果與記錄的BIOS度量值比對(duì),若相等則度量成功;否則,將系統(tǒng)狀態(tài)置為不可信;
2. 6由Rev_Verify_Mod模塊讀取Grub Stagel的數(shù)據(jù),并用USBKey進(jìn)行可信度量,將度量結(jié)果與記錄的Grub Stage 1度量值比對(duì),若相等則度量成功;否則,將系統(tǒng)狀態(tài)置為
8不可信;
2. 7由Rev_Verify_Mod模塊讀取Grub Stagel. 5的數(shù)據(jù),并用USBKey進(jìn)行可信度量, 將度量結(jié)果與記錄的Grub Stage 1. 5度量值比對(duì),若相等則度量成功;否則,將系統(tǒng)狀態(tài)置為不可信;
2. 8由ReV_Verify_M0d模塊讀取Grub Stage2的數(shù)據(jù),并用USBKey進(jìn)行可信度量,將度量結(jié)果與記錄的Grub Stage 2度量值比對(duì),若相等則度量成功;否則,將系統(tǒng)狀態(tài)置為不可信;
2. 9由Rev_Verify_M0d模塊讀取Grub配置文件,并用USBKey進(jìn)行可信度量,將度量結(jié)果與記錄的Grub配置文件度量值比對(duì),若相等則度量成功;否則,將系統(tǒng)狀態(tài)置為不可信;
2. 10由ReV_Verify_M0d模塊讀取操作系統(tǒng)內(nèi)核映像文件,并用USBKey進(jìn)行可信度量, 將度量結(jié)果與記錄的操作系統(tǒng)內(nèi)核映像度量值比對(duì),若相等則度量成功;否則,將系統(tǒng)狀態(tài)置為不可信;
2. 11由Rev_Verify_M0d模塊讀取hit進(jìn)程執(zhí)行文件,并用USBKey進(jìn)行可信度量,將度量結(jié)果與記錄的^it進(jìn)程度量值比對(duì),若相等則度量成功;否則,將系統(tǒng)狀態(tài)置為不可
2. 12由ReV_Verify_Mod模塊讀取后續(xù)加載的內(nèi)核模塊數(shù)據(jù),并用USBKey進(jìn)行可信度量,將度量結(jié)果與內(nèi)核模塊度量值比對(duì),若相等則度量成功;否則,將系統(tǒng)狀態(tài)置為不可
2. 13由ReV_Verify_M0d模塊讀取守護(hù)進(jìn)程執(zhí)行文件數(shù)據(jù),并用USBKey進(jìn)行可信度量, 將度量結(jié)果與守護(hù)進(jìn)程度量值比對(duì),若相等則度量成功,否則,將系統(tǒng)狀態(tài)置為不可信;
2. 14操作系統(tǒng)引導(dǎo)過程完成,在上述的反向完整性驗(yàn)證過程中,若任何一環(huán)節(jié)出現(xiàn)不可信度量結(jié)果,則系統(tǒng)引導(dǎo)狀態(tài)置為不可信,并激活相應(yīng)的可信引導(dǎo)失敗處理程序,如中止系統(tǒng)引導(dǎo)過程或轉(zhuǎn)入不可信引導(dǎo)過程;若所有完整性度量均成功,則將操作系統(tǒng)置為可信狀態(tài),可信引導(dǎo)成功。2. 15基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)成功,系統(tǒng)進(jìn)入可信運(yùn)行環(huán)境。綜上可知,系統(tǒng)預(yù)度量模塊,可實(shí)現(xiàn)操作系統(tǒng)可信引導(dǎo)預(yù)度量功能。反向完整性驗(yàn)證模塊ReV_Verify_Mod,用于實(shí)現(xiàn)基于USBKey的操作系統(tǒng)可信引導(dǎo)過程中各模塊的完整性驗(yàn)證功能。系統(tǒng)預(yù)度量模塊和反向完整性驗(yàn)證模塊均設(shè)于操作系統(tǒng)內(nèi)。如圖1所示,本實(shí)施例中,存儲(chǔ)單元、SHAl算法模塊、用戶數(shù)字證書、摘要驗(yàn)證和簽名驗(yàn)證的算法模塊,均預(yù)設(shè)于USBKey中。USBKey具有成本低、功能靈活、安全性高、易于攜帶等特點(diǎn),與TPM芯片相比具有更高的應(yīng)用靈活性,而且能夠提供與TPM類似的安全功能。 USBKey具有安全數(shù)據(jù)存儲(chǔ)空間,可以存儲(chǔ)數(shù)字證書、密鑰等秘密數(shù)據(jù),對(duì)該存儲(chǔ)空間的讀寫操作必須通過程序?qū)崿F(xiàn),用戶無法直接讀取,其中用戶密鑰是不可導(dǎo)出的,杜絕了復(fù)制用戶數(shù)字證書或身份信息的可能性。USBKey內(nèi)置了 CPU,可以實(shí)現(xiàn)加解密和簽名等各種算法,并且加解密運(yùn)算是在USBKey內(nèi)進(jìn)行的,保證了密鑰不會(huì)出現(xiàn)在計(jì)算機(jī)內(nèi)存中,從而杜絕了用戶密鑰被黑客截取的可能性。因而,用USBKey實(shí)現(xiàn)本發(fā)明的基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,不僅系統(tǒng)安全性可以得到保障,且靈活性和易用性更好。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤飾,應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,其特征在于包括以下步驟(1)預(yù)度量操作系統(tǒng)進(jìn)行常規(guī)引導(dǎo)直至開始接收用戶輸入,加載系統(tǒng)預(yù)度量程序;由系統(tǒng)預(yù)度量程序依次讀取系統(tǒng)引導(dǎo)各階段的信息,每讀取一個(gè)階段的信息,便對(duì)所述階段的信息進(jìn)行第一次可信度量,并將第一次可信度量的結(jié)果作為所述階段的可信引導(dǎo)度量值寫入一存儲(chǔ)單元中;(2)反向完整性驗(yàn)證操作系統(tǒng)再次引導(dǎo)直至開始接收用戶輸入,加載反向完整性驗(yàn)證模塊和所述存儲(chǔ)單元,由所述反向完整性驗(yàn)證模塊從所述存儲(chǔ)單元中讀取系統(tǒng)引導(dǎo)各階段的可信引導(dǎo)度量值,并依次讀取系統(tǒng)引導(dǎo)各階段的信息,每讀取一個(gè)階段的信息,便對(duì)所述階段的信息進(jìn)行第二次可信度量;將所述第二次可信度量的結(jié)果與所述階段的可信引導(dǎo)度量值進(jìn)行比對(duì),若二者不相等,則將系統(tǒng)狀態(tài)置為不可信并激活相應(yīng)的可信引導(dǎo)失敗處理程序;否則進(jìn)入下一階段的第二次可信度量和比對(duì)直至系統(tǒng)引導(dǎo)所有階段的度量完成,將操作系統(tǒng)置為可信狀態(tài),操作系統(tǒng)可信引導(dǎo)成功。
2.根據(jù)權(quán)利要求1所述的基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,其特征在于,所述系統(tǒng)引導(dǎo)的各階段的信息包括依次加載的以下9個(gè)階段的文件信息DBIOS信息;2)主引導(dǎo)扇區(qū)中的GrubMagel數(shù)據(jù);3)Grub Stagel. 5 數(shù)據(jù);4)Grub Stage2 的數(shù)據(jù);5)Grub配置文件;6)內(nèi)核映像文件;7Mnit進(jìn)程數(shù)據(jù);8)Init進(jìn)程根據(jù)系統(tǒng)配置加載的內(nèi)核模塊數(shù)據(jù);9)Init進(jìn)程根據(jù)系統(tǒng)配置加載的守護(hù)進(jìn)程數(shù)據(jù);其中,所述BIOS信息包括系統(tǒng)平臺(tái)硬件信息的固件層的信息、實(shí)現(xiàn)系統(tǒng)引導(dǎo)的最初階段的信息和完成硬件加電到操作系統(tǒng)引導(dǎo)開始的功能操作信息;所述主引導(dǎo)扇區(qū)中的Grub Stagel數(shù)據(jù)、Grub Stagel. 5數(shù)據(jù)、Grub Stage2的數(shù)據(jù)和hit進(jìn)程根據(jù)系統(tǒng)配置加載的內(nèi)核模塊數(shù)據(jù)屬于操作系統(tǒng)內(nèi)核。
3.根據(jù)權(quán)利要求2所述的基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,其特征在于,所述操作系統(tǒng)進(jìn)行常規(guī)引導(dǎo)直至開始接收用戶輸入和所述操作系統(tǒng)進(jìn)行再次引導(dǎo)直至開始接收用戶輸入,指從BIOS加載直到^it進(jìn)程成功加載。
4.根據(jù)權(quán)利要求1或2或3所述的基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,其特征在于,所述系統(tǒng)預(yù)度量程序和所述反向完整性驗(yàn)證模塊設(shè)置于操作系統(tǒng)中,所述存儲(chǔ)單元設(shè)置于一 USBKey中。
5.根據(jù)權(quán)利要求4所述的基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,其特征在于,所述加載系統(tǒng)預(yù)度量程序前,先對(duì)所述USBKey進(jìn)行PIN碼驗(yàn)證,驗(yàn)證成功后再加載所述系統(tǒng)預(yù)度量程序。
6.根據(jù)權(quán)利要求4所述的基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,其特征在于,所述可信度量是通過SHAl算法實(shí)現(xiàn)的,SHAl算法模塊預(yù)設(shè)于所述USBKey中。
7.根據(jù)權(quán)利要求4所述的基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,其特征在于,所述加載反向完整性驗(yàn)證模塊前,先對(duì)所述USBKey進(jìn)行PIN碼驗(yàn)證,若成功,則驗(yàn)證反向完整性驗(yàn)證模塊的合法性和完整性,驗(yàn)證成功后,加載所述反向完整性驗(yàn)證模塊。
8.根據(jù)權(quán)利要求7所述的基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,其特征在于,在進(jìn)行驗(yàn)證反向完整性驗(yàn)證模塊的合法性和完整性時(shí),采用一用戶數(shù)字證書對(duì)所述反向完整性驗(yàn)證模塊進(jìn)行摘要驗(yàn)證和簽名認(rèn)證,所述用戶數(shù)字證書存儲(chǔ)于所述USBKey中,所述摘要驗(yàn)證和簽名驗(yàn)證的算法模塊也預(yù)設(shè)于所述USBKey中。
全文摘要
本發(fā)明公開了一種基于反向完整性驗(yàn)證的操作系統(tǒng)可信引導(dǎo)方法,包括預(yù)度量和反向完整性驗(yàn)證兩大步驟操作系統(tǒng)進(jìn)行常規(guī)引導(dǎo)直至開始接收用戶輸入,加載系統(tǒng)預(yù)度量程序,由系統(tǒng)預(yù)度量程序依次讀取系統(tǒng)引導(dǎo)各階段的信息并分別進(jìn)行第一次可信度量,將結(jié)果作為可信引導(dǎo)度量值寫入存儲(chǔ)單元中;操作系統(tǒng)再次引導(dǎo)直至開始接收用戶輸入,加載反向完整性驗(yàn)證模塊和存儲(chǔ)單元,由反向完整性驗(yàn)證模塊讀取系統(tǒng)引導(dǎo)各階段的可信引導(dǎo)度量值,并依次讀取系統(tǒng)引導(dǎo)各階段的信息并進(jìn)行第二次可信度量,將結(jié)果與可信引導(dǎo)度量值進(jìn)行比對(duì),若不相等,則將系統(tǒng)狀態(tài)置為不可信;否則進(jìn)行下一階段直至完成度量,將操作系統(tǒng)置為可信狀態(tài)。本發(fā)明具有靈活性和易用性的優(yōu)點(diǎn)。
文檔編號(hào)G06F9/445GK102270288SQ20111026163
公開日2011年12月7日 申請(qǐng)日期2011年9月6日 優(yōu)先權(quán)日2011年9月6日
發(fā)明者付松齡, 何連躍, 吳慶波, 唐曉東, 孔金珠, 戴華東, 王蕾, 黃辰林 申請(qǐng)人:中國人民解放軍國防科學(xué)技術(shù)大學(xué)