欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

應(yīng)用文件的處理方法及裝置和文件的訪問(wèn)方法及裝置與流程

文檔序號(hào):12837285閱讀:245來(lái)源:國(guó)知局
應(yīng)用文件的處理方法及裝置和文件的訪問(wèn)方法及裝置與流程

本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種應(yīng)用文件的處理方法及裝置和文件的訪問(wèn)方法及裝置。



背景技術(shù):

移動(dòng)互聯(lián)網(wǎng)的飛速發(fā)展使得智能終端的應(yīng)用日益豐富,安卓android系統(tǒng)作為目前最為流行的智能終端平臺(tái),僅谷歌市場(chǎng)googleplay即提供了數(shù)量超過(guò)100萬(wàn)的android應(yīng)用程序。智能終端應(yīng)用的普及,使得自帶設(shè)備辦公(bringyourowndevice,簡(jiǎn)稱為byod)變得日益流行。由于byod具有工作靈活、效率提升以及成本節(jié)約等優(yōu)勢(shì),已成為研究的熱點(diǎn)與未來(lái)企業(yè)發(fā)展的趨勢(shì)。

android應(yīng)用的日益流行使得越來(lái)越多的重要和敏感信息被存儲(chǔ)在智能終端中,然而,隨之而來(lái)的則是敏感和隱私信息的安全性問(wèn)題。攻擊者可以利用android系統(tǒng)存在的漏洞,在智能終端中植入惡意代碼,竊取用戶隱私信息,給用戶造成重大損失。相應(yīng)地,byod技術(shù)在帶來(lái)便利的同時(shí)加劇了智能終端信息的機(jī)密性問(wèn)題,即企業(yè)員工的自有移動(dòng)終端不可避免地會(huì)運(yùn)行在外部網(wǎng)絡(luò)環(huán)境中,容易遭受惡意攻擊,導(dǎo)致企業(yè)敏感信息的泄漏。與此同時(shí),若用戶隱私信息未得到很好的安全保護(hù),則可能被企業(yè)應(yīng)用讀取,從而造成用戶隱私信息的泄露。

目前,為了解決智能終端敏感信息泄露問(wèn)題,較普遍的方式是采用android文件的透明加解密技術(shù),在操作系統(tǒng)的內(nèi)核級(jí)實(shí)現(xiàn)在讀寫文件數(shù)據(jù)時(shí),完成文件的透明加解密,從而在不改變用戶習(xí)慣和用戶未察覺(jué)的前提下,實(shí)現(xiàn)智能終端的信息保護(hù)。例如,專利號(hào)為“cn104252605a”的專利提出了一種基于android底層的鉤子(hook)技術(shù)實(shí)現(xiàn)的文件透明加解密方法,能夠根據(jù)用戶提供的密碼短語(yǔ)實(shí)現(xiàn)對(duì)特定目錄文件的加解密。又例如專利號(hào)為“cn104331644a”的專利同樣利用了操作系統(tǒng)底層的套接字netlink和hook技術(shù),實(shí)現(xiàn)授權(quán)進(jìn)程與待保護(hù)文件的訪問(wèn)控制與文件的透明加解密。這類透明加解密技術(shù)雖然能夠?qū)崿F(xiàn)文件的機(jī)密性保護(hù),但需要系統(tǒng)root權(quán)限,既限制了android文件加解密技術(shù)的部署范圍,也無(wú)法適應(yīng)byod的運(yùn)行環(huán)境。同樣地,例如專利號(hào)為“cn104951705a”的專利提出了一種基于操作系統(tǒng)接口重寫的android應(yīng)用數(shù)據(jù)加密封裝方法,通過(guò)插裝應(yīng)用入口處代碼,實(shí)現(xiàn)在應(yīng)用啟動(dòng)時(shí)對(duì)輸入輸出(input/output,簡(jiǎn)稱為i/o)讀寫的java本地接口(javanativeinterface,簡(jiǎn)稱為jni)調(diào)用指令進(jìn)行hook與替換,仍屬于在系統(tǒng)底層實(shí)現(xiàn)了文件的透明加解密,實(shí)現(xiàn)方式為底層方法的替換。

上述專利均在android系統(tǒng)底層實(shí)現(xiàn)了文件的透明加解密,然而,在上述方法中,所有的應(yīng)用對(duì)于所有加密文件而言均具有相同的訪問(wèn)權(quán)限,無(wú)法在加解密過(guò)程中透明處理byod環(huán)境下基于分組的文件訪問(wèn)控制問(wèn)題,即不同應(yīng)用組對(duì)于不同文件的訪問(wèn)權(quán)限是不相同的。

因此,為了保護(hù)byod環(huán)境下企業(yè)敏感信息和用戶隱私信息的機(jī)密性,使之免受惡意攻擊以及合法用戶的非授權(quán)訪問(wèn)所帶來(lái)的信息泄露問(wèn)題,并且能夠方便地進(jìn)行大規(guī)模的部署,有必要提供一種應(yīng)用層的android文件實(shí)時(shí)加解密方法,在無(wú)需獲得android系統(tǒng)root權(quán)限的前提下,既能夠增強(qiáng)android終端所存儲(chǔ)信息的機(jī)密性,又能夠同時(shí)滿足byod環(huán)境下基于分組的文件訪問(wèn)控制要求。

針對(duì)相關(guān)技術(shù)中,byod環(huán)境下文件被不同應(yīng)用隨意訪問(wèn),容易泄露信息的問(wèn)題,目前還沒(méi)有有效地解決方案。



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

本發(fā)明提供了一種應(yīng)用文件的處理方法及裝置和文件的訪問(wèn)方法及裝置,以至少解決相關(guān)技術(shù)中byod環(huán)境下文件被不同應(yīng)用隨意訪問(wèn),容易泄露信息的問(wèn)題。

根據(jù)本發(fā)明的一個(gè)方面,提供了一種應(yīng)用文件的處理方法,包括:

反編譯終端應(yīng)用文件得到字節(jié)碼文件;

獲取所述字節(jié)碼文件的輸入輸出i/o操作對(duì)象,對(duì)所述i/o操作對(duì)象進(jìn)行代碼插裝處理得到具有加解密功能的i/o操作對(duì)象;

對(duì)包含有所述具有加解密功能的i/o操作對(duì)象的字節(jié)碼文件進(jìn)行回編譯。

進(jìn)一步地,對(duì)所述i/o操作對(duì)象進(jìn)行代碼插裝處理得到具有加解密功能的i/o操作對(duì)象包括:

在所述字節(jié)碼文件的i/o操作對(duì)象為順序讀寫或者隨機(jī)讀寫i/o操作對(duì)象的情況下,使用自定義安全類對(duì)象替換所述i/o操作對(duì)象;

在所述字節(jié)碼文件的i/o操作對(duì)象為內(nèi)存映射方式的情況下,標(biāo)記所述字節(jié)碼文件的內(nèi)存映射緩沖區(qū)對(duì)象,并對(duì)所述內(nèi)存映射緩沖區(qū)對(duì)象進(jìn)行代碼插裝處理。

