一種基于ARM TrustZone的手機私密信息保險箱的制作方法
【專利說明】—種基于ARM TrustZone的手機私密信息保險箱
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明屬于手機安全技術(shù)領(lǐng)域,涉及一種手機私密信息保護和應(yīng)用程序安全運行的保險箱,特別是涉及一種基于ARM TrustZone的手機私密信息保險箱。
[0003]
【背景技術(shù)】
[0004]目前在移動設(shè)備領(lǐng)域有兩種安全隔離技術(shù),一種是虛擬化技術(shù),另一種是GlobalPlatform提出的可信執(zhí)行環(huán)境。
[0005]虛擬化技術(shù)為不同的客戶操作系統(tǒng)提供系統(tǒng)所需要的全部資源,每個操作系統(tǒng)可單獨運行在不同的安全級別模式。虛擬化技術(shù)的實現(xiàn)基于虛擬機(Virtual Machine),同時對內(nèi)存空間、資源和時間進行分割。OpenKernel Labs公司發(fā)布了基于微內(nèi)核操作系統(tǒng)0KL4 Microvisor的虛擬化解決方案SecureIT Mobile,通過虛擬化技術(shù),在同一移動設(shè)備上同時支持兩個域,這些域之間相互隔離;Green Hills Software為EAL 7開發(fā)的操作系統(tǒng)INTEGRITY,采用了虛擬化技術(shù)將不可信應(yīng)用和可信應(yīng)用隔離開,并將可信應(yīng)用置于高可信的操作系統(tǒng)核心之上。但是虛擬化技術(shù)并未對設(shè)備和內(nèi)存提供硬件保護,仍存在較大的安全隱患。
[0006]可信執(zhí)行環(huán)境構(gòu)架上與虛擬化技術(shù)類似,都是在同一個硬件平臺上運行兩個執(zhí)行環(huán)境,所不同的是,它提供了對設(shè)備和內(nèi)存的硬件保護。通常的可信執(zhí)行環(huán)境的實現(xiàn)是基于ARM TrustZone技術(shù)。ARM TrustZone技術(shù)通過在嵌入式內(nèi)核中開辟出一塊可信代碼區(qū)來實現(xiàn)完整的系統(tǒng)安全性??尚糯a區(qū)所占空間相對較小,運行在支持ARM TrustZone技術(shù)的處理器新增的安全區(qū)域內(nèi),從而為系統(tǒng)內(nèi)部的代碼實現(xiàn)系統(tǒng)級的安全性奠定了基礎(chǔ),可信代碼支持從嵌入式引導(dǎo)啟動到支持各個級別的代碼可信執(zhí)行。這些可信代碼就可以用來處理系統(tǒng)中安全相關(guān)的任務(wù)。華為海思麒麟620芯片已經(jīng)使用了基于ARM TrustZone的安全芯片。ARM TrustZone的正常模式和安全模式兩種模式集中在一個內(nèi)核里,可以實現(xiàn)簡單切換,實現(xiàn)硬件層強化的安全保護,用戶的敏感數(shù)據(jù)存于具有安全模式的芯片中,達到安全防護的目的。但是這款芯片更多優(yōu)點是集中在性能的提升方面,對于用戶的安全應(yīng)用沒有更多指導(dǎo)。
[0007]
【發(fā)明內(nèi)容】
[0008]為了解決用戶文件和應(yīng)用程序安全隔離問題,本發(fā)明提供了一個基于ARMTrustZone的手機私密信息保險箱。
[0009]本發(fā)明所采用的技術(shù)方案是:一個基于ARM TrustZone的手機私密信息保險箱,其特征在于:包括普通域操作系統(tǒng)(Rish OS)和安全域操作系統(tǒng)(Security OS);所述的普通域操作系統(tǒng)切換到安全域操作系統(tǒng)時,需使用到ARM TrustZone提供的監(jiān)控模式(Minitor Mode),用戶通過普通域操作系統(tǒng)發(fā)送快速中斷(FIQ)進入監(jiān)控模式,在監(jiān)控模式下修改ARM處理器的安全配置寄存器(SCR)的NS位,將其置為0,使得CPU狀態(tài)切換到安全域操作系統(tǒng);在安全域用戶能選擇進行安全運行程序或進行手機私密文件存儲,并在讀取內(nèi)存的時候利用ARM TrustZone CPU提供的加密功能對安全域的私密文件進行加解密。
[0010]運用本發(fā)明提供的一個基于ARM TrustZone的手機私密信息保險箱進行手機私密信息保險的方法,其特征在于:在普通域用戶通過簡單的操作即能實現(xiàn)手機私密文件加密保存到安全域中,在安全域中用戶能安全運行應(yīng)用程序。
[0011]作為優(yōu)選,所述的手機私密文件加密保存到安全域中,其具體實現(xiàn)包括以下步驟:
步驟1:用戶登陸手機客戶端,點擊傳送文件按鈕,標(biāo)記文件后觸發(fā)文件傳送模式;步驟2:普通域使用內(nèi)核中的TrustZone驅(qū)動(TrustZone Driver)發(fā)送快速中斷(FIQ)、系統(tǒng)進入監(jiān)控模式(Monitor Mode),同時凍結(jié)普通域CPU的狀態(tài);
步驟3:監(jiān)控模式(Monitor Mode)修改ARM處理器的安全配置寄存器(SCR)中的NS
位;
步驟4:從安全域利用文件傳送機制根據(jù)標(biāo)記找到要傳送的文件,去除標(biāo)記,傳送到安全域的緩存中;此時普通域的CPU處于凍結(jié)狀態(tài),無法對傳送過程進行滲入。由于安全域具有最高權(quán)限,所以可以讀取到普通域內(nèi)存中的所有數(shù)據(jù);
步驟5:利用ARM TrustZone的密鑰,對傳送來的文件數(shù)據(jù)采用加密算法進行加密存儲。
[0012]作為優(yōu)選,步驟5中所述的加密算法采用ARM TrustZone提供的AES算法。
[0013]作為優(yōu)選,所述的安全運行應(yīng)用程序,其具體實現(xiàn)包括以下步驟:
步驟1:用戶點擊保險箱中的程序,觸發(fā)切換操作;
步驟2:普通域使用內(nèi)核中的TrustZone驅(qū)動(TrustZone Driver)發(fā)送快速中斷(FIQ)、系統(tǒng)進入監(jiān)控模式(Monitor Mode),同時凍結(jié)普通域的CPU的寄存器的狀態(tài);
步驟3:監(jiān)控模式(Monitor Mode)修改ARM處理器的安全配置寄存器(SCR)中的NS位,將該位置0,進入安全域;
步驟4:安全域運行完整的Android操作系統(tǒng),用戶直接運行安裝程序操作,運行應(yīng)用程序;由于ARM TrustZone實現(xiàn)了硬件隔離并提供了對外設(shè),如屏幕鍵盤的保護,所以應(yīng)用程序在安全域是可以安全運行的。
[0014]步驟5:使用I/O監(jiān)聽函數(shù)對安全域內(nèi)存中的文件讀取進行監(jiān)聽,寫入文件采用加密算法進行加密,讀取文件則進行解密;這樣保證了運行程序過程中數(shù)據(jù)的安全性和完整性。
[0015]作為優(yōu)選,安全運行應(yīng)用程序中所述的加密算法采用ARM TrustZone提供的AES算法,解密采用ARM TrustZone提供的AES解密算法。
[0016]作為優(yōu)選,安全運行應(yīng)用程序中所述的切換操作,其具體實現(xiàn)過程包括以下子步驟:
步驟1.1:TrustZone驅(qū)動發(fā)出中斷請求;
步驟1.2:中斷請求被發(fā)送到ARM TrustZone的中斷控制器TZIC中; 步驟1.3:由中斷控制器TZIC判斷請求中斷的類型,發(fā)送相應(yīng)的中斷給ARM處理器;步驟1.4:根據(jù)中斷類型發(fā)送到不同的ARM寄存器,將IRQ中斷信號發(fā)送給當(dāng)前運行狀態(tài)寄存器(Current Program Status Register,CPSR),若是 FIQ,則進入監(jiān)控模式;
步驟1.5:通過監(jiān)控模式,訪問安全配置寄存器(Seucre Configurat1n Register,SCR),將NS位置O,實現(xiàn)系統(tǒng)切換。
[0017]本發(fā)明的有益效果:
(1)利用ARMTrustZone技術(shù)實現(xiàn)了一個手機私密信息保險箱,用戶可以把涉及隱私和安全性要求高的程序和文件存入保險箱,從而保護其安全性;
(2)基于ARMTrustZone技術(shù)實現(xiàn)了安全操作系統(tǒng)和非安全操作系統(tǒng)的手機雙系統(tǒng)切換。在普通域和安全域運行不同的操作系統(tǒng),用戶通過簡單的操作,即可實現(xiàn)兩種系統(tǒng)的快速切換從而實現(xiàn)硬件隔離;
(3)利用ARMTrustZone提供的密鑰,對安全域的機密文件數(shù)據(jù)進行加密,提高安全性保護了用戶數(shù)據(jù)的安全;
(4)安全域和非安全域之間的切換做到了快速和透明,提高了易用性,同時用戶可以手工將安全級別高的程序安裝在保險箱中,也可以將私密文件直接放到保險箱中,操作方便快捷。
[0018]
【附圖說明】
[0019]圖1:是本發(fā)明實施例的系統(tǒng)原理示意圖。
[0020]圖2:是本發(fā)明實施例的私密信息保護流程圖。
[0021]圖3:是本發(fā)明實施例的為應(yīng)用程序安全運行流程圖。
[0022]圖4:是本發(fā)明實施例的普通域到安全域切換流程圖。
[0023]
【具體實施方式】
為了便于本領(lǐng)域普通技術(shù)人員理解和實施本發(fā)明,下面結(jié)合附圖及實施例對本發(fā)明作進一步的詳細描述,應(yīng)當(dāng)理解,此處所描述的實施示例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0024]請見圖1,本發(fā)明提供的一個基于ARM TrustZone的手機私密信息保險箱,包括普通域操作系統(tǒng)(Rish OS)和安全域操作系統(tǒng)(Security OS);所述的普通域操作系統(tǒng)切換到安全域操作系統(tǒng)時,需使用到ARM TrustZone提供的監(jiān)控模式(Minitor Mode),用戶通過普通域操作系統(tǒng)發(fā)送快速中斷(FIQ)進入監(jiān)控模式,在監(jiān)控模式下修改ARM處理器的安全配置寄存器(SCR)的NS位,將其置為0,使得CPU狀態(tài)切換到安全域操作系統(tǒng);在安全域用戶能選擇進行安全運行程序或進行手機私密文件存儲,并在讀取內(nèi)存的時候利用ARMTrustZone CPU提供的加密功能對安全域的私密文件進行加解密。
[0025]以下對本實施例的監(jiān)控模式(Monitor Mode)原理進行詳細說明:
在帶ARM TrustZone安全擴展的ARM處理器的CP15協(xié)處理器中有一個安全配置寄存器(SCR),該寄存器中有一個NS位,這個NS位指明當(dāng)前系統(tǒng)的狀態(tài)。如果NS為0,則當(dāng)前系統(tǒng)處于安全態(tài);如果NS為1,則當(dāng)前系統(tǒng)處于非安全態(tài)。但當(dāng)系統(tǒng)處于監(jiān)控模式時,不管NS位是否為O,都可以訪問安全環(huán)境的資源。這個NS位不僅影響CPU內(nèi)核和內(nèi)存子系統(tǒng),還可以影響片內(nèi)外設(shè)的工作。NS位是ARM TrustZone對系統(tǒng)所做的關(guān)鍵擴展。系統(tǒng)的安全狀態(tài)與系統(tǒng)的用戶模式和特權(quán)模式無關(guān),也就是說用戶態(tài)程序也可以運行在安全態(tài),而運行特權(quán)態(tài)程序時系統(tǒng)也可能處于非安全態(tài)。NS位只能被運行在安