[發明專利]基于軟TCM和可信軟件棧的安卓系統及其可信認證系統與方法有效
| 申請號: | 201610052539.0 | 申請日: | 2016-01-26 |
| 公開(公告)號: | CN105718807B | 公開(公告)日: | 2018-08-03 |
| 發明(設計)人: | 周福才;易海;高健 | 申請(專利權)人: | 東北大學 |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57;G06F21/51;G06F21/12;H04L9/32 |
| 代理公司: | 沈陽東大知識產權代理有限公司 21109 | 代理人: | 梁焱 |
| 地址: | 110819 遼寧*** | 國省代碼: | 遼寧;21 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 tcm 可信 軟件 系統 及其 認證 方法 | ||
1.一種基于軟TCM和可信軟件棧的安卓系統,其特征在于:其包括建立在現有安卓系統的安卓內核上的軟TCM、可信軟件棧和軟TCM驅動模塊;所述軟TCM與所述可信軟件棧嵌入現有安卓系統的系統庫,為安卓系統的應用程序提供調用環境;其中所述可信軟件棧在所述軟TCM之上,作為外部訪問與管理軟TCM的接口;所述軟TCM驅動模塊,位于現有安卓系統的Linux內核層,根據Linux系統特性編寫,用于為所述軟TCM提供安卓系統的底層調用接口;
所述軟TCM,包括:
設備驅動模塊:為可信軟件棧與軟TCM提供通信接口;從可信軟件棧接收對軟TCM的控制與查詢命令、需要軟TCM對其進行存儲或加解密的數據;
命令解釋和收發模塊:對設備驅動模塊傳入的命令進行解析,轉換為軟TCM內部的命令后,發送至命令執行模塊;對設備驅動模塊傳入的需要軟TCM對其進行存儲或加解密的數據進行解析后,發送給加解密模塊;
加解密模塊:利用中國國家密碼管理局發布的SM2橢圓曲線公鑰密碼算法、SM3密碼雜湊算法和SM4分組密碼算法對解析后的需要軟TCM對其進行加解密的數據進行加解密處理;
命令執行模塊:執行軟TCM的內部命令;
內部密鑰和數據存儲模塊:含有模擬PCR寄存器;用于維護軟TCM內部密鑰、數據,實現軟TCM內部狀態和部分數據的永久存儲。
2.權利要求書1所述的基于軟TCM和可信軟件棧的安卓系統的可信認證系統,其特征在于:其包括:該安卓系統啟動的可信認證系統和該安卓系統的安卓軟件安裝的可信認證系統;
所述該安卓系統啟動的可信認證系統,包括:
度量模塊:在安卓系統的啟動執行模塊Linux Kernel、Init Process、Services、Zygote/Vm、System Server、Server Manager中均加入度量模塊;從啟動執行模塊LinuxKernel的度量模塊開始,依次由當前啟動執行模塊的度量模塊對下一個啟動執行模塊進行度量,每個度量模塊使用軟TCM中的SM3密碼雜湊算法計算下一個啟動執行模塊的哈希值即度量值并發送給度量模塊所在的啟動執行模塊的擴展PCR操作模塊;
擴展PCR操作模塊:在安卓系統的啟動執行模塊Linux Kernel、Init Process、Services、Zygote/Vm、System Server、Server Manager中均加入擴展PCR操作模塊;從啟動執行模塊Linux Kernel的擴展PCR操作模塊開始,依次由當前啟動執行模塊的擴展PCR操作模塊將模擬PCR寄存器中的當前值與對應的度量模塊發送的度量值進行合并;使用軟TCM中的SM3密碼雜湊算法計算合并結果的哈希值,并用該哈希值更新模擬PCR寄存器中的當前值,并將模擬PCR寄存器中的當前值寫入日志;
完整性認證模塊:在安卓系統的啟動執行模塊Home Launcher中加入完整性認證模塊;所述完整性認證模塊用于將模擬PCR寄存器中的當前值與預設值進行比較,若模擬PCR寄存器中的當前值不等于預設值,則將日志中記錄的模擬PCR寄存器中的當前值逐一與預先獲取的未經篡改的模擬PCR寄存器中的當前值記錄進行對比,定位被篡改的啟動執行模塊后,輸出安卓系統啟動認證失敗及被篡改的啟動執行模塊的提示信息;
所述該安卓系統的安卓軟件安裝的可信認證系統,包括:
CA:接收軟件開發者的公鑰及身份信息;核實軟件開發者身份;向可信的軟件開發者頒發代碼簽名證書,并提供安卓軟件簽名與打包工具;
安卓軟件簽名模塊:從軟件開發者處獲取可信的未簽名安卓軟件和代碼簽名證書;使用軟TCM中的SM3密碼雜湊算法計算該可信的未簽名安卓軟件的哈希值;使用軟件開發者的私鑰和軟TCM中的SM2橢圓曲線公鑰密碼算法對該可信的未簽名安卓軟件的哈希值進行加密,得到數字簽名;將數字簽名和該可信的未簽名安卓軟件以及代碼簽名證書進行打包,形成簽名后的安卓軟件;
代碼簽名證書驗證模塊:用于驗證代碼簽名證書的有效性,若無效,則停止安卓軟件安裝過程,若有效,則將該代碼簽名證書的有效驗證結果發送給安卓軟件完整性認證模塊;
數字簽名驗證模塊:使用軟件開發者的公鑰對數字簽名進行解密,得到可信的未簽名安卓軟件的哈希值Hash_1;使用軟TCM中的SM3密碼雜湊算法,對未知來源的不可信的未簽名安卓軟件計算哈希值Hash_2;判斷Hash_1與Hash_2是否相等,否,則停止安卓軟件安裝過程,是,則將該數字簽名有效驗證結果發送給安卓軟件完整性認證模塊;
安卓軟件完整性認證模塊:如果代碼簽名證書的有效驗證結果和數字簽名有效驗證結果均收到,則繼續進行安卓軟件安裝過程,否則停止安卓軟件安裝過程。
3.權利要求1所述的基于軟TCM和可信軟件棧的安卓系統的可信認證方法,其特征在于:包括:該安卓系統啟動的可信認證過程和該安卓系統的安卓軟件安裝的可信認證過程;
所述該安卓系統的啟動可信認證過程,包括如下步驟:
步驟1:開機啟動安卓系統;
步驟2:首先將安卓系統的啟動執行模塊Linux Kernel作為控制節點,使用軟TCM中的SM3密碼雜湊算法計算下一個啟動執行模塊Init Process的哈希值即度量值;
步驟3:將模擬PCR寄存器中的當前值與Init Process的度量值進行合并;
步驟4:使用軟TCM中的SM3密碼雜湊算法計算步驟3合并結果的哈希值,并用該哈希值更新模擬PCR寄存器中的當前值,并將模擬PCR寄存器中的當前值寫入日志;
步驟5:依次將安卓系統的啟動執行模塊Init Process、Services、Zygote/Vm、SystemServer和Server Manager分別作為控制節點,按照步驟2至4的方法,分別計算出Services的度量值及對應的模擬PCR寄存器中的當前值、Zygote/Vm的度量值及對應的模擬PCR寄存器中的當前值、System Server度量值及對應的模擬PCR寄存器中的當前值、ServerManager度量值及對應的模擬PCR寄存器中的當前值、Home Launcher度量值及對應的模擬PCR寄存器中的當前值;
步驟6:將模擬PCR寄存器中的當前值與預設值進行比較,若模擬PCR寄存器中的當前值不等于預設值,則將日志中記錄的模擬PCR寄存器中的當前值逐一與預先獲取的未經篡改的模擬PCR寄存器中的當前值記錄進行對比,定位被篡改的啟動執行模塊后,輸出安卓系統啟動認證失敗及被篡改的啟動執行模塊的提示信息;
所述該安卓系統的安卓軟件安裝的可信認證過程,包括如下步驟:
步驟1:CA驗證軟件開發者信息并向軟件開發者頒發代碼簽名證書,并提供安卓軟件簽名與打包工具;具體包括如下步驟:
步驟1-1:軟件開發者產生私鑰對,即公鑰和私鑰;
步驟1-2:軟件開發者與CA簽訂合同并支付費用;
步驟1-3:軟件開發者向CA提供其身份信息及公鑰;
步驟1-4:CA核實軟件開發者身份;
步驟1-5:CA向可信的軟件開發者頒發代碼簽名證書,并提供安卓軟件簽名與打包工具;
步驟2:軟件開發者對安卓軟件進行簽名;
步驟2-1:軟件開發者獲取可信的未簽名安卓軟件和CA頒發的代碼簽名證書;
步驟2-2:使用軟TCM中的SM3密碼雜湊算法計算該可信的未簽名安卓軟件的哈希值;
步驟2-3:使用軟件開發者的私鑰和軟TCM中的SM2橢圓曲線公鑰密碼算法對該可信的未簽名安卓軟件的哈希值進行加密,得到數字簽名,并將數字簽名和該可信的未簽名安卓軟件以及代碼簽名證書進行打包,形成待上傳到應用商店的簽名后的安卓軟件;
步驟3:對從應用商店獲得的待安裝的安卓軟件進行認證;
步驟3-1:對待安裝的安卓軟件進行解壓,得到代碼簽名證書、數字簽名和未知來源的不可信的未簽名安卓軟件;
步驟3-2:驗證代碼簽名證書的有效性,若無效,則停止安卓軟件安裝過程,若有效,則將該代碼簽名證書的有效驗證結果發送給步驟3-6;
步驟3-3:使用軟件開發者的公鑰對數字簽名進行解密,得到可信的未簽名安卓軟件的哈希值Hash_1;
步驟3-4:使用軟TCM中的SM3密碼雜湊算法,對未知來源的不可信的未簽名安卓軟件計算哈希值Hash_2;
步驟3-5:判斷Hash_1與Hash_2是否相等,否,則停止安卓軟件安裝過程,是,則將該數字簽名有效驗證結果發送給步驟3-6;
步驟3-6:如果代碼簽名證書的有效驗證結果和數字簽名有效驗證結果均收到,則繼續進行安卓軟件安裝過程,否則停止安卓軟件安裝過程。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于東北大學,未經東北大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610052539.0/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:二維碼支撐系統提高數據安全性的方法
- 下一篇:一種硬件指令調用控制系統





