趙彥,施洋
(江蘇信息職業(yè)技術學院物聯網工程系,江蘇無錫214000)
基于Android平臺的手機安全通訊錄的設計與實現
趙彥,施洋
(江蘇信息職業(yè)技術學院物聯網工程系,江蘇無錫214000)
為了充分保障手機通訊錄信息的安全性,并充分利用智能手機原有資源,提出一種基于Android平臺的手機安全通訊錄系統.該系統將原有聯系人、通話記錄和短信息三大功能合為一體,有效利用Android原生數據庫資源,使用Java多線程技術實現對原生數據庫信息的加密解密處理、手機丟失后的智能化GPS定位、通訊錄等手機存儲信息的智能化轉儲與刪除.實驗結果表明,該手機安全通訊錄系統能充分保證手機用戶的信息安全.
Android;安全通訊錄;Android原生數據庫;智能化保護;Java多線程技術
據英國調查咨詢公司Wireless Expertise的最新預計,截止到2013年,全球智能手機用戶數達到16億[1-2].手機已經和人們的生活密不可分,手機里存儲的通訊錄、短信息、通話記錄、照片和文件,保存了用戶至關重要的信息和隱私.當前市場上的普通智能手機不具備信息保護功能,一旦手機丟失,將給用戶帶來災難性的損失,因此用戶希望手機具備以下保護性措施,防止災難事件發(fā)生[3]:
(1)能夠通過其他手機快速定位到自己的手機,或者手機本身能夠發(fā)送信息報告自己的位置.
(2)一旦證實手機無法找回,用戶可以把手機中的通信錄、短信息、甚至文件、圖片信息找回,或者刪除手機上的重要信息,以免泄露自己的隱私.
(3)具備手機自動報警功能.
針對這些需求,課題組研發(fā)了基于Android平臺的手機安全通訊錄,該系統將原有聯系人、通話記錄、短信息三大功能合為一體,有效利用Android原生數據庫資源,使用Java多線程技術實現對原生數據庫信息的加密解密處理,實現手機丟失后的智能化GPS定位,通訊錄等信息的智能化轉儲和刪除.
基于Android平臺的手機安全通訊錄涵蓋用戶登錄模塊、密碼設置模塊、備用設置模塊、定位設置模塊、鳴叫設置模塊、系統設置模塊、幫助模塊和通訊錄模塊,共計8大部分組成,其中通訊錄模塊又包含通話記錄管理、聯系人管理、短信息管理和設置管理4個部分.
(1)通話記錄管理實現未接來電、已撥電話、已接電話、全部通話記錄、按聯系人信息快速檢索等功能,同時實現撥號和按通話記錄撥打電話的功能.
(2)聯系人管理不僅實現了顯示聯系人信息,按字典序、按姓名、全文、密文搜索聯系人,對單個聯系人實現打電話、發(fā)短信、查看聯系人詳細信息、加密解密單個聯系人和刪除聯系人的功能,還可以創(chuàng)建群組,并按群組檢索聯系人.
(3)短信息管理實現了檢索全部短信息、查看回復短信息、群發(fā)短信息、新建短信息和刪除短信息等功能.
(4)設置管理實現了手機賬戶管理,該賬戶與云端賬戶互通可以實現聯系人信息上傳云端,同時涵蓋聯系人數據全部加密和解密的功能.
在Android智能手機上,使用SQLite3.8.1數據庫存儲系統所有數據信息.該系統的前端設置和安全保護部分使用自建數據庫phone.db,存儲系統設置信息和用戶信息.通訊錄信息存放于Android原生數據庫中,因此本系統使用的聯系人、通話記錄、短信息等信息與手機原生信息相同,即便使用備份、導入導出功能,恢復到另外一部手機上仍然可以使用;即使本系統被卸載,通訊錄信息依然可以使用原生畫面查看,不會導致信息丟失,這是本系統最大的特色.Android平臺手機安全通訊錄的系統架構如圖1所示.