進(jìn)一步地,在所述字節(jié)碼文件的i/o操作對(duì)象為順序讀寫或者隨機(jī)讀寫i/o操作對(duì)象的情況下,使用自定義安全類對(duì)象替換所述i/o操作對(duì)象包括:

創(chuàng)建所述i/o操作對(duì)象所對(duì)應(yīng)類的自定義安全子類,使用所述自定義安全子類的對(duì)象實(shí)例替換所述i/o操作對(duì)象實(shí)例;

創(chuàng)建所述i/o操作對(duì)象所對(duì)應(yīng)類同名且處于不同命名空間下的自定義安全類,使用所述第二自定義安全類的對(duì)象實(shí)例替換所述i/o操作對(duì)象實(shí)例以及所述i/o操作對(duì)象的函數(shù)簽名信息。

進(jìn)一步地,所述終端應(yīng)用文件包括:可執(zhí)行文件;終端加載運(yùn)行的資源文件庫(kù)。

根據(jù)本發(fā)明的一個(gè)方面,提供了一種文件的訪問(wèn)方法,包括:

獲取終端應(yīng)用對(duì)被保護(hù)文件的訪問(wèn)請(qǐng)求;

調(diào)用所述終端應(yīng)用的具有加解密功能的輸入輸出i/o操作對(duì)象檢查所述被保護(hù)文件的組鑒別信息,其中,所述組鑒別信息是由創(chuàng)建所述被保護(hù)文件的終端應(yīng)用設(shè)置的,具有加解密功能的i/o操作對(duì)象通過(guò)以下方式生成:反編譯所述終端應(yīng)用的應(yīng)用文件得到字節(jié)碼文件,獲取所述字節(jié)碼文件的輸入輸出i/o操作對(duì)象,對(duì)所述i/o操作對(duì)象進(jìn)行代碼插裝處理得到具有加解密功能的i/o操作對(duì)象;

依據(jù)所述組鑒別信息確定所述終端應(yīng)用對(duì)所述被保護(hù)文件是否有訪問(wèn)權(quán)限,在所述終端應(yīng)用具有所述被保護(hù)文件訪問(wèn)權(quán)限的情況下,允許所述訪問(wèn)請(qǐng)求,其中,在所述組鑒別信息通過(guò)所述具有加解密功能的輸入輸出i/o操作對(duì)象的檢測(cè)的情況下,確定所述終端應(yīng)用具有所述被保護(hù)文件訪問(wèn)權(quán)限。

進(jìn)一步地,在確定所述終端應(yīng)用具有對(duì)所述被保護(hù)文件訪問(wèn)權(quán)限的情況下之后,所述方法還包括:

所述終端應(yīng)用依據(jù)組密鑰信息對(duì)所述被保護(hù)文件進(jìn)行解密操作,其中,所述組密鑰信息是所述終端應(yīng)用預(yù)先獲取的。

進(jìn)一步地,所述組密鑰信息通過(guò)以下之一方式預(yù)先獲?。?/p>

在所述終端應(yīng)用所屬的終端與密鑰服務(wù)器連接的情況下,實(shí)時(shí)接收所述密鑰服務(wù)器分發(fā)的組密鑰信息;

在所述終端應(yīng)用所屬的終端不與所述密鑰服務(wù)器連接的情況下,使用本地存儲(chǔ)的組密鑰信息。

進(jìn)一步地,在允許所述訪問(wèn)請(qǐng)求的情況下,所述終端應(yīng)用對(duì)所述文件的讀寫操作類型包括以下之一:順序讀寫i/o操作,隨機(jī)讀寫i/o操作和內(nèi)存映射i/o操作。

進(jìn)一步地,

所述順序讀寫i/o操作包括以下之一:基于字節(jié)流的順序讀寫i/o操作形式,基于編碼數(shù)據(jù)塊的順序讀寫i/o操作形式,壓縮文件的順序讀寫i/o操作形式,基于文件管道的順序讀寫i/o操作形式;

所述隨機(jī)讀寫i/o操作包括以下之一:基于字節(jié)流的隨機(jī)讀寫i/o操作形式,基于文件管道的隨機(jī)讀寫i/o操作形式。

進(jìn)一步地,所述內(nèi)存映射i/o操作包括以下之一:

針對(duì)所述被保護(hù)文件整體的內(nèi)存映射i/o操作;

針對(duì)所述被保護(hù)文件預(yù)設(shè)起始位置與預(yù)設(shè)長(zhǎng)度的內(nèi)存映射i/o操作。

根據(jù)本發(fā)明的另一方面,提供了一種應(yīng)用文件的處理裝置,應(yīng)用于終端,包括:

反編譯模塊,用于反編譯終端應(yīng)用文件得到字節(jié)碼文件;

插裝模塊,用于獲取所述字節(jié)碼文件的輸入輸出i/o操作對(duì)象,對(duì)所述i/o操作對(duì)象進(jìn)行代碼插裝處理得到具有加解密功能的i/o操作對(duì)象;

回編譯模塊,用于對(duì)包含有所述具有加解密功能的i/o操作對(duì)象的字節(jié)碼文件進(jìn)行回編譯。

進(jìn)一步地,所述插裝模塊包括:

替換單元,用于在所述字節(jié)碼文件的i/o操作對(duì)象為順序讀寫或者隨機(jī)讀寫i/o操作對(duì)象的情況下,使用自定義安全類對(duì)象替換所述i/o操作對(duì)象;

標(biāo)記單元,用于在所述字節(jié)碼文件的i/o操作對(duì)象為內(nèi)存映射方式的情況下,標(biāo)記所述字節(jié)碼文件的內(nèi)存映射緩沖區(qū)對(duì)象,并對(duì)所述內(nèi)存映射緩沖區(qū)對(duì)象進(jìn)行代碼插裝處理。

根據(jù)本發(fā)明的另一方面,提供了一種文件的訪問(wèn)裝置,應(yīng)用于終端,包括:

獲取模塊,用于獲取終端應(yīng)用對(duì)被保護(hù)文件的訪問(wèn)請(qǐng)求;

檢查模塊,用于調(diào)用所述終端應(yīng)用的具有加解密功能的輸入輸出i/o操作對(duì)象檢查所述被保護(hù)文件的組鑒別信息,其中,所述組鑒別信息是由創(chuàng)建所述被保護(hù)文件的終端應(yīng)用設(shè)置的,具有加解密功能的i/o操作對(duì)象通過(guò)以下方式生成:反編譯所述終端應(yīng)用的應(yīng)用文件得到字節(jié)碼文件,獲取所述字節(jié)碼文件的輸入輸出i/o操作對(duì)象,對(duì)所述i/o操作對(duì)象進(jìn)行代碼插裝處理得到具有加解密功能的i/o操作對(duì)象;

訪問(wèn)模塊,用于依據(jù)所述組鑒別信息確定所述終端應(yīng)用對(duì)所述被保護(hù)文件是否有訪問(wèn)權(quán)限,在確定所述終端應(yīng)用具有對(duì)所述被保護(hù)文件訪問(wèn)權(quán)限的情況下,允許所述訪問(wèn)請(qǐng)求,其中,在所述組鑒別信息通過(guò)所述具有加解密功能的輸入輸出i/o操作對(duì)象的檢測(cè)的情況下,確定所述終端應(yīng)用具有所述被保護(hù)文件訪問(wèn)權(quán)限。

