趙彥,施洋
(江蘇信息職業(yè)技術學院物聯(lián)網(wǎng)工程系,江蘇無錫214000)
基于Android平臺的手機安全通訊錄的設計與實現(xiàn)
趙彥,施洋
(江蘇信息職業(yè)技術學院物聯(lián)網(wǎng)工程系,江蘇無錫214000)
為了充分保障手機通訊錄信息的安全性,并充分利用智能手機原有資源,提出一種基于Android平臺的手機安全通訊錄系統(tǒng).該系統(tǒng)將原有聯(lián)系人、通話記錄和短信息三大功能合為一體,有效利用Android原生數(shù)據(jù)庫資源,使用Java多線程技術實現(xiàn)對原生數(shù)據(jù)庫信息的加密解密處理、手機丟失后的智能化GPS定位、通訊錄等手機存儲信息的智能化轉(zhuǎn)儲與刪除.實驗結果表明,該手機安全通訊錄系統(tǒng)能充分保證手機用戶的信息安全.
Android;安全通訊錄;Android原生數(shù)據(jù)庫;智能化保護;Java多線程技術
據(jù)英國調(diào)查咨詢公司W(wǎng)ireless Expertise的最新預計,截止到2013年,全球智能手機用戶數(shù)達到16億[1-2].手機已經(jīng)和人們的生活密不可分,手機里存儲的通訊錄、短信息、通話記錄、照片和文件,保存了用戶至關重要的信息和隱私.當前市場上的普通智能手機不具備信息保護功能,一旦手機丟失,將給用戶帶來災難性的損失,因此用戶希望手機具備以下保護性措施,防止災難事件發(fā)生[3]:
(1)能夠通過其他手機快速定位到自己的手機,或者手機本身能夠發(fā)送信息報告自己的位置.
(2)一旦證實手機無法找回,用戶可以把手機中的通信錄、短信息、甚至文件、圖片信息找回,或者刪除手機上的重要信息,以免泄露自己的隱私.
(3)具備手機自動報警功能.
針對這些需求,課題組研發(fā)了基于Android平臺的手機安全通訊錄,該系統(tǒng)將原有聯(lián)系人、通話記錄、短信息三大功能合為一體,有效利用Android原生數(shù)據(jù)庫資源,使用Java多線程技術實現(xiàn)對原生數(shù)據(jù)庫信息的加密解密處理,實現(xiàn)手機丟失后的智能化GPS定位,通訊錄等信息的智能化轉(zhuǎn)儲和刪除.
基于Android平臺的手機安全通訊錄涵蓋用戶登錄模塊、密碼設置模塊、備用設置模塊、定位設置模塊、鳴叫設置模塊、系統(tǒng)設置模塊、幫助模塊和通訊錄模塊,共計8大部分組成,其中通訊錄模塊又包含通話記錄管理、聯(lián)系人管理、短信息管理和設置管理4個部分.
(1)通話記錄管理實現(xiàn)未接來電、已撥電話、已接電話、全部通話記錄、按聯(lián)系人信息快速檢索等功能,同時實現(xiàn)撥號和按通話記錄撥打電話的功能.
(2)聯(lián)系人管理不僅實現(xiàn)了顯示聯(lián)系人信息,按字典序、按姓名、全文、密文搜索聯(lián)系人,對單個聯(lián)系人實現(xiàn)打電話、發(fā)短信、查看聯(lián)系人詳細信息、加密解密單個聯(lián)系人和刪除聯(lián)系人的功能,還可以創(chuàng)建群組,并按群組檢索聯(lián)系人.
(3)短信息管理實現(xiàn)了檢索全部短信息、查看回復短信息、群發(fā)短信息、新建短信息和刪除短信息等功能.
(4)設置管理實現(xiàn)了手機賬戶管理,該賬戶與云端賬戶互通可以實現(xiàn)聯(lián)系人信息上傳云端,同時涵蓋聯(lián)系人數(shù)據(jù)全部加密和解密的功能.
在Android智能手機上,使用SQLite3.8.1數(shù)據(jù)庫存儲系統(tǒng)所有數(shù)據(jù)信息.該系統(tǒng)的前端設置和安全保護部分使用自建數(shù)據(jù)庫phone.db,存儲系統(tǒng)設置信息和用戶信息.通訊錄信息存放于Android原生數(shù)據(jù)庫中,因此本系統(tǒng)使用的聯(lián)系人、通話記錄、短信息等信息與手機原生信息相同,即便使用備份、導入導出功能,恢復到另外一部手機上仍然可以使用;即使本系統(tǒng)被卸載,通訊錄信息依然可以使用原生畫面查看,不會導致信息丟失,這是本系統(tǒng)最大的特色.Android平臺手機安全通訊錄的系統(tǒng)架構如圖1所示.
圖1 基于Android平臺手機安全通訊錄的系統(tǒng)架構
2.1 界面設計緊湊、精致
使用Gallery技術將密碼設置、備用設置、定位設置、鳴叫設置、系統(tǒng)設置、幫助設置和通訊錄七大部分整合在一起,實現(xiàn)動態(tài)界面架構.主界面見圖2.
使用Tabhost與Inflater技術將撥號、聯(lián)系人、信息、設置畫面合為一體[4].通訊錄主題界面見圖3.
2.2 設計具有易伸縮性,能減少內(nèi)存泄露、高效使用內(nèi)存的界面
本系統(tǒng)采用MVC技術完成開發(fā),方便隨時修改已有界面、動態(tài)添加或修改界面的數(shù)量.
圖2 主界面設計
圖3 通訊錄主題界面設計
Android應用軟件開發(fā)過程中內(nèi)存泄露的問題,源于對上下文對象Context保持引用.解決的主要方法如下[4].
(1)如果要保持對一個Activity的Context的引用的話,應對這個應用的生命周期進行管理,例如在onDestroy中釋放該引用.
(2)如果使用應用系統(tǒng)的Context,而不是使用Activity的Context,那么獲得應用程序Context的具體方法是Context.getApplicationContext()或者Activity.getApplication().
(3)如果簡單應用了Activity的上下文的話,要使用WeakReference.
2.3 數(shù)據(jù)庫的訪問、持久化和管理技術
在Android 4.2.2版本的手機產(chǎn)品中,原生數(shù)據(jù)庫有幾十個,每個數(shù)據(jù)庫又有多個數(shù)據(jù)表.系統(tǒng)的數(shù)據(jù)存儲定位在Android原生數(shù)據(jù)庫[1,4].通過越獄,對系統(tǒng)原生數(shù)據(jù)庫中contacts2、telephony、mmssms三大系統(tǒng)數(shù)據(jù)庫中的近百張表進行研究.了解聯(lián)系人、通話記錄、短信息的具體存儲方式.由于具有在十幾張表之間完成數(shù)據(jù)加密、解密的功能,所以使用原生數(shù)據(jù)庫的技術難度遠遠高于用戶自建數(shù)據(jù)庫.
為了保證加密、解密及其他安全功能的實現(xiàn),構建輔助系統(tǒng)的自建數(shù)據(jù)庫[5-6]:phone.db.本數(shù)據(jù)庫在系統(tǒng)安裝包內(nèi)部,隨著系統(tǒng)安裝進行附加,系統(tǒng)卸載而卸載.phone.db數(shù)據(jù)庫中存放了兩個表,一個為PhoneTbl,存放安全設置的相關信息;另一個為desContacts,存放具體加密聯(lián)系人的id號碼.
不同品牌和Android版本的智能手機在原生數(shù)據(jù)庫的結構中略微存在差異,經(jīng)過在30多種品牌和不同Android版本間進行調(diào)整和測試,該系統(tǒng)適用于Android 2.0至Android 4.2.2版本間的任何款手機.主流手機品牌的測試結果見表1所示.
表1 系統(tǒng)可用性測試
2.4 基于“生產(chǎn)者-消費者”模式Java多線程技術[2,7]的信息整體加密、解密處理機制
為了較好地保護聯(lián)系人信息,該系統(tǒng)提供了全部聯(lián)系人信息的加密、解密功能,同時提供單個聯(lián)系人信息加密、解密功能以及對加密聯(lián)系人信息的智能化檢索功能,包括姓名檢索和全文檢索.
為了充分提高整體加密、解密的效率,在全部聯(lián)系人加密、解密操作時,使用了基于線程的“生產(chǎn)者-消費者”模式Java多線程技術實現(xiàn).
使用基于線程的“生產(chǎn)者-消費者”模式Java多線程技術完成數(shù)據(jù)加密的流程圖如圖4所示.
圖4 使用基于線程的“生產(chǎn)者-消費者”模式Java多線程技術完成數(shù)據(jù)加密
該算法的具體實現(xiàn)步驟如下.以整體加密為例進行講解,解密的步驟與加密步驟呈逆操作.
第一步:初始化操作
(1)設置DES加密秘鑰,該秘鑰是用戶登錄的登錄密碼;
(2)構建共享阻塞隊列;
(3)初始化資源系統(tǒng)資源;
第二步:啟動線程,開始加密
(4)啟動三個線程:讀取線程、DES加密線程、更新線程;
(5)讀取線程順次讀取聯(lián)系人信息,逐個將聯(lián)系人信息放入未加密隊列;
(6)DES加密線程,從未加密隊列中讀取信息,完成加密操作,將加密后的聯(lián)系人信息放入已加密隊列中,供更新線程讀??;
(7)更新線程從已加密隊列中讀取加密后的信息,更新加密表,和聯(lián)系人列表;
第三步:終止線程,進行性能測試
(8)當讀取線程無信息可讀,終止讀取線程;未加密隊列信息為空,終止DES加密線程;當已加密隊列為空,終止更新線程.完成加密流程,計算出加密總數(shù)及性能.
該算法具有四大優(yōu)點.
(1)手機的內(nèi)存容量畢竟有限,當對海量數(shù)據(jù)加密,多線程操作不存在內(nèi)存溢出問題;
(2)加密、解密過程與用戶其他操作互斥;
(3)讀取、加密、更新三個線程,加上系統(tǒng)主線程共四個線程,經(jīng)測試該算法在四核手機上性能最優(yōu).測試結果如表1和圖5所示;
(4)多線程模式的執(zhí)行效率遠遠高于單線程和非線程模式.
圖5給出了在聯(lián)系人數(shù)量相同的情況下,該算法與單線程、非線程模式在單核、雙核和四核手機上的測試結果,結果表明該算法更適用于四核Android智能手機.
圖5 基于“生產(chǎn)者-消費者”模式Java多線程加密、解密算法測試
2.5 其他安全保護功能的實現(xiàn)[3-4]
系統(tǒng)選用了JMail技術,向用戶指定的郵箱發(fā)送聯(lián)系人信息的備份,并將手機的當前位置信息發(fā)送到備份郵箱,達到保護手機、保護聯(lián)系人信息和用戶相關資料的目的.
系統(tǒng)使用了GPS技術保證手機安全性.主要體現(xiàn)在以下兩點.
(1)獲得當前的位置信息,一旦手機丟失,手機的GPS定位信息以及具體經(jīng)緯度等地理位置信息,將傳遞給備用手機號碼和備用郵箱.
(2)地圖導航,確定當前手機的地理位置.
系統(tǒng)使用了Android服務(Service)技術,保護手機信息安全.手機一旦丟失,用戶可以通過發(fā)送遠程通信命令,備份通信錄、短信息、照片等任意類型的用戶信息,按照備份郵箱和備份手機號碼,上傳給機主;同時用戶還可以通過發(fā)送遠程命令,刪除通信錄、短信、照片等用戶信息,保證個人信息不被泄露.整套服務如圖6所示.例如手機用戶發(fā)送“JSIT001+密碼”到丟失手機,實現(xiàn)遠程關機;發(fā)送“JSIT005+密碼”,實現(xiàn)遠程短信息刪除;發(fā)送“JSIT004+密碼”,實現(xiàn)圖片資料刪除.通過這些技術能夠充分保障手機用戶的信息安全.
即使手機處于關閉狀態(tài),也可以發(fā)送“JSIT000+密碼”命令,遠程開啟手機.之后可以進行其他控制操作,例如發(fā)送“JSIT006+密碼”將手機存儲的聯(lián)系人信息以郵件附件的形式發(fā)送到用戶設置的備份郵箱中.
圖6 系統(tǒng)保護模塊功能結構圖
由于系統(tǒng)功能較多,測試畫面累計達到300余張,此處僅給出最具特色的系統(tǒng)運行畫面.圖7(a)給出了聯(lián)系人整體加密后的畫面;圖7(b)給出了全球定位畫面;圖7(c)給出了手機丟失后返回手機地理位置信息的畫面;圖7(d)給出了發(fā)送“JSIT006+密碼”到手機,郵件獲取手機存儲聯(lián)系人信息的畫面.
圖7 系統(tǒng)使用效果演示
基于Android平臺的手機安全通訊錄,于2013年6月開發(fā)完成,已發(fā)布到“安卓市場”,2013年8月在全國第二屆“軟件杯”大賽總決賽中,此系統(tǒng)獲得全國二等獎.該系統(tǒng)已成功申報軟件著作權.后續(xù)任務將對安全保護功能進行深入性擴展,力爭實現(xiàn)更具特色的手機安全通訊錄系統(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è)軟件開發(fā)全程實戰(zhàn):以手機守護神為例[M].北京:電子工業(yè)出版社,2012.
[5]彭瑾玥,蔣東興,張新鈺,等.基于移動平臺的知識管理系統(tǒng)的設計與實現(xiàn)[J].武漢大學學報:理學版,2012(10):339-343.
[6]藍坤,張躍.基于Android的心電監(jiān)護軟件系統(tǒng)設計與實現(xiàn)[J].計算機工程與設計,2013(8):2951-2956.
[7]趙彥,顧曉燕,郭力子.Java EE框架技術進階式教程[M].北京:清華大學出版社,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
國家自然科學基金(60974016);江蘇省自然科學基金(BK20131097);江蘇省產(chǎn)學研聯(lián)合創(chuàng)新資金前瞻性聯(lián)合研究項目(BY2013017);2013年江蘇省大學生實踐創(chuàng)新訓練計劃項目(201313108012Y);江蘇省現(xiàn)代教育技術研究2013年基金項目(2013-R-26413);江蘇省教育科學“十二五”規(guī)劃基金項目(B-a/2013/03/007)
趙彥(1981-),女,講師/工程師,碩士,研究方向為計算機職業(yè)教育、軟件技術、計算機網(wǎng)絡、數(shù)據(jù)庫
時間:2014-06-27 16:33
http://www.cnki.net/kcms/detail/51.1630.Z.20140627.1633.005.htm l