国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

移動(dòng)智能終端的個(gè)人隱私保護(hù)系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)

2017-07-10 10:27:27李春杰史正樂(lè)高慧敏顏智潤(rùn)
關(guān)鍵詞:加解密管理器調(diào)用

李春杰 史正樂(lè) 高慧敏 顏智潤(rùn)

(中國(guó)科學(xué)技術(shù)大學(xué)蘇州研究院 江蘇 蘇州 215000)

移動(dòng)智能終端的個(gè)人隱私保護(hù)系統(tǒng)的開(kāi)發(fā)設(shè)計(jì)

李春杰 史正樂(lè) 高慧敏 顏智潤(rùn)

(中國(guó)科學(xué)技術(shù)大學(xué)蘇州研究院 江蘇 蘇州 215000)

Android系統(tǒng)是最熱門(mén)的移動(dòng)智能終端之一,保護(hù)Android用戶的隱私非常重要。該終端加解密隱私保護(hù)系統(tǒng),利用hook技術(shù)來(lái)捕捉并劫持用戶進(jìn)程對(duì)文件的讀寫(xiě)操作,通過(guò)添加具有加解密功能的函數(shù)模塊,替換用戶動(dòng)態(tài)鏈接庫(kù)中原有的讀寫(xiě)函數(shù),從而達(dá)到加解密的目的。系統(tǒng)的核心加解密模塊采用具有易于實(shí)現(xiàn)且運(yùn)行速度快的RC4算法,保證了運(yùn)行效率。另外,在加解密過(guò)程中,用戶不需要額外操作,降低了系統(tǒng)的使用難度。

Android 隱私保護(hù) hook技術(shù) 加解密功能 RC4

0 引 言

2007年11月5日,Google宣布推出了基于Linux、開(kāi)放源碼的智能手機(jī)操作系統(tǒng)Android[1]。短短幾年間,Android已經(jīng)成為了最熱門(mén)的智能終端開(kāi)發(fā)平臺(tái)之一[2]。

智能手機(jī)成了新時(shí)代生活的必須品,用戶通過(guò)手機(jī)來(lái)進(jìn)行正常的社交、工作與學(xué)習(xí)的現(xiàn)象很普遍。與此同時(shí),手機(jī)涉及到了大量的商業(yè)秘密和個(gè)人信息等隱私數(shù)據(jù)。這些數(shù)據(jù)的形式包括圖片、視頻、短信和通訊錄等。對(duì)于移動(dòng)手機(jī)終端的隱私保護(hù),是基于現(xiàn)在的市場(chǎng)需求而存在的。

在Android移動(dòng)手機(jī)平臺(tái),安全防護(hù)是一個(gè)重要的研究方向。隱私保護(hù)屬于安全防護(hù)的一部分,目前市場(chǎng)上已經(jīng)出現(xiàn)了大量?jī)?yōu)秀的軟件產(chǎn)品,比如QQ手機(jī)管家的隱私保護(hù)軟件,智能鎖等軟件。這些軟件主要是通過(guò)輸入密碼進(jìn)入軟件,并通過(guò)選擇短信,照片,通訊錄等應(yīng)用程序,再對(duì)軟件進(jìn)行上鎖操作。用戶可以通過(guò)程序?qū)π枰渔i的程序進(jìn)行設(shè)定并修改。但是這些軟件并沒(méi)有從根本上實(shí)現(xiàn)對(duì)數(shù)據(jù)的加密保護(hù)。

目前國(guó)內(nèi)外對(duì)與Android平臺(tái)的關(guān)于隱私保護(hù)的研究主要可以分為靜態(tài)分析和動(dòng)態(tài)控制[3]。靜態(tài)分析主要是在對(duì)軟件進(jìn)行掃描,判斷是否有惡意行為,類似于常見(jiàn)在電腦端的利用殺毒軟件對(duì)電腦進(jìn)行掃描的方式[4]。動(dòng)態(tài)控制是對(duì)軟件進(jìn)行實(shí)時(shí)的監(jiān)控,但是需要root權(quán)限[5]。

本文實(shí)現(xiàn)的隱私保護(hù)屬于動(dòng)態(tài)控制,需要手機(jī)取得root權(quán)限。整個(gè)系統(tǒng)的工作模式如圖1所示。

圖1 終端加解密系統(tǒng)工作模式圖