進(jìn)一步地,所述訪問(wèn)模塊還用于在確定所述終端應(yīng)用具有對(duì)所述被保護(hù)文件訪問(wèn)權(quán)限的情況下之后,所述終端應(yīng)用依據(jù)組密鑰信息對(duì)所述被保護(hù)文件進(jìn)行解密操作,其中,所述組密鑰信息是所述終端應(yīng)用預(yù)先獲取的。

通過(guò)本發(fā)明,獲取終端應(yīng)用對(duì)被保護(hù)文件的訪問(wèn)請(qǐng)求,調(diào)用該終端應(yīng)用的具有加解密功能的輸入輸出i/o操作對(duì)象檢查該被保護(hù)文件的組鑒別信息,其中,該組鑒別信息是由創(chuàng)建該被保護(hù)文件的終端應(yīng)用設(shè)置的,具有加解密功能的i/o操作對(duì)象通過(guò)以下方式生成:反編譯該終端應(yīng)用的應(yīng)用文件得到字節(jié)碼文件,獲取該字節(jié)碼文件的輸入輸出i/o操作對(duì)象,對(duì)該i/o操作對(duì)象進(jìn)行代碼插裝處理得到具有加解密功能的i/o操作對(duì)象,依據(jù)該組鑒別信息確定該終端應(yīng)用對(duì)該被保護(hù)文件是否有訪問(wèn)權(quán)限,在該終端應(yīng)用具有該被保護(hù)文件訪問(wèn)權(quán)限的情況下,允許該訪問(wèn)請(qǐng)求,其中,在該組鑒別信息通過(guò)該具有加解密功能的輸入輸出i/o操作對(duì)象的檢測(cè)的情況下,確定該終端應(yīng)用具有該被保護(hù)文件訪問(wèn)權(quán)限,解決了byod環(huán)境下文件被不同應(yīng)用隨意訪問(wèn),容易泄露信息的問(wèn)題,保證了文件信息的安全性。

附圖說(shuō)明

此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:

圖1是根據(jù)本發(fā)明實(shí)施例的一種應(yīng)用文件的處理方法的流程圖;

圖2是根據(jù)本發(fā)明實(shí)施例的一種文件的訪問(wèn)方法的流程圖;

圖3是根據(jù)本發(fā)明實(shí)施例的一種應(yīng)用文件的處理裝置的結(jié)構(gòu)框圖一;

圖4是根據(jù)本發(fā)明實(shí)施例的一種應(yīng)用文件的處理裝置的結(jié)構(gòu)框圖二;

圖5是根據(jù)本發(fā)明實(shí)施例的一種文件的訪問(wèn)裝置的結(jié)構(gòu)框圖;

圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的android應(yīng)用代碼插裝過(guò)程的示意圖;

圖7是根據(jù)本發(fā)明實(shí)施例的android應(yīng)用訪問(wèn)被保護(hù)文件的示意圖;

圖8是根據(jù)本發(fā)明優(yōu)選實(shí)施例的在byod環(huán)境中一種應(yīng)用實(shí)例的示意圖;

圖9是根據(jù)本發(fā)明優(yōu)選實(shí)施例在android應(yīng)用變更分組時(shí)執(zhí)行文件訪問(wèn)控制的應(yīng)用實(shí)例的示意圖。

具體實(shí)施方式

下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。

需要說(shuō)明的是,本發(fā)明的說(shuō)明書和權(quán)利要求書及上述附圖中的術(shù)語(yǔ)“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。

在本實(shí)施例中提供了一種應(yīng)用文件的處理方法,圖1是根據(jù)本發(fā)明實(shí)施例的一種應(yīng)用文件的處理方法的流程圖,如圖1所示,該流程包括如下步驟:

步驟s102,反編譯終端應(yīng)用文件得到字節(jié)碼文件;

步驟s104,獲取該字節(jié)碼文件的輸入輸出i/o操作對(duì)象,對(duì)該i/o操作對(duì)象進(jìn)行代碼插裝處理得到具有加解密功能的i/o操作對(duì)象;

步驟s106,對(duì)包含有該具有加解密功能的i/o操作對(duì)象的字節(jié)碼文件進(jìn)行回編譯。

通過(guò)上述步驟,反編譯終端應(yīng)用文件得到字節(jié)碼文件,獲取該字節(jié)碼文件的輸入輸出i/o操作對(duì)象,對(duì)該i/o操作對(duì)象進(jìn)行代碼插裝處理得到具有加解密功能的i/o操作對(duì)象,對(duì)包含有該具有加解密功能的i/o操作對(duì)象的字節(jié)碼文件進(jìn)行回編譯。代碼插裝技術(shù)是一種通過(guò)修改或刪除現(xiàn)有指令并插入新的指令來(lái)改變程序執(zhí)行行為的技術(shù),在相關(guān)技術(shù)中,終端應(yīng)用不具有加解密文件的功能,通過(guò)代碼插裝技術(shù)修改了終端應(yīng)用的應(yīng)用文件,賦予了終端應(yīng)用加解密文件的功能,凡是通過(guò)該終端應(yīng)用輸入輸出的文件都會(huì)打上標(biāo)記,該標(biāo)記用于后續(xù)其他應(yīng) 用識(shí)別。采用上述技術(shù)方案,解決了byod環(huán)境下文件被不同應(yīng)用隨意訪問(wèn),容易泄露信息的問(wèn)題,保證了文件信息的安全性。

在本實(shí)施例中,對(duì)該i/o操作對(duì)象進(jìn)行代碼插裝處理得到具有加解密功能的i/o操作對(duì)象包括:

在該字節(jié)碼文件的i/o操作對(duì)象為順序讀寫或者隨機(jī)讀寫i/o操作對(duì)象的情況下,使用自定義安全類對(duì)象替換該i/o操作對(duì)象;

在該字節(jié)碼文件的i/o操作對(duì)象為內(nèi)存映射方式的情況下,標(biāo)記該字節(jié)碼文件的內(nèi)存映射緩沖區(qū)對(duì)象,并對(duì)該內(nèi)存映射緩沖區(qū)對(duì)象進(jìn)行代碼插裝處理。

在本實(shí)施例中,在該字節(jié)碼文件的i/o操作對(duì)象為順序讀寫或者隨機(jī)讀寫i/o操作對(duì)象的情況下,使用自定義安全類對(duì)象替換該i/o操作對(duì)象包括:

創(chuàng)建該i/o操作對(duì)象所對(duì)應(yīng)類的自定義安全子類,使用該自定義安全子類的對(duì)象實(shí)例替換該i/o操作對(duì)象實(shí)例;

創(chuàng)建該i/o操作對(duì)象所對(duì)應(yīng)類同名且處于不同命名空間下的自定義安全類,使用該第二自定義安全類的對(duì)象實(shí)例替換該i/o操作對(duì)象實(shí)例以及該i/o操作對(duì)象的函數(shù)簽名信息。

