前言
IPSec 和 SSL 對比
- ?IPSec遠程接入場景---client提前安裝軟件,存在一定的兼容性問題
- IPSec協議只能夠對感興趣的流量進行加密保護,意味著接入用戶需要不停的調整策略,來適應IPSec隧道
- ?IPSec協議對用戶訪問權限顆粒度劃分的不夠詳細;因為ACL的劃分就是通過3.4層流量抓取。
SSL 優勢
- ?SSL VPN實際工作位置在傳輸層和應用層之間。
- 在OSI七層參考模型中,SSL協議屬于表示層協議。
- 專門針對應用層來進行安全防護的。即無法影響網絡層和傳輸層,不會改變IP頭部和TCP頭部。
- SSL協議--->基于瀏覽器工作的HTTPS協議工作。
- ?SSL VPN的架構,是屬于B/S架構。---SSL不需要安裝客戶端軟件。
- SSL VPN所有的訪問控制都是基于應用層執行的;訪問權限控制可以達到文件級別。
SSL協議
????????SSL --- 安全傳輸協議 ( 安全套接層 ) 。

????????根據封裝位置來劃分SSL 協議的層次。
SSL--->IETF 把 SSL 進行標準化 --->TLS 協議 --- 傳輸層安全協議
?????????SSL協議是基于TCP協議的安全協議,理論上,可以用于保護正常運行在TCP上的任何應用協議。
SSL工作原理
SSL協議分層
????????SSL記錄協議,負責對上層數據進行分塊、壓縮、計算、加密的;最后將記錄的數據塊傳輸給對方 。
- SSL記錄協議 --- 處于可靠的傳輸層協議TCP以上,用于封裝更高層協議的數據。
- SSL握手協議 --- 允許瀏覽器和服務端之間相互認證,并在應用層傳輸數據之前,協商出相關參數(加密算法、哈希算法、會話密鑰)--->協商參數以及交換證書,從而構造SSL會話。
- SSL密碼變化協議 --- 只包含了一個消息--->相當于一個通知信息,告知對方,即將開始使用加密信息進行傳輸。
????????在完整的SSL 工作過程中,當 TCP 建立完成后,會使用握手協議進行參數協商,然后通過變化協議告 知對方開始加密傳輸信息,后續所有的報文都是加密的,并且都是存儲在記錄協議中,如果出現問題, 則發送警告協議。
SSL總體工作流程
第一步: TCP 三次握手,建立網絡連接會話
????????
????????
第二步:由 SSL 客戶端,一般為瀏覽器,發送消息


- 支持的協議版本
- Random
- 由客戶端生成的偽隨機數,用于后續生成會話密鑰。
- 對稱密鑰 --- 總共需要三個參數才可以計算 。
-
第三步: SSL 服務端回復消息,包含一些參數信息,使用 server hello 報文

????????一般情況下,server hello 報文和服務器證書是分開發送的 。

????????證書 --- 由 CA 機構的私鑰將服務器的公鑰以及一些證書相關信息進行加密后的產物 。 -- 即 CA 的私鑰加密后的數據。
????????客戶端時具備信任CA 的公鑰信息 。
????????服務器的身份認證是強制要求的,必須提供證書,證書如果不合法,則會提供一個選擇給用戶,可 以選擇繼續訪問。但是,客戶端的認證是可選的,如果需要認證,則服務器會發送請求證書的報文,之 后,客戶端需要提供自己的證書信息 。

????????在報文中,一般包含一個或多個X.509 證書,一般第一個是服務器證書,后續可能是頒發該服務器證 書的中間證書,一直到根證書。每個證書中都包含了詳細的身份信息和公鑰信息 。

????????RSA公鑰 --- 客戶端使用該公鑰加密 “ 預主密鑰 ” 并發送給服務器 。
????????預主密鑰 --- 相當于 DH 算法中的中間參數,需要傳遞給對方,使用 RSA 公鑰進行加密 。
????????Server Hello Done 報文是一個空信息,用來通知客戶端, 服務端已經做好了預主密鑰協商的準 備 。
第四步: SSL 客戶端收到服務器相關報文后,驗證服務器證書,進行回復


- 客戶端生成一個預主密鑰;使用服務器的公鑰進行加密后返回給服務器。服務器利用私鑰進行解密,從而獲取密鑰信息。
- 預主密鑰 --- 和前面提到了Client的隨機數以及Server的隨機數相同。
- 會話密鑰 --- 預主密鑰 + 服務器隨機數 + 客戶端隨機數。
- 預主密鑰是需要加密傳輸的。
- 此時,客戶端已經具備了上述三個條件,是可以生成最終的會話密鑰了。
- 在 client key exchange 報文中,回復的具體內容是不確定的,需要根據算法決定。如果客戶端使用的是RSA算法,則計算出的是預主密鑰;如果是DH或ECDH算法,則計算出的是共享密鑰;但是不管使用那種算法,都會計算出第三個隨機數,和前面兩個隨機數一起進行計算,得到最終的會話密鑰。
第五步:服務端做最后的回應


- 會話恢復報文
- 客戶端和服務端首次完成TLS握手后,會將本地的會話相關參數,例如標識符、證書、密碼套件、主密鑰等相關信息進行加密,生成一個票據;會發送給客戶端
- 客戶端會保存這個票據。當再次與服務器建立連接時,如果希望恢復上一次的會話,就將票據包含在client hello報文中發送給服務端。
????????完整的SSL 握手協議過程結束 。
????????會話密鑰 --- 就是對稱秘鑰。
????????完成SSL 握手后,之后所有的應用層數據發送時,都會進行加密,并且將加密數據保存在 SSL 協議 中 。
總結


