本發明涉及終端安全防護領域,尤其涉及一種防止移動終端解鎖的方法及系統。
背景技術:
隨著移動終端以及移動互聯網的發展,指紋功能正逐漸成為各移動終端的標配項;由于指紋具有特定專屬性,在解鎖和支付方面帶來方便快捷,替代了傳統的數字密碼輸入的麻煩和不安全性。但是目前的指紋解鎖仍存在暴力性破解的極大風險,使用戶丟失手機后重要數據存在被暴露的風險。
因此,現有技術還有待于改進和發展。
技術實現要素:
鑒于上述現有技術的不足,本發明的目的在于提供一種防止移動終端解鎖的方法及系統,旨在解決現有的指紋解鎖方式在移動終端丟失后仍存在暴力解鎖的風險的問題。
本發明的技術方案如下:
一種防止移動終端解鎖的方法,其中,包括步驟:
A、將用戶預先輸入的指紋數據傳遞到TEE TA進行加密,然后寫入到RMPB 存儲區域;
B、當需要解鎖時,接收用戶當前輸入的指紋數據,并獲取存儲在RPMB存儲區域中的指紋數據并進行解密,將當前輸入的指紋數據與解密后的指紋數據進行比對,根據比對結果判斷是否解鎖。
所述的防止移動終端解鎖的方法,其中,所述步驟A具體包括:
A1、啟動錄入指紋數據;
A2、采集指紋數據;
A3、通過REE接口將指紋數據傳遞到TEE TA;
A4、TEE TA對指紋數據進行加密;
A5、將加密后的指紋數據寫入至RPMB存儲區域;
A6、返回存儲結果。
所述的防止移動終端解鎖的方法,其中,所述步驟B具體包括:
B1、控制點亮移動終端屏幕;
B2、接收用戶當前輸入的指紋數據;
B3、啟動指紋驗證操作;
B4、通過REE接口與TEE TA交互獲取存儲在RPMB存儲區域中的指紋數據;
B5、讀取RPMB存儲區域中的指紋數據;
B6、對RPMB存儲區域中的指紋數據進行解密;
B7、將當前輸入的指紋數據與解密后的指紋數據進行比對;
B8、返回比對結果,并根據比對結果判斷是否解鎖。
所述的防止移動終端解鎖的方法,其中,所述步驟A之前還包括:
S、在移動終端開機時,將注入在BROM中的內存ID與移動終端中的內存ID進行比對,若二者不一致,則控制移動終端重啟,若二者一致,則控制移動終端進入待機狀態。
所述的防止移動終端解鎖的方法,其中,所述步驟S具體包括:
S1、BROM啟動;
S2、判斷BROM中是否注入有第一檢查標志,若有則讀取BROM中的內存ID,并啟動預加載程序,若沒有則直接啟動預加載程序;
S3、判斷移動終端是否需要檢查內存ID,若需要檢查則讀取移動終端中的內存ID,并將注入在BROM中的內存ID與移動終端中的內存ID進行比對,若二者不一致,則控制移動終端重啟,若二者一致,則控制移動終端進入待機狀態;若不需要檢查則控制移動終端進入待機狀態。
所述的防止移動終端解鎖的方法,其中,所述步驟S之前還包括:
T、獲取移動終端的內存ID,將獲取到的內存ID寫入到BROM的存儲區域中,并進行鎖定。
所述的防止移動終端解鎖的方法,其中,所述步驟T具體包括:
T1、通過ADB連接移動終端;
T2、獲取移動終端的設備ID;
T3、根據設備ID發送讀取內存ID的指令至移動終端;
T4、移動終端接收到所述指令后讀取內存ID并返回;
T5、發送設備重啟的命令并傳遞至BROM;
T6、BROM映射通訊端口;
T7、將映射結果返回;
T8、將內存ID寫入到BROM的存儲區域中;
T9、返回寫入狀態。
一種防止移動終端解鎖的系統,其中,包括:
寫入模塊,用于將用戶預先輸入的指紋數據傳遞到TEE TA進行加密,然后寫入到RMPB 存儲區域;
比對模塊,用于當需要解鎖時,接收用戶當前輸入的指紋數據,并獲取存儲在RPMB存儲區域中的指紋數據并進行解密,將當前輸入的指紋數據與解密后的指紋數據進行比對,根據比對結果判斷是否解鎖。
所述的防止移動終端解鎖的系統,其中,還包括:
檢查模塊,用于在移動終端開機時,將注入在BROM中的內存ID與移動終端中的內存ID進行比對,若二者不一致,則控制移動終端重啟,若二者一致,則控制移動終端進入待機狀態。
所述的防止移動終端解鎖的系統,其中,還包括:
綁定模塊,用于獲取移動終端的內存ID,將獲取到的內存ID寫入到BROM的存儲區域中,并進行鎖定。
有益效果:本發明將用戶的指紋數據預先加密然后寫入到RMPB 存儲區域,這樣即使他人撿到用戶移動終端,也無法竊取用戶重要信息,提高了移動終端的設備安全性。
附圖說明
圖1為本發明一種防止移動終端解鎖的方法較佳實施例的流程圖。
圖2為圖1所示方法中步驟S1的具體流程圖。
圖3為圖1所示方法中步驟S2的具體流程圖。
圖4為本發明方法中檢查步驟的具體流程圖。
圖5為本發明方法中綁定步驟的具體流程圖。
圖6為本發明一種防止移動終端解鎖的系統較佳實施例的結構框圖。
具體實施方式
本發明提供一種防止移動終端解鎖的方法及系統,為使本發明的目的、技術方案及效果更加清楚、明確,以下對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
請參閱圖1,圖1為本發明一種防止移動終端解鎖的方法較佳實施例的流程圖,如圖所示,其包括步驟:
S1、將用戶預先輸入的指紋數據傳遞到TEE TA進行加密,然后寫入到RMPB 存儲區域;
S2、當需要解鎖時,接收用戶當前輸入的指紋數據,并獲取存儲在RPMB存儲區域中的指紋數據并進行解密,將當前輸入的指紋數據與解密后的指紋數據進行比對,根據比對結果判斷是否解鎖。
本發明相比傳統的劃屏及數字、圖案解鎖方法,安全性更有保障;同時,指紋數據不是存儲在系統中,而是選擇加密存儲在RPMB 安全區域,從而確保即使移動終端丟失,也不會被竊取重要信息。
具體來說,如圖2所示,所述步驟S1具體包括:
S11、啟動錄入指紋數據;
S12、采集指紋數據;
S13、通過REE接口將指紋數據傳遞到TEE TA;
S14、TEE TA對指紋數據進行加密;
S15、將加密后的指紋數據寫入至RPMB存儲區域;
S16、返回存儲結果。
用戶在使用移動終端過程中,需要通過設置來激活指紋解鎖,并確保指紋作為唯一解鎖方式。首先,啟動錄入指紋數據的操作(應用端),然后通過指紋傳感器采集指紋數據,移動終端系統REE 端將指紋數據將REE接口傳遞到TEE 環境下的TA(TEE TA),以使TEE TA完成指紋數據的加密(具體可通過AES 加密),TA 在TEE 環境下操縱RMPB 存儲區域,并將加密后的指紋數據寫入RMPB 存儲區域中,最終將結果返回REE 端并通知應用完成操作。其中,TEE(Trusted Execution Environment)指可信賴安全可執行環境;TA(Trusted Applicaton)指在TEE 環境下運行的程序;REE(Rich Execution Environment)指不安全的執行環境,通常就是指Linux android 系統;RPMB(Replay Protect Memory Block)指回環保護分區,用戶在需要存儲重要數據時可以使用該分區,該分區采用了授權加密的機制來保護數據,是MEMORY存儲區上的一個特殊安全區域,存儲和讀寫都需要特定密碼才能操作;MEMORY指設備存儲區域(即內存),分RAM/ROM部分, 相當于電腦的內存和硬盤,后續的內存ID即指MEMORY ID。AES(Advanced Encryption Standard)是高級加密標準,在密碼學中又稱Rijndael加密法,是美國聯邦政府采用的一種區塊加密標準。
具體來說,如圖3所示,所述步驟S2具體包括:
S21、控制點亮移動終端屏幕;
S22、接收用戶當前輸入的指紋數據;
S23、啟動指紋驗證操作;
S24、通過REE接口與TEE TA交互獲取存儲在RPMB存儲區域中的指紋數據;
S25、讀取RPMB存儲區域中的指紋數據;
S26、對RPMB存儲區域中的指紋數據進行解密;
S27、將當前輸入的指紋數據與解密后的指紋數據進行比對;
S28、返回比對結果,并根據比對結果判斷是否解鎖。
用戶在使用移動終端過程中,如開機需要通過即時指紋錄入驗證。在點亮移動終端屏幕后,通過指紋傳感器采集當前使用者的指紋數據,然后啟動指紋驗證操作。
在指紋驗證操作啟動后,應用端通過TEE接口與TEE TA交互,獲取存儲在RPMB存儲區域中的指紋數據,即通知TEE TA讀取RPMB存儲區域中的指紋數據。然后通過AES 密鑰對RMPB 存儲區域中的指紋數據進行解密,并返回給應用端,將采集的當前使用者的指紋數據與返回的指紋數據進行比對(具體可以交由指紋傳感器來進行比對),并將比對結果返回給應用端,若指紋不匹配,應用端將告知解鎖失敗,保持當前狀態,若指紋匹配,則解鎖成功。
進一步,所述步驟S1之前還包括:
S0、在移動終端開機時,將注入在BROM中的內存ID與移動終端中的內存ID進行比對,若二者不一致,則控制移動終端重啟,若二者一致,則控制移動終端進入待機狀態。
上述流程是在開機后,檢查MEMORY 匹配唯一性(稱為檢查步驟)。這樣,當其他人撿到移動終端后,在開機重啟時,若更換內存,則會導致啟動失敗,而不斷重啟,直至停機。
進一步,如圖4所示,所述步驟S0具體包括:
S01、BROM啟動;
S02、判斷BROM中是否注入有第一檢查標志,若有則讀取BROM中的內存ID,并啟動預加載程序,若沒有則直接啟動預加載程序;
S03、判斷移動終端是否需要檢查內存ID,若需要檢查則讀取移動終端中的內存ID,并將注入在BROM中的內存ID與移動終端中的內存ID進行比對,若二者不一致,則控制移動終端重啟,若二者一致,則控制移動終端進入待機狀態;若不需要檢查則控制移動終端進入待機狀態。
具體來說,BROM 在CPU(芯片)里面,其中有很小的一個存儲區域,在出廠生產的時候有工序往這個區域注入當初與移動終端對應的內存ID;廠商給每個內存分配不同的一個串號,而且無法更改,此數據在移動終端出廠前注入BROM后將無法更改。BROM是指在CPU 芯片中上電后第一個運行程序,里面有少量的一次性存儲區域,數據不可以擦除。移動終端的內存ID 可以通過在程序運行時,通過preloader程序(預加載程序)可以獲取這個信息。preloader程序是指移動終端中初始工作的一個啟動的運行程序。
在移動終端每次開機時,先啟動BROM,判斷其是否有注入第一檢查標志,根據是否有注入第一檢查標志來判斷是否讀取BROM中的內存ID,也就是說,先判斷BROM中是否注入了內存ID。然后通過預加載程序來判斷是否需要檢查內存ID,若需要的話,則動態讀取移動終端的內存ID,并進行比較,若一致則啟動系統Kernel然后進入待機,若不一致,則返回重啟,導致無法開機,從而避免信息被竊取。若不需要檢查內存ID,則直接啟動系統Kernel,正常開啟后進入待機。其中的系統Kernel是指操作系統內核,操作系統內核是指大多數操作系統的核心部分;它由操作系統中用于管理存儲器、文件、外設和系統資源的那些部分組成。操作系統內核通常運行進程,并提供進程間的通信。
進一步,所述步驟S0之前還包括:
T、獲取移動終端的內存ID,將獲取到的內存ID寫入到BROM的存儲區域中,并進行鎖定。
上述步驟是將CPU芯片和MEMMORY綁定(稱為綁定步驟),從而加大撿到或盜取移動終端者竊取用戶重要信息的難度。即本發明使CPU 和 memory具有強關聯性,增強了不法分子替換單一器件的成本和難度,同時在生產環節導入便捷安全。
具體來說,如圖5所示,所述步驟T具體包括:
T1、通過ADB連接移動終端;
T2、獲取移動終端的設備ID;
T3、根據設備ID發送讀取內存ID的指令至移動終端;
T4、移動終端接收到所述指令后讀取內存ID并返回;
T5、發送設備重啟的命令并傳遞至BROM;
T6、BROM映射通訊端口;
T7、將映射結果返回;
T8、將內存ID寫入到BROM的存儲區域中;
T9、返回寫入狀態。
注入內存ID需要在移動終端初始上電進行,所以需要再次讓手機重啟開機,并在BROM 工作過程中完成內存ID注入BROM 存儲區域中,并進行鎖定,確保無法再修改。
首先移動終端開機,然后由PC燒寫efuse工具通過ADB連接移動終端,移動終端將設備ID返回給PC燒寫efuse工具,然后PC燒寫efuse工具發送讀取內存ID的指令至移動終端,移動終端從設備內存中讀取內存ID,并將其返回至PC燒寫efuse工具,PC燒寫efuse工具發送設備重啟的命令至移動終端并傳遞至BROM,BROM映射通訊端口并將映射結果返回PC燒寫efuse工具,PC燒寫efuse工具組織內存ID的數據并寫入到BROM的存儲區域中,BROM返回寫入狀態至PC燒寫efuse工具。
其中,efuse (Electronic fuse) 指電子熔斷在CPU 芯片中一個微小的存儲,存儲以下重要的flag和數據,在MTK 平臺上只能燒寫一次,高通平臺存在多次燒寫機會,不可以擦除,并且需要特定方式讀取。
ADB(Android Debug Bridge ) 指起到調試橋的作用。
基于上述方法,本發明還提供一種防止移動終端解鎖的系統較佳實施例,如圖6所示,其包括:
寫入模塊100,用于將用戶預先輸入的指紋數據傳遞到TEE TA進行加密,然后寫入到RMPB 存儲區域;
比對模塊200,用于當需要解鎖時,接收用戶當前輸入的指紋數據,并獲取存儲在RPMB存儲區域中的指紋數據并進行解密,將當前輸入的指紋數據與解密后的指紋數據進行比對,根據比對結果判斷是否解鎖。
具體的,所述寫入模塊100具體包括:
錄入啟動單元,用于啟動錄入指紋數據;
指紋采集單元,用于采集指紋數據;
指紋傳遞單元,用于通過REE接口將指紋數據傳遞到TEE TA;
指紋加密單元,用于對指紋數據進行加密;
指紋寫入單元,用于將加密后的指紋數據寫入至RPMB存儲區域;
存儲返回單元,用于返回存儲結果。
具體的,所述比對模塊200具體包括:
屏幕點亮單元,用于控制點亮移動終端屏幕;
指紋接收單元,用于接收用戶當前輸入的指紋數據;
啟動驗證單元,用于啟動指紋驗證操作;
指紋獲取單元,用于通過REE接口與TEE TA交互獲取存儲在RPMB存儲區域中的指紋數據;
指紋讀取單元,用于讀取RPMB存儲區域中的指紋數據;
指紋解密單元,用于對RPMB存儲區域中的指紋數據進行解密;
指紋比對單元,用于將當前輸入的指紋數據與解密后的指紋數據進行比對;
指紋解鎖單元,用于返回比對結果,并根據比對結果判斷是否解鎖。
進一步,系統還包括:
檢查模塊,用于在移動終端開機時,將注入在BROM中的內存ID與移動終端中的內存ID進行比對,若二者不一致,則控制移動終端重啟,若二者一致,則控制移動終端進入待機狀態。
具體的,所述檢查模塊具體包括:
BROM啟動單元,用于啟動BROM;
第一判斷單元,用于判斷BROM中是否注入有第一檢查標志,若有則讀取BROM中的內存ID,并啟動預加載程序,若沒有則直接啟動預加載程序;
第二判斷單元,用于判斷移動終端是否需要檢查內存ID,若需要檢查則讀取移動終端中的內存ID,并將注入在BROM中的內存ID與移動終端中的內存ID進行比對,若二者不一致,則控制移動終端重啟,若二者一致,則控制移動終端進入待機狀態;若不需要檢查則控制移動終端進入待機狀態。
進一步,系統還包括:
綁定模塊,用于獲取移動終端的內存ID,將獲取到的內存ID寫入到BROM的存儲區域中,并進行鎖定。
具體的,所述綁定模塊具體包括:
連接單元,用于通過ADB連接移動終端;
設備ID獲取單元,用于獲取移動終端的設備ID;
指令發送單元,用于根據設備ID發送讀取內存ID的指令至移動終端;
ID接收單元,用于移動終端接收到所述指令后讀取內存ID并返回;
命令傳遞單元,用于發送設備重啟的命令并傳遞至BROM;
映射單元,用于BROM映射通訊端口;
映射返回單元,用于將映射結果返回;
ID寫入單元,用于將內存ID寫入到BROM的存儲區域中;
狀態返回單元,用于返回寫入狀態。
關于上述模塊單元的技術細節在前面的方法中已有詳述,故不再贅述。
綜上所述,本發明將用戶的指紋數據預先加密然后寫入到RMPB 存儲區域,這樣即使他人撿到用戶手機,也無法竊取用戶重要信息,提高了移動終端的設備安全性。本發明對移動終端使用者在常規使用中沒有增加復雜操作,在移動終端生產操作流程中非常便捷,也便于查詢;其他人無法從RPMB存儲區域讀取指紋并加以解析。
應當理解的是,本發明的應用不限于上述的舉例,對本領域普通技術人員來說,可以根據上述說明加以改進或變換,所有這些改進和變換都應屬于本發明所附權利要求的保護范圍。