基于Android的通信安防設(shè)計(jì)
摘要:針對當(dāng)前Android手機(jī)用戶通過手機(jī)訪問網(wǎng)絡(luò)的需求日益增加的情況,提出了增強(qiáng)基于Android手機(jī)網(wǎng)絡(luò)通信的安全性的目標(biāo),研究并采用在Android系統(tǒng)上實(shí)現(xiàn)攔截和過濾騷擾電話及短信的關(guān)鍵技術(shù),繼而給出一種實(shí)現(xiàn)Android系統(tǒng)過濾電話和短信黑白名單的防騷擾的方法。通過測試Android系統(tǒng)手機(jī)的實(shí)時(shí)短信以及來電,達(dá)到攔截白名單以外所有電話以及短信,或者攔截黑名單內(nèi)所有的電話以及短信的效果,從而驗(yàn)證Android通信安防系統(tǒng)的方法性和可實(shí)現(xiàn)性。
關(guān)鍵詞:Android;短信攔截;電話攔截;黑白名單
手機(jī)已經(jīng)成為當(dāng)今人們?nèi)粘I钪胁豢苫蛉钡囊徊糠?。普通手機(jī)很難滿足人們的要求,隨著科技的進(jìn)步和人們生活質(zhì)量的提高,手機(jī)不斷更新?lián)Q代,變得更加智能化,產(chǎn)生了智能手機(jī)。智能手機(jī)在越來越被大眾所接受的同時(shí),智能手機(jī)也伴生新的安全隱患。目前,手機(jī)上的應(yīng)用因?yàn)槭謾C(jī)的發(fā)展日漸豐富,移動(dòng)互聯(lián)網(wǎng)領(lǐng)域出現(xiàn)越來越多的信息安全問題,甚至已經(jīng)成為新的安全威脅。由此,可以看一下現(xiàn)有智能手機(jī)安全軟件的情況,目前針對智能手機(jī)的安全軟件大概分兩種,一種是硬安全用以殺毒;另一種軟安全用以惡意通信攔截和隱私保護(hù),還有就是兩者的功能結(jié)合體。手機(jī)的安全問題現(xiàn)在成為被社會(huì)各界普遍關(guān)注的熱點(diǎn)。
Google在2007年11月5日公布了Android手機(jī)系統(tǒng)平臺(tái)之后,Android很快進(jìn)入人們的視線。因?yàn)樽鳛橐苿?dòng)設(shè)備綜合平臺(tái)它達(dá)到了真正意義上的開放性,擁有移動(dòng)電話工作所需的全部軟件?;贏ndroid平臺(tái)的可開發(fā)性和免費(fèi)等特點(diǎn),既能在Android平臺(tái)上開發(fā)第三方軟件,從而促進(jìn)技術(shù)創(chuàng)新;有助于降低開發(fā)成本,方便創(chuàng)造特色化產(chǎn)品。這無疑使之成為智能手機(jī)操作系統(tǒng)的首選。
目前手機(jī)應(yīng)用中還是以電話通信和短信通信應(yīng)用最為廣泛,而電話騷擾與短信廣告騷擾日益嚴(yán)重,針對此現(xiàn)象,人們紛紛采取了應(yīng)用措施,其中,一些手機(jī)平臺(tái)相繼開發(fā)出了電話防火墻和短信防火墻。比如,塞班手機(jī)平臺(tái)的信安易衛(wèi)士,Android手機(jī)平臺(tái)下的SecrityGuarder等。文中針對上述問題,設(shè)計(jì)和實(shí)現(xiàn)了一種基于Android手機(jī)平臺(tái)的通信安防應(yīng)用,基本實(shí)現(xiàn)了攔截騷擾電話和短信。
1 Android簡介
Android是一種以Linux為基礎(chǔ)的開放源碼操作系統(tǒng),主要使用于便攜設(shè)備。目前尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),最初主要支持手機(jī)。2005年由Google收購注資,并組建開放手機(jī)聯(lián)盟開發(fā)改良,逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上。
1.1 Android系統(tǒng)具有5個(gè)優(yōu)點(diǎn)
1)開放性。
2)掙脫運(yùn)營商束縛。
3)豐富的硬件選擇。
4)不受任何限制的開發(fā)商。
5)無縫結(jié)合的Coogle應(yīng)用。
1.2 Android系統(tǒng)具有5個(gè)不足
1)安全和隱私。
2)首先開賣Android手機(jī)的不是最大運(yùn)營商。
3)運(yùn)營商任能夠影響Android手機(jī)。
4)同類機(jī)型用戶減少。
5)過分依賴開發(fā)商缺少標(biāo)準(zhǔn)配置。
1.3 Android的系統(tǒng)構(gòu)架
1.3.1 應(yīng)用程序
Android會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,應(yīng)用程序包包括Email客戶端、SMS短消息程序、日歷、地圖、瀏覽器、聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA語言編寫的。
1.3.2 應(yīng)用程序框架
開發(fā)人員直接調(diào)用的API。該應(yīng)用程序的架構(gòu)設(shè)計(jì)簡化了組件的重用;任何一個(gè)應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。同樣,該應(yīng)用程序重用機(jī)制也使用戶可以方便的替換程序組件。
1.3.3 程序庫
Android包含一些C/C++庫,這些庫是底層的,能被Android系統(tǒng)中應(yīng)用程序框架的組件使用。
1.3.4 Android運(yùn)行庫
Android包括了一個(gè)核心庫,該核心庫提供了JAVA編程語言核心庫的大多數(shù)功能。每個(gè)Android程序都在Dalvik虛擬機(jī)中運(yùn)行,擁有獨(dú)立的實(shí)例。Dalvik是基于寄存器的,可以高效運(yùn)行的虛擬系統(tǒng)。Dalvik虛擬機(jī)執(zhí)行(.dex)的Dalvik可執(zhí)行文件,該格式文件針對小內(nèi)存使用做了優(yōu)化。同時(shí)虛擬機(jī)是基于寄存器的,所有的類都經(jīng)由JAVA編譯器編譯,然后通過SDK中的“dx”工具轉(zhuǎn)化成.dex格式由虛擬機(jī)執(zhí)行。Dalv ik虛擬機(jī)依賴于linux內(nèi)核的一些功能,比如線程機(jī)制和底層內(nèi)存管理機(jī)制。
1.3.5 Linux Kernel
Android的核心系統(tǒng)服務(wù)依賴于Linux 2.6內(nèi)核,如安全性,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動(dòng)模型。Linux內(nèi)核也同時(shí)作為硬件和軟件棧之間的抽象層。
2 Android通信安防系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)
2.1 短信攔截功能
2.1.1 白名單
用戶如果只想接收特定號(hào)碼的短信則點(diǎn)擊白名單選框后,進(jìn)入白名單設(shè)置界面,在白名單里添加號(hào)碼,則除了輸入白名單的號(hào)碼能夠接入本機(jī),其他號(hào)碼用戶被自動(dòng)默認(rèn)為黑名單被屏蔽,同時(shí)被保存在查看短信歷史記錄里面,手機(jī)不會(huì)觸發(fā)短信接收的反映,在手機(jī)短信箱里也不會(huì)出現(xiàn)該短信。用戶可以通過查看短信歷史記錄,對接入的被屏蔽了的短信進(jìn)行查看。
2.1.2 黑名單
用戶如果想屏蔽特定號(hào)碼電話的短信則點(diǎn)擊黑名單選框后,進(jìn)入黑名單設(shè)置界面,在黑名單里添加號(hào)碼,當(dāng)其短信進(jìn)入時(shí)則被屏蔽,同時(shí)被保存在短信歷史記錄里面,手機(jī)不會(huì)觸發(fā)短信接收的反映,在手機(jī)短信箱里也不會(huì)出現(xiàn)該短信。用戶可以通過查看攔截歷史記錄,對接入的被屏蔽了的短信進(jìn)行查看。
2.2 電話攔截功能
2.2.1 白名單
用戶如果只想接聽特定號(hào)碼的電話則點(diǎn)擊白名單選框后,進(jìn)入白名單設(shè)置界面,在白名單里添加號(hào)碼,則除了輸入白名單的號(hào)碼能夠接入本機(jī),其他號(hào)碼用戶被自動(dòng)默認(rèn)為黑名單被屏蔽,同時(shí)被保存在攔截歷史記錄里面,同時(shí)被屏蔽的號(hào)碼用戶聽到電話提示對方呼叫繁忙的效果,從而無法接通。用戶可以通過查看攔截歷史記錄,對接入的被屏蔽了的電話進(jìn)行查看。
2.2.2 黑名單
用戶如果想屏蔽特定號(hào)碼電話的接入則點(diǎn)擊黑名單選框后,進(jìn)入黑名單設(shè)置界面,在黑名單里添加號(hào)碼,當(dāng)其接入時(shí)則被屏蔽,同時(shí)被保存在攔截歷史記錄里面,同時(shí)被屏蔽的號(hào)碼用戶聽到電話提示對方呼叫繁忙的效果,從而無法接通。用戶可以通過查看攔截歷史記錄,對接入的被屏蔽了的電話進(jìn)行查看。
2.3 設(shè)定時(shí)間功能
通過設(shè)置開始時(shí)間和停止時(shí)間從析讓應(yīng)用自動(dòng)在此時(shí)間斷內(nèi)開啟,超過時(shí)間后自動(dòng)關(guān)閉。
2.4 功能流程圖
如圖1所示為通信攔截系統(tǒng)的功能流程。
3 Android通信安防系統(tǒng)原理及實(shí)現(xiàn)
由于Android中本身沒有關(guān)于攔截來電和過濾短信的API,因此,在技術(shù)實(shí)現(xiàn)上需要采用了一些非常規(guī)的做法,難度相對較大。以下將介紹關(guān)于電話攔截和短信攔截技術(shù)。
3.1 Android-telephy整體框架原理
主要分為C/C++與Java兩層:
1)C/C++層:Rild,守護(hù)進(jìn)程,電話底層驅(qū)動(dòng)管理,GSM/GPRS modem,AI命令接口管理。
2)JAVA層:RIL.Java文件進(jìn)行電話短信服務(wù)線程通過Socket與Rild進(jìn)程通信;在java的服務(wù)線程池里面有telephy的服務(wù)接口;提供處理電話的功能接口。
3.2 短信攔截原理
固有短信的收取是通過底層框架的rild,解析之后,通過發(fā)送有序的廣播,對有序的廣播進(jìn)行中斷,通過設(shè)置廣播獲取的最高級(jí)別的權(quán)限屬性掛載程序,達(dá)到短信攔截的目的。BroadcastReceiver廣播類接收系統(tǒng)發(fā)出的短信廣播,獲取短信內(nèi)容過濾,使用abortBroadcast()方法中斷廣播避免短信到達(dá)SMS的應(yīng)用。
關(guān)鍵代碼:
3.3 電話攔截原理
基于Android框架的電話服務(wù),通過該服務(wù)可以獲取到電話的大體功能,通過內(nèi)部源碼,提供的隱藏電話服務(wù)功能的API()函數(shù),獲取到對電話處理的內(nèi)部方法調(diào)用AIDL接口ITelephy.a(chǎn)idl提供了endcall()方法,以此調(diào)用來攔截電話。電話來電信號(hào)從底層回調(diào)會(huì)發(fā)送一個(gè)無序的來電廣播和回調(diào)PhoneStateListener的接口,通過獲取廣播中的信息或者接口中的信息攔截電話。
關(guān)鍵代碼:
3.4 工作原理流程
通信安防系統(tǒng)工作原理流程如圖2所示。
4 實(shí)際測試
4.1 測試環(huán)境
1)本應(yīng)用開發(fā)后的.a(chǎn)pp應(yīng)用程序。
2)用于運(yùn)行此程序的基于android2.36系統(tǒng)的三星S5830手機(jī)。
3)用于對測試手機(jī)進(jìn)行電話通信和短信發(fā)送的兩部手機(jī),號(hào)碼為15883673262,18202866062。
4.2 測試過程
4.2.1 白名單測試
首先打開通信安防軟件,點(diǎn)擊打開攔截開關(guān)。然后進(jìn)入白名單,輸入電話號(hào)碼15883673262,表示除了此號(hào)外,其他電話的通話和短信都會(huì)被攔截。
接著用號(hào)碼為18202866062的電話接入本機(jī),并且發(fā)送內(nèi)容為“你好”的短信,在本機(jī)通信安防軟件里面分別點(diǎn)擊查看來電歷史和查看短信歷史看到如下圖效果。
測試成功,號(hào)碼為18202866062的電話對本機(jī)進(jìn)行的來電和短信都被成功攔截。
4.2.2 黑名單測試
在刪除上例中白名單中輸入的15883673262號(hào)碼后,進(jìn)入黑名單中輸入電話號(hào)碼15883673262,表示此號(hào)碼對本機(jī)進(jìn)行的通話和短信都會(huì)被攔截。
接著用號(hào)碼為15883673262的電話接入本機(jī),并且發(fā)送內(nèi)容為“你好啊”的短信,在本機(jī)通信安防軟件里面分別點(diǎn)擊查看來電歷史和查看短信歷史看到如圖10、圖11所示效果。
5 結(jié)束語
文中詳細(xì)介紹了基于Android平臺(tái)的來電攔截和短信攔截的實(shí)現(xiàn)原理以及測試效果,可看出它能較好的實(shí)現(xiàn)來電攔截和短信攔截的功能。但由于研究時(shí)間有限,設(shè)計(jì)還不盡完善,來電攔截技術(shù)上還有待改進(jìn)。如來電攔截,經(jīng)過多次試驗(yàn),其效果并沒達(dá)到所期望的那么好,當(dāng)有來電接入時(shí),如果是在原號(hào)碼前面加上86或者17951的前號(hào)則應(yīng)用程序視為不同的電話號(hào)碼處理。還有因?yàn)锳ndroid是一個(gè)開放的平臺(tái),會(huì)給許多居心不良者提供方面,利用此技術(shù)來做一些惡意攔截電話短信的軟件,從而會(huì)給廣大用戶代碼不必要的麻煩。后面還應(yīng)該需要在節(jié)能方面進(jìn)行改進(jìn),不使用service來維護(hù)后臺(tái)工作,而使用broadcastRecever來維護(hù)后臺(tái),可以節(jié)省Android大量的電量。
同時(shí)對于日新月異發(fā)展的Android技術(shù),希望在不久的將來google公司完善源碼中電話和短信安全控制,能脫離對Android通信安防應(yīng)用軟件的需求。
評論