軟TCM驅(qū)動模塊;所述軟TCM與所述可信軟件棧嵌入現(xiàn) 有安卓系統(tǒng)的系統(tǒng)庫,為安卓系統(tǒng)的應用程序提供調(diào)用環(huán)境;其中所述可信軟件棧在所述 軟TCM之上,作為外部訪問與管理軟TCM的接口;所述軟TCM驅(qū)動模塊,位于現(xiàn)有安卓系統(tǒng)的 Linux內(nèi)核層,根據(jù)Linux系統(tǒng)特性編寫,用于為所述軟TCM提供安卓系統(tǒng)的底層調(diào)用接口; 所述軟TCM,包括: 設備驅(qū)動模塊:為可信軟件棧與軟TCM提供通信接口;從可信軟件棧接收對軟TCM的控 制與查詢命令、需要軟TCM對其進行存儲或加解密的數(shù)據(jù); 命令解釋和收發(fā)模塊:對設備驅(qū)動模塊傳入的命令進行解析,轉(zhuǎn)換為軟TCM內(nèi)部的命令 后,發(fā)送至命令執(zhí)行模塊;對設備驅(qū)動模塊傳入的需要軟TCM對其進行存儲或加解密的數(shù)據(jù) 進行解析后,發(fā)送給加解密模塊; 加解密模塊:利用中國國家密碼管理局發(fā)布的SM2橢圓曲線公鑰密碼算法、SM3密碼雜 湊算法和SM4分組密碼算法對解析后的需要軟TCM對其進行加解密的數(shù)據(jù)進行加解密處理; 命令執(zhí)行模塊:執(zhí)行軟TCM的內(nèi)部命令; 內(nèi)部密鑰和數(shù)據(jù)存儲模塊:含有模擬PCR寄存器;用于維護軟TCM內(nèi)部密鑰、數(shù)據(jù),實現(xiàn) 軟TCM內(nèi)部狀態(tài)和部分數(shù)據(jù)的永久存儲。2. 權(quán)利要求書1所述的基于軟TCM和可信軟件棧的安卓系統(tǒng)的可信認證系統(tǒng),其特征在 于:其包括:該安卓系統(tǒng)啟動的可信認證系統(tǒng)和該安卓系統(tǒng)的安卓軟件安裝的可信認證系 統(tǒng); 所述該安卓系統(tǒng)啟動的可信認證系統(tǒng),包括: 度量模塊:在安卓系統(tǒng)的啟動執(zhí)行模塊Linux Kernel、Init Process、Services、 Zygote/Vm、System Server、Server Manager中均加入度量模塊;從啟動執(zhí)行模塊Linux Kernel的度量模塊開始,依次由當前啟動執(zhí)行模塊的度量模塊對下一個啟動執(zhí)行模塊進行 度量,每個度量模塊使用軟TCM中的SM3密碼雜湊算法計算下一個啟動執(zhí)行模塊的哈希值即 度量值并發(fā)送給度量模塊所在的啟動執(zhí)行模塊的擴展PCR操作模塊; 擴展PCR操作模塊:在安卓系統(tǒng)的啟動執(zhí)行模塊Linux Kernel、Init Process、 Services、Zygote/Vm、System Server、Server Manager中均加入擴展PCR操作模塊;從啟動 執(zhí)行模塊Linux Kernel的擴展PCR操作模塊開始,依次由當前啟動執(zhí)行模塊的擴展PCR操作 模塊將模擬PCR寄存器中的當前值與對應的度量模塊發(fā)送的度量值進行合并;使用軟TCM中 的SM3密碼雜湊算法計算合并結(jié)果的哈希值,并用該哈希值更新模擬PCR寄存器中的當前 值,并將模擬PCR寄存器中的當前值寫入日志; 完整性認證模塊:在安卓系統(tǒng)的啟動執(zhí)行模塊Home Launcher中加入完整性認證模塊; 所述完整性認證模塊用于將模擬PCR寄存器中的當前值與預設值進行比較,若模擬PCR寄存 器中的當前值不等于預設值,則將日志中記錄的模擬PCR寄存器中的當前值逐一與預先獲 取的未經(jīng)篡改的模擬PCR寄存器中的當前值記錄進行對比,定位被篡改的啟動執(zhí)行模塊后, 輸出安卓系統(tǒng)啟動認證失敗及被篡改的啟動執(zhí)行模塊的提示信息; 所述該安卓系統(tǒng)的安卓軟件安裝的可信認證系統(tǒng),包括: CA:接收軟件開發(fā)者的公鑰及身份信息;核實軟件開發(fā)者身份;向可信的軟件開發(fā)者頒 發(fā)代碼簽名證書,并提供安卓軟件簽名與打包工具; 安卓軟件簽名模塊:從軟件開發(fā)者處獲取可信的未簽名安卓軟件和代碼簽名證書;使 用軟TCM中的SM3密碼雜湊算法計算該可信的未簽名安卓軟件的哈希值;使用軟件開發(fā)者的 私鑰和軟TCM中的SM2橢圓曲線公鑰密碼算法對該可信的未簽名安卓軟件的哈希值進行加 密,得到數(shù)字簽名;將數(shù)字簽名和該可信的未簽名安卓軟件以及代碼簽名證書進行打包,形 成簽名后的安卓軟件; 代碼簽名證書驗證模塊:用于驗證代碼簽名證書的有效性,若無效,則停止安卓軟件安 裝過程,若有效,則將該代碼簽名證書的有效驗證結(jié)果發(fā)送給安卓軟件完整性認證模塊;數(shù) 字簽名驗證模塊:使用軟件開發(fā)者的公鑰對數(shù)字簽名進行解密,得到可信的未簽名安卓軟 件的哈希值Hash 使用軟TCM中的SM3密碼雜湊算法,對未知來源的不可信的未簽名安卓 軟件計算哈希值Hash_2;判斷Hash_l與Hash_2是否相等,否,則停止安卓軟件安裝過程,是, 則將該數(shù)字簽名有效驗證結(jié)果發(fā)送給安卓軟件完整性認證模塊; 安卓軟件完整性認證模塊:如果代碼簽名證書的有效驗證結(jié)果和數(shù)字簽名有效驗證結(jié) 果均收到,則繼續(xù)進行安卓軟件安裝過程,否則停止安卓軟件安裝過程。3.權(quán)利要求1所述的基于軟TCM和可信軟件棧的安卓系統(tǒng)的可信認證方法,其特征在 于:包括:該安卓系統(tǒng)啟動的可信認證過程和該安卓系統(tǒng)的安卓軟件安裝的可信認證過程; 所述該安卓系統(tǒng)的啟動可信認證過程,包括如下步驟: 步驟1:開機啟動安卓系統(tǒng); 步驟2:首先將安卓系統(tǒng)的啟動執(zhí)行模塊Linux Kerne 1作為控制節(jié)點,使用軟TCM中的 SM3密碼雜湊算法計算下一個啟動執(zhí)行模塊Init Process的哈希值即度量值; 步驟3:將模擬PCR寄存器中的當前值與Init Process的度量值進行合并; 步驟4:使用軟TCM中的SM3密碼雜湊算法計算步驟3合并結(jié)果的哈希值,并用該哈希值 更新模擬PCR寄存器中的當前值,并將模擬PCR寄存器中的當前值寫入日志; 步驟5:依次將安卓系統(tǒng)的啟動執(zhí)行模塊Init Process、Services、Zygote/Vm、System Server和Server Manager分別作為控制節(jié)點,按照步驟2至4的方法,分別計算出Services 的度量值及對應的模擬PCR寄存器中的當前值、Zygote/Vm的度量值及對應的模擬PCR寄存 器中的當前值、System Server度量值及對應的模擬PCR寄存器中的當前值、Server Manager度量值及對應的模擬PCR寄存器中的當前值、Home Launcher度量值及對應的模擬 PCR寄存器中的當前值; 步驟6:將模擬PCR寄存器中的當前值與預設值進行比較,若模擬PCR寄存器中的當前值 不等于預設值,則將日志中記錄的模擬PCR寄存器中的當前值逐一與預先獲取的未經(jīng)篡改 的模擬PCR寄存器中的當前值記錄進行對比,定位被篡改的啟動執(zhí)行模塊后,輸出安卓系統(tǒng) 啟動認證失敗及被篡改的啟動執(zhí)行模塊的提示信息; 所述該安卓系統(tǒng)的安卓軟件安裝的可信認證過程,包括如下步驟: 步驟1: CA驗證軟件開發(fā)者信息并向軟件開發(fā)者頒發(fā)代碼簽名證書,并提供安卓軟件簽 名與打包工具; 步驟2:軟件開發(fā)者對安卓軟件進行簽名; 步驟2-1:軟件開發(fā)者獲取可信的未簽名安卓軟件和CA頒發(fā)的代碼簽名證書; 步驟2-2:使用軟TCM中的SM3密碼雜湊算法計算該可信的未簽名安卓軟件的哈希值; 步驟2-3:使用軟件開發(fā)者的私鑰和軟TCM中的SM2橢圓曲線公鑰密碼算法對該可信的 未簽名安卓軟件的哈希值進行加密,得到數(shù)字簽名,并將數(shù)字簽名和該可信的未簽名安卓 軟件以及代碼簽名證書進行打包,形成待上傳到應用商店的簽名后的安卓軟件; 步驟3:對從應用商店獲得的待安裝的安卓軟件進行認證; 步驟3-1:對待安裝的安卓軟件進行解壓,得到代碼簽名證書、數(shù)字簽名和未知來源的 不可信的未簽名安卓軟件; 步驟3-2:驗證代碼簽名證書的有效性,若無效,則停止安卓軟件安裝過程,若有效,則 將該代碼簽名證書的有效驗證結(jié)果發(fā)送給步驟3-6; 步驟3-3:使用軟件開發(fā)者的公鑰對數(shù)字簽名進行解密,得到可信的未簽名安卓軟件的 哈希值Hash_l; 步驟3-4:使用軟TCM中的SM3密碼雜湊算法,對未知來源的不可信的未簽名安卓軟件計 算哈希值Hash_2; 步驟3-5:判斷Hash j與Hash_2是否相等,否,則停止安卓軟件安裝過程,是,則將該數(shù) 字簽名有效驗證結(jié)果發(fā)送給步驟3-6; 步驟3-6:如果代碼簽名證書的有效驗證結(jié)果和數(shù)字簽名有效驗證結(jié)果均收到,則繼續(xù) 進行安卓軟件安裝過程,否則停止安卓軟件安裝過程。4.根據(jù)權(quán)利要求3所述的基于軟TCM和可信軟件棧的安卓系統(tǒng)的可信認證方法,其特征 在于:所述該安卓系統(tǒng)的安卓軟件安裝的可信認證過程中步驟1包括如下步驟: 步驟1-1:軟件開發(fā)者產(chǎn)生私鑰對,即公鑰和私鑰; 步驟1-2:軟件開發(fā)者與CA簽訂合同并支付費用; 步驟1-3:軟件開發(fā)者向CA提供其身份信息及公鑰; 步驟1-4: CA核實軟件開發(fā)者身份; 步驟1-5:CA向可信的軟件開發(fā)者頒發(fā)代碼簽名證書,并提供安卓軟件簽名與打包工 具。
【專利摘要】基于軟TCM和可信軟件棧的安卓系統(tǒng)及其可信認證系統(tǒng)與方法,屬于安卓系統(tǒng)及安卓軟件安全技術(shù)領(lǐng)域。包括建立在現(xiàn)有安卓系統(tǒng)的安卓內(nèi)核上的軟TCM、可信軟件棧和軟TCM驅(qū)動模塊;軟TCM與可信軟件棧嵌入現(xiàn)有安卓系統(tǒng)的系統(tǒng)庫;可信軟件棧在軟TCM之上;軟TCM驅(qū)動模塊位于現(xiàn)有安卓系統(tǒng)的Linux內(nèi)核層;可信認證系統(tǒng)包括該安卓系統(tǒng)啟動的可信認證系統(tǒng)和安卓軟件安裝的可信認證系統(tǒng);可信認證方法包括該安卓系統(tǒng)的啟動可信認證過程和安卓軟件安裝的可信認證過程。本發(fā)明基于可信計算的思想來解決安卓操作系統(tǒng)的安全性的一體化解決方案,增加了對安卓終端完整性的檢驗,加強了系統(tǒng)底層的防護,確保安卓終端中的第三方軟件也是安全可信的,從而使得安卓終端絕對安全。
【IPC分類】G06F21/57, G06F21/12, G06F21/51, H04L9/32
【公開號】CN105718807
【申請?zhí)枴緾N201610052539
【發(fā)明人】周福才, 易海, 高健
【申請人】東北大學
【公開日】2016年6月29日
【申請日】2016年1月26日