一種vpn安全瀏覽器系統及設置方法
2023-09-14 14:46:50
一種vpn安全瀏覽器系統及設置方法
【專利摘要】本發明涉及網絡信息安全領域,它是在由用戶端設備、網際網路、VPN伺服器、內網伺服器等構成的網際網路系統中,在用戶端設備安裝VPN安全瀏覽器構成,該瀏覽器包括本進程代理伺服器、用戶態協議棧模塊、L3VPN隧道模塊等。本發明無需修改系統配置,不依賴用戶端設備作業系統的VPN接口,不需安裝其它VPN軟體,適用於用戶端設備多種作業系統。本發明用戶端設備VPN軟體和瀏覽器二者合一,使用方便。
【專利說明】一種VPN安全瀏覽器系統及設置方法
【技術領域】
[0001]本發明涉及網絡信息安全領域,特別涉及一種VPN安全瀏覽器系統及設置方法。【背景技術】
[0002]VPN(Virtual Private Network)技術是在公用網絡上建立專用網絡的技術,通過VPN技術可以訪問內部的網絡,包括內部的HTTP (hypertext transportprotocol)網站。
[0003]使用現有的VPN技術訪問內部的HTTP網頁,可以使用L3VPN (Layer 3 VPN)技術來實現。實現方法是:登錄VPN,安裝VPN軟體,建立虛擬網卡,修改作業系統路由表,建立一個虛擬的網絡;然後啟動作業系統中安裝的瀏覽器,輸入要訪問的內部HTTP頁面的網址,訪問內部的HTTP網絡服務。這種情況下,瀏覽器訪問內部的HTTP頁面時需要經過虛擬網卡,用戶看到的是原始的HTTP頁面。HTTP頁面改寫技術的缺點:VPN伺服器需要對所有HTTP網絡服務的頁面進行修改,呈現給用戶的是改寫後的頁面。HTTP頁面改寫技術目前還不成熟,容易出錯,上線後維護成本太高。HTTP頁面改寫技術使用作業系統現有的瀏覽器,界面不友好,不易於使用。
[0004]使用現有的VPN技術訪問內部的HTTP網頁,也可以使用HTTP頁面改寫技術來實現。實現方法是:用瀏覽器登錄VPN,登錄後用戶在瀏覽器中點擊相應HTTP連結去訪問內部的HTTP網站。這種情況下不需要經過虛擬網卡,用戶看到的是被VPN伺服器修改後的HTTP頁面。L3VPN技術的缺點:需要安裝VPN軟體。需要創建虛擬網卡,修改系統路由表,這些修改系統配置的操作在行動裝置上是禁止的。VPN的隧道被作業系統中所有進程共享,容易出現安全問題。
【發明內容】
[0005]為解決上述問題,本發明的目的是提供一種安全且便於實施、通過VPN隧道進行收發內部網頁等所需網絡流量的VPN安全瀏覽器。
[0006]本發明的另一目的是提出一種通用性強、簡便易行VPN安全瀏覽器的設置方法,使用該方法無需改寫頁面或修改系統配置的即可安全地訪問內部的伺服器。
[0007]一種VPN瀏覽器系統,包括用戶端設備、網際網路以及部署在網際網路的VPN伺服器、內網伺服器等,其中在用戶端設備設置有VPN安全瀏覽器,所述的VPN安全瀏覽器是由本進程代理伺服器、用戶態協議棧模塊、L3VPN隧道模塊順序相互連通構成。
[0008]當用戶端設備的作業系統是iOS作業系統時,所述的本進程代理伺服器可以由註冊自定義的協議處理器連接相應代理伺服器構成。
[0009]所述的註冊自定義的協議處理器是在iOS作業系統的URL加載系統程序中註冊自定義的協議處理器。
[0010]當用戶端設備的作業系統是Android作業系統時,所述的本進程代理伺服器是由通過設置用戶端代理伺服器、使用JAVA反射機制修改保存所述用戶端代理伺服器配置的內部數據結構構成。[0011]一種VPN安全瀏覽器系統的設置方法,包括以下步驟:
[0012]步驟1,在用戶端設備設置VPN安全瀏覽器:包括設置用戶端代理伺服器、用戶態協議棧以及L3VPN隧道;
[0013]步驟2,設置本進程代理伺服器;
[0014]步驟3,本進程代理伺服器通過所述的用戶態協議棧來收發數據,然後,用戶態協議棧通過L3VPN隧道收發數據;
[0015]步驟4,L3VPN隧道通過網際網路以及部署在網際網路的VPN伺服器訪問內網伺服器。
[0016]當用戶端設備的作業系統是iOS作業系統時,上述步驟2中的設置本進程代理伺服器包括以下分步驟:
[0017]VPN安全瀏覽器在iOS作業系統的URL加載系統程序註冊自定義的協議處理器,使用該協議處理器來攔截網絡流量,然後把網絡流量轉發給相應代理伺服器;
[0018]進一步地,VPN安全瀏覽器調用iOS作業系統的NSURLProtocol類的registerClass方法註冊一個處理HTTP協議的協議處理器,當VPN安全瀏覽器註冊的協議處理器收到iOS作業系統傳遞來的訪問請求時,開始處理此請求,把這個請求轉發給用戶端HTTP代理伺服器去處理,當處理完成時,協議處理器告訴iOS作業系統處理已經完成。
[0019]當用戶端設備的作業系統是Android作業系統時,上述步驟2中設置本進程代理伺服器包括以下分步驟:
[0020]VPN安全瀏覽器在Android作業系統設置用戶端代理伺服器,Android作業系統的瀏覽器控制項(WebView)自動讀取用戶端代理伺服器配置並保存在一個內部數據結構中,之後通過使用JAVA反射機制修改保存所述用戶端代理伺服器配置的內部數據結構從而得到本進程代理伺服器。
[0021]進一步地,當用戶端設備的作業系統是AndroicM.0及以上的作業系統時,VPN安全瀏覽器修改保存用戶端代理伺服器配置的內部數據結構分步驟如下:
[0022]使用JAVA 的 Class.forName ("android, webkit.WebViewCore")得到一個WebViewCore 的實例;
[0023]通過WebViewCore 的 getDeclaredMethod("sendStaticMessage", Integer.TYPE, Object, class),得到 WebViewCore 的 sendStaticMessage 函數;
[0024]使用sendStaticMessage函數給WebViewCore發送一個代理伺服器變化的消息,消息中附帶上本進程代理伺服器的地址,WebViewCore收到代理伺服器變化的消息後自動更新內部的代理伺服器,從而得到本進程代理伺服器。
[0025]進一步地,當用戶端設備的作業系統是Android4.0 (不包含Android4.0)以下的作業系統時,VPN安全瀏覽器修改保存代理伺服器配置的內部數據結構分步驟如下:
[0026]使用JAVA 的 Class.forName ("android, webkit.Network")得到一個 Network 的實例;
[0027]調用getDeclaredField 反射方法得到 Network 實例的 mRequestQueue 成員;mRequestQueue成員負責所有網絡請求的處理,其內部可以設置一個代理伺服器;
[0028]調用setDeclaredField 反射方法設置 mRequestQueue 的 mProxyHost 成員,從而得到本進程代理伺服器。
[0029]本發明吸取了已有技術HTTP頁面改寫技術和L3VPN技術優點,克服了 HTTP頁面改寫技術的不穩定問題,也克服了 L3VPN技術的需要修改系統配置的問題,VPN伺服器無需改寫HTTP頁面。相對於PPTP和L2TP,安全性更高。本發明給瀏覽器指定一個本進程代理伺服器來實現流量的攔截,攔截後進入進程內的L3VPN隧道,而作業系統中的其它進程無法使用VPN安全瀏覽器的L3VPN隧道,使得內網資源更加安全。本發明無需修改系統配置,不依賴用戶端設備作業系統的VPN接口,不需安裝其它VPN軟體,適用於用戶端設備的多種作業系統。用戶端設備的VPN軟體和瀏覽器二者合一,使用方便。
【專利附圖】
【附圖說明】
[0030]圖1是本發明VPN安全瀏覽器系統的結構示意圖;
[0031]圖2是本發明第一實施方式的VPN安全瀏覽器系統結構示意圖;
[0032]圖3是本發明第二實施方式的VPN安全瀏覽器系統結構示意圖;
[0033]圖4是本發明VPN安全瀏覽器登錄界面的示意圖;
[0034]圖5是本發明VPN安全瀏覽器啟動過程的示意圖;
[0035]圖6是本發明VPN安全瀏覽器書籤的一種實例;
[0036]圖7是本發明VPN安全瀏覽器實際安裝及使用過程的示意圖。
【具體實施方式】
[0037]在以下的敘述中,為了使讀者更好地理解本申請而提出了許多技術細節。但是,本領域的普通技術人員可以理解,即使沒有這些技術細節和基於以下各實施方式的種種變化和修改,也可以實現本申請各權利要求所要求保護的技術方案。
[0038]為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明的實施方式作進一步地詳細描述。
[0039]一種VPN瀏覽器系統,如圖1所示,包括用戶端設備100、網際網路200以及部署在網際網路的VPN伺服器300、內網伺服器400等,所述的內網伺服器可以是HTTP伺服器,其中在用戶端設備設置有VPN安全瀏覽器110,所述的VPN安全瀏覽器是由本進程代理伺服器
111、用戶態協議棧模塊112、L3VPN隧道模塊113順序相互連通構成,本進程代理伺服器可以是HTTP代理伺服器。
[0040]當用戶端設備的作業系統是iOS作業系統時,如圖2所示,所述的本進程代理伺服器可以由註冊自定義的協議處理器連接相應代理伺服器構成。
[0041]所述的註冊自定義的協議處理器是在iOS作業系統的URL加載系統程序中註冊自定義的協議處理器。
[0042]當用戶端設備的作業系統是Android作業系統時,如圖3所示,所述的本進程代理伺服器可以是通過設置用戶端代理伺服器、使用JAVA反射機制修改保存所述用戶端代理伺服器配置的內部數據結構之後得到的代理伺服器構成。
[0043]一種VPN安全瀏覽器系統的設置方法,包括以下步驟:
[0044]步驟1,在用戶端設備設置VPN安全瀏覽器:包括設置用戶端代理伺服器、用戶態協議棧以及VPN隧道,所述的VPN隧道是L3VPN隧道;
[0045]步驟2,設置本進程代理伺服器;
[0046]步驟3,本進程代理伺服器通過所述的用戶態協議棧來收發數據,然後,用戶態協議棧通過L3VPN隧道收發數據;
[0047]步驟4,L3VPN隧道通過網際網路以及部署在網際網路的VPN伺服器訪問內網伺服器。
[0048]進一步地,當用戶端設備的作業系統是iOS作業系統時,上述步驟2中的設置本進程代理伺服器包括以下分步驟:
[0049]VPN安全瀏覽器在iOS作業系統的URL加載系統程序註冊自定義的協議處理器,使用該協議處理器來攔截網絡流量,然後把網絡流量轉發給用戶端代理伺服器。
[0050]更進一步地,VPN安全瀏覽器在iOS作業系統的URL加載系統程序註冊自定義的協議處理器,可以是VPN安全瀏覽器調用iOS作業系統的NSURLProtocol類的registerClass方法註冊一個處理HTTP協議的協議處理器,當VPN安全瀏覽器註冊的協議處理器收到iOS作業系統傳遞來的訪問請求時,開始處理此請求,把這個請求轉發給用戶端HTTP代理伺服器去處理,當處理完成時,協議處理器告訴iOS作業系統處理已經完成。
[0051]進一步地,當用戶端設備的作業系統是Android作業系統時,上述步驟2中的設置本進程代理伺服器包括以下分步驟:
[0052]VPN安全瀏覽器在Android作業系統設置用戶端代理伺服器,Android作業系統的瀏覽器控制項自動讀取用戶端代理伺服器配置並保存在一個內部數據結構中,之後通過使用JAVA反射機制修改保存用戶端代理伺服器配置的內部數據結構之後得到本進程代理伺服器。
[0053]更進一步地,當用戶端設備的作業系統是Android4.0及以上的作業系統時,VPN安全瀏覽器修改保存代理伺服器配置的內部數據結構分步驟如下:
[0054]使用JAVA 的 Class.forName ("android, webkit.WebViewCore")得到一個WebViewCore 的實例;
[0055]通過WebViewCore 的 getDeclaredMethod("sendStaticMessage", Integer.TYPE, Object, class)得到 WebViewCore 的 sendStaticMessage 函數;
[0056]使用sendStaticMessage函數給WebViewCore發送一個代理伺服器變化的消息,消息中附帶上本進程代理伺服器的地址。WebViewCore收到代理伺服器變化的消息後自動更新內部的代理伺服器,從而得到本進程代理伺服器。
[0057]更進一步地,當用戶端設備的作業系統是Android4.0 (不包含Android4.0)以下的作業系統時,瀏覽器控制項的代理伺服器設置由一個內部類android, webkit.Network負責,VPN安全瀏覽器修改保存代理伺服器配置的內部數據結構分步驟如下:
[0058]使用JAVA 的 Class.forName ("android, webkit.Network")得到一個 Network 的實例;
[0059]調用getDeclaredField 反射方法得到 Network 實例的 mRequestQueue 成員;mRequestQueue成員負責所有網絡請求的處理,其內部可以設置一個代理伺服器;
[0060]調用setDeclaredField 反射方法設置 mRequestQueue 的 mProxyHost 成員,因為mProxyHost成員保存的就是代理伺服器信息,設置mProxyHost就實現了修改代理伺服器的目的,進而形成本進程代理伺服器。
[0061]進一步地,本發明步驟還包括:
[0062]內部的HTTP網絡服務以書籤的方式發布,用戶無需輸入網址。
[0063]登錄認證和安全策略的檢查通過VPN安全瀏覽器來實現。[0064]圖4-圖6給出了本發明VPN安全瀏覽器的使用步驟,VPN安全瀏覽器啟動後,第一次需要用戶輸入用戶名和密碼進行登錄。如果用戶選擇了自動登錄,則第二次無需輸入用戶名和密碼。登錄過程中VPN安全瀏覽器會根據VPN伺服器的安全策略自動進行本地安全檢查,不滿足安全策略的設備無法登錄VPN伺服器,例如越獄後的iPhone。登錄界面的一種實施例如圖4所示。
[0065]圖5顯示了 VPN安全瀏覽器從登錄到完全啟動的過程,用戶端啟動本地設備後,順序進行安全檢查和登陸、獲取VPN安全瀏覽器等配置、啟動VPN隧道、啟動用戶態協議棧、啟動用戶端HTTP代理伺服器以及設置本進程代理伺服器。
[0066]如圖6所示,VPN資源的發布是使用書籤的形式。用戶登錄成功後,就會看到書籤,點擊書籤,VPN安全瀏覽器打開響應的HTTP頁面,圖6給出了書籤的一種實例。
[0067]在實際應用中,可按照圖7步驟進行訪問。如圖7,首先由管理員按照以上所述在網際網路部署VPN伺服器、HTTP內網伺服器等,然後用戶端設備,例如手機,平板電腦等,登錄用戶端設備相應的應用商店,下載安裝VPN安全瀏覽器;然後點擊VPN安全瀏覽器圖標啟動VPN安全瀏覽器,輸入用戶名和密碼登錄VPN伺服器,這時可以看到書籤,點擊書籤就可以開始訪問內部的HTTP頁面。當訪問完畢後,註銷VPN並退出應用。
[0068]雖然通過參照本發明的某些優選實施方式,已經對本發明進行了圖示和描述,但本領域的普通技術人員應該明白,可以在形式上和細節上對其作各種改變,而不偏離本發明的精神和範圍。
【權利要求】
1.一種VPN瀏覽器系統,包括用戶端設備、網際網路以及部署在網際網路的VPN伺服器、內網伺服器等,其特徵是在用戶端設備設置有VPN安全瀏覽器,所述的VPN安全瀏覽器是由本進程代理伺服器、用戶態協議棧模塊、L3VPN隧道模塊順序相互連通構成。
2.根據權利要求1所述的一種VPN瀏覽器系統,其特徵是當用戶端設備的作業系統是iOS作業系統時,所述的本進程代理伺服器可以由註冊自定義的協議處理器連接相應代理伺服器構成。
3.根據權利要求2所述的一種VPN瀏覽器系統,其特徵是所述的註冊自定義的協議處理器是在iOS作業系統的URL加載系統程序中註冊自定義的協議處理器。
4.根據權利要求1所述的一種VPN瀏覽器系統,其特徵是當用戶端設備的作業系統是Android作業系統時,所述的本進程代理伺服器是由通過設置用戶端代理伺服器、使用JAVA反射機制修改保存所述用戶端代理伺服器配置的內部數據結構之後得到的代理伺服器構成。
5.一種VPN安全瀏覽器系統的設置方法,包括以下步驟: 步驟1,在用戶端設備設置VPN安全瀏覽器:包括設置用戶端代理伺服器、用戶態協議棧以及L3VPN隧道; 步驟2,設置本進程代理伺服器; 步驟3,本進程代理伺服器通過所述的用戶態協議棧來收發數據,然後,用戶態協議棧通過L3VPN隧道收發數據; 步驟4,L3VPN隧道通過網際網路以及部署在網際網路的VPN伺服器訪問內網伺服器。
6.根據權利要求5所述的一種VPN安全瀏覽器系統的設置方法,其特徵是當用戶端設備的作業系統是iOS作業系統時,`上述步驟2中的設置本進程代理伺服器包括以下分步驟: VPN安全瀏覽器在iOS作業系統的URL加載系統程序註冊自定義的協議處理器,使用該協議處理器來攔截網絡流量,然後把網絡流量轉發給相應代理伺服器。
7.根據權利要求6所述的一種VPN安全瀏覽器系統的設置方法,其特徵是VPN安全瀏覽器調用iOS作業系統的NSURLProtocol類的registerClass方法註冊一個處理HTTP協議的協議處理器,當VPN安全瀏覽器註冊的協議處理器收到iOS作業系統傳遞來的訪問請求時,開始處理此請求,把這個請求轉發給用戶端HTTP代理伺服器去處理,當處理完成時,協議處理器告訴iOS作業系統處理已經完成。
8.根據權利要求5所述的一種VPN安全瀏覽器系統的設置方法,其特徵是當用戶端設備的作業系統是Android作業系統時,上述步驟2中設置本進程代理伺服器包括以下分步驟: 在用戶端設備的Android作業系統設置用戶端代理伺服器,Android作業系統的瀏覽器控制項自動讀取用戶端代理伺服器配置並保存在一個內部數據結構中,之後通過使用JAVA反射機制修改保存所述用戶端代理伺服器配置的內部數據結構從而得到本進程代理伺服器。
9.根據權利要求8所述的一種VPN安全瀏覽器系統的設置方法,其特徵是,當用戶端設備的作業系統是Android4.0及以上的作業系統時,VPN安全瀏覽器修改保存代理伺服器配置的內部數據結構分步驟如下:使用 JAVA 的 Class.forName ("android, webkit.WebViewCore^)得到一個WebViewCore的實例; 通過 WebViewCore 的 getDeclaredMethod("sendStaticMessage",Integer.TYPE, Object, class)得到 WebViewCore 的 sendStaticMessage 函數; 使用sendStaticMessage函數給WebViewCore發送一個代理伺服器變化的消息,消息中附帶上本進程代理伺服器的地址,WebViewCore收到代理伺服器變化的消息後自動更新內部的代理伺服器,從而得到本進程代理伺服器。
10.根據權利要求8所述的一種VPN安全瀏覽器系統的設置方法,其特徵是,當用戶端設備的作業系統是Android4.0 (不包含Android4.0)以下的作業系統時,VPN安全瀏覽器修改保存用戶端代理伺服器配置的內部數據結構分步驟如下:
使用 JAVA 的 Class.forName ("android, webkit.Network")得到一個 Network 的實例;調用getDeclaredField反射方法得到Network實例的mRequestQueue成員;mRequestQueue成員負責所有網絡請求的處理,其內部可以設置一個代理伺服器; 調用setDeclaredField反射方法設置mRequestQueue的mProxyHost成員,從而得到本進程代理伺服器。`
【文檔編號】H04L29/06GK103873491SQ201210525731
【公開日】2014年6月18日 申請日期:2012年12月7日 優先權日:2012年12月7日
【發明者】劉志永, 吉嶺, 黃金龍, 黃志濤 申請人:華耀(中國)科技有限公司