顏雪峰 翟雅萌 武淵博
近年來(lái),隨著鐵路通信承載網(wǎng)的建設(shè),用于日常辦公、檢修、維護(hù)和生產(chǎn)的信息平臺(tái)建設(shè)也在同步跟進(jìn),紙質(zhì)工作方式逐漸轉(zhuǎn)變?yōu)樾畔⒒幚矸绞?,從而提高了管理效率,降低了管理成本。但由于鐵路單位部門紛雜,接入網(wǎng)絡(luò)的終端數(shù)量繁多,不同部門的信息平臺(tái)數(shù)據(jù)交互極易引發(fā)信息安全事故。為此,采用SSL VPN 技術(shù),將不同信息平臺(tái)的數(shù)據(jù)分隔在各自的VPN(虛擬專用網(wǎng)絡(luò))中,互不干擾,實(shí)現(xiàn)低成本的網(wǎng)絡(luò)安全控制。
VPN 可在既有通信承載網(wǎng)的基礎(chǔ)上搭建。在鐵路數(shù)據(jù)通信網(wǎng)中,原本需要單獨(dú)組網(wǎng)的重要業(yè)務(wù),如CTC、TDCS、視頻監(jiān)控、電力牽引遠(yuǎn)動(dòng)等系統(tǒng),通過(guò)VPN 技術(shù)可以安全、高效地共享網(wǎng)絡(luò)資源,大大減少了網(wǎng)絡(luò)建設(shè)成本。
按照協(xié)議來(lái)劃分,VPN 技術(shù)可以分為PPTP、L2TP、IPSec 和SSL 等 多 種。其 中,PPTP 和L2TP 工作在OSI 網(wǎng)絡(luò)模型的第二層,用戶數(shù)據(jù)在數(shù)據(jù)鏈路層被封裝,因此被稱為二層鏈路協(xié)議。IPSec 工作在網(wǎng)絡(luò)層,通過(guò)包封裝技術(shù)封裝內(nèi)部網(wǎng)絡(luò)的IP 地址,實(shí)現(xiàn)不同網(wǎng)絡(luò)的互通。但PPTP、L2TP、IPSec 在不同程度上都要改變網(wǎng)絡(luò)結(jié)構(gòu),要對(duì)數(shù)據(jù)通信網(wǎng)中的多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)重新配置數(shù)據(jù),不便于維護(hù)。而采用SSL 實(shí)現(xiàn)的應(yīng)用層VPN 可以避免上述問題的發(fā)生。
SSL(安全套接字層)協(xié)議是一種傳輸層網(wǎng)絡(luò)安全協(xié)議,采用公開密鑰,以保證網(wǎng)絡(luò)客戶端(辦公電腦)訪問服務(wù)器端時(shí)的通信保密性和可靠性。SSL一般分為握手、修改密碼規(guī)范和警報(bào)3 個(gè)子協(xié)議。其中,握手協(xié)議是保障信息傳送安全的關(guān)鍵部分。
握手協(xié)議需要經(jīng)過(guò)3 個(gè)步驟,也就是SSL 的3 次握手。
第1次握手:客戶端生成隨機(jī)數(shù),并攜帶協(xié)議版本號(hào)、加密方式等參數(shù)向服務(wù)器發(fā)送hello 請(qǐng)求,服務(wù)器判斷協(xié)議版本號(hào)及加密方式是否可用,如果驗(yàn)證通過(guò),則進(jìn)行第2次握手,否則握手過(guò)程終止。
第2 次握手:服務(wù)器生成第2 個(gè)隨機(jī)數(shù),攜帶CA 證書發(fā)送給客戶端,等待客戶端驗(yàn)證。
第3 次握手:客戶端生成第3 個(gè)隨機(jī)數(shù),使用CA 證書中的公鑰進(jìn)行加密,同時(shí)發(fā)送前2 次信息摘要,由服務(wù)器再次驗(yàn)證。服務(wù)器用私鑰進(jìn)行解密,生成雙方的對(duì)話密鑰。
SSL VPN 是一種基于SSL 協(xié)議的VPN 實(shí)現(xiàn),VPN 的安全性和獨(dú)立性依賴于包封裝技術(shù),利用SSL 協(xié)議加密算法和身份認(rèn)證,構(gòu)建安全的虛擬專用網(wǎng)絡(luò)。SSL VPN 通過(guò)一個(gè)實(shí)體設(shè)備(即SSL VPN 服務(wù)器)和客戶端軟件配合來(lái)實(shí)現(xiàn)上述功能。客戶端軟件安裝在用戶PC 上,由VPN 客戶端模塊與會(huì)話轉(zhuǎn)發(fā)模塊組成;服務(wù)器由安全隧道處理、身份認(rèn)證、訪問控制和VPN 安全管理等4 個(gè)模塊組成。防火墻在SSL VPN 網(wǎng)絡(luò)中無(wú)差別地將來(lái)自辦公網(wǎng)的數(shù)據(jù)包轉(zhuǎn)發(fā)至SSL VPN 服務(wù)器進(jìn)行處理或鑒權(quán),然后將來(lái)自SSL VPN 服務(wù)器認(rèn)證授權(quán)的數(shù)據(jù)包轉(zhuǎn)發(fā)至對(duì)應(yīng)的信息平臺(tái)服務(wù)器。SSL VPN 網(wǎng)絡(luò)結(jié)構(gòu)見圖1。
圖1 SSL VPN 網(wǎng)絡(luò)結(jié)構(gòu)示意圖
SSL VPN 服務(wù)器工作過(guò)程:客戶端(辦公電腦主機(jī))向SSL VPN 服務(wù)器發(fā)送http 請(qǐng)求;SSL VPN 服務(wù)器驗(yàn)證客戶端發(fā)送的身份信息以及證書,通過(guò)SSL 協(xié)議的握手創(chuàng)建SSL 安全隧道;認(rèn)證模塊成功確認(rèn)客戶端身份后,生成全局唯一的不可逆的cookie,并將其發(fā)送給訪問控制模塊;訪問控制模塊根據(jù)用戶的角色權(quán)限給用戶分配可訪問服務(wù)列表,客戶端據(jù)此可以訪問相應(yīng)的信息平臺(tái);客戶端訪問信息平臺(tái)內(nèi)容,SSL VPN 服務(wù)器通過(guò)鑒權(quán)認(rèn)證等方式建立安全透明的隧道,并把信息平臺(tái)的數(shù)據(jù)定向發(fā)送到客戶端電腦。
在鐵路承載網(wǎng)中搭建信息平臺(tái)時(shí),需要解決以下問題:信息平臺(tái)服務(wù)器設(shè)置在哪里,如何確定哪些用戶、部門可以訪問這個(gè)信息平臺(tái),如何防止非法用戶訪問等。
首先,信息平臺(tái)服務(wù)器可以放置在承載網(wǎng)覆蓋的任何位置,即有辦公網(wǎng)電腦的地方都可以安裝信息平臺(tái)服務(wù)器,因?yàn)樾畔⑵脚_(tái)的部署不改變既有的網(wǎng)絡(luò)結(jié)構(gòu)和網(wǎng)絡(luò)配置;其次,為了靈活控制信息平臺(tái)訪問權(quán)限,信息平臺(tái)與辦公承載網(wǎng)之間應(yīng)設(shè)置一個(gè)網(wǎng)關(guān)(防火墻),進(jìn)行流量控制、路由策略等;最后,在網(wǎng)關(guān)下設(shè)置SSL VPN 服務(wù)器,并在網(wǎng)關(guān)上設(shè)置路由策略,使訪問信息平臺(tái)的數(shù)據(jù)先進(jìn)入SSL VPN 服務(wù)器建 立SSL 連 接,由SSL VPN 服務(wù)器代理訪問信息平臺(tái)。
用戶登錄VPN 客戶端,輸入預(yù)先分配好的賬戶,SSL VPN 服務(wù)器收到請(qǐng)求后驗(yàn)證賬戶,建立與賬戶對(duì)應(yīng)的信息平臺(tái)服務(wù)器與客戶端主機(jī)之間的安全隧道。而非法用戶沒有SSL VPN 賬戶,則無(wú)法登錄信息平臺(tái),其數(shù)據(jù)包被阻擋在防火墻和SSL VPN 服務(wù)器之間,無(wú)法進(jìn)入信息平臺(tái)服務(wù)器所在的網(wǎng)絡(luò),從而保證了安全性。
信息平臺(tái)的開發(fā)是隨著鐵路通信基礎(chǔ)網(wǎng)建設(shè)逐步發(fā)展起來(lái)的。日常辦公、檢修等工作的信息化、電子化能夠極大地簡(jiǎn)化工作流程,提升工作效率,節(jié)省大量紙張。為此,利用現(xiàn)有的網(wǎng)絡(luò)硬件建立信息平臺(tái),包括生產(chǎn)信息平臺(tái)、人力資源管理平臺(tái)、干部考評(píng)平臺(tái)、材料計(jì)劃審核平臺(tái)等。這些平臺(tái)采用B/S 架構(gòu),在各個(gè)班組和部門的辦公電腦上安裝客戶端,在服務(wù)器上設(shè)置SSL VPN 服務(wù)器和防火墻,保證職工訪問不同的信息平臺(tái)時(shí)進(jìn)入不同的VPN,以確保網(wǎng)絡(luò)數(shù)據(jù)安全。
信息平臺(tái)的軟件部分一般可以統(tǒng)稱為Web應(yīng)用,也就是根據(jù)實(shí)際需求自行開發(fā)的軟件程序。Web 應(yīng)用的技術(shù)棧相對(duì)復(fù)雜,且不斷迭代,根據(jù)規(guī)范要求,Web 應(yīng)用應(yīng)當(dāng)采取統(tǒng)一的架構(gòu)和技術(shù)。以常見的前后端分離的Web 應(yīng)用來(lái)說(shuō),一個(gè)完整的Web 應(yīng)用程序分為前端程序、后端程序和數(shù)據(jù)庫(kù)3 個(gè)部分。例如,前端采用Layui+EasyUI+x-admin 框架生成網(wǎng)頁(yè)樣式,再配合原生的Html+Jquery+Ajax 編寫網(wǎng)頁(yè)界面;在可視化展示中,使用echarts、V-data 等開源平臺(tái),實(shí)現(xiàn)各類統(tǒng)計(jì)圖表顯示。后端采用Asp.Net 技術(shù)族群中的Framework 和Core框架,包括En?tity Framework Core 等ORM 技術(shù),實(shí)現(xiàn)業(yè)務(wù)邏輯的編寫。數(shù)據(jù)庫(kù)主要使用Sql Server 和Redis。Web 應(yīng)用的技術(shù)棧舉例見圖2。
圖2 Web 應(yīng)用的技術(shù)棧舉例
Web 應(yīng)用程序的開發(fā)分為:需求調(diào)研、技術(shù)預(yù)研、架構(gòu)分析、開發(fā)、測(cè)試、部署、試運(yùn)行和正式上線幾個(gè)階段。實(shí)際開發(fā)過(guò)程中,用戶的需求會(huì)隨著程序應(yīng)用不斷擴(kuò)展,技術(shù)棧的演替也時(shí)有發(fā)生,技術(shù)預(yù)研可能伴隨開發(fā)工作進(jìn)行,因此開發(fā)流程的控制要從實(shí)際出發(fā),不必局限于預(yù)定流程或思路,隨時(shí)調(diào)整開發(fā)的進(jìn)度。
開發(fā)鐵路部門日常辦公或生產(chǎn)的Web 應(yīng)用,開發(fā)模式應(yīng)以快速開發(fā)和迭代開發(fā)為主,邊開發(fā)、邊調(diào)研,開發(fā)流程如下。
1)在完成需求調(diào)研之后,應(yīng)確定Web 應(yīng)用整體的視覺觀感,也就是前端頁(yè)面的外觀、顏色、控件的整體風(fēng)格等,可以自行設(shè)計(jì),也可以下載和使用layui、easyui 等開源的前端頁(yè)面框架來(lái)完成。
2) 設(shè)計(jì)功能交互,即Web 應(yīng)用具體的功能實(shí)現(xiàn)。首先,將用戶提出的抽象需求轉(zhuǎn)換成網(wǎng)頁(yè)交互的設(shè)計(jì)語(yǔ)言;其次,使用規(guī)范的網(wǎng)頁(yè)控件實(shí)現(xiàn)前端的交互;最后,分析需要傳遞給后端程序處理的數(shù)據(jù)。
3) Web 應(yīng)用的后端程序主要用于處理數(shù)據(jù),從數(shù)據(jù)庫(kù)中提取數(shù)據(jù),處理前端發(fā)送的請(qǐng)求等,這部分是最核心的開發(fā)工作。
信息平臺(tái)開發(fā)后需進(jìn)行測(cè)試,測(cè)試無(wú)誤后即可進(jìn)入部署和試運(yùn)行階段。
選擇服務(wù)器時(shí)應(yīng)在保證性能的前提下盡可能地節(jié)省成本。由于信息平臺(tái)僅在本單位內(nèi)部使用,一般配置常用的辦公電腦即可。本文選擇的服務(wù)器配置為:CPU I5-4210M;4 GB內(nèi)存;500 GB硬盤。
Web 應(yīng)用的部署受限于開發(fā)過(guò)程中使用的電腦語(yǔ)言和編譯環(huán)境,例如使用java 語(yǔ)言編寫的Web應(yīng)用可以實(shí)現(xiàn)跨平臺(tái)部署,也就是不限于信息平臺(tái)服務(wù)器的操作系統(tǒng)種類,可以部署在linux 系統(tǒng)下,也可以部署在windows 系統(tǒng)下。但如果采用C#語(yǔ)言,則只能部署在windows 自帶的IIS 服務(wù)器下。
以C#語(yǔ)言開發(fā)的Web 應(yīng)用為例,部署步驟:在服務(wù)器上安裝sqlserver 數(shù)據(jù)庫(kù),導(dǎo)入數(shù)據(jù)庫(kù)原始表格;將編譯完成后的網(wǎng)絡(luò)應(yīng)用下載到指定的路徑下,安裝windows 自帶的IIS 服務(wù)器;打開IIS 服務(wù)器管理界面,設(shè)置好已經(jīng)編譯完成的程序路徑,啟動(dòng)IIS 服務(wù)器即可。
信息平臺(tái)搭建完成后,用辦公網(wǎng)內(nèi)另一臺(tái)電腦進(jìn)行測(cè)試,能夠正常訪問則可以將此信息平臺(tái)移入SSL VPN 網(wǎng)絡(luò)中。
綜上所述,SSL VPN 能夠在應(yīng)用層面上對(duì)網(wǎng)絡(luò)信息、特定的服務(wù)器數(shù)據(jù)進(jìn)行保護(hù)??蛻舳穗娔X與信息平臺(tái)服務(wù)器之間的數(shù)據(jù)包通過(guò)SSL 協(xié)議加密,可以有效防止被竊聽或抓包,保證了客戶端電腦的數(shù)據(jù)安全。非法用戶也不能繞開實(shí)體防火墻直接訪問信息平臺(tái)服務(wù)器,保證了信息平臺(tái)的數(shù)據(jù)安全。在網(wǎng)絡(luò)層面上,與其他VPN 技術(shù)相比,SSL VPN 不改變既有的網(wǎng)絡(luò)配置,實(shí)現(xiàn)了低成本的私有專用網(wǎng)絡(luò),且能夠保證較高的安全性,滿足鐵路部門日常工作中的信息化需求;采用.net core 等技術(shù)實(shí)現(xiàn)迭代開發(fā),快速搭建安全穩(wěn)定、立足時(shí)效性的輕量級(jí)信息平臺(tái)。SSL VPN 技術(shù)可以為信息平臺(tái)的搭建提供簡(jiǎn)易、可靠的應(yīng)用層網(wǎng)絡(luò)結(jié)構(gòu),以應(yīng)對(duì)日益嚴(yán)峻的網(wǎng)絡(luò)安全形勢(shì)。