在本實(shí)施例中,該終端應(yīng)用文件包括:可執(zhí)行文件;終端加載運(yùn)行的資源文件庫(kù),例如安卓android系統(tǒng)可以讀取的可執(zhí)行的文件后綴為.dex的文件。

在本實(shí)施例中提供了一種文件的訪問(wèn)方法,圖2是根據(jù)本發(fā)明實(shí)施例的一種文件的訪問(wèn)方法的流程圖,如圖2所示,該流程包括如下步驟:

步驟s202,獲取終端應(yīng)用對(duì)被保護(hù)文件的訪問(wèn)請(qǐng)求;

步驟s204,調(diào)用該終端應(yīng)用的具有加解密功能的輸入輸出i/o操作對(duì)象檢查該被保護(hù)文件的組鑒別信息,其中,該組鑒別信息是由創(chuàng)建該被保護(hù)文件的終端應(yīng)用設(shè)置的,具有加解密功能的i/o操作對(duì)象通過(guò)以下方式生成:反編譯該終端應(yīng)用的應(yīng)用文件得到字節(jié)碼文件,獲取該字節(jié)碼文件的輸入輸出i/o操作對(duì)象,對(duì)該i/o操作對(duì)象進(jìn)行代碼插裝處理得到具有加解密功能的i/o操作對(duì)象;

步驟s206,依據(jù)該組鑒別信息確定該終端應(yīng)用對(duì)該被保護(hù)文件是否有訪問(wèn)權(quán)限,在該終端應(yīng)用具有該被保護(hù)文件訪問(wèn)權(quán)限的情況下,允許該訪問(wèn)請(qǐng)求,其中,在該組鑒別信息通過(guò)該具有加解密功能的輸入輸出i/o操作對(duì)象的檢測(cè)的情況下,確定該終端應(yīng)用具有該被保護(hù)文件訪問(wèn)權(quán)限。

通過(guò)上述步驟,獲取終端應(yīng)用對(duì)被保護(hù)文件的訪問(wèn)請(qǐng)求,調(diào)用該終端應(yīng)用的具有加解密功能的輸入輸出i/o操作對(duì)象檢查該被保護(hù)文件的組鑒別信息,依據(jù)該組鑒別信息確定該終端應(yīng)用對(duì)該被保護(hù)文件是否有訪問(wèn)權(quán)限,在該終端應(yīng)用具有該被保護(hù)文件訪問(wèn)權(quán)限的情況下,允許該訪問(wèn)請(qǐng)求。被保護(hù)文件的組鑒別信息是創(chuàng)建該文件的終端應(yīng)用設(shè)置的,需要說(shuō)明的是,被保護(hù)文件是可以由終端的第一應(yīng)用創(chuàng)建的,由終端的第二應(yīng)用要求訪問(wèn)該被保護(hù)文件,而 不管是終端的第一應(yīng)用還是終端的第二應(yīng)用都是經(jīng)過(guò)圖1的三步驟處理的應(yīng)用,均包含有具有加解密功能的i/o操作對(duì)象。

在本實(shí)施例中,在確定該終端應(yīng)用具有對(duì)該被保護(hù)文件訪問(wèn)權(quán)限的情況下之后,該終端應(yīng)用依據(jù)組密鑰信息對(duì)該被保護(hù)文件進(jìn)行解密操作,其中,該組密鑰信息是該終端應(yīng)用預(yù)先獲取的。本實(shí)施例對(duì)文件的保護(hù)通過(guò)增加組鑒別信息,實(shí)現(xiàn)密鑰的驗(yàn)證與權(quán)限驗(yàn)證,對(duì)于通過(guò)組鑒別相關(guān)鑒定的,由終端預(yù)先獲取的組密鑰對(duì)文件密文進(jìn)行解密的工作。

在本實(shí)施例中,該組密鑰信息通過(guò)以下之一方式預(yù)先獲?。?/p>

在該終端應(yīng)用所屬的終端與密鑰服務(wù)器連接的情況下,實(shí)時(shí)接收該密鑰服務(wù)器分發(fā)的組密鑰信息;

在該終端應(yīng)用所屬的終端不與該密鑰服務(wù)器連接的情況下,使用本地存儲(chǔ)的組密鑰信息。

在本實(shí)施例中,在允許該訪問(wèn)請(qǐng)求的情況下,該終端應(yīng)用對(duì)該文件的讀寫操作類型包括以下之一:順序讀寫i/o操作,隨機(jī)讀寫i/o操作和內(nèi)存映射i/o操作。

在本實(shí)施例中,該順序讀寫i/o操作包括以下之一:基于字節(jié)流的順序讀寫i/o操作形式,基于編碼數(shù)據(jù)塊的順序讀寫i/o操作形式,壓縮文件的順序讀寫i/o操作形式,基于文件管道的順序讀寫i/o操作形式;

該隨機(jī)讀寫i/o操作包括以下之一:基于字節(jié)流的隨機(jī)讀寫i/o操作形式,基于文件管道的隨機(jī)讀寫i/o操作形式。

在本實(shí)施例中,該內(nèi)存映射i/o操作包括以下之一:

針對(duì)該被保護(hù)文件整體的內(nèi)存映射i/o操作;

針對(duì)該被保護(hù)文件預(yù)設(shè)起始位置與預(yù)設(shè)長(zhǎng)度的內(nèi)存映射i/o操作。

在本實(shí)施例中還提供了一種應(yīng)用文件的處理裝置,應(yīng)用于終端,該裝置用于實(shí)現(xiàn)上述實(shí)施例及優(yōu)選實(shí)施方式,已經(jīng)進(jìn)行過(guò)說(shuō)明的不再贅述。如以下所使用的,術(shù)語(yǔ)“模塊”可以實(shí)現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管以下實(shí)施例所描述的裝置較佳地以軟件來(lái)實(shí)現(xiàn),但是硬件,或者軟件和硬件的組合的實(shí)現(xiàn)也是可能并被構(gòu)想的。

圖3是根據(jù)本發(fā)明實(shí)施例的一種應(yīng)用文件的處理裝置的結(jié)構(gòu)框圖一,如圖3所示,該裝置包括:

反編譯模塊32,用于反編譯終端應(yīng)用文件得到字節(jié)碼文件;

插裝模塊34,與反編譯模塊32連接,用于獲取該字節(jié)碼文件的輸入輸出i/o操作對(duì)象,對(duì)該i/o操作對(duì)象進(jìn)行代碼插裝處理得到具有加解密功能的i/o操作對(duì)象;

回編譯模塊36,與插裝模塊34連接,用于對(duì)包含有該具有加解密功能的i/o操作對(duì)象的字節(jié)碼文件進(jìn)行回編譯。

圖4是根據(jù)本發(fā)明實(shí)施例的一種應(yīng)用文件的處理裝置的結(jié)構(gòu)框圖二,如圖4所示,該插裝模塊34包括:

替換單元42,用于在該字節(jié)碼文件的i/o操作對(duì)象為順序讀寫或者隨機(jī)讀寫i/o操作對(duì)象的情況下,使用自定義安全類對(duì)象替換該i/o操作對(duì)象;

