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