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

一種Android雙數(shù)據(jù)分區(qū)構(gòu)建方法與流程

文檔序號(hào):11729707閱讀:464來(lái)源:國(guó)知局
一種Android雙數(shù)據(jù)分區(qū)構(gòu)建方法與流程

本發(fā)明涉及一種android雙數(shù)據(jù)分區(qū)構(gòu)建方法,屬于數(shù)據(jù)存儲(chǔ)安全技術(shù)領(lǐng)域。



背景技術(shù):

android是一種基于linux的自由及開放源代碼的操作系統(tǒng),由google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā),主要用于智能手機(jī)等移動(dòng)設(shè)備。隨著android系統(tǒng)的市場(chǎng)的不斷壯大,以及android源碼良好的開源性和擴(kuò)展性,伴隨android系統(tǒng)發(fā)展的風(fēng)險(xiǎn)也越來(lái)越大。一些未知來(lái)源的惡意軟件、可以自刷第三方rom,以及隨意的對(duì)手機(jī)進(jìn)行root提權(quán)等,使得存儲(chǔ)了明文格式的沒有經(jīng)過(guò)加密的數(shù)據(jù)輕易地被竊取,大大的降低了android系統(tǒng)的數(shù)據(jù)安全性。因此,如何對(duì)系統(tǒng)中存儲(chǔ)的隱私數(shù)據(jù)(如照片、錄音等)進(jìn)行加密保護(hù)成為了最為關(guān)心的問(wèn)題。

基于數(shù)據(jù)存儲(chǔ)的安全性考慮,從android3.0開始,谷歌為了保護(hù)用戶數(shù)據(jù)安全,在android磁盤上便提供了全磁盤加密方案:dm-crypt加密。dm-crypt是linux內(nèi)核提供的一個(gè)磁盤加密模塊,使得android系統(tǒng)啟動(dòng)過(guò)程中根據(jù)一個(gè)密鑰將設(shè)備的磁盤加密,加密完成后,所有用戶創(chuàng)建的數(shù)據(jù)在提交到磁盤存儲(chǔ)之前會(huì)自動(dòng)被加密,當(dāng)數(shù)據(jù)再次被讀取時(shí),又會(huì)被系統(tǒng)自動(dòng)解密。這種動(dòng)態(tài)加密技術(shù)保留了用戶的使用習(xí)慣,無(wú)需用戶多余的操作,即可實(shí)現(xiàn)數(shù)據(jù)的加密保護(hù),具有很強(qiáng)的應(yīng)用性。但是,全磁盤加密付出的系統(tǒng)資源代價(jià)過(guò)高,因?yàn)樵赿ata分區(qū)中存放的數(shù)據(jù)很大一部分都是系統(tǒng)程序和第三方應(yīng)用,全部加密會(huì)占用過(guò)多資源,降低系統(tǒng)性能。



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

本發(fā)明的目的是為了在實(shí)現(xiàn)android系統(tǒng)數(shù)據(jù)存儲(chǔ)安全性的同時(shí),提高系統(tǒng)資源使用率、提升系統(tǒng)性能,從現(xiàn)有的必須對(duì)數(shù)據(jù)全部進(jìn)行加密改進(jìn)為針對(duì)用戶需要加密的信息進(jìn)行加密,提出一種android雙數(shù)據(jù)分區(qū)構(gòu)建方法。

如圖1所示,本發(fā)明的設(shè)計(jì)原理為,在android系統(tǒng)啟動(dòng)后,在原有數(shù)據(jù)分區(qū)基礎(chǔ)上劃分成兩個(gè)數(shù)據(jù)分區(qū),即,普通數(shù)據(jù)分區(qū)和加密數(shù)據(jù)分區(qū)。用戶可以根據(jù)需要,選擇將數(shù)據(jù)存儲(chǔ)在普通數(shù)據(jù)分區(qū)還是加密數(shù)據(jù)分區(qū)。

通常,android系統(tǒng)的磁盤一般劃分為如下幾個(gè)分區(qū):boot分區(qū),recovery分區(qū),system分區(qū),data分區(qū),cache分區(qū)等。其中,boot分區(qū)是把內(nèi)核和虛擬內(nèi)存(ramdisk)以及file的根文件系統(tǒng)打包編譯生成boot.img來(lái)燒錄的。system分區(qū)是掛載到/system目錄下的分區(qū),基本包含了整個(gè)android操作系統(tǒng)。data分區(qū)即用戶數(shù)據(jù)區(qū),掛載到/data目錄下,包含了用戶的數(shù)據(jù):聯(lián)系人、短信、設(shè)置、用戶安裝的程序。

