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