SSL加密過程
SSL 脆弱性分析
- ?無法保護UDP應用
- 例如采用IPSec
- 使用一些基于UDP的傳輸層安全協議---DTLS
- ?客戶端可以被偽造 --- 而且,客戶端的認證是可選的。
- ?SSL協議不能對抗流量分析
SSL VPN
????????SSL VPN--->其實是廠商創造出來的一個名詞????????遠程接入用戶利用標準的Web 瀏覽器內嵌的 SSL 封包處理功能,從而連接企業內部的 VPN 服務器。然后由VPN服務器將報文轉發給特定的內部服務器,從而使得遠程接入用戶通過驗證后,可訪問企業內網特定的服務器資源。
?????????遠程用戶與VPN服務器之間,采用SSL協議對傳輸的數據進行加密。
虛擬網關技術---是SSL VPN的核心技術
????????VPN設備看做是網關。 ---SSL 服務在防火墻上被稱為虛擬網關。
????????防火墻是可以創建多個虛擬網關。多個虛擬網關之間相互獨立。
????????用戶在web 瀏覽器上輸入虛擬網關的 IP 地址或者域名,從而訪問虛擬網關。 該過程是需要進行用戶 身份認證的 。 --- 如果認證通過,虛擬網關會用戶反饋一個 可訪問的內網資源列表 。
SSL VPN流程
????????VPN認證是為了保證數據連接的合法性,用戶身份認證是為了獲取相應權限的 。

在 web 界面直接配置 SSL VPN 的虛擬網關,會提示服務器忙,只能使用命令行配置 。
[FW1]v-gateway ssl interface GigabitEthernet 1/0/0 port 4430 private---- 開啟虛擬網關,名稱為 ssl ,使用接口為 GE1/0/0 ,端口 4430 ,獨占型
?
????????防火墻提供了四種認證機制:
- 本地認證
- 服務器認證
- 證書認證
- 證書匿名認證
- 用戶的客戶端配備客戶端證書,防火墻通過驗證客戶的證書來認證身份。
- 證書挑戰認證
- 服務器通過用戶名和密碼+客戶端證書雙重因素認證。
- 證書匿名認證
web代理
1. 發布 URL , VPN 設備發布資源。
2. 擁有訪問權限的用戶首先訪問虛擬網關,進行用戶認證,從而獲取到資源列表。
3. 用戶去訪問資源 ---> 用戶輸入的 URL 并非是原本發布的 URL ;實際上是經過代理的 URL 。
https://svn/http:/website/resource.html協議 :// 目錄????????目錄:虛擬網關地址,User ID , Session ID 等信息。https://1.1.1.1/webproxy/1/141123654/4/http:/website/resource.html
4. 數據包到達虛擬網關,進行解析 ---> 將 URL 改寫為原始 URL ,去訪問內部服務器。
????????此時,并沒有任何隧道,僅僅是做了代理。但是也達到了隧道的效果,所以也可以被稱為是一種 VPN 技術 。
????????web代理的核心點 ---> 可以隱藏真實的 URL 信息 。
- web-link
- web改寫
?
文件共享
????????web代理功能僅能實現 http 的代理。但是遠程用戶想要直接通過瀏覽器安全訪問到企業內部的文件服務器,并且執行新建、修改、上傳、下載等文件操作,需要文件共享機制。
????????文件共享只能針對SMB 和 NFS 兩種協議 。
SMB---windows 系統NFS---linux 系統
????????這里不再是代理的思想,而是“ 翻譯 ” 的思想;即將 HTTPS 的報文翻譯成 SMB 的報文 。



端口轉發
????????例如telnet 、 ssh 、 email 等 基于 TCP 的非 web 應用 。
????????如何將web 瀏覽器和常用 CRT 或 xshell 這樣的軟件聯立起來? --- IE 瀏覽器內置的 Active X 控件 。
????????該控件可以做到實時檢測其他程序發起的請求 。


網絡擴展
????????基于UDP 的應用。
????????SSL本身是基于 TCP 的,無法保護 UDP 協議應用。不代表 SSL VPN 不能。
????????

- 開啟網絡擴展功能--->
- 移動用戶與虛擬網關建立SSL VPN隧道
- 移動用戶在PC本地自動生成一個虛擬網卡。
- 虛擬網關從地址池中隨機選擇一個IP地址分配給移動用戶的虛擬網卡。
- 該地址作為移動用戶與企業內網server之間通信使用。
- 虛擬網關向移動辦公用戶下放到達企業內網server的路由信息。
????????通過隧道訪問目標---->VPN 的核心技術 。
傳輸模式:
- 可靠傳輸模式
- 快速傳輸模式
安全策略
- SSL VPN加密報文策略:U--->L
- 移動辦公用戶訪問企業server的業務數據
- U--->T
如何判斷為 local 區域:如果收到的報文需要本地接口處理。或者發送的報文需要本地接口封裝 。

- 分離路由模式 --- 去往內網的流量,經過虛擬網卡轉發;去往其他地方的流量,由本地真實網卡轉發。
- 全路由模式 --- 無論訪問任何資源,數據都會被虛擬網卡截獲,從虛擬網卡轉發。
- 手動路由模式 --- 由管理員手工在VPN設備上配置內網靜態路由。
總結
????????因為存在網絡擴展技術,導致SSL VPN 被一步從表示層擴展到了 IP 層,導致 SSL VPN 可以支持越來 越多的網絡協議 。