該終端加解密系統(tǒng)的工作流程如圖2所示。用戶打開(kāi)終端保護(hù)系統(tǒng)后,若已注冊(cè)則進(jìn)行登錄操作,若未注冊(cè)則進(jìn)行注冊(cè)操作,設(shè)置用戶名,密碼和安全問(wèn)題答案。用戶設(shè)置的安全問(wèn)題可用于用戶丟失密碼后重置賬戶密碼。用戶登錄后,判斷用戶是否合法,當(dāng)用戶合法時(shí),設(shè)置需要綁定的用戶進(jìn)程和第三方APP。綁定完成后,判斷用戶對(duì)文件的操作是否為打開(kāi)和關(guān)閉操作。若用戶關(guān)閉文件,則對(duì)文件進(jìn)行加密。此時(shí)已經(jīng)被加密后的文件不能被其他未被綁定的用戶進(jìn)程或第三方APP打開(kāi),以密文存在系統(tǒng)中。如果用戶需要查看被加密的數(shù)據(jù),則需在被綁定的進(jìn)程或第三方APP中再次打開(kāi)該文件,此時(shí)完成文件的解密操作。

圖2 終端加解密系統(tǒng)的工作流程圖

1 相關(guān)工作

Android是基于Linux內(nèi)核的開(kāi)源系統(tǒng),架構(gòu)分為四個(gè)層,分別為應(yīng)用程序?qū)?,?yīng)用程序框架層,系統(tǒng)運(yùn)行庫(kù)層和Linux核心層[6]。

應(yīng)用程序代碼由Java實(shí)現(xiàn),由于其安全機(jī)制和設(shè)計(jì)特點(diǎn),無(wú)法直接對(duì)系統(tǒng)硬件和底層設(shè)備進(jìn)行操作,能夠?qū)崿F(xiàn)功能相對(duì)簡(jiǎn)單。對(duì)于Linux核心層,如果進(jìn)行hook劫持進(jìn)程操作,需要重新編譯源碼,移植性較差[7]。因此本系統(tǒng)選擇在系統(tǒng)運(yùn)行庫(kù)層通過(guò)JNI(Java Native Interface)開(kāi)發(fā),并使用Linux提供的函數(shù)實(shí)現(xiàn)透明加解密功能[8]。

本文提出的終端加解密系統(tǒng)是基于系統(tǒng)運(yùn)行庫(kù)層的開(kāi)發(fā),在應(yīng)用程序?qū)油瓿山缑嬖O(shè)計(jì)等工作。本文運(yùn)用的鉤子透明加密解密的本質(zhì)是劫持函數(shù)調(diào)用。在Linux的用戶態(tài),每個(gè)進(jìn)程都有獨(dú)立的進(jìn)程空間。

為了在終端系統(tǒng)上實(shí)現(xiàn)透明加解密,先要找到被綁定的用戶進(jìn)程和第三方APP中調(diào)用open和close函數(shù)所在的動(dòng)態(tài)鏈接庫(kù),然后通過(guò)底層hook代碼劫持該動(dòng)態(tài)鏈接庫(kù)。通過(guò)找到被綁定的用戶進(jìn)程和第三方APP的open和close函數(shù)的地址,利用終端加密系統(tǒng)的new_open函數(shù)和new_close函數(shù)對(duì)原有的函數(shù)進(jìn)行替換,實(shí)現(xiàn)對(duì)文件的加解密功能。原有的open函數(shù)完成文件的打開(kāi)操作,close函數(shù)完成文件的關(guān)閉操作。在new_open函數(shù)中,先完成文件的打開(kāi)操作,再判斷文件是否被加密,若被加密,則進(jìn)行解密操作。在 new_close函數(shù)中,先完成文件的關(guān)閉操作,再判斷文件是否處于加密狀態(tài),若為非加密狀態(tài),則對(duì)文件進(jìn)行加密。當(dāng)用戶通過(guò)被劫持的用戶進(jìn)程或第三方APP打開(kāi)文件,觸發(fā)new_open函數(shù),對(duì)文件進(jìn)行解密,文件以明文顯示;關(guān)閉文件時(shí),觸發(fā)new_close函數(shù),對(duì)文件進(jìn)行加密,文件以密文存儲(chǔ),除被劫持的用戶進(jìn)程或第三方APP外的其它進(jìn)程將無(wú)法打開(kāi)該文件。

通過(guò)上文描述,本文提出的終端加解密系統(tǒng)的核心功能是通過(guò)進(jìn)程攔截,對(duì)被劫持的用戶進(jìn)程或第三方APP用具有解密功能的new_open函數(shù)和具有加密功能的new_close函數(shù)對(duì)原函數(shù)open和close進(jìn)行替換,從而實(shí)現(xiàn)對(duì)私密數(shù)據(jù)的保護(hù)。

2 關(guān)鍵技術(shù)實(shí)現(xiàn)

2.1 進(jìn)程攔截

