本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種終端數(shù)據(jù)傳輸?shù)姆椒ê脱b置。
背景技術(shù):
隨著計(jì)算機(jī)技術(shù)的發(fā)展,通過互聯(lián)網(wǎng)獲取信息,進(jìn)行學(xué)習(xí)、工作越來越普遍。在用戶聯(lián)網(wǎng)的過程中,如果連接到不安全的網(wǎng)絡(luò),則不法分子可利用ARP(Address Resolution Protocol,地址解析協(xié)議)攻擊等手段來獲取用戶的帳號(hào)、密碼等信息。
傳統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)傳輸時(shí)如果需要在終端加強(qiáng)傳輸?shù)陌踩?,往往需要用戶授予ROOT權(quán)限對(duì)終端的傳輸過程進(jìn)行處理,獲得ROOT權(quán)限之后就獲得了系統(tǒng)的最高權(quán)限,可以對(duì)系統(tǒng)中的任何文件,包括系統(tǒng)文件執(zhí)行操作,存在安全隱患。
技術(shù)實(shí)現(xiàn)要素:
基于此,有必要針對(duì)上述技術(shù)問題,提供一種數(shù)據(jù)傳輸?shù)姆椒ê脱b置,不需要獲取系統(tǒng)權(quán)限也能提高終端數(shù)據(jù)傳輸?shù)陌踩浴?/p>
一種終端數(shù)據(jù)傳輸?shù)姆椒ǎ龇椒òǎ?/p>
通過虛擬專用網(wǎng)絡(luò)VPN服務(wù)在網(wǎng)絡(luò)層攔截發(fā)送至虛擬網(wǎng)絡(luò)接口的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,獲取所述VPN服務(wù)對(duì)應(yīng)的文件描述符;
根據(jù)所述文件描述符讀取所述網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,將所述網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包轉(zhuǎn)換為傳輸層協(xié)議數(shù)據(jù)包;
將所述傳輸層協(xié)議數(shù)據(jù)包加密得到加密數(shù)據(jù)包,將所述加密數(shù)據(jù)包從傳輸層網(wǎng)絡(luò)發(fā)送至中轉(zhuǎn)服務(wù)器,以使所述中轉(zhuǎn)服務(wù)器將所述加密數(shù)據(jù)包解密后轉(zhuǎn)發(fā)至對(duì)應(yīng)的目標(biāo)服務(wù)器。
一種終端數(shù)據(jù)傳輸?shù)难b置,所述裝置包括:
攔截模塊,用于通過虛擬專用網(wǎng)絡(luò)VPN服務(wù)在網(wǎng)絡(luò)層攔截發(fā)送至虛擬網(wǎng)絡(luò)接口的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,獲取所述VPN服務(wù)對(duì)應(yīng)的文件描述符;
轉(zhuǎn)換模塊,用于根據(jù)所述文件描述符讀取所述網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,將所述網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包轉(zhuǎn)換為傳輸層協(xié)議數(shù)據(jù)包;
加密傳輸模塊,用于將所述傳輸層協(xié)議數(shù)據(jù)包加密得到加密數(shù)據(jù)包,將所述加密數(shù)據(jù)包從傳輸層網(wǎng)絡(luò)發(fā)送至中轉(zhuǎn)服務(wù)器,以使所述中轉(zhuǎn)服務(wù)器將所述加密數(shù)據(jù)包解密后轉(zhuǎn)發(fā)至對(duì)應(yīng)的目標(biāo)服務(wù)器。
上述終端數(shù)據(jù)傳輸?shù)姆椒ê脱b置,通過虛擬專用網(wǎng)絡(luò)VPN服務(wù)在網(wǎng)絡(luò)層攔截發(fā)送至虛擬網(wǎng)絡(luò)接口的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,獲取VPN服務(wù)對(duì)應(yīng)的文件描述符,根據(jù)文件描述符讀取網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,將網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包轉(zhuǎn)換為傳輸層協(xié)議數(shù)據(jù)包,將傳輸層協(xié)議數(shù)據(jù)包加密得到加密數(shù)據(jù)包,將加密數(shù)據(jù)包從傳輸層網(wǎng)絡(luò)發(fā)送至中轉(zhuǎn)服務(wù)器,以使中轉(zhuǎn)服務(wù)器將所述加密數(shù)據(jù)包解密后轉(zhuǎn)發(fā)至對(duì)應(yīng)的目標(biāo)服務(wù)器,通過VPN服務(wù)建立虛擬網(wǎng)絡(luò)接口,在網(wǎng)絡(luò)層攔截發(fā)送至虛擬網(wǎng)絡(luò)接口的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,再進(jìn)行數(shù)據(jù)包格式的轉(zhuǎn)換從而對(duì)數(shù)據(jù)包進(jìn)行加密,而不是直接將傳輸層協(xié)議數(shù)據(jù)包進(jìn)行加密,不需要獲取系統(tǒng)權(quán)限也能對(duì)數(shù)據(jù)包進(jìn)行加密后再傳輸,控制數(shù)據(jù)包在終端傳輸?shù)木唧w方式,提高終端數(shù)據(jù)傳輸?shù)陌踩浴?/p>
附圖說明
圖1為一個(gè)實(shí)施例中終端數(shù)據(jù)傳輸?shù)姆椒ǖ膽?yīng)用環(huán)境圖;
圖2為一個(gè)實(shí)施例中圖1中終端的內(nèi)部結(jié)構(gòu)圖;
圖3為一個(gè)實(shí)施例中終端數(shù)據(jù)傳輸?shù)姆椒ǖ牧鞒虉D;
圖4為一個(gè)實(shí)施例中網(wǎng)絡(luò)7層協(xié)議示意圖;
圖5為一個(gè)實(shí)施例中終端數(shù)據(jù)傳輸?shù)姆椒ǖ臄?shù)據(jù)流向示意圖;
圖6為一個(gè)實(shí)施例中加密數(shù)據(jù)包的流程圖;
圖7為一個(gè)實(shí)施例中終端數(shù)據(jù)傳輸?shù)难b置的結(jié)構(gòu)框圖;
圖8為另一個(gè)實(shí)施例中終端數(shù)據(jù)傳輸?shù)难b置的結(jié)構(gòu)框圖;
圖9為再一個(gè)實(shí)施例中終端數(shù)據(jù)傳輸?shù)难b置的結(jié)構(gòu)框圖;
圖10為又一個(gè)實(shí)施例中終端數(shù)據(jù)傳輸?shù)难b置的結(jié)構(gòu)框圖;
圖11為一個(gè)具體的實(shí)施例中終端數(shù)據(jù)傳輸具體過程示意圖。
具體實(shí)施方式
圖1為一個(gè)數(shù)據(jù)傳輸?shù)姆椒ㄟ\(yùn)行的應(yīng)用環(huán)境圖。如圖1所示,該應(yīng)用環(huán)境包括終端110、中轉(zhuǎn)服務(wù)器120、第一服務(wù)器130,其中終端110、中轉(zhuǎn)服務(wù)器120和第一服務(wù)器130通過網(wǎng)絡(luò)進(jìn)行通信。
終端110,可為智能手機(jī)、平板電腦、筆記本電腦、臺(tái)式計(jì)算機(jī)等,但并不局限于此。終端110通過VPN服務(wù)將從虛擬網(wǎng)絡(luò)接口發(fā)送的網(wǎng)絡(luò)協(xié)議IP數(shù)據(jù)包轉(zhuǎn)換為傳輸層協(xié)議數(shù)據(jù)包并加密后從傳輸層網(wǎng)絡(luò)發(fā)送至中轉(zhuǎn)服務(wù)器120,中轉(zhuǎn)服務(wù)器120解密后發(fā)送至第一服務(wù)器130,通過VPN服務(wù)攔截IP數(shù)據(jù)包再轉(zhuǎn)換為傳輸層協(xié)議數(shù)據(jù)包,不需要ROOT權(quán)限就可加密數(shù)據(jù)包并從傳輸層網(wǎng)絡(luò)發(fā)送至中轉(zhuǎn)服務(wù)器,提高終端數(shù)據(jù)傳輸?shù)陌踩浴?/p>
在一個(gè)實(shí)施例中,圖1中的終端110的內(nèi)部結(jié)構(gòu)如圖2所示,該終端110包括通過系統(tǒng)總線連接的處理器、圖形處理單元、存儲(chǔ)介質(zhì)、內(nèi)存、網(wǎng)絡(luò)接口、顯示屏幕和輸入設(shè)備。其中,終端110的存儲(chǔ)介質(zhì)存儲(chǔ)有操作系統(tǒng),還包括終端數(shù)據(jù)傳輸?shù)难b置,該裝置用于實(shí)現(xiàn)一種適用于終端的終端數(shù)據(jù)傳輸?shù)姆椒?。該處理器用于提供?jì)算和控制能力,支撐整個(gè)終端110的運(yùn)行。終端110中的圖形處理單元用于至少提供顯示界面的繪制能力,內(nèi)存為存儲(chǔ)介質(zhì)中的終端數(shù)據(jù)傳輸?shù)难b置的運(yùn)行提供環(huán)境,網(wǎng)絡(luò)接口用于與中轉(zhuǎn)服務(wù)器120進(jìn)行網(wǎng)絡(luò)通信,如向中轉(zhuǎn)服務(wù)器120發(fā)送數(shù)據(jù)包等。顯示屏幕用于顯示應(yīng)用界面等,輸入設(shè)備用于接收用戶輸入的命令或數(shù)據(jù)等。對(duì)于帶觸摸屏的終端110,顯示屏幕和輸入設(shè)備可為觸摸屏。圖2中示出的結(jié)構(gòu),僅僅是與本申請(qǐng)方案相關(guān)的部分結(jié)構(gòu)的框圖,并不構(gòu)成對(duì)本申請(qǐng)方案所應(yīng)用于其上的終端的限定,具體的終端可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者具有不同的部件布置。
如圖3所示,在一個(gè)實(shí)施例中,提供了一種終端數(shù)據(jù)傳輸?shù)姆椒ǎ詰?yīng)用于上述應(yīng)用環(huán)境中的終端來舉例說明,結(jié)合圖4網(wǎng)絡(luò)7層協(xié)議結(jié)構(gòu),包括如下步驟:
步驟S210,通過虛擬專用網(wǎng)絡(luò)VPN服務(wù)在網(wǎng)絡(luò)層攔截發(fā)送至虛擬網(wǎng)絡(luò)接口的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,獲取VPN服務(wù)對(duì)應(yīng)的文件描述符。
具體的,VPN(Virtual Private Network,虛擬專用網(wǎng)絡(luò))服務(wù)幫助在終端上建立VPN連接,如果是Android系統(tǒng),則可通過Android系統(tǒng)支付的VpnService接口API實(shí)現(xiàn)VPN服務(wù)。使用這個(gè)VpnService接口使得應(yīng)用程序啟動(dòng)自己的VPN而不需要終端本身獲得ROOT權(quán)限。網(wǎng)絡(luò)層是OSI參考模型中的第三層,介于傳輸層和數(shù)據(jù)鏈路層之間,它在數(shù)據(jù)鏈路層提供的兩個(gè)相鄰端點(diǎn)之間的數(shù)據(jù)幀的傳送功能上,進(jìn)一步管理網(wǎng)絡(luò)中的數(shù)據(jù)通信,將數(shù)據(jù)設(shè)法從源端經(jīng)過若干個(gè)中間節(jié)點(diǎn)傳送到目的端,從而向傳輸層提供最基本的端到端的數(shù)據(jù)傳送服務(wù)??筛鶕?jù)需要只將預(yù)設(shè)應(yīng)用對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包發(fā)送至虛擬網(wǎng)絡(luò)接口,從而從虛擬網(wǎng)絡(luò)接口攔截到的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包是目標(biāo)應(yīng)用發(fā)出,達(dá)到攔截的可配置性,而其余應(yīng)用對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包可直接從網(wǎng)絡(luò)層發(fā)送至目標(biāo)服務(wù)器。VPN服務(wù)創(chuàng)建一個(gè)虛擬網(wǎng)絡(luò)接口,配置接口的IP地址,路由規(guī)則,需要攔截的數(shù)據(jù)包都會(huì)發(fā)送至這個(gè)虛擬網(wǎng)絡(luò)接口,由于虛擬網(wǎng)絡(luò)接口運(yùn)行在IP(Internet Protocol,網(wǎng)絡(luò)協(xié)議)層,所以每個(gè)數(shù)據(jù)包都是網(wǎng)絡(luò)協(xié)議IP數(shù)據(jù)包。文件描述符在形式上是一個(gè)非負(fù)整數(shù),是一個(gè)索引值,指向內(nèi)核為每一個(gè)進(jìn)程所維護(hù)的該進(jìn)程打開文件的記錄表,當(dāng)程序打開一個(gè)現(xiàn)有文件或者創(chuàng)建一個(gè)新文件時(shí),內(nèi)核向進(jìn)程返回一個(gè)文件描述符。VPN服務(wù)有對(duì)應(yīng)的文件描述符,此文件描述符相當(dāng)于文件路徑,此文件路徑對(duì)應(yīng)了一個(gè)文件,通過文件描述符可以讀取由虛擬網(wǎng)絡(luò)接口轉(zhuǎn)發(fā)的數(shù)據(jù)包,同時(shí)也可以向文件描述符對(duì)應(yīng)的文件中寫入數(shù)據(jù)包。
步驟S220,根據(jù)文件描述符讀取網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,將網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包轉(zhuǎn)換為傳輸層協(xié)議數(shù)據(jù)包。
具體的,從虛擬網(wǎng)絡(luò)接口轉(zhuǎn)發(fā)數(shù)據(jù)包都寫入了文件描述符對(duì)應(yīng)的文件,從而可根據(jù)文件描述符得到對(duì)應(yīng)的文件,從文件中讀取網(wǎng)絡(luò)協(xié)議IP數(shù)據(jù)包,解析IP數(shù)據(jù)包,再重新打包成傳輸層協(xié)議如TCP或UDP協(xié)議的數(shù)據(jù)包。
步驟S230,將傳輸層協(xié)議數(shù)據(jù)包加密得到加密數(shù)據(jù)包,將加密數(shù)據(jù)包從傳輸層網(wǎng)絡(luò)發(fā)送至中轉(zhuǎn)服務(wù)器,以使中轉(zhuǎn)服務(wù)器將加密數(shù)據(jù)包解密后轉(zhuǎn)發(fā)至對(duì)應(yīng)的目標(biāo)服務(wù)器。
具體的,加密的算法可根據(jù)需要自定義,可采用動(dòng)態(tài)密鑰的算法進(jìn)行加密,中轉(zhuǎn)服務(wù)器與終端約定了加密解密算法,從而中轉(zhuǎn)服務(wù)器可對(duì)加密的數(shù)據(jù)包進(jìn)行解密得到原始數(shù)據(jù)包,將原始數(shù)據(jù)包轉(zhuǎn)發(fā)至目標(biāo)服務(wù)器。將加密數(shù)據(jù)包從傳輸層網(wǎng)絡(luò)發(fā)送至中轉(zhuǎn)服務(wù)器時(shí),可采用不同的傳輸層協(xié)議,如使用SOCKS代理與中轉(zhuǎn)服務(wù)器通信,目標(biāo)服務(wù)器返回的數(shù)據(jù)包經(jīng)中轉(zhuǎn)服務(wù)器再通過原來的SOCKS代理通道發(fā)送回終端。傳輸層(Transport Layer)是ISO OSI協(xié)議的第四層協(xié)議,實(shí)現(xiàn)端到端的數(shù)據(jù)傳輸。該層是兩臺(tái)計(jì)算機(jī)經(jīng)過網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)通信時(shí),第一個(gè)端到端的層次,具有緩沖作用。當(dāng)網(wǎng)絡(luò)層服務(wù)質(zhì)量不能滿足要求時(shí),它將服務(wù)加以提高,以滿足高層的要求;當(dāng)網(wǎng)絡(luò)層服務(wù)質(zhì)量較好時(shí),它只用很少的工作。傳輸層還可進(jìn)行復(fù)用,即在一個(gè)網(wǎng)絡(luò)連接上創(chuàng)建多個(gè)邏輯連接。傳輸層在終端用戶之間提供透明的數(shù)據(jù)傳輸,向上層提供可靠的數(shù)據(jù)傳輸服務(wù)。一些協(xié)議是面向鏈接的,傳輸層能保持對(duì)分段的跟蹤,并且重傳失敗的分段。socks代理是指采用socks協(xié)議的代理服務(wù)器,即SOCKS服務(wù)器,是一種通用的代理服務(wù)器,支持多種協(xié)議,包括http、ftp請(qǐng)求及其它類型的請(qǐng)求,分socks 4和socks 5兩種類型,socks 4只支持TCP協(xié)議而socks 5支持TCP/UDP協(xié)議,還支持各種身份驗(yàn)證機(jī)制等。
本實(shí)施例中,通過虛擬專用網(wǎng)絡(luò)VPN服務(wù)在網(wǎng)絡(luò)層攔截發(fā)送至虛擬網(wǎng)絡(luò)接口的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,獲取所述VPN服務(wù)對(duì)應(yīng)的文件描述符,根據(jù)文件描述符讀取網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,將網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包轉(zhuǎn)換為傳輸層協(xié)議數(shù)據(jù)包,將傳輸層協(xié)議數(shù)據(jù)包加密得到加密數(shù)據(jù)包,將加密數(shù)據(jù)包從傳輸層網(wǎng)絡(luò)發(fā)送至中轉(zhuǎn)服務(wù)器,以使中轉(zhuǎn)服務(wù)器將所述加密數(shù)據(jù)包解密后轉(zhuǎn)發(fā)至對(duì)應(yīng)的目標(biāo)服務(wù)器,通過VPN服務(wù)建立虛擬網(wǎng)絡(luò)接口,在網(wǎng)絡(luò)層攔截發(fā)送至虛擬網(wǎng)絡(luò)接口的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,再進(jìn)行數(shù)據(jù)包格式的轉(zhuǎn)換從而對(duì)數(shù)據(jù)包進(jìn)行加密,而不是直接將傳輸層協(xié)議數(shù)據(jù)包進(jìn)行加密,不需要獲取系統(tǒng)權(quán)限也能對(duì)數(shù)據(jù)包進(jìn)行加密后再傳輸,控制數(shù)據(jù)包在終端傳輸?shù)木唧w方式,提高終端數(shù)據(jù)傳輸?shù)陌踩浴?/p>
在一個(gè)實(shí)施例中,步驟S210之前,還包括:獲取VPN服務(wù)開啟指令,VPN服務(wù)開啟指令攜帶目標(biāo)應(yīng)用信息,根據(jù)VPN服務(wù)開啟指令創(chuàng)建虛擬網(wǎng)絡(luò)接口,向所述目標(biāo)應(yīng)用信息對(duì)應(yīng)的目標(biāo)應(yīng)用返回文件描述符。
具體的,目標(biāo)應(yīng)用信息用于確定目標(biāo)應(yīng)用,只有目標(biāo)應(yīng)用的流量才會(huì)被攔截,可通過對(duì)預(yù)設(shè)虛擬按鍵的操作獲取VPN服務(wù)開啟指令,可在專門管理流量的應(yīng)用中生成VPN服務(wù)開啟指令,而目標(biāo)應(yīng)用是被管理流量,保證傳輸安全性的應(yīng)用。VPN服務(wù)開啟指令創(chuàng)建虛擬網(wǎng)絡(luò)接口,開啟VPN服務(wù),并為VPN服務(wù)分配對(duì)應(yīng)的文件描述符,從而后續(xù)將攔截網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包寫入文件描述符對(duì)應(yīng)的文件。
步驟S210包括:通過VPN服務(wù)在網(wǎng)絡(luò)層攔截目標(biāo)應(yīng)用發(fā)送至虛擬網(wǎng)絡(luò)接口的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包。
具體的,只有目標(biāo)應(yīng)用對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包才會(huì)發(fā)送至虛擬網(wǎng)絡(luò)接口,從而在網(wǎng)絡(luò)層被攔截,通過后續(xù)的步驟轉(zhuǎn)換為加密的傳輸層協(xié)議數(shù)據(jù)包并從傳輸層網(wǎng)絡(luò)發(fā)送至中轉(zhuǎn)服務(wù)器,而非目標(biāo)應(yīng)用則仍然從網(wǎng)絡(luò)層直接將網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包發(fā)送至中轉(zhuǎn)服務(wù)器,如圖5所示為一個(gè)具體的實(shí)施例中目標(biāo)應(yīng)用和非目標(biāo)應(yīng)用數(shù)據(jù)傳輸示意圖,終端中包括自定義的非目標(biāo)應(yīng)用111和目標(biāo)應(yīng)用112,非目標(biāo)應(yīng)用111發(fā)送的IP數(shù)據(jù)包直接通過網(wǎng)絡(luò)層發(fā)送至目標(biāo)服務(wù)器130,目標(biāo)應(yīng)用112發(fā)送的IP數(shù)據(jù)包發(fā)送至虛擬網(wǎng)絡(luò)接口通過虛擬專用網(wǎng)絡(luò)VPN服務(wù)在網(wǎng)絡(luò)層攔截,將IP數(shù)據(jù)包轉(zhuǎn)換為TCP/UDP數(shù)據(jù)包后通過加密SOCKS協(xié)議發(fā)送至中轉(zhuǎn)服務(wù)器120,中轉(zhuǎn)服務(wù)器120解碼得以原始數(shù)據(jù)包再發(fā)送至目標(biāo)服務(wù)器130。用戶可以自己定義想要保護(hù)的應(yīng)用,提高傳輸?shù)陌踩?,避免了因?yàn)槭褂萌諺PN,服務(wù)器承受用戶所有應(yīng)用的流量,導(dǎo)致服務(wù)器資源浪費(fèi)。
在一個(gè)實(shí)施例中,步驟S210之前還包括:配置目標(biāo)應(yīng)用信息,根據(jù)所述目標(biāo)應(yīng)用信息生成VPN服務(wù)開啟指令。
具體的,可根據(jù)需要自行配置目標(biāo)應(yīng)用信息,可在候選保護(hù)列表中選擇需要保護(hù)的目標(biāo)應(yīng)用,也可自行添加候選保護(hù)列表中不存在的目標(biāo)應(yīng)用,達(dá)到配置的靈活方便性,生成對(duì)應(yīng)的攜帶目標(biāo)應(yīng)用信息的VPN服務(wù)開啟指令??杀苊饽繕?biāo)保護(hù)應(yīng)用不在候選保護(hù)列表且不能添加導(dǎo)致用戶存在應(yīng)用不能受到保護(hù)的情形。在一個(gè)實(shí)施例中,判斷VPN服務(wù)開啟指令是否為首次生成,如果是,則獲取默認(rèn)目標(biāo)應(yīng)用信息,根據(jù)所述默認(rèn)目標(biāo)應(yīng)用信息生成VPN服務(wù)開啟指令,如果不是,則生成并展示應(yīng)用信息配置界面,接收對(duì)應(yīng)用信息配置界面的操作獲取目標(biāo)應(yīng)用信息,根據(jù)目標(biāo)應(yīng)用信息生成VPN服務(wù)開啟指令。
在一個(gè)實(shí)施例中,配置目標(biāo)應(yīng)用信息之前還包括:檢測(cè)網(wǎng)絡(luò)的安全指數(shù),如果安全指數(shù)達(dá)到預(yù)設(shè)條件,則生成VPN服務(wù)關(guān)閉指令,否則進(jìn)入配置目標(biāo)應(yīng)用信息的步驟。
具體的,可通過檢測(cè)網(wǎng)絡(luò)層的數(shù)據(jù)包是否加密來檢測(cè)網(wǎng)絡(luò)的安全指數(shù),如果沒有加密,則網(wǎng)絡(luò)安全指數(shù)低,如果沒有達(dá)到安全指數(shù)閾值,則需要生成VPN服務(wù)開啟指令,以提高數(shù)據(jù)傳輸?shù)陌踩?。如果達(dá)到安全指數(shù)閾值,則不需要VPN服務(wù),可直接傳輸數(shù)據(jù)??蔀椴煌膽?yīng)用設(shè)置不同的安全指數(shù)閾值,從而根據(jù)當(dāng)前安全指數(shù)與安全指數(shù)閾值自動(dòng)開啟或關(guān)閉VPN服務(wù),提高數(shù)據(jù)傳輸安全保障的智能性。
在一個(gè)實(shí)施例中,配置目標(biāo)應(yīng)用信息,根據(jù)目標(biāo)應(yīng)用信息生成VPN服務(wù)開啟指令的步驟包括:通過作用于管理應(yīng)用的界面的操作選擇待開啟VPN服務(wù)的目標(biāo)應(yīng)用,獲取目標(biāo)應(yīng)用對(duì)應(yīng)的目標(biāo)應(yīng)用信息生成VPN服務(wù)開啟指令。
具體的,管理應(yīng)用可為安全管理應(yīng)用、流量管理應(yīng)用等,管理應(yīng)用用于專門管理其它應(yīng)用,可在管理應(yīng)用的界面顯示當(dāng)前終端已安裝的所有應(yīng)用,從而從所有應(yīng)用中選擇待開啟VPN服務(wù)的目標(biāo)應(yīng)用??赏ㄟ^選擇框的形式,獲取作用于選擇框的操作,當(dāng)選擇框?yàn)檫x擇狀態(tài)時(shí)表示此選擇框?qū)?yīng)的應(yīng)用被選取,為需要開啟VPN服務(wù)的應(yīng)用。通過管理應(yīng)用統(tǒng)一開啟各個(gè)應(yīng)用的VPN服務(wù),可一次性開啟或關(guān)閉多個(gè)應(yīng)用對(duì)應(yīng)的VPN服務(wù),簡(jiǎn)單方便。
在一個(gè)實(shí)施例中,如圖6所示,步驟S230中將傳輸層協(xié)議數(shù)據(jù)包加密得到加密數(shù)據(jù)包的步驟包括:
步驟S231,判斷密鑰是否過期,如果過期,則進(jìn)入步驟S232,否則直接采用密鑰加密得到加密數(shù)據(jù)包。
具體的,終端存儲(chǔ)的密鑰存在有效期限,如果過期,則需要重新向服務(wù)器申請(qǐng)新的密鑰,保證密鑰隨時(shí)間動(dòng)態(tài)變化,通過動(dòng)態(tài)密鑰,避免黑客攻破其中一個(gè)密鑰的情況下對(duì)終端傳輸?shù)臄?shù)據(jù)進(jìn)行連續(xù)的竊取,進(jìn)一步加強(qiáng)了數(shù)據(jù)傳輸?shù)陌踩浴?/p>
步驟S232,向服務(wù)器發(fā)送密鑰申請(qǐng)請(qǐng)求,接收服務(wù)器返回的更新密鑰,將傳輸層協(xié)議數(shù)據(jù)包采用更新密鑰加密得到加密數(shù)據(jù)包。
具體的,發(fā)送密鑰申請(qǐng)請(qǐng)求前,可隨機(jī)產(chǎn)生一個(gè)隨機(jī)數(shù)key,采用公鑰加密這個(gè)key,發(fā)送攜帶加密key的密鑰申請(qǐng)請(qǐng)求,服務(wù)器根據(jù)密鑰申請(qǐng)請(qǐng)求并根據(jù)key返回加密后的更新密鑰,終端解密得以原始更新密鑰,從而終端根據(jù)更新密鑰加密傳輸層協(xié)議數(shù)據(jù)包得到加密數(shù)據(jù)包,采用隨機(jī)生成的key發(fā)送密鑰申請(qǐng)請(qǐng)求,使得更新密鑰的生成更具隨機(jī)性,進(jìn)一步加強(qiáng)密鑰的加密安全性。
在一個(gè)實(shí)施例中,步驟S230包括:通過VPN服務(wù)的保護(hù)方法,從預(yù)設(shè)socket發(fā)送加密數(shù)據(jù)包至網(wǎng)絡(luò)層。
具體的,socket是建立網(wǎng)絡(luò)通信連接至少需要的一對(duì)端口號(hào),通過VPN服務(wù)的保護(hù)方法,使得加密數(shù)據(jù)包通過預(yù)設(shè)socket發(fā)送至網(wǎng)絡(luò)層,保護(hù)方法約定了此預(yù)設(shè)socket發(fā)送的數(shù)據(jù)包不會(huì)再次被攔截。在一個(gè)實(shí)施例中,VPN服務(wù)的保護(hù)方法由系統(tǒng)接口提供,如Android系統(tǒng)的VpnService接口提供的protect方法。
步驟S210包括:判斷網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包是否從預(yù)設(shè)socket發(fā)送,如果是,則不進(jìn)行攔截。
具體的,如果網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包是從預(yù)設(shè)socket發(fā)送,則此網(wǎng)絡(luò)協(xié)議數(shù)據(jù)不會(huì)被攔截,從而可以避免加密后的數(shù)據(jù)包再次在網(wǎng)絡(luò)層被攔截又發(fā)送至虛擬網(wǎng)絡(luò)接口造成無限循環(huán)。
在一個(gè)實(shí)施例中,方法還包括:接收中轉(zhuǎn)服務(wù)器轉(zhuǎn)發(fā)的由目標(biāo)服務(wù)器返回的響應(yīng)數(shù)據(jù)包,終端將再把響應(yīng)數(shù)據(jù)包解析并還原成IP數(shù)據(jù)包的格式寫入文件描述符對(duì)應(yīng)的文件,從而完成整個(gè)通訊過程。
在一個(gè)具體的實(shí)施例中,結(jié)合圖11,終端數(shù)據(jù)傳輸?shù)姆椒ǖ木唧w過程如下:
1、終端連接WIFI網(wǎng)絡(luò),攔截從終端發(fā)出的數(shù)據(jù)包;
2、檢測(cè)數(shù)據(jù)包是否加密,如果是加密數(shù)據(jù)包,則網(wǎng)絡(luò)的安全指數(shù)達(dá)到預(yù)設(shè)條件,生成VPN服務(wù)關(guān)閉指令,進(jìn)入步驟11。
3、如果數(shù)據(jù)包沒有加密,則顯示提示界面,提示界面提示用戶是否需要開啟VPN服務(wù)。
4、接收作用于提示界面的操作判斷是否開啟VPN服務(wù),如果不開啟,則生成VPN服務(wù)關(guān)閉指令,進(jìn)入步驟11。
5、如果開啟VPN服務(wù),則判斷VPN服務(wù)是否是首次開啟,如果不是首次開啟,則采用上一次的默認(rèn)配置信息確定目標(biāo)應(yīng)用,生成攜帶目標(biāo)應(yīng)用信息的VPN服務(wù)開啟指令。
6、如果是首次開啟,則彈出管理應(yīng)用界面,管理應(yīng)用界面顯示當(dāng)前終端已安裝的應(yīng)用,通過作用于管理應(yīng)用的界面的操作選擇待開啟VPN服務(wù)的目標(biāo)應(yīng)用,獲取目標(biāo)應(yīng)用對(duì)應(yīng)的目標(biāo)應(yīng)用信息生成VPN服務(wù)開啟指令。
7、根據(jù)VPN服務(wù)開啟指令創(chuàng)建一個(gè)虛擬網(wǎng)絡(luò)接口,目標(biāo)應(yīng)用信息對(duì)應(yīng)的目標(biāo)應(yīng)用的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包發(fā)送至虛擬網(wǎng)絡(luò)接口,通過虛擬專用網(wǎng)絡(luò)VPN服務(wù)在網(wǎng)絡(luò)層攔截發(fā)送至虛擬網(wǎng)絡(luò)接口的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,獲取VPN服務(wù)對(duì)應(yīng)的文件描述符,攔截的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包都寫入了文件描述符對(duì)應(yīng)的文件。
8、從文件描述符對(duì)應(yīng)的文件中讀取網(wǎng)絡(luò)協(xié)議IP數(shù)據(jù)包,解析IP數(shù)據(jù)包,再重新打包成TCP或UDP協(xié)議的數(shù)據(jù)包。
9、將TCP或UDP協(xié)議的數(shù)據(jù)包加密得到加密數(shù)據(jù)包,將加密數(shù)據(jù)包從傳輸層網(wǎng)絡(luò)發(fā)送至中轉(zhuǎn)服務(wù)器。
10、中轉(zhuǎn)服務(wù)器將加密數(shù)據(jù)包解密后轉(zhuǎn)發(fā)至對(duì)應(yīng)的目標(biāo)服務(wù)器。
11、終端發(fā)出的數(shù)據(jù)包直接從網(wǎng)絡(luò)層發(fā)送至目標(biāo)服務(wù)器。
在一個(gè)實(shí)施例中,如圖7所示,提供了一種終端數(shù)據(jù)傳輸?shù)难b置,包括:
攔截模塊310,用于通過虛擬專用網(wǎng)絡(luò)VPN服務(wù)在網(wǎng)絡(luò)層攔截發(fā)送至虛擬網(wǎng)絡(luò)接口的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,獲取VPN服務(wù)對(duì)應(yīng)的文件描述符。
轉(zhuǎn)換模塊320,用于根據(jù)文件描述符讀取所述網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包,將網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包轉(zhuǎn)換為傳輸層協(xié)議數(shù)據(jù)包。
加密傳輸模塊330,用于將傳輸層協(xié)議數(shù)據(jù)包加密得到加密數(shù)據(jù)包,將加密數(shù)據(jù)包從傳輸層網(wǎng)絡(luò)發(fā)送至中轉(zhuǎn)服務(wù)器,以使中轉(zhuǎn)服務(wù)器將所述加密數(shù)據(jù)包解密后轉(zhuǎn)發(fā)至對(duì)應(yīng)的目標(biāo)服務(wù)器。
在一個(gè)實(shí)施例中,如圖8所示,裝置還包括:
VPN服務(wù)開啟模塊340,用于獲取VPN服務(wù)開啟指令,VPN服務(wù)開啟指令攜帶目標(biāo)應(yīng)用信息,根據(jù)VPN服務(wù)開啟指令創(chuàng)建虛擬網(wǎng)絡(luò)接口,向目標(biāo)應(yīng)用信息對(duì)應(yīng)的目標(biāo)應(yīng)用返回文件描述符。
攔截模塊310還用于通過VPN服務(wù)在網(wǎng)絡(luò)層攔截目標(biāo)應(yīng)用發(fā)送至虛擬網(wǎng)絡(luò)接口的網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包。
在一個(gè)實(shí)施例中,如圖9所示,裝置還包括:
配置模塊350,用于配置目標(biāo)應(yīng)用信息,根據(jù)目標(biāo)應(yīng)用信息生成VPN服務(wù)開啟指令。
在一個(gè)實(shí)施例中,如圖10所示,裝置還包括:
判斷模塊360,用于檢測(cè)網(wǎng)絡(luò)的安全指數(shù),如果安全指數(shù)達(dá)到預(yù)設(shè)條件,則生成VPN服務(wù)關(guān)閉指令,否則進(jìn)入配置模塊350。
在一個(gè)實(shí)施例中,配置模塊350還用于通過作用于管理應(yīng)用的界面的操作選擇待開啟VPN服務(wù)的目標(biāo)應(yīng)用,獲取目標(biāo)應(yīng)用對(duì)應(yīng)的目標(biāo)應(yīng)用信息生成VPN服務(wù)開啟指令。
在一個(gè)實(shí)施例中,加密傳輸模塊330還用于判斷密鑰是否過期,如果過期則向服務(wù)器發(fā)送密鑰申請(qǐng)請(qǐng)求,接收服務(wù)器返回的更新密鑰,將傳輸層協(xié)議數(shù)據(jù)包采用更新密鑰加密得到加密數(shù)據(jù)包。
在一個(gè)實(shí)施例中,加密傳輸模塊330還用于通過VPN服務(wù)的保護(hù)方法,從預(yù)設(shè)socket發(fā)送加密數(shù)據(jù)包至網(wǎng)絡(luò)層。
攔截模塊310還用于判斷網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包是否從預(yù)設(shè)socket發(fā)送,如果是,則不進(jìn)行攔截。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,如本發(fā)明實(shí)施例中,該程序可存儲(chǔ)于計(jì)算機(jī)系統(tǒng)的存儲(chǔ)介質(zhì)中,并被該計(jì)算機(jī)系統(tǒng)中的至少一個(gè)處理器執(zhí)行,以實(shí)現(xiàn)包括如上述各方法的實(shí)施例的流程。其中,所述存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,RAM)等。
以上所述實(shí)施例的各技術(shù)特征可以進(jìn)行任意的組合,為使描述簡(jiǎn)潔,未對(duì)上述實(shí)施例中的各個(gè)技術(shù)特征所有可能的組合都進(jìn)行描述,然而,只要這些技術(shù)特征的組合不存在矛盾,都應(yīng)當(dāng)認(rèn)為是本說明書記載的范圍。
以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。