如果在data分區(qū)中找到一部分存儲(chǔ)空間,將其作為另外一個(gè)數(shù)據(jù)分區(qū),并對(duì)這個(gè)數(shù)據(jù)分區(qū)運(yùn)用dm-crypt加密技術(shù),使保存在這個(gè)數(shù)據(jù)分區(qū)的數(shù)據(jù)都會(huì)經(jīng)過(guò)動(dòng)態(tài)加密寫入到磁盤中,就能夠有效提高android手機(jī)的數(shù)據(jù)安全性。通過(guò)修改系統(tǒng)的內(nèi)核文件和啟動(dòng)腳本等,并且了解android系統(tǒng)的相關(guān)特性,可以實(shí)現(xiàn)在系統(tǒng)啟動(dòng)過(guò)程中正常掛載加密分區(qū),實(shí)現(xiàn)開機(jī)后系統(tǒng)存在雙數(shù)據(jù)分區(qū)的效果。

本發(fā)明的目的是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:

一種android雙數(shù)據(jù)分區(qū)構(gòu)建方法,包括以下步驟:

步驟一、觀察android系統(tǒng)數(shù)據(jù)分區(qū)使用情況,找出連續(xù)的空閑磁盤空間,即,尋找系統(tǒng)空閑磁盤空間。具體方法為:進(jìn)入android系統(tǒng),觀察系統(tǒng)數(shù)據(jù)分區(qū)(data分區(qū))塊組使用狀況,并記錄可使用的,連續(xù)的、空閑的塊組塊號(hào)作為加密數(shù)據(jù)分區(qū)的位置,計(jì)算起始位置和大小。

步驟二:制作系統(tǒng)磁盤鏡像文件。具體方法為:在linux操作系統(tǒng)下,制作一個(gè)已經(jīng)通過(guò)dm-crypt模塊加密的ext4格式的磁盤鏡像文件。

步驟三、創(chuàng)建系統(tǒng)加密數(shù)據(jù)分區(qū)。具體方法為:

首先,初始化磁盤鏡像文件,并將其拷貝到數(shù)據(jù)分區(qū)中的空閑磁盤空間??梢岳胐d命令實(shí)現(xiàn)。

之后,對(duì)系統(tǒng)/system/bin目錄下的debuggerd文件進(jìn)行備份,備份后修改原debuggerd文件,新建一個(gè)文件并添加mount命令,實(shí)現(xiàn)在系統(tǒng)啟動(dòng)后自動(dòng)掛載加密數(shù)據(jù)分區(qū)。用修改后的debuggerd文件替換原有debuggerd文件。

步驟四,制作boot分區(qū)鏡像,實(shí)現(xiàn)在手機(jī)啟動(dòng)腳本中運(yùn)用如dm-crypt等動(dòng)態(tài)加密技術(shù),并對(duì)空閑磁盤空間進(jìn)行數(shù)據(jù)保護(hù)。具體方法為:

首先,利用adb工具抽取boot分區(qū),得到boot.img,并對(duì)boot.img進(jìn)行備份并解壓縮處理,生成ramdisk文件夾。

然后,修改ramdisk文件夾中的init.rc啟動(dòng)腳本文件,使手機(jī)啟動(dòng)時(shí)將加密數(shù)據(jù)分區(qū)映射為一個(gè)虛擬設(shè)備節(jié)點(diǎn);

之后,將磁盤加密工具和密鑰文件psw均拷貝到解壓縮之后的ramdisk文件夾中的sbin文件夾下。

然后,修改內(nèi)核文件。一是在ext4塊組分配文件中,對(duì)記錄的空閑塊組號(hào)進(jìn)行數(shù)據(jù)保護(hù),二是在partition-generic.c中將加密磁盤鏡像所在存儲(chǔ)區(qū)域設(shè)置為一個(gè)數(shù)據(jù)分區(qū),三是修改內(nèi)核文件中的avc.c文件,使開機(jī)時(shí)能夠通過(guò)selinux對(duì)dm-crypt模塊的檢查。

最后,對(duì)手機(jī)的內(nèi)核源碼進(jìn)行編譯,重新打包生成新的boot.img;