在終端隱私保護(hù)系統(tǒng)中,程序的整體流程如圖3所示。進(jìn)程攔截的主要函數(shù)是inject_remote_process函數(shù)[9]。inject_remote_process函數(shù)的主要參數(shù)有:

1) library_path,被攔截的進(jìn)程的動(dòng)態(tài)鏈接庫(kù)文件的絕對(duì)路徑。在本終端隱私保護(hù)系統(tǒng)中,是open和close函數(shù)存在的動(dòng)態(tài)鏈接庫(kù)。

2) function_name,想要執(zhí)行的函數(shù)名,該函數(shù)為動(dòng)態(tài)鏈接庫(kù)中的函數(shù)。在本終端隱私保護(hù)系統(tǒng)中,是open函數(shù)和close函數(shù)。

inject_remote_process函數(shù)的主要流程是:

1) 使用ptrace_attach函數(shù)指定目標(biāo)進(jìn)程,通過(guò)ptrace_getregs函數(shù)獲取目標(biāo)進(jìn)程的寄存器,保存現(xiàn)場(chǎng)。

由get_remote_add函數(shù)獲取目標(biāo)進(jìn)程mmap函數(shù)地址。

2) 調(diào)用ptrace_call_wrapper函數(shù)為所注入的具有加解密功能的new_open和new_close函數(shù)所在的動(dòng)態(tài)鏈接庫(kù)文件分配內(nèi)存,根據(jù)ptrace_retval函數(shù)從寄存器中獲取mmap函數(shù)返回申請(qǐng)的內(nèi)存首地址,把要注入的動(dòng)態(tài)鏈接庫(kù)文件拷貝到目標(biāo)進(jìn)程中。

3) 調(diào)用ptrace_retval函數(shù)從寄存器中獲取mmap函數(shù)返回申請(qǐng)的內(nèi)存首地址。

4) 通過(guò)get_remote_addr函數(shù)依次獲取Linker中dlopen dlsym dlclose dlerror函數(shù)的地址, 將mmap函數(shù)返回申請(qǐng)到的內(nèi)存首地址等為參數(shù),調(diào)用dlopen得到返回值存放在sohandle中。通過(guò)sohandle和注入的函數(shù)名hook_entry調(diào)用dlsym函數(shù)返回注入函數(shù)hook_entry的地址。

5) 修改PC等相關(guān)寄存器,使其指向functionaddr,調(diào)用function即調(diào)用hook_entry。再次修改PC等相關(guān)寄存器,使其指向dlclose,調(diào)用dlclose(sohandle)關(guān)閉lib文件。

6) 調(diào)用ptrace_setregs恢復(fù)寄存器調(diào)用ptrace_detach退出ptrace。

圖3 程序的整體流程圖

在執(zhí)行inject_remote_process函數(shù)主要流程中的第5步中,調(diào)用了hook_entry函數(shù),在該函數(shù)中,完成了對(duì)open函數(shù)和close函數(shù)的替換。Hook_entry函數(shù)的主要流程如圖4所示。

圖4 hook_entry函數(shù)的流程圖

為了避免文件在加解密的過(guò)程中出現(xiàn)混亂,新建了一個(gè)名為hook的文件夾,存放new_open和new_close的臨時(shí)文件。該文件為open函數(shù)中根據(jù)參數(shù)path對(duì)應(yīng)到的文件。為避免占用過(guò)多內(nèi)存,可以刪除臨時(shí)文件。

由于一個(gè)APP會(huì)調(diào)用多個(gè)線程,在對(duì)應(yīng)用程序進(jìn)程進(jìn)行綁定時(shí),需要hook一個(gè)用戶組的進(jìn)程。

通過(guò)find_pid_of函數(shù)根據(jù)所給的進(jìn)程名返回對(duì)應(yīng)的進(jìn)程號(hào)后,hookAll_appProcess函數(shù)根據(jù)所給的進(jìn)程號(hào)把屬于此進(jìn)程的用戶組所用的進(jìn)程號(hào)存入processID_group中。GetProcess_ui函數(shù)返回此進(jìn)程的用戶組id。通過(guò)上述四個(gè)函數(shù),完成hook一個(gè)用戶組的進(jìn)程。

2.2 加密與解密

在終端隱私保護(hù)系統(tǒng)中,new_close函數(shù)中對(duì)文件執(zhí)行加密操作,new_open函數(shù)中對(duì)文件進(jìn)行解密操作,new_open和new_close函數(shù)的流程如圖5所示。

圖5 new_open和new_close函數(shù)流程圖

