用的重要第三方應(yīng)用程序,如支付寶、網(wǎng)上銀行、微信等應(yīng)用程序的標(biāo)識(shí)信息記錄于白名單,以將該些應(yīng)用程序作為默認(rèn)經(jīng)過建立通信隧道進(jìn)行信息傳輸?shù)膽?yīng)用。當(dāng)依據(jù)獲取的標(biāo)識(shí)信息判定應(yīng)用程序是否存在于預(yù)設(shè)白名單時(shí),可通過遠(yuǎn)程接口向云端服務(wù)器請(qǐng)求獲取相應(yīng)的白名單,查詢所述判定的應(yīng)用程序是否存在于預(yù)設(shè)白名單中,以確定是否為該應(yīng)用程序建立通信隧道。
[0077]S13、為存在于預(yù)設(shè)白名單中的應(yīng)用程序建立基于虛擬專用網(wǎng)協(xié)議的通信隧道。
[0078]為了實(shí)現(xiàn)對(duì)通信隧道的建立,本發(fā)明所述方法預(yù)先向系統(tǒng)注冊(cè)一個(gè)VPN服務(wù),以通過該服務(wù)取得建立和維護(hù)通信隧道的控制權(quán)。其中,所述通信隧道是指基于虛擬專用網(wǎng)協(xié)議實(shí)現(xiàn)的通信隧道,具體而言,可以采用PPTP、L2TP、IPSec中的任意一種協(xié)議實(shí)現(xiàn)。在具體實(shí)施例中,基于Android系統(tǒng)建立VPN服務(wù)的原理如下:
[0079]1、應(yīng)用程序使用socket將數(shù)據(jù)包發(fā)送到真實(shí)的網(wǎng)絡(luò)設(shè)備;
[0080]2、系統(tǒng)通過iptables,使用NAT,將所有數(shù)據(jù)包轉(zhuǎn)發(fā)到TUN虛擬網(wǎng)絡(luò)設(shè)備,端口為tunO ;
[0081]3、系統(tǒng)VPN服務(wù)程序打開TUN設(shè)備并讀取相應(yīng)的數(shù)據(jù),獲得所有轉(zhuǎn)發(fā)到TUN虛擬網(wǎng)絡(luò)設(shè)備上的IP包;
[0082]4、VPN服務(wù)程序?qū)ι鲜霁@取的IP數(shù)據(jù)包做處理,通過真實(shí)的網(wǎng)絡(luò)設(shè)備發(fā)送出去。
[0083]基于上述原理,通過Android系統(tǒng)提供的Vpnservice框架,利用系統(tǒng)提供的API,獲得應(yīng)用程序的所有IP數(shù)據(jù)包,以對(duì)IP數(shù)據(jù)包進(jìn)行處理,與遠(yuǎn)端VPN服務(wù)器進(jìn)行連接交互,實(shí)現(xiàn)將應(yīng)用程序的IP數(shù)據(jù)包經(jīng)通信隧道進(jìn)行安全傳輸。
[0084]在具體實(shí)施例中,所述VPN服務(wù)在未建立所述通信隧道之前,可以先向用戶界面彈框,以提示用戶是否對(duì)當(dāng)前的應(yīng)用程序建立通信隧道。當(dāng)用戶選擇建立所述通信隧道時(shí),由該VPN服務(wù)調(diào)用系統(tǒng)的相應(yīng)功能,建立基于虛擬專用網(wǎng)協(xié)議的通信隧道;否則,不建立通信隧道。即,是否建立所述通信隧道的控制權(quán)交給用戶,以用戶選定為依據(jù)決定是否建立所述通信隧道。
[0085]在具體實(shí)施例中,所述通信隧道的建立步驟如下:
[0086]步驟1:VPN服務(wù)向VPN服務(wù)器發(fā)送連接請(qǐng)求;
[0087]步驟2:建立VPN服務(wù)與VPN服務(wù)器之間的連接;
[0088]步驟3:所述VPN服務(wù)與VPN服務(wù)器進(jìn)行通信確定采用的通信協(xié)議、加密算法、密鑰及相關(guān)參數(shù)信息。
[0089]建立上述通信隧道后,對(duì)基于該通信隧道進(jìn)行信號(hào)傳輸?shù)膽?yīng)用程序的通信數(shù)據(jù)包依照上述步驟3確定加密算法進(jìn)行加密,并按照步驟3確定的通信協(xié)議將通信數(shù)據(jù)包進(jìn)行重新封裝,以使封裝后的加密數(shù)據(jù)包在建立的通信隧道中安全傳輸。其中,對(duì)所述應(yīng)用程序的通信數(shù)據(jù)包進(jìn)行加密采用的加密算法為非對(duì)稱加密算法。
[0090]如果應(yīng)用程序不屬于預(yù)設(shè)的白名單中的應(yīng)用程序,則不建立所述通信隧道,直接將該應(yīng)用程序的數(shù)據(jù)包經(jīng)無線局域網(wǎng)傳輸至其目標(biāo)服務(wù)器,以完成應(yīng)用程序與其目標(biāo)服務(wù)器之間的通信。
[0091]進(jìn)一步地,對(duì)于本發(fā)明而非某一具體實(shí)施例而言,可以通過加強(qiáng)對(duì)網(wǎng)絡(luò)環(huán)境的識(shí)別而加強(qiáng)移動(dòng)終端應(yīng)用程序通信安全的防護(hù)。如WiFi接入點(diǎn)可以分為兩類,一是具有一定安全性的專有接入點(diǎn),如辦公室、家庭等私有環(huán)境接入點(diǎn);二是在公共場(chǎng)所使用的公共網(wǎng)絡(luò)接入點(diǎn),如餐廳、咖啡廳,以及各運(yùn)營(yíng)商提供的接入點(diǎn)等。本發(fā)明所述方法可以獨(dú)立或于諸如360免費(fèi)WiFi之類的應(yīng)用相結(jié)合使用,檢測(cè)網(wǎng)絡(luò)接入點(diǎn)的安全性,如果為公共網(wǎng)絡(luò)接入點(diǎn),則強(qiáng)制對(duì)移動(dòng)終端的諸如支付寶等支付類應(yīng)用或其他重要應(yīng)用建立所述通信隧道,也可以基于其他需要保護(hù)的應(yīng)用程序彈框提示用戶,由用戶選擇是否對(duì)相應(yīng)的應(yīng)用程序建立通信隧道,由此以確保移動(dòng)終端安裝的應(yīng)用程序在存在信息泄露的公共網(wǎng)絡(luò)中進(jìn)行通信的安全性。而對(duì)于安全性較高的私人環(huán)境的網(wǎng)絡(luò)接入點(diǎn),可提供相關(guān)的預(yù)設(shè)置項(xiàng),由用戶自主決定是否默認(rèn)為相應(yīng)的應(yīng)用程序建立通信隧道進(jìn)行數(shù)據(jù)的遠(yuǎn)程傳輸。
[0092]圖3是以本發(fā)明所述方法為基礎(chǔ)而實(shí)現(xiàn)的一個(gè)具體應(yīng)用實(shí)施例的流程示意圖,用于進(jìn)一步具體揭示本發(fā)明所述方法原理。以下結(jié)合其中所揭示的流程說明整個(gè)程序的設(shè)計(jì)邏輯,以供參照實(shí)現(xiàn)本發(fā)明方法:
[0093]1、檢測(cè)移動(dòng)終端接入的網(wǎng)絡(luò)是否安全,如果接入的網(wǎng)絡(luò)安全,則執(zhí)行步驟7 ;如果存在風(fēng)險(xiǎn),則繼續(xù)按序執(zhí)行。
[0094]2、驗(yàn)證應(yīng)用程序是否合法,如果合法則繼續(xù)按序執(zhí)行;如果不合法則執(zhí)行步驟8 ;
[0095]3、獲取應(yīng)用程序的身份標(biāo)識(shí)信息;
[0096]4、判斷所述應(yīng)用程序是否存在于預(yù)設(shè)白名單中,如果存在,則繼續(xù)按序執(zhí)行;如果不存在,則執(zhí)行步驟9;
[0097]5、為應(yīng)用程序建立基于虛擬專用網(wǎng)協(xié)議的安全通信隧道;
[0098]6、基于建立的安全通信隧道傳輸應(yīng)用程序的數(shù)據(jù)包至其目標(biāo)服務(wù)器;
[0099]7、提供相關(guān)的預(yù)設(shè)置項(xiàng),由用戶決定是否為相應(yīng)的應(yīng)用程序建立通信隧道進(jìn)行數(shù)據(jù)的遠(yuǎn)程傳輸。
[0100]8、顯示提示消息以及對(duì)應(yīng)的處理操作選項(xiàng),以接收用戶相應(yīng)的觸發(fā)指令,對(duì)應(yīng)用程序做相應(yīng)處理。
[0101]9、對(duì)該應(yīng)用程序不建立通信隧道,直接將其數(shù)據(jù)包經(jīng)無線局域網(wǎng)發(fā)送至應(yīng)用程序的目標(biāo)服務(wù)器。
[0102]為了以模塊化的方式對(duì)本發(fā)明所述方法做進(jìn)一步說明,本發(fā)明提供一種移動(dòng)終端應(yīng)用程序安全交互的裝置,包括標(biāo)識(shí)信息獲取模塊11、判斷模塊12、通信隧道建立模塊13,其中,
[0103]標(biāo)識(shí)信息獲取模塊11,用于獲取用于唯一性確定應(yīng)用程序身份的標(biāo)識(shí)信息;
[0104]UID不同于通常所述的用戶ID,由于Android系統(tǒng)是單用戶系統(tǒng),故不需要通過UID確定用戶身份,Android系統(tǒng)為了管理應(yīng)用程序,為每個(gè)應(yīng)用程序分配一個(gè)UID,以UID實(shí)現(xiàn)數(shù)據(jù)的共享,并用來識(shí)別應(yīng)用程序的身份。因此,標(biāo)識(shí)信息獲取模塊11可通過獲取應(yīng)用程序的UID唯一性確定其身份。具體可通過執(zhí)行以下代碼獲取:
[0105]packageManager pm = getPackageManager ();
[0106]Applicat1nInfo ai = pm.getApplicat1nlnfo( “com.gesoft.bit.1avendercloud,,, packageManager.GET_ACTIVITIES);
[0107]string uid = a1.uid ;
[0108]當(dāng)然,所述應(yīng)用程序的UID只是對(duì)應(yīng)用程序身份標(biāo)識(shí)信息的舉例,還可以包括如應(yīng)用程序的包名、通信端口、訪問的服務(wù)器域名等,任何可以唯一確定該應(yīng)用程序的信息都可以作為本發(fā)明所述的身份標(biāo)識(shí)信息。
[0109]其中,獲取應(yīng)用程序的身份標(biāo)識(shí)信息之前,先對(duì)應(yīng)用程序的合法性進(jìn)行驗(yàn)證,由驗(yàn)證模塊通過驗(yàn)證應(yīng)用程序的包名和/或簽名確定應(yīng)用程序是否合法。在具體實(shí)施例中,將應(yīng)用程序的包名或簽名通過遠(yuǎn)程接口上傳到云端服務(wù)器,由云端服務(wù)器對(duì)應(yīng)用程序的簽名進(jìn)行認(rèn)證,具體步驟為:提取簽名中的任何一段,對(duì)其進(jìn)行hash取值,將該hash值與云端服務(wù)器中保存的正確hash值對(duì)比,如果一致則認(rèn)證成功,該應(yīng)用程序合法;如果不一致則認(rèn)證失敗,該應(yīng)用程序不合法。云端服務(wù)器還可以根據(jù)預(yù)先統(tǒng)計(jì)記錄的合法應(yīng)用程序列表,查詢需要驗(yàn)證合法性的應(yīng)用程序是否存在于該列表中,如果存在則該應(yīng)用程序合法,如果不存在則該應(yīng)用程序不合法。
[0110]當(dāng)然,上述基于包名和/或簽名對(duì)應(yīng)用程序進(jìn)行驗(yàn)證的過程也可以由移動(dòng)終端中相應(yīng)的客戶端的驗(yàn)證模塊執(zhí)行,以確定應(yīng)用程序的合法性。
[0111]在具體實(shí)施例中,當(dāng)確定應(yīng)用程序不合法時(shí),則顯示提示消息以及對(duì)應(yīng)的處理操作選型。優(yōu)選地,本發(fā)明實(shí)施例中以按鈕的形式顯示處理操作選型,即顯示各個(gè)處理操作選項(xiàng)對(duì)應(yīng)的處理按鈕,用戶觸發(fā)相應(yīng)的處理操作選項(xiàng)時(shí),在對(duì)應(yīng)的處理按鈕處接收用戶的輸入指令。如果在對(duì)應(yīng)的處理按鈕處接收到用戶依據(jù)提示消息輸入的觸發(fā)指令,則根據(jù)觸發(fā)指令對(duì)應(yīng)用程序執(zhí)行相應(yīng)的處理。其中,所述處理按鈕可以為終止應(yīng)用程序運(yùn)行的按鈕,可以為卸載應(yīng)用程序的按鈕,可以為安裝正版應(yīng)用程序的按鈕,也可以為繼續(xù)使用該應(yīng)用程序的按鈕,本發(fā)明實(shí)施例對(duì)此不作任何限定。相應(yīng)地,如果在終止應(yīng)用程序運(yùn)行按鈕處接收到用戶的觸發(fā)指令,則終止當(dāng)前應(yīng)用程序的運(yùn)行;如果在卸載應(yīng)用程序按鈕處接收到用戶的觸發(fā)指令,則卸載當(dāng)前應(yīng)用程序;如果在安裝正版應(yīng)用程序按鈕處接收到用戶觸發(fā)的指令,則卸載當(dāng)前應(yīng)用程序并對(duì)應(yīng)安裝當(dāng)前應(yīng)用程序的正版;如果在繼續(xù)使用應(yīng)用程序的按鈕處接收到用戶的觸發(fā)指令,則保持當(dāng)前應(yīng)用程序的運(yùn)行狀態(tài)。
[0112]此外,在本發(fā)明實(shí)施例中,所述應(yīng)用程序的合法性還包括該應(yīng)用程序是否存在安全風(fēng)險(xiǎn)。如若根據(jù)預(yù)設(shè)的規(guī)則檢測(cè)到應(yīng)用程序的安裝包中存在惡意程序,則將該應(yīng)用程序標(biāo)識(shí)為可卸載應(yīng)用程序;若根據(jù)預(yù)設(shè)的規(guī)則檢測(cè)出應(yīng)用程序中包含廣告、彈窗等程序,則將該應(yīng)用程序標(biāo)識(shí)為可卸載應(yīng)用程序;若根據(jù)預(yù)