摘要:本文在分析了VPN的基本原理、運行機制和相關管理技術的基礎上,結合 VPN 遠程管理系統的實際要求,設計與實現了一個相對簡單的數字證書管理中心。
關鍵字:VPN 網絡管理 IPSec OpenSSL 數字證書
前言
目前在國內,VPN 已成為了網絡安全設備市場上迅速成長的主流消費品之一;而在國外,VPN 的應用也已相當廣泛,許多網絡設備供應商和網絡安全集成方案提供商都擁有自己成熟的VPN產品和解決方案,因此在VPN 管理的研究設計方面有較大的發展空間。建立安全高效的 VPN 管理系統不只是對安全設備、安全軟件進行管理,而是針對網絡、網絡設備、安全策略和用戶的統一安全管理,管理員可以對網絡中所有信息進行綜合考慮,保證網絡安全、可靠地運行,使它在 Internet 上開辟一條專用數據的通信渠道,為公司和商務伙伴之間建立一條安全的通路,為市場經濟的繁榮和發展鋪設堅實可靠的奠基石。
1 VPN與IPSec
VPN是Virtual Private Network的縮寫,中文譯為虛擬專用網。它是一種“基于公共數據網,給用戶一種直接連接到私人局域網感覺的服務”。VPN極大地降低了用戶的費用,而且提供了比傳統方法更強的安全性和可靠性。VPN由客戶機、傳輸介質和服務器這三部分組成,而它的連接是使用建立在公共網絡或專用網絡基礎之上的隧道作為傳輸通道,靠的是對數據包的封裝和加密,如Internet或Intranet。
IPSec(Internet Protocol Security)是由 Internet Engineering Task Force (IETF) 定義的安全標準框架,用以提供公用和專用網絡的端對端加密和驗證服務。它指定了各種可選網絡安全服務,而各 IT 組織可以根據自己的安全策略綜合和匹配這些服務。而IPSec協議提供了一種標準、健全的機制,可為 IP 及其上層協議提供安全保證。通過加密、認證、封裝等手段為所有高層協議提供透明的安全保護,從而保證數據傳輸的可靠性、完整性和保密性。
2 VPN遠程管理系統的設計與實現
2.1VPN遠程管理系統總體設計
VPN遠程管理系統包括了:設備管理模塊(日志管理,狀態監控),策略管理模塊(添加策略,刪除策略,實施策略),證書中心模塊(初始化,簽發證書,吊銷證書)。
2.2 VPN遠程管理系統的實現
2.2.1 策略管理模塊
策略配置模塊的功能可以概括為:從客戶端獲取各個配置參數值,和既定的公共策略綜合在一起形成完整的一條VPN策略,然后寫入配置文件,并通知VPN 系統更新策略,策略的實施則是通知VPN系統啟用或停用該策略實現的。具體來說,對VPN策略的操作分為添加、修改、刪除和實施,其中策略的實施可以分為啟用策略和停用策略。
2.2.2 設備管理模塊
它主要分為日志管理和設備監控兩個功能。
在當今網絡安全問題日益嚴峻的形勢下,對于網絡活動進行詳細的日志記錄是必要的, 它為網絡管理員提供了一種查驗網絡歷史記錄并進行分析的手段。對VPN設備的狀態監控分為兩部分:VPN網關運行狀態和VPN連接狀態。VPN網關運行狀態包括 IPSec 服務是否工作正常、證書配置是否正確等;VPN連接狀態包括對活動隧道的狀態顯示和非活動隧道狀態顯示,所有的活動隧道和非活動隧道都將以列表的形式呈現給管理員,管理員可以選擇指定的隧道,以查看其詳細信息。這些信息包括:隧道名稱(對應的策略名)、對應策略的描述、隧道狀態、隧道活動時間等。
2.2.3 證書中心模塊
同一CA簽發的數字證書在身份認證過程可以成功地確認對方身份,換句話說,就是兩個 VPN 節點如果使用同一CA簽發的數字證書則可以成功地建立VPN連接,否則無法實現 VPN 互聯(除非使用CA的分級或交叉認證)。因此,每個VPN安全域擁有一個為本域內所有VPN節點提供數字證書,以及對數字證書進行管理的“證書中心”。該證書中心執行 CA(認證中心)的基本功能,包括處理證書申請請求、簽發證書、吊銷證書、管理證書數據庫。

