SSL詳解
SSL VPN的技術主要用到了SSL技術。有關SSL具體技術,可以參考:
SSL VPN簡介
SSL VPN是以SSL協議爲安全基礎的VPN遠程接入技術,移動辦公人員(在SSL VPN中被稱爲遠程用戶)使用SSL VPN可以安全、方便的接入企業內網,訪問企業內網資源,提高工作效率。
SSL VPN與IPSec VPN對比:
如上圖,SSL保護的是應用層的數據,可以針對某個應用做具體保護。而IPSec VPN針對的是整個網絡層。無法做精細化控制。
所以在SSL VPN出現之前,IPSec、L2TP等先期出現的VPN技術雖然可以支持遠程接入這個應用場景,但這些VPN技術存在如下缺陷。
- 遠程用戶終端上需要安裝指定的客戶端軟件,導致網絡部署、維護比較麻煩。
- IPSec/L2TP VPN的配置繁瑣。
- 網絡管理人員無法對遠程用戶訪問企業內網資源的權限做精細化控制。
SSL VPN與傳統VPN的對比:
傳統VPN特點:
- L2TP及撥號:
- 不安全
- 撥號上網的額外費用
- 撥號接入服務器端口限制
- 缺少信息鑑別
- 無基於應用的訪問控制策略。
- 泄露內網IP
- MPL VPN:
- 不安全
- 無用戶認證
- 無審計
- 無加密
- 無訪問控制
- 造價高
- 跨運營商互通互聯問題
- 適用於大型企業內網互聯
- IPSec VPN:
- 客戶端管理費用高
- NAT問題
- 安全風險
- 無基於應用的用戶認證授權審計
SSL VPN技術優勢:
- 無客戶端的便捷部署
- 應用層接入的安全保護
- 企業延伸的效率提升
SSL協議從身份認證、機密性、完整性三個方面確保了數據通信的安全。
SSL VPN實現私密性 完整性 不可否認 源認證
SSL VPN的特點:
- 採用B/S架構,遠程用戶無需安裝額外軟件,可直接使用瀏覽器訪問內網資源。
- SSL VPN可根據遠程用戶訪問內網資源的不同,對其訪問權限進行高細粒度控制。
- 提供了本地認證、服務器認證、認證匿名和證書挑戰多種身份認證方式,提高身份認證的靈活性。
- 可以使用主機檢查策略。
- 緩存清理策略用於清理遠程用戶訪問內網過程中在終端上留下的訪問哼唧,加固用戶的信息安全。
SSL VPN的應用場景:
SSL VPN的主要應用場景是保證遠程用戶能夠在企業外部安全、高效的訪問企業內部的網絡資源。
通過多虛擬網關技術可以實現業務的隔離。
SSL VPN原理
SSL VPN訪問內網資源的總體流程:
虛擬網關:FW向遠程用戶提供SSL VPN接入服務的功能模塊稱爲虛擬網關,虛擬網關是遠程用戶訪問企業內網資源的統一入口。
一臺FW設備可以創建多個虛擬網關,每個虛擬網關之間相互獨立,互不影響。可以在虛擬網關下配置各自的用戶、資源和策略,進行單獨管理。虛擬網關本身無獨立的管理員,所有虛擬網關的創建、配置、修改和刪除等管理操作統一由FW的系統管理員完成。
-
用戶登錄
遠程用戶通過Web瀏覽器(客戶端)登錄虛擬網關,請求建立SSL連接。虛擬網關向遠程用戶發送自己的本地證書,遠程用戶對虛擬網關的本地證書進行身份認證。認證通過後,遠程用戶與虛擬網關成功建立SSL連接。
-
用戶認證
虛擬網關對遠程用戶進行用戶認證,驗證用戶身份。用戶認證可以選擇以下四種方式之一:本地認證、服務器認證、證書匿名認證、證書挑戰認證。
-
角色授權
用戶認證完成後,虛擬網關查詢該用戶的資源訪問權限。用戶的權限分配通過角色實現,先將具有相同權限的用戶/組加入某個角色,然後角色關聯可訪問的業務資源,角色是聯繫用戶和資源的紐帶。
-
資源訪問
虛擬網關根據遠程用戶的角色信息,向用戶推送可訪問的資源鏈接,遠程用戶點擊對應的資源鏈接進行資源訪問。
本地證書認證:
本地證書認證是在建立SSL連接前,客戶端對虛擬網關身份的驗證。
-
用戶在客戶端輸入**https://虛擬網關地址:端口或https://**域名,向SSL VPN虛擬網關請求建立SSL連接。
-
虛擬網關在收到請求後,從證書模塊調用虛擬網關引用的本地證書。
-
虛擬網關將本地證書發送給客戶端。
-
客戶端根據自己證書庫中的CA證書檢查虛擬網關的本地證書是否可信。
當滿足以下三個條件時,客戶端認爲虛擬網關的本地證書可信,則繼續運行下一步。
- 虛擬網關的本地證書在有效期內。
- 客戶端的CA證書與虛擬網關的本地證書是同一個CA機構頒發的。
- 虛擬網關的本地證書的CN字段取值與虛擬網關地址或域名一致。
如果以上三個條件不能同時滿足,則虛擬網關會爲客戶端推送一個提示框,要求客戶端信任虛擬網關。如果客戶端選擇信任,則繼續運行下一步。如果客戶端選擇不信任,則本地證書認證不通過。
-
客戶端與虛擬網關進行TCP三次握手以及一次SSL握手,成功建立SSL連接。用戶看到SSL VPN虛擬網關登錄界面。
用戶認證:
用戶認證是虛擬網關對客戶端身份的驗證,包括:本地認證、服務器認證、證書匿名認證和證書挑戰認證。
認證授權:
- VPNDB認證授權
- 第三方服務器認證授權(Radius、LDAP、AD、SecurID)
- 數字證書認證(X.509/USB Key + X.509)
- 短信輔助認證
(1)本地認證:
本地用戶名和密碼,存在SSL網關的本地用戶。
-
用戶在SSL VPN虛擬網關登錄界面輸入用戶名和密碼後,客戶端會將用戶名和密碼發送給虛擬網關。
-
虛擬網關會將用戶名、密碼發送給認證域模塊。
用戶屬於哪個認證域是由用戶名中攜帶的“@”後的字符串來決定的。如“user1@bj”屬於“bj”認證域。如果用戶名中沒有攜帶“@”,則屬於缺省的default認證域。
-
認證域模塊將用戶名和密碼發送給用戶/組模塊。
-
用戶/組模塊會根據自己的數據庫檢查用戶名和密碼是否正確。如果是則認證通過,如果不是則認證不通過。
-
用戶/組模塊將認證結果返回給認證域模塊。
-
認證域模塊將認證結果返回給虛擬網關。
-
如果認證結果爲通過,則虛擬網關會從自己的角色授權列表中查找用戶所屬角色從而確認此用戶的業務權限。如果認證結果爲不通過,則直接進行8.
-
虛擬網關將認證結果返回給客戶端。
認證結果爲通過的用戶能夠登錄SSL VPN虛擬網關界面,以相應的業務權限來使用SSL VPN業務。認證結果爲不通過的用戶會在客戶端上看到“認證失敗”。
(2)服務器認證:
服務器認證是指SSL VPN用戶的用戶名和密碼保存在服務器上,需要在服務器上完成用戶認證。服務器認證支持的服務器類型包括:RADIUS、HWTACACS、SecurID、AD、LDAP。
(3)證書匿名認證:
只採用證書,客戶端發送證書給服務器認證 。
(4) 證書挑戰認證:(最安全)
證書挑戰認證是指將驗證客戶端證書與本地認證或服務器認證結合起來。
證書+本地用戶名密碼
證書+服務器認證
RADIUS雙因子認證:
RADIUS雙因子認證是指FW和RADIUS服務器配合,對SSL VPN用戶進行身份認證。認證時,除了驗證用戶名和靜態PIN碼,還要求用戶輸入動態驗證碼。動態驗證碼可以是短信驗證碼或硬件令牌生成的動態密碼。
SSL VPN業務
業務 | 定義 |
---|---|
Web代理 | 遠程用戶訪問內網Web資源時使用Web代理業務。 |
文件共享 | 遠程用戶訪問內網文件服務器(如支持SMB協議的Windows系統、支持NFS協議的Linux系統)時使用文件共享業務。遠程用戶直接通過Web瀏覽器就能在內網文件系統上創建和瀏覽目錄,進行下載、上傳、改名、刪除等文件操作,就像對本機文件系統進行操作一樣方便。 |
端口轉發 | 遠程用戶訪問內網TCP資源時使用端口轉發業務。適用於TCP的應用服務包括Telnet、遠程桌面、FTP、Email等。端口轉發提供了一種端口級的安全訪問內網資源的方式。 |
網絡擴展 | 遠程用戶訪問內網IP資源時使用網絡擴展業務。Web資源、文件資源以及TCP資源都屬於IP資源,通常在不區分用戶訪問的資源類型時爲對應用戶開通此業務。 |
Web代理:
web代理實現對內網Web資源的安全訪問:
-
Web代理實現了無客戶端的頁面訪問。
-
Web代理有兩種實現方式:Web-Link和Web改寫(默認)。
-
Web改寫:是將內網web鏈接隱藏起來,起到加密的作用。即遠程用戶在點擊虛擬網關資源列表中的鏈接時,虛擬網關會將用戶要訪問的真實URL進行加密。
同時用戶要訪問的Web資源頁面鏈接對象(例如Flash、PDF、Java Applet等)的URL也會被一併加密。
-
Web-Link:不會進行加密和適配,只做單純“轉發”遠程用戶的Web資源請求。
-
Web代理功能的基本實現原理是將遠程用戶訪問Web Server的過程被分成了兩個階段。首先是遠程用戶與FW虛擬網關之間建立HTTPS會話,然後FW虛擬網關再與Web Server建立HTTP會話。虛擬網關在遠程用戶訪問企業內網Web Server中起到了改寫、轉發Web請求的作用。
Web代理報文封裝原理:
遠程用戶訪問內網Web資源時的報文封裝過程,從圖中可以看出遠程用戶的訪問過程本質上是由HTTPS和HTTP這兩個會話銜接而成。其中,遠程用戶與虛擬網關建立HTTPS會話時,使用的源端口爲6293,這個源端口是一個隨機端口;目的端口是443。虛擬網關與Web Server建立HTTP會話時,源端口是10091,這個源端口也是隨機端口,目的端口爲80。
文件共享:
提供了對內網文件系統的安全訪問:
- 採用協議轉化技術,無需安裝專有客戶端,直接通過瀏覽器安全接入內部文件系統。
- 將客戶端發起的文件共享請求轉化成相應的協議格式,與服務器進行交互。
支持:SMB協議(Windows),NFS(Linux)
在文件共享業務中FW起到了協議轉換器的作用。
注意:在文件共享中,Ctrl + C等組合鍵無法使用。
文件共享應用的特點:
- 所有文件接入需要認證
- 所有文件傳輸採用SSL加密
- 文件級的訪問權限控制
- SVN增加額外的訪問控制
- 就像操作本機文件系統一樣安全便捷。
端口轉發:
提供豐富的內網TCP應用服務。
廣泛支持靜態端口的TCP應用:
- 單端口單服務器(如:Telnet,SSH,MS RDP, VNC等)
- 單端口多服務器(如:Lotus Notes)
- 多端口多服務器(如:Outlook)
支持動態端口的TCP應用:
- 動態端口(如:FTP,Oracle)
提供端口級的訪問控制。
端口轉發實現原理:
端口轉發需要在客戶端上運行一個ActiveX控件作爲端口轉發器,用於偵聽指定端口上的連接。
端口轉發的應用特點:
- 實現對內網TCP應用的廣泛支持
- 遠程桌面、Outlook、Notes、FTP等
- 所有數據流都經過加密認證
- 對用戶進行統一的授權、認證
- 提供對TCP應用的訪問控制
- 只需標準瀏覽器,不用安裝客戶端。
- 保證TCP應用的安全性、可靠性,提供方便快捷的操作、管理方式。
網絡擴展:
實現對內網所有複雜應用的全網訪問.
-
通過建立安全的SSL隧道,實現對基於IP的內網業務的全面訪問。
-
實現方式:
- ActiveX控件
- 專用客戶端軟件:一次安裝,零配置。
-
訪問方式:
-
全路由模式(Full Tunnel)
全通道方式,所有流量都流向網關。
-
分離模式(Split Tunnel)
分離通道方式:處理可以訪問內網,還能夠訪問客戶端所在的本地子網。
-
手動模式(Manual Tunnel)
能夠訪問內網和特定網段的資源,同時,客戶端訪問本地子網和Internet的操作不受影響。
-
網絡擴展實現原理:
啓動網絡擴展功能,會觸發以下幾個動作:
-
遠程用戶與虛擬網關之間會建立一條SSL VPN隧道。
-
遠程用戶本地PC會自動生成一個虛擬網卡。虛擬網關從地址池中隨機選擇一個IP地址,分配給遠程用戶的虛擬網卡,該地址作爲遠程用戶與企業內網Server之間通信之用。有了該私網IP地址,遠程用戶就如同企業內網用戶一樣可以方便訪問內網IP資源。
-
虛擬網關向遠程用戶下發到達企業內網Server的路由信息。
虛擬網關會根據網絡擴展業務中的配置,向遠程用戶下發不同的路由信息。
網絡擴展報文封裝過程:
網絡擴展功能建立SSL VPN隧道的方式有兩種:可靠傳輸模式和快速傳輸模式。可靠傳輸模式中,SSL VPN採用SSL協議封裝報文,並以TCP協議作爲傳輸協議;快速傳輸模式中,SSL VPN採用採用UDP協議作爲傳輸協議。
可靠性傳輸模式下,SSL VPN隧道之間使用了TCP作爲傳輸協議。
模式下報文的封裝原理和可靠性模式下報文封裝原理是一樣的,只是傳輸協議由TCP改爲了UDP。
終端安全:
終端安全是在請求接入內網的主機上部署一個軟件,通過該軟件檢查終端主機的安裝狀況。主要包括:主機檢查、緩存清理。
主機檢查:檢查用戶用來訪問內網資源的主機是否符號位安全要求。主機檢查策略包括如下檢查項:
- 查毒軟件檢查
- 防火牆檢查
- 註冊表檢查
- 文件檢查
- 端口檢查
- 進程檢查
- 操作系統檢查
緩存清理:清除接入虛擬網關的主機的訪問痕跡,實現客戶端的零痕跡訪問。清理範圍如下:
- Internet臨時文件
- 瀏覽器自動保存的密碼
- Cookie記錄
- 瀏覽器的訪問歷史記錄
- 回收站和最近打開的文檔列表
- 指定文件或文件夾
完善的日誌功能:
- 日誌查詢
- 日誌導出
- 虛擬網關管理員日誌
- 用戶日誌
- 系統日誌
SSL VPN使用限制:
- 在負載分擔組網下,不支持SSL VPN功能。
- SSL VPN特性不支持IPv6。
SSL VPN組網分析
SSL VPN應用典型網絡位置:
SSL VPN網關多部署於網絡出口處,應用服務器之前,介於遠程用戶和服務器之間,控制兩者的通信。
SSL VPN單臂組網模式應用場景分析:
單臂和雙臂組網方式,多用於SVN設備,SVN單臂掛接在防火牆、路由器或交換機上,內網和Internet都通過這個網口與SVN通信, 這種模式稱爲單臂模式。
這種方案部署的缺點:因爲SSL VPN的流量是加密的,那麼當遠程用戶訪問時,如果流量中有攻擊或者病毒,而防火牆不認識加密流量,會轉發給SVN,SVN解密後直接誒發往內網。會存在安全隱患。
所以,最好的部署是將SVN與防火牆串聯。遠程用戶的流量先到SVN,解密後給防火牆檢查。檢查通過後發送給內網。
SSL VPN雙臂組網模式應用場景分析:
SVN雙臂掛接在防火牆、路由器或者交換機上。內網和Internet都通過不同的網口語SVN進行通信,這種模式成爲雙臂模式。
參考文檔:華爲HedEx文檔