步驟五、將重新打包好的boot.img導(dǎo)入boot分區(qū),重新啟動(dòng)系統(tǒng)。

有益效果

使用本發(fā)明方法,通過(guò)在原數(shù)據(jù)分區(qū)中劃分出一部分存儲(chǔ)空間作為加密數(shù)據(jù)分區(qū),通過(guò)修改內(nèi)核文件,利用dm-crypt的磁盤加密方法,將加密數(shù)據(jù)分區(qū)映射為一個(gè)虛擬設(shè)備節(jié)點(diǎn),再將此節(jié)點(diǎn)通過(guò)mount命令掛載到特定目錄下,使系統(tǒng)啟動(dòng)后可以自動(dòng)掛載加密數(shù)據(jù)分區(qū),從而達(dá)到android雙數(shù)據(jù)分區(qū)的效果。在加密數(shù)據(jù)分區(qū)中,可以存放用戶的隱私數(shù)據(jù),數(shù)據(jù)會(huì)自動(dòng)加密寫入到磁盤中。通過(guò)在android手機(jī)中創(chuàng)建雙數(shù)據(jù)分區(qū),結(jié)合dm-crypt磁盤加密技術(shù),可以高效的對(duì)用戶的隱私數(shù)據(jù)進(jìn)行保護(hù)。

附圖說(shuō)明

圖1為本發(fā)明方法的原理關(guān)系圖;

圖2為本發(fā)明中加密數(shù)據(jù)分區(qū)的磁盤鏡像文件的制作流程;

圖3為本發(fā)明中修改的boot分區(qū)鏡像制作流程;

圖4為本發(fā)明的驗(yàn)證數(shù)據(jù)加密寫入加密數(shù)據(jù)分區(qū)的說(shuō)明;

圖5為本發(fā)明的將加密數(shù)據(jù)分區(qū)解密前后顯的對(duì)比圖。

具體實(shí)施方式

下面結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式做進(jìn)一步詳細(xì)說(shuō)明。

一種android雙數(shù)據(jù)分區(qū)構(gòu)建方法。

首先,找出系統(tǒng)空閑的磁盤空間,包括以下步驟:

步驟1、通過(guò)使用工具adb進(jìn)入手機(jī)文件系統(tǒng),觀察手機(jī)data分區(qū)的塊組使用狀況,記錄可使用的連續(xù)的空閑的塊組塊號(hào)作為加密數(shù)據(jù)分區(qū)的位置,計(jì)算起始位置和大小。

然后,制作經(jīng)由dm-crypt模塊加密的ext4格式的磁盤鏡像文件,包括以下步驟:

步驟2、在linux操作系統(tǒng)下,利用cryptsetup等相關(guān)命令制作一個(gè)已經(jīng)通過(guò)dm-crypt加密的ext4格式的磁盤鏡像文件。如圖2所示。

然后,制作android加密數(shù)據(jù)分區(qū),包括以下步驟:

步驟3、將加密的磁盤鏡像文件利用dd命令dd到手機(jī)data分區(qū)中記錄的空閑磁盤空間。

步驟4、進(jìn)入手機(jī)adb,對(duì)/system/bin下的debuggerd文件進(jìn)行備份,并修改debuggerd文件,實(shí)現(xiàn)在手機(jī)啟動(dòng)后自動(dòng)掛載加密數(shù)據(jù)分區(qū)。

之后,制作修改的boot分區(qū)鏡像,如圖3所示,包括以下步驟:

步驟5、在實(shí)驗(yàn)手機(jī)的官網(wǎng)上下載對(duì)應(yīng)型號(hào)的內(nèi)核源碼,編譯內(nèi)核源碼,此外下載dm-crypt磁盤加密工具。

步驟6、使用工具抽取手機(jī)的boot分區(qū),得到boot.img,并在電腦上使用工具對(duì)boot.img備份并解壓縮處理。

步驟7、將dm-crypt工具和秘鑰文件psw拷貝到解壓縮之后的ramdisk文件夾中的sbin文件夾下。

步驟8、修改內(nèi)核文件,在ext4塊組分配文件中,把記錄的空閑塊組號(hào)進(jìn)行數(shù)據(jù)保護(hù)。

步驟9、修改內(nèi)核文件,在partition-generic.c中將加密磁盤鏡像所在存儲(chǔ)區(qū)域設(shè)置為一個(gè)數(shù)據(jù)分區(qū)。