在簽發數字證書之前,首先要產生一個證書申請。證書申請的功能由 Web 服務器提供的表單功能從客戶端獲得。證書申請過程主要是要提供證書保護密碼和證書主題信息,以上信息通過 POST 方法傳遞到 CGI 處理程序 cert_request.php,該程序調用 OpenSSL 命令: openssl req -newkey rsa:1024 -keyout hostkey.pem –out hostreq.pem。
其中rsa:1024 表示使用1024位的RSA加密算法,密鑰輸出文件為 hostkey.pem,hostreq.pem 是輸出的未進行 CA 簽名的證書文件。與證書中心初始化操作類似,該 OpenSSL 命令同樣需要在命令行輸入諸如密碼、主題信息、確認信息等,通過命令管道方式向命令行輸入管理員設定的證書保護密碼和證書的主題信息。該命令執行成功后,當前目錄下將創建兩個文件,一個為私鑰文件,另一個是沒有簽名的公鑰證書。接下來,就要調用另一個 OpenSSL 命令對公鑰證書文件進行簽名操作:
openssl ca -in hostreq.pem -days 356 -out hostcert.pem –notext
其中hostreq.pem指定了需要簽名的證書文件,356表示證書有效期為一年, 輸出文件為 hostcert.pem,即完成簽名的公鑰證書文件。
命令執行成功后,還要提供給管理員下載。首先是對兩個證書文件的改名操作,使用管理員自定義的證書名稱分別更改公鑰證書文件和私鑰文件的文件名,并放在以證書名稱為目錄名的目錄中。為了方便管理員對證書文件的管理,將對上述兩個文件和 CA 公鑰證書文件進行加密壓縮打包操作:“tar cf name.tar name”(其中 name 代表管理員自定義的證書名稱)。最后在客戶端頁面上顯示證書打包文件的下載鏈接并提醒管理員下載。管理員下載的證書打包文件可以直接上傳到VPN網關為其更新 “本地網關證書”。
作為一個功能比較完善的 CA 系統,必須能夠提供吊銷證書的功能。因此,在參考了 OpenSSL 關于證書吊銷的內容后,實現了一個相對簡單的撤銷數字證書的功能。證書就相當于我們平常所用的身份證一樣,被撤銷后,它就是無效的了,也就無法用它來進行身份認證了。因此,吊銷證書時一定要謹慎,不能隨便任意地吊銷用戶的證書,系統中如果管理員想進行該操作的話,也會給出相應的警告信息,等管理員確定要執行該操作時才真正吊銷該證書。
管理系統客戶端從已簽發證書列表中選擇要吊銷的證書,發出吊銷該證書的請求后,CGI 處理程序 cert_revoke.php 將調用 cert_revoke()函數,該函數執行OpenSSL命令:
openssl ca -revoke somecert.pem
其中 somecert.pem 為要吊銷的證書名稱。
該命令執行之后,證書信息數據庫將更新,被吊銷證書對應的證書狀態將更改為“R”,表示該證書已被吊銷,同時,證書吊銷時間字段將被設置為吊銷證書的時間。證書吊銷成功后,還必須重新生成證書撤銷列表,該功能的實現通過調用 OpenSSL 命令:
openssl ca -gencrl -crldays 30 -out crl.pem
其中30表示證書撤銷列表的有效時間;crl.pem 為輸出的撤銷列表文件名。
該命令執行之后,當前目錄下將產生名為 crl.pem 的撤銷列表文件,接下來把該文件保存到證書中心的crl目錄下,并在客戶端頁面上提供下載該文件的鏈接,提供給各VPN網關下載。
結束語
VPN產品從第一代的VPN路由器、交換機,發展到第二代的VPN集中器,性能不斷得到提高。在網絡時代,企業發展取決于是否最大限度地利用網絡。VPN將是企業的最終選擇。
參考文獻:
[1]P. C. Cheng.J. A. Garay.A. Herzberg.H.Krawczyk.“A Security Architecture for the Internet Protocol”.IBM System Journal.Vol. 37,No. 1.Feb. 1998.
[2]S. Kent.R. Atkinson.“Security Architecture for the Internet Protocol”.RFC 2401.Internet Society.Network Working Group.Nov. 1998.
[3]楊杰.VPN遠程管理系統的設計與實現[J].四川大學.
[4]楊杰,李濤等.應用虛擬設備驅動實現改進的SSL VPN 系統[J].計算機工程.
[5]張國鳴,唐樹才,薛剛遜.網絡管理實用技術[D].清華大學出版社,2002.
[6]楊家海,任憲坤,王沛瑜.網絡管理原理與實現技術[D].清華大學出版社,2000.
[7]謝希仁.計算機網絡(第 2 版)[D].電子工業出版社,1999.