本發(fā)明涉及通訊技術(shù)領(lǐng)域,特別是涉及一種路由器的VPN網(wǎng)絡(luò)連接方法及系統(tǒng)。
背景技術(shù):
VPN全稱Virtual Private Network,虛擬專用網(wǎng)絡(luò)。虛擬指的是該網(wǎng)絡(luò)并不具有傳統(tǒng)意義上的實際的物理鏈路,專用意味著這個網(wǎng)絡(luò)是私人化的,簡單地說就是利用公網(wǎng)鏈路架設(shè)私有網(wǎng)絡(luò)。得益于隧道技術(shù)和其他的安全措施,VPN連接建立后所傳輸?shù)臄?shù)據(jù)都是被加密保護的,保證了數(shù)據(jù)的私有性和安全性。常用于企業(yè)之間或者個人與公司之間進行安全的訪問與數(shù)據(jù)傳輸。
OpenVPN是一個用于創(chuàng)建虛擬專用網(wǎng)絡(luò)(Virtual Private Network)加密通道的免費開源軟件。使用OpenVPN可以方便地在家庭、辦公場所、住宿酒店等不同網(wǎng)絡(luò)訪問場所之間搭建類似于局域網(wǎng)的專用網(wǎng)絡(luò)通道。OpenVPN使用方便,運行性能優(yōu)秀,支持Solaris、Linux 2.2+(Linux 2.2+表示Linux 2.2及以上版本,下同)、OpenBSD 3.0+、FreeBSD、NetBSD、Mac OS X、Android和Windows2000+的操作系統(tǒng),并且采用了高強度的數(shù)據(jù)加密,再加上其開源免費的特性,使得OpenVPN成為中小型企業(yè)及個人的VPN首選產(chǎn)品。使用OpenVPN配合特定的代理服務(wù)器,可用于訪問Youtube、FaceBook、Twitter等受限網(wǎng)站,也可用于突破公司的網(wǎng)絡(luò)限制。由于OpenVPN支持UDP協(xié)議,還可以配合HTTP代理(HTTP Proxy)使用,使得只要是能夠打開網(wǎng)站或上QQ的地方,就可以訪問外部的任何網(wǎng)站或其他網(wǎng)絡(luò)資源。
現(xiàn)有技術(shù)中,當前路由器的VPN實現(xiàn)主要通過PPTP、L2TP、IPSec隧道協(xié)議。被廣泛應(yīng)用的這三個主流隧道協(xié)議在安全性及穩(wěn)定性受到質(zhì)疑。
PPTP VPN協(xié)議:它是點對點隧道協(xié)議,使用TCP協(xié)議。適合在沒有防火墻限制的網(wǎng)絡(luò)中使用。
L2TP VPN協(xié)議:它是國際標準隧道協(xié)議,沒有任何加密措施。L2TP使用UDP協(xié)議,大多可以穿透防火墻,適合在有防火墻限制及局域網(wǎng)用戶。
IPSecVPN協(xié)議:基于端對端的安全模式,每一個使用者端在網(wǎng)絡(luò)上會被當成一個節(jié)點,而此聯(lián)機會一直處于激活的狀態(tài)。因此,一但使用者端的計算機被黑客或病毒入侵,黑客就可以透過此網(wǎng)絡(luò)連結(jié)進入另一個端點,也就是公司內(nèi)部。因這樣的運作模式,此節(jié)點很有可能成為黑客、病毒入侵的管道。
因此可以明顯知道PPTP協(xié)議占用資源少,應(yīng)用最為廣泛,但是通過協(xié)議和端口很容易被封鎖。L2TP/IPSec更高級的VPN協(xié)議,支持各種平臺,安全性更高,但是不太靈活。OpenVPN它是一個基于SSL加密的純應(yīng)用層的VPN協(xié)議,由于其運行在純應(yīng)用層,避免了PPTP和L2TP在某些NAT設(shè)備后面不被支持的情況,并且可以繞過一些網(wǎng)絡(luò)的封鎖,通俗點講,基本上能上網(wǎng)的地方就能用OpenVPN。
技術(shù)實現(xiàn)要素:
本發(fā)明提供了一種路由器的VPN網(wǎng)絡(luò)連接方法及系統(tǒng),其目的是解決上述安全性、靈活性不高的問題,保障傳輸數(shù)據(jù)的完整性、私密性和有效性,提高安全性。
本發(fā)明提供的技術(shù)方案如下:
一種路由器的VPN網(wǎng)絡(luò)連接方法,包括步驟:
S100內(nèi)部網(wǎng)絡(luò)的路由器和外部網(wǎng)絡(luò)的客戶端相互驗證雙方身份的合法性;
S200所述內(nèi)部網(wǎng)絡(luò)的路由器建立一安全通道與所述外部網(wǎng)絡(luò)的客戶端連接,并在所述安全通道上與所述外部網(wǎng)絡(luò)的客戶端進行密鑰協(xié)商;
S300所述內(nèi)部網(wǎng)絡(luò)的路由器控制所述自身和所述外部網(wǎng)絡(luò)的客戶端的通道配置相匹配,并將VPN相關(guān)配置參數(shù)推送至所述外部網(wǎng)絡(luò)的客戶端,建立VPN網(wǎng)絡(luò)連接。
本發(fā)明中,通過密鑰交換、封裝、認證、加密手段在公共網(wǎng)絡(luò)上建立起私密的隧道,保障傳輸數(shù)據(jù)的完整性、私密性和有效性。傳統(tǒng)SSLVPN通過端口代理的方法實現(xiàn),代理路由器根據(jù)應(yīng)用協(xié)議的類型(如http,telnet等)做相應(yīng)的端口代理,客戶端與代理路由器之間建立SSL安全連接,客戶端與應(yīng)用路由器之間的所有數(shù)據(jù)傳輸通過代理路由器轉(zhuǎn)發(fā)。這種實現(xiàn)方式煩瑣,應(yīng)用范圍也比較窄;不能對TCP以外的其它網(wǎng)絡(luò)通信協(xié)議進行代理;代理路由器前端的防火墻也要根據(jù)代理端口的配置變化進行相應(yīng)調(diào)整。OpenVPN以一種全新的方式實現(xiàn)了SSLVPN的功能,克服了傳統(tǒng)SSLVPN的一些缺陷,擴展了應(yīng)用領(lǐng)域,并且防火墻上只需開放TCP或UDP協(xié)議的一個端口。
進一步的,所述步驟S100之前還包括步驟:
S010預(yù)先設(shè)置控制腳本至所述內(nèi)部網(wǎng)絡(luò)的路由器內(nèi)核;
S020根據(jù)預(yù)設(shè)生成規(guī)則生成初始會話密鑰;
S030根據(jù)所述路由器相關(guān)信息和所述客戶端相關(guān)信息,預(yù)先設(shè)置VPN相關(guān)配置參數(shù);
其中,所述控制腳本包括開源VPN相關(guān)軟件和OVPN文件,所述OVPN文件控制啟動形式,啟動形式包括路由器啟動形式、客戶端啟動形式和同步啟動形式;所述客戶端相關(guān)信息和所述路由器相關(guān)信息包括MAC地址、型號、IP地址中的任一一種或多種。
本發(fā)明中,涉及了一種具有OpenVPN隧道協(xié)議的路由器,路由器加入OpenVPN更能體現(xiàn)智能家庭路由器這一概念,此功能并非是通過無線路由器連接至其他的VPN路由器建立VPN連接。而是將路由器作為VPN路由器,位于因特網(wǎng)上的終端設(shè)備可以使用VPN技術(shù)連接至路由器的內(nèi)網(wǎng)。路由器內(nèi)核里有OpenVPN隧道協(xié)議,將路由器作為VPN路由器,客戶端直接通過VPN技術(shù)連接該路由器的網(wǎng)絡(luò),OpenVPN能夠應(yīng)用在下列操作系統(tǒng),例如:Linux、Windos、Mac OS和Unix等操作系統(tǒng)系統(tǒng)。這里,可以是根據(jù)設(shè)置的啟動形式,路由器先進行認證或者客戶端先進行認證,也可以是客戶端和路由器同步進行認證。
進一步的,所述步驟S200包括步驟:
S210所述內(nèi)部網(wǎng)絡(luò)的路由器接收所述外部網(wǎng)絡(luò)的客戶端發(fā)送的建立安全通道請求,建立一條通道;并在所述通道上發(fā)送自身的路由器數(shù)字證書至所述外部網(wǎng)絡(luò)的客戶端;
S220所述外部網(wǎng)絡(luò)的客戶端接收所述路由器數(shù)字證書,并驗證所述路由器數(shù)字證書是否有效,若是執(zhí)行步驟S230;否則執(zhí)行步驟S290;
S230所述外部網(wǎng)絡(luò)的客戶端根據(jù)所述路由器數(shù)字證書的公鑰將所述初始會話密鑰進行加密;并將所述加密后的會話密鑰和客戶端用戶證書發(fā)送至所述內(nèi)部網(wǎng)絡(luò)的路由器;
S240所述內(nèi)部網(wǎng)絡(luò)的路由器接收所述客戶端用戶證書,并驗證所述客戶端用戶證書是否有效,若是執(zhí)行步驟S250;否則執(zhí)行步驟S290;
S250所述內(nèi)部網(wǎng)絡(luò)的路由器根據(jù)第一私鑰對所述加密后的會話密鑰進行解密,獲得解密后的會話密鑰;并根據(jù)所述客戶端用戶證書的公鑰將所述解密后的會話密鑰進行加密;然后將所述二次加密后的會話密鑰發(fā)送至所述外部網(wǎng)絡(luò)的客戶端;
S260所述外部網(wǎng)絡(luò)的客戶端接收所述二次加密后的會話密鑰,根據(jù)第二私鑰對所述二次加密后的會話密鑰進行解密,獲得二次解密后的會話密鑰;并判斷所述二次解密后的會話密鑰是否與所述初始會話密鑰是否一致,若是執(zhí)行步驟S270;否則執(zhí)行步驟S290;
S270輸出終端身份驗證通過,雙方使用這把初始會話密鑰建立安全通道;
S280所述內(nèi)部網(wǎng)絡(luò)的路由器和所述外部網(wǎng)絡(luò)的客戶端在所述安全通道上進行密鑰協(xié)商得到加密密鑰和MAC密鑰;
S290輸出終端身份驗證不通過,退出所述建立安全通道過程;
其中,所述內(nèi)部網(wǎng)絡(luò)的路由器數(shù)字證書包括所述內(nèi)部網(wǎng)絡(luò)的路由器的公鑰;所述外部網(wǎng)絡(luò)的客戶端用戶證書包括所述外部網(wǎng)絡(luò)的客戶端的公鑰。
本發(fā)明中,OpenVPN內(nèi)置了兩個通道,一個用于控制,另一個用于數(shù)據(jù)傳輸,在設(shè)計上,很多網(wǎng)絡(luò)協(xié)議都實現(xiàn)了多通道,也有N種方式實現(xiàn)多通道,其中常用的有兩種,一種是使用帶外數(shù)據(jù)傳輸控制信息,另一種就是將控制信息多路復(fù)用到數(shù)據(jù)通道。OpenVPN使用的就是第二種方式OpenVPN使用自己的協(xié)議,其中大部分的思想是借鑒于IPSec的,SSL協(xié)議對OpenVPN的幫助只是第一階段的認證以及控制通道的密鑰協(xié)商。OpenVPN設(shè)計兩個通道而不是直接使用SSL協(xié)議的另一個原因是這樣可以使安全配置更加靈活,比如可以實現(xiàn)只認證不加密,或者不認證只加密之類的靈活配置,否則這些就都要基于SSL協(xié)議來配置,那樣靈活性將大大降低。
進一步的,所述步驟S300包括步驟:
S310所述內(nèi)部網(wǎng)絡(luò)的路由器控制所述自身和所述外部網(wǎng)絡(luò)的客戶端的通道配置相匹配;
S320所述內(nèi)部網(wǎng)絡(luò)的路由器通過所述安全通道接收所述外部網(wǎng)絡(luò)的客戶端發(fā)送的網(wǎng)絡(luò)連接請求;
S330所述內(nèi)部網(wǎng)絡(luò)的路由器通過所述安全通道將所述VPN相關(guān)配置參數(shù)發(fā)送至所述外部網(wǎng)絡(luò)的客戶端;
S340所述外部網(wǎng)絡(luò)的客戶端接收所述VPN相關(guān)配置參數(shù),并與所述內(nèi)部網(wǎng)絡(luò)的路由器建立VPN網(wǎng)絡(luò)連接;
其中,所述VPN相關(guān)配置參數(shù)包括服務(wù)類型、服務(wù)端口、訪問站點、最大傳輸數(shù)據(jù)閾值中的任意一種或多種。
本發(fā)明中,在協(xié)商好密鑰之后,控制通道的安全策略以及數(shù)據(jù)通道的密鑰都已經(jīng)準備好了。此階段的目的是為數(shù)據(jù)通道的部署做準備,配置協(xié)商是保持兩端的通道配置一致,比如MTU要一致,這類似于物理以太網(wǎng)卡兩端的自協(xié)商,另外還要互相告知keepalive信息;策略推送是OpenVPN的一大特色,路由器端會把一系列的配置,比如路由推送到客戶端,這樣客戶端可以自動添加虛擬網(wǎng)卡的路由信息。
進一步的,所述步驟S300之后還包括步驟:
S400判斷所述外部網(wǎng)絡(luò)的客戶端與所述內(nèi)部網(wǎng)絡(luò)的路由器VPN連接是否成功,若是執(zhí)行步驟S500;否則,執(zhí)行步驟S100;
S500所述外部網(wǎng)絡(luò)的客戶端在所述安全通道通過VPN連接所述內(nèi)部網(wǎng)絡(luò)的路由器訪問內(nèi)網(wǎng)或外網(wǎng)進行數(shù)據(jù)傳輸。
本發(fā)明中,在OpenVPN完成了握手的同時,虛擬網(wǎng)卡開始初始化,一旦虛擬網(wǎng)卡初始化完畢,數(shù)據(jù)通道也就隨即準備好,數(shù)據(jù)傳輸也就開始了。值得注意的是,數(shù)據(jù)通道和控制是并行工作的,它們是并行工作的,數(shù)據(jù)通道的安全策略完全獨立于控制通道的安全策略,這個在具體配置上會體現(xiàn)的很明顯。這樣好處在于,在數(shù)據(jù)通道傳輸數(shù)據(jù)的同時還可以在不影響數(shù)據(jù)通道的情況下傳輸控制信息。
本發(fā)明還提供一種路由器的VPN網(wǎng)絡(luò)連接系統(tǒng),包括:內(nèi)部網(wǎng)絡(luò)的路由器和至少一臺外部網(wǎng)絡(luò)的客戶端;所述內(nèi)部網(wǎng)絡(luò)的路由器與所述外部網(wǎng)絡(luò)的客戶端通訊連接;
所述內(nèi)部網(wǎng)絡(luò)的路由器,驗證所述外部網(wǎng)絡(luò)的客戶端身份的合法性;
所述外部網(wǎng)絡(luò)的客戶端,驗證所述內(nèi)部網(wǎng)絡(luò)的路由器身份的合法性;
所述內(nèi)部網(wǎng)絡(luò)的路由器,建立一安全通道與所述外部網(wǎng)絡(luò)的客戶端連接,并在所述安全通道上與所述外部網(wǎng)絡(luò)的客戶端進行密鑰協(xié)商;
所述內(nèi)部網(wǎng)絡(luò)的路由器,控制所述自身和所述外部網(wǎng)絡(luò)的客戶端的通道配置相匹配,并將VPN相關(guān)配置參數(shù)推送至所述外部網(wǎng)絡(luò)的客戶端,建立VPN網(wǎng)絡(luò)連接。
本發(fā)明中,通過密鑰交換、封裝、認證、加密手段在公共網(wǎng)絡(luò)上建立起私密的隧道,保障傳輸數(shù)據(jù)的完整性、私密性和有效性。傳統(tǒng)SSLVPN通過端口代理的方法實現(xiàn),代理路由器根據(jù)應(yīng)用協(xié)議的類型(如http,telnet等)做相應(yīng)的端口代理,客戶端與代理路由器之間建立SSL安全連接,客戶端與應(yīng)用路由器之間的所有數(shù)據(jù)傳輸通過代理路由器轉(zhuǎn)發(fā)。這種實現(xiàn)方式煩瑣,應(yīng)用范圍也比較窄;不能對TCP以外的其它網(wǎng)絡(luò)通信協(xié)議進行代理;代理路由器前端的防火墻也要根據(jù)代理端口的配置變化進行相應(yīng)調(diào)整。OpenVPN以一種全新的方式實現(xiàn)了SSLVPN的功能,克服了傳統(tǒng)SSLVPN的一些缺陷,擴展了應(yīng)用領(lǐng)域,并且防火墻上只需開放TCP或UDP協(xié)議的一個端口。
進一步的,所述內(nèi)部網(wǎng)絡(luò)的路由器包括設(shè)置模塊;
所述設(shè)置模塊,預(yù)先設(shè)置控制腳本至所述內(nèi)部網(wǎng)絡(luò)的路由器內(nèi)核;
所述設(shè)置模塊,還根據(jù)預(yù)設(shè)生成規(guī)則生成初始會話密鑰;
所述設(shè)置模塊,還根據(jù)所述路由器相關(guān)信息和所述客戶端相關(guān)信息,預(yù)先設(shè)置VPN相關(guān)配置參數(shù);
其中,所述控制腳本包括開源VPN相關(guān)軟件和OVPN文件,所述OVPN文件控制啟動形式,啟動形式包括路由器啟動形式、客戶端啟動形式和同步啟動形式;所述客戶端相關(guān)信息和所述路由器相關(guān)信息包括MAC地址、型號、IP地址中的任一一種或多種。
本發(fā)明中,涉及了一種具有OpenVPN隧道協(xié)議的路由器,路由器加入OpenVPN更能體現(xiàn)智能家庭路由器這一概念,此功能并非是通過無線路由器連接至其他的VPN路由器建立VPN連接。而是將路由器作為VPN路由器,位于因特網(wǎng)上的終端設(shè)備可以使用VPN技術(shù)連接至路由器的內(nèi)網(wǎng)。路由器內(nèi)核里有OpenVPN隧道協(xié)議,將路由器作為VPN路由器,客戶端直接通過VPN技術(shù)連接該路由器的網(wǎng)絡(luò),OpenVPN能夠應(yīng)用在下列操作系統(tǒng),例如:Linux、Windos、Mac OS和Unix等操作系統(tǒng)系統(tǒng)。
進一步的,所述內(nèi)部網(wǎng)絡(luò)的路由器包括控制模塊和驗證模塊;所述驗證模塊與所述控制模塊通訊連接;所述設(shè)置模塊與所述控制模塊通訊連接;
所述外部網(wǎng)絡(luò)的客戶端包括控制模塊和判斷模塊;所述控制模塊和所述判斷模塊通訊連接;
所述內(nèi)部網(wǎng)絡(luò)的路由器的控制模塊,接收所述外部網(wǎng)絡(luò)的客戶端發(fā)送的建立安全通道請求,建立一條通道;并在所述通道上發(fā)送自身的路由器數(shù)字證書至所述外部網(wǎng)絡(luò)的客戶端;
所述外部網(wǎng)絡(luò)的客戶端的判斷模塊,接收所述路由器數(shù)字證書,并驗證所述路由器數(shù)字證書是否有效;
所述外部網(wǎng)絡(luò)的客戶端的控制模塊,當所述路由器數(shù)字證書無效時,輸出終端身份驗證不通過,退出所述建立安全通道過程;
所述外部網(wǎng)絡(luò)的客戶端的控制模塊,當所述路由器數(shù)字證書有效時,根據(jù)所述路由器數(shù)字證書的公鑰將所述初始會話密鑰進行加密;并將所述加密后的會話密鑰和客戶端用戶證書發(fā)送至所述內(nèi)部網(wǎng)絡(luò)的路由器;
所述內(nèi)部網(wǎng)絡(luò)的路由器的驗證模塊,接收所述客戶端用戶證書,并驗證所述客戶端用戶證書是否有效;
所述內(nèi)部網(wǎng)絡(luò)的路由器的控制模塊,當所述客戶端用戶證書無效時,輸出終端身份驗證不通過,退出所述建立安全通道過程;
所述內(nèi)部網(wǎng)絡(luò)的路由器的控制模塊,當所述客戶端用戶證書有效時,根據(jù)第一私鑰對所述加密后的會話密鑰進行解密,獲得解密后的會話密鑰;并根據(jù)所述客戶端用戶證書的公鑰將所述解密后的會話密鑰進行加密;然后將所述二次加密后的會話密鑰發(fā)送至所述外部網(wǎng)絡(luò)的客戶端;
所述外部網(wǎng)絡(luò)的客戶端的控制模塊,還接收所述二次加密后的會話密鑰,根據(jù)第二私鑰對所述二次加密后的會話密鑰進行解密,獲得二次解密后的會話密鑰;
所述外部網(wǎng)絡(luò)的客戶端的判斷模塊,還判斷所述二次解密后的會話密鑰是否與所述初始會話密鑰是否一致;
所述外部網(wǎng)絡(luò)的客戶端的控制模塊和所述內(nèi)部網(wǎng)絡(luò)的路由器的控制模塊,當所述二次解密后的會話密鑰是否與所述初始會話密鑰一致時,輸出終端身份驗證通過,使用這把初始會話密鑰建立安全通道;并在所述安全通道上進行密鑰協(xié)商得到加密密鑰和MAC密鑰;
所述外部網(wǎng)絡(luò)的客戶端的控制模塊和所述內(nèi)部網(wǎng)絡(luò)的路由器的控制模塊,當所述二次解密后的會話密鑰是否與所述初始會話密鑰不一致時,輸出終端身份驗證不通過,退出所述建立安全通道過程;
其中,所述內(nèi)部網(wǎng)絡(luò)的路由器數(shù)字證書包括所述內(nèi)部網(wǎng)絡(luò)的路由器的公鑰;所述外部網(wǎng)絡(luò)的客戶端用戶證書包括所述外部網(wǎng)絡(luò)的客戶端的公鑰。
本發(fā)明中,OpenVPN內(nèi)置了兩個通道,一個用于控制,另一個用于數(shù)據(jù)傳輸,在設(shè)計上,很多網(wǎng)絡(luò)協(xié)議都實現(xiàn)了多通道,也有N種方式實現(xiàn)多通道,其中常用的有兩種,一種是使用帶外數(shù)據(jù)傳輸控制信息,另一種就是將控制信息多路復(fù)用到數(shù)據(jù)通道。OpenVPN使用的就是第二種方式。OpenVPN使用自己的協(xié)議,其中大部分的思想是借鑒于IPSec的,SSL協(xié)議對OpenVPN的幫助只是第一階段的認證以及控制通道的密鑰協(xié)商。OpenVPN設(shè)計兩個通道而不是直接使用SSL協(xié)議的另一個原因是這樣可以使安全配置更加靈活,比如可以實現(xiàn)只認證不加密,或者不認證只加密之類的靈活配置,否則這些就都要基于SSL協(xié)議來配置,那樣靈活性將大大降低。
進一步的,所述內(nèi)部網(wǎng)絡(luò)的路由器的控制模塊,還控制所述自身和所述外部網(wǎng)絡(luò)的客戶端的通道配置相匹配;
所述內(nèi)部網(wǎng)絡(luò)的路由器的控制模塊,還通過所述安全通道接收所述外部網(wǎng)絡(luò)的客戶端發(fā)送的網(wǎng)絡(luò)連接請求;
所述內(nèi)部網(wǎng)絡(luò)的路由器的控制模塊,還通過所述安全通道將所述VPN相關(guān)配置參數(shù)發(fā)送至所述外部網(wǎng)絡(luò)的客戶端;
所述外部網(wǎng)絡(luò)的客戶端的控制模塊,還接收所述VPN相關(guān)配置參數(shù),并與所述內(nèi)部網(wǎng)絡(luò)的路由器建立VPN網(wǎng)絡(luò)連接;
其中,所述VPN相關(guān)配置參數(shù)包括服務(wù)類型、服務(wù)端口、訪問站點、最大傳輸數(shù)據(jù)閾值中的任意一種或多種。
本發(fā)明中,在協(xié)商好密鑰之后,控制通道的安全策略以及數(shù)據(jù)通道的密鑰都已經(jīng)準備好了。此階段的目的是為數(shù)據(jù)通道的部署做準備,配置協(xié)商是保持兩端的通道配置一致,比如MTU要一致,這類似于物理以太網(wǎng)卡兩端的自協(xié)商,另外還要互相告知keepalive信息;策略推送是OpenVPN的一大特色,路由器端會把一系列的配置,比如路由推送到客戶端,這樣客戶端可以自動添加虛擬網(wǎng)卡的路由信息。
進一步的,所述外部網(wǎng)絡(luò)的客戶端還包括:訪問模塊;所述訪問模塊與所述外部網(wǎng)絡(luò)的客戶端的所述判斷模塊通訊連接;
所述外部網(wǎng)絡(luò)的客戶端的判斷模塊,還判斷所述外部網(wǎng)絡(luò)的客戶端與所述內(nèi)部網(wǎng)絡(luò)的路由器VPN連接是否成功;
當所述外部網(wǎng)絡(luò)的客戶端與所述內(nèi)部網(wǎng)絡(luò)的路由器VPN連接成功時,所述外部網(wǎng)絡(luò)的客戶端在所述安全通道通過VPN連接所述內(nèi)部網(wǎng)絡(luò)的路由器訪問內(nèi)網(wǎng)或外網(wǎng)進行數(shù)據(jù)傳輸;
當所述外部網(wǎng)絡(luò)的客戶端與所述內(nèi)部網(wǎng)絡(luò)的路由器VPN連接失敗時,內(nèi)部網(wǎng)絡(luò)的路由器和外部網(wǎng)絡(luò)的客戶端重新相互驗證雙方身份的合法性。
本發(fā)明中,在OpenVPN完成了握手的同時,虛擬網(wǎng)卡開始初始化,一旦虛擬網(wǎng)卡初始化完畢,數(shù)據(jù)通道也就隨即準備好,數(shù)據(jù)傳輸也就開始了。值得注意的是,數(shù)據(jù)通道和控制是并行工作的,它們是并行工作的,數(shù)據(jù)通道的安全策略完全獨立于控制通道的安全策略,這個在具體配置上會體現(xiàn)的很明顯。這樣好處在于,在數(shù)據(jù)通道傳輸數(shù)據(jù)的同時還可以在不影響數(shù)據(jù)通道的情況下傳輸控制信息。
與現(xiàn)有技術(shù)相比,本發(fā)明提供一種路由器的VPN網(wǎng)絡(luò)連接方法及系統(tǒng),至少帶來以下一種技術(shù)效果:
1、通過密鑰交換、封裝、認證、加密手段在公共網(wǎng)絡(luò)上建立起私密的隧道,保障傳輸數(shù)據(jù)的完整性、私密性和有效性。
2、利用家庭網(wǎng)絡(luò)突破網(wǎng)絡(luò)封鎖。
3、ssl加密連接路由器,安全可靠。
附圖說明
下面將以明確易懂的方式,結(jié)合附圖說明優(yōu)選實施方式,對一種路由器的VPN網(wǎng)絡(luò)連接方法及系統(tǒng)的特性、技術(shù)特征、優(yōu)點及其實現(xiàn)方式予以進一步說明。
圖1是本發(fā)明一種路由器的VPN網(wǎng)絡(luò)連接方法一個實施例的流程圖;
圖2是本發(fā)明一種路由器的VPN網(wǎng)絡(luò)連接方法另一個實施例的流程圖;
圖3是本發(fā)明一種路由器的VPN網(wǎng)絡(luò)連接方法另一個實施例的流程圖;
圖4是本發(fā)明一種路由器的VPN網(wǎng)絡(luò)連接系統(tǒng)一個實施例的結(jié)構(gòu)圖;
圖5是本發(fā)明一種路由器的VPN網(wǎng)絡(luò)連接系統(tǒng)另一個實施例的結(jié)構(gòu)圖;
圖6是本發(fā)明一種路由器的VPN網(wǎng)絡(luò)連接方法一個實例的流程圖。
具體實施方式
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對照附圖說明本發(fā)明的具體實施方式。顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖,并獲得其他的實施方式。
為使圖面簡潔,各圖中只示意性地表示出了與本發(fā)明相關(guān)的部分,它們并不代表其作為產(chǎn)品的實際結(jié)構(gòu)。另外,以使圖面簡潔便于理解,在有些圖中具有相同結(jié)構(gòu)或功能的部件,僅示意性地繪示了其中的一個,或僅標出了其中的一個。在本文中,“一個”不僅表示“僅此一個”,也可以表示“多于一個”的情形。
參照圖1所示,本發(fā)明提供一種路由器的VPN網(wǎng)絡(luò)連接方法的一個實施例,包括:
S100內(nèi)部網(wǎng)絡(luò)的路由器和外部網(wǎng)絡(luò)的客戶端相互驗證雙方身份的合法性;
S200所述內(nèi)部網(wǎng)絡(luò)的路由器建立一安全通道與所述外部網(wǎng)絡(luò)的客戶端連接,并在所述安全通道上與所述外部網(wǎng)絡(luò)的客戶端進行密鑰協(xié)商;
S300所述內(nèi)部網(wǎng)絡(luò)的路由器控制所述自身和所述外部網(wǎng)絡(luò)的客戶端的通道配置相匹配,并將VPN相關(guān)配置參數(shù)推送至所述外部網(wǎng)絡(luò)的客戶端,建立VPN網(wǎng)絡(luò)連接。
具體的,在本實施例中通過密鑰交換、封裝、認證、加密手段在公共網(wǎng)絡(luò)上建立起私密的隧道,保障傳輸數(shù)據(jù)的完整性、私密性和有效性。傳統(tǒng)SSLVPN通過端口代理的方法實現(xiàn),代理路由器根據(jù)應(yīng)用協(xié)議的類型(如http,telnet等)做相應(yīng)的端口代理,客戶端與代理路由器之間建立SSL安全連接,客戶端與應(yīng)用路由器之間的所有數(shù)據(jù)傳輸通過代理路由器轉(zhuǎn)發(fā)。這種實現(xiàn)方式煩瑣,應(yīng)用范圍也比較窄;不能對TCP以外的其它網(wǎng)絡(luò)通信協(xié)議進行代理;代理路由器前端的防火墻也要根據(jù)代理端口的配置變化進行相應(yīng)調(diào)整。OpenVPN以一種全新的方式實現(xiàn)了SSLVPN的功能,克服了傳統(tǒng)SSLVPN的一些缺陷,擴展了應(yīng)用領(lǐng)域,并且防火墻上只需開放TCP或UDP協(xié)議的一個端口。
參照圖2所示,本發(fā)明提供一種路由器的VPN網(wǎng)絡(luò)連接方法的另一個實施例,包括:
S100內(nèi)部網(wǎng)絡(luò)的路由器和外部網(wǎng)絡(luò)的客戶端相互驗證雙方身份的合法性;
S210所述內(nèi)部網(wǎng)絡(luò)的路由器接收所述外部網(wǎng)絡(luò)的客戶端發(fā)送的建立安全通道請求,建立一條通道;并在所述通道上發(fā)送自身的路由器數(shù)字證書至所述外部網(wǎng)絡(luò)的客戶端;
S220所述外部網(wǎng)絡(luò)的客戶端接收所述路由器數(shù)字證書,并驗證所述路由器數(shù)字證書是否有效,若是執(zhí)行步驟S230;否則執(zhí)行步驟S290;
S230所述外部網(wǎng)絡(luò)的客戶端根據(jù)所述路由器數(shù)字證書的公鑰將所述初始會話密鑰進行加密;并將所述加密后的會話密鑰和客戶端用戶證書發(fā)送至所述內(nèi)部網(wǎng)絡(luò)的路由器;
S240所述內(nèi)部網(wǎng)絡(luò)的路由器接收所述客戶端用戶證書,并驗證所述客戶端用戶證書是否有效,若是執(zhí)行步驟S250;否則執(zhí)行步驟S290;
S250所述內(nèi)部網(wǎng)絡(luò)的路由器根據(jù)第一私鑰對所述加密后的會話密鑰進行解密,獲得解密后的會話密鑰;并根據(jù)所述客戶端用戶證書的公鑰將所述解密后的會話密鑰進行加密;然后將所述二次加密后的會話密鑰發(fā)送至所述外部網(wǎng)絡(luò)的客戶端;
S260所述外部網(wǎng)絡(luò)的客戶端接收所述二次加密后的會話密鑰,根據(jù)第二私鑰對所述二次加密后的會話密鑰進行解密,獲得二次解密后的會話密鑰;并判斷所述二次解密后的會話密鑰是否與所述初始會話密鑰是否一致,若是執(zhí)行步驟S270;否則執(zhí)行步驟S290;
S270輸出終端身份驗證通過,雙方使用這把初始會話密鑰建立安全通道;
S280所述內(nèi)部網(wǎng)絡(luò)的路由器和所述外部網(wǎng)絡(luò)的客戶端在所述安全通道上進行密鑰協(xié)商得到加密密鑰和MAC密鑰;
S290輸出終端身份驗證不通過,退出所述建立安全通道過程;
S300所述內(nèi)部網(wǎng)絡(luò)的路由器控制所述自身和所述外部網(wǎng)絡(luò)的客戶端的通道配置相匹配,并將VPN相關(guān)配置參數(shù)推送至所述外部網(wǎng)絡(luò)的客戶端,建立VPN網(wǎng)絡(luò)連接。
本實施例中,其中,所述內(nèi)部網(wǎng)絡(luò)的路由器數(shù)字證書包括所述內(nèi)部網(wǎng)絡(luò)的路由器的公鑰;所述外部網(wǎng)絡(luò)的客戶端用戶證書包括所述外部網(wǎng)絡(luò)的客戶端的公鑰。OpenVPN內(nèi)置了兩個通道,一個用于控制,另一個用于數(shù)據(jù)傳輸,在設(shè)計上,很多網(wǎng)絡(luò)協(xié)議都實現(xiàn)了多通道,也有N種方式實現(xiàn)多通道,其中常用的有兩種,一種是使用帶外數(shù)據(jù)傳輸控制信息,另一種就是將控制信息多路復(fù)用到數(shù)據(jù)通道。OpenVPN使用的就是第二種方式OpenVPN使用自己的協(xié)議,其中大部分的思想是借鑒于IPSec的,SSL協(xié)議對OpenVPN的幫助只是第一階段的認證以及控制通道的密鑰協(xié)商。OpenVPN設(shè)計兩個通道而不是直接使用SSL協(xié)議的另一個原因是這樣可以使安全配置更加靈活,比如可以實現(xiàn)只認證不加密,或者不認證只加密之類的靈活配置,否則這些就都要基于SSL協(xié)議來配置,那樣靈活性將大大降低。
參照圖3所示,本發(fā)明提供一種路由器的VPN網(wǎng)絡(luò)連接方法的另一個實施例,包括:
S010預(yù)先設(shè)置控制腳本至所述內(nèi)部網(wǎng)絡(luò)的路由器內(nèi)核;
S020根據(jù)預(yù)設(shè)生成規(guī)則生成初始會話密鑰;
S030根據(jù)所述路由器相關(guān)信息和所述客戶端相關(guān)信息,預(yù)先設(shè)置VPN相關(guān)配置參數(shù);
S100內(nèi)部網(wǎng)絡(luò)的路由器和外部網(wǎng)絡(luò)的客戶端相互驗證雙方身份的合法性;
S200所述內(nèi)部網(wǎng)絡(luò)的路由器建立一安全通道與所述外部網(wǎng)絡(luò)的客戶端連接,并在所述安全通道上與所述外部網(wǎng)絡(luò)的客戶端進行密鑰協(xié)商;
S310所述內(nèi)部網(wǎng)絡(luò)的路由器控制所述自身和所述外部網(wǎng)絡(luò)的客戶端的通道配置相匹配;
S320所述內(nèi)部網(wǎng)絡(luò)的路由器通過所述安全通道接收所述外部網(wǎng)絡(luò)的客戶端發(fā)送的網(wǎng)絡(luò)連接請求;
S330所述內(nèi)部網(wǎng)絡(luò)的路由器通過所述安全通道將所述VPN相關(guān)配置參數(shù)發(fā)送至所述外部網(wǎng)絡(luò)的客戶端;
S340所述外部網(wǎng)絡(luò)的客戶端接收所述VPN相關(guān)配置參數(shù),并與所述內(nèi)部網(wǎng)絡(luò)的路由器建立VPN網(wǎng)絡(luò)連接;
S400判斷所述外部網(wǎng)絡(luò)的客戶端與所述內(nèi)部網(wǎng)絡(luò)的路由器VPN連接是否成功,若是執(zhí)行步驟S500;否則,執(zhí)行步驟S100;
S500所述外部網(wǎng)絡(luò)的客戶端在所述安全通道通過VPN連接所述內(nèi)部網(wǎng)絡(luò)的路由器訪問內(nèi)網(wǎng)或外網(wǎng)進行數(shù)據(jù)傳輸。
本實施例中,涉及了一種具有OpenVPN隧道協(xié)議的路由器,路由器加入OpenVPN更能體現(xiàn)智能家庭路由器這一概念,此功能并非是通過無線路由器連接至其他的VPN路由器建立VPN連接。而是將路由器作為VPN路由器,位于因特網(wǎng)上的終端設(shè)備可以使用VPN技術(shù)連接至路由器的內(nèi)網(wǎng)。路由器內(nèi)核里有OpenVPN隧道協(xié)議,將路由器作為VPN路由器,客戶端直接通過VPN技術(shù)連接該路由器的網(wǎng)絡(luò),OpenVPN能夠應(yīng)用在下列操作系統(tǒng),例如:Linux、Windos、Mac OS和Unix等操作系統(tǒng)系統(tǒng)。這里,可以是根據(jù)設(shè)置的啟動形式,路由器先進行認證或者客戶端先進行認證,也可以是客戶端和路由器同步進行認證。在協(xié)商好密鑰之后,控制通道的安全策略以及數(shù)據(jù)通道的密鑰都已經(jīng)準備好了。此階段的目的是為數(shù)據(jù)通道的部署做準備,配置協(xié)商是保持兩端的通道配置一致,比如MTU要一致,這類似于物理以太網(wǎng)卡兩端的自協(xié)商,另外還要互相告知keepalive信息;策略推送是OpenVPN的一大特色,路由器端會把一系列的配置,比如路由推送到客戶端,這樣客戶端可以自動添加虛擬網(wǎng)卡的路由信息。在OpenVPN完成了握手的同時,虛擬網(wǎng)卡開始初始化,一旦虛擬網(wǎng)卡初始化完畢,數(shù)據(jù)通道也就隨即準備好,數(shù)據(jù)傳輸也就開始了。值得注意的是,數(shù)據(jù)通道和控制是并行工作的,它們是并行工作的,數(shù)據(jù)通道的安全策略完全獨立于控制通道的安全策略,這個在具體配置上會體現(xiàn)的很明顯。這樣好處在于,在數(shù)據(jù)通道傳輸數(shù)據(jù)的同時還可以在不影響數(shù)據(jù)通道的情況下傳輸控制信息。
其中,所述VPN相關(guān)配置參數(shù)包括服務(wù)類型、服務(wù)端口、訪問站點、最大傳輸數(shù)據(jù)閾值中的任意一種或多種。所述控制腳本包括開源VPN相關(guān)軟件和OVPN文件,所述OVPN文件控制啟動形式,啟動形式包括路由器啟動形式、客戶端啟動形式和同步啟動形式。例如:內(nèi)部網(wǎng)絡(luò)的路由器接收所述外部網(wǎng)絡(luò)的客戶端發(fā)送的驗證請求;并根據(jù)所述驗證請求判斷所述外部網(wǎng)絡(luò)的客戶端是否不在連接白名單內(nèi),若是內(nèi)部網(wǎng)絡(luò)的路由器開啟與所述外部網(wǎng)絡(luò)的客戶端的握手連接?;蛘咄獠烤W(wǎng)絡(luò)的客戶端接收所述內(nèi)部網(wǎng)絡(luò)的路由器發(fā)送的驗證請求;并根據(jù)所述驗證請求判斷所述外部網(wǎng)絡(luò)的客戶端是否不在連接白名單內(nèi),若是外部網(wǎng)絡(luò)的客戶端開啟與所述內(nèi)部網(wǎng)絡(luò)的路由器的握手連接。所述客戶端相關(guān)信息和所述路由器相關(guān)信息包括MAC地址、型號、IP地址中的任一一種或多種。
參照圖4所示,本發(fā)明提供一種路由器的VPN網(wǎng)絡(luò)連接系統(tǒng)100的一個實施例,包括:內(nèi)部網(wǎng)絡(luò)的路由器120和至少一臺外部網(wǎng)絡(luò)的客戶端110;所述內(nèi)部網(wǎng)絡(luò)的路由器120與所述外部網(wǎng)絡(luò)的客戶端110通訊連接;
所述內(nèi)部網(wǎng)絡(luò)的路由器120,驗證所述外部網(wǎng)絡(luò)的客戶端110身份的合法性;
所述外部網(wǎng)絡(luò)的客戶端110,驗證所述內(nèi)部網(wǎng)絡(luò)的路由器120身份的合法性;
所述內(nèi)部網(wǎng)絡(luò)的路由器120,建立一安全通道與所述外部網(wǎng)絡(luò)的客戶端110連接,并在所述安全通道上與所述外部網(wǎng)絡(luò)的客戶端110進行密鑰協(xié)商;
所述內(nèi)部網(wǎng)絡(luò)的路由器120,控制所述自身和所述外部網(wǎng)絡(luò)的客戶端110的通道配置相匹配,并將VPN相關(guān)配置參數(shù)推送至所述外部網(wǎng)絡(luò)的客戶端110,建立VPN網(wǎng)絡(luò)連接。
本實施例中,通過密鑰交換、封裝、認證、加密手段在公共網(wǎng)絡(luò)上建立起私密的隧道,保障傳輸數(shù)據(jù)的完整性、私密性和有效性。傳統(tǒng)SSLVPN通過端口代理的方法實現(xiàn),代理路由器120根據(jù)應(yīng)用協(xié)議的類型(如http,telnet等)做相應(yīng)的端口代理,客戶端110與代理路由器120之間建立SSL安全連接,客戶端110與應(yīng)用路由器120之間的所有數(shù)據(jù)傳輸通過代理路由器120轉(zhuǎn)發(fā)。這種實現(xiàn)方式煩瑣,應(yīng)用范圍也比較窄;不能對TCP以外的其它網(wǎng)絡(luò)通信協(xié)議進行代理;代理路由器120前端的防火墻也要根據(jù)代理端口的配置變化進行相應(yīng)調(diào)整。OpenVPN以一種全新的方式實現(xiàn)了SSLVPN的功能,克服了傳統(tǒng)SSLVPN的一些缺陷,擴展了應(yīng)用領(lǐng)域,并且防火墻上只需開放TCP或UDP協(xié)議的一個端口。OpenVPN內(nèi)置了兩個通道,控制通道2用于控制,數(shù)據(jù)通道1用于數(shù)據(jù)傳輸,在設(shè)計上,很多網(wǎng)絡(luò)協(xié)議都實現(xiàn)了多通道,也有N種方式實現(xiàn)多通道,其中常用的有兩種,一種是使用帶外數(shù)據(jù)傳輸控制信息,另一種就是將控制信息多路復(fù)用到數(shù)據(jù)通道。OpenVPN使用的就是第二種方式。OpenVPN使用自己的協(xié)議,其中大部分的思想是借鑒于IPSec的,SSL協(xié)議對OpenVPN的幫助只是第一階段的認證以及控制通道的密鑰協(xié)商。OpenVPN設(shè)計兩個通道而不是直接使用SSL協(xié)議的另一個原因是這樣可以使安全配置更加靈活,比如可以實現(xiàn)只認證不加密,或者不認證只加密之類的靈活配置,否則這些就都要基于SSL協(xié)議來配置,那樣靈活性將大大降低。
參照圖5所示,相對于上一實施例,相同的部分在此不再贅述。本發(fā)明提供一種路由器的VPN網(wǎng)絡(luò)連接系統(tǒng)100的另一個實施例,包括:
所述內(nèi)部網(wǎng)絡(luò)的路由器120包括設(shè)置模塊121、控制模塊和驗證模塊123;所述控制模塊分別與所述設(shè)置模塊121和所述驗證模塊123通訊連接;
所述外部網(wǎng)絡(luò)的客戶端110包括控制模塊和判斷模塊112;所述控制模塊和所述判斷模塊112通訊連接;
所述內(nèi)部網(wǎng)絡(luò)的路由器120的所述設(shè)置模塊121,預(yù)先設(shè)置控制腳本至所述內(nèi)部網(wǎng)絡(luò)的路由器120內(nèi)核;
所述內(nèi)部網(wǎng)絡(luò)的路由器120的所述設(shè)置模塊121,還根據(jù)預(yù)設(shè)生成規(guī)則生成初始會話密鑰;
所述內(nèi)部網(wǎng)絡(luò)的路由器120的所述設(shè)置模塊121,還根據(jù)所述路由器120相關(guān)信息和所述客戶端110相關(guān)信息,預(yù)先設(shè)置VPN相關(guān)配置參數(shù);
所述內(nèi)部網(wǎng)絡(luò)的路由器120的控制模塊,接收所述外部網(wǎng)絡(luò)的客戶端110發(fā)送的建立安全通道請求,建立一條通道;并在所述通道上發(fā)送自身的路由器120數(shù)字證書至所述外部網(wǎng)絡(luò)的客戶端110;
所述外部網(wǎng)絡(luò)的客戶端110的判斷模塊112,接收所述路由器120數(shù)字證書,并驗證所述路由器120數(shù)字證書是否有效;
所述外部網(wǎng)絡(luò)的客戶端110的控制模塊,當所述路由器120數(shù)字證書無效時,輸出終端身份驗證不通過,退出所述建立安全通道過程;
所述外部網(wǎng)絡(luò)的客戶端110的控制模塊,當所述路由器120數(shù)字證書有效時,根據(jù)所述路由器120數(shù)字證書的公鑰將所述初始會話密鑰進行加密;并將所述加密后的會話密鑰和客戶端110用戶證書發(fā)送至所述內(nèi)部網(wǎng)絡(luò)的路由器120;
所述內(nèi)部網(wǎng)絡(luò)的路由器120的驗證模塊123,接收所述客戶端110用戶證書,并驗證所述客戶端110用戶證書是否有效;
所述內(nèi)部網(wǎng)絡(luò)的路由器120的控制模塊,當所述客戶端110用戶證書無效時,輸出終端身份驗證不通過,退出所述建立安全通道過程;
所述內(nèi)部網(wǎng)絡(luò)的路由器120的控制模塊,當所述客戶端110用戶證書有效時,根據(jù)第一私鑰對所述加密后的會話密鑰進行解密,獲得解密后的會話密鑰;并根據(jù)所述客戶端110用戶證書的公鑰將所述解密后的會話密鑰進行加密;然后將所述二次加密后的會話密鑰發(fā)送至所述外部網(wǎng)絡(luò)的客戶端110;
所述外部網(wǎng)絡(luò)的客戶端110的控制模塊,還接收所述二次加密后的會話密鑰,根據(jù)第二私鑰對所述二次加密后的會話密鑰進行解密,獲得二次解密后的會話密鑰;
所述外部網(wǎng)絡(luò)的客戶端110的判斷模塊112,還判斷所述二次解密后的會話密鑰是否與所述初始會話密鑰是否一致;
所述外部網(wǎng)絡(luò)的客戶端110的控制模塊和所述內(nèi)部網(wǎng)絡(luò)的路由器120的控制模塊,當所述二次解密后的會話密鑰是否與所述初始會話密鑰一致時,輸出終端身份驗證通過,使用這把初始會話密鑰建立安全通道;并在所述安全通道上進行密鑰協(xié)商得到加密密鑰和MAC密鑰;
所述外部網(wǎng)絡(luò)的客戶端110的控制模塊和所述內(nèi)部網(wǎng)絡(luò)的路由器120的控制模塊,當所述二次解密后的會話密鑰是否與所述初始會話密鑰不一致時,輸出終端身份驗證不通過,退出所述建立安全通道過程;
進一步的,所述內(nèi)部網(wǎng)絡(luò)的路由器120的控制模塊,還控制所述自身和所述外部網(wǎng)絡(luò)的客戶端110的通道配置相匹配;
所述內(nèi)部網(wǎng)絡(luò)的路由器120的控制模塊,還通過所述安全通道接收所述外部網(wǎng)絡(luò)的客戶端110發(fā)送的網(wǎng)絡(luò)連接請求;
所述內(nèi)部網(wǎng)絡(luò)的路由器120的控制模塊,還通過所述安全通道將所述VPN相關(guān)配置參數(shù)發(fā)送至所述外部網(wǎng)絡(luò)的客戶端110;
所述外部網(wǎng)絡(luò)的客戶端110的控制模塊,還接收所述VPN相關(guān)配置參數(shù),并與所述內(nèi)部網(wǎng)絡(luò)的路由器120建立VPN網(wǎng)絡(luò)連接;
其中,所述控制腳本包括開源VPN相關(guān)軟件和OVPN文件,所述OVPN文件控制啟動形式,啟動形式包括路由器120啟動形式、客戶端110啟動形式和同步啟動形式;所述客戶端110相關(guān)信息和所述路由器120相關(guān)信息包括MAC地址、型號、IP地址中的任一一種或多種。
其中,所述內(nèi)部網(wǎng)絡(luò)的路由器120數(shù)字證書包括所述內(nèi)部網(wǎng)絡(luò)的路由器120的公鑰;所述外部網(wǎng)絡(luò)的客戶端110用戶證書包括所述外部網(wǎng)絡(luò)的客戶端110的公鑰。
其中,所述VPN相關(guān)配置參數(shù)包括服務(wù)類型、服務(wù)端口、訪問站點、最大傳輸數(shù)據(jù)閾值中的任意一種或多種。
優(yōu)選的,所述外部網(wǎng)絡(luò)的客戶端110還包括:訪問模塊;所述訪問模塊與所述外部網(wǎng)絡(luò)的客戶端110的所述判斷模塊112通訊連接;
所述外部網(wǎng)絡(luò)的客戶端110的判斷模塊112,還判斷所述外部網(wǎng)絡(luò)的客戶端110與所述內(nèi)部網(wǎng)絡(luò)的路由器120VPN連接是否成功;
當所述外部網(wǎng)絡(luò)的客戶端110與所述內(nèi)部網(wǎng)絡(luò)的路由器120VPN連接成功時,所述外部網(wǎng)絡(luò)的客戶端110在所述安全通道通過VPN連接所述內(nèi)部網(wǎng)絡(luò)的路由器120訪問內(nèi)網(wǎng)或外網(wǎng)進行數(shù)據(jù)傳輸;
當所述外部網(wǎng)絡(luò)的客戶端110與所述內(nèi)部網(wǎng)絡(luò)的路由器120VPN連接失敗時,內(nèi)部網(wǎng)絡(luò)的路由器120和外部網(wǎng)絡(luò)的客戶端110重新相互驗證雙方身份的合法性。
本發(fā)明實施例中,涉及了一種具有OpenVPN隧道協(xié)議的路由器120,路由器120加入OpenVPN更能體現(xiàn)智能家庭路由器120這一概念,此功能并非是通過無線路由器120連接至其他的VPN路由器120建立VPN連接。而是將路由器120作為VPN路由器120,位于因特網(wǎng)上的終端設(shè)備可以使用VPN技術(shù)連接至路由器120的內(nèi)網(wǎng)。路由器120內(nèi)核里有OpenVPN隧道協(xié)議,將路由器120作為VPN路由器120,客戶端110直接通過VPN技術(shù)連接該路由器120的網(wǎng)絡(luò),OpenVPN能夠應(yīng)用在下列操作系統(tǒng),例如:Linux、Windos、Mac OS和Unix等操作系統(tǒng)系統(tǒng)。OpenVPN內(nèi)置了兩個通道,一個用于控制,另一個用于數(shù)據(jù)傳輸,在設(shè)計上,很多網(wǎng)絡(luò)協(xié)議都實現(xiàn)了多通道,也有N種方式實現(xiàn)多通道,其中常用的有兩種,一種是使用帶外數(shù)據(jù)傳輸控制信息,另一種就是將控制信息多路復(fù)用到數(shù)據(jù)通道。OpenVPN使用的就是第二種方式。OpenVPN使用自己的協(xié)議,其中大部分的思想是借鑒于IPSec的,SSL協(xié)議對OpenVPN的幫助只是第一階段的認證以及控制通道的密鑰協(xié)商。OpenVPN設(shè)計兩個通道而不是直接使用SSL協(xié)議的另一個原因是這樣可以使安全配置更加靈活,比如可以實現(xiàn)只認證不加密,或者不認證只加密之類的靈活配置,否則這些就都要基于SSL協(xié)議來配置,那樣靈活性將大大降低。在協(xié)商好密鑰之后,控制通道的安全策略以及數(shù)據(jù)通道的密鑰都已經(jīng)準備好了。此階段的目的是為數(shù)據(jù)通道的部署做準備,配置協(xié)商是保持兩端的通道配置一致,比如MTU要一致,這類似于物理以太網(wǎng)卡兩端的自協(xié)商,另外還要互相告知keepalive信息;策略推送是OpenVPN的一大特色,路由器120端會把一系列的配置,比如路由推送到客戶端110,這樣客戶端110可以自動添加虛擬網(wǎng)卡的路由信息。在OpenVPN完成了握手的同時,虛擬網(wǎng)卡開始初始化,一旦虛擬網(wǎng)卡初始化完畢,數(shù)據(jù)通道也就隨即準備好,數(shù)據(jù)傳輸也就開始了。值得注意的是,數(shù)據(jù)通道和控制是并行工作的,它們是并行工作的,數(shù)據(jù)通道的安全策略完全獨立于控制通道的安全策略,這個在具體配置上會體現(xiàn)的很明顯。這樣好處在于,在數(shù)據(jù)通道傳輸數(shù)據(jù)的同時還可以在不影響數(shù)據(jù)通道的情況下傳輸控制信息。
參照圖6所示,本發(fā)明提供一種路由器120的VPN網(wǎng)絡(luò)連接方法的一個實例,包括:
OpenVPN連接的建立大致分為4個階段,每一個階段完成不同的事情。
第一階段:OpenVPN連接初始化,路由器120端為新連接的客戶端110以明文的方式初始化數(shù)據(jù)結(jié)構(gòu)。
第二階段:TLS/SSL握手,SSL握手階段,路由器120和客戶端110互相驗證身份的合法性,最終為OpenVPN的密鑰協(xié)商建立一條安全的加密通道。
第三階段:OpenVPN密鑰協(xié)商,在第二階段建立的安全通道上進行密鑰協(xié)商,最終協(xié)商出OpenVPN協(xié)議所使用的加密密鑰和MAC密鑰。
第四階段:OpenVPN參數(shù)協(xié)商及OpenVPN策略推送,使用OpenVPN記錄協(xié)議協(xié)商兩端的參數(shù)及路由器120向客戶端110推送配置策略。
傳統(tǒng)SSL VPN通過端口代理的方法實現(xiàn),代理路由器根據(jù)應(yīng)用協(xié)議的類型(如http,telnet等)做相應(yīng)的端口代理,客戶端110與代理路由器之間建立SSL安全連接,客戶端110與應(yīng)用路由器之間的所有數(shù)據(jù)傳輸通過代理路由器轉(zhuǎn)發(fā)。這種實現(xiàn)方式煩瑣,應(yīng)用范圍也比較窄;不能對TCP以外的其它網(wǎng)絡(luò)通信協(xié)議進行代理;代理路由器前端的防火墻也要根據(jù)代理端口的配置變化進行相應(yīng)調(diào)整。本發(fā)明實例中,OpenVPN技術(shù)通過密鑰交換、封裝、認證、加密手段在公共網(wǎng)絡(luò)上建立起私密的隧道,保障傳輸數(shù)據(jù)的完整性、私密性和有效性。
路由器120加入OpenVPN,更能體現(xiàn)家庭路由器智能,比如:
1)公司用OpenVPN客戶端110撥入家庭網(wǎng)絡(luò),然后就像在家里一樣遙控、查看所有網(wǎng)絡(luò)設(shè)備。
2)或者利用家庭網(wǎng)絡(luò)突破網(wǎng)絡(luò)封鎖!
3)ssl加密連接自家的路由器120,安全可靠!!
OpenVPN使用通用網(wǎng)絡(luò)協(xié)議的特點使它成為IPsec等協(xié)議的理想替代,OpenVPN它是一個基于SSL加密的純應(yīng)用層的VPN協(xié)議,也是SSL VPN的一種,有支持UDP與TCP兩種方式。OpenVPN可移植、易于配置及與NAT和動態(tài)地址兼容。本發(fā)明涉及的應(yīng)用并非是通過無線路由器120連接至其他的VPN路由器120建立VPN連接。而是將路由器120作為VPN路由器120,位于因特網(wǎng)上的終端設(shè)備可以使用VPN技術(shù)連接至路由器120的內(nèi)網(wǎng)。同時,OpenVPN是開源的vpn協(xié)議,加密性和適應(yīng)性都比較好,也比較靈活,不容易被封鎖。通過udp端口可以獲得較好的速度。OpenVPN它是一個基于SSL加密的純應(yīng)用層的VPN協(xié)議,由于其運行在純應(yīng)用層,避免了PPTP和L2TP在某些NAT設(shè)備后面不被支持的情況,并且可以繞過一些網(wǎng)絡(luò)的封鎖(通俗點講,基本上能上網(wǎng)的地方就能用OpenVPN)。OpenVPN以一種全新的方式實現(xiàn)了SSL VPN的功能,克服了傳統(tǒng)SSL VPN的一些缺陷,擴展了應(yīng)用領(lǐng)域,并且防火墻上只需開放TCP或UDP協(xié)議的一個端口
應(yīng)當說明的是,上述實施例均可根據(jù)需要自由組合。以上所述僅是本發(fā)明的優(yōu)選實施方式,應(yīng)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應(yīng)視為本發(fā)明的保護范圍。