RC4是一種對(duì)稱加密算法,使用的密鑰為單鑰[10]。RC4通過(guò)字節(jié)流的方式依次加密明文中的每一個(gè)字節(jié),解密的時(shí)候也是依次對(duì)密文中的每一個(gè)字節(jié)進(jìn)行解密[11]。在終端隱私保護(hù)系統(tǒng)中,調(diào)用RC4算法,主要函數(shù)為RC4(unsigned char plaintext[],unsigned char key[],int keylength,unsigned char keystream[],unsigned char ciphertext[],int size),需要的參數(shù)分別為plaintext[]:需要加密的明文,key:初始密鑰,keylength:密鑰長(zhǎng)度,keystream[]為擴(kuò)展后的256位密鑰流,ciphertext[]為加密后的密文[12]。

3 測(cè) 試

進(jìn)程注入需要先獲得root權(quán)限,所以測(cè)試時(shí)手機(jī)需要取得root權(quán)限?,F(xiàn)通過(guò)對(duì)比測(cè)試終端隱私保護(hù)系統(tǒng)核心的加解密功能,測(cè)試機(jī)器是聯(lián)想P700,系統(tǒng)是Android4.0.3。在終端隱私保護(hù)系統(tǒng)未對(duì)系統(tǒng)進(jìn)行加密時(shí),通過(guò)Re管理器和TXT閱讀器打開(kāi)手機(jī)內(nèi)TXTDocument.txt文件可以正常顯示明文信息。其中Re管理器和TXT閱讀器均為第三方APP,可對(duì)系統(tǒng)中的文件進(jìn)行操作。

啟動(dòng)終端隱私保護(hù)系統(tǒng),通過(guò)inject命令對(duì)Re管理器進(jìn)行劫持,(其中inject命令是調(diào)用終端隱私保護(hù)系統(tǒng)生成的可執(zhí)行程序)此時(shí)Re管理器的文件操作函數(shù)被hook為具有加解密功能的文件操作函數(shù)。這時(shí)通過(guò)Re管理器打開(kāi)TXTDocument.txt,文件為明文狀態(tài),如圖6所示,文件可讀。通過(guò)Re管理器關(guān)閉TXTDocument.txt,對(duì)文件進(jìn)行加密操作,文件轉(zhuǎn)為密文。此時(shí)通過(guò)TXT閱讀器(非被劫持進(jìn)程)打開(kāi)TXTDocument.txt如圖7所示,文件已經(jīng)處于密文狀態(tài),打開(kāi)的文件內(nèi)容為亂碼(說(shuō)明隱私終端保護(hù)系統(tǒng)的加密功能正常)。再次通過(guò)Re管理器(被劫持進(jìn)程)打開(kāi)上述加密文件如圖6所示,文件為明文狀態(tài),文件可讀(說(shuō)明隱私終端保護(hù)系統(tǒng)的解密功能正常)。

圖6 Re管理器打開(kāi)TXTDocument.txt

圖7 TXT管理器打開(kāi)TXTDocument.txt

上述測(cè)試結(jié)果表明該終端隱私保護(hù)系統(tǒng)可以順利完成對(duì)隱私數(shù)據(jù)的保護(hù),讓被綁定的進(jìn)程對(duì)文件的操作具有透明加解密功能。

4 結(jié) 語(yǔ)

Android系統(tǒng)已經(jīng)成為主流的手機(jī)操作系統(tǒng)之一,本文針對(duì)android手機(jī)用戶的隱私保護(hù)提出并實(shí)現(xiàn)了一種保護(hù)方法。該方法通過(guò)劫持open和close函數(shù),調(diào)用new_open和new_close函數(shù),對(duì)文件進(jìn)行了加密和解密,從根本上實(shí)現(xiàn)了對(duì)文件的保護(hù)。通過(guò)在手機(jī)上的測(cè)試,驗(yàn)證了該方法是有效的。下一步的重點(diǎn)是實(shí)現(xiàn)監(jiān)控系統(tǒng)的權(quán)限,從而達(dá)到對(duì)短信的監(jiān)控。

[1] 彭國(guó)軍,邵玉如,王泰格.基于Android的手機(jī)隱私保護(hù)技術(shù)及實(shí)現(xiàn)[J].信息網(wǎng)絡(luò)安全,2012(4):54-57.

[2] 張玉清,王凱,楊歡,等.Android安全綜述[J].計(jì)算機(jī)研究與發(fā)展,2014,51(7):1385-1396.

[3] 宋杰,黨李成,郭振朝,等.AndroidOS手機(jī)平臺(tái)的安全機(jī)制分析和應(yīng)用研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2010,20(6):152-155.

