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