趙彥,施洋
(江蘇信息職業(yè)技術(shù)學(xué)院物聯(lián)網(wǎng)工程系,江蘇無(wú)錫214000)
基于Android平臺(tái)的手機(jī)安全通訊錄的設(shè)計(jì)與實(shí)現(xiàn)
趙彥,施洋
(江蘇信息職業(yè)技術(shù)學(xué)院物聯(lián)網(wǎng)工程系,江蘇無(wú)錫214000)
為了充分保障手機(jī)通訊錄信息的安全性,并充分利用智能手機(jī)原有資源,提出一種基于Android平臺(tái)的手機(jī)安全通訊錄系統(tǒng).該系統(tǒng)將原有聯(lián)系人、通話記錄和短信息三大功能合為一體,有效利用Android原生數(shù)據(jù)庫(kù)資源,使用Java多線程技術(shù)實(shí)現(xiàn)對(duì)原生數(shù)據(jù)庫(kù)信息的加密解密處理、手機(jī)丟失后的智能化GPS定位、通訊錄等手機(jī)存儲(chǔ)信息的智能化轉(zhuǎn)儲(chǔ)與刪除.實(shí)驗(yàn)結(jié)果表明,該手機(jī)安全通訊錄系統(tǒng)能充分保證手機(jī)用戶的信息安全.
Android;安全通訊錄;Android原生數(shù)據(jù)庫(kù);智能化保護(hù);Java多線程技術(shù)
據(jù)英國(guó)調(diào)查咨詢公司W(wǎng)ireless Expertise的最新預(yù)計(jì),截止到2013年,全球智能手機(jī)用戶數(shù)達(dá)到16億[1-2].手機(jī)已經(jīng)和人們的生活密不可分,手機(jī)里存儲(chǔ)的通訊錄、短信息、通話記錄、照片和文件,保存了用戶至關(guān)重要的信息和隱私.當(dāng)前市場(chǎng)上的普通智能手機(jī)不具備信息保護(hù)功能,一旦手機(jī)丟失,將給用戶帶來(lái)災(zāi)難性的損失,因此用戶希望手機(jī)具備以下保護(hù)性措施,防止災(zāi)難事件發(fā)生[3]:
(1)能夠通過(guò)其他手機(jī)快速定位到自己的手機(jī),或者手機(jī)本身能夠發(fā)送信息報(bào)告自己的位置.
(2)一旦證實(shí)手機(jī)無(wú)法找回,用戶可以把手機(jī)中的通信錄、短信息、甚至文件、圖片信息找回,或者刪除手機(jī)上的重要信息,以免泄露自己的隱私.
(3)具備手機(jī)自動(dòng)報(bào)警功能.
針對(duì)這些需求,課題組研發(fā)了基于Android平臺(tái)的手機(jī)安全通訊錄,該系統(tǒng)將原有聯(lián)系人、通話記錄、短信息三大功能合為一體,有效利用Android原生數(shù)據(jù)庫(kù)資源,使用Java多線程技術(shù)實(shí)現(xiàn)對(duì)原生數(shù)據(jù)庫(kù)信息的加密解密處理,實(shí)現(xiàn)手機(jī)丟失后的智能化GPS定位,通訊錄等信息的智能化轉(zhuǎn)儲(chǔ)和刪除.
基于Android平臺(tái)的手機(jī)安全通訊錄涵蓋用戶登錄模塊、密碼設(shè)置模塊、備用設(shè)置模塊、定位設(shè)置模塊、鳴叫設(shè)置模塊、系統(tǒng)設(shè)置模塊、幫助模塊和通訊錄模塊,共計(jì)8大部分組成,其中通訊錄模塊又包含通話記錄管理、聯(lián)系人管理、短信息管理和設(shè)置管理4個(gè)部分.
(1)通話記錄管理實(shí)現(xiàn)未接來(lái)電、已撥電話、已接電話、全部通話記錄、按聯(lián)系人信息快速檢索等功能,同時(shí)實(shí)現(xiàn)撥號(hào)和按通話記錄撥打電話的功能.
(2)聯(lián)系人管理不僅實(shí)現(xiàn)了顯示聯(lián)系人信息,按字典序、按姓名、全文、密文搜索聯(lián)系人,對(duì)單個(gè)聯(lián)系人實(shí)現(xiàn)打電話、發(fā)短信、查看聯(lián)系人詳細(xì)信息、加密解密單個(gè)聯(lián)系人和刪除聯(lián)系人的功能,還可以創(chuàng)建群組,并按群組檢索聯(lián)系人.
(3)短信息管理實(shí)現(xiàn)了檢索全部短信息、查看回復(fù)短信息、群發(fā)短信息、新建短信息和刪除短信息等功能.
(4)設(shè)置管理實(shí)現(xiàn)了手機(jī)賬戶管理,該賬戶與云端賬戶互通可以實(shí)現(xiàn)聯(lián)系人信息上傳云端,同時(shí)涵蓋聯(lián)系人數(shù)據(jù)全部加密和解密的功能.
在Android智能手機(jī)上,使用SQLite3.8.1數(shù)據(jù)庫(kù)存儲(chǔ)系統(tǒng)所有數(shù)據(jù)信息.該系統(tǒng)的前端設(shè)置和安全保護(hù)部分使用自建數(shù)據(jù)庫(kù)phone.db,存儲(chǔ)系統(tǒng)設(shè)置信息和用戶信息.通訊錄信息存放于Android原生數(shù)據(jù)庫(kù)中,因此本系統(tǒng)使用的聯(lián)系人、通話記錄、短信息等信息與手機(jī)原生信息相同,即便使用備份、導(dǎo)入導(dǎo)出功能,恢復(fù)到另外一部手機(jī)上仍然可以使用;即使本系統(tǒng)被卸載,通訊錄信息依然可以使用原生畫(huà)面查看,不會(huì)導(dǎo)致信息丟失,這是本系統(tǒng)最大的特色.Android平臺(tái)手機(jī)安全通訊錄的系統(tǒng)架構(gòu)如圖1所示.
圖1 基于Android平臺(tái)手機(jī)安全通訊錄的系統(tǒng)架構(gòu)
2.1 界面設(shè)計(jì)緊湊、精致
使用Gallery技術(shù)將密碼設(shè)置、備用設(shè)置、定位設(shè)置、鳴叫設(shè)置、系統(tǒng)設(shè)置、幫助設(shè)置和通訊錄七大部分整合在一起,實(shí)現(xiàn)動(dòng)態(tài)界面架構(gòu).主界面見(jiàn)圖2.
使用Tabhost與Inflater技術(shù)將撥號(hào)、聯(lián)系人、信息、設(shè)置畫(huà)面合為一體[4].通訊錄主題界面見(jiàn)圖3.
2.2 設(shè)計(jì)具有易伸縮性,能減少內(nèi)存泄露、高效使用內(nèi)存的界面
本系統(tǒng)采用MVC技術(shù)完成開(kāi)發(fā),方便隨時(shí)修改已有界面、動(dòng)態(tài)添加或修改界面的數(shù)量.
圖2 主界面設(shè)計(jì)
圖3 通訊錄主題界面設(shè)計(jì)
Android應(yīng)用軟件開(kāi)發(fā)過(guò)程中內(nèi)存泄露的問(wèn)題,源于對(duì)上下文對(duì)象Context保持引用.解決的主要方法如下[4].
(1)如果要保持對(duì)一個(gè)Activity的Context的引用的話,應(yīng)對(duì)這個(gè)應(yīng)用的生命周期進(jìn)行管理,例如在onDestroy中釋放該引用.
(2)如果使用應(yīng)用系統(tǒng)的Context,而不是使用Activity的Context,那么獲得應(yīng)用程序Context的具體方法是Context.getApplicationContext()或者Activity.getApplication().
(3)如果簡(jiǎn)單應(yīng)用了Activity的上下文的話,要使用WeakReference.
2.3 數(shù)據(jù)庫(kù)的訪問(wèn)、持久化和管理技術(shù)
在Android 4.2.2版本的手機(jī)產(chǎn)品中,原生數(shù)據(jù)庫(kù)有幾十個(gè),每個(gè)數(shù)據(jù)庫(kù)又有多個(gè)數(shù)據(jù)表.系統(tǒng)的數(shù)據(jù)存儲(chǔ)定位在Android原生數(shù)據(jù)庫(kù)[1,4].通過(guò)越獄,對(duì)系統(tǒng)原生數(shù)據(jù)庫(kù)中contacts2、telephony、mmssms三大系統(tǒng)數(shù)據(jù)庫(kù)中的近百?gòu)埍磉M(jìn)行研究.了解聯(lián)系人、通話記錄、短信息的具體存儲(chǔ)方式.由于具有在十幾張表之間完成數(shù)據(jù)加密、解密的功能,所以使用原生數(shù)據(jù)庫(kù)的技術(shù)難度遠(yuǎn)遠(yuǎn)高于用戶自建數(shù)據(jù)庫(kù).
為了保證加密、解密及其他安全功能的實(shí)現(xiàn),構(gòu)建輔助系統(tǒng)的自建數(shù)據(jù)庫(kù)[5-6]:phone.db.本數(shù)據(jù)庫(kù)在系統(tǒng)安裝包內(nèi)部,隨著系統(tǒng)安裝進(jìn)行附加,系統(tǒng)卸載而卸載.phone.db數(shù)據(jù)庫(kù)中存放了兩個(gè)表,一個(gè)為PhoneTbl,存放安全設(shè)置的相關(guān)信息;另一個(gè)為desContacts,存放具體加密聯(lián)系人的id號(hào)碼.
不同品牌和Android版本的智能手機(jī)在原生數(shù)據(jù)庫(kù)的結(jié)構(gòu)中略微存在差異,經(jīng)過(guò)在30多種品牌和不同Android版本間進(jìn)行調(diào)整和測(cè)試,該系統(tǒng)適用于Android 2.0至Android 4.2.2版本間的任何款手機(jī).主流手機(jī)品牌的測(cè)試結(jié)果見(jiàn)表1所示.
表1 系統(tǒng)可用性測(cè)試
2.4 基于“生產(chǎn)者-消費(fèi)者”模式Java多線程技術(shù)[2,7]的信息整體加密、解密處理機(jī)制
為了較好地保護(hù)聯(lián)系人信息,該系統(tǒng)提供了全部聯(lián)系人信息的加密、解密功能,同時(shí)提供單個(gè)聯(lián)系人信息加密、解密功能以及對(duì)加密聯(lián)系人信息的智能化檢索功能,包括姓名檢索和全文檢索.
為了充分提高整體加密、解密的效率,在全部聯(lián)系人加密、解密操作時(shí),使用了基于線程的“生產(chǎn)者-消費(fèi)者”模式Java多線程技術(shù)實(shí)現(xiàn).
使用基于線程的“生產(chǎn)者-消費(fèi)者”模式Java多線程技術(shù)完成數(shù)據(jù)加密的流程圖如圖4所示.
圖4 使用基于線程的“生產(chǎn)者-消費(fèi)者”模式Java多線程技術(shù)完成數(shù)據(jù)加密
該算法的具體實(shí)現(xiàn)步驟如下.以整體加密為例進(jìn)行講解,解密的步驟與加密步驟呈逆操作.
第一步:初始化操作
(1)設(shè)置DES加密秘鑰,該秘鑰是用戶登錄的登錄密碼;
(2)構(gòu)建共享阻塞隊(duì)列;
(3)初始化資源系統(tǒng)資源;
第二步:?jiǎn)?dòng)線程,開(kāi)始加密
(4)啟動(dòng)三個(gè)線程:讀取線程、DES加密線程、更新線程;
(5)讀取線程順次讀取聯(lián)系人信息,逐個(gè)將聯(lián)系人信息放入未加密隊(duì)列;
(6)DES加密線程,從未加密隊(duì)列中讀取信息,完成加密操作,將加密后的聯(lián)系人信息放入已加密隊(duì)列中,供更新線程讀取;
(7)更新線程從已加密隊(duì)列中讀取加密后的信息,更新加密表,和聯(lián)系人列表;
第三步:終止線程,進(jìn)行性能測(cè)試
(8)當(dāng)讀取線程無(wú)信息可讀,終止讀取線程;未加密隊(duì)列信息為空,終止DES加密線程;當(dāng)已加密隊(duì)列為空,終止更新線程.完成加密流程,計(jì)算出加密總數(shù)及性能.
該算法具有四大優(yōu)點(diǎn).
(1)手機(jī)的內(nèi)存容量畢竟有限,當(dāng)對(duì)海量數(shù)據(jù)加密,多線程操作不存在內(nèi)存溢出問(wèn)題;
(2)加密、解密過(guò)程與用戶其他操作互斥;
(3)讀取、加密、更新三個(gè)線程,加上系統(tǒng)主線程共四個(gè)線程,經(jīng)測(cè)試該算法在四核手機(jī)上性能最優(yōu).測(cè)試結(jié)果如表1和圖5所示;
(4)多線程模式的執(zhí)行效率遠(yuǎn)遠(yuǎn)高于單線程和非線程模式.
圖5給出了在聯(lián)系人數(shù)量相同的情況下,該算法與單線程、非線程模式在單核、雙核和四核手機(jī)上的測(cè)試結(jié)果,結(jié)果表明該算法更適用于四核Android智能手機(jī).
圖5 基于“生產(chǎn)者-消費(fèi)者”模式Java多線程加密、解密算法測(cè)試
2.5 其他安全保護(hù)功能的實(shí)現(xiàn)[3-4]
系統(tǒng)選用了JMail技術(shù),向用戶指定的郵箱發(fā)送聯(lián)系人信息的備份,并將手機(jī)的當(dāng)前位置信息發(fā)送到備份郵箱,達(dá)到保護(hù)手機(jī)、保護(hù)聯(lián)系人信息和用戶相關(guān)資料的目的.
系統(tǒng)使用了GPS技術(shù)保證手機(jī)安全性.主要體現(xiàn)在以下兩點(diǎn).
(1)獲得當(dāng)前的位置信息,一旦手機(jī)丟失,手機(jī)的GPS定位信息以及具體經(jīng)緯度等地理位置信息,將傳遞給備用手機(jī)號(hào)碼和備用郵箱.
(2)地圖導(dǎo)航,確定當(dāng)前手機(jī)的地理位置.
系統(tǒng)使用了Android服務(wù)(Service)技術(shù),保護(hù)手機(jī)信息安全.手機(jī)一旦丟失,用戶可以通過(guò)發(fā)送遠(yuǎn)程通信命令,備份通信錄、短信息、照片等任意類型的用戶信息,按照備份郵箱和備份手機(jī)號(hào)碼,上傳給機(jī)主;同時(shí)用戶還可以通過(guò)發(fā)送遠(yuǎn)程命令,刪除通信錄、短信、照片等用戶信息,保證個(gè)人信息不被泄露.整套服務(wù)如圖6所示.例如手機(jī)用戶發(fā)送“JSIT001+密碼”到丟失手機(jī),實(shí)現(xiàn)遠(yuǎn)程關(guān)機(jī);發(fā)送“JSIT005+密碼”,實(shí)現(xiàn)遠(yuǎn)程短信息刪除;發(fā)送“JSIT004+密碼”,實(shí)現(xiàn)圖片資料刪除.通過(guò)這些技術(shù)能夠充分保障手機(jī)用戶的信息安全.
即使手機(jī)處于關(guān)閉狀態(tài),也可以發(fā)送“JSIT000+密碼”命令,遠(yuǎn)程開(kāi)啟手機(jī).之后可以進(jìn)行其他控制操作,例如發(fā)送“JSIT006+密碼”將手機(jī)存儲(chǔ)的聯(lián)系人信息以郵件附件的形式發(fā)送到用戶設(shè)置的備份郵箱中.
圖6 系統(tǒng)保護(hù)模塊功能結(jié)構(gòu)圖
由于系統(tǒng)功能較多,測(cè)試畫(huà)面累計(jì)達(dá)到300余張,此處僅給出最具特色的系統(tǒng)運(yùn)行畫(huà)面.圖7(a)給出了聯(lián)系人整體加密后的畫(huà)面;圖7(b)給出了全球定位畫(huà)面;圖7(c)給出了手機(jī)丟失后返回手機(jī)地理位置信息的畫(huà)面;圖7(d)給出了發(fā)送“JSIT006+密碼”到手機(jī),郵件獲取手機(jī)存儲(chǔ)聯(lián)系人信息的畫(huà)面.
圖7 系統(tǒng)使用效果演示
基于Android平臺(tái)的手機(jī)安全通訊錄,于2013年6月開(kāi)發(fā)完成,已發(fā)布到“安卓市場(chǎng)”,2013年8月在全國(guó)第二屆“軟件杯”大賽總決賽中,此系統(tǒng)獲得全國(guó)二等獎(jiǎng).該系統(tǒng)已成功申報(bào)軟件著作權(quán).后續(xù)任務(wù)將對(duì)安全保護(hù)功能進(jìn)行深入性擴(kuò)展,力爭(zhēng)實(shí)現(xiàn)更具特色的手機(jī)安全通訊錄系統(tǒng).
[1]Mednieks Z,Dornin L,Meike G B,etal.Programming android[M]. O'ReillyMedia,Inc,2011.
[2]Goetz B,Peierls T,Bloch J,etal.Java concurrency in practice[M]. London:Pearson Education,Inc,2012.
[3]Gavalas D,Economou D.Developmentplatforms formobileapplications:Statusand trends[J].IEEESoftware,2011,28(1):77-86.
[4]王家林.Android商業(yè)軟件開(kāi)發(fā)全程實(shí)戰(zhàn):以手機(jī)守護(hù)神為例[M].北京:電子工業(yè)出版社,2012.
[5]彭瑾玥,蔣東興,張新鈺,等.基于移動(dòng)平臺(tái)的知識(shí)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].武漢大學(xué)學(xué)報(bào):理學(xué)版,2012(10):339-343.
[6]藍(lán)坤,張躍.基于Android的心電監(jiān)護(hù)軟件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2013(8):2951-2956.
[7]趙彥,顧曉燕,郭力子.Java EE框架技術(shù)進(jìn)階式教程[M].北京:清華大學(xué)出版社,2011.
【編校:王露】
Design and Im plementation ofMobile Phone Security Contacts Based on Android Platform
ZHAOYan,SHIYang
(Internet ofThings Engineering Department,Jiangsu Information Vocational Technology College,Wuxi,Jiangsu 214000, China)
In order to fully guarantee the security ofmobile phone contacts information,andmake full use ofexisting resourcesof intelligentmobile phone,a system ofmobile phone security contactsbased on Android platform waspresented. The system will integrate the original three functions of contacts,phone records and shortmessage into one,realizing the effective usage of native Android database;the system employs Javamulti-thread technology to achieve encryption and decryption processingof thenative Android database,intelligentGPSpositioningof themobile phonewhen it is lost,intelligentdumping and deletion ofmobile phone stored information.The experimental results show that,this securitymobile phone contacts system can fully guarantee themobile phone users'information security.
Android;security contacts;native Android database;intelligentprotection;Javamulti-thread technology
TP319;TN929.5
A
1671-5365(2014)12-0073-04
2014-03-28修回:2014-05-19
國(guó)家自然科學(xué)基金(60974016);江蘇省自然科學(xué)基金(BK20131097);江蘇省產(chǎn)學(xué)研聯(lián)合創(chuàng)新資金前瞻性聯(lián)合研究項(xiàng)目(BY2013017);2013年江蘇省大學(xué)生實(shí)踐創(chuàng)新訓(xùn)練計(jì)劃項(xiàng)目(201313108012Y);江蘇省現(xiàn)代教育技術(shù)研究2013年基金項(xiàng)目(2013-R-26413);江蘇省教育科學(xué)“十二五”規(guī)劃基金項(xiàng)目(B-a/2013/03/007)
趙彥(1981-),女,講師/工程師,碩士,研究方向?yàn)橛?jì)算機(jī)職業(yè)教育、軟件技術(shù)、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)
時(shí)間:2014-06-27 16:33
http://www.cnki.net/kcms/detail/51.1630.Z.20140627.1633.005.htm l