標(biāo)記單元44,用于在該字節(jié)碼文件的i/o操作對(duì)象為內(nèi)存映射方式的情況下,標(biāo)記該字節(jié)碼文件的內(nèi)存映射緩沖區(qū)對(duì)象,并對(duì)該內(nèi)存映射緩沖區(qū)對(duì)象進(jìn)行代碼插裝處理。

圖5是根據(jù)本發(fā)明實(shí)施例的一種文件的訪問(wèn)裝置的結(jié)構(gòu)框圖,如圖5所示,該裝置包括:

獲取模塊52,用于獲取終端應(yīng)用對(duì)被保護(hù)文件的訪問(wèn)請(qǐng)求;

檢查模塊54,與獲取模塊52連接,用于調(diào)用該終端應(yīng)用的具有加解密功能的輸入輸出i/o操作對(duì)象檢查該被保護(hù)文件的組鑒別信息,其中,該組鑒別信息是由創(chuàng)建該被保護(hù)文件的終端應(yīng)用設(shè)置的,具有加解密功能的i/o操作對(duì)象通過(guò)以下方式生成:反編譯該終端應(yīng)用的應(yīng)用文件得到字節(jié)碼文件,獲取該字節(jié)碼文件的輸入輸出i/o操作對(duì)象,對(duì)該i/o操作對(duì)象進(jìn)行代碼插裝處理得到具有加解密功能的i/o操作對(duì)象;

訪問(wèn)模塊56,與檢查模塊54連接,用于依據(jù)該組鑒別信息確定該終端應(yīng)用對(duì)該被保護(hù)文件是否有訪問(wèn)權(quán)限,在確定該終端應(yīng)用具有對(duì)該被保護(hù)文件訪問(wèn)權(quán)限的情況下,允許該訪問(wèn)請(qǐng)求,其中,在該組鑒別信息通過(guò)該具有加解密功能的輸入輸出i/o操作對(duì)象的檢測(cè)的情況下,確定該終端應(yīng)用具有該被保護(hù)文件訪問(wèn)權(quán)限。

在本實(shí)施例中,該訪問(wèn)模塊56還用于在確定該終端應(yīng)用具有對(duì)該被保護(hù)文件訪問(wèn)權(quán)限的情況下之后,該終端應(yīng)用依據(jù)組密鑰信息對(duì)該被保護(hù)文件進(jìn)行解密操作,其中,該組密鑰信息是該終端應(yīng)用預(yù)先獲取的。

需要說(shuō)明的是,上述各個(gè)模塊是可以通過(guò)軟件或硬件來(lái)實(shí)現(xiàn)的,對(duì)于后者,可以通過(guò)以下方式實(shí)現(xiàn),但不限于此:上述各個(gè)模塊均位于同一處理器中;或者,上述各個(gè)模塊分別位于不同的處理器中。

下面結(jié)合本發(fā)明優(yōu)選實(shí)施例進(jìn)行詳細(xì)說(shuō)明。

本發(fā)明優(yōu)選實(shí)施例提供了一種面向分組訪問(wèn)控制的、基于應(yīng)用層實(shí)現(xiàn)的安卓android文件實(shí)時(shí)加解密方式,能夠讀取用戶定義的動(dòng)態(tài)訪問(wèn)控制策略,并能在無(wú)需獲得超級(jí)用戶root權(quán)限或?qū)ndroid底層系統(tǒng)進(jìn)行更改的情況下,在android應(yīng)用層實(shí)現(xiàn)文件的實(shí)時(shí)加解密,以提供android文件的機(jī)密性。即,在byod應(yīng)用環(huán)境下,需要實(shí)時(shí)加解密技術(shù)滿足以下兩個(gè)方面的要求:一方面要求應(yīng)用能夠正確識(shí)別企業(yè)數(shù)據(jù)和用戶私有數(shù)據(jù),并能夠基于用戶組進(jìn)行訪問(wèn)控制和數(shù)據(jù)保護(hù);另一方面要求無(wú)需對(duì)底層android系統(tǒng)進(jìn)行更改及獲取系統(tǒng)root權(quán)限,以增強(qiáng)實(shí)時(shí)加解密技術(shù)的終端適應(yīng)性及部署靈活性。

為了實(shí)現(xiàn)上述目的,本發(fā)明優(yōu)選實(shí)施例的技術(shù)解決方案是:由于android應(yīng)用為實(shí)現(xiàn)對(duì)文件的讀寫訪問(wèn),需調(diào)用java框架提供的文件i/o應(yīng)用程序編程接口(applicationprogramming interface,簡(jiǎn)稱為api),那么通過(guò)字節(jié)碼靜態(tài)分析技術(shù),監(jiān)控應(yīng)用中所有的文件訪問(wèn)對(duì)象,并插入自定義處理函數(shù),實(shí)現(xiàn)分組訪問(wèn)控制策略的讀取以及實(shí)時(shí)的加解密功能,從而實(shí)現(xiàn)基于應(yīng)用分組的文件訪問(wèn)控制和機(jī)密性保護(hù)。

本發(fā)明優(yōu)選實(shí)施例首先對(duì)android應(yīng)用進(jìn)行反編譯獲取其字節(jié)碼,然后識(shí)別android框架提供的java層文件i/o接口api。由于android系統(tǒng)的文件i/o操作可以是順序讀寫或隨機(jī)讀寫等不同的類型,因而需要對(duì)于不同的文件i/o類型采用相應(yīng)的代碼插裝,并調(diào)用加解密模塊,實(shí)現(xiàn)android文件的實(shí)時(shí)加解密。特別地,為了實(shí)現(xiàn)基于應(yīng)用分組的文件訪問(wèn)控制,本發(fā)明采用了動(dòng)態(tài)組密鑰和組鑒別信息相結(jié)合的方式,將應(yīng)用分組對(duì)文件的訪問(wèn)權(quán)限控制問(wèn)題轉(zhuǎn)換為應(yīng)用分組能否對(duì)文件進(jìn)行正確加解密問(wèn)題,從而在實(shí)現(xiàn)文件實(shí)時(shí)加解密的同時(shí),能夠?qū)崿F(xiàn)byod環(huán)境下所要求的基于分組的文件訪問(wèn)控制要求。另外,文件的加解密過(guò)程在特定的android應(yīng)用內(nèi)部實(shí)現(xiàn),因而不受android版本及android系統(tǒng)定制化的限制,也無(wú)需修改底層android系統(tǒng)和獲取系統(tǒng)root權(quán)限,靈活性好;同時(shí),文件的加解密過(guò)程在內(nèi)存中實(shí)時(shí)完成,設(shè)備中不會(huì)存儲(chǔ)任何明文數(shù)據(jù),安全性好。

對(duì)于待實(shí)施訪問(wèn)控制的android應(yīng)用安卓安裝包(androidpackage,簡(jiǎn)稱為apk)文件進(jìn)行插裝操作,插裝方法如下:

步驟一,對(duì)待實(shí)施訪問(wèn)控制的android應(yīng)用apk文件進(jìn)行反編譯,獲取該應(yīng)用的字節(jié)碼文件。

步驟二,為生成的字節(jié)碼文件構(gòu)造基于類的字節(jié)碼文件樹,樹中的每個(gè)節(jié)點(diǎn)代表一個(gè)類文件。

