SSL Virtual Private Network的技术分析
我們先來介紹一下SSL協議。
SSL(安全套接字層):介于傳輸層和上層應用層協議之間的協議。為兩臺機器之間提供安全通道的協議。
SSL協議介紹:
1、SSL握手協議
?????? SSL握手協議被封裝在SSL記錄協議中,該協議允許服務器與客戶端在應用程序傳輸和接收數據之前互相認證、協商加密算法和密鑰。在初次建立SSL連接時,服務器與客戶機交換一系列消息
2、SSL修改密文協議
保障SSL傳輸過程中的安全性,客戶端和服務器雙方應該每隔一段時間改變加密規范
3、SSL警告協議
用來為對等體傳遞SSL的相關警告。如果在通信過程中某一方發現任何異常,就需要給對方發送一條警示消息通告。
4、SSL記錄協議
負責對上層的數據進行分塊、壓縮、計算并添加MAC(散列算法計算消息認證代碼) 、加密,最后把記錄塊傳輸給對方。
SSL握手協議的過程
SSL連接的建立,主要依靠SSL握手協議,采用公鑰加密算法(也就是非對稱加密算法)進行密文傳輸。服務器端將其公鑰告訴客戶端,然后客戶端采用服務器的公鑰加密信息,服務端收到密文后,用自己的私鑰解密。
握手第一階段
?????? 建立起安全能力屬性,客戶端發送一個clienthello消息,包括支持的版本、隨機數(用于計算后面所有消息的摘要或主密鑰)、會話ID、客戶端支持的密碼算法列表和壓縮方法列表。
?????? 服務器收到以上信息的clienthello消息后,服務器發送serverhello消息,包括服務器選擇的版本號、服務器產生的隨機數、會話ID;服務器從客戶端的密碼算法中挑出一套密碼算法和一個壓縮算法。
握手第二階段:
?????? 服務器向客戶端發送消息。Certificate消息(包含證書,證書中有公鑰,用來驗證簽名)、server key exchange(此消息中包含完成密鑰交換所需的參數)、certificate request(服務端要求客戶端發他自己的證書來過來進行驗證)、serverhello done(表示所有信息發送完畢,接下來等待客戶端信息)。
握手第三階段
?????? 客戶端接收到服務器發送的一系列消息并解析后,將本端相應的消息發送給服務器。Certificate(如果第二階段服務器要求發送客戶端證書,該階段客戶端將自己的證書發送過去)、client key exchange(根據之前收到的隨機數,產生pre-master發送給服務器,服務器收到后算出main master,客戶端自己通過pre-master算出main master)、certificate verify(只有客戶端發送了自己證書到服務端,才需要發送,包含一個簽名)
握手第四階段:
?????? 建立一個安全的連接,客戶端發送一個Change Cipher Spec消息,并且把協商得到的 CipherSuite拷貝到當前連接的狀態之中。然后,客戶端用新的算法、密鑰參數發送一個 Finished消息,這條消息可以檢查密鑰交換和認證過程是否已經成功。其中包括一個校驗值,對客戶端整個握手過程的消息進行校驗。服務器同樣發送Change Cipher Spec消息和Finished消息。握手過程完成,客戶端和服務器可以交換應用層數據進行通信。
會話恢復:客戶端和服務器已經通信過一次,可以通過會話恢復來跳過握手階段直接進行數據傳輸。
SSL與IPsec 安全協議一樣,提供加密和身份驗證。SSL協議只對通信雙方傳輸的應用數據進行加密,而不是對從一個主機到另一個主機的所有的數據進行加密。
IPsec Virtual Private Network可安全、穩定地在兩個網絡間傳輸數據,并保證數據的完整性,適用于總公司和分公司之間的信息往來及其他site-to-site應用場景。由于IPsec是基于網絡層的協議,很難穿越NAT和防火墻,所以IPsec Virtual Private Network并不適合point-to-site場景。
?????? SSL Virtual Private Network一般采用插件系統來支持各種TCP和UDP的非web應用,使得SSL Virtual Private Network真正稱得上是一種Virtual Private Network,并相對于IPsec Virtual Private Network 更符合應用安全的需求,成為遠程接入的主要手段和選擇。SSL Virtual Private Network通信基于標準TCP/UDP,不受NAT限制,能夠穿越防火墻。
SSL Virtual Private Network的功能分類:
1、WEB應用
WEB應用通過SSL設備將內網服務轉換成HTTPS協議;支持類型:HTTP,HTTPS,MAIL,FileShare。注意:客戶端接入SSL Virtual Private Network訪問WEB應用,不能打開新窗口輸入地址訪問,只能點擊鏈接或者利用WEB全網服務的地址欄訪問。
案例:
1、客戶端和SSL設備建立SSL Virtual Private Network鏈接,SSL Virtual Private Network中新建OA系統的資源。SSL VIRTUAL PRIVATE NETWORK設備把Server的服務轉換為Client瀏覽器可以打開的鏈接,如:http://172.172.3.100,轉換為:https://202.96.137.88/web/1/http/0/172.172.3.100/
? ? ? ?2、客戶端登錄Virtual Private Network后,點擊資源連接列表,訪問OA資源。訪問的是https://202.96.137.88 /web/1/http/0/172.172.3.100/。走Virtual Private Network流量,把數據包抓取并封裝到隧道中。
? ? ? ?3、數據發送到SSL Virtual Private Network設備后,SSL Virtual Private Network解封裝,原本的HTTPS協議轉換成HTTP,將源IP改為Virtual Private Network設備自身IP(默認)或用戶的虛擬IP并把原始數據包發送給OA服務器。【修改源IP是為了解決路由回包的問題】
2、TCP應用
問題:web資源無法支持Telnet應用類型,可以使用TCP應用
?????? TCP應用的實現是通過在client安裝proxy控件,由控件抓取訪問服務器的TCP連接并對數據進行封裝,將普通的TCP連接轉換成SSL協議數據實現。支持類型:所有基于TCP傳輸協議的應用。(可以發布成web資源的都可以發布成TCP資源)
案例:出差的用戶通過SSL Virtual Private Network安全接入使用內網的OA系統;總部發布的是OA系統的TCP應用資源。
?????? 1、客戶端和SSL設備建立SSL Virtual Private Network鏈接,SSL Virtual Private Network中新建OA系統的資源
?????? 2、客戶端安裝ProxyIE控件(必須在資源已經建立的情況下安裝該控件,新建資源則要退出重新登錄以更新ProxyIE控件)。該控件可以辨別哪些流量走VIRTUAL PRIVATE NETWORK隧道。
?????? 3、客戶端登錄Virtual Private Network后,訪問172.172.3.100。
?????? 4、ProxyIE識別該數據包是訪問TCP應用資源,是VIRTUAL PRIVATE NETWORK流量,把數據包抓取并封裝到隧道中。將普通的TCP連接轉換成SSL數據,把原來的整個數據包加密封裝到新數據包的應用層數據中。
?????? 5、數據發送到SSL Virtual Private Network設備后,SSL Virtual Private Network解封裝,將源IP改為Virtual Private Network設備自身IP(默認)或用戶的虛擬IP并把原始數據包發送給OA服務器?!拘薷脑碔P是為了解決路由回包的問題】
3、L3 Virtual Private Network應用
問題:當TCP和web資源無法支持時,使用L3 Virtual Private Network應用。
?????? L3 Virtual Private Network應用的實現是通過在client安裝虛擬網卡,虛擬網卡在客戶端生成路由表指向虛擬網卡,由虛擬網卡抓取訪問服務器的數據,進行封裝后通過虛擬網卡和SSL設備建立的隧道將數據傳遞到server。支持類型:所有基于TCP、UDP、ICMP的應用。建議:基于UDP、ICMP的應用或server需主動訪問client端的應用的時候使用L3 Virtual Private Network資源。
案例:
1、客戶端和SSL設備建立SSL Virtual Private Network鏈接,SSL Virtual Private Network中新建OA系統的資源
2、客戶端安裝虛擬網卡控件(必須在資源已經建立的情況下安裝該控件,新建資源則要退出重新登錄以更新虛擬網卡控件)。該控件可以把去往L3 Virtual Private Network資源的路由條目下發到客戶端的本地路由表中。
3、客戶端登錄Virtual Private Network后,訪問172.172.3.100。通過查詢路由表,客戶端發現去往172.172.3.100的數據包應該給虛擬網卡進行處理。
???????4、虛擬網卡對數據包進行封裝并送入SSL Virtual Private Network隧道。將普通的TCP連接轉換成SSL數據,把原來的整個數據包加密封裝到新數據包的應用層數據中,源IP改為虛擬網卡IP。
???????5、數據發送到SSL Virtual Private Network設備后,SSL Virtual Private Network解封裝,將源IP改為Virtual Private Network設備自身IP(默認)或用戶的虛擬IP并把原始數據包發送給OA服務器?!拘薷脑碔P是為了解決路由回包的問題】
4、遠程應用
問題:某些B/S架構的應用需要在客戶端瀏覽器安裝插件才能訪問,但是該插件對手機或者平板不兼容,可以通過遠程應用發布方式來使用
采用基于服務器計算的應用模式,應用程序的安裝、配置、管理、維護以及應用的執行均集中在服務器上進行,用戶通過遠程客戶端登錄服務器進行操作,輸入輸出的內容通過網絡傳輸到客戶端。
客戶端無需安裝應用程序,只需要安裝Easyconnect客戶端,終端服務器需要安裝remote server agent組件。減少C/S應用系統使用的局限性,提高易用性。
案例:
1、通過終端服務器登錄SSL Virtual Private Network,并通【SSL Virtual Private Network設置】-【終端服務器管理】-下載終端服務器程序,并在服務器上雙擊運行安裝。
2、【SSL Virtual Private Network設置】-【終端服務器管理】-新建-服務器,填寫Windows server 的IP地址、用戶名和密碼,點擊“測試鏈接”測試SSL Virtual Private Network設備與終端服務器的連接情況。正常會提示“連接并認證終端服務器成功”。點擊“添加預設”,選擇要發布的應用程序
3、完成后保存;點擊“立即生效”后;可查看已添加的終端服務器在線狀態,
4、配置資源的一些參數
5、配置好后,可在資源組里面查看配置好的遠程應用資源。登錄后成功后,點擊該遠程應用資源,即可打開發布的遠程引用資源。
6、移動終端通過easyconnect登陸成功,在資源頁面,點擊遠程資源,即可打開發布的遠程應用資源
總結
以上是生活随笔為你收集整理的SSL Virtual Private Network的技术分析的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: HiApp移动开发案例,HTML5移动框
 - 下一篇: 如何实现业务+项目一体化管理?