基于重構(gòu)技術(shù)實(shí)現(xiàn)敏感數(shù)據(jù)云端鎖定的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是一種利用程序分析與重構(gòu)技術(shù)實(shí)現(xiàn)在現(xiàn)有應(yīng)用中融合多個(gè)設(shè)備中的文件,從而實(shí)現(xiàn)敏感數(shù)據(jù)云端鎖定的方法,屬于軟件技術(shù)領(lǐng)域,適用于軟件維護(hù)。
【背景技術(shù)】
[0002]隨著智能手機(jī)的發(fā)展,用戶越來越多地利用移動(dòng)辦公、移動(dòng)商務(wù)來提高生活、工作效率。與此同時(shí),越來越多的用戶敏感數(shù)據(jù)被保存在手機(jī)。然而,這些敏感數(shù)據(jù)仍然存在各種威脅:如手機(jī)丟失、損壞造成數(shù)據(jù)丟失,惡意應(yīng)用、手機(jī)病毒造成敏感數(shù)據(jù)泄露等問題。針對(duì)數(shù)據(jù)丟失和數(shù)據(jù)泄露,出現(xiàn)了以網(wǎng)盤為代表的云存儲(chǔ)數(shù)據(jù)隔離保護(hù)技術(shù)。然而,對(duì)于現(xiàn)在的各種網(wǎng)盤,當(dāng)用戶需要讀寫這些數(shù)據(jù)時(shí),數(shù)據(jù)需先從云端下載至終端,即用戶的數(shù)據(jù)既保存在終端(手機(jī)),也保存在云端。云端與終端數(shù)據(jù)的同步是由用戶來操作維護(hù)。這類技術(shù)僅僅是解決了手機(jī)丟失、損壞導(dǎo)致的數(shù)據(jù)丟失的問題,而沒有解決數(shù)據(jù)保存在終端引起的數(shù)據(jù)泄露的問題。即使是利用現(xiàn)有的數(shù)據(jù)隔離進(jìn)行保護(hù),由于數(shù)據(jù)仍然保存在手機(jī)上,再好的數(shù)據(jù)加密和隔離機(jī)制,也不能完全避免惡意應(yīng)用的各種攻擊。
[0003]綜上所述,需要一種支持?jǐn)?shù)據(jù)云端一終端融合的方法。它可以在不需要應(yīng)用開發(fā)人員進(jìn)行二次開發(fā)的情況下,使現(xiàn)有應(yīng)用透明地讀寫云端數(shù)據(jù)。用戶通過將需要保護(hù)的敏感數(shù)據(jù)存放在云端,解決手機(jī)丟失、損壞導(dǎo)致的敏感數(shù)據(jù)丟失問題;用戶通過直接讀寫云端數(shù)據(jù),使數(shù)據(jù)不保存于終端,解決用戶敏感數(shù)據(jù)泄露的問題。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是保護(hù)用戶敏感數(shù)據(jù)。其核心思想是由用戶指定終端中的部分應(yīng)用為可信應(yīng)用,并將敏感數(shù)據(jù)存儲(chǔ)在云端。通過對(duì)這些可信應(yīng)用的程序分析和重構(gòu),使這些應(yīng)用具備訪問云端敏感文件的能力。本方法通過將用戶的敏感數(shù)據(jù)存放在云端,實(shí)現(xiàn)用戶的敏感數(shù)據(jù)的不丟失;通過只重構(gòu)用戶可信應(yīng)用,保證敏感數(shù)據(jù)不泄露。
[0005]本發(fā)明采用的技術(shù)方案如下:
[0006]一種基于重構(gòu)技術(shù)實(shí)現(xiàn)敏感數(shù)據(jù)云端鎖定的方法,其步驟包括:
[0007]1)由用戶指定終端中的部分應(yīng)用為可信應(yīng)用,并將敏感數(shù)據(jù)存儲(chǔ)在云端;
[0008]2)對(duì)指定的可信應(yīng)用進(jìn)行重構(gòu),將原應(yīng)用中調(diào)用文件相關(guān)的API替換為融合了云端和終端的文件相關(guān)API ;
[0009]3)通過調(diào)用重構(gòu)后的API,使應(yīng)用訪問云端的敏感數(shù)據(jù)。
[0010]進(jìn)一步地,步驟2)所述重構(gòu)的方法是:
[0011]a)利用關(guān)鍵字匹配,找出所有和文件相關(guān)的類;
[0012]b)重構(gòu)產(chǎn)生文件相關(guān)對(duì)象的API,把所有生成文件相關(guān)對(duì)象重構(gòu)為生成具備操作云端數(shù)據(jù)能力的對(duì)象,同時(shí)保證重構(gòu)后的對(duì)象和原對(duì)象的繼承鏈的一致性以及操作和屬性的一致性;
[0013]c)重構(gòu)調(diào)用文件相關(guān)對(duì)象的API,調(diào)用文件操作的對(duì)象包括應(yīng)用層對(duì)象和框架層對(duì)象。
[0014]進(jìn)一步地,上述步驟a)首先構(gòu)建一個(gè)現(xiàn)有框架層文件相關(guān)操作的關(guān)鍵字庫(kù),再根據(jù)該關(guān)鍵字庫(kù)找出在應(yīng)用中所有用到了文件相關(guān)API的類。
[0015]進(jìn)一步地,上述步驟c)中,對(duì)于框架層對(duì)象,在其調(diào)用文件相關(guān)對(duì)象時(shí),利用插裝函數(shù)獲取原始文件相關(guān)對(duì)象,并讓框架層對(duì)象直接操作原始對(duì)象。
[0016]進(jìn)一步地,步驟2)的重構(gòu)過程使運(yùn)行時(shí)的文件相關(guān)對(duì)象被替換具備云端數(shù)據(jù)操作能力的對(duì)象,這些對(duì)象配合運(yùn)行在云端的云端數(shù)據(jù)代理,利用文件系統(tǒng)融合機(jī)制實(shí)現(xiàn)融合云端一終端數(shù)據(jù)。
[0017]進(jìn)一步地,所述文件系統(tǒng)融合機(jī)制包括基于文件映射的文件系統(tǒng)融合:首先由用戶指定一個(gè)云端的子文件操作系統(tǒng),即一組文件和目錄組成的集合,再由用戶指定云端文件到終端文件的映射規(guī)則,最后運(yùn)行在終端的和運(yùn)行在云端的云端數(shù)據(jù)代理一起完成文件的映射,實(shí)現(xiàn)兩個(gè)文件系統(tǒng)的融合。
[0018]進(jìn)一步地,所述文件系統(tǒng)融合機(jī)制還包括基于時(shí)間戳的文件元數(shù)據(jù)緩存與同步,即通過時(shí)間戳與云端元數(shù)據(jù)進(jìn)行增量式同步,以提高整體系統(tǒng)的性能和可用性。
[0019]本發(fā)明提出了一種支持敏感數(shù)據(jù)云端鎖定的方法,能夠令用戶可信的移動(dòng)應(yīng)用直接訪問存儲(chǔ)于云端的敏感數(shù)據(jù),而不將敏感數(shù)據(jù)持久化存儲(chǔ)于終端;可以在不需要移動(dòng)應(yīng)用開發(fā)人員進(jìn)行二次開發(fā)的情況下,通過程序自動(dòng)重構(gòu)現(xiàn)有移動(dòng)應(yīng)用,使其具備透明地讀寫云端敏感數(shù)據(jù)的能力。本發(fā)明結(jié)合了現(xiàn)有技術(shù)的優(yōu)點(diǎn),通過將需要保護(hù)的敏感數(shù)據(jù)存放在云端,解決了由于手機(jī)丟失、損壞導(dǎo)致的數(shù)據(jù)丟失問題;同時(shí)又創(chuàng)新性地通過直接讀寫云端數(shù)據(jù),使數(shù)據(jù)不保存于終端,解決了用戶敏感數(shù)據(jù)泄露的問題。
【附圖說明】
[0020]圖1是重構(gòu)前后應(yīng)用的運(yùn)行時(shí)體系架構(gòu)變化示意圖。
[0021]圖2是文件系統(tǒng)融合示意圖,其中(a)為融合之前的兩個(gè)文件系統(tǒng),(b)為融合之后的結(jié)果。
[0022]圖3是重構(gòu)前后的代碼示意圖,其中(a)為重構(gòu)前的代碼,(b)為重構(gòu)后的代碼。
【具體實(shí)施方式】
[0023]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面通過具體實(shí)施例和附圖,對(duì)本發(fā)明做進(jìn)一步說明。
[0024]本發(fā)明提供一種利用程序分析與重構(gòu)技術(shù)實(shí)現(xiàn)敏感數(shù)據(jù)云端鎖定的方法。該方法包含兩部分內(nèi)容:1、實(shí)現(xiàn)敏感數(shù)據(jù)云端鎖定的應(yīng)用重構(gòu)方法;2、文件系統(tǒng)融合機(jī)制。其核心思想是在修改并重構(gòu)移動(dòng)應(yīng)用的二進(jìn)制字節(jié)碼,替換其使用的文件操作相關(guān)的應(yīng)用編程接口(API),從而將云端指定的子文件系統(tǒng)與終端文件系統(tǒng)融合,使重構(gòu)后的應(yīng)用能透明地讀、寫云端數(shù)據(jù),達(dá)到敏感數(shù)據(jù)云端鎖定的目的。本方法首先對(duì)現(xiàn)有移動(dòng)應(yīng)用進(jìn)行程序化分析,找出與文件操作相關(guān)的計(jì)算邏輯,并進(jìn)行相應(yīng)的重構(gòu),最后重新生成具備直接讀、寫云端數(shù)據(jù)能力的應(yīng)用。本發(fā)明有助于提高手機(jī)敏感數(shù)據(jù)的安全性,尤其對(duì)于需要保護(hù)敏感數(shù)據(jù),不希望敏感數(shù)據(jù)保存在終端上的用戶具有十分重要的意義。
[0025]本發(fā)明的具體技術(shù)方案如下:
[0026](1)實(shí)現(xiàn)敏感數(shù)據(jù)云端鎖定的應(yīng)用重構(gòu)方法
[0027]現(xiàn)有的移動(dòng)應(yīng)用往往利用框架層提供的應(yīng)用編程接口(Applicat1n ProgramInterface, API)對(duì)文件進(jìn)行相關(guān)操作。本方法利用程序分析和重構(gòu),將原應(yīng)用中調(diào)用文件相關(guān)的API替換為融合了云端一終端的文件相關(guān)API。當(dāng)應(yīng)用調(diào)用了新的API時(shí),該應(yīng)用就能訪問到云端的敏感數(shù)據(jù),并對(duì)其進(jìn)行讀寫操作。
[0028]重構(gòu)前后,應(yīng)用的運(yùn)行時(shí)體系架構(gòu)變化如圖1所示。為了實(shí)現(xiàn)應(yīng)用運(yùn)行時(shí)文件相關(guān)對(duì)象均替換為具備操作云端文件能力的對(duì)象,具體的重構(gòu)過程包含三個(gè)步驟:
[0029](a)利用關(guān)鍵字匹配,找出所有和文件相關(guān)的類
[0030]應(yīng)用利用現(xiàn)有的框架層提供的文件相關(guān)API對(duì)用戶數(shù)據(jù)進(jìn)行相關(guān)操作。為使應(yīng)用具備操作云端數(shù)據(jù)的能力,本方法首先構(gòu)建一個(gè)現(xiàn)有框架層文件相關(guān)操作的關(guān)鍵字庫(kù),再根據(jù)這個(gè)關(guān)鍵字庫(kù)找出在應(yīng)用中所有用到了文件相關(guān)API的類。最后對(duì)這些類進(jìn)以下兩種重構(gòu)操作。
[0031](b)重構(gòu)產(chǎn)生文件相關(guān)對(duì)象的API
[0032]如圖1所示,為保證所有文件相關(guān)對(duì)象均被替換為具備操作云端數(shù)據(jù)能力的對(duì)象,本方法把所有生成文件相關(guān)對(duì)象重構(gòu)為生成具備操作云端數(shù)據(jù)能力的對(duì)象,同時(shí)保證重構(gòu)后的對(duì)象和原對(duì)象的繼承鏈(Inheritance Chain)的一致性以及操作(Method)和屬性(Field)的一致性。例如:在實(shí)現(xiàn)例中,我們針對(duì)安卓應(yīng)用中一個(gè)常用的文件相關(guān)類File類,實(shí)現(xiàn)了一個(gè)具備操作云端數(shù)據(jù)能力的類FlowFile,該類的所有操作(Method)和屬性(Field)與File類一致,但是某些特別的操作,則會(huì)表現(xiàn)出具備云端融合的屬性:如listFile操作會(huì)返回云端和終端的子文件