圖1 基于Android平臺手機安全通訊錄的系統架構
2.1 界面設計緊湊、精致
使用Gallery技術將密碼設置、備用設置、定位設置、鳴叫設置、系統設置、幫助設置和通訊錄七大部分整合在一起,實現動態(tài)界面架構.主界面見圖2.
使用Tabhost與Inflater技術將撥號、聯系人、信息、設置畫面合為一體[4].通訊錄主題界面見圖3.
2.2 設計具有易伸縮性,能減少內存泄露、高效使用內存的界面
本系統采用MVC技術完成開發(fā),方便隨時修改已有界面、動態(tài)添加或修改界面的數量.

圖2 主界面設計

圖3 通訊錄主題界面設計
Android應用軟件開發(fā)過程中內存泄露的問題,源于對上下文對象Context保持引用.解決的主要方法如下[4].
(1)如果要保持對一個Activity的Context的引用的話,應對這個應用的生命周期進行管理,例如在onDestroy中釋放該引用.
(2)如果使用應用系統的Context,而不是使用Activity的Context,那么獲得應用程序Context的具體方法是Context.getApplicationContext()或者Activity.getApplication().
(3)如果簡單應用了Activity的上下文的話,要使用WeakReference.
2.3 數據庫的訪問、持久化和管理技術
在Android 4.2.2版本的手機產品中,原生數據庫有幾十個,每個數據庫又有多個數據表.系統的數據存儲定位在Android原生數據庫[1,4].通過越獄,對系統原生數據庫中contacts2、telephony、mmssms三大系統數據庫中的近百張表進行研究.了解聯系人、通話記錄、短信息的具體存儲方式.由于具有在十幾張表之間完成數據加密、解密的功能,所以使用原生數據庫的技術難度遠遠高于用戶自建數據庫.
為了保證加密、解密及其他安全功能的實現,構建輔助系統的自建數據庫[5-6]:phone.db.本數據庫在系統安裝包內部,隨著系統安裝進行附加,系統卸載而卸載.phone.db數據庫中存放了兩個表,一個為PhoneTbl,存放安全設置的相關信息;另一個為desContacts,存放具體加密聯系人的id號碼.
不同品牌和Android版本的智能手機在原生數據庫的結構中略微存在差異,經過在30多種品牌和不同Android版本間進行調整和測試,該系統適用于Android 2.0至Android 4.2.2版本間的任何款手機.主流手機品牌的測試結果見表1所示.

表1 系統可用性測試
2.4 基于“生產者-消費者”模式Java多線程技術[2,7]的信息整體加密、解密處理機制
為了較好地保護聯系人信息,該系統提供了全部聯系人信息的加密、解密功能,同時提供單個聯系人信息加密、解密功能以及對加密聯系人信息的智能化檢索功能,包括姓名檢索和全文檢索.
為了充分提高整體加密、解密的效率,在全部聯系人加密、解密操作時,使用了基于線程的“生產者-消費者”模式Java多線程技術實現.
使用基于線程的“生產者-消費者”模式Java多線程技術完成數據加密的流程圖如圖4所示.

圖4 使用基于線程的“生產者-消費者”模式Java多線程技術完成數據加密
該算法的具體實現步驟如下.以整體加密為例進行講解,解密的步驟與加密步驟呈逆操作.
第一步:初始化操作
(1)設置DES加密秘鑰,該秘鑰是用戶登錄的登錄密碼;
(2)構建共享阻塞隊列;
(3)初始化資源系統資源;
第二步:啟動線程,開始加密
(4)啟動三個線程:讀取線程、DES加密線程、更新線程;
(5)讀取線程順次讀取聯系人信息,逐個將聯系人信息放入未加密隊列;
(6)DES加密線程,從未加密隊列中讀取信息,完成加密操作,將加密后的聯系人信息放入已加密隊列中,供更新線程讀取;
(7)更新線程從已加密隊列中讀取加密后的信息,更新加密表,和聯系人列表;
第三步:終止線程,進行性能測試
(8)當讀取線程無信息可讀,終止讀取線程;未加密隊列信息為空,終止DES加密線程;當已加密隊列為空,終止更新線程.完成加密流程,計算出加密總數及性能.
該算法具有四大優(yōu)點.
(1)手機的內存容量畢竟有限,當對海量數據加密,多線程操作不存在內存溢出問題;
(2)加密、解密過程與用戶其他操作互斥;
(3)讀取、加密、更新三個線程,加上系統主線程共四個線程,經測試該算法在四核手機上性能最優(yōu).測試結果如表1和圖5所示;
(4)多線程模式的執(zhí)行效率遠遠高于單線程和非線程模式.
圖5給出了在聯系人數量相同的情況下,該算法與單線程、非線程模式在單核、雙核和四核手機上的測試結果,結果表明該算法更適用于四核Android智能手機.