步驟三,對(duì)字節(jié)碼文件樹進(jìn)行分析,獲取所有的文件i/o操作對(duì)象和文件內(nèi)存映射緩沖區(qū)對(duì)象。

步驟四,對(duì)文件i/o操作對(duì)象進(jìn)行判斷,若i/o對(duì)象為順序讀寫或隨機(jī)讀寫i/o對(duì)象,則利用編程語(yǔ)言的向上轉(zhuǎn)型特性,通過(guò)代碼插裝方法,使用自定義安全類對(duì)象替代原i/o對(duì)象;若i/o操作為內(nèi)存映射方式,則對(duì)該內(nèi)存映射緩沖區(qū)對(duì)象進(jìn)行標(biāo)記,并代碼插裝以實(shí)現(xiàn)對(duì)于所有針對(duì)該內(nèi)存映射緩沖區(qū)對(duì)象操作的安全處理。

步驟五,對(duì)于插裝后的字節(jié)碼文件進(jìn)行回編譯,并進(jìn)行企業(yè)簽名。

在已實(shí)施訪問(wèn)控制插裝的android應(yīng)用執(zhí)行過(guò)程中,訪問(wèn)被保護(hù)文件的過(guò)程如下:

步驟一,android應(yīng)用根據(jù)分組訪問(wèn)控制策略,基于用戶身份與應(yīng)用指紋的映射關(guān)系,動(dòng)態(tài)獲取密鑰管理器分發(fā)的組密鑰信息。

步驟二,android應(yīng)用創(chuàng)建待保護(hù)文件時(shí),應(yīng)用中具有加解密功能的i/o對(duì)象在文件寫入本地存儲(chǔ)時(shí)在文件尾部創(chuàng)建組鑒別信息,并調(diào)用密碼模塊對(duì)文件進(jìn)行加密,生成密文存儲(chǔ)。

步驟三,android應(yīng)用訪問(wèn)被保護(hù)文件進(jìn)行讀寫操作時(shí),應(yīng)用中具有加解密功能的i/o對(duì)象檢查被保護(hù)文件尾部的組鑒別信息,以判斷該應(yīng)用是否具有對(duì)被保護(hù)文件的訪問(wèn)權(quán)限。

步驟四,若步驟三中判定android應(yīng)用具有對(duì)被保護(hù)文件的讀寫權(quán)限,則應(yīng)用中具有加解密功能的i/o對(duì)象調(diào)用密碼模塊對(duì)被保護(hù)文件進(jìn)行加解密操作,讀操作時(shí)返回明文文件,寫操作時(shí)將密文文件寫入本地存儲(chǔ),即,若組鑒別信息正確,則組密鑰可以確保讀寫操作成功。

步驟五,若步驟三中判定android應(yīng)用不具有對(duì)被保護(hù)文件的讀寫權(quán)限,則拒絕打開該文件。

進(jìn)一步地,上述方法中,所使用的密碼模塊可以是任意分組密碼。

圖6是根據(jù)本發(fā)明優(yōu)選實(shí)施例的android應(yīng)用代碼插裝過(guò)程的示意圖,如圖6所示,本發(fā)明優(yōu)選實(shí)施例為實(shí)現(xiàn)實(shí)時(shí)加解密,對(duì)android應(yīng)用代碼進(jìn)行代碼插裝的過(guò)程如下:

s611:文件實(shí)時(shí)加解密程序601首先調(diào)用apk反編譯模塊602(相當(dāng)于上述實(shí)施例的反編譯模塊32)對(duì)待實(shí)施訪問(wèn)控制操作的android應(yīng)用apk文件進(jìn)行反編譯,以生成字節(jié)碼文件;

s612:文件實(shí)時(shí)加解密程序601調(diào)用字節(jié)碼分析模塊602對(duì)生成的字節(jié)碼文件進(jìn)行靜態(tài)分析,構(gòu)造字節(jié)碼文件樹,樹中的每個(gè)節(jié)點(diǎn)代表一個(gè)類文件;

s613:i/o操作類型判斷模塊603對(duì)字節(jié)碼文件樹進(jìn)行遍歷,標(biāo)識(shí)并記錄字節(jié)碼文件樹中所有的文件i/o操作,并對(duì)文件i/o操作類型進(jìn)行判斷,若i/o操作類型為順序讀寫或隨機(jī)讀寫i/o操作,則執(zhí)行s614,否則i/o操作類型為內(nèi)存映射i/o操作,執(zhí)行s617;

s614:對(duì)于順序/隨機(jī)讀寫i/o操作,調(diào)用順序/隨機(jī)讀寫i/o對(duì)象處理模塊605,以執(zhí)行s615;

s615:順序/隨機(jī)讀寫i/o處理模塊605(相當(dāng)于上述實(shí)施例的替換單元42)將對(duì)于原i/o對(duì)象的改寫為自定義安全類對(duì)象,其中,自定義安全類包括繼承自原i/o對(duì)象所對(duì)應(yīng)類的自定義安全子類和與原i/o對(duì)象所對(duì)應(yīng)類同名、但屬于不同命名空間下的自定義安全類兩種類型;

s616:順序/隨機(jī)讀寫i/o處理模塊605在代碼插裝操作結(jié)束后,重構(gòu)字節(jié)碼文件樹;

s617:對(duì)于內(nèi)存映射i/o操作,調(diào)用文件內(nèi)存映射緩沖區(qū)對(duì)象處理模塊606(相當(dāng)于上述實(shí)施例的標(biāo)記單元44),以執(zhí)行s618和619;

s618:文件內(nèi)存映射緩沖區(qū)對(duì)象處理模塊606對(duì)文件i/o操作創(chuàng)建的內(nèi)存映射緩沖區(qū)對(duì)象進(jìn)行標(biāo)記,并將對(duì)象信息保存在鏈表中;

s619:對(duì)字節(jié)碼文件樹進(jìn)行遍歷,對(duì)于所有可能針對(duì)內(nèi)存映射緩沖區(qū)對(duì)象的操作進(jìn)行安全代碼插裝,以便在運(yùn)行時(shí)追蹤并根據(jù)鏈表中的對(duì)象信息判斷該操作的對(duì)象是否確為內(nèi)存映射緩沖區(qū)對(duì)象,若是則執(zhí)行安全控制代碼,否則不進(jìn)行任何處理;

s620:文件內(nèi)存映射緩沖區(qū)對(duì)象處理模塊606在代碼插裝操作結(jié)束后,重構(gòu)字節(jié)碼文件樹;

s621:執(zhí)行apk編譯模塊602,對(duì)重構(gòu)的字節(jié)碼文件進(jìn)行回編譯,并進(jìn)行簽名;

s622:返回經(jīng)過(guò)代碼插裝、能夠?qū)崿F(xiàn)應(yīng)用層文件實(shí)時(shí)加解密功能的android應(yīng)用apk。

圖7是根據(jù)本發(fā)明實(shí)施例的android應(yīng)用訪問(wèn)被保護(hù)文件的示意圖,如圖7所示,本發(fā)明優(yōu)選實(shí)施例的已實(shí)施訪問(wèn)控制插裝操作的android應(yīng)用訪問(wèn)被保護(hù)文件時(shí)的工作過(guò)程如下:

s701:已實(shí)施訪問(wèn)控制插裝操作的android應(yīng)用對(duì)于被保護(hù)文件執(zhí)行讀操作;

s702:android應(yīng)用首先動(dòng)態(tài)獲取組密鑰信息,該組密鑰信息既可以是在線時(shí)由密鑰管理器分發(fā)的,也可以是離線時(shí)本地存儲(chǔ)的;

s703:打開文件時(shí)檢查被保護(hù)文件尾部的組鑒別信息,以判斷是否具有對(duì)該文件的訪問(wèn)權(quán)限;

s704:android應(yīng)用通過(guò)組鑒別信息判斷是否具有對(duì)被保護(hù)文件的訪問(wèn)權(quán)限,若是則執(zhí)行s705,否則執(zhí)行s708;

s705:若android應(yīng)用具有對(duì)文件的訪問(wèn)權(quán)限,則獲取待讀取的密文文件;

s706:調(diào)用密碼模塊對(duì)s705獲得的密文數(shù)據(jù)進(jìn)行解密;

s707:返回恢復(fù)的明文數(shù)據(jù)供android應(yīng)用使用;

s708:若android應(yīng)用沒(méi)有對(duì)文件的訪問(wèn)權(quán)限,則拒絕對(duì)被保護(hù)文件的訪問(wèn)。

圖8是根據(jù)本發(fā)明優(yōu)選實(shí)施例的在byod環(huán)境中一種應(yīng)用實(shí)例的示意圖,如圖8所示,

該byod環(huán)境下存在兩個(gè)安全組801和804,其中安全組801包含android應(yīng)用802和android應(yīng)用803兩個(gè)成員應(yīng)用,安全組804僅包含android應(yīng)用805。加密的文件807采用安全組801的組密鑰進(jìn)行加密,則安全組801中的應(yīng)用可以通過(guò)文件實(shí)時(shí)加解密模塊806訪問(wèn)加密的文件807,而安全組804中的應(yīng)用則被拒絕訪問(wèn)。

s811:安全組801中的android應(yīng)用802通過(guò)文件讀寫i/o請(qǐng)求試圖讀寫加密文件807中的數(shù)據(jù);

s812:文件實(shí)時(shí)加解密模塊806根據(jù)組鑒別信息判斷android應(yīng)用802具有對(duì)加密文件807的訪問(wèn)權(quán)限,通過(guò)s819的jni接口調(diào)用密碼模塊808對(duì)讀操作的密文數(shù)據(jù)進(jìn)行解密后返回明文數(shù)據(jù);

s813:安全組801中的android應(yīng)用803通過(guò)文件讀寫i/o請(qǐng)求試圖讀寫加密文件807中的數(shù)據(jù);

s814:文件實(shí)時(shí)加解密模塊806根據(jù)組鑒別信息判斷android應(yīng)用803具有對(duì)加密文件807的訪問(wèn)權(quán)限,通過(guò)s819的jni接口調(diào)用密碼模塊808對(duì)讀操作的密文數(shù)據(jù)進(jìn)行解密后返回明文數(shù)據(jù);

s815:安全組804中的android應(yīng)用805通過(guò)文件讀寫i/o請(qǐng)求試圖讀寫加密文件807中的數(shù)據(jù);

s816:文件實(shí)時(shí)加解密模塊806根據(jù)組鑒別信息判斷android應(yīng)用802沒(méi)有對(duì)加密文件807的訪問(wèn)權(quán)限,拒絕該應(yīng)用對(duì)加密文件807的訪問(wèn);

s817:若android應(yīng)用具有對(duì)加密文件807的訪問(wèn)權(quán)限,則文件實(shí)時(shí)加解密模塊806首先通過(guò)s819的jni接口調(diào)用密碼模塊808對(duì)寫操作的明文數(shù)據(jù)進(jìn)行加密,然后將密文數(shù)據(jù)寫入加密文件807;

s818:若android應(yīng)用具有對(duì)加密文件807的訪問(wèn)權(quán)限,則文件實(shí)時(shí)加解密模塊806讀取加密文件807中的密文數(shù)據(jù),然后通過(guò)s819的jni接口調(diào)用密碼模塊808對(duì)密文數(shù)據(jù)進(jìn)行解密恢復(fù)明文數(shù)據(jù);

s819:java層代碼通過(guò)jni接口調(diào)用native層的密碼模塊實(shí)現(xiàn)加解密操作。

圖9是根據(jù)本發(fā)明優(yōu)選實(shí)施例在android應(yīng)用變更分組時(shí)執(zhí)行文件訪問(wèn)控制的應(yīng)用實(shí)例的示意圖,如圖9所示:

在該應(yīng)用實(shí)例場(chǎng)景中存在android應(yīng)用901、組密鑰管理器902和兩個(gè)安全組:安全組a903和安全組b904,密文文件a906采用安全組a903的組密鑰進(jìn)行加密,密文文件b907采用安全組b904的組密鑰進(jìn)行加密。初始時(shí),組密鑰管理器902向android應(yīng)用901授予安全組a的組密鑰,即,android應(yīng)用901成為安全組a的成員應(yīng)用,可以通過(guò)文件實(shí)時(shí)加解密模塊905訪問(wèn)密文文件906,而對(duì)密文文件907的訪問(wèn)被拒絕;隨后,組密鑰管理器902向android應(yīng)用901授予安全組b的組密鑰,也意味著撤銷了android應(yīng)用901的安全組a的組密鑰,即,android應(yīng)用901成為安全組b的成員應(yīng)用,可以通過(guò)文件實(shí)時(shí)加解密模塊905訪問(wèn)密文文件907,而對(duì)密文文件906的訪問(wèn)被拒絕。

s911:初始時(shí),組密鑰管理器902向android應(yīng)用901授予安全組a的組密鑰;

s912:android應(yīng)用901獲得了安全組a的組密鑰,意味著該應(yīng)用成為安全組a903的成員應(yīng)用;

s913:安全組a903中的android應(yīng)用901通過(guò)文件讀寫i/o請(qǐng)求試圖讀寫密文文件906中的數(shù)據(jù);

s914:若文件實(shí)時(shí)加解密模塊905根據(jù)組鑒別信息判斷android應(yīng)用901具有對(duì)密文文件906的訪問(wèn)權(quán)限,則文件實(shí)時(shí)加解密模塊905首先調(diào)用密碼模塊對(duì)寫操作的明文數(shù)據(jù)進(jìn)行加密,然后將密文數(shù)據(jù)寫入密文文件906;

s915:若文件實(shí)時(shí)加解密模塊905根據(jù)組鑒別信息判斷android應(yīng)用901具有對(duì)密文文件906的訪問(wèn)權(quán)限,則文件實(shí)時(shí)加解密模塊905讀取密文文件906中的密文數(shù)據(jù),然后調(diào)用密碼模塊對(duì)密文數(shù)據(jù)進(jìn)行解密恢復(fù)明文數(shù)據(jù);

