文獻(xiàn)標(biāo)識(shí)碼: A
DOI:10.16157/j.issn.0258-7998.173844
中文引用格式: 李立甫,李紅亮,古勇軍. 基于智能手機(jī)的保密U盤(pán)設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)應(yīng)用,2018,44(6):120-123,128.
英文引用格式: Li Lifu,Li Hongliang,Gu Yongjun. The design and implementation of the secure USB disk based on smart mobilephone[J]. Application of Electronic Technique,2018,44(6):120-123,128.
0 引言
近幾年,隨著移動(dòng)互聯(lián)網(wǎng)的普及和信息技術(shù)的發(fā)展,智能手機(jī)已經(jīng)成為人們工作、生活的必需品[1]。人們不但可以使用智能手機(jī)完成信息交互、娛樂(lè),而且利用智能手機(jī)充當(dāng)U盤(pán)完成數(shù)據(jù)存儲(chǔ)與傳輸?shù)姆绞揭苍絹?lái)越多地被使用[2]。然而由于智能手機(jī)平臺(tái)開(kāi)放性和網(wǎng)絡(luò)互連性強(qiáng),更易受病毒、木馬等外來(lái)攻擊[3],根據(jù)CVE Details提供的統(tǒng)計(jì)數(shù)據(jù)顯示,Android、Debian Linux和Ubuntu Linux被評(píng)為2016年最易受攻擊的3種產(chǎn)品。智能手機(jī)存儲(chǔ)的數(shù)據(jù)較傳統(tǒng)U盤(pán)更容易泄露?;诖?,本文提出了“基于智能手機(jī)的保密U盤(pán)”的數(shù)據(jù)防護(hù)方案。
1 系統(tǒng)設(shè)計(jì)
系統(tǒng)基本組成架構(gòu)如圖1所示,系統(tǒng)主要包括:控制手機(jī)、基于智能手機(jī)的保密U盤(pán)和上位機(jī)??刂剖謾C(jī)是普通智能手機(jī),其軟件模塊主要由身份認(rèn)證模塊、控制處理模塊和定位追蹤模塊等組成?;谥悄苁謾C(jī)的保密U盤(pán)主要由身份認(rèn)證模塊、APP動(dòng)態(tài)認(rèn)證模塊、遙控銷(xiāo)毀模塊和定位模塊等組成,其硬件實(shí)體為智能手機(jī)+TF卡,搭載系統(tǒng)為Android。上位機(jī)主要由身份認(rèn)證模塊、上位機(jī)動(dòng)態(tài)認(rèn)證模塊、磁盤(pán)加/卸載模塊和過(guò)濾驅(qū)動(dòng)模塊組成,其硬件平臺(tái)為普通PC,搭載系統(tǒng)為Windows,支持32位和64位。
系統(tǒng)可分為3個(gè)核心功能區(qū),分別為:加密存儲(chǔ)功能區(qū)、遙控銷(xiāo)毀功能區(qū)和定位追蹤功能區(qū)。
1.1 加密存儲(chǔ)功能區(qū)
加密存儲(chǔ)功能區(qū)主要由基于智能手機(jī)的保密U盤(pán)的APP動(dòng)態(tài)認(rèn)證模塊、TF卡和上位機(jī)程序組成,用于完成上位機(jī)與基于智能手機(jī)的保密U盤(pán)的動(dòng)態(tài)身份認(rèn)證,以及加密磁盤(pán)創(chuàng)建、加卸載、數(shù)據(jù)加解密與數(shù)據(jù)傳輸功能。
1.2 遙控銷(xiāo)毀功能區(qū)
遙控銷(xiāo)毀功能區(qū)主要由控制手機(jī)的控制處理模塊和基于智能手機(jī)的保密U盤(pán)的遙控銷(xiāo)毀模塊組成,在基于智能手機(jī)的保密U盤(pán)丟失或被盜后,可通過(guò)控制手機(jī)發(fā)送遙控銷(xiāo)毀指令(短信形式承載),基于智能手機(jī)的保密U盤(pán)收到指令后自動(dòng)清除保密分區(qū)(數(shù)據(jù)),達(dá)成設(shè)備丟失后的數(shù)據(jù)遙控銷(xiāo)毀功能。
1.3 定位追蹤功能區(qū)
定位追蹤功能區(qū)主要由控制手機(jī)的控制處理模塊和基于智能手機(jī)的保密U盤(pán)的定位模塊組成,主要用于完成基于智能手機(jī)的保密U盤(pán)的定位、位置回傳(通過(guò)短信指令)和定位追蹤功能,達(dá)成設(shè)備丟失后的定位追蹤和找回功能。
2 加密存儲(chǔ)原理與實(shí)現(xiàn)
加密存儲(chǔ)功能主要由上位機(jī)程序和過(guò)濾驅(qū)動(dòng)配合完成,采用核心層(Kernel,又叫驅(qū)動(dòng)層)實(shí)現(xiàn)透明加解密。上位機(jī)程序主要用于實(shí)現(xiàn)人機(jī)接口、身份認(rèn)證、密鑰設(shè)定、加密磁盤(pán)創(chuàng)建、掛載和卸載等工作。過(guò)濾驅(qū)動(dòng)采用Windows提供的可安裝文件系統(tǒng)(Installable File System)[4]開(kāi)發(fā)接口開(kāi)發(fā)完成,通過(guò)此驅(qū)動(dòng)實(shí)現(xiàn)透明加解密功能。上位機(jī)程序和過(guò)濾驅(qū)動(dòng)基于Visual Studio 2008開(kāi)發(fā)環(huán)境完成開(kāi)發(fā)。
2.1 密盤(pán)的創(chuàng)建、掛載與卸載
(1)密盤(pán)的創(chuàng)建
上位機(jī)軟件中,創(chuàng)建密盤(pán)分為4步來(lái)描述:①根據(jù)輸入的用戶(hù)口令生成密盤(pán)加密密鑰;②讀取需要格式化磁盤(pán)的各種信息,建立對(duì)應(yīng)數(shù)據(jù)結(jié)構(gòu);③在內(nèi)存中創(chuàng)建文件系統(tǒng)頭;④調(diào)用寫(xiě)磁盤(pán)命令,建立密盤(pán)。建立密盤(pán)時(shí),通過(guò)調(diào)用過(guò)濾驅(qū)動(dòng),將明文的文件系統(tǒng)結(jié)構(gòu)加密后寫(xiě)入對(duì)應(yīng)位置,實(shí)現(xiàn)文件系統(tǒng)的加密存儲(chǔ)。完成這幾步操作后,就將磁盤(pán)分區(qū)格式化為了密盤(pán)文件系統(tǒng)。其實(shí)現(xiàn)流程如圖2所示。
(2)密盤(pán)的掛/卸載
密盤(pán)文件系統(tǒng)的掛載是指將基于智能手機(jī)的保密U盤(pán)的密盤(pán)掛載到操作系統(tǒng)下。這里涉及編寫(xiě)密盤(pán)驅(qū)動(dòng)程序、掛/卸載分區(qū)、指定盤(pán)符等內(nèi)容。基于智能手機(jī)的保密U盤(pán)的密盤(pán)建立后,數(shù)據(jù)均是加密存儲(chǔ),采用掛載的方式是指在系統(tǒng)中進(jìn)行雙向身份認(rèn)證,通過(guò)認(rèn)證后,對(duì)密盤(pán)的訪問(wèn)將通過(guò)自動(dòng)調(diào)用過(guò)濾驅(qū)動(dòng)進(jìn)行處理,這時(shí)從操作系統(tǒng)層上看到的則是其真實(shí)的明文數(shù)據(jù),因此操作系統(tǒng)就可以對(duì)密盤(pán)數(shù)據(jù)進(jìn)行正常訪問(wèn)。
2.2 加密文件系統(tǒng)的實(shí)現(xiàn)
文件加密系統(tǒng)由文件過(guò)濾驅(qū)動(dòng)程序和用戶(hù)模式應(yīng)用程序組成[4]。如圖3所示,文件過(guò)濾驅(qū)動(dòng)程序接收用戶(hù)模式應(yīng)用程序傳來(lái)的設(shè)置信息,并按照這些信息對(duì)文件系統(tǒng)過(guò)濾驅(qū)動(dòng)進(jìn)行設(shè)置;對(duì)應(yīng)用程序發(fā)往文件系統(tǒng)的操作請(qǐng)求進(jìn)行監(jiān)控;在應(yīng)用程序?qū)Υ疟P(pán)上的文件進(jìn)行讀操作時(shí),進(jìn)行相應(yīng)的處理和解密操作;在進(jìn)行寫(xiě)操作時(shí),進(jìn)行加密操作。用戶(hù)模式應(yīng)用程序?qū)崿F(xiàn)PC與用戶(hù)之間的交互,將用戶(hù)設(shè)置信息通過(guò)用戶(hù)模式應(yīng)用程序與內(nèi)核模式程序的通信方式傳遞給文件過(guò)濾驅(qū)動(dòng)程序,并向用戶(hù)顯示文件過(guò)濾驅(qū)動(dòng)程序傳給用戶(hù)模式應(yīng)用程序的信息。
2.3 實(shí)現(xiàn)效果
(1)密盤(pán)創(chuàng)建、掛載、卸載功能
密盤(pán)創(chuàng)建、掛載、卸載功能實(shí)現(xiàn)效果如圖4所示。
上位機(jī)軟件可呈現(xiàn)基于智能手機(jī)的保密U盤(pán)的連接狀態(tài),可實(shí)現(xiàn)與保密U盤(pán)的雙向鑒權(quán)以及創(chuàng)建、加載和卸載保密分區(qū)的功能。
通過(guò)200次測(cè)試可以有效實(shí)現(xiàn)雙向鑒權(quán),實(shí)現(xiàn)保密分區(qū)的創(chuàng)建、加載與卸載功能,并且保密分區(qū)加載后與普通U盤(pán)使用方法完全一致。
(2)保密分區(qū)的讀寫(xiě)速度測(cè)試
作者使用ATTO DISK bench32對(duì)保密分區(qū)的讀寫(xiě)速度進(jìn)行了多次測(cè)試[5],如圖5所示,保密分區(qū)最大寫(xiě)速度接近16 MB/s,讀速度接近22 MB/s。
保密分區(qū)的讀寫(xiě)速度與普通U盤(pán)的讀寫(xiě)速度相差不大,基本不影響對(duì)數(shù)據(jù)的讀寫(xiě)。
(3)加/解密功能測(cè)試
作者采用WINHEX對(duì)基于智能手機(jī)的保密U盤(pán)加/解密功能進(jìn)行了測(cè)試[6],圖6為未加密數(shù)據(jù)圖,圖7為經(jīng)過(guò)濾驅(qū)動(dòng)加密后的數(shù)據(jù)圖。經(jīng)對(duì)比可以看出,數(shù)據(jù)經(jīng)過(guò)過(guò)濾驅(qū)動(dòng)后已經(jīng)被加密。
3 遙控銷(xiāo)毀的原理與實(shí)現(xiàn)
遙控銷(xiāo)毀的指令收發(fā)通過(guò)短信形式完成,編程采用Android標(biāo)準(zhǔn)API接口,指令解析采用自定義協(xié)議,數(shù)據(jù)處理及狀態(tài)監(jiān)控采用Android標(biāo)準(zhǔn)API接口開(kāi)發(fā)。
3.1 指令接收與發(fā)送
系統(tǒng)利用短消息作為信令載體,關(guān)鍵編程實(shí)現(xiàn)方式如下。
(1)指令發(fā)送
指令發(fā)送調(diào)用Android SDK的SmsManager類(lèi)進(jìn)行二次開(kāi)發(fā)[7]。
(2)指令接收
指令接收采用BroadcastReceiver廣播接收器的方式,監(jiān)聽(tīng)SMS消息服務(wù)。
(3)訪問(wèn)權(quán)限
集成Android系統(tǒng)的讀寫(xiě)短信訪問(wèn)權(quán)限。
3.2 指令生成與解析
指令生成與解析主要采用自定義協(xié)議,自定義協(xié)議如下。
(1)基于智能手機(jī)的保密U盤(pán)發(fā)送指令
基于智能手機(jī)的保密U盤(pán)指令如表1所示。
(2)控制手機(jī)發(fā)送指令
控制手機(jī)指令如表2所示。
3.3 數(shù)據(jù)處理
數(shù)據(jù)處理主要是指基于智能手機(jī)的保密U盤(pán)根據(jù)收到的控制指令做出相應(yīng)處理,清除sdcard文件。
(1)核心代碼
調(diào)用Android SDK的ContentResolver類(lèi)進(jìn)行實(shí)例化處理[8]。
(2)權(quán)限設(shè)置
集成Android系統(tǒng)的讀寫(xiě)sdcard訪問(wèn)權(quán)限。
3.4 狀態(tài)監(jiān)控
狀態(tài)監(jiān)控主要是監(jiān)控手機(jī)開(kāi)機(jī)啟動(dòng)和更換SIM/UIM卡狀態(tài),監(jiān)控方法如下:首先監(jiān)聽(tīng)系統(tǒng)開(kāi)機(jī)啟動(dòng)消息,然后在設(shè)備啟動(dòng)時(shí)檢測(cè)系統(tǒng)SIM/UIM卡的信息(SIM/UIM卡內(nèi)部信息包括:序列號(hào)、手機(jī)號(hào)、IMSI號(hào)等),最后對(duì)比SIM/UIM卡信息和設(shè)置的受監(jiān)聽(tīng)SIM/UIM信息是否相同,若相同則未更換,若不同則更換了。
(1)系統(tǒng)啟動(dòng)監(jiān)控
基于Android SDK的開(kāi)機(jī)啟動(dòng)監(jiān)聽(tīng)主要是采用BroadcastReceiver來(lái)接收Android系統(tǒng)的開(kāi)機(jī)啟動(dòng)消息廣播,并做相應(yīng)處理[9]。
(2)SIM卡信息檢測(cè)
在本系統(tǒng)的研發(fā)過(guò)程中發(fā)現(xiàn),不同SIM/UIM卡,其內(nèi)部存儲(chǔ)的信息不太相同,有的存有手機(jī)號(hào)碼,有的沒(méi)有;有的存有序列號(hào),有的沒(méi)有;只有IMSI號(hào)具備通用性[10]。因此,本系統(tǒng)采用SIM/UIM卡的IMSI號(hào)作為監(jiān)聽(tīng)換卡的依據(jù)。
3.5 實(shí)現(xiàn)效果
如圖8所示,控制手機(jī)可設(shè)置被控制號(hào)碼、控制方式以及選擇丟失后處理選項(xiàng)(包括:清除保密分區(qū)、位置通知、啟動(dòng)報(bào)警、停止報(bào)警、鎖死屏幕),最后點(diǎn)擊“指令發(fā)送”,可以實(shí)現(xiàn)對(duì)基于智能手機(jī)保密U盤(pán)丟失處理指令的生成和發(fā)送。
經(jīng)過(guò)200次不同環(huán)境測(cè)試,遙控銷(xiāo)毀平均處理時(shí)間為4 s,正常處理率為100%。
4 定位追蹤原理與實(shí)現(xiàn)
定位追蹤模塊主要功能架構(gòu)如圖9所示,基于智能手機(jī)的保密U盤(pán)通過(guò)GPS/北斗、移動(dòng)基站和WiFi多種方式定位[11-13],提交位置信息到定位模塊,并以短消息的形式上報(bào)位置信息到控制手機(jī)??刂剖謾C(jī)收到發(fā)來(lái)的丟失設(shè)備位置信息,顯示于地圖上,并可以做實(shí)時(shí)更新與定位追蹤。
4.1 定位模塊的實(shí)現(xiàn)
定位模塊采用Android傳感器API和開(kāi)源地圖API二次開(kāi)發(fā)實(shí)現(xiàn)。
4.2 導(dǎo)航追蹤功能的實(shí)現(xiàn)
定位追蹤功能模塊包括:丟失設(shè)備顯示模塊、站立點(diǎn)顯示模塊、地圖顯示模塊和追蹤路徑規(guī)劃模塊組成,協(xié)同完成丟失手機(jī)定位和追蹤功能。
4.3 實(shí)現(xiàn)效果
定位追蹤模塊實(shí)現(xiàn)效果如圖10所示,點(diǎn)擊設(shè)備位置,即可將丟失設(shè)備顯示在地圖上;點(diǎn)擊“駕車(chē)追蹤”、“公交追蹤”或“步行追蹤”,即可實(shí)現(xiàn)站立點(diǎn)到丟失設(shè)備位置的路徑規(guī)劃。
經(jīng)過(guò)30次,累計(jì)60 h、900公里的測(cè)試,位置更新指令傳遞平均用時(shí)8 s,地圖刷新平均用時(shí)2 s,正確定位追蹤準(zhǔn)確率為96%。
5 結(jié)束語(yǔ)
本文對(duì)智能手機(jī)充當(dāng)U盤(pán)完成數(shù)據(jù)傳輸?shù)氖褂梅绞降娘L(fēng)險(xiǎn)進(jìn)行了分析,提出一種“基于智能手機(jī)的保密U盤(pán)”的數(shù)據(jù)保護(hù)方案,并對(duì)其加密存儲(chǔ)、遙控銷(xiāo)毀、定位追蹤等核心功能進(jìn)行了編程實(shí)現(xiàn)和實(shí)驗(yàn)測(cè)試。通過(guò)測(cè)試證明了本方案可以有效達(dá)成智能手機(jī)充當(dāng)U盤(pán)完成數(shù)據(jù)傳輸這種使用方式的安全防護(hù)。
參考文獻(xiàn)
[1] 汪奕祥.Android惡意軟件檢測(cè)方法研究[D].合肥:合肥工業(yè)大學(xué),2016.
[2] 鄭理.Smartphone也能當(dāng)U盤(pán)[J].電子世界,2007(3):55-55.
[3] 梁丹.基于動(dòng)態(tài)字節(jié)碼注入的Android沙盒模型[D].上海:上海交通大學(xué),2015.
[4] 胡宏銀,姚峰,何成萬(wàn).一種基于文件過(guò)濾驅(qū)動(dòng)的Windows文件安全保護(hù)方案[J].計(jì)算機(jī)應(yīng)用,2009,29(1):168-171.
[5] 洪婷,張朝民,趙真.Micro SD與M2手機(jī)存儲(chǔ)卡的讀寫(xiě)速度分析[J].世界華商經(jīng)濟(jì)年鑒·高校教育研究,2009(5):160-162.
[6] 張輝,周柳陽(yáng),丁承林.Windows內(nèi)存取證的研究與應(yīng)用[J].科技傳播,2009(3):188.
[7] 王穎,李威耀.基于Android平臺(tái)的手機(jī)防盜與數(shù)據(jù)保護(hù)系統(tǒng)[J].電腦與微電子技術(shù),2013(18):62-64.
[8] 吳亞峰,索依娜.Android核心技術(shù)與實(shí)例講解[M].北京:電子工業(yè)出版社,2010.
[9] 浩明.基于安卓系統(tǒng)的手機(jī)防盜設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2014(14):36-39.
[10] 江燕良,黃海于.Android平臺(tái)手機(jī)防盜系統(tǒng)的安全解決方案[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2013,13(7):15-18.
[11] 張波.基于移動(dòng)主體技術(shù)的手機(jī)地圖服務(wù)[M].廈門(mén):廈門(mén)大學(xué),2008.
[12] 崔和宏.移動(dòng)定位技術(shù)概述[J].科技信息,2008(20):23-34.
[13] 劉穎,王樹(shù)勛,宋春莆.移動(dòng)終端定位算法及誤差分析[J].系統(tǒng)工程與電子技術(shù),2001,23(7):99-106.
作者信息:
李立甫,李紅亮,古勇軍
(陸軍工程大學(xué) 通信士官學(xué)校,重慶400035)