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