s916:文件實(shí)時(shí)加解密模塊905在判斷android應(yīng)用901具有對(duì)密文文件906訪問(wèn)權(quán)限的前提下,將s915中恢復(fù)的明文數(shù)據(jù)返回給android應(yīng)用901;

s917:安全組a903中的android應(yīng)用901通過(guò)文件讀寫i/o請(qǐng)求試圖讀寫密文文件907 中的數(shù)據(jù);

s918:文件實(shí)時(shí)加解密模塊905根據(jù)組鑒別信息判斷android應(yīng)用901沒(méi)有對(duì)密文文件907的訪問(wèn)權(quán)限,拒絕該應(yīng)用對(duì)密文文件907的訪問(wèn);

s921:隨后,組密鑰管理器902向android應(yīng)用901授予安全組b的組密鑰,即,撤銷android應(yīng)用901當(dāng)前擁有的安全組a的組密鑰;

s922:android應(yīng)用901獲得了安全組b的組密鑰,意味著該應(yīng)用成為安全組b904的成員應(yīng)用;

s923:安全組b904中的android應(yīng)用901通過(guò)文件讀寫i/o請(qǐng)求試圖讀寫密文文件906中的數(shù)據(jù);

s924:文件實(shí)時(shí)加解密模塊905根據(jù)組鑒別信息判斷android應(yīng)用901沒(méi)有對(duì)密文文件906的訪問(wèn)權(quán)限,拒絕該應(yīng)用對(duì)密文文件906的訪問(wèn);

s925:安全組b904中的android應(yīng)用901通過(guò)文件讀寫i/o請(qǐng)求試圖讀寫密文文件907中的數(shù)據(jù);

s926:若文件實(shí)時(shí)加解密模塊905根據(jù)組鑒別信息判斷android應(yīng)用901具有對(duì)密文文件907的訪問(wèn)權(quán)限,則文件實(shí)時(shí)加解密模塊905首先調(diào)用密碼模塊對(duì)寫操作的明文數(shù)據(jù)進(jìn)行加密,然后將密文數(shù)據(jù)寫入密文文件907;

s927:若文件實(shí)時(shí)加解密模塊905根據(jù)組鑒別信息判斷android應(yīng)用901具有對(duì)密文文件907的訪問(wèn)權(quán)限,則文件實(shí)時(shí)加解密模塊905讀取密文文件907中的密文數(shù)據(jù),然后調(diào)用密碼模塊對(duì)密文數(shù)據(jù)進(jìn)行解密恢復(fù)明文數(shù)據(jù);

s928:文件實(shí)時(shí)加解密模塊905在判斷android應(yīng)用901具有對(duì)密文文件907訪問(wèn)權(quán)限的前提下,將s927恢復(fù)的明文數(shù)據(jù)返回給android應(yīng)用901。

與相關(guān)技術(shù)相比,本發(fā)明優(yōu)選實(shí)施例提出了一種面向分組訪問(wèn)控制的、基于android應(yīng)用層實(shí)現(xiàn)的文件實(shí)時(shí)加解密方法,本發(fā)明優(yōu)選實(shí)施例的積極效果為:

(1)實(shí)現(xiàn)與部署方式靈活

本發(fā)明優(yōu)選實(shí)施例的android應(yīng)用層文件實(shí)時(shí)加解密方法在應(yīng)用層實(shí)現(xiàn),采用代碼插裝技術(shù)實(shí)現(xiàn)對(duì)待保護(hù)文件的i/o操作控制及加解密功能,而無(wú)須修改底層操作系統(tǒng)或?qū)ο到y(tǒng)進(jìn)行root操作,因而實(shí)現(xiàn)及部署方式更為靈活,易于推廣。

(2)面向分組的文件訪問(wèn)控制與機(jī)密性保護(hù)

本發(fā)明優(yōu)選實(shí)施例的android應(yīng)用層文件實(shí)時(shí)加解密方法可以根據(jù)安全策略定義,通過(guò)文件加解密操作在為被保護(hù)文件提供機(jī)密性的同時(shí),實(shí)現(xiàn)面向分組的文件訪問(wèn)控制功能。文件的加解密過(guò)程在特定的android應(yīng)用內(nèi)部實(shí)現(xiàn),根據(jù)動(dòng)態(tài)組密鑰和組鑒別信息,實(shí)現(xiàn)android應(yīng)用組對(duì)特定文件的訪問(wèn)控制功能,因而更加適合于byod環(huán)境下企業(yè)應(yīng)用與個(gè)人應(yīng)用共存 時(shí)的android文件加解密。

本發(fā)明優(yōu)選實(shí)施例采用的上述策略,可以有效地實(shí)現(xiàn)針對(duì)android應(yīng)用組的文件實(shí)時(shí)加解密,在不修改android底層系統(tǒng)的前提下,提供了android文件的機(jī)密性。

通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。

本發(fā)明的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)。可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:

s1,獲取終端應(yīng)用對(duì)被保護(hù)文件的訪問(wèn)請(qǐng)求;

s2,調(diào)用該終端應(yīng)用的具有加解密功能的輸入輸出i/o操作對(duì)象檢查該被保護(hù)文件的組鑒別信息,其中,該組鑒別信息是由創(chuàng)建該被保護(hù)文件的終端應(yīng)用設(shè)置的,具有加解密功能的i/o操作對(duì)象通過(guò)以下方式生成:反編譯該終端應(yīng)用的應(yīng)用文件得到字節(jié)碼文件,獲取該字節(jié)碼文件的輸入輸出i/o操作對(duì)象,對(duì)該i/o操作對(duì)象進(jìn)行代碼插裝處理得到具有加解密功能的i/o操作對(duì)象;

s3,依據(jù)該組鑒別信息確定該終端應(yīng)用對(duì)該被保護(hù)文件是否有訪問(wèn)權(quán)限,在該終端應(yīng)用具有該被保護(hù)文件訪問(wèn)權(quán)限的情況下,允許該訪問(wèn)請(qǐng)求,其中,在該組鑒別信息通過(guò)該具有加解密功能的輸入輸出i/o操作對(duì)象的檢測(cè)的情況下,確定該終端應(yīng)用具有該被保護(hù)文件訪問(wèn)權(quán)限。

可選地,存儲(chǔ)介質(zhì)還被設(shè)置為存儲(chǔ)用于執(zhí)行上述實(shí)施例的方法步驟的程序代碼。

可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以包括但不限于:u盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例及可選實(shí)施方式中所描述的示例,本實(shí)施例在此不再贅述。

顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。

以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
双峰县| 广平县| 沁水县| 扎赉特旗| 遂川县| 突泉县| 连平县| 昌江| 望谟县| 湄潭县| 扬中市| 吉木萨尔县| 搜索| 喀喇沁旗| 嘉鱼县| 龙山县| 博野县| 永康市| 年辖:市辖区| 乌兰县| 南澳县| 包头市| 开原市| 兴国县| 郸城县| 通化县| 潞西市| 海宁市| 宝兴县| 翼城县| 鄱阳县| 襄城县| 特克斯县| 宁波市| 运城市| 宁明县| 偏关县| 遂昌县| 云梦县| 广东省| 方山县|