圖5 基于“生產者-消費者”模式Java多線程加密、解密算法測試
2.5 其他安全保護功能的實現[3-4]
系統選用了JMail技術,向用戶指定的郵箱發(fā)送聯系人信息的備份,并將手機的當前位置信息發(fā)送到備份郵箱,達到保護手機、保護聯系人信息和用戶相關資料的目的.
系統使用了GPS技術保證手機安全性.主要體現在以下兩點.
(1)獲得當前的位置信息,一旦手機丟失,手機的GPS定位信息以及具體經緯度等地理位置信息,將傳遞給備用手機號碼和備用郵箱.
(2)地圖導航,確定當前手機的地理位置.
系統使用了Android服務(Service)技術,保護手機信息安全.手機一旦丟失,用戶可以通過發(fā)送遠程通信命令,備份通信錄、短信息、照片等任意類型的用戶信息,按照備份郵箱和備份手機號碼,上傳給機主;同時用戶還可以通過發(fā)送遠程命令,刪除通信錄、短信、照片等用戶信息,保證個人信息不被泄露.整套服務如圖6所示.例如手機用戶發(fā)送“JSIT001+密碼”到丟失手機,實現遠程關機;發(fā)送“JSIT005+密碼”,實現遠程短信息刪除;發(fā)送“JSIT004+密碼”,實現圖片資料刪除.通過這些技術能夠充分保障手機用戶的信息安全.
即使手機處于關閉狀態(tài),也可以發(fā)送“JSIT000+密碼”命令,遠程開啟手機.之后可以進行其他控制操作,例如發(fā)送“JSIT006+密碼”將手機存儲的聯系人信息以郵件附件的形式發(fā)送到用戶設置的備份郵箱中.

圖6 系統保護模塊功能結構圖
由于系統功能較多,測試畫面累計達到300余張,此處僅給出最具特色的系統運行畫面.圖7(a)給出了聯系人整體加密后的畫面;圖7(b)給出了全球定位畫面;圖7(c)給出了手機丟失后返回手機地理位置信息的畫面;圖7(d)給出了發(fā)送“JSIT006+密碼”到手機,郵件獲取手機存儲聯系人信息的畫面.

圖7 系統使用效果演示
基于Android平臺的手機安全通訊錄,于2013年6月開發(fā)完成,已發(fā)布到“安卓市場”,2013年8月在全國第二屆“軟件杯”大賽總決賽中,此系統獲得全國二等獎.該系統已成功申報軟件著作權.后續(xù)任務將對安全保護功能進行深入性擴展,力爭實現更具特色的手機安全通訊錄系統.
[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]彭瑾玥,蔣東興,張新鈺,等.基于移動平臺的知識管理系統的設計與實現[J].武漢大學學報:理學版,2012(10):339-343.
[6]藍坤,張躍.基于Android的心電監(jiā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);江蘇省產學研聯合創(chuàng)新資金前瞻性聯合研究項目(BY2013017);2013年江蘇省大學生實踐創(chuàng)新訓練計劃項目(201313108012Y);江蘇省現代教育技術研究2013年基金項目(2013-R-26413);江蘇省教育科學“十二五”規(guī)劃基金項目(B-a/2013/03/007)
趙彥(1981-),女,講師/工程師,碩士,研究方向為計算機職業(yè)教育、軟件技術、計算機網絡、數據庫
時間:2014-06-27 16:33
http://www.cnki.net/kcms/detail/51.1630.Z.20140627.1633.005.htm l