• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Android平臺(tái)安全防護(hù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

      2015-05-30 10:48:04張楠滕英巖
      軟件工程 2015年7期
      關(guān)鍵詞:定位病毒用戶

      張楠 滕英巖

      摘 要:研究基于Android平臺(tái)的安全防護(hù)軟件,使用Android SDK和Java Web技術(shù)實(shí)現(xiàn)了Android平臺(tái)安全防護(hù)系統(tǒng)的各項(xiàng)功能。系統(tǒng)支持手機(jī)防盜找回、騷擾攔截、緩存清理、病毒掃描等功能,實(shí)現(xiàn)了對(duì)惡意程序和騷擾程序有效地?cái)r截,后臺(tái)服務(wù)器使用Servlet編寫部署在百度云平臺(tái),擁有快速的響應(yīng)和穩(wěn)定等特點(diǎn),給后期的維護(hù)工作帶來的極大的便捷。

      關(guān)鍵詞:Android平臺(tái)安全防護(hù)系統(tǒng);惡意程序;百度云平臺(tái)

      中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A

      1 引言(Introduction)

      近年來,Android平臺(tái)安全防護(hù)系統(tǒng)是目前市面上安卓平臺(tái)廣泛應(yīng)用的軟件系統(tǒng),然而信息安全領(lǐng)域在移動(dòng)與嵌入式安全研究開發(fā)上的行動(dòng)在過去幾年里過于緩慢),以至于移動(dòng)安全在某種程度上仍然被認(rèn)為是前沿研究,因?yàn)橐苿?dòng)設(shè)備的消費(fèi)者與用戶最近才開始察覺并理解日常使用移動(dòng)設(shè)備所面臨的安全威脅。這些威脅也隨之為移動(dòng)安全研究與安全產(chǎn)品創(chuàng)造了市場(chǎng)前景[1]。本文研究的安全防護(hù)系統(tǒng)采用最新的Android SDK開發(fā),本著精簡高效的原則,對(duì)市面上流行的安全軟件的功能進(jìn)行包含和實(shí)現(xiàn),由于占用內(nèi)存資源少,本系統(tǒng)兼容安裝Android 2.3.3到目前最新Android 4.2.2的所有智能手機(jī)。

      2 關(guān)鍵技術(shù)介紹(The introduction of key

      technology)

      2.1 Android系統(tǒng)平臺(tái)簡介

      Android是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,由Google公司和開放手機(jī)聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。尚未有統(tǒng)一中文名稱,中國大陸地區(qū)較多人使用“安卓”或“安致”。Android操作系統(tǒng)最初由Andy Rubin開發(fā),主要支持手機(jī)。2005年8月由Google收購注資。2007年11月,Google與84家硬件制造商、軟件開發(fā)商及電信營運(yùn)商組建開放手機(jī)聯(lián)盟共同研發(fā)改良Android系統(tǒng)。隨后Google以Apache開源許可證的授權(quán)方式,發(fā)布了Android的源代碼。第一部Android智能手機(jī)發(fā)布于2008年10月。Android逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上,如電視、數(shù)碼相機(jī)、游戲機(jī)等。2011年第一季度,Android在全球的市場(chǎng)份額首次超過塞班系統(tǒng),躍居全球第一。2013年的第四季度,Android平臺(tái)手機(jī)的全球市場(chǎng)份額已經(jīng)達(dá)到78.1%。2013年09月24日谷歌開發(fā)的操作系統(tǒng)Android在迎來了5歲生日,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達(dá)到10億臺(tái)[2]。

      2.2 手機(jī)惡意軟件

      手機(jī)惡意軟件,一般是指在用戶不完全知情和認(rèn)可(它包括未經(jīng)用戶許可、強(qiáng)迫引導(dǎo)用戶許可或隱瞞關(guān)鍵信息等)的情況下強(qiáng)行安裝到用戶手機(jī)中,或者一旦安裝就無法正常卸載和刪除,但又具備一定正常功能的軟件程序。

      惡意軟件是介于病毒和正常軟件之間的軟件,它與病毒的區(qū)別是:通常還具備一定的正常功能。

      相比于正常軟件,判定是否是惡意軟件的兩個(gè)標(biāo)準(zhǔn):

      (1)是否被安裝到了用戶手機(jī)中。

      (2)對(duì)于用戶而言,是否具有不可控制性:即用戶不完全知情和認(rèn)可,或者是安裝后無法讓用戶用正常的手段卸載和刪除。

      符合以下任意即可定義為惡意軟件:

      (1)沒有任何提示,暗地里發(fā)短信、聯(lián)網(wǎng)、扣費(fèi),輕微的發(fā)一次,嚴(yán)重的重復(fù)發(fā)。

      (2)雖然有提示,但提示很不顯眼,很容易讓新手用戶摁錯(cuò),誤導(dǎo)新手,導(dǎo)致發(fā)送短信、聯(lián)網(wǎng)、扣費(fèi)。

      (3)雖然有提示,但提示是虛假的,比如明明是CMNET,卻提示是CMWAP。

      (4)沒有提示或者誤導(dǎo)用戶,暗地里收集用戶個(gè)人資料的。

      (5)不經(jīng)用戶同意,捆綁了快捷鍵、書簽等可恢復(fù)性內(nèi)容。

      (6)安裝很容易,刪除不簡單。

      2.3 MD5算法簡介

      MD5算法為計(jì)算機(jī)安全領(lǐng)域廣泛使用的一種散列函數(shù),用以提供消息的完整性保護(hù)。MD5的作用是讓大容量信息在用數(shù)字簽名軟件簽署私人密鑰前被“壓縮”成一種保密的格式(就是把一個(gè)任意長度的字節(jié)串變換成一定長的十六進(jìn)制數(shù)字串)。MD5就可以為任何文件(不管其大小、格式、數(shù)量)產(chǎn)生一個(gè)同樣獨(dú)一無二的MD5“數(shù)字指紋”,如果任何人對(duì)文件做了任何改動(dòng),其MD5值也就是對(duì)應(yīng)的“數(shù)字指紋”都會(huì)發(fā)生變化。加密流程如圖1所示[3]。

      圖1 MD5加密算法流程圖

      Fig.1 Process of MD5 encryption algorithm

      2.4 Android安全權(quán)限機(jī)制

      Android本身是一個(gè)權(quán)限分立的操作系統(tǒng)。在這類操作系統(tǒng)中,每個(gè)應(yīng)用都以唯一的一個(gè)系統(tǒng)識(shí)別身份運(yùn)行(Linux用戶ID與群組ID)。系統(tǒng)的各部分也分別使用各自獨(dú)立的識(shí)別方式。Linux就是這樣將應(yīng)用與應(yīng)用,應(yīng)用與系統(tǒng)隔離開。

      系統(tǒng)更多的安全功能通過權(quán)限機(jī)制提供。權(quán)限可以限制某個(gè)特定進(jìn)程的特定操作,也可以限制每個(gè)URI權(quán)限對(duì)特定數(shù)據(jù)段的訪問。

      Android安全架構(gòu)的核心設(shè)計(jì)思想是,在默認(rèn)設(shè)置下,所有應(yīng)用都沒有權(quán)限對(duì)其他應(yīng)用、系統(tǒng)或用戶進(jìn)行較大影響的操作。這其中包括讀寫用戶隱私數(shù)據(jù)(聯(lián)系人或電子郵件),讀寫其他應(yīng)用文件,訪問網(wǎng)絡(luò)或阻止設(shè)備待機(jī)等。

      安裝應(yīng)用時(shí),在檢查程序簽名提及的權(quán)限,且經(jīng)過用戶確認(rèn)后,軟件包安裝器會(huì)給予應(yīng)用權(quán)限。從用戶角度看,一款A(yù)ndroid應(yīng)用通常會(huì)要求如下的權(quán)限:撥打電話、發(fā)送短信或彩信、修改/刪除SD卡上的內(nèi)容、讀取聯(lián)系人的信息、讀取日程信的息,寫入日程數(shù)據(jù)、讀取電話狀態(tài)或識(shí)別碼、精確的(基于GPS)地理位置、模糊的(基于網(wǎng)絡(luò)獲?。┑乩砦恢谩?chuàng)建藍(lán)牙連接、對(duì)互聯(lián)網(wǎng)的完全訪問、查看網(wǎng)絡(luò)狀態(tài),查看WiFi狀態(tài)、避免手機(jī)待機(jī)、修改系統(tǒng)全局設(shè)置、讀取同步設(shè)定、開機(jī)自啟動(dòng)、重啟其他應(yīng)用、終止運(yùn)行中的應(yīng)用、設(shè)定偏好應(yīng)用、震動(dòng)控制、拍攝圖片等。

      一款應(yīng)用應(yīng)該根據(jù)自身提供的功能,要求合理的權(quán)限。用戶也可以分析一款應(yīng)用所需權(quán)限,從而簡單判定這款應(yīng)用是否安全。如一款應(yīng)用是不帶廣告的單機(jī)版,也沒有任何附加的內(nèi)容需要下載,那么它要求訪問網(wǎng)絡(luò)的權(quán)限就比較可疑。

      3 系統(tǒng)設(shè)計(jì)(System design)

      3.1 系統(tǒng)結(jié)構(gòu)

      Android平臺(tái)安全防護(hù)系統(tǒng)采用Android原生SDK進(jìn)行開發(fā),客戶端主要由手機(jī)防盜、通訊衛(wèi)士、軟件管理、進(jìn)程管理、流量統(tǒng)計(jì)、病毒掃描、緩存清理、高級(jí)工具、設(shè)置中心這幾大模塊構(gòu)成,系統(tǒng)結(jié)構(gòu)如圖2所示。

      圖2 系統(tǒng)結(jié)構(gòu)圖

      Fig.2 System architecture diagram

      程序中各個(gè)模塊都有自己獨(dú)立的服務(wù)和廣播接收器為之提供支持,客戶端利用JSON數(shù)據(jù)格式和后臺(tái)服務(wù)器之間做數(shù)據(jù)交換,每個(gè)功能模塊之間相互獨(dú)立,但是由主頁面切換進(jìn)入。以手機(jī)防盜功能模塊為例,一共有四個(gè)頁面對(duì)數(shù)據(jù)進(jìn)行記錄,分別是設(shè)置密碼,綁定SIM卡,綁定安全號(hào)碼,啟動(dòng)管理員模式,當(dāng)數(shù)據(jù)記錄完畢后,后臺(tái)會(huì)有相應(yīng)的服務(wù)和廣播接收器啟動(dòng),來記錄安全號(hào)碼發(fā)入目標(biāo)手機(jī)的指令,從而可以啟動(dòng)相關(guān)功能對(duì)目標(biāo)手機(jī)執(zhí)行一系列的操作。

      3.2 數(shù)據(jù)庫設(shè)計(jì)

      數(shù)據(jù)庫密碼列采用MD5加密算法存儲(chǔ)密碼,這樣可以避免明文密碼的泄露。數(shù)據(jù)庫設(shè)計(jì)表如表1所示。

      表1 數(shù)據(jù)庫表設(shè)計(jì)

      Tab.1 Design of database table

      表名 類型 約束 備注

      UserID Verchar(30) 唯一 用戶唯一的ID號(hào)

      UserPass Varchar(30) 非空 用戶密碼

      4 系統(tǒng)實(shí)現(xiàn)(System implementation)

      本文著重對(duì)Android平臺(tái)安全防護(hù)系統(tǒng)子系統(tǒng)進(jìn)行剖析,闡釋系統(tǒng)的運(yùn)行原理。安全防護(hù)子系統(tǒng)主要包括手機(jī)防盜和病毒掃描模塊兩部分。

      4.1 手機(jī)防盜模塊

      手機(jī)防盜功能中包含手機(jī)定位、手機(jī)報(bào)警、手機(jī)鎖屏和手機(jī)數(shù)據(jù)清理功能。本模塊利用手機(jī)長駐后臺(tái)服務(wù)監(jiān)聽短信內(nèi)容,根據(jù)短信執(zhí)行相關(guān)操作[4]。定位功能是程在序中加入了百度地圖定位功能,當(dāng)用戶綁定了SIM卡和安全號(hào)碼后,如果手機(jī)丟失,用安全號(hào)碼手機(jī)直接編輯短信指令+密碼發(fā)送到丟失手機(jī)上,可以讓手機(jī)執(zhí)行定位操作并回復(fù)短信當(dāng)前手機(jī)所在坐標(biāo)位置。以下是部分定位功能的實(shí)現(xiàn)代碼段。

      public void initOption() {

      LocationClientOption option=new LocationClientOption();

      option.setLocationMode(LocationMode.Hight_Accuracy);//設(shè)置定位模式

      option.setCoorType("bd09ll");//返回的定位結(jié)果疊加地圖使用bd09ll模式

      option.setScanSpan(2000);//設(shè)置發(fā)起定位請(qǐng)求的間隔時(shí)間為5000ms

      option.setIsNeedAddress(true);//返回的定位結(jié)果包含地址信息

      option.setNeedDeviceDirect(true);//返回的定位結(jié)果包含手機(jī)機(jī)頭的方向

      option.setOpenGps(true);

      locClient.setLocOption(option);

      }

      public void TraceStart() {

      locClient.start();

      }

      public void TraceStop() {

      locClient.stop();

      }

      鎖屏功能是使用安全手機(jī)發(fā)送鎖屏指令,然后目標(biāo)手機(jī)會(huì)自動(dòng)執(zhí)行鎖屏指令。

      手機(jī)報(bào)警功能是收到安全號(hào)碼發(fā)來的指令后以最大聲音播放報(bào)警音樂。

      手機(jī)數(shù)據(jù)清理功能是接收到數(shù)據(jù)清理指令后在后臺(tái)執(zhí)行數(shù)據(jù)清理功能。觸發(fā)這些功能都是在后臺(tái)讓偷盜者無法察覺的情況下完成的。

      4.2 病毒掃描模塊

      病毒掃描模塊主要利用MD5特征匹配篩選安全程序和病毒程序,進(jìn)入掃描進(jìn)程后程序會(huì)在后臺(tái)將計(jì)算出每個(gè)程序的MD5值,然后利用云端同步的病毒特征庫進(jìn)行比對(duì),利用折半查找法加速了程序掃描大樣本數(shù)據(jù)庫的對(duì)比算法。當(dāng)病毒程序被掃描出,程序會(huì)提示用戶是否清理,如果用戶點(diǎn)擊清理按鈕程序會(huì)強(qiáng)制卸載目標(biāo)程序,掃描過程結(jié)束。

      病毒掃描過程部分核心代碼段如下:

      private void scanVirus() {

      pm=getPackageManager();

      tv_scan_status.setText("正在初始?xì)⒍疽?.....");

      new Thread(){

      @Override

      public void run() {

      Listinfos= pm.getInstalledPackages(0);

      pb.setMax(infos.size());

      int progress=0;

      for(PackageInfo info:infos) {

      //info.applicationInfo.dataDir; //數(shù)據(jù)文件保存地址

      String apkPath=info.applicationInfo.sourceDir; //APK安裝包路徑

      String md5=FileToMD5.GetFileMd5(apkPath);

      //準(zhǔn)備保存數(shù)據(jù)傳出讓UI線程更新

      ScanInfo scanInfo=new ScanInfo();

      scanInfo.Name=info.applicationInfo.loadLabel(pm).toString();

      scanInfo.packName=info.packageName;

      if(AntivirusTools.isVirus(md5)) {

      //發(fā)現(xiàn)病毒

      scanInfo.isVirus=true;

      }else{

      //掃描安全

      scanInfo.isVirus=false;

      }

      //定義消息,把消息發(fā)到UI線程更新界面

      Message msg=Message.obtain();

      msg.obj=scanInfo;

      msg.what=520;

      handler.sendMessage(msg);

      progress++;

      pb.setProgress(progress);

      }

      Message msg=Message.obtain();

      msg.what=0;

      handler.sendMessage(msg);

      }

      }.start();

      }

      5 關(guān)鍵問題(Core question)

      5.1 實(shí)現(xiàn)了病毒庫自動(dòng)更新

      程序在運(yùn)行過程中,固定的時(shí)間會(huì)向服務(wù)器拉取一個(gè)XML配置文件,里面是用JSON格式記錄的病毒庫版本和病毒庫下載地址。當(dāng)程序發(fā)現(xiàn)新版本病毒庫發(fā)布后,會(huì)自動(dòng)去更新病毒庫,由于病毒庫只是一個(gè)txt格式的文檔,所有占用流量不會(huì)太多。當(dāng)程序下載下新版本病毒庫后會(huì)自動(dòng)將數(shù)據(jù)插入已有的病毒庫。從而完成了病毒庫的更新操作。

      5.2 手機(jī)防盜模塊實(shí)現(xiàn)了手機(jī)自動(dòng)定位回傳功能

      當(dāng)手機(jī)收到安全號(hào)碼發(fā)來的指令的時(shí)候,手機(jī)會(huì)自動(dòng)啟動(dòng)定位功能,程序會(huì)自動(dòng)啟動(dòng)GPS,利用網(wǎng)絡(luò)輔助定位確定手機(jī)當(dāng)前坐標(biāo),并將坐標(biāo)點(diǎn)和手機(jī)所處位置名稱以短信的形式回傳至安全手機(jī),當(dāng)用戶收到定位點(diǎn)后利用百度坐標(biāo)拾取就可以輕松找到手機(jī)位置。這一定位和回傳過程都是在后臺(tái)完成的,前臺(tái)無任何痕跡,這也是為了保證用戶手機(jī)落入小偷手中定位過程不被小偷發(fā)現(xiàn)。

      5.3 手機(jī)防盜模塊實(shí)現(xiàn)了手機(jī)數(shù)據(jù)清理功能

      當(dāng)手機(jī)收到安全號(hào)碼發(fā)來的指令的時(shí)候,手機(jī)會(huì)開始抹

      去手機(jī)當(dāng)前的數(shù)據(jù),這一功能的開發(fā)主要是當(dāng)用戶手機(jī)無法定位的時(shí)候最后可以操作的,這也可以最大限度的保護(hù)用戶的隱私不被盜竊。但是由于這一功能需要開啟管理員權(quán)限,同時(shí)也讓第三方軟件無法卸載本程序。如果用戶需要卸載只需要關(guān)閉管理員權(quán)限然后就可以正常卸載了。

      5.4 安全防護(hù)系統(tǒng)自身安全性

      系統(tǒng)自身安全性又是項(xiàng)目的另一個(gè)重點(diǎn)。安全性問題主要來自于以下兩方面:

      (1)用戶密碼的安全性。如果用戶密碼被泄露,安全手機(jī)用密碼+指令就可以任意操作目標(biāo)手機(jī),所以在密碼的保存上面,程序使用MD5加密算法加密存儲(chǔ)至數(shù)據(jù)庫,用戶可以自己更改程序密碼。這樣安全手機(jī)只有在密碼正確的時(shí)候指令才有效。

      (2)服務(wù)器端的安全性。為保證服務(wù)器安全穩(wěn)定運(yùn)行,我們將編寫好的Servlet部署在百度云平臺(tái)上,在百度提供的高性能的服務(wù)器上避免了服務(wù)器的故障和惡意入侵的問題,百度云平臺(tái)之間的項(xiàng)目獨(dú)立運(yùn)行又不會(huì)相互影響。云平臺(tái)的智能性也大大減少了服務(wù)器端的維護(hù)成本和難度。

      6 結(jié)論(Conclusion)

      本Android平臺(tái)安全防護(hù)系統(tǒng)的開發(fā)解決了目前安全軟件體積龐大弊端,目前360和金山手機(jī)助手安裝完畢就已經(jīng)達(dá)到20MB左右,小內(nèi)存的手機(jī)安裝后會(huì)導(dǎo)致手機(jī)假死或者死機(jī)的癥狀。而Android平臺(tái)安全防護(hù)系統(tǒng)安裝包只有3.9MB,開啟后運(yùn)行服務(wù)也只有4MB左右,基本對(duì)手機(jī)的運(yùn)行不會(huì)產(chǎn)生太大的影響。同樣的功能我們的可以占用更少的內(nèi)存解決,這就是我們精簡系統(tǒng)的優(yōu)勢(shì)。

      然而系統(tǒng)還是有一些善待解決的問題,比如病毒特征庫的更新,比如程序執(zhí)行效率的優(yōu)化。因?yàn)榘踩愜浖羁粗氐木褪遣《咎卣鲙斓臄?shù)量,個(gè)人沒有辦法去獲取大量病毒特征庫特征值,所以本系統(tǒng)還是借鑒了最新版的金山毒霸的特征病毒庫才可以進(jìn)行掃描。

      參考文獻(xiàn)(References)

      [1] Joshua J.Drake.Android安全攻防權(quán)威指南[M].北京:人民郵電 出版社,2013.

      [2] 百度百科.android(Google公司開發(fā)的操作系統(tǒng))[EB/OL]. http://dwz.cn/test_android.

      [3] 百度百科.MD5加密[EB/OL].http://baike.baidu.com/view/ 1039631.htm.

      [4] 李興華.Android開發(fā)實(shí)戰(zhàn)經(jīng)典[M].北京:清華大學(xué)出版社, 2012:562-583.

      作者簡介:

      張 楠(1992-),男,本科生.研究領(lǐng)域:軟件開發(fā)及數(shù)據(jù)庫.滕英巖(1972-),女,碩士,教授.研究領(lǐng)域:嵌入式軟件及

      應(yīng)用.

      猜你喜歡
      定位病毒用戶
      病毒
      感冒病毒大作戰(zhàn)
      幼兒園(2021年16期)2021-12-06 01:06:36
      《導(dǎo)航定位與授時(shí)》征稿簡則
      病毒,快滾開
      Smartrail4.0定位和控制
      感冒病毒
      找準(zhǔn)定位 砥礪前行
      關(guān)注用戶
      商用汽車(2016年11期)2016-12-19 01:20:16
      關(guān)注用戶
      商用汽車(2016年6期)2016-06-29 09:18:54
      關(guān)注用戶
      商用汽車(2016年4期)2016-05-09 01:23:12
      剑阁县| 寻甸| 汝州市| 平果县| 长治市| 岳阳县| 和田市| 建昌县| 沐川县| 醴陵市| 栾城县| 澎湖县| 南陵县| 江北区| 珲春市| 高青县| 平湖市| 凌云县| 金沙县| 化州市| 门源| 竹北市| 临夏县| 台南市| 彩票| 塘沽区| 高雄县| 富顺县| 慈利县| 望城县| 阿拉尔市| 乌什县| 石渠县| 田东县| 临湘市| 牡丹江市| 河曲县| 鸡西市| 城口县| 永春县| 临夏县|