步驟10、修改ramdisk文件夾中的init.rc啟動(dòng)腳本文件,使得在手機(jī)啟動(dòng)中將加密數(shù)據(jù)分區(qū)映射為一個(gè)虛擬設(shè)備節(jié)點(diǎn)。

步驟11、修改內(nèi)核文件中的avc.c文件,使得開機(jī)時(shí)可以通過(guò)selinux對(duì)dm-crypt工具的檢查。

最后,將重新打包好的boot.img導(dǎo)入到手機(jī)的boot分區(qū),重新啟動(dòng)手機(jī)。

實(shí)施例

本實(shí)施例使用三星g9200型號(hào)android系統(tǒng)手機(jī)作為平臺(tái),并在linux操作系統(tǒng)下實(shí)現(xiàn)本發(fā)明。一種android雙數(shù)據(jù)分區(qū)構(gòu)建方法,具體如下:

步驟一、尋找系統(tǒng)空閑磁盤空間。

將手機(jī)接入電腦,使用android開發(fā)工具adb進(jìn)入手機(jī)文件系統(tǒng),查看手機(jī)data分區(qū)所對(duì)應(yīng)的磁盤扇區(qū)號(hào),然后通過(guò)cd命令進(jìn)入到/proc/fs/ext4/sda20目錄下,使用cat命令查看sda20的塊組使用情況,其中,group是塊組號(hào),free為當(dāng)前塊組空閑的block數(shù),first為使用的block數(shù)。一個(gè)塊組劃分為32768個(gè)塊,當(dāng)free為32768時(shí),first為0時(shí),說(shuō)明對(duì)應(yīng)塊組未被使用。由此可以找到一段連續(xù)的空閑的磁盤空間,大小為1.7g。

步驟二:制作系統(tǒng)磁盤鏡像文件。

制作經(jīng)由dm-crypt模塊加密的ext4格式的磁盤鏡像文件,在linux操作系統(tǒng)下進(jìn)行操作。首先,通過(guò)dd命令制作一個(gè)大小為1.7g的空白鏡像文件disk.img,然后通過(guò)losetup命令將此磁盤鏡像文件虛擬成塊設(shè)備。

步驟三、制作系統(tǒng)加密數(shù)據(jù)分區(qū)。

使用分區(qū)加密工具cryptsetup初始化塊設(shè)備,使用aes256加密算法,密鑰為自定義的psw文件。通過(guò)luksopen將塊設(shè)備映射到/dev/mapper/sx_disk文件節(jié)點(diǎn)上。通過(guò)此節(jié)點(diǎn)打開映射塊設(shè)備。然后通過(guò)mkfs.ext4命令將制作的經(jīng)由dm-crypt模塊加密的disk.img格式化ext4文件系統(tǒng)。在進(jìn)行關(guān)閉映射節(jié)點(diǎn)和塊設(shè)備操作之后,將disk.img通過(guò)dd命令存儲(chǔ)在空閑的磁盤空間中。當(dāng)前路徑下生成了disk.img文件。

之后,對(duì)系統(tǒng)/system/bin目錄下的debuggerd文件進(jìn)行備份,備份后修改原debuggerd文件,新建一個(gè)文件并添加mount命令:mount–text4/dev/mapper/disksb/sbfs,實(shí)現(xiàn)在系統(tǒng)啟動(dòng)后自動(dòng)掛載加密數(shù)據(jù)分區(qū)。用修改后的debuggerd文件替換原有debuggerd文件。

步驟四,制作修改的boot分區(qū)鏡像。

首先,boot分區(qū)對(duì)應(yīng)為/dev/block/sda8,連接手機(jī)使用adb工具進(jìn)入手機(jī),通過(guò)cat命令將boot分區(qū)的內(nèi)容提取出來(lái),使用mkbootimg.exe工具對(duì)boot.img進(jìn)行解壓縮,得到ramdisk文件。在網(wǎng)上下載dm-crypt可執(zhí)行文件。將dm-crypt以及psw密鑰文件移動(dòng)到ramdisk/sbin目錄下。