[4] 楊歡,張玉清,胡予濮,等.基于多類特征的Android應(yīng)用惡意行為檢測(cè)系統(tǒng)[J].計(jì)算機(jī)學(xué)報(bào),2014,37(1):15-27.

[5] 王偉,張之棟,雷雨詩(shī),等.基于策略的Android應(yīng)用檢測(cè)系統(tǒng)[J].信息網(wǎng)絡(luò)安全,2013(2):30-34.

[6] 乜聚虎,周學(xué)海,余艷瑋,等.Android安全加固技術(shù)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011,20(10):74-77.

[7] 溫敏,艾麗蓉,王志國(guó).Android智能手機(jī)系統(tǒng)中文件實(shí)時(shí)監(jiān)控的研究與實(shí)現(xiàn)[J].科學(xué)技術(shù)與工程,2009(7):1716-1719.

[8] 詹成國(guó),朱偉,徐敏.基于Android的測(cè)控裝置人機(jī)界面的設(shè)計(jì)與開(kāi)發(fā)[J].電力自動(dòng)化設(shè)備,2012,32(1):119-122.

[9]Android下通過(guò)hook技術(shù)實(shí)現(xiàn)透明加解密保障數(shù)據(jù)安全[J/OL].http://netsecurity.51cto.com/art/201311/417542.htm.

[10] 蔡傳安.RC4加密算法及其安全性研究[J].中國(guó)水運(yùn):下半月,2012(8):33-35.

[11] 李琴,曾凡平.RC4密碼的改進(jìn)方法及其性能分析[J].計(jì)算機(jī)工程,2008,34(18):181-183.

[12] 常亞勤.對(duì)流密碼RC4的區(qū)分攻擊[J].計(jì)算機(jī)工程,2011,37(3):119-120.

DEVELOPMENT AND DESIGN OF PERSONAL PRIVACY PROTECTION SYSTEM OF MOBILE INTELLIGENT TERMINAL

Li Chunjie Shi Zhengle Gao Huimin Yan Zhirun

(SuzhouInstituteforAdvancedStudy,UniversityofScienceandTechnologyofChina,Suzhou215000,Jiangsu,China)

Android is one of the most popular mobile intelligent terminal operating system, and it is very important to protect the privacy of Android users. The terminal encryption and decryption of the privacy protection system uses hook technology to capture and hijack the read-write operations of the user process to the documents. By adding a function with encryption and decryption function module, it replaces the original read-write function in user’s dynamic link library to achieve the purpose of encryption and decryption. The core encryption and decryption module of the system adopts the RC4 algorithm which is easy to implement and run fast, and ensures the running efficiency. Also in the encryption and decryption process, the user does not require additional operations, reducing the difficulty of using the system.

Android Privacy protection Hook technology Encrypt declassify RC4

2016-05-24。江蘇省科技項(xiàng)目-基礎(chǔ)研究計(jì)劃(自然科學(xué)基金:BK20141209);蘇州市應(yīng)用基礎(chǔ)研究項(xiàng)目(SYG201543)。李春杰,副研究員,主研領(lǐng)域:嵌入式系統(tǒng)設(shè)計(jì)與信息安全。史正樂(lè),碩士。高慧敏,碩士。顏智潤(rùn),碩士。

TP3

A

10.3969/j.issn.1000-386x.2017.06.039

猜你喜歡
加解密管理器調(diào)用
應(yīng)急狀態(tài)啟動(dòng)磁盤(pán)管理器
核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
Windows文件緩沖處理技術(shù)概述
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
電子取證中常見(jiàn)數(shù)據(jù)加解密理論與方法研究
基于FPGA的LFSR異步加解密系統(tǒng)
高集成度2.5A備份電源管理器簡(jiǎn)化鋰離子電池備份系統(tǒng)
網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)募咏饷芟到y(tǒng)研究
軟件工程(2014年11期)2014-11-15 20:02:46
快速導(dǎo)出QQ群消息
電腦迷(2014年2期)2014-04-29 19:21:13
桦南县| 田东县| 大新县| 卢氏县| 滨海县| 涿州市| 蓝山县| 西吉县| 田阳县| 涿鹿县| 铜山县| 舞阳县| 西昌市| 勐海县| 邢台市| 和龙市| 潼南县| 拜泉县| 通许县| 广饶县| 沂南县| 湘乡市| 泗水县| 聊城市| 秦皇岛市| 吐鲁番市| 本溪| 武冈市| 绥芬河市| 沧州市| 唐河县| 隆德县| 永胜县| 石林| 鄂州市| 泾阳县| 大化| 敖汉旗| 井陉县| 康乐县| 潞西市|