基于硬件隔離環境的可信應用檢測的方法及裝置的制造方法
【技術領域】
[0001]本發明涉及可信執行環境技術領域,尤其涉及一種基于硬件隔離環境的可信應用檢測的方法及裝置。
【背景技術】
[0002]硬件隔離環境是指將操作系統中的通用執行環境(Rich Execut1nEnvironment,簡稱REE)與可信任執行環境(Trusted Execut1n Environment,簡稱TEE)相隔離的一種操作系統環境。當前,TEE是一種新興的移動安全技術,是一個用戶可信任的運行環境,在此環境下移動終端可以進行應用程序中的敏感操作,例如銀行轉賬、密碼修改等。這些應用程序需要較高的安全水平,一般涉及移動支付,數字版權管理和內容保護等。通過可信任執行環境技術可以將應用程序的敏感操作和不敏感操作分離處理。其中,TEE是一個獨立的環境,與通常的Windows操作系統或其他操作系統隔離開來。在操作系統中執行的惡意操作或操作系統中運行的惡意應用將無法影響TEE中受保護的軟件和數據。
[0003]當前,移動應用一般全部安裝在REE中,且應用的所有操作行為均由REE內的操作系統來執行,因此當前對移動應用的安全檢測一般僅涉及REE內的移動應用本身,即對移動應用進行惡意代碼檢測、應用漏洞庫檢測等。但是,當前的移動應用安全檢測沒有涉及TEE環境,僅通過對移動應用本身進行惡意代碼檢測、應用漏洞庫檢測等并不能確認TEE環境下的可信應用的安全性。
【發明內容】
[0004]本發明的實施例提供一種基于硬件隔離環境的可信應用檢測的方法及裝置,以解決當前的TEE執行環境下的可信應用安全性問題。
[0005]為達到上述目的,本發明采用如下技術方案:
[0006]—種基于硬件隔離環境的可信應用檢測的方法,包括:
[0007]對待被檢測的可信應用安裝包進行信任鏈檢測;
[0008]若所述對待被檢測的可信應用安裝包進行信任鏈檢測合格,將可信應用安裝包對應的可信應用安裝于TEE環境中;
[0009]運行所述可信應用,驗證所述可信應用的執行時間的唯一性和原子性;
[0010]若驗證所述可信應用的執行時間的唯一性和原子性合格,提取所述可信應用的預先設置的應用標識,以及所述可信應用的代碼和數據存儲的地址空間值;
[0011 ]根據所述應用標識和所述地址空間值對所述可信應用進行應用間隔離檢測;
[0012]若對所述可信應用進行應用間隔離檢測合格,對所述可信應用進行漏洞檢測,確定所述可信應用是否為風險惡意應用。
[0013]具體的,所述對待被檢測的可信應用安裝包進行信任鏈檢測,包括:
[0014]提取可信應用安裝包內的認證信息;所述認證信息包括可信應用的簽名信息或者證書信息;
[0015]將所述認證信息與本地存儲的已知認證信息進行匹配比較;
[0016]若所述認證信息與本地存儲的已知認證信息相匹配,確定所述可信應用安裝包的信任鏈檢測合格;
[0017]若所述認證信息與本地存儲的已知認證信息不匹配,確定所述可信應用安裝包的信任鏈檢測不合格。
[0018]具體的,所述運行所述可信應用,驗證所述可信應用的執行時間的唯一性和原子性,包括:
[0019]對所述可信應用進行多次模擬操作,在不同的動作執行點中的各動作執行點上分別提取多個時間偏移變量;
[0020]將每次模擬操作的各動作執行點上的時間偏移變量構成一離散函數曲線;
[0021]將每次模擬操作所對應的離散函數曲線進行比較;
[0022]若每次模擬操作所對應的離散函數曲線一致,則確定所述可信應用的執行時間唯
ο
[0023]具體的,所述運行所述可信應用,驗證所述可信應用的執行時間的唯一性和原子性,包括:
[0024]對所述可信應用進行多次失敗操作;
[0025]獲取每次失敗操作后可信應用的時間偏移變量;
[0026]若所述每次失敗操作后可信應用的時間偏移變量為0或者為應用執行的初始值,則確定所述可信應用的執行時間具有原子性。
[0027]具體的,所述根據所述應用標識和所述地址空間值對所述可信應用進行應用間隔離檢測,包括:
[0028]從地址空間值與應用標識相對應的關系信息中確定可信應用的應用標識是否唯一對應可信應用的地址空間值,并確定所述關系信息中的地址空間值是否彼此不重疊;
[0029]若可信應用的應用標識唯一對應可信應用的地址空間值,且所述關系信息中的地址空間值彼此不重疊,確定所述可信應用進行應用間隔離檢測合格。
[0030]—種基于硬件隔離環境的可信應用檢測的裝置,包括:
[0031]信任鏈檢測單元,用于對待被檢測的可信應用安裝包進行信任鏈檢測;
[0032]可信應用安裝單元,用于在所述對待被檢測的可信應用安裝包進行信任鏈檢測合格后,將可信應用安裝包對應的可信應用安裝于TEE環境中;
[0033]時間特性檢測單元,用于運行所述可信應用,驗證所述可信應用的執行時間的唯一*性和原子性;
[0034]數據提取單元,用于在驗證所述可信應用的執行時間的唯一性和原子性合格后,提取所述可信應用的預先設置的應用標識,以及所述可信應用的代碼和數據存儲的地址空間值;
[0035]應用間隔離檢測單元,用于根據所述應用標識和所述地址空間值對所述可信應用進行應用間隔離檢測;
[0036]漏洞檢測單元,用于在對所述可信應用進行應用間隔離檢測合格,對所述可信應用進行漏洞檢測,確定所述可信應用是否為風險惡意應用。
[0037]具體的,所述信任鏈檢測單元,包括:
[0038]認證信息提取模塊,用于提取可信應用安裝包內的認證信息;所述認證信息包括可信應用的簽名信息或者證書信息;
[0039]匹配模塊,用于將所述認證信息與本地存儲的已知認證信息進行匹配比較;
[0040]信任鏈檢測模塊,用于在所述認證信息與本地存儲的已知認證信息相匹配時,確定所述可信應用安裝包的信任鏈檢測合格,并在所述認證信息與本地存儲的已知認證信息不匹配時,確定所述可信應用安裝包的信任鏈檢測不合格。
[0041 ]具體的,所述時間特性檢測單元,包括:
[0042]模擬操作模塊,用于對所述可信應用進行多次模擬操作,在不同的動作執行點中的各動作執行點上分別提取多個時間偏移變量;
[0043]離散函數曲線生成模塊,用于將每次模擬操作的各動作執行點上的時間偏移變量構成一離散函數曲線;
[0044]離散函數曲線比較模塊,用于將每次模擬操作所對應的離散函數曲線進行比較;
[0045]唯一性確定模塊,用于在每次模擬操作所對應的離散函數曲線一致時,確定所述可信應用的執行時間唯一。
[0046]具體的,所述時間特性檢測單元,包括:
[0047]失敗操作模塊,用于對所述可信應用進行多次失敗操作,獲取每次失敗操作后可