国产精品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>

      一種Android環(huán)境下的密鑰保護(hù)方法和系統(tǒng)與流程

      文檔序號(hào):11865233閱讀:328來源:國知局
      一種Android環(huán)境下的密鑰保護(hù)方法和系統(tǒng)與流程

      本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種Android環(huán)境下的密鑰保護(hù)方法和系統(tǒng)。



      背景技術(shù):

      隨著科學(xué)技術(shù)的快速發(fā)展,電腦、互聯(lián)網(wǎng)、智能手機(jī)等電子設(shè)備已經(jīng)隨處可得,電視、電影、音樂、圖片等數(shù)字化信息的廣泛傳播,智能卡、移動(dòng)令牌、無線傳感器網(wǎng)絡(luò)等設(shè)備的大量使用,使得人們對(duì)秘密信息訪問的途徑越來越多,從而密碼算法的使用環(huán)境也不再單純和可信。例如,用戶在自己的機(jī)器上運(yùn)行一個(gè)數(shù)字媒體的播放軟件,這個(gè)軟件對(duì)加密過的數(shù)字信息進(jìn)行解密后播放,那么這些軟件的運(yùn)行環(huán)境很有可能是不安全的,因?yàn)檐浖慕饷苓^程對(duì)于攻擊者(甚至可能就是用戶本身)是可見的,他們可以很容易就獲得密鑰信息;同樣,無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)等通常配置在無人監(jiān)管的場所,因此,對(duì)這些節(jié)點(diǎn)內(nèi)部運(yùn)行的觀測、改動(dòng)等都是有效的攻擊手段。所以,針對(duì)運(yùn)行終端的攻擊非常的直接,這樣的攻擊被稱為白盒攻擊。

      白盒攻擊最早由Chow等人在2002年提出,這里的“白盒”與程序檢測中的“白盒測試”所指的環(huán)境有相通之處,在白盒攻擊中,對(duì)設(shè)備終端(即應(yīng)用程序的運(yùn)行的環(huán)境)擁有完全的控制能力,與軟件的執(zhí)行者擁有同等的權(quán)利。攻擊者可以追蹤程序運(yùn)行的二進(jìn)制、讀取內(nèi)存中的密鑰、觀察程序執(zhí)行的中間結(jié)果、任意的靜態(tài)分析以及改變子計(jì)算的結(jié)果等。攻擊者可以在終端做任何的操作,相比傳統(tǒng)的黑盒模型,“白盒”對(duì)攻擊者的能力只有很少的限制。

      白盒攻擊是在不可信任終端環(huán)境下產(chǎn)生的更高級(jí)的安全威脅。白盒攻擊可以看作是man-at-the-end攻擊,目前常見的直接白盒攻擊有:OllyDbg、IDA Pro、HexRays、HIEW、VMware等,以及近年來提出的時(shí)間分析、功耗分析、插入錯(cuò)誤分析等旁路攻擊(side-channel attack)。傳統(tǒng)的密碼算法在白盒攻擊環(huán)境中不能安全使用,顯得極度脆弱。所以,為了保證在不可信任終端密碼算法的加密、解密、認(rèn)證等功能的正常使用,構(gòu)造出能夠在白盒攻擊環(huán)境下保證安全性的密碼算法是信息安全領(lǐng)域面臨的一個(gè)重大課題。

      白盒密碼指的是能夠抵抗白盒攻擊的密碼算法及其實(shí)現(xiàn)。白盒密碼包括了已有密碼算法的白盒實(shí)現(xiàn)和白盒密碼算法。已有密碼算法的白盒實(shí)現(xiàn)是指,將已知的密碼算法通過白盒密碼技術(shù)進(jìn)行設(shè)計(jì),使得在白盒攻擊環(huán)境下,不改變原算法的功能但原算法所希望保證的安全性不受破壞。例如,加密算法希望保證其密鑰不會(huì)泄露、簽名算法希望其簽名不會(huì)被偽造等。而白盒密碼算法其實(shí)是指一種新的密碼算法,它與傳統(tǒng)的密碼算法不同的是,它能夠抵抗白盒攻擊環(huán)境下敵手的攻擊,其本身是一個(gè)新的算法,而不是在已存在的算法上的進(jìn)行白盒安全實(shí)現(xiàn)的設(shè)計(jì)。

      目前的白盒密碼技術(shù)實(shí)例大部分為已知密碼算法的白盒實(shí)現(xiàn),例如白盒AES實(shí)現(xiàn)、白盒DES實(shí)現(xiàn),設(shè)計(jì)者們試圖利用混淆的方式構(gòu)造查找表,并通過查表的方式來完成程序的執(zhí)行,使得白盒攻擊者即使能夠觀察到整個(gè)查找表的查詢,也無法比窮舉搜索更快地獲得密鑰信息,以此抵抗白盒攻擊。但是事實(shí)證明這個(gè)方法的效果目前并不令人滿意。

      現(xiàn)有的部分Android密鑰保護(hù)系統(tǒng)直接將個(gè)人電腦密鑰保護(hù)系統(tǒng)的思想應(yīng)用在移動(dòng)設(shè)備上,忽略了平臺(tái)的差異;移動(dòng)設(shè)備主要強(qiáng)調(diào)用戶體驗(yàn),不僅僅是功能實(shí)現(xiàn),這些密鑰保護(hù)系統(tǒng)頻繁要求用戶輸入密碼,選擇加密、解密文件,降低了設(shè)備的便利程度。另一方面,現(xiàn)有的透明加解密系統(tǒng),雖然降低了對(duì)用戶操作習(xí)慣的影響,但是,安全保護(hù)工作不全面,其存在的不足包括:

      (一)由于權(quán)限問題不能保護(hù)特定目錄,不能保護(hù)SD卡上的文件(而SD卡正是用戶數(shù)據(jù)的重要存放位置);

      (二)只能保護(hù)某種指定格式的文件;

      (三)由于與系統(tǒng)結(jié)合度低,極易受攻擊;

      (四)兼容性和擴(kuò)展性低,只能支持部分特定版本的系統(tǒng)。



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

      為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供一種Android環(huán)境下的密鑰保護(hù)方法和系統(tǒng),利用堆棧式文件系統(tǒng)實(shí)現(xiàn)技術(shù),采用結(jié)合鎖頻界面盡可能減少對(duì)用戶操作的影響,緊密結(jié)合操作系統(tǒng)本身,實(shí)現(xiàn)對(duì)外受阻、對(duì)內(nèi)無礙的加解密保護(hù)。

      本發(fā)明提供的技術(shù)方案是:

      一種Android環(huán)境下的密鑰保護(hù)方法,通過Android平臺(tái)的密鑰透明加解密操作實(shí)現(xiàn)對(duì)Android環(huán)境下的文件進(jìn)行保護(hù),包括以下步驟:

      步驟一、選擇需要保護(hù)的文件所在文件夾的路徑并設(shè)置密碼;

      步驟二、根據(jù)步驟一用戶輸入的路徑和密碼,分別生成加密路徑目錄表和身份驗(yàn)證文件;

      步驟三、掃描加密路徑目錄表,如果是第一次開啟操作系統(tǒng),按照表項(xiàng)將對(duì)受保護(hù)文件進(jìn)行第一次初始化加密,然后進(jìn)行下一步驟;

      在本發(fā)明實(shí)施例中,上述操作通過堆棧式文件系統(tǒng)單元實(shí)施;

      步驟四、當(dāng)用戶觸發(fā)解鎖屏幕事件,則接受用戶輸入的用于鎖屏的密碼短語,對(duì)密碼短語進(jìn)行哈希算法運(yùn)算后與步驟二中產(chǎn)生的身份驗(yàn)證文件進(jìn)行比對(duì);如果不匹配,則解鎖失?。蝗绻ヅ?,則將密碼短語采用Shal算法換算成密鑰,將該密鑰進(jìn)行存儲(chǔ);

      步驟五、當(dāng)用戶訪問文件時(shí),如果操作的文件或目錄在加密路徑目錄表中,當(dāng)用戶發(fā)出寫請(qǐng)求,調(diào)用步驟四所存儲(chǔ)的密鑰對(duì)文件進(jìn)行加密;當(dāng)用戶發(fā)出讀請(qǐng)求,調(diào)用密鑰對(duì)文件進(jìn)行解密;

      步驟六、當(dāng)用戶觸發(fā)鎖定屏幕事件,則清除步驟四所存儲(chǔ)的密鑰并鎖屏。

      通過以上步驟實(shí)現(xiàn)對(duì)Android環(huán)境下的文件進(jìn)行保護(hù)。

      作為本發(fā)明的一種Android平臺(tái)的密鑰透明加解密方法的進(jìn)一步優(yōu)化的方案,所述哈希算法為MD5哈希算法。

      根據(jù)上述Android環(huán)境下的密鑰保護(hù)方法實(shí)現(xiàn)的密鑰保護(hù)系統(tǒng),包括用戶模塊和內(nèi)核模塊,用戶模塊包括配置單元和鎖屏單元,內(nèi)核模塊包括密鑰管理器單元和堆棧式文件系統(tǒng)單元;實(shí)現(xiàn)Android平臺(tái)的密鑰透明加解密操作;其中,

      配置單元,用于接收用戶制定策略,策略包括密碼、身份驗(yàn)證文件、加密目錄路徑表,該密碼經(jīng)Shal算法生成第一密鑰進(jìn)行存儲(chǔ);身份驗(yàn)證文件輸入至密鑰管理器單元,加密目錄路徑表輸入至堆棧式文件系統(tǒng)單元;

      鎖屏單元,將用戶輸入的密碼短語輸出至密鑰管理器單元;

      密鑰管理器單元,用于將密碼短語采用哈希算法運(yùn)算后與身份驗(yàn)證文件進(jìn)行匹配:若不匹配則解鎖失敗;若匹配一致則在解鎖屏幕的同時(shí),將密碼短語采用Shal算法換算成第二密鑰進(jìn)行存儲(chǔ),當(dāng)鎖屏單元鎖屏?xí)r,清除第二密鑰;

      堆棧式文件系統(tǒng)單元,當(dāng)?shù)谝淮伍_啟操作系統(tǒng),接收到加密目錄路徑表時(shí)調(diào)用第一密鑰對(duì)加密目錄路徑表所對(duì)應(yīng)的目錄里的文件進(jìn)行初始化加密;并覆蓋在操作系統(tǒng)支持并掛載的所有文件系統(tǒng)之上,當(dāng)用戶發(fā)出讀請(qǐng)求時(shí)調(diào)用密鑰管理器中的第二密鑰,對(duì)文件進(jìn)行解密;當(dāng)用戶發(fā)出寫請(qǐng)求時(shí)調(diào)用密鑰管理器中的第二密鑰,對(duì)文件進(jìn)行加密。

      作為本發(fā)明的密鑰保護(hù)系統(tǒng)的進(jìn)一步優(yōu)化的方案,所述用戶制定的策略還包括是否啟用密鑰保護(hù)系統(tǒng),是否啟用加密和解密操作。

      作為本發(fā)明的密鑰保護(hù)系統(tǒng)的進(jìn)一步優(yōu)化的方案,所述哈希算法為MD5哈希算法。

      與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:

      本發(fā)明提供一種Android環(huán)境下的密鑰保護(hù)方法和系統(tǒng),利用堆棧式文件系統(tǒng)方式來實(shí)現(xiàn);堆棧式文件系統(tǒng)是一種增量式開發(fā)模式,用于擴(kuò)充原有密鑰系統(tǒng)的功能。該方式不用修改原密鑰系統(tǒng)的代碼,而是覆蓋在其上,過濾讀寫等操作,在過程中加入設(shè)定的處理方法,如加密和壓縮(包括白盒加密算法)等,以增強(qiáng)原有密鑰系統(tǒng)的功能。本發(fā)明采用結(jié)合鎖界面盡可能減少對(duì)用戶操作的影響,緊密結(jié)合操作系統(tǒng)本身,實(shí)現(xiàn)對(duì)外受阻、對(duì)內(nèi)無礙的密鑰保護(hù)。本發(fā)明具有以下優(yōu)點(diǎn):

      (一)本發(fā)明利用堆棧式文件系統(tǒng)實(shí)現(xiàn)技術(shù),采用結(jié)合鎖頻界面盡可能減少對(duì)用戶操作的影響,緊密結(jié)合操作系統(tǒng)本身,實(shí)現(xiàn)對(duì)外受阻、對(duì)內(nèi)無礙的加解密保護(hù);

      (二)保護(hù)Android終端用戶存儲(chǔ)在設(shè)備中的隱私數(shù)據(jù),同時(shí)不改變用戶操作習(xí)慣,不影響用戶體驗(yàn);

      (三)選用內(nèi)核級(jí)加密方式,增強(qiáng)系統(tǒng)安全性和加解密效率,與系統(tǒng)結(jié)合緊密,抗攻擊能力強(qiáng),具有較高的安全性;由于系統(tǒng)核心加解密模塊工作在最底層,而與用戶交互的界面為最頂層,系統(tǒng)設(shè)立中間件,輔助內(nèi)核模塊和上層應(yīng)用的通信;通過JNI(Java本地訪問接口)與中間層通信,中間層再通過1ctl的方式完成與內(nèi)核模塊通信;

      (四)本發(fā)明可以支持目前流行的Android4.X使用的3.X內(nèi)核,本系統(tǒng)設(shè)計(jì)密鑰系統(tǒng),在文件讀取和寫入操作上進(jìn)行處理,并將其它文件操作直接定向到底層文件系統(tǒng),靈活易移植;

      (五)加解密對(duì)用戶透明,對(duì)用戶操作干擾小,用戶體驗(yàn)好;便于部署和移植;具有較高的性能;不區(qū)分文件格式,用戶可用來加密任意形式的文件;不區(qū)分存儲(chǔ)位置,可加密手機(jī)應(yīng)用程序信息和存儲(chǔ)擴(kuò)展卡中信息,實(shí)現(xiàn)對(duì)SD卡文件數(shù)據(jù)的保護(hù)。

      附圖說明

      圖1是本發(fā)明提供的密鑰保護(hù)系統(tǒng)各模塊及其模塊間的相互作用關(guān)系圖。

      圖2是本發(fā)明提供的密鑰保護(hù)系統(tǒng)的工作原理框圖。

      圖3是本發(fā)明實(shí)施中上層棧式加解密系統(tǒng)與下層實(shí)際文件系統(tǒng)之間關(guān)系的示意圖。

      圖4是本發(fā)明提供的密鑰保護(hù)方法的工作流程圖。

      具體實(shí)施方式

      下面結(jié)合附圖,通過實(shí)施例進(jìn)一步描述本發(fā)明,但不以任何方式限制本發(fā)明的范圍。

      本發(fā)明提供一種Android環(huán)境下的密鑰保護(hù)方法和系統(tǒng),利用堆棧式文件系統(tǒng)方式來實(shí)現(xiàn);堆棧式文件系統(tǒng)是一種增量式開發(fā)模式,用于擴(kuò)充原有密鑰系統(tǒng)的功能。該方式不用修改原密鑰系統(tǒng)的代碼,而是覆蓋在其上,過濾讀寫等操作,在過程中加入設(shè)定的處理方法,如加密和壓縮(包括白盒加密算法)等,以增強(qiáng)原有密鑰系統(tǒng)的功能。本發(fā)明采用結(jié)合鎖界面盡可能減少對(duì)用戶操作的影響,緊密結(jié)合操作系統(tǒng)本身,實(shí)現(xiàn)對(duì)外受阻、對(duì)內(nèi)無礙的密鑰保護(hù)。

      如圖1所示是本發(fā)明實(shí)施例提供的Android環(huán)境下的密鑰保護(hù)系統(tǒng)中各模塊和各模塊之間的相互作用,本實(shí)施例中的密鑰保護(hù)系統(tǒng)包括用戶模塊和內(nèi)核模塊,用戶模塊包括配置單元和鎖屏單元,內(nèi)核模塊包括密鑰管理器單元和堆棧式文件系統(tǒng)單元;

      圖4是本發(fā)明提供的Android環(huán)境下的密鑰保護(hù)方法的工作流程圖。讀取受保護(hù)密鑰的過程:如果用戶為非授權(quán)用戶(未經(jīng)過鎖屏界面身份認(rèn)證的用戶),操作失敗。對(duì)于授權(quán)用戶,則傳遞讀請(qǐng)求至下層文件系統(tǒng),獲得返回的文件內(nèi)容,此時(shí)內(nèi)容為密文。向密鑰管理器單元請(qǐng)求密鑰,利用該密鑰對(duì)密文進(jìn)行解密獲得明文;再將獲得的明文從內(nèi)核空間拷貝至用戶空間。

      圖3是上層棧式加解密文件系統(tǒng)與下層實(shí)際文件系統(tǒng)之間的示意圖,以file結(jié)構(gòu)為例(圖3中的第二組):這里upper_file是上層文件系統(tǒng)的對(duì)象,lower_file是與相對(duì)應(yīng)的下層文件系統(tǒng)的對(duì)象。兩者通過upper_file的private_data指針聯(lián)系。文件操作時(shí)調(diào)用upper_file中的file_ops文件操作表中的函數(shù)。因?yàn)榘l(fā)給堆棧式文件系統(tǒng)上層的操作請(qǐng)求經(jīng)過處理后,會(huì)傳遞給下層,具體說,上層file_ops操作表中的函數(shù)會(huì)調(diào)用下層file_ops表中對(duì)應(yīng)的函數(shù)。類似的,上層文件系統(tǒng)的dentry,inode以及address_space結(jié)構(gòu)體,與下層文件系統(tǒng)的相應(yīng)數(shù)據(jù)結(jié)構(gòu)聯(lián)系,傳遞各自的操作請(qǐng)求。圖3中,虛線分隔開上層和下層,從上到下分為四種不同的類型,每種類型分別代表了一種不同的傳遞方式。

      圖4是本發(fā)明實(shí)施例中解屏鎖屏的工作流程。鎖屏單元的實(shí)現(xiàn)具體是:鎖屏應(yīng)用接受用戶輸入的密碼短語,并讀取是否開啟加解密服務(wù)的開關(guān)。這些信息被拷貝到內(nèi)核空間,在這里密碼短語被哈希算法計(jì)算,與身份驗(yàn)證文件中存放的MD5值比對(duì)以確認(rèn)身份。如不相符,則提示解鎖失敗,用戶可進(jìn)行有限次嘗試;如果相符,轉(zhuǎn)下一步。如果身份驗(yàn)證成功,則判斷是否開啟加解密服務(wù)的開關(guān);如果服務(wù)不開啟,則轉(zhuǎn)下一步,如果服務(wù)開啟,則將密鑰進(jìn)行變換存入密鑰管理器,執(zhí)行下一步,解鎖屏幕。鎖屏單元提供兩個(gè)與用戶交互的控件組:密碼輸入控件組和一個(gè)二值開關(guān)。前者用于記錄用戶輸入的密鑰,后者決定是僅解鎖手機(jī)操作系統(tǒng)還是即解鎖操作系統(tǒng)又解鎖加密文件。鎖屏單元本身只接受并緩存用戶密碼,不負(fù)責(zé)身份驗(yàn)證。處于安全考慮,身份驗(yàn)證由內(nèi)核密鑰管理單元完成。鎖屏單元通過JNI(Java本地訪問接口)與中間層動(dòng)態(tài)庫通信,中間層在通過1ctl的方式與內(nèi)核通信,將密鑰從用戶空間傳遞到內(nèi)核空間。考慮到試用本系統(tǒng)的用戶分為手機(jī)操作系統(tǒng)定制商和個(gè)人用戶兩種,所以JNI部署既可以在應(yīng)用框架層提供上層調(diào)用接口,作為系統(tǒng)API被應(yīng)用程序調(diào)用,或者被第三方應(yīng)用程序擴(kuò)展,做到與系統(tǒng)緊密結(jié)合,又可以直接編譯作為獨(dú)立的動(dòng)態(tài)庫文件被應(yīng)用程序加載,使得個(gè)人用戶部署過程簡單方便在Android系統(tǒng)中鎖屏和解鎖屏是以Broadcast形式傳遞的消息。本系統(tǒng)鎖屏應(yīng)用模塊監(jiān)聽該消息,做出相應(yīng)的處理。解鎖是完成身份驗(yàn)證和密鑰傳遞,鎖屏?xí)r清除密鑰。

      以下通過實(shí)施例的具體實(shí)施,進(jìn)一步描述本發(fā)明如何實(shí)現(xiàn)對(duì)文件的保護(hù):

      A.選擇需要保護(hù)的文件所在文件夾的路徑并設(shè)置密碼;

      B.根據(jù)用戶輸入的路徑和密碼,分別生成加密路徑目錄表和身份驗(yàn)證文件;

      C.掃描加密路徑目錄表,如果是第一次開啟操作系統(tǒng),按照表項(xiàng)將對(duì)受保護(hù)文件進(jìn)行第一次初始化加密,然后進(jìn)行下一步操作;

      對(duì)堆棧式文件系統(tǒng)單元中,當(dāng)?shù)谝淮伍_啟操作系統(tǒng),接收到加密目錄路徑表時(shí)調(diào)用第一密鑰對(duì)加密目錄路徑表所對(duì)應(yīng)的目錄里的文件進(jìn)行初始化加密;并覆蓋在操作系統(tǒng)支持并掛載的所有文件系統(tǒng)之上,當(dāng)用戶發(fā)出讀請(qǐng)求時(shí)調(diào)用密鑰管理器中的第二密鑰,對(duì)文件進(jìn)行解密;當(dāng)用戶發(fā)出寫請(qǐng)求時(shí)調(diào)用密鑰管理器中的第二密鑰,對(duì)文件進(jìn)行加密。

      D.當(dāng)用戶觸發(fā)解鎖屏幕事件,則接受用戶輸入的密碼短語,對(duì)密碼短語進(jìn)行哈希算法運(yùn)算后與B中產(chǎn)生的身份驗(yàn)證文件進(jìn)行對(duì)比:如果不匹配,則解鎖失??;如果匹配一致,則將密碼短語采用sha1算法換算成密鑰,將密鑰進(jìn)行存儲(chǔ);方法具體為:定義TRANSPARENT_IOCCAUTHEN命令為接受來自用戶輸入的密碼,經(jīng)過Md5運(yùn)算后,與本地存放的身份驗(yàn)證文件進(jìn)行比對(duì),若一致則返回驗(yàn)證通過,并將密碼經(jīng)Shal運(yùn)算轉(zhuǎn)換成128bit密鑰存放在全局緩沖區(qū)內(nèi)。同時(shí)定義TRANSPARENT_IOCCLEARKEY命令為鎖屏幕時(shí)需要完成的清除密鑰管理器中密鑰的任務(wù)。

      E.當(dāng)用戶訪問文件時(shí),如果操作的文件或目錄在加密路徑目錄表中,當(dāng)用戶發(fā)出寫請(qǐng)求,調(diào)用D所存儲(chǔ)的密鑰對(duì)文件進(jìn)行加密;當(dāng)用戶發(fā)出讀請(qǐng)求,調(diào)用密鑰對(duì)文件進(jìn)行解密;

      讀取受保護(hù)文件的過程是:如果用戶為非授權(quán)用戶(未經(jīng)過鎖屏界面身份認(rèn)證的用戶),操作失敗。對(duì)于授權(quán)用戶,則傳遞讀請(qǐng)求至下層文件系統(tǒng),獲得返回的文件內(nèi)容,此時(shí)內(nèi)容為密文。向密鑰管理器單元請(qǐng)求密鑰,利用該密鑰對(duì)密文進(jìn)行解密。將獲得的明文從內(nèi)核空間拷貝至用戶空間。修改相應(yīng)文件屬性,完成讀操作。

      寫入受保護(hù)文件的過程是:如果用戶為非授權(quán)用戶(未經(jīng)過鎖屏界面身份認(rèn)證的用戶),操作失敗。對(duì)于授權(quán)用戶,請(qǐng)求密鑰,利用密鑰將用戶空間傳遞的數(shù)據(jù)所在緩沖區(qū)加密。將緩沖區(qū)內(nèi)容傳遞到下層文件系統(tǒng),由其寫入到磁盤。修改相應(yīng)文件屬性,完成寫操作。對(duì)文件讀寫操作具體內(nèi)容如下:在調(diào)用底層文件系統(tǒng)讀入數(shù)據(jù)之后,將內(nèi)容返回到用戶空間之前,將緩沖區(qū)進(jìn)行解密。同樣,在寫操作時(shí),在調(diào)用底層文件系統(tǒng)寫操作之前,加密緩沖區(qū)。其中加解密過程可以使用內(nèi)核加解密框架實(shí)現(xiàn),以節(jié)約時(shí)空開銷,縮減開發(fā)成本。

      F.當(dāng)用戶觸發(fā)鎖定屏幕事件,則清除存放的密鑰并鎖屏。

      利用上述方法實(shí)現(xiàn)了Android環(huán)境下的密鑰保護(hù)系統(tǒng),如圖1所示是本系統(tǒng)的各模塊間的相互作用。本發(fā)明提供的Android平臺(tái)的密鑰存儲(chǔ)保護(hù)系統(tǒng),包括用戶模塊和內(nèi)核模塊,用戶模塊包括配置單元和鎖屏單元,內(nèi)核模塊包括密鑰管理器單元和堆棧式文件系統(tǒng)單元;其中:

      (一)配置單元,用于接收用戶制定策略,策略包括密碼、身份驗(yàn)證文件、加密目錄路徑表,該密碼經(jīng)Shal算法生成第一密鑰進(jìn)行存儲(chǔ);身份驗(yàn)證文件輸入至密鑰管理器單元,加密目錄路徑表輸入至堆棧式文件系統(tǒng)單元;

      配置單元的策略配置是本系統(tǒng)控制的核心。在配置單元的實(shí)現(xiàn)上,配置單元的策略配置維護(hù)兩個(gè)文件:用于身份驗(yàn)證時(shí)比對(duì)的密碼Md5文件和加密目錄表文件。它作為普通的Android應(yīng)用程序,但需要持有管理員權(quán)限,需要開機(jī)時(shí)被自動(dòng),然后掃描加密目錄表,逐一為表中的目錄掛載加解密文件系統(tǒng)。

      (二)鎖屏單元,將用戶輸入的密碼短語輸出至密鑰管理器單元;

      (三)密鑰管理器單元,用于將密碼短語采用哈希算法運(yùn)算后與身份驗(yàn)證文件進(jìn)行匹配:若不匹配則解鎖失?。蝗羝ヅ湟恢聞t在解鎖屏幕的同時(shí),將密碼短語采用Shal算法換算成第二密鑰進(jìn)行存儲(chǔ),當(dāng)鎖屏單元鎖屏?xí)r,清除第二密鑰;

      內(nèi)核密鑰管理器單元的實(shí)現(xiàn)具體是:內(nèi)核密鑰管理器單元的作用類似與內(nèi)核密鑰環(huán)。不直接使用內(nèi)核密鑰環(huán)是因?yàn)槠溥^于復(fù)雜,應(yīng)盡量縮小內(nèi)核占用的嵌入式設(shè)備有限的時(shí)間資源和空間資源。內(nèi)核密鑰管理器主要包括一個(gè)可以被其它模塊訪問的全局緩沖區(qū),用來存放密鑰。該模塊直接與應(yīng)用層鎖屏界面通過ioctl方式通信。定義TRANSPARENT_IOCAUTHEN命令為接受來自用戶輸入的密碼,經(jīng)過Md5運(yùn)算后,與本地存放的身份驗(yàn)證文件進(jìn)行比對(duì),若一致則返回驗(yàn)證通過,并將密碼經(jīng)Shal運(yùn)算轉(zhuǎn)換成128bit密鑰存放在全局緩沖區(qū)內(nèi)。同時(shí)定義TRANSPARENT_IOCCLEARKEY命令為鎖屏幕時(shí)需要完成的清除密鑰管理器中密鑰的任務(wù)。

      (四)堆棧式文件系統(tǒng)單元,當(dāng)?shù)谝淮伍_啟操作系統(tǒng),接收到加密目錄路徑表時(shí)調(diào)用第一密鑰對(duì)加密目錄路徑表所對(duì)應(yīng)的目錄里的文件進(jìn)行初始化加密;并覆蓋在操作系統(tǒng)支持并掛載的所有文件系統(tǒng)之上,當(dāng)用戶發(fā)出讀請(qǐng)求時(shí)調(diào)用密鑰管理器中的第二密鑰,對(duì)文件進(jìn)行解密;當(dāng)用戶發(fā)出寫請(qǐng)求時(shí)調(diào)用密鑰管理器的第二密鑰,對(duì)文件進(jìn)行加密。

      在用戶模塊的配置單元中接收用戶制定的策略,用戶制定的策略還包括是否啟用密鑰保護(hù)系統(tǒng)(加解密系統(tǒng))。在用戶模塊和內(nèi)核模塊中,涉及到的哈希算法都為MD5哈希算法。

      圖2是本發(fā)明提供系統(tǒng)的工作原理圖。讀取受保護(hù)文件的過程是:如果用戶為非授權(quán)用戶(未經(jīng)過鎖屏界面身份認(rèn)證的用戶),操作失敗。對(duì)于授權(quán)用戶,則傳遞讀請(qǐng)求至下層文件系統(tǒng),獲得返回的文件內(nèi)容,此時(shí)內(nèi)容為密文。向密鑰管理器單元請(qǐng)求密鑰,利用該密鑰對(duì)密文進(jìn)行解密。將獲得的明文從內(nèi)核空間拷貝至用戶空間。本發(fā)明方法工作過程包括:修改相應(yīng)文件屬性,完成讀操作;寫入受保護(hù)文件的過程:如果用戶為非授權(quán)用戶(未經(jīng)過鎖屏界面身份認(rèn)證的用戶),操作失?。粚?duì)于授權(quán)用戶,請(qǐng)求密鑰,利用密鑰將用戶空間傳遞的數(shù)據(jù)所在緩沖區(qū)加密;將緩沖區(qū)內(nèi)容傳遞到下層文件系統(tǒng),由其寫入到磁盤;修改相應(yīng)文件屬性,完成寫操作。

      本系統(tǒng)形成一個(gè)堆棧結(jié)構(gòu),上層文件系統(tǒng)就是開發(fā)的堆棧式加解密文件系統(tǒng)。下層文件系統(tǒng)是實(shí)際的文件系統(tǒng)(但也有可能是另一個(gè)堆棧式文件系統(tǒng),如果該堆棧文件系統(tǒng)足夠“透明”,也可以認(rèn)為實(shí)際文件系統(tǒng))。

      由于上層文件系統(tǒng)依賴于下層文件系統(tǒng)的操作方法和數(shù)據(jù)結(jié)構(gòu),所以第一步應(yīng)構(gòu)建上下層文件系統(tǒng)數(shù)據(jù)結(jié)構(gòu)間的關(guān)系。

      如圖3所示是上層棧式加解密文件系統(tǒng)與下層實(shí)際文件系統(tǒng)之間的示意圖,以File結(jié)構(gòu)為例:這里Upperfile是本層文件系統(tǒng)的對(duì)象,lower_file是與之相對(duì)應(yīng)的下層文件系統(tǒng)的對(duì)象。兩者通過Upper_file的Private_date指針聯(lián)系。文件操作時(shí)調(diào)用Upper_file中的File_ops文件操作表中的函數(shù)。因?yàn)榘l(fā)給堆棧式文件系統(tǒng)上層的操作請(qǐng)求經(jīng)過處理后,會(huì)傳遞給下層。具體說,上層File_opS操作表中的函數(shù)會(huì)調(diào)用下層File_opS表中對(duì)應(yīng)函數(shù)。類似的,本層文件系統(tǒng)的Dentry、Inode以及Address_space結(jié)構(gòu)體,與下層文件系統(tǒng)的相應(yīng)數(shù)據(jù)結(jié)構(gòu)聯(lián)系,傳遞各自的操作請(qǐng)求。

      完成上下層關(guān)鍵數(shù)據(jù)結(jié)構(gòu)間關(guān)系的構(gòu)建,為下面的操作奠定基礎(chǔ)。

      除了文件讀寫操作外,其余文件系統(tǒng)操作的工作僅僅是調(diào)用下層文件系統(tǒng)對(duì)應(yīng)函數(shù),或是使用通用處理函數(shù)。如果需要,還要更新下層文件系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的相關(guān)域,如文件訪問時(shí)間,文件當(dāng)前讀取位置等。以讀取目錄文件為例:此時(shí)上下層文件系統(tǒng)關(guān)系已構(gòu)建完成,因?yàn)樾枰{(diào)用下層文件系統(tǒng)的操作,首先通過該關(guān)系尋找到與本層File對(duì)應(yīng)的下層文件系的數(shù)據(jù)結(jié)構(gòu)Lower_file。通過VFS層通用函數(shù)讀取Lower_file的目錄信息。這里的目錄信息是下層文件系統(tǒng)的目錄信息,但由于沒有對(duì)該操作進(jìn)行處理,可以直接作為本層的目錄信息返回。VFS_readdir讀取完信息后會(huì)自動(dòng)更新Lower_file的訪問時(shí)間,但上層的File訪問時(shí)間需要手動(dòng)更新。這里通過拷貝下層文件訪問信息來達(dá)到同步兩者的目的。

      對(duì)文件讀寫操作具體內(nèi)容如下:在調(diào)用底層文件系統(tǒng)讀入數(shù)據(jù)之后,將內(nèi)容返回到用戶空間之前,將緩沖區(qū)進(jìn)行解密。同樣,在寫操作時(shí),在調(diào)用底層文件系統(tǒng)寫操作之前,加密緩沖區(qū)。

      其中加解密過程可以使用內(nèi)核加解密框架實(shí)現(xiàn),以節(jié)約時(shí)空開銷,縮減開發(fā)成本。

      以下是各模塊在具體實(shí)施時(shí)的實(shí)現(xiàn)過程:

      配置單元的實(shí)現(xiàn):策略配置界面是本系統(tǒng)控制核心.它維護(hù)兩個(gè)文件:用于身份驗(yàn)證時(shí)比對(duì)的密碼Md5文件和加密目錄表文件。它作為普通的Android應(yīng)用程序,但需要持有管理員權(quán)限,需要開機(jī)時(shí)被自動(dòng),然后掃描加密目錄表,逐一為表中的目錄掛載加解密文件系統(tǒng)。

      內(nèi)核密鑰管理器單元的實(shí)現(xiàn):內(nèi)核密鑰管理器單元,作用類似與內(nèi)核密鑰環(huán)。不直接使用內(nèi)核密鑰環(huán)是因?yàn)槠溥^于復(fù)雜,應(yīng)盡量縮小內(nèi)核占用的嵌入式設(shè)備有限的時(shí)間資源和空間資源。內(nèi)核密管理器主要包括一個(gè)可以被其它模塊訪問的全局緩沖區(qū),用來存放密鑰。該模塊直接與應(yīng)用層鎖屏界面通過ioct1方式通信。定義TRANSPARENT_IOCAUTHEN命令為接受來自用戶輸入的密碼,經(jīng)過Md5運(yùn)算后,與本地存放的身份驗(yàn)證文件進(jìn)行比對(duì),若一致則返回驗(yàn)證通過,并將密碼經(jīng)Shal運(yùn)算轉(zhuǎn)換成128bit密鑰存放在全局緩沖區(qū)內(nèi)。同時(shí)定義TRANSPARENT_IOCCLEARKEY命令為鎖屏幕時(shí)需要完成的清除密鑰管理器中密鑰的任務(wù)。

      鎖屏應(yīng)用接受用戶輸入的密碼短語,并讀取是否開啟加解密服務(wù)的開關(guān)。

      這些信息被拷貝到內(nèi)核空間,在這里密碼短語被哈希算法計(jì)算,與身份驗(yàn)證文件中存放的MD5值比對(duì)以確認(rèn)用戶身份。如不相符,則提示解鎖失敗,用戶可進(jìn)行有限次的嘗試;如果相符,轉(zhuǎn)下一步。

      如果身份驗(yàn)證成功,則判斷是否開啟加解密服務(wù)的開關(guān)量;如果服務(wù)不開啟,則轉(zhuǎn)下一步;如果服務(wù)開啟,則將密鑰進(jìn)行變換存入密鑰管理器,執(zhí)行下一步。

      解鎖屏幕:鎖屏單元提供兩個(gè)與用戶交互的控件組:密碼輸入控件組和一個(gè)二值開關(guān)。前者用于記錄用戶輸入的密鑰,后者決定是僅解鎖手機(jī)操作系統(tǒng)還是即解鎖操作系統(tǒng)又解鎖加密文件。鎖屏單元本身只接受并緩存用戶密碼,不負(fù)責(zé)身份驗(yàn)證。處于安全考慮,身份驗(yàn)證由內(nèi)核密鑰管理單元完成。鎖屏單元通過JNI(Java本地訪問接口)與中間層動(dòng)態(tài)庫通信,中間層在通過icot1的方式與內(nèi)核通信,將密鑰從用戶空間傳遞到內(nèi)核空間??紤]到試用本系統(tǒng)的用戶分為手機(jī)操作系統(tǒng)定制商和個(gè)人用戶兩種,所以JNI部署既可以在應(yīng)用框架層提供上層調(diào)用接口,作為系統(tǒng)API被應(yīng)用程序調(diào)用,或者被第三方應(yīng)用程序擴(kuò)展,做到與系統(tǒng)緊密結(jié)合,又可以直接編譯作為獨(dú)立的動(dòng)態(tài)庫文件被應(yīng)用程序加載,使得個(gè)人用戶部署過程簡單方便在Android系統(tǒng)中鎖屏和解鎖屏是以Broadcast形式傳遞的消息。本系統(tǒng)鎖屏應(yīng)用模塊監(jiān)聽該消息,做出相應(yīng)的處理。解鎖是完成身份驗(yàn)證和密鑰傳遞,鎖屏?xí)r清除密鑰。

      需要注意的是,公布實(shí)施例的目的在于幫助進(jìn)一步理解本發(fā)明,但是本領(lǐng)域的技術(shù)人員可以理解:在不脫離本發(fā)明及所附權(quán)利要求的精神和范圍內(nèi),各種替換和修改都是可能的。因此,本發(fā)明不應(yīng)局限于實(shí)施例所公開的內(nèi)容,本發(fā)明要求保護(hù)的范圍以權(quán)利要求書界定的范圍為準(zhǔn)。

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