然后,修改init.rc文件,在定義service的位置添加服務(wù)dm-cryptsb,此服務(wù)將加密數(shù)據(jù)分區(qū)對(duì)應(yīng)的磁盤分區(qū)映射為/dev/mapper/disksb節(jié)點(diǎn),通過(guò)此虛擬節(jié)點(diǎn)打開加密數(shù)據(jù)分區(qū)。此外,在oninit后啟動(dòng)dm-cryptsb服務(wù)。

修改boot.img的內(nèi)核文件。在三星官網(wǎng)下載g9200的源碼,在linux操作系統(tǒng)下解壓并進(jìn)行修改。修改/fs/ext4/mballoc.c文件的ext4_mb_generate_buddy函數(shù)對(duì)加密數(shù)據(jù)分區(qū)所在的磁盤空間進(jìn)行寫保護(hù)。

修改/security/selinux/avc.c文件的avc_has_perm_noaudit函數(shù),使得dm-crypt工具可以通過(guò)selinux的檢查,并且在/block/parti-tion-generic.c文件中的add_partition()函數(shù)中添加修改分區(qū)起始扇區(qū)和大小的代碼。

之后,通過(guò)make命令對(duì)源碼進(jìn)行編譯,將生成的arch/arm64/boot/image重命名為kernel并且替換掉kernel文件。

對(duì)其他文件進(jìn)行修改。將手機(jī)連上電腦后,通過(guò)使用adb命令進(jìn)入手機(jī)。將/system/bin/debuggerd復(fù)制為debuggerd32在當(dāng)前目錄下。在linux下新建debuggerd.sh文件,寫入mount-text4/dev/mapper/disksb/sbfs命令,將加密數(shù)據(jù)分區(qū)映射的文件節(jié)點(diǎn)掛載到sbfs目錄上。然后將此文件替換掉手機(jī)中的debuggerd文件,并修改相應(yīng)的權(quán)限。

打包并導(dǎo)入boot.img。使用mkbootimg.exe工具對(duì)boot.img進(jìn)行重新打包。將重新打包好的boot.img拷貝到手機(jī),然后使用adb工具,將boot.img導(dǎo)入到原來(lái)boot分區(qū)中:catboot.img>/dev/block/sda8,。最后重啟手機(jī),即可運(yùn)行編譯后的boot.img。

下面對(duì)數(shù)據(jù)分區(qū)的加密效果進(jìn)行驗(yàn)證。

將手機(jī)連接電腦后,通過(guò)使用adb命令進(jìn)入手機(jī)。通過(guò)mount命令查看分區(qū)掛載情況,可以看到disksb節(jié)點(diǎn)成功掛載到/sbfs目錄上。輸入df命令,在原有data分區(qū)的基礎(chǔ)上,增加了掛載到sbfs目錄上的分區(qū),加密數(shù)據(jù)分區(qū)大小為1.7g。

制作一個(gè)內(nèi)容全為0x11的大小為512kb的文件test.img,將其拷貝到/sbfs下。然后將加密數(shù)據(jù)分區(qū)所在的磁盤空間拷貝出來(lái),用winhex工具觀察,搜索test.img的內(nèi)容,如圖4所示,搜索的內(nèi)容為“0x110x11等”,搜索結(jié)果并沒有相關(guān)內(nèi)容。將加密數(shù)據(jù)分區(qū)對(duì)應(yīng)的虛擬設(shè)備節(jié)點(diǎn)disksb的內(nèi)容拷貝出來(lái),如圖5所示,在拷貝出來(lái)的文件中搜索到test.img。

由此可見,用戶向加密數(shù)據(jù)分區(qū)拷貝數(shù)據(jù)時(shí),數(shù)據(jù)經(jīng)由disksb節(jié)點(diǎn)加密存儲(chǔ)在磁盤空間上,讀取數(shù)據(jù)時(shí)經(jīng)由disksb節(jié)點(diǎn)解密呈現(xiàn)在用戶面前。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
临泉县| 宕昌县| 理塘县| 琼结县| 汽车| 江油市| 扬中市| 庄河市| 蓬安县| 杨浦区| 济阳县| 澎湖县| 临猗县| 永德县| 彩票| 揭西县| 崇义县| 台南市| 济源市| 泉州市| 潼关县| 扶余县| 扎赉特旗| 阳泉市| 航空| 会同县| 凯里市| 祁连县| 西峡县| 毕节市| 山东省| 诸城市| 鄂尔多斯市| 新闻| 新源县| 柳江县| 宁津县| 巩留县| 石家庄市| 拉孜县| 宣汉县|