基于Android平臺的文件訪問指令截取系統(tǒng)及方法
【專利摘要】本發(fā)明公開了一種基于Android平臺的文件訪問指令截取系統(tǒng)及方法。該系統(tǒng)在原始Android平臺的system.img刷機(jī)包下設(shè)置動態(tài)鏈接庫,在Android平臺Boot.img刷機(jī)包下設(shè)置優(yōu)先加載配置模塊,通過優(yōu)先加載動態(tài)鏈接庫的方式,將文件訪問指令截取至動態(tài)鏈接庫?;谠撓到y(tǒng)可添加訪問控制、加解密和審計模塊,保護(hù)文件訪問操作的機(jī)密性、完整性和可審查性。
【專利說明】基于Andro i d平臺的文件訪問指令截取系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于智能移動終端信息安全領(lǐng)域,更具體地說是基于Android平臺的文件 訪問指令截取系統(tǒng)及方法。
【背景技術(shù)】
[0002] 智能手機(jī)憑借其強(qiáng)大的功能逐漸滲透到人們?nèi)粘I畹母鱾€層面,運(yùn)行在智能手 機(jī)之上的各種應(yīng)用程序,如微博、微信等社交應(yīng)用程序,GPS、Email、攝像、錄音等工具應(yīng)用 程序,正在改變?nèi)藗兩詈蜏贤ǖ姆绞?。如何保護(hù)這些隱私性非常高的應(yīng)用程序數(shù)據(jù),對用 戶來說非常重要和關(guān)鍵。
[0003] Android平臺中,文件訪問指令指的是Android應(yīng)用程序訪問自身文件時的文 件操作函數(shù),應(yīng)用程序?yàn)橹黧w,自身文件為客體。原生Android平臺中,文件訪問指令的運(yùn) 行過程如圖1所示,應(yīng)用程序直接通過文件訪問指令來訪問文件。但是這種應(yīng)用程序訪問 文件的過程,存在被第三方應(yīng)用程序監(jiān)聽、截獲和阻斷的風(fēng)險,造成重要數(shù)據(jù)文件的信息泄 露。為了保護(hù)文件訪問操作的機(jī)密性、完整性和可審查性,迫切需要對Android平臺的文件 訪問過程進(jìn)行常見的處理,包括訪問控制、加解密和安全審計等。
[0004] 作為保護(hù)數(shù)據(jù)機(jī)密性的最常見的方式,Android平臺通常也采用加密文件的方法 來保護(hù)智能手機(jī)中的數(shù)據(jù)。文件加密方法的基本原理為:第一、加密存儲用戶訪問的數(shù)據(jù)文 件;第二、當(dāng)用戶需要訪問該加密文件時,將加密文件解密到一個臨時文件,然后應(yīng)用程序 訪問該臨時文件;第三、應(yīng)用程序使用完文件后,刪除臨時文件,達(dá)到加密的目的。這種方式 的缺點(diǎn)為用戶訪問的數(shù)據(jù)文件存在明文存儲的過程,存在泄漏的風(fēng)險。
【發(fā)明內(nèi)容】
[0005] 為了解決原生Android平臺中無法保護(hù)文件訪問操作的機(jī)密性、完整性和可審查 性的問題,本發(fā)明提供一種基于Android平臺的文件訪問指令截取系統(tǒng),包括一動態(tài)鏈接 庫,所述動態(tài)鏈接庫設(shè)置于Android平臺system, img刷機(jī)包下,該動態(tài)鏈接庫包括應(yīng)用程 序訪問文件的預(yù)設(shè)策略;
[0006] 優(yōu)先加載配置模塊,所述優(yōu)先加載配置模塊設(shè)置在Android平臺Boot, img刷機(jī)包 下,優(yōu)先加載配置模塊通過優(yōu)先加載動態(tài)鏈接庫的方式,將文件訪問指令截取至動態(tài)鏈接 庫。
[0007] 進(jìn)一步的優(yōu)選方案,本發(fā)明基于Android平臺的文件訪問指令截取系統(tǒng)中,所述 應(yīng)用程序訪問文件的預(yù)設(shè)策略包括:需要處理的應(yīng)用程序列表A、列表A中每個應(yīng)用程序需 要處理的文件類型列表B以及對屬于列表B文件類型的文件的具體處理。
[0008] 同時,本發(fā)明在基于Android平臺的文件訪問指令截取系統(tǒng)基礎(chǔ)上,提出一種文 件訪問指令截取方法,所述文件訪問指令為應(yīng)用程序訪問文件時的文件操作函數(shù),首先,配 置一動態(tài)鏈接庫,將該動態(tài)鏈接庫設(shè)置于Android平臺system, img刷機(jī)包下,所述動態(tài)鏈 接庫包括應(yīng)用程序訪問文件的預(yù)設(shè)策略;
[0009] 其次,在Android平臺Boot, img刷機(jī)包下設(shè)置優(yōu)先加載配置模塊,所述優(yōu)先加載 配置模塊在Boot, img刷機(jī)包下的init. rc腳本文件中指定優(yōu)先加載的動態(tài)鏈接庫,將文件 訪問指令截取至動態(tài)鏈接庫。
[0010] 為了解決原生Android平臺中,用戶訪問文件時存在明文存儲過程導(dǎo)致存在泄漏 風(fēng)險的問題,本發(fā)明提供了一種文件透明加解密方法,包括以下步驟:
[0011] 步驟1、配置系統(tǒng)中動態(tài)鏈接庫內(nèi)的應(yīng)用程序訪問文件的預(yù)設(shè)策略,該預(yù)設(shè)策略為 需要加解密的應(yīng)用程序進(jìn)程列表a、列表a中每個應(yīng)用程序需要加解密的文件類型列表b以 及對屬于列表b文件類型的文件的加解密方法;所述列表a中每個應(yīng)用程序分別對應(yīng)一個 明文存儲路徑和一個密文存儲路徑;其中,明文存儲路徑為Android應(yīng)用程序默認(rèn)的數(shù)據(jù) 存儲路徑,密文存儲路徑為相應(yīng)明文存儲路徑的security子目錄;
[0012] 步驟2、Android平臺執(zhí)行文件訪問時,優(yōu)先加載動態(tài)鏈接庫,判斷當(dāng)前運(yùn)行應(yīng)用 程序是否屬于列表a,若是則執(zhí)行步驟3 ;否則,按照該應(yīng)用程序在原生Android平臺中訪問 文件過程繼續(xù)執(zhí)行;
[0013] 步驟3、判當(dāng)前被訪問文件的文件類型是否屬于列表b,若是則執(zhí)行步驟4;否則, 按照該應(yīng)用程序在原生Android平臺中訪問文件過程繼續(xù)執(zhí)行;
[0014] 步驟4、在密文存儲路徑下采用加解密算法對所操作的文件進(jìn)行加解密。
[0015] 本發(fā)明與現(xiàn)有技術(shù)相比具有以下顯著的優(yōu)點(diǎn):(1)本發(fā)明提供一種基于Android 平臺的文件訪問指令截取系統(tǒng),基于該指令截取系統(tǒng)可以添加訪問控制、加解密和審計等 模塊,保護(hù)文件訪問操作的機(jī)密性、完整性和可審查性;(2)本發(fā)明提供的Android平臺文 件透明加解密方法,用戶不會感知到加解密的過程,用戶體驗(yàn)好;(3)透明加解密的過程中 不會產(chǎn)生臨時文件,所有的加解密操作在內(nèi)存中完成,保密性好。
【專利附圖】
【附圖說明】
[0016] 下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明作進(jìn)一步詳細(xì)的描述;
[0017] 圖1為原生Android平臺應(yīng)用程序訪問文件示意圖。
[0018] 圖2為Android平臺文件訪問指令截取系統(tǒng)示意圖。
【具體實(shí)施方式】
[0019] 如圖2所示,基于Android平臺的文件訪問指令截取系統(tǒng),包括一動態(tài)鏈接庫,所 述動態(tài)鏈接庫設(shè)置于Android平臺system, img刷機(jī)包下,該動態(tài)鏈接庫包括應(yīng)用程序訪問 文件的預(yù)設(shè)策略;
[0020] 優(yōu)先加載配置模塊,在Android平臺Boot, img刷機(jī)包下設(shè)置優(yōu)先加載配置模塊, 所述優(yōu)先加載配置模塊通過優(yōu)先加載動態(tài)鏈接庫的方式,將文件訪問指令截取至動態(tài)鏈接 庫;所述應(yīng)用程序訪問文件的預(yù)設(shè)策略包括:需要處理的應(yīng)用程序列表A、列表A中每個應(yīng) 用程序需要處理的文件類型列表B以及對屬于列表B文件類型的文件的具體處理;處理包 括訪問控制、加解密和安全審計。
[0021] 基于Android平臺的文件訪問指令截取方法,具體包括以下步驟:
[0022] 步驟一、配置一動態(tài)鏈接庫libtwolib-second. so,將該動態(tài)鏈接庫設(shè)置于 Android平臺system, img刷機(jī)包下;
[0023] (1-1)創(chuàng)建動態(tài)鏈接庫libtwolib-second. so,該動態(tài)鏈接庫包括應(yīng)用程序訪問 文件的預(yù)設(shè)策略,應(yīng)用程序訪問文件的預(yù)設(shè)策略包括:需要處理的應(yīng)用程序列表A、列表A 中每個應(yīng)用程序需要處理的文件類型列表B以及對屬于列表B文件類型的文件進(jìn)行相應(yīng)的 處理;
[0024] (1-2)修改Android平臺刷機(jī)包的system, img文件,解壓system, img文件,將 libtwolib-second.so 放置到解壓后的/system/lib 目錄下;
[0025] (1-3)重新打包生成修改后的system, img文件。
[0026] 步驟二、在Android平臺Boot, img刷機(jī)包下設(shè)置優(yōu)先加載配置模塊,優(yōu)先加載配 置模塊在Boot, img刷機(jī)包下的init. rc腳本文件中指定優(yōu)先加載的動態(tài)鏈接庫,將文件訪 問指令截取至動態(tài)鏈接庫,修改Android平臺刷機(jī)包的boot, img文件的具體方法如下:
[0027] Boot, img文件頭的長度為4k字節(jié),文件頭后是兩個gz包,一個是Linux內(nèi)核gz 包 boot, img-kernel. gz,另一個是 ramdisk 映像 boot, img-ramdisk. cpio. gz〇 ramdisk 映 像是一個最基礎(chǔ)的小型文件系統(tǒng),它包括了初始化系統(tǒng)所需要的全部核心文件,例如:初 始化init進(jìn)程以及設(shè)置系統(tǒng)參數(shù)的init. rc等文件。
[0028] 通過搜索,查詢到Boot, img中init. rc的位置,添加如下語句:
[0029] export LD_PRELOAD/system/lib/libtwolib-second. so
[0030] 步驟三、將修改后的Boot, img、system, img文件燒錄到Android手機(jī)中。
[0031] -種文件透明加解密方法,基于Android平臺的文件訪問指令截取系統(tǒng)的文件透 明加解密方法,具體實(shí)現(xiàn)過程如下:
[0032] 步驟1、配置動態(tài)鏈接庫libtwolib-second. so內(nèi)的訪問策略,該策略為需要加 解密的應(yīng)用程序進(jìn)程列表a以及列表a中每個應(yīng)用程序需要加解密的文件類型列表b ;所 述列表a中每個應(yīng)用程序分別對應(yīng)一個明文存儲路徑和一個密文存儲路徑;其中,明文存 儲路徑為Android應(yīng)用程序默認(rèn)的數(shù)據(jù)存儲路徑,密文存儲路徑為相應(yīng)明文存儲路徑的 security子目錄;
[0033] 步驟2、Android平臺執(zhí)行文件訪問時,優(yōu)先加載動態(tài)鏈接庫libtwolib-second. so,判斷當(dāng)前運(yùn)行應(yīng)用程序是否屬于列表a,若是則執(zhí)行步驟3 ;否則,按照該應(yīng)用程序在原 生Android平臺中訪問文件過程繼續(xù)執(zhí)行;
[0034] 步驟3、判斷當(dāng)前被訪問文件的文件類型是否屬于列表b,若是則執(zhí)行步驟4;否 貝1J,按照該應(yīng)用程序在原生Android平臺中訪問文件過程繼續(xù)執(zhí)行;
[0035] 步驟4、在密文存儲路徑下采用加解密算法對所操作的文件進(jìn)行加解密,對于如何 對文件進(jìn)行加解密,采用現(xiàn)有加解密算法,常見的AES算法、IDEA算法,其中,AES算法具體 參見:戴爾蒙[比],瑞蒙[比].高級加密標(biāo)準(zhǔn)(AES)算法:Rijndael的設(shè)計[M].谷大武, 徐勝波譯.北京:清華大學(xué)出版社,2003 :9-59.
[0036] IDEA 算法具體參見:Lai X. On the design and security of block ciphers [D]. Diss. Techn. Wiss ETH Zurich, Nr. 9752, 1992. Ref. : JL Massey ;Korref. :H. Bilhlmann, 1992.此處不再贊述!
[0037] 在實(shí)際實(shí)施過程中,對文件實(shí)施透明加解密的操作流程如下:
[0038] 打開文件時。調(diào)用"判斷文件類型",據(jù)此來相應(yīng)設(shè)置當(dāng)前進(jìn)程的狀態(tài)以及文件的 各種處理狀態(tài)。對于新創(chuàng)建的文件,調(diào)用"初始化文件加密頭",來初始化一個4KB的文件頭 并透明寫入到文件中。
[0039] 讀寫文件。對于可信和受控可信進(jìn)程正在處理的加密文件和授權(quán)文件,調(diào)用"加密 文件接口"和"解密文件接口",完成文件內(nèi)容的透明加解密。
[0040] 實(shí)施例
[0041] 以微信應(yīng)用程序?yàn)槔枋鯝ndroid手機(jī)平臺中文件透明加解密的過程。
[0042] 首先,配置應(yīng)用程序訪問文件的預(yù)設(shè)策略,表a為需要加解密的應(yīng)用程序進(jìn)程列 表,表b為表a中每個應(yīng)用程序需要加解密的文件類型列表;
[0043] 本實(shí)施例中只對微信應(yīng)用程序進(jìn)行透明加解密,其它程序不進(jìn)行處理。從表a中 可以看到,本實(shí)施例中需要處理的應(yīng)用程序列表包括微信應(yīng)用程序com. tentcent. mm,從 表b中可以看到,表a中每個應(yīng)用程序需要處理的文件類型列表包括微信應(yīng)用程序com. tentcent. mm需要處理db類型文件。
[0044] 表 a :
【權(quán)利要求】
1. 基于Android平臺的文件訪問指令截取系統(tǒng),所述文件訪問指令為應(yīng)用程序訪問 時的文件操作函數(shù),其特征在于,包括一動態(tài)鏈接庫,所述動態(tài)鏈接庫設(shè)置于Android平臺 system, img刷機(jī)包下,該動態(tài)鏈接庫包括應(yīng)用程序訪問文件的預(yù)設(shè)策略; 優(yōu)先加載配置模塊,所述優(yōu)先加載配置模塊設(shè)置在Android平臺Boot, img刷機(jī)包下, 優(yōu)先加載配置模塊通過優(yōu)先加載動態(tài)鏈接庫的方式,將文件訪問指令截取至動態(tài)鏈接庫。
2. 根據(jù)權(quán)利要求1所述基于Android平臺的文件訪問指令截取系統(tǒng),其特征在于,所述 應(yīng)用程序訪問文件的預(yù)設(shè)策略包括:需要處理的應(yīng)用程序列表A、列表A中每個應(yīng)用程序需 要處理的文件類型列表B以及對屬于列表B文件類型的文件的具體處理。
3. 根據(jù)權(quán)利要求2所述基于Android平臺的文件訪問指令截取系統(tǒng),其特征在于,處理 包括訪問控制、加解密和安全審計。
4. 一種文件訪問指令截取方法,其特征在于,該方法基于權(quán)利要求1所述基于Android 平臺的文件訪問指令截取系統(tǒng)實(shí)現(xiàn),首先,配置一動態(tài)鏈接庫,將該動態(tài)鏈接庫設(shè)置于 Android平臺system, img刷機(jī)包下,所述動態(tài)鏈接庫包括應(yīng)用程序訪問文件的預(yù)設(shè)策略; 其次,在Android平臺Boot, img刷機(jī)包下設(shè)置優(yōu)先加載配置模塊,所述優(yōu)先加載配置 模塊在Boot, img刷機(jī)包下的init. rc腳本文件中指定優(yōu)先加載的動態(tài)鏈接庫,將文件訪問 指令截取至動態(tài)鏈接庫。
5. 根據(jù)權(quán)利要求4所述的文件訪問指令截取方法,其特征在于,所述應(yīng)用程序訪問文 件的預(yù)設(shè)策略包括:需要處理的應(yīng)用程序列表A、列表A中每個應(yīng)用程序需要處理的文件類 型列表B以及對列表B中所有文件類型中的文件進(jìn)行相應(yīng)的處理。
6. -種文件透明加解密方法,其特征在于,該方法基于權(quán)利要求1所述基于Android平 臺的文件訪問指令截取系統(tǒng)實(shí)現(xiàn),包括以下步驟: 步驟1、配置系統(tǒng)中動態(tài)鏈接庫內(nèi)的應(yīng)用程序訪問文件的預(yù)設(shè)策略,該預(yù)設(shè)策略為需要 加解密的應(yīng)用程序進(jìn)程列表a、列表a中每個應(yīng)用程序需要加解密的文件類型列表b以及對 屬于列表b文件類型的文件的加解密方法;所述列表a中每個應(yīng)用程序分別對應(yīng)一個明文 存儲路徑和一個密文存儲路徑;其中,明文存儲路徑為Android應(yīng)用程序默認(rèn)的數(shù)據(jù)存儲 路徑,密文存儲路徑為相應(yīng)明文存儲路徑的security子目錄; 步驟2、Android平臺執(zhí)行文件訪問時,優(yōu)先加載動態(tài)鏈接庫,判斷當(dāng)前應(yīng)用程序是否 屬于列表a,若是則執(zhí)行步驟3 ;否則,按照該應(yīng)用程序在原生Android平臺中訪問文件過程 繼續(xù)執(zhí)行; 步驟3、判當(dāng)前被訪問文件的文件類型是否屬于列表b,若是則執(zhí)行步驟4;否則,按照 該應(yīng)用程序在原生Android平臺中訪問文件過程繼續(xù)執(zhí)行; 步驟4、在密文存儲路徑下采用加解密算法對所操作的文件進(jìn)行加解密。
7. 根據(jù)權(quán)利要求6所述的文件透明加解密方法,其特征在于,步驟4中加解密算法采用 AES算法、IDEA算法。
【文檔編號】G06F21/60GK104517060SQ201510010071
【公開日】2015年4月15日 申請日期:2015年1月8日 優(yōu)先權(quán)日:2015年1月8日
【發(fā)明者】趙泓 申請人:南京創(chuàng)和信息技術(shù)有限公司