本文涉及但不限于信息技術(shù)領(lǐng)域,尤指一種實現(xiàn)操作系統(tǒng)完整性保護的方法和裝置。
背景技術(shù):
隨著可信計算技術(shù)的不斷深入和發(fā)展,在多個方面都取到一定的突破性進展。在安全保護范圍方面從操作系統(tǒng)啟動時對操作系統(tǒng)的初始狀態(tài)的可信確認發(fā)展到操作系統(tǒng)運行時對操作系統(tǒng)的可信確認。操作系統(tǒng)運行時對操作系統(tǒng)的完整性保護是保障操作系統(tǒng)運行時可信的關(guān)鍵技術(shù),利用該技術(shù)可以識別非法篡改或注入代碼等行為,從而保障操作系統(tǒng)運行時安全可信。
國際商業(yè)機器公司(ibm,internationalbusinessmachinescorporation)首先開發(fā)的完整性度量架構(gòu)(ima,integritymeasurementarchitecture)/政策減少完整性測量體系結(jié)構(gòu)(prima,policyreducedintegritymeasurementarchitecture)完整性檢查機制,在現(xiàn)有l(wèi)inux內(nèi)核中新增ima模塊,通過ima模塊結(jié)合linux系統(tǒng)對例如文件讀、文件寫、文件映射等等的調(diào)用來構(gòu)造完整性檢查功能。
相關(guān)技術(shù)對被保護的操作系統(tǒng)的完整性檢查的所有功能模塊都寄生于被保護的操作系統(tǒng)中,即在被保護的操作系統(tǒng)的內(nèi)核中實現(xiàn),當被保護的操作系統(tǒng)存在安全漏洞并被攻擊時,對被保護的操作系統(tǒng)的完整性檢查的功能模塊可能被劫持并失效,導致無法保證檢查結(jié)果的正確性。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提出了一種實現(xiàn)操作系統(tǒng)完整性保護的方法和裝置,能夠提高檢查結(jié)果的正確性。
本發(fā)明實施例提出了一種實現(xiàn)操作系統(tǒng)完整性保護的方法,包括:
可信控制核心模塊獲取被保護的操作系統(tǒng)和/或虛擬機監(jiān)控模塊中被監(jiān)控操作行為的一個或一個以上度量參數(shù)對應的度量值,將獲得的所有度量參數(shù)的度量值發(fā)送給可信度量模塊;
可信度量模塊從可信基準庫模塊中獲取所有度量參數(shù)的基準度量值,判斷出一個或一個以上度量參數(shù)的度量值與對應的基準度量不相同,向可信控制核心模塊發(fā)送表示阻止被監(jiān)控操作行為的信息;
可信控制核心模塊阻止被監(jiān)控操作行為和/或記錄被監(jiān)控操作行為;
其中,可信控制核心模塊設(shè)置在虛擬機監(jiān)控模塊中,虛擬機監(jiān)控模塊、可信度量模塊、可信基準庫模塊設(shè)置在被保護的操作系統(tǒng)的外部。
可選的,所述將獲得的所有度量參數(shù)的度量值發(fā)送給可信度量模塊包括:
所述可信控制核心模塊將所述所有度量參數(shù)的度量值發(fā)送給可信基模塊;所述可信基模塊將所述所有度量參數(shù)的度量值發(fā)送給所述可信度量模塊;
所述可信度量模塊從可信基準庫模塊中獲取所有度量參數(shù)的基準度量值包括:
所述可信度量模塊向所述可信基模塊發(fā)送表示獲取所有度量參數(shù)的基準度量值的信息;所述可信基模塊向所述可信基準庫模塊發(fā)送所述表示獲取所有度量參數(shù)的基準度量值的信息;所述可信基準庫模塊在預先設(shè)置的度量參數(shù)和基準度量值之間的對應關(guān)系中,查找每一個度量參數(shù)對應的基準度量值,將查找到的所有度量參數(shù)的基準度量值發(fā)送給可信基模塊;所述可信基模塊將所述所有度量參數(shù)的基準度量值發(fā)送給可信度量模塊;
所述向可信控制核心模塊發(fā)送表示阻止被監(jiān)控操作行為的信息包括:
所述可信度量模塊將所述表示阻止被監(jiān)控操作行為的信息發(fā)送給所述可信基模塊;所述可信基模塊將所述表示阻止被監(jiān)控操作行為的信息發(fā)送給可信控制核心模塊;
其中,所述可信基模塊設(shè)置在所述被保護的操作系統(tǒng)的外部。
可選的,該方法之前還包括:
可信芯片模塊對所述可信基模塊進行度量驗證,度量驗證通過后加載并運行所述可信基模塊;
所述可信基模塊對所述可信度量模塊、所述可信基準庫模塊和虛擬機監(jiān)控模塊進行完整性度量檢查,完整性度量檢查通過后分別加載并運行所述可信度量模塊和所述可信基準庫模塊;
所述可信度量模塊對所述被保護的操作系統(tǒng)進行完整性度量,完整性度量通過后通知所述可信基模塊加載并運行所述虛擬機監(jiān)控模塊;
所述虛擬機監(jiān)控模塊加載并運行所述被保護的操作系統(tǒng)和所述可信控制核心模塊,并在所述被保護的操作系統(tǒng)中插入并運行所述可信控制內(nèi)核模塊。
可選的,所述可信基模塊運行在cpu的特權(quán)模式下,所述可信控制核心模塊、所述虛擬機監(jiān)控模塊、所述可信度量模塊、可信基準庫模塊運行在cpu的非特權(quán)模式下。
可選的,所述可信基模塊加載所述可信度量模塊、所述可信基準庫模塊和所述虛擬機監(jiān)控模塊包括:
所述可信基模塊加載所述可信度量模塊、所述可信基準庫模塊和所述虛擬機監(jiān)控模塊到地址空間相互獨立的三個分區(qū)中。
可選的,當所述可信度量模塊判斷出每一個度量參數(shù)的度量值與對應的基準度量值均相同時,該方法還包括:
所述可信度量模塊向所述可信控制核心模塊發(fā)送表示允許被監(jiān)控操作行為的信息。
可選的,所述可信控制核心模塊、所述可信度量模塊和所述可信基準庫模塊之間的訪問權(quán)限相互隔離。
可選的,所述被監(jiān)控操作行為包括:虛擬機監(jiān)控模塊中預先設(shè)置的超級調(diào)用行為;
所述可信控制核心模塊獲取被監(jiān)控操作行為的一個或一個以上度量參數(shù)對應的度量值包括:
所述可信控制核心模塊檢測到所述超級調(diào)用行為發(fā)生時,獲取所述超級調(diào)用行為的一個或一個以上度量參數(shù)對應的度量值。
可選的,所述被監(jiān)控操作行為包括:所述被保護的操作系統(tǒng)中預先設(shè)置的被監(jiān)控操作;
所述可信控制核心模塊獲取被監(jiān)控操作行為的一個或一個以上度量參數(shù)對應的度量值包括:
所述可信控制內(nèi)核模塊檢測到所述被監(jiān)控操作行為發(fā)生時,獲取所述被監(jiān)控操作行為的一個或一個以上度量參數(shù)對應的度量值,將獲得的所有度量參數(shù)的度量值發(fā)送給可信控制核心模塊;
所述可信控制核心模塊阻止被監(jiān)控操作行為和/或記錄被監(jiān)控操作行為包括:
所述可信控制核心模塊向所述可信控制內(nèi)核模塊發(fā)送所述表示阻止被監(jiān)控操作行為的信息,所述可信控制內(nèi)核模塊阻止所述被監(jiān)控操作行為和/或記錄所述被監(jiān)控操作行為;
其中,可信控制內(nèi)核模塊設(shè)置在所述被保護的操作系統(tǒng)的內(nèi)核中。
可選的,該方法之前還包括:
所述可信度量模塊對所述可信控制內(nèi)核模塊進行完整性檢查,完整性檢查通過后繼續(xù)執(zhí)行所述可信控制內(nèi)核模塊檢測到所述被監(jiān)控操作行為是否發(fā)生的步驟。
可選的,當所述可信度量模塊對所述可信控制內(nèi)核模塊進行完整性檢查失敗時,該方法還包括:
所述可信度量模塊通知所述虛擬機監(jiān)控模塊重新在所述被保護的操作系統(tǒng)中插入并運行所述可信控制內(nèi)核模塊。
本發(fā)明實施例還提出了一種實現(xiàn)操作系統(tǒng)完整性保護的裝置,包括:
可信控制核心模塊,用于獲取被保護的操作系統(tǒng)和/或虛擬機監(jiān)控模塊中被監(jiān)控操作行為的一個或一個以上度量參數(shù)對應的度量值,將獲得的所有度 量參數(shù)的度量值發(fā)送給可信度量模塊;接收到表示阻止被監(jiān)控操作行為的信息,阻止被監(jiān)控操作行為和/或記錄被監(jiān)控操作行為;
可信度量模塊,用于從可信基準庫模塊中獲取所有度量參數(shù)的基準度量值,判斷出一個或一個以上度量參數(shù)的度量值與對應的基準度量不相同,向可信控制核心模塊發(fā)送表示阻止被監(jiān)控操作行為的信息;
其中,可信控制核心模塊設(shè)置在虛擬機監(jiān)控模塊中,虛擬機監(jiān)控模塊、可信度量模塊、可信基準庫模塊設(shè)置在被保護的操作系統(tǒng)的外部。
可選的,所述可信控制核心模塊具體用于采用以下方式實現(xiàn)將獲得的所有度量參數(shù)的度量值發(fā)送給可信度量模塊:
將所述所有度量參數(shù)的度量值發(fā)送給可信基模塊;
所述可信度量模塊具體用于采用以下方式實現(xiàn)從可信基準庫模塊中獲取所有度量參數(shù)的基準度量值:
向所述可信基模塊發(fā)送表示獲取所有度量參數(shù)的基準度量值的信息;接收到來自可信基模塊的所述所有度量參數(shù)的基準度量值;
采用以下方式實現(xiàn)向可信控制核心模塊發(fā)送表示阻止被監(jiān)控操作行為的信息包括:
將所述表示阻止被監(jiān)控操作行為的信息發(fā)送給所述可信基模塊;
還包括:
可信基模塊,用于將所述所有度量參數(shù)的度量值發(fā)送給所述可信度量模塊;接收到來自可信度量模塊的表示獲取所有度量參數(shù)的基準度量值的信息;向所述可信基準庫模塊發(fā)送所述表示獲取所有度量參數(shù)的基準度量值的信息;接收到來自所述可信基準庫模塊的查找到的所有度量參數(shù)的基準度量值,將所述所有度量參數(shù)的基準度量值發(fā)送給可信度量模塊;接收到來自所述可信度量模塊的所述表示阻止被監(jiān)控操作行為的信息,將所述表示阻止被監(jiān)控操作行為的信息發(fā)送給可信控制核心模塊;
所述可信基準庫模塊,用于接收到來自可信基模塊的表示獲取所有度量參數(shù)的基準度量值的信息,在預先設(shè)置的度量參數(shù)和基準度量值之間的對應 關(guān)系中,查找每一個度量參數(shù)對應的基準度量值,將查找到的所有度量參數(shù)的基準度量值發(fā)送給可信基模塊;
其中,所述可信基模塊設(shè)置在所述被保護的操作系統(tǒng)的外部。
可選的,還包括:
可信芯片模塊,用于對所述可信基模塊進行度量驗證,度量驗證通過后加載并運行所述可信基模塊;
所述可信基模塊還用于:
對所述可信度量模塊、所述可信基準庫模塊和虛擬機監(jiān)控模塊進行完整性度量檢查,完整性度量檢查通過后分別加載并運行所述可信度量模塊和所述可信基準庫模塊;
所述可信度量模塊還用于:
對所述被保護的操作系統(tǒng)進行完整性度量,完整性度量通過后通知所述可信基模塊加載并運行所述虛擬機監(jiān)控模塊;
所述虛擬機監(jiān)控模塊還用于:
加載并運行所述被保護的操作系統(tǒng)和所述可信控制核心模塊,并在所述被保護的操作系統(tǒng)中插入并運行所述可信控制內(nèi)核模塊。
可選的,所述可信基模塊運行在cpu的特權(quán)模式下,所述可信控制核心模塊、所述虛擬機監(jiān)控模塊、所述可信度量模塊、可信基準庫模塊運行在cpu的非特權(quán)模式下。
可選的,所述可信基模塊具體采用以下方式實現(xiàn)加載所述可信度量模塊、所述可信基準庫模塊和所述虛擬機監(jiān)控模塊:
加載所述可信度量模塊、所述可信基準庫模塊和所述虛擬機監(jiān)控模塊到地址空間相互獨立的三個分區(qū)中。
可選的,所述可信度量模塊還用于:
判斷出每一個度量參數(shù)的度量值與對應的基準度量值均相同,向所述可信控制核心模塊發(fā)送表示允許被監(jiān)控操作行為的信息。
可選的,所述可信控制核心模塊、所述可信度量模塊和所述可信基準庫模塊之間的訪問權(quán)限相互隔離。
可選的,所述被監(jiān)控操作行為包括:虛擬機監(jiān)控模塊中預先設(shè)置的超級調(diào)用行為;
所述可信控制核心模塊具體用于:
檢測到所述超級調(diào)用行為發(fā)生時,獲取所述超級調(diào)用行為的一個或一個以上度量參數(shù)對應的度量值,將獲得的所有度量參數(shù)的度量值發(fā)送給可信度量模塊;接收到表示阻止被監(jiān)控操作行為的信息,阻止被監(jiān)控操作行為和/或記錄被監(jiān)控操作行為;。
可選的,所述被監(jiān)控操作行為包括:所述被保護的操作系統(tǒng)中預先設(shè)置的被監(jiān)控操作;
還包括:
可信控制內(nèi)核模塊,用于檢測到所述被監(jiān)控操作行為發(fā)生時,獲取所述被監(jiān)控操作行為的一個或一個以上度量參數(shù)對應的度量值,將獲得的所有度量參數(shù)的度量值發(fā)送給可信控制核心模塊;接收到表示阻止被監(jiān)控操作行為的信息,阻止被監(jiān)控操作行為和/或記錄被監(jiān)控操作行為;
所述可信控制核心模塊具體用于:
將獲得的所有度量參數(shù)的度量值發(fā)送給可信度量模塊;接收到表示阻止被監(jiān)控操作行為的信息,向所述可信控制內(nèi)核模塊發(fā)送所述表示阻止被監(jiān)控操作行為的信息。
可選的,所述可信度量模塊還用于:
對所述可信控制內(nèi)核模塊進行完整性檢查,完整性檢查通過后繼續(xù)執(zhí)行所述可信控制內(nèi)核模塊檢測到所述被監(jiān)控操作行為是否發(fā)生的步驟。
可選的,所述可信度量模塊還用于:
對所述可信控制內(nèi)核模塊進行完整性檢查失敗時,通知所述虛擬機監(jiān)控模塊重新在所述被保護的操作系統(tǒng)中插入并運行所述可信控制內(nèi)核模塊。
與相關(guān)技術(shù)相比,本發(fā)明實施例的技術(shù)方案包括:可信控制核心模塊獲取被保護的操作系統(tǒng)和/或虛擬機監(jiān)控模塊中被監(jiān)控操作行為的一個或一個以上度量參數(shù)對應的度量值,將獲得的所有度量參數(shù)的度量值發(fā)送給可信度量模塊;可信度量模塊從可信基準庫模塊中獲取所有度量參數(shù)的基準度量值,判斷出一個或一個以上度量參數(shù)的度量值與對應的基準度量不相同,向可信控制核心模塊發(fā)送表示阻止被監(jiān)控操作行為的信息;可信控制核心模塊阻止被監(jiān)控操作行為和/或記錄被監(jiān)控操作行為;其中,可信控制核心模塊設(shè)置在虛擬機監(jiān)控模塊中,虛擬機監(jiān)控模塊、可信度量模塊、可信基準庫模塊設(shè)置在被保護的操作系統(tǒng)的外部。通過本發(fā)明實施例的方案,將虛擬機監(jiān)控模塊、可信度量模塊、可信基準庫模塊設(shè)置在被保護的操作系統(tǒng)的外部,提高了實現(xiàn)被保護的操作系統(tǒng)的完整性保護的多個模塊的安全性。
附圖說明
下面對本發(fā)明實施例中的附圖進行說明,實施例中的附圖是用于對本發(fā)明的進一步理解,與說明書一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明保護范圍的限制。
圖1為本發(fā)明實施例實現(xiàn)操作系統(tǒng)完整性保護的方法的流程圖;
圖2為本發(fā)明實施例實現(xiàn)操作系統(tǒng)完整性保護的裝置的結(jié)構(gòu)組成示意圖。
具體實施方式
為了便于本領(lǐng)域技術(shù)人員的理解,下面結(jié)合附圖對本發(fā)明作進一步的描述,并不能用來限制本發(fā)明的保護范圍。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的各種方式可以相互組合。
參見圖1,本發(fā)明實施例提出了一種實現(xiàn)操作系統(tǒng)完整性保護的方法,包括:
步驟100、可信控制核心模塊獲取被保護的操作系統(tǒng)和/或虛擬機監(jiān)控模塊中被監(jiān)控操作行為的一個或一個以上度量參數(shù)對應的度量值,將獲得的所 有度量參數(shù)的度量值發(fā)送給可信度量模塊。
本步驟中,度量參數(shù)包括以下的一個或多個:被監(jiān)控操作行為的主體對象、被監(jiān)控操作行為的客體對象、被監(jiān)控操作行為、被監(jiān)控操作行為所在的運行環(huán)境等。
本步驟中,具體如何獲取被監(jiān)控操作行為的度量參數(shù)對應的度量值可以采用本領(lǐng)域技術(shù)人員的熟知技術(shù)實現(xiàn),并不用于限定本發(fā)明的保護范圍,這里不再贅述。
本步驟中,當被監(jiān)控操作行為包括虛擬機監(jiān)控模塊中預先設(shè)置的超級調(diào)用行為時;可信控制核心模塊獲取被監(jiān)控操作行為的一個或一個以上度量參數(shù)對應的度量值包括:
可信控制核心模塊檢測到超級調(diào)用行為發(fā)生時,獲取超級調(diào)用行為的一個或一個以上度量參數(shù)對應的度量值。
其中,超級調(diào)用行為可以是以下的一個或多個:啟動被保護操作系統(tǒng)、暫停被保護操作系統(tǒng)、停止被保護操作系統(tǒng)、被保護操作系統(tǒng)運行中執(zhí)行特權(quán)操作(例如缺頁處理、中斷處理等)等。
其中,可信控制核心模塊具體如何檢測超級調(diào)用行為是否發(fā)生可以采用本領(lǐng)域技術(shù)人員的熟知技術(shù)實現(xiàn),并不用于限定本發(fā)明的保護范圍,這里不再贅述。
當被監(jiān)控操作行為包括:被保護的操作系統(tǒng)中預先設(shè)置的被監(jiān)控操作時;
可信控制核心模塊獲取被監(jiān)控操作行為的一個或一個以上度量參數(shù)對應的度量值包括:
可信控制內(nèi)核模塊檢測到被監(jiān)控操作行為發(fā)生時,獲取被監(jiān)控操作行為的一個或一個以上度量參數(shù)對應的度量值,將獲得的所有度量參數(shù)的度量值發(fā)送給可信控制核心模塊;
其中,可信控制內(nèi)核模塊設(shè)置在所述被保護的操作系統(tǒng)的內(nèi)核中。
其中,被保護的操作系統(tǒng)中預先設(shè)置的被監(jiān)控操作行為可以是以下的一個或多個:對被保護操作系統(tǒng)的控制行為(如啟動、暫停等)、在被保護操 作系統(tǒng)運行時對數(shù)據(jù)的訪問行為(如缺頁處理等)、對被保護操作系統(tǒng)的外部輸入輸出(io,intputoutput)操作行為(如外設(shè)中斷處理等)等。
其中,可信控制內(nèi)核模塊具體如何檢測被監(jiān)控操作行為是否發(fā)生可以采用本領(lǐng)域技術(shù)人員的熟知技術(shù)實現(xiàn),并不用于限定本發(fā)明的保護范圍,這里不再贅述。
步驟101、可信度量模塊從可信基準庫模塊中獲取所有度量參數(shù)的基準度量值,判斷出一個或一個以上度量參數(shù)的度量值與對應的基準度量不相同,向可信控制核心模塊發(fā)送表示阻止被監(jiān)控操作行為的信息。
步驟102、可信控制核心模塊阻止被監(jiān)控操作行為和/或記錄被監(jiān)控操作行為。
本步驟中,當被監(jiān)控操作行為包括:虛擬機監(jiān)控模塊中預先設(shè)置的超級調(diào)用行為時,可信控制核心模塊直接阻止被監(jiān)控操作行為和/或記錄被監(jiān)控操作行為。
當被監(jiān)控操作行為包括:被保護的操作系統(tǒng)中預先設(shè)置的被監(jiān)控操作時;
可信控制核心模塊阻止被監(jiān)控操作行為和/或記錄被監(jiān)控操作行為包括:
可信控制核心模塊向所述可信控制內(nèi)核模塊發(fā)送表示阻止被監(jiān)控操作行為的信息,可信控制內(nèi)核模塊阻止所述被監(jiān)控操作行為和/或記錄所述被監(jiān)控操作行為。
其中,可信控制核心模塊或可信控制內(nèi)核模塊具體如何阻止被監(jiān)控操作行為可以采用本領(lǐng)域技術(shù)人員的公知技術(shù)實現(xiàn),并不用于限定本發(fā)明的保護范圍,這里不再贅述。
上述方法中,可信控制核心模塊設(shè)置在虛擬機監(jiān)控模塊中,虛擬機監(jiān)控模塊、可信度量模塊、可信基準庫模塊設(shè)置在被保護的操作系統(tǒng)的外部。
可選的,當可信度量模塊判斷出每一個度量參數(shù)的度量值與對應的基準度量值均相同時,該方法還包括:
可信度量模塊向可信控制核心模塊發(fā)送表示允許被監(jiān)控操作行為的信息。
可信控制核心模塊接收到表示允許被監(jiān)控操作行為的信息后,允許被監(jiān)控操作行為繼續(xù)執(zhí)行,即不作任何操作。
可選的,上述方法中,可以設(shè)置可信控制核心模塊、可信度量模塊和可信基準庫模塊之間的訪問權(quán)限相互隔離。
通過運行于特權(quán)模式下的可信基模塊管理可信控制核心模塊所在的分區(qū)、可信度量模塊所在的分區(qū)和可信基準庫模塊所在的分區(qū)的訪問權(quán)限,并為每個模塊所在的分區(qū)分配一個獨立的權(quán)限管理數(shù)據(jù)結(jié)構(gòu)(例如權(quán)限管理數(shù)組),從而實現(xiàn)模塊之間的訪問權(quán)限相互隔離,使得其中一個模塊發(fā)生故障或受到攻擊時,不會影響其他的模塊,進一步提高了安全性。
可選的,可以在可信基模塊中預先設(shè)置模塊所在的分區(qū)和具有訪問權(quán)限的模塊所在的分區(qū)之間的對應關(guān)系,當某一個分區(qū)中的模塊要訪問其他模塊時,需要通過可信基模塊進行訪問,可信基模塊在對應關(guān)系中查找要訪問的模塊所在的分區(qū)對應的具有訪問權(quán)限的模塊所在的分區(qū),判斷出具有訪問權(quán)限的模塊所在的分區(qū)包括被訪問的模塊所在的分區(qū),則允許要訪問的模塊對被訪問的模塊進行訪問。
如果判斷出具有訪問權(quán)限的模塊所在的分區(qū)不包括被訪問的模塊所在的分區(qū),或查找不到要訪問的模塊所在的分區(qū)對應的具有訪問權(quán)限的模塊所在的分區(qū),則不允許要訪問的模塊對被訪問的模塊進行訪問。
這樣,可信控制核心模塊、可信度量模塊和可信基準庫模塊之間可以通過可信基模塊進行通信。
可選的,可信基模塊和可信度量模塊、可信基模塊和可信基準庫模塊之間可以通過進程間通信(ipc,inter-processcommunication)進行通信。
相應的,
步驟100中,將獲得的所有度量參數(shù)的度量值發(fā)送給可信度量模塊包括:
可信控制核心模塊將所有度量參數(shù)的度量值發(fā)送給可信基模塊;可信基模塊將所有度量參數(shù)的度量值發(fā)送給可信度量模塊;
步驟101中,可信度量模塊從可信基準庫模塊中獲取所有度量參數(shù)的基 準度量值包括:
可信度量模塊向可信基模塊發(fā)送表示獲取所有度量參數(shù)的基準度量值的信息;可信基模塊向可信基準庫模塊發(fā)送表示獲取所有度量參數(shù)的基準度量值的信息;可信基準庫模塊在預先設(shè)置的度量參數(shù)和基準度量值之間的對應關(guān)系中,查找每一個度量參數(shù)對應的基準度量值,將查找到的所有度量參數(shù)的基準度量值發(fā)送給可信基模塊;可信基模塊將所有度量參數(shù)的基準度量值發(fā)送給可信度量模塊;
步驟102中,向可信控制核心模塊發(fā)送表示阻止被監(jiān)控操作行為的信息包括:
可信度量模塊將表示阻止被監(jiān)控操作行為的信息發(fā)送給可信基模塊;可信基模塊將表示阻止被監(jiān)控操作行為的信息發(fā)送給可信控制核心模塊;
其中,可信基模塊設(shè)置在所述被保護的操作系統(tǒng)的外部。
可信度量模塊向可信控制核心模塊發(fā)送表示允許被監(jiān)控操作行為的信息包括:
可信度量模塊向可信基模塊發(fā)送表示允許被監(jiān)控操作行為的信息,可信基模塊向可信控制核心模塊發(fā)送表示允許被監(jiān)控操作行為的信息。
可選的,該方法之前還包括:
可信度量模塊對可信控制內(nèi)核模塊進行完整性檢查,完整性檢查通過后繼續(xù)執(zhí)行可信控制內(nèi)核模塊檢測到被監(jiān)控操作行為是否發(fā)生的步驟。
可選的,當可信度量模塊對可信控制內(nèi)核模塊進行完整性檢查失敗時,該方法還包括:
可信度量模塊通知虛擬機監(jiān)控模塊重新在被保護的操作系統(tǒng)中插入并運行可信控制內(nèi)核模塊。
可選的,該方法之前還包括:
可信芯片模塊對可信基模塊進行度量驗證,度量驗證通過后加載并運行可信基模塊;可信基模塊對可信度量模塊、可信基準庫模塊和虛擬機監(jiān)控模 塊進行完整性度量檢查,完整性度量檢查通過后分別加載并運行可信度量模塊和可信基準庫模塊;可信度量模塊對被保護的操作系統(tǒng)進行完整性度量,完整性度量通過后通知可信基模塊加載并運行虛擬機監(jiān)控模塊;虛擬機監(jiān)控模塊加載并運行被保護的操作系統(tǒng)和可信控制核心模塊,并在被保護的操作系統(tǒng)中插入并運行可信控制內(nèi)核模塊。
其中,可信基模塊可以分別將可信度量模塊、可信基準庫模塊和虛擬機監(jiān)控模塊加載到地址空間相互獨立的三個分區(qū)中。
其中,可信基模塊可以將可信基準庫模塊加載到內(nèi)存中或非易失介質(zhì)中。
其中,非易失介質(zhì)可以是閃存(flash)等。
當可信基模塊將可信基準庫模塊加載到內(nèi)存中時,可信基準庫模塊中的度量參數(shù)和基準度量值之間的對應關(guān)系在被保護的操作系統(tǒng)重新上電后會丟失,但可信基準庫模塊訪問對應關(guān)系時比較方便,當可信基模塊將可信基準庫模塊加載到非易失介質(zhì)上時,對應關(guān)系在被保護的操作系統(tǒng)重新上電后不會丟失,但可信基準庫模塊訪問對應關(guān)系時需要先將對應關(guān)系拷貝到內(nèi)存中再進行訪問。
其中,當可信芯片模塊對可信基模塊進行度量驗證失敗時,可信芯片模塊向用戶返回表示可信基模塊驗證失敗的信息。
其中,當可信基模塊對可信度量模塊、可信基準庫模塊和虛擬機監(jiān)控模塊進行完整性度量檢查失敗時,可信基模塊向用戶返回表示驗證失敗的信息。
其中,可信度量模塊對被保護的操作系統(tǒng)進行完整性度量包括:
可信度量模塊獲取被保護的操作系統(tǒng)的度量值,并從可信基準庫模塊中獲取被保護的操作系統(tǒng)的基準度量值,將被保護的操作系統(tǒng)的度量值和對應的基準度量值進行比較。
完整性度量檢查通過后分別加載并運行可信度量模塊和可信基準庫模塊包括:
可信度量模塊判斷出被保護的操作系統(tǒng)的度量值和對應的基準度量值相同,加載并運行可信度量模塊和可信基準庫模塊。
其中,當可信度量模塊判斷出被保護的操作系統(tǒng)的度量值和對應的基準度量值不相同時,向用戶返回表示被保護的操作系統(tǒng)完整性度量失敗的信息。
其中,可信芯片模塊可以采用tpcm可信芯片來實現(xiàn)對可信基模塊的度量驗證,具體如何對可信基模塊進行度量驗證可以采用本領(lǐng)域技術(shù)人員的公知技術(shù)實現(xiàn),并不用于限定本發(fā)明的保護范圍,這里不再贅述。
其中,可信芯片模塊具體如何加載并運行可信基模塊可以采用本領(lǐng)域技術(shù)人員的公知技術(shù)實現(xiàn),并不用于限定本發(fā)明的保護范圍,這里不再贅述。
其中,可信基模塊具體如何對可信度量模塊、可信基準庫模塊和虛擬機監(jiān)控模塊進行完整性度量檢查,可信度量模塊具體如何對被保護的操作系統(tǒng)進行完整性度量,可以采用本領(lǐng)域技術(shù)人員的公知技術(shù)實現(xiàn),并不用于限定本發(fā)明的保護范圍,這里不再贅述。
其中,可信基模塊具體如何分別加載并運行可信度量模塊和可信基準庫模塊,加載并運行所述虛擬機監(jiān)控模塊,虛擬機監(jiān)控模塊具體如何加載并運行被保護的操作系統(tǒng)和可信控制核心模塊,并在被保護的操作系統(tǒng)中插入并運行可信控制內(nèi)核模塊可以采用本領(lǐng)域技術(shù)人員的公知技術(shù)實現(xiàn),并不用于限定本發(fā)明的保護范圍,這里不再贅述。
可選的,可信基模塊運行在cpu的特權(quán)模式,可信度量模塊、可信基準庫模塊、可信控制核心模塊、可信控制內(nèi)核模塊、虛擬機監(jiān)控模塊運行在cpu的非特權(quán)模式下。這樣,減少了cpu的特權(quán)模式下的功能,符合最小特權(quán)原則,使得本發(fā)明中受攻擊面較小,提高了安全性。
參見圖2,本發(fā)明實施例還提出了一種實現(xiàn)操作系統(tǒng)完整性保護的裝置,包括:
可信控制核心模塊,用于獲取被保護的操作系統(tǒng)和/或虛擬機監(jiān)控模塊中被監(jiān)控操作行為的一個或一個以上度量參數(shù)對應的度量值,將獲得的所有度量參數(shù)的度量值發(fā)送給可信度量模塊;接收到表示阻止被監(jiān)控操作行為的信息,阻止被監(jiān)控操作行為和/或記錄被監(jiān)控操作行為;
可信度量模塊,用于從可信基準庫模塊中獲取所有度量參數(shù)的基準度量值,判斷出一個或一個以上度量參數(shù)的度量值與對應的基準度量不相同,向 可信控制核心模塊發(fā)送表示阻止被監(jiān)控操作行為的信息;
其中,可信控制核心模塊設(shè)置在虛擬機監(jiān)控模塊中,虛擬機監(jiān)控模塊、可信度量模塊、可信基準庫模塊設(shè)置在被保護的操作系統(tǒng)的外部。
本發(fā)明實施例的裝置中,可信控制核心模塊具體用于采用以下方式實現(xiàn)將獲得的所有度量參數(shù)的度量值發(fā)送給可信度量模塊:
將所有度量參數(shù)的度量值發(fā)送給可信基模塊;
可信度量模塊具體用于采用以下方式實現(xiàn)從可信基準庫模塊中獲取所有度量參數(shù)的基準度量值:
向可信基模塊發(fā)送表示獲取所有度量參數(shù)的基準度量值的信息;接收到來自可信基模塊的所有度量參數(shù)的基準度量值;
采用以下方式實現(xiàn)向可信控制核心模塊發(fā)送表示阻止被監(jiān)控操作行為的信息包括:
將表示阻止被監(jiān)控操作行為的信息發(fā)送給可信基模塊;
還包括:
可信基模塊,用于將所有度量參數(shù)的度量值發(fā)送給可信度量模塊;接收到來自可信度量模塊的表示獲取所有度量參數(shù)的基準度量值的信息;向可信基準庫模塊發(fā)送表示獲取所有度量參數(shù)的基準度量值的信息;接收到來自可信基準庫模塊的查找到的所有度量參數(shù)的基準度量值,將所有度量參數(shù)的基準度量值發(fā)送給可信度量模塊;接收到來自可信度量模塊的表示阻止被監(jiān)控操作行為的信息,將表示阻止被監(jiān)控操作行為的信息發(fā)送給可信控制核心模塊;
可信基準庫模塊,用于接收到來自可信基模塊的表示獲取所有度量參數(shù)的基準度量值的信息,在預先設(shè)置的度量參數(shù)和基準度量值之間的對應關(guān)系中,查找每一個度量參數(shù)對應的基準度量值,將查找到的所有度量參數(shù)的基準度量值發(fā)送給可信基模塊;
其中,可信基模塊設(shè)置在被保護的操作系統(tǒng)的外部。
本發(fā)明實施例的裝置中,還包括:
可信芯片模塊,用于對可信基模塊進行度量驗證,度量驗證通過后加載并運行可信基模塊;
可信基模塊還用于:
對可信度量模塊、可信基準庫模塊和虛擬機監(jiān)控模塊進行完整性度量檢查,完整性度量檢查通過后分別加載并運行可信度量模塊和可信基準庫模塊;
可信度量模塊還用于:
對被保護的操作系統(tǒng)進行完整性度量,完整性度量通過后通知可信基模塊加載并運行虛擬機監(jiān)控模塊;
虛擬機監(jiān)控模塊還用于:
加載并運行被保護的操作系統(tǒng)和可信控制核心模塊,并在被保護的操作系統(tǒng)中插入并運行可信控制內(nèi)核模塊。
本發(fā)明實施例的裝置中,可信基模塊運行在cpu的特權(quán)模式下,可信控制核心模塊、虛擬機監(jiān)控模塊、可信度量模塊、可信基準庫模塊運行在cpu的非特權(quán)模式下。
本發(fā)明實施例的裝置中,可信基模塊具體采用以下方式實現(xiàn)加載可信度量模塊、可信基準庫模塊和虛擬機監(jiān)控模塊:
加載可信度量模塊、可信基準庫模塊和虛擬機監(jiān)控模塊到地址空間相互獨立的三個分區(qū)中。例如,圖2中,可信基模塊加載可信度量模塊到第一分區(qū),加載可信基準模塊到第二分區(qū),加載虛擬機監(jiān)控模塊到第三分區(qū);第一分區(qū)、第二分區(qū)和第三分區(qū)為同一處理器上地址空間相互獨立的三個分區(qū)。
虛擬機監(jiān)控模塊也可以加載被保護的操作系統(tǒng)到第三分區(qū)中,即虛擬機監(jiān)控模塊所在的分區(qū)。
本發(fā)明實施例的裝置中,可信度量模塊還用于:
判斷出每一個度量參數(shù)的度量值與對應的基準度量值均相同,向可信控制核心模塊發(fā)送表示允許被監(jiān)控操作行為的信息。
本發(fā)明實施例的裝置中,可信控制核心模塊、可信度量模塊和可信基準庫模塊之間的訪問權(quán)限相互隔離。
本發(fā)明實施例的裝置中,被監(jiān)控操作行為包括:虛擬機監(jiān)控模塊中預先設(shè)置的超級調(diào)用行為;
可信控制核心模塊具體用于:
檢測到超級調(diào)用行為發(fā)生時,獲取超級調(diào)用行為的一個或一個以上度量參數(shù)對應的度量值,將獲得的所有度量參數(shù)的度量值發(fā)送給可信度量模塊;接收到表示阻止被監(jiān)控操作行為的信息,阻止被監(jiān)控操作行為和/或記錄被監(jiān)控操作行為;。
本發(fā)明實施例的裝置中,被監(jiān)控操作行為包括:被保護的操作系統(tǒng)中預先設(shè)置的被監(jiān)控操作;
還包括:
可信控制內(nèi)核模塊,用于檢測到被監(jiān)控操作行為發(fā)生時,獲取被監(jiān)控操作行為的一個或一個以上度量參數(shù)對應的度量值,將獲得的所有度量參數(shù)的度量值發(fā)送給可信控制核心模塊;接收到表示阻止被監(jiān)控操作行為的信息,阻止被監(jiān)控操作行為和/或記錄被監(jiān)控操作行為;
可信控制核心模塊具體用于:
將獲得的所有度量參數(shù)的度量值發(fā)送給可信度量模塊;接收到表示阻止被監(jiān)控操作行為的信息,向可信控制內(nèi)核模塊發(fā)送表示阻止被監(jiān)控操作行為的信息。
本發(fā)明實施例的裝置中,可信度量模塊還用于:
對可信控制內(nèi)核模塊進行完整性檢查,完整性檢查通過后繼續(xù)執(zhí)行可信控制內(nèi)核模塊檢測到被監(jiān)控操作行為是否發(fā)生的步驟。
本發(fā)明實施例的裝置中,可信度量模塊還用于:
對可信控制內(nèi)核模塊進行完整性檢查失敗時,通知虛擬機監(jiān)控模塊重新在被保護的操作系統(tǒng)中插入并運行可信控制內(nèi)核模塊。
需要說明的是,以上所述的實施例僅是為了便于本領(lǐng)域的技術(shù)人員理解而已,并不用于限制本發(fā)明的保護范圍,在不脫離本發(fā)明的發(fā)明構(gòu)思的前提下,本領(lǐng)域技術(shù)人員對本發(fā)明所做出的任何顯而易見的替換和改進等均在本發(fā)明的保護范圍之內(nèi)。