本發(fā)明屬于計算機嵌入式系統(tǒng)技術領域,主要涉及一種可信道系統(tǒng)及其實現(xiàn)方法。
背景技術:
目前,可信計算技術是增強信息系統(tǒng)安全的一種行之有效的新技術,可信計算技術通過可信平臺模塊(Trusted Platform Module,TPM)、可信軟件棧(Trusted Software Stack,TSS)和信任鏈(Chain of Trust,CoT)對信息系統(tǒng)進行安全增強,使得增強后的信息系統(tǒng)具備平臺完整性度量、數(shù)據(jù)密封存儲和平臺身份認證等安全功能??尚牌脚_模塊的最新規(guī)范是TPM Platform Module Library Family 2.0Level 00Revision 01.16,簡稱TPM 2.0;可信軟件棧的最新規(guī)范是TSS System Level API and TPM Command Transmission Interface Specification Family 2.0Level00Revision 01.00,簡稱TSS 2.0。
道系統(tǒng)(DeltaOS)是國產(chǎn)嵌入式實時操作系統(tǒng),包括操作系統(tǒng)內(nèi)核、VxWorks兼容層、文件系統(tǒng)、網(wǎng)絡協(xié)議棧等基本組件。道系統(tǒng)具備微秒級的響應時間,提供基于優(yōu)先級搶占的實時任務調度策略,提供動態(tài)加載功能。
現(xiàn)有的大多數(shù)嵌入式軟件都工作在空間及時間資源受限、安全關鍵環(huán)境中,這對嵌入式軟件的安全性提出了非常迫切的要求。嵌入式軟件的安全運行需要底層操作系統(tǒng)的支撐,道系統(tǒng)尚沒有對可信計算技術進行有效支持,包括建立從DeltaOS TA(啟動映像)到DeltaOS內(nèi)核,再到應用程序的全信任鏈,這使得道系統(tǒng)自身存在著安全性隱患,但DeltaOS內(nèi)核中未實現(xiàn)TPM 2.0軟件子系統(tǒng)和TSS2.0中間件子系統(tǒng)。
建立可信計算平臺需要使用TPM、CoT、TSS。其中,TPM既可以是硬件芯片,也可以用軟件實現(xiàn),在TPM的內(nèi)部封裝了可信計算技術所需要的安全服務功能,用來為信息系統(tǒng)提供基本的安全服務。CoT是可信計算技術的關鍵技術之一,其主要功能是對靜態(tài)代碼、數(shù)據(jù)和文件進行完整性度量和完整性存儲,度量對象包括操作系統(tǒng)加載器、操作系統(tǒng)內(nèi)核、應用程序等。TSS是位于TPM與應用程序之間的中間件,對TPM的二進制命令流進行了函數(shù)式封裝,為應用程序使用TPM提供接口支持,簡化了應用程序調用TPM內(nèi)部命令所需的操作。
道系統(tǒng)只占用很小的存儲空間,可高度裁減,保證了系統(tǒng)能以較高的效率運行。DeltaOS TA(啟動映像)是DeltaOS內(nèi)核的加載啟動程序。LambdaPro是為開發(fā)DeltaOS應用系統(tǒng)提供的集成開發(fā)環(huán)境,LambdaPro中包含的工程管理軟件可以將用戶代碼與DeltaOS內(nèi)核進行組合,按用戶的需要裁減配置DeltaOS內(nèi)核。在DeltaOS系統(tǒng)中,COMP(Connection-Oriented Message Passing)協(xié)議用于實現(xiàn)本地域COMP Socket通信,COMP協(xié)議具有雙向性和可靠性,是面向連接的消息傳輸協(xié)議。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種可信道系統(tǒng)及其實現(xiàn)方法,該系統(tǒng)及方法可以確保DeltaOS內(nèi)核文件和應用程序文件的完整性,建立從DeltaOS TA、DeltaOS內(nèi)核到DeltaOS應用程序的信任鏈,并滿足嵌入式環(huán)境下可信計算功能的實時響應。
為解決上述技術問題所采用的技術方案是:
一種可信道系統(tǒng),包括設置在DeltaOS TA內(nèi)的第一可信平臺模塊子系統(tǒng)和第一完整性度量子系統(tǒng),設置在DeltaOS內(nèi)核中的第二可信平臺模塊子系統(tǒng)、第二完整性度量子系統(tǒng)和可信軟件棧子系統(tǒng),以及設置在DeltaOS應用程序中的應用模塊;
第一可信平臺模塊子系統(tǒng)用于實現(xiàn)TPM2.0的密碼運算、命令執(zhí)行以及寄存器的配置工作,對第一完整性度量子系統(tǒng)的請求命令進行接收處理;
第一完整性度量子系統(tǒng)(200)通過調用第一可信平臺模塊子系統(tǒng)(100)實現(xiàn)對DeltaOS內(nèi)核文件的完整性度量和完整性存儲;
第二可信平臺模塊子系統(tǒng)(300)用于實現(xiàn)TPM 2.0的密碼運算、命令執(zhí)行和平臺寄存器以及COMP Socket通信協(xié)議系統(tǒng)的配置,對第二完整性度量子系統(tǒng)、可信軟件棧子系統(tǒng)的請求命令進行接收處理,第二可信平臺模塊子系統(tǒng)通過讀取第一可信平臺模塊子系統(tǒng)的第一平臺配置寄存器獲取DeltaOS內(nèi)核文件的完整性信息;
第二可信平臺模塊子系統(tǒng)的任務優(yōu)先級高于DeltaOS內(nèi)核驅動的任務優(yōu)先級;
第二完整性度量子系統(tǒng)通過第二可信平臺模塊子系統(tǒng)實現(xiàn)對DeltaOS應用程序文件的完整性度量和完整性存儲;
可信軟件棧子系統(tǒng)實現(xiàn)TSS 2.0的系統(tǒng)API和用戶API,對第二可信平臺模塊子系統(tǒng)的二進制命令流進行函數(shù)式封裝,可信軟件棧子系統(tǒng)是應用模塊和第二可信平臺模塊子系統(tǒng)之間的訪問通道。
可信軟件棧子系統(tǒng)的任務優(yōu)先級高于DeltaOS內(nèi)核驅動的任務優(yōu)先級,且低于第二可信平臺模塊子系統(tǒng)的任務優(yōu)先級。
進一步的,第一可信平臺模塊子系統(tǒng)包括第一密碼模塊、第一命令模塊和第一平臺配置寄存器;第一密碼模塊內(nèi)包含有第一雜湊算法、第一隨機數(shù)生成算法和第一算法自檢;第一命令模塊內(nèi)包含有第一完整性存儲命令、第一平臺配置寄存器初始化命令和用于雜湊計算的第一完整性度量命令,第一命令模塊調用第一密碼模塊中的各密碼算法實現(xiàn)完整性度量,第一命令模塊對第一平臺配置寄存器的第一完整性存儲單元進行初始化清零操作;第一平臺配置寄存器用于存儲DeltaOS內(nèi)核文件的完整性度量值。
進一步的,第二可信平臺模塊子系統(tǒng)包括第二密碼模塊、第二命令模塊、第二平臺配置寄存器和數(shù)據(jù)通信模塊;第二密碼模塊內(nèi)包含有第二雜湊算法、第二隨機數(shù)生成算法、對稱加密算法、非對稱加密算法、數(shù)字簽名算法和第二算法自檢;第二命令模塊內(nèi)包含有第二完整性存儲命令、第二平臺配置寄存器初始化命令、數(shù)據(jù)密封存儲命令、密鑰管理命令和使用者管理命令,以及用于雜湊計算的第二完整性度量命令;第二命令模塊調用第二密碼模塊中的各密碼算法,第二命令模塊對第二平臺配置寄存器的第二完整性存儲單元進行初始化清零操作;第二可信平臺模塊子系統(tǒng)讀取第一可信平臺模塊子系統(tǒng)中的第一平臺配置寄存器,把DeltaOS內(nèi)核的完整性度量值復制到第二平臺配置寄存器中;第二平臺配置寄存器用于存儲DeltaOS應用程序文件的完整性度量值。
進一步的,可信軟件棧子系統(tǒng)包括系統(tǒng)API模塊和用戶API模塊;系統(tǒng)API模塊包括第二通信套接字、第三通信套接字、第二字節(jié)流序列化單元和第二命令包發(fā)送與接收單元;系統(tǒng)API模塊實現(xiàn)通信套接字和字節(jié)流序列化,用于與數(shù)據(jù)通信模塊建立COMP Socket連接,建立可信軟件棧子系統(tǒng)與第二可信平臺模塊子系統(tǒng)之間的通信;用戶API模塊包括用戶API模塊接口和第四通信套接字;數(shù)據(jù)通信模塊包括第一通信套接字、第一字節(jié)流序列化單元和第一命令發(fā)送與接收單元;用戶API模塊實現(xiàn)通信套接字,用于與系統(tǒng)API模塊建立COMP Socket連接,實現(xiàn)應用模塊與可信軟件棧子系統(tǒng)之間的通信。
進一步的,應用模塊包括應用安全功能模塊和用戶API模塊訪問接口。
上述一種可信道系統(tǒng)的實現(xiàn)方法,包括以下流程:
步驟1,DeltaOS TA分別加載第一可信平臺模塊子系統(tǒng)與第一完整性度量子系統(tǒng);第一完整性度量子系統(tǒng)對DeltaOS內(nèi)核文件進行完整性度量,并將完整性度量結果存儲到第一可信平臺模塊子系統(tǒng);
步驟2,DeltaOS內(nèi)核分別加載第二可信平臺模塊子系統(tǒng)和第二完整性度量子系統(tǒng),設置第二可信平臺模塊子系統(tǒng)的任務優(yōu)先級為高于DeltaOS內(nèi)核驅動的任務優(yōu)先級;第二可信平臺模塊子系統(tǒng)通過其內(nèi)部的數(shù)據(jù)通信模塊讀取第一可信平臺模塊子系統(tǒng)存儲的完整性度量值;第二完整性度量子系統(tǒng)對DeltaOS應用程序文件進行完整性度量,并將完整性度量結果存儲到第二可信平臺模塊子系統(tǒng);
步驟3,DeltaOS內(nèi)核加載可信軟件棧子系統(tǒng)并設置其任務優(yōu)先級為高于DeltaOS內(nèi)核驅動的任務優(yōu)先級,且低于第二可信平臺模塊子系統(tǒng)的任務優(yōu)先級,可信軟件棧子系統(tǒng)與第二可信平臺模塊子系統(tǒng)建立通信連接;
步驟4,應用模塊與可信軟件棧子系統(tǒng)建立通信連接。
作為優(yōu)選,步驟1中對DeltaOS內(nèi)核文件進行完整性度量的具體流程如下:
步驟101,DeltaOS TA主程序加載第一可信平臺模塊子系統(tǒng),第一密碼模塊進行算法自檢;
步驟102,第一命令模塊對第一平臺配置寄存器進行初始化清零操作;
步驟103,DeltaOS TA主程序加載第一完整性度量子系統(tǒng),第一完整性度量子系統(tǒng)讀取DeltaOS內(nèi)核文件,并通過調用第一命令模塊進而調用第一密碼模塊,完成對DeltaOS內(nèi)核文件的完整性度量;
步驟104,第一命令模塊將DeltaOS內(nèi)核文件的完整性度量結果存儲到第一平臺配置寄存器中。
作為優(yōu)選,步驟2中對DeltaOS應用程序文件進行完整性度量的具體流程如下具體流程如下:
步驟201,DeltaOS內(nèi)核主程序加載第二可信平臺模塊子系統(tǒng),第二可信平臺模塊子系統(tǒng)讀取第一可信平臺模塊子系統(tǒng)中的第一平臺配置寄存器,將DeltaOS內(nèi)核文件的完整性度量結果存儲到第二平臺配置寄存器中;
步驟202,第二密碼模塊進行算法自檢;
步驟203,DeltaOS內(nèi)核主程序加載第二完整性度量子系統(tǒng),并讀取DeltaOS應用程序文件,并通過調用第二命令模塊進而調用第二密碼模塊完成對DeltaOS應用程序文件的完整性度量;
步驟204,第二命令模塊將DeltaOS應用程序文件的完整性度量結果存儲到第二平臺配置寄存器中。
作為優(yōu)選,可信軟件棧子系統(tǒng)與第二可信平臺模塊子系統(tǒng)的通信方法具體包括以下步驟:
步驟301,DeltaOS內(nèi)核主程序分別加載第二可信平臺模塊子系統(tǒng)和可信軟件棧子系統(tǒng);
步驟302,數(shù)據(jù)通信模塊與系統(tǒng)API模塊之間建立COMP Socket連接,分別作為第二可信平臺模塊子系統(tǒng)及可信軟件棧子系統(tǒng)的守護進程;用戶API模塊與系統(tǒng)API模塊之間建立COMP Socket連接;
步驟303,當應用模塊調用用戶API模塊提供的可信計算功能接口時,用戶API模塊調用系統(tǒng)API模塊,對可信計算功能接口命令包進行序列化操作,并將序列化后的二進制字節(jié)流命令包發(fā)送給數(shù)據(jù)通信模塊;
步驟304,數(shù)據(jù)通信模塊將二進制字節(jié)流命令包發(fā)送給第二命令模塊,第二命令模塊對字節(jié)流命令進行解析和執(zhí)行。
本發(fā)明是在DeltaOS TA和DeltaOS內(nèi)核中分別建立可信平臺模塊子系統(tǒng);建立從DeltaOS TA、DeltaOS內(nèi)核到應用程序的信任鏈;在DeltaOS內(nèi)核中建立可信軟件棧子系統(tǒng),滿足嵌入式環(huán)境下可信計算功能的實時響應。本發(fā)明提供的方法與現(xiàn)有技術相比主要具有以下的有益效果:
第一,在道系統(tǒng)中建立可信平臺,增強了DeltaOS的安全性。
第二,通過DeltaOS TA中的第一完整性度量子系統(tǒng)和DeltaOS內(nèi)核中的第二完整性度量子系統(tǒng),建立從DeltaOS TA、DeltaOS內(nèi)核到應用程序的信任鏈,確保DeltaOS內(nèi)核文件和應用程序文件的完整性。
第三,DeltaOS TA中的第一可信平臺模塊子系統(tǒng)、DeltaOS內(nèi)核中的第二可信平臺模塊子系統(tǒng)實現(xiàn)TPM 2.0的密碼運算功能、命令執(zhí)行功能和平臺配置寄存器,DeltaOS內(nèi)核中的可信軟件棧子系統(tǒng)實現(xiàn)部分TSS 2.0的系統(tǒng)API和用戶API。
第四,DeltaOS內(nèi)核中的可信軟件棧子系統(tǒng)是應用模塊訪問第二可信平臺模塊子系統(tǒng)的通道,可信軟件棧子系統(tǒng)、第二可信平臺模塊子系統(tǒng)的任務優(yōu)先級都高于DeltaOS內(nèi)核驅動的任務優(yōu)先級,保證了可信計算功能的實時響應,并且,第二可信平臺模塊子系統(tǒng)的任務優(yōu)先級高于可信軟件棧子系統(tǒng),保證了可信計算命令調用的良序性。
附圖說明
圖1是本發(fā)明提供的可信道系統(tǒng)結構框圖;
圖2是本發(fā)明建立可信道系統(tǒng)流程圖;
圖3是本發(fā)明可信道系統(tǒng)的一種實例的模塊交互圖;
圖4是本發(fā)明實現(xiàn)對DeltaOS內(nèi)核文件進行完整性度量的流程圖;
圖5是本發(fā)明實現(xiàn)對DeltaOS應用程序文件進行完整性度量的流程圖;
圖6是本發(fā)明DeltaOS應用模塊通過可信軟件棧子系統(tǒng)調用第二可信平臺模塊子系統(tǒng)流程圖;
圖7是本發(fā)明第一可信平臺模塊子系統(tǒng)實施圖;
圖8是本發(fā)明第二可信平臺模塊子系統(tǒng)實施圖;
圖9是本發(fā)明應用模塊通過可信軟件棧子系統(tǒng)訪問第二可信平臺模塊子系統(tǒng)實施圖。
具體實施方式
下面結合附圖對本發(fā)明的具體實施方式作進一步說明。在此需要說明的是,對于這些實施方式的說明用于幫助理解本發(fā)明,但并不構成對本發(fā)明的限定。
在整個道系統(tǒng)中,包括DeltaOS TA、DeltaOS內(nèi)核和DeltaOS應用程序。如圖1所示,本發(fā)明提供的一種可信道系統(tǒng)包括設置在DeltaOS TA內(nèi)的第一可信平臺模塊子系統(tǒng)100和第一完整性度量子系統(tǒng)200,設置在DeltaOS內(nèi)核中的第二可信平臺模塊子系統(tǒng)300、第二完整性度量子系統(tǒng)400和可信軟件棧子系統(tǒng)500,以及設置在DeltaOS應用程序中的應用模塊600。
第一可信平臺模塊子系統(tǒng)100用于實現(xiàn)TPM2.0的密碼運算、命令執(zhí)行以及寄存器的配置工作,對第一完整性度量子系統(tǒng)200的請求命令進行接收處理;
第一完整性度量子系統(tǒng)200通過調用第一可信平臺模塊子系統(tǒng)100實現(xiàn)對DeltaOS內(nèi)核文件的完整性度量和完整性存儲;
第二可信平臺模塊子系統(tǒng)300用于實現(xiàn)TPM 2.0的密碼運算、命令執(zhí)行和平臺寄存器以及COMP Socket通信協(xié)議系統(tǒng)的配置,對第二完整性度量子系統(tǒng)400、可信軟件棧子系統(tǒng)600的請求命令進行接收處理,第二可信平臺模塊子系統(tǒng)300通過讀取第一可信平臺模塊子系統(tǒng)100的第一平臺配置寄存器獲取DeltaOS內(nèi)核文件的完整性信息;
第二可信平臺模塊子系統(tǒng)300的任務優(yōu)先級高于DeltaOS內(nèi)核驅動的任務優(yōu)先級;
第二完整性度量子系統(tǒng)400通過第二可信平臺模塊子系統(tǒng)300實現(xiàn)對DeltaOS應用程序文件的完整性度量和完整性存儲;
可信軟件棧子系統(tǒng)500實現(xiàn)TSS 2.0的系統(tǒng)API和用戶API,對第二可信平臺模塊子系統(tǒng)300的二進制命令流進行函數(shù)式封裝,可信軟件棧子系統(tǒng)500是應用模塊600和第二可信平臺模塊子系統(tǒng)300之間的訪問通道。
可信軟件棧子系統(tǒng)500的任務優(yōu)先級高于DeltaOS內(nèi)核驅動的任務優(yōu)先級,且低于第二可信平臺模塊子系統(tǒng)300的任務優(yōu)先級。
應用模塊600是指道系統(tǒng)的一個應用程序。
本發(fā)明系統(tǒng)的工作流程如圖2所示,通過以下步驟建立從DeltaOS TA、DeltaOS內(nèi)核到DeltaOS應用程序的信任鏈,應用模塊600通過可信軟件棧子系統(tǒng)500訪問第二可信平臺模塊子系統(tǒng)300,實現(xiàn)可信計算功能,具體包括以下步驟:
步驟1,DeltaOS TA分別加載第一可信平臺模塊子系統(tǒng)100與第一完整性度量子系統(tǒng)200;第一完整性度量子系統(tǒng)200對DeltaOS內(nèi)核文件進行完整性度量,并將完整性度量結果存儲到第一可信平臺模塊子系統(tǒng)100;
步驟2,DeltaOS內(nèi)核分別加載第二可信平臺模塊子系統(tǒng)300和第二完整性度量子系統(tǒng)400,設置第二可信平臺模塊子系統(tǒng)300的任務優(yōu)先級為高于DeltaOS內(nèi)核驅動的任務優(yōu)先級;第二可信平臺模塊子系統(tǒng)300通過其內(nèi)部的數(shù)據(jù)通信模塊讀取第一可信平臺模塊子系統(tǒng)100存儲的完整性度量值;第二完整性度量子系統(tǒng)400對DeltaOS應用程序文件進行完整性度量,并將完整性度量結果存儲到第二可信平臺模塊子系統(tǒng)300;
步驟3,DeltaOS內(nèi)核加載可信軟件棧子系統(tǒng)500并設置其任務優(yōu)先級為高于DeltaOS內(nèi)核驅動的任務優(yōu)先級,且低于第二可信平臺模塊子系統(tǒng)的任務優(yōu)先級,可信軟件棧子系統(tǒng)500與第二可信平臺模塊子系統(tǒng)300建立通信連接;
步驟4,應用模塊600與可信軟件棧子系統(tǒng)500建立通信連接。
圖3給出了本發(fā)明的一種實例的模塊交互,第一可信平臺模塊子系統(tǒng)100包括第一密碼模塊110、第一命令模塊120和第一平臺配置寄存器130;第二可信平臺模塊子系統(tǒng)300包括第二密碼模塊310、第二命令模塊320、第二平臺配置寄存器330和數(shù)據(jù)通信模塊340;可信軟件棧子系統(tǒng)500包括系統(tǒng)API模塊510和用戶API模塊520。
第一密碼模塊110包含第一雜湊算法、第一隨機數(shù)生成算法和算法自檢。
第一命令模塊120包含第一平臺配置寄存器初始化命令、第一完整性存儲命令,以及用于雜湊計算的第一完整性度量命令。第一命令模塊120調用第一密碼模塊110中的密碼算法實現(xiàn)完整性度量命令,第一命令模塊120對第一平臺配置寄存器130進行初始化清零操作。
第一平臺配置寄存器130用于存儲DeltaOS內(nèi)核文件的完整性度量值。
DeltaOS TA主程序10分別加載第一可信平臺模塊子系統(tǒng)100和第一完整性度量子系統(tǒng)200。第一完整性度量子系統(tǒng)200通過第一可信平臺模塊子系統(tǒng)100對DeltaOS內(nèi)核進行完整性度量。
第二密碼模塊310包含第二雜湊算法、第二隨機數(shù)生成算法、對稱加密算法、非對稱加密算法、數(shù)字簽名算法和算法自檢。
第二命令模塊320包含第二平臺配置寄存器初始化命令、第二完整性存儲命令、數(shù)據(jù)密封存儲命令、密鑰管理命令和使用者管理命令,以及用于雜湊計算的第二完整性度量命令。第二命令模塊320調用第二密碼模塊310中的密碼算法,第二命令模塊320對第二平臺配置寄存器330進行初始化清零操作。數(shù)據(jù)通信模塊340是第二命令模塊320與系統(tǒng)API模塊510之間的通信橋梁。
第二可信平臺模塊子系統(tǒng)300讀取第一可信平臺模塊子系統(tǒng)100中的第一平臺配置寄存器130,把DeltaOS內(nèi)核的完整性度量值復制到第二平臺配置寄存器330中。
第二平臺配置寄存器330用于存儲DeltaOS應用程序的完整性度量值。
DeltaOS內(nèi)核主程序30分別加載第二可信平臺模塊子系統(tǒng)300、第二完整性度量子系統(tǒng)400和可信軟件棧子系統(tǒng)500。第二完整性度量子系統(tǒng)400通過第二可信平臺模塊子系統(tǒng)300對DeltaOS應用程序進行完整性度量。應用模塊600通過可信軟件棧子系統(tǒng)500訪問第二可信平臺模塊子系統(tǒng)300。
系統(tǒng)API模塊510實現(xiàn)通信套接字和字節(jié)流序列化,用于與數(shù)據(jù)通信模塊340建立COMP Socket連接,建立可信軟件棧子系統(tǒng)500與第二可信平臺模塊子系統(tǒng)300之間的通信。
用戶API模塊520實現(xiàn)通信套接字,用于與系統(tǒng)API模塊510建立COMP Socket連接,實現(xiàn)應用模塊600與可信軟件棧子系統(tǒng)500之間的通信。
DeltaOS應用程序的應用模塊600將訪問請求發(fā)送給用戶API模塊520,用戶API模塊520通過COMP Socket將請求轉發(fā)給系統(tǒng)API模塊510,系統(tǒng)API模塊510將請求進行字節(jié)流序列化后通過COMP Socket發(fā)送給數(shù)據(jù)通信模塊340,數(shù)據(jù)通信模塊340將請求數(shù)據(jù)通過COMP Socket發(fā)送給第二命令模塊320,第二命令模塊320收到數(shù)據(jù)后進行命令處理,第二命令模塊320處理后的數(shù)據(jù)再按照上述流程反向發(fā)送給應用模塊600。
如圖4所示,本發(fā)明系統(tǒng)實現(xiàn)對DeltaOS內(nèi)核文件進行完整性度量的工作流程如下:
步驟101,DeltaOS TA主程序加載第一可信平臺模塊子系統(tǒng),第一密碼模塊進行算法自檢;
步驟102,第一命令模塊對第一平臺配置寄存器進行初始化清零操作;
步驟103,DeltaOS TA主程序加載第一完整性度量子系統(tǒng),第一完整性度量子系統(tǒng)讀取DeltaOS內(nèi)核文件,并通過調用第一命令模塊進而調用第一密碼模塊,完成對DeltaOS內(nèi)核文件的完整性度量;
步驟104,第一命令模塊將DeltaOS內(nèi)核文件的完整性度量結果存儲到第一平臺配置寄存器中。
如圖5所示,本發(fā)明系統(tǒng)實現(xiàn)對DeltaOS應用程序文件進行完整性度量的工作流程如下:
步驟201,DeltaOS內(nèi)核主程序加載第二可信平臺模塊子系統(tǒng),第二可信平臺模塊子系統(tǒng)讀取第一可信平臺模塊子系統(tǒng)中的第一平臺配置寄存器,將DeltaOS內(nèi)核文件的完整性度量結果存儲到第二平臺配置寄存器中;
步驟202,第二密碼模塊進行算法自檢;
步驟203,DeltaOS內(nèi)核主程序加載第二完整性度量子系統(tǒng),并讀取DeltaOS應用程序文件,并通過調用第二命令模塊進而調用第二密碼模塊完成對DeltaOS應用程序文件的完整性度量;
步驟204,第二命令模塊將DeltaOS應用程序文件的完整性度量結果存儲到第二平臺配置寄存器中。
如圖6所示,本發(fā)明系統(tǒng)實現(xiàn)應用模塊600通過可信軟件棧子系統(tǒng)500調用第二可信平臺模塊子系統(tǒng)300的工作流程如下:
步驟301,DeltaOS內(nèi)核主程序分別加載第二可信平臺模塊子系統(tǒng)和可信軟件棧子系統(tǒng);
步驟302,數(shù)據(jù)通信模塊與系統(tǒng)API模塊之間建立COMP Socket連接,分別作為第二可信平臺模塊子系統(tǒng)及可信軟件棧子系統(tǒng)的守護進程;用戶API模塊與系統(tǒng)API模塊之間建立COMP Socket連接;
步驟303,當應用模塊調用用戶API模塊提供的可信計算功能接口時,用戶API模塊調用系統(tǒng)API模塊,對可信計算功能接口命令包進行序列化操作,并將序列化后的二進制字節(jié)流命令包發(fā)送給數(shù)據(jù)通信模塊;
步驟304,數(shù)據(jù)通信模塊將二進制字節(jié)流命令包發(fā)送給第二命令模塊,第二命令模塊對字節(jié)流命令進行解析和執(zhí)行。
下面結合圖7~9對本發(fā)明系統(tǒng)的具體實施方式進行更具體的說明。
第一可信平臺模塊子系統(tǒng)100和第二可信平臺模塊子系統(tǒng)300是對TPM規(guī)范2.0版本功能接口的軟件實現(xiàn),在TPM規(guī)范2.0版本中定義了TPM結構的基本組成,包括Hash引擎、非對稱密碼算法引擎、對稱密碼算法引擎、密鑰發(fā)生器、隨機數(shù)發(fā)生器、授權策略、易失性存儲、非易失性存儲和命令執(zhí)行引擎。
第一密碼模塊110和第二密碼模塊310中使用的密碼算法包括國家密碼管理局發(fā)布的SMx系列算法。第一雜湊算法1101和第二雜湊算法3101都采用SM3,第一隨機數(shù)生成算法1102和第二隨機數(shù)生成算法3102都使用TPM2_GetRandom命令獲得隨機數(shù)。對稱加密算法3103采用SM4。非對稱加密算法3104采用SM2。數(shù)字簽名算法3105采用SM2。
第一命令模塊120和第二命令模塊320是對TPM規(guī)范2.0版本中執(zhí)行引擎的實現(xiàn),第一完整性度量命令1201和第二完整性度量命令3101都使用TPM2_HashSequenceStart、TPM2_SequenceUpdate、TPM2_SequenceComplete完成雜湊計算。第一完整性存儲命令1202和第二完整性存儲命令3202都使用TPM2_PCR_Extend對完整性度量結果進行存儲,分別存儲至第一完整性存儲單元1301和第二完整性存儲單元3301。第一平臺配置寄存器初始化命令和第二平臺配置寄存器初始化命令都使用_TPM_Init、TPM2_Startup對第一完整性存儲單元1301和第二完整性存儲單元3301進行初始化清零操作。
第一平臺配置寄存器130和第二平臺配置寄存器330是TPM內(nèi)部的一種特殊寄存器,用來保存平臺的配置信息,這些配置信息包括平臺的軟硬件組件信息(如程序信息)、軟硬件組件的配置信息等,第一完整性存儲單元1301和第二完整性存儲單元3301都是包含32個以上的數(shù)據(jù)存儲單元,每個存儲單元長度不低于160比特。
可信軟件棧子系統(tǒng)500是對TSS規(guī)范2.0版本的軟件實現(xiàn),可信軟件棧子系統(tǒng)的結構從邏輯上可以劃分為3個層次:系統(tǒng)API模塊510和用戶API模塊520。系統(tǒng)API模塊510作為核心服務,提供對TPM 2.0命令引擎的序列化和反序列化。用戶API模塊520通過用戶API模塊接口5201調用系統(tǒng)API模塊510的相關功能。應用模塊600通過用戶API模塊訪問接口620訪問第二可信平臺模塊300的安全功能。
在第一可信平臺模塊子系統(tǒng)100中,第一密碼模塊110包括第一雜湊算法1101和第一隨機數(shù)生成算法1102。第一命令模塊120包括第一完整性度量命令1201、第一完整性存儲命令1202和第一平臺配置寄存器初始化命令1203。第一平臺配置寄存器130包括第一完整性存儲單元1301。
第一可信平臺模塊子系統(tǒng)100啟動后,第一平臺配置寄存器初始化命令1203對第一完整性存儲單元1301進行初始化清零操作,當?shù)谝豢尚牌脚_模塊子系統(tǒng)100接收到來自第一完整性度量子系統(tǒng)200的命令后,第一完整性度量命令1201調用第一雜湊算法1101對DeltaOS內(nèi)核文件進行完整性度量,第一完整性存儲命令1202把完整性度量值存儲到第一完整性存儲單元1301。
在第二可信平臺模塊子系統(tǒng)300中,第二密碼模塊310包括第二雜湊算法3101和第二隨機數(shù)生成算法3102、對稱加密算法3103、非對稱加密算法3104和數(shù)字簽名算法3105。第二命令模塊320包括第二完整性度量命令3201、第二完整性存儲命令3202、第二平臺配置寄存器初始化命令3203、數(shù)據(jù)密封存儲命令3204、密鑰管理命令3205和使用者管理命令3206。第二平臺配置寄存器330包括第二完整性存儲單元3301。
第二可信平臺模塊子系統(tǒng)300啟動后,第二平臺配置寄存器初始化命令3203讀取第一完整性存儲單元1301的信息,將其復制到第二完整性存儲單元3301,當?shù)诙尚牌脚_模塊子系統(tǒng)300接收到來自第二完整性度量子系統(tǒng)400的命令后,第二完整性度量命令3201調用第二雜湊算法3101對DeltaOS應用程序文件進行完整性度量,第二完整性存儲命令3202把完整性度量值存儲到第二完整性存儲單元3301。
應用模塊600包括應用安全功能610和用戶API模塊訪問接口620。系統(tǒng)API模塊510包括第二通信套接字5101、第三通信套接字5102、第二字節(jié)流序列化單元5103和第二命令包發(fā)送與接收單元5104。用戶API模塊520包括用戶API模塊接口5201和第四通信套接字5202。數(shù)據(jù)通信模塊340包括第一通信套接字3401、第一字節(jié)流序列化單元3402和第一命令發(fā)送與接收單元3403。
應用模塊600為實現(xiàn)應用安全功能610,首先通過用戶API模塊訪問接口620訪問用戶API模塊520,用戶API模塊520通過用戶API模塊接口5201,使用第四通信套接字5202與系統(tǒng)API模塊510中的第三通信套接字5102進行通信,系統(tǒng)API模塊510通過第二字節(jié)流序列化單元5103解析來自用戶API模塊520的請求數(shù)據(jù),并通過第二數(shù)據(jù)包發(fā)送與接收單元5104、第二通信套接字5101與數(shù)據(jù)通信模塊340中的第一通信套接字3401進行通信,數(shù)據(jù)通信模塊340通過第一字節(jié)流序列化單元3402解析來自系統(tǒng)API模塊510的請求數(shù)據(jù),并通過命令發(fā)送與接收單元3403將命令發(fā)送給第二可信平臺模塊300中的第二命令模塊320,完成對命令的處理,實現(xiàn)應用安全功能610。
說明書中未闡述的部分均為現(xiàn)有技術或公知常識。本實施例僅用于說明該發(fā)明,而不用于限制本發(fā)明的范圍,本領域技術人員對于本發(fā)明所做的等價置換等修改均認為是落入該發(fā)明權利要求書所保護范圍內(nèi)。