国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于預(yù)解密的移動終端透明加密方法與流程

      文檔序號:12278138閱讀:414來源:國知局
      一種基于預(yù)解密的移動終端透明加密方法與流程

      本發(fā)明主要涉及移動數(shù)據(jù)防泄漏領(lǐng)域,特別是一種基于預(yù)解密的移動終端透明加密方法。



      背景技術(shù):

      隨著移動終端設(shè)備功能日益強大,越來越多的企業(yè)員工已經(jīng)或即將擺脫辦公室的約束,通過移動終端設(shè)備來處理日常工作事務(wù)。然而,企業(yè)關(guān)鍵數(shù)據(jù)向移動終端設(shè)備延伸,使得移動終端數(shù)據(jù)泄漏成為企業(yè)面臨的一個新的問題,因此移動終端透明加密技術(shù)應(yīng)運而生。

      所謂透明加密,是指在不改變用戶操作習(xí)慣的情況下完成文件的加密和解密過程。當(dāng)系統(tǒng)監(jiān)測到用戶對受保護的文件進行讀寫操作時,將對文件進行解密操作,將明文傳送給應(yīng)用程序。當(dāng)系統(tǒng)監(jiān)測到用戶對受保護的文件結(jié)束讀寫操作時,又將對文件進行加密操作,將密文傳送存儲設(shè)備進行存儲。整個過程與文件的所在環(huán)境密切相關(guān),環(huán)境一旦更改,加解密過程將無法完成,從而保證了對指定文件的保護。

      為此,研究人員提出了兩種移動終端的數(shù)據(jù)透明加密技術(shù):基于文件系統(tǒng)的驅(qū)動加密技術(shù)和鉤子透明加密技術(shù)。基于文件系統(tǒng)的驅(qū)動加密技術(shù)工作在Android操作系統(tǒng)的內(nèi)核層,主要依賴于Linux的文件系統(tǒng)驅(qū)動技術(shù)。文件系統(tǒng)驅(qū)動是把文件作為一種設(shè)備來處理的一種虛擬驅(qū)動。當(dāng)文件系統(tǒng)驅(qū)動檢測到用戶對某種后綴文件進行操作時,對該文件進行加密/解密操作,從而達到加密的效果。而鉤子透明加密技術(shù)工作在移動終端應(yīng)用層,結(jié)合使用Android API函數(shù)和Hook消息處理機制。通過Java Hook的鉤子技術(shù),監(jiān)控應(yīng)用程序?qū)ξ募拇蜷_和保存。打開文件時,先對密文進行解密再讀入內(nèi)存,以保證應(yīng)用程序讀到的是明文。保存文件時,先將內(nèi)存中的明文進行加密再寫入到磁盤中。

      然而,移動終端數(shù)據(jù)透明加密技術(shù)剛剛起步,兩種透明加密技術(shù)都存在一定的問題?;谖募到y(tǒng)的驅(qū)動加密技術(shù)工作性能不穩(wěn)定,且需要編譯用戶移動終端的系統(tǒng),通用性不強,不適用于企業(yè)數(shù)據(jù)防泄漏體系。鉤子透明加密技術(shù)通用性強,但相比驅(qū)動加密技術(shù),文件讀寫慢,性能較差。



      技術(shù)實現(xiàn)要素:

      本發(fā)明的目的在于提供一種安全、高效的基于預(yù)解密的移動終端透明加密方法。

      實現(xiàn)本發(fā)明目的的技術(shù)解決方案為:一種基于預(yù)解密的移動終端透明加密方法,針對移動終端數(shù)據(jù)加密的客戶端模型,透明加密過程涉及到的實體如下:強密文集合M={Mi},預(yù)解密臨時文件集合P={Pi}和明文集合N={Ni},文件集合F={Fi},i=1,2,3…,具體步驟如下:

      (1)Xposed框架初始化:

      初始化Xposed框架,加載文件系統(tǒng)Hook模塊;根據(jù)Xposed框架特性,實現(xiàn)在Android Runtime層的Hook功能調(diào)用,首先初始化Hook模塊功能,并設(shè)置輸入?yún)?shù)為文件變量Fi;

      (2)文件標(biāo)識符遍歷:

      遍歷文件標(biāo)識符,判斷Fi是否屬于強密文集M;提取Fi字節(jié)流,Hook模塊提取16位校驗符,判斷當(dāng)前變量Fi是否屬于強密文集合M,若否,則直接跳過Hook作用域,返回Fi字節(jié)流給上層應(yīng)用;若是,則提取16位權(quán)限標(biāo)識符并進行實時數(shù)字證書認證,若當(dāng)前終端不合法,則返回強密文狀態(tài)數(shù)據(jù)給用戶;若合法,則進入步驟(3);

      (3)預(yù)解密臨時文件遍歷:

      提取16位預(yù)解密偏移值,對當(dāng)前Fi字節(jié)流進行預(yù)解密文件驗證,若驗證不通過,不存在一次密文,則進入步驟(4);若驗證通過,則直接進入步驟(5);

      (4)預(yù)解密臨時文件集更新:

      若不存在一次密文,則對當(dāng)前緩存中的強密文Fi進行預(yù)解密,并生成相應(yīng)預(yù)解密臨時文件;

      (5)二次解密預(yù)解密臨時文件子集:

      若驗證通過,存在相應(yīng)一次密文,則提取預(yù)解密文件并替換緩存中的強密文Fi;然后,針對緩存中的一次密文進行二次解密;最終輸出明文到應(yīng)用層;

      (6)明文子集二次強加密:

      修改并存儲文檔時,首先,提取16位權(quán)限標(biāo)識符并進行實時數(shù)字證書認證,若當(dāng)前終端不合法,則無權(quán)修改數(shù)據(jù),直接返回原強密文;若合法,則對明文數(shù)據(jù)一次加密,并進行預(yù)解密文件更新;然后進行二次強加密,并將強密文存儲到終端內(nèi)存中。

      進一步地,步驟(1)中所述初始化Xposed框架,加載文件系統(tǒng)Hook模塊;根據(jù)Xposed框架特性,實現(xiàn)在Android Runtime層的Hook功能調(diào)用,首先初始化Hook模塊功能,并設(shè)置輸入?yún)?shù)為文件變量Fi,具體如下:

      1)通過覆蓋原生的/system/bin/app_process程序,對app_process進行擴展,控制zygote進程;

      2)使app_process在啟動過程中會加載XposedBridge.jar這個jar包,從而完成對Zygote進程及其創(chuàng)建的Dalvik虛擬機的劫持;

      3)在Android系統(tǒng)啟動的時候,Zygote進程加載XposedBridge,將移動終端文件系統(tǒng)讀寫Method通過JNI方法HookMethodNative指向Native原生方法XposedCallHandler,此方法再轉(zhuǎn)入handleHookedMethod這個Java方法執(zhí)行用戶規(guī)定的移動終端文件系統(tǒng)Hook Function。

      進一步地,步驟(3)所述預(yù)解密臨時文件遍歷的過程如下:

      提取16位預(yù)解密偏移值,對當(dāng)前文檔進行預(yù)解密文件驗證,若驗證不通過,不存在一次密文,則對當(dāng)前緩存中的強密文進行預(yù)解密,并生成相應(yīng)預(yù)解密臨時文件;若驗證通過,存在相應(yīng)一次密文,則提取預(yù)解密文件并替換緩存中的強密文,具體過程如下:

      預(yù)解密文件驗證:是否成立,其中pre_verification(i)是提取16位預(yù)解密偏移值的簽名;若成立,說明不存在一次密文,則對當(dāng)前緩存中的強密文進行預(yù)解密;否則,存在相應(yīng)一次密文,則提取預(yù)解密文件并替換緩存中的強密文。

      進一步地,步驟(5)中所述二次解密預(yù)解密臨時文件子集的過程如下:

      預(yù)解密臨時文件遍歷驗證通過,存在相應(yīng)一次密文,則提取預(yù)解密文件并替換緩存中的強密文;然后,針對緩存中的一次密文進行二次解密;最終輸出明文到應(yīng)用層,具體過程如下:

      二次解密:re_decrypt(Pi)→(i,N),Pi是已驗證存在預(yù)解密臨時文件的文件Fi字節(jié)流,通過二次解密生成明文字節(jié)流N提交應(yīng)用層。

      本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點為:(1)透明加密安全性:采用Xposed框架Hook技術(shù),通過覆蓋原生的/system/bin/app_process程序,對app_process進行擴展,控制zygote進程,使得規(guī)定的Hook Function在Android框架的RUNTIME層(Android系統(tǒng)第三層)得到執(zhí)行,解決了移動終端傳統(tǒng)透明加密技術(shù)只能保證應(yīng)用層安全的缺陷;(2)透明加密性能:采用二次解密的預(yù)解密透明加密方案,規(guī)避高性能損耗的解密操作,在合法移動終端上打開加密文件時,只進行簡單的二次解密,大大提高透明加密技術(shù)在移動終端上的性能。

      附圖說明

      圖1是本發(fā)明基于預(yù)解密的移動終端透明加密方法的流程圖。

      圖2是本發(fā)明基于預(yù)解密的移動終端透明加密方法的系統(tǒng)模型圖。

      具體實施方式

      下面結(jié)合附圖及實施示例對本發(fā)明作進一步詳細描述。以下實施例在以本發(fā)明技術(shù)方案為前提下進行實施,給出了詳細的實施方式和過程,但本發(fā)明的保護范圍不限于下述的實施例。

      結(jié)合圖1,本發(fā)明基于預(yù)解密的移動終端透明加密方法,針對移動終端數(shù)據(jù)加密的客戶端模型,透明加密過程涉及到的實體如下:強密文集合M={Mi},預(yù)解密臨時文件集合P={Pi}和明文集合N={Ni},文件集合F={Fi},i=1,2,3…,具體步驟如下:

      (1)Xposed框架初始化:

      初始化Xposed框架,加載文件系統(tǒng)Hook模塊;根據(jù)Xposed框架特性,實現(xiàn)在Android Runtime層的Hook功能調(diào)用,首先初始化Hook模塊功能,并設(shè)置輸入?yún)?shù)為文件變量Fi,具體如下:

      1)通過覆蓋原生的/system/bin/app_process程序,對app_process進行擴展,控制zygote進程;

      2)使app_process在啟動過程中會加載XposedBridge.jar這個jar包,從而完成對Zygote進程及其創(chuàng)建的Dalvik虛擬機的劫持;

      3)在Android系統(tǒng)啟動的時候,Zygote進程加載XposedBridge,將移動終端文件系統(tǒng)讀寫Method通過JNI方法HookMethodNative指向Native原生方法XposedCallHandler,此方法再轉(zhuǎn)入handleHookedMethod這個Java方法執(zhí)行用戶規(guī)定的移動終端文件系統(tǒng)Hook Function。

      (2)文件標(biāo)識符遍歷:

      遍歷文件標(biāo)識符,判斷Fi是否屬于強密文集M;提取Fi字節(jié)流,Hook模塊提取16位校驗符,判斷當(dāng)前變量Fi是否屬于強密文集合M,若否,則直接跳過Hook作用域,返回Fi字節(jié)流給上層應(yīng)用;若是,則提取16位權(quán)限標(biāo)識符并進行實時數(shù)字證書認證,若當(dāng)前終端不合法,則返回強密文狀態(tài)數(shù)據(jù)給用戶;若合法,則進入步驟(3)。

      (3)預(yù)解密臨時文件遍歷:

      提取16位預(yù)解密偏移值,對當(dāng)前Fi字節(jié)流進行預(yù)解密文件驗證,若驗證不通過,不存在一次密文,則進入步驟(4);若驗證通過,則直接進入步驟(5);

      所述預(yù)解密臨時文件遍歷的過程如下:

      提取16位預(yù)解密偏移值,對當(dāng)前文檔進行預(yù)解密文件驗證,若驗證不通過,不存在一次密文,則對當(dāng)前緩存中的強密文進行預(yù)解密,并生成相應(yīng)預(yù)解密臨時文件;若驗證通過,存在相應(yīng)一次密文,則提取預(yù)解密文件并替換緩存中的強密文,具體過程如下:

      預(yù)解密文件驗證:是否成立,其中pre_verification(i)是提取16位預(yù)解密偏移值的簽名;若成立,說明不存在一次密文,則對當(dāng)前緩存中的強密文進行預(yù)解密;否則,存在相應(yīng)一次密文,則提取預(yù)解密文件并替換緩存中的強密文。

      (4)預(yù)解密臨時文件集更新:

      若不存在一次密文,則對當(dāng)前緩存中的強密文Fi進行預(yù)解密,并生成相應(yīng)預(yù)解密臨時文件。

      (5)二次解密預(yù)解密臨時文件子集:

      若驗證通過,存在相應(yīng)一次密文,則提取預(yù)解密文件并替換緩存中的強密文Fi;然后,針對緩存中的一次密文進行二次解密;最終輸出明文到應(yīng)用層;

      所述二次解密預(yù)解密臨時文件子集的過程如下:

      預(yù)解密臨時文件遍歷驗證通過,存在相應(yīng)一次密文,則提取預(yù)解密文件并替換緩存中的強密文;然后,針對緩存中的一次密文進行二次解密;最終輸出明文到應(yīng)用層,具體過程如下:

      二次解密:re_decrypt(Pi)→(i,N),Pi是已驗證存在預(yù)解密臨時文件的文件Fi字節(jié)流,通過二次解密生成明文字節(jié)流N提交應(yīng)用層。

      (6)明文子集二次強加密:

      修改并存儲文檔時,首先,提取16位權(quán)限標(biāo)識符并進行實時數(shù)字證書認證,若當(dāng)前終端不合法,則無權(quán)修改數(shù)據(jù),直接返回原強密文;若合法,則對明文數(shù)據(jù)一次加密,并進行預(yù)解密文件更新;然后進行二次強加密,并將強密文存儲到終端內(nèi)存中。

      實施例1

      為了更好地理解本發(fā)明提出的方法,選取一次移動辦公環(huán)境下對企業(yè)機密數(shù)據(jù)的透明加解密事件。

      本實施例執(zhí)行流程如圖1所示,針對移動終端數(shù)據(jù)加密的客戶端模型,透明加密過程涉及到的實體如下:強密文集合M={Mi},預(yù)解密臨時文件集合P={Pi}和明文集合N={Ni},文件集合F={Fi},i=1,2,3…,具體步驟如下:

      步驟101:初始化xposed框架,加載文件系統(tǒng)hook模塊。具體過程如下:

      1)通過覆蓋原生的/system/bin/app_process程序,對app_process進行擴展,控制zygote進程。

      2)使app_process在啟動過程中會加載XposedBridge.jar這個jar包,從而完成對Zygote進程及其創(chuàng)建的Dalvik虛擬機的劫持。

      3)在Android系統(tǒng)啟動的時候,Zygote進程加載XposedBridge,將移動終端文件系統(tǒng)讀寫Method通過JNI方法HookMethodNative指向Native原生方法XposedCallHandler,此方法再轉(zhuǎn)入handleHookedMethod這個Java方法執(zhí)行用戶規(guī)定的移動終端文件系統(tǒng)Hook Function。

      步驟102:遍歷文件標(biāo)識符,判斷Fi是否屬于強密文子集。具體過程如下:

      1)遍歷文件標(biāo)識符,判斷Fi是否屬于強密文集M。提取Fi字節(jié)流,Hook模塊提取16位校驗符,判斷當(dāng)前變量Fi是否屬于強密文集合M。

      2)若當(dāng)前變量Fi不屬于強密文集合M,則直接跳過Hook作用域,返回Fi字節(jié)流給上層應(yīng)用。

      3)若當(dāng)前變量Fi屬于強密文集合M,則提取16位權(quán)限標(biāo)識符并進行實時數(shù)字證書認證,

      4)若當(dāng)前終端數(shù)字證書認證不合法,則返回強密文狀態(tài)數(shù)據(jù)給用戶。

      5)若當(dāng)前終端數(shù)字證書認證合法,則進入步驟103。

      步驟103:遍歷預(yù)解密臨時文件集P,判斷強密文是否屬于P。具體過程如下:

      1)判斷預(yù)解密文件驗證:是否成立,其中pre_verification(i)是提取16位預(yù)解密偏移值的簽名。

      2)若條件成立,說明不存在一次密文,則對當(dāng)前緩存中的強密文進行預(yù)解密;

      3)若條件不成立,存在相應(yīng)一次密文,則提取預(yù)解密文件并替換緩存中的強密文。

      步驟104:預(yù)解密子集Fi并實時更新預(yù)解密臨時文件集P。具體過程如下:

      對當(dāng)前緩存中的強密文進行預(yù)解密,并生成相應(yīng)預(yù)解密臨時文件。將一次解密的弱密文重新提交文件系統(tǒng)緩存區(qū)。

      步驟105:二次解密預(yù)解密臨時文件子集,并生成明文對象賦值對象Fi,更新明文集N。具體過程如下:

      預(yù)解密臨時文件遍歷驗證通過,存在相應(yīng)一次密文,則提取預(yù)解密文件并替換緩存中的強密文;然后,針對緩存中的一次密文進行二次解密;最終輸出明文到應(yīng)用層。對于re_decrypt(Pi)→(i,N),其中Pi是已驗證存在預(yù)解密臨時文件的文件Fi字節(jié)流,通過二次解密生成明文字節(jié)流N提交應(yīng)用層。

      上述方法的系統(tǒng)模型如圖2所示,包含三類實體:云服務(wù)器、合法移動終端和非法移動終端。當(dāng)服務(wù)器需要下發(fā)關(guān)鍵數(shù)據(jù)時,云服務(wù)器與合法移動終端建立數(shù)據(jù)連接并進行數(shù)據(jù)通信。同時,服務(wù)器定時向合法移動終端下發(fā)權(quán)限管控指令,以完成透明加解密權(quán)限認證。合法客戶端接收到服務(wù)器指令的同時,實時向云服務(wù)器反饋日志文件,將客戶端行為記錄上傳到云服務(wù)器備份。同時,非法客戶端企圖與云服務(wù)器簡歷偽連接的行為將被身份驗證后拒絕,同時云服務(wù)器在數(shù)據(jù)傳輸途中處于強加密狀態(tài),非法客戶端無法竊聽關(guān)鍵數(shù)據(jù)。

      本發(fā)明利用預(yù)解密的思想構(gòu)造了一個更加安全高效的移動終端透明加密方案,利用基于Xposed框架Hook技術(shù)完成文件系統(tǒng)透明加解密功能,實現(xiàn)了移動終端透明加密技術(shù)中間層的安全級別,有效解決了移動終端傳統(tǒng)透明加密技術(shù)只能保證應(yīng)用層安全的缺陷。同時,通過引入預(yù)解密零時文件集的概念,實現(xiàn)了對移動終端辦公數(shù)據(jù)的二次強加密,提升了透明加密性能,節(jié)約了文件系統(tǒng)操作過程的開銷。本發(fā)明能夠同時實現(xiàn)移動終端透明加密技術(shù)性能和安全性的提升。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1