在計算機網絡系統中,SSL VPN策略包含了兩個部分:一個是SSL(安全套接層)協議,一個是VPN(虛擬專用網絡)。
SSL(安全套接層)協議是在互聯上確保信息能夠安全傳輸的通信認證協議,通過“工作站→服務器”建立通信聯系,作用于TCP/IP模型的應用層,通過設定網絡傳輸應用程序和TCP/IP之間的安全機制,為TCP/IP實現網絡連接對需要傳輸的數據進行加密,需要在客戶端和服務器端實現身份認證。
VPN(虛擬專用網絡)上指在大型和超大型的網絡系統(如:互聯網)中,建立一個屬于自己的網絡傳輸系統,將互聯網中的其他網絡傳輸系統隔離出去了。當然,使用該策略只是臨時的,其本質相當于一個點對點的網絡數據傳輸模型。
在本文設計的通信系統中,采用SSL VPN策略來確保數據通信過程的安全。SSL可以保證兩個應用間通信的保密性和可靠性,可在服務器端(根據印刷企業的實際需要,可以不用設置專用服務器)和用戶端同時實現支持。該協議可以確保用戶/服務器應用間的通信不被攻擊者竊聽,并且始終對服務器進行認證,還可選擇對用戶進行認證。
SSL VPN策略的核心是SSL協議,它指定了在應用程序(如 HTTP、Telnet 和 FTP等)和TCP/IP協議之間進行數據交換的安全機制,為TCP/IP連接提供數據加密、服務器認證以及可選的客戶機認證。SSL協議是由SSL記錄協議、握手協議、密鑰更改協議和告警協議組成,它們共同為應用訪問連接提供認證、加密和防篡改等功能。
SSL VPN通過數據包封裝技術來實現虛擬專用網的私有性,通過PKI技術和加密技術來鑒別通信雙方的身份和確保傳輸數據的安全。SSL VPN可以構建外聯網、內聯網和遠程訪問等多種VPN系統,支持IPv4/IPv6、NetwareIPX、Appletalk等多種網絡協議,可成功穿越NAT設備。
SSL VPN工作在系統用戶空間,具有組網靈活性強、增強的遠程安全接入、細粒度的訪問控制、管理維護成本低、用戶操作維護簡便、能夠穿越防火墻等特點。
SSL VPN一般的實現方式是在印刷企業的防火墻后面放置一個SSL代理服務器,SSL代理服務器將提供一個遠程用戶與各種不同的應用服務器之間的連接,主要依靠握手協議、記錄協議、警告協議實現,SSL VPN的通信過程主要集中在握手協議上,其實現步驟是:
1.SSL客戶機連接到SSL服務器,并要求服務器驗證身份;
2.服務器通過發送數字證書證明自身的身份,其中包括整個證書鏈,直到某個證書頒發機構(CA),通過檢查有效日期并確認證書包含可信任CA的數字簽名來驗證證書的有效性;
3.服務器發出一個請求,對客戶端的證書進行驗證;
4.雙方協商用于加密的消息加密算法和用于完整性檢查的HASH函數,通常由客戶端提供它所支持的所有算法列表,然后由服務器選擇其中最強大的加密算法;
5.客戶機和服務器通過下列步驟生成會話密鑰:客戶機生成一個隨機數,并使用服務器的公鑰(從服務器證書中獲得)對它加密,再送到服務器;服務器用更加隨機的數據,用客戶機的公鑰加密,發送至客戶機以表示響應;使用HASH函數從隨機數據中生成密鑰。
以上通信過程的關鍵參考代碼如下:
(1)服務器端通信連接關鍵代碼:
//新建Socket

//綁定端口


//開始接收TCP鏈接。

//接受客戶端TCP鏈接

//新建SSL

//獲得SSL鏈接用到的算法

//獲得客戶端證書


(2)客戶端通信連接關鍵代碼:
//創建socket并鏈接到服務器端


//服務端地址

//服務端口
//鏈接服務器

// TCP鏈接開啟SSL協議

//啟動SSL鏈接

//獲取SSL鏈接的算法

//獲得服務端證書


本項目建立的安全網絡通道,首先是利用OpenSSL軟件創建CA證書,其次有文獻對OpenSSL的組件化封裝做了研究與實現,另外,眾多文獻都涉及到OpenSSL技術。通信雙方只有擁有相應證書才能建立TCP鏈接,進行雙方的數據交換。數字證書是一個經證書授權中心數字簽名的包含公開密鑰擁有者信息和公開密鑰的文件。證書的管理的實現步驟是:證書的申請→證書廢除列表CRL→證書的撤銷。
在設計過程中,依托PKI技術和數字證書的管理體制,以OpenSSL工具為基礎,用VC開發用戶證書管理系統的實現,完成了對用戶證書系統管理的模擬實現。
OpenSSL是一個功能豐富且自包含的開源安全工具箱,本設計使用的OpenSSL版本0.9.8e,利用它創建server.crt以 及client.crt。