颜雪峰 翟雅萌 武渊博
近年来,随着铁路通信承载网的建设,用于日常办公、检修、维护和生产的信息平台建设也在同步跟进,纸质工作方式逐渐转变为信息化处理方式,从而提高了管理效率,降低了管理成本。但由于铁路单位部门纷杂,接入网络的终端数量繁多,不同部门的信息平台数据交互极易引发信息安全事故。为此,采用SSL VPN 技术,将不同信息平台的数据分隔在各自的VPN(虚拟专用网络)中,互不干扰,实现低成本的网络安全控制。
VPN 可在既有通信承载网的基础上搭建。在铁路数据通信网中,原本需要单独组网的重要业务,如CTC、TDCS、视频监控、电力牵引远动等系统,通过VPN 技术可以安全、高效地共享网络资源,大大减少了网络建设成本。
按照协议来划分,VPN 技术可以分为PPTP、L2TP、IPSec 和SSL 等 多 种。其 中,PPTP 和L2TP 工作在OSI 网络模型的第二层,用户数据在数据链路层被封装,因此被称为二层链路协议。IPSec 工作在网络层,通过包封装技术封装内部网络的IP 地址,实现不同网络的互通。但PPTP、L2TP、IPSec 在不同程度上都要改变网络结构,要对数据通信网中的多个网络节点重新配置数据,不便于维护。而采用SSL 实现的应用层VPN 可以避免上述问题的发生。
SSL(安全套接字层)协议是一种传输层网络安全协议,采用公开密钥,以保证网络客户端(办公电脑)访问服务器端时的通信保密性和可靠性。SSL一般分为握手、修改密码规范和警报3 个子协议。其中,握手协议是保障信息传送安全的关键部分。
握手协议需要经过3 个步骤,也就是SSL 的3 次握手。
第1次握手:客户端生成随机数,并携带协议版本号、加密方式等参数向服务器发送hello 请求,服务器判断协议版本号及加密方式是否可用,如果验证通过,则进行第2次握手,否则握手过程终止。
第2 次握手:服务器生成第2 个随机数,携带CA 证书发送给客户端,等待客户端验证。
第3 次握手:客户端生成第3 个随机数,使用CA 证书中的公钥进行加密,同时发送前2 次信息摘要,由服务器再次验证。服务器用私钥进行解密,生成双方的对话密钥。
SSL VPN 是一种基于SSL 协议的VPN 实现,VPN 的安全性和独立性依赖于包封装技术,利用SSL 协议加密算法和身份认证,构建安全的虚拟专用网络。SSL VPN 通过一个实体设备(即SSL VPN 服务器)和客户端软件配合来实现上述功能。客户端软件安装在用户PC 上,由VPN 客户端模块与会话转发模块组成;服务器由安全隧道处理、身份认证、访问控制和VPN 安全管理等4 个模块组成。防火墙在SSL VPN 网络中无差别地将来自办公网的数据包转发至SSL VPN 服务器进行处理或鉴权,然后将来自SSL VPN 服务器认证授权的数据包转发至对应的信息平台服务器。SSL VPN 网络结构见图1。
图1 SSL VPN 网络结构示意图
SSL VPN 服务器工作过程:客户端(办公电脑主机)向SSL VPN 服务器发送http 请求;SSL VPN 服务器验证客户端发送的身份信息以及证书,通过SSL 协议的握手创建SSL 安全隧道;认证模块成功确认客户端身份后,生成全局唯一的不可逆的cookie,并将其发送给访问控制模块;访问控制模块根据用户的角色权限给用户分配可访问服务列表,客户端据此可以访问相应的信息平台;客户端访问信息平台内容,SSL VPN 服务器通过鉴权认证等方式建立安全透明的隧道,并把信息平台的数据定向发送到客户端电脑。
在铁路承载网中搭建信息平台时,需要解决以下问题:信息平台服务器设置在哪里,如何确定哪些用户、部门可以访问这个信息平台,如何防止非法用户访问等。
首先,信息平台服务器可以放置在承载网覆盖的任何位置,即有办公网电脑的地方都可以安装信息平台服务器,因为信息平台的部署不改变既有的网络结构和网络配置;其次,为了灵活控制信息平台访问权限,信息平台与办公承载网之间应设置一个网关(防火墙),进行流量控制、路由策略等;最后,在网关下设置SSL VPN 服务器,并在网关上设置路由策略,使访问信息平台的数据先进入SSL VPN 服务器建 立SSL 连 接,由SSL VPN 服务器代理访问信息平台。
用户登录VPN 客户端,输入预先分配好的账户,SSL VPN 服务器收到请求后验证账户,建立与账户对应的信息平台服务器与客户端主机之间的安全隧道。而非法用户没有SSL VPN 账户,则无法登录信息平台,其数据包被阻挡在防火墙和SSL VPN 服务器之间,无法进入信息平台服务器所在的网络,从而保证了安全性。
信息平台的开发是随着铁路通信基础网建设逐步发展起来的。日常办公、检修等工作的信息化、电子化能够极大地简化工作流程,提升工作效率,节省大量纸张。为此,利用现有的网络硬件建立信息平台,包括生产信息平台、人力资源管理平台、干部考评平台、材料计划审核平台等。这些平台采用B/S 架构,在各个班组和部门的办公电脑上安装客户端,在服务器上设置SSL VPN 服务器和防火墙,保证职工访问不同的信息平台时进入不同的VPN,以确保网络数据安全。
信息平台的软件部分一般可以统称为Web应用,也就是根据实际需求自行开发的软件程序。Web 应用的技术栈相对复杂,且不断迭代,根据规范要求,Web 应用应当采取统一的架构和技术。以常见的前后端分离的Web 应用来说,一个完整的Web 应用程序分为前端程序、后端程序和数据库3 个部分。例如,前端采用Layui+EasyUI+x-admin 框架生成网页样式,再配合原生的Html+Jquery+Ajax 编写网页界面;在可视化展示中,使用echarts、V-data 等开源平台,实现各类统计图表显示。后端采用Asp.Net 技术族群中的Framework 和Core框架,包括En⁃tity Framework Core 等ORM 技术,实现业务逻辑的编写。数据库主要使用Sql Server 和Redis。Web 应用的技术栈举例见图2。
图2 Web 应用的技术栈举例
Web 应用程序的开发分为:需求调研、技术预研、架构分析、开发、测试、部署、试运行和正式上线几个阶段。实际开发过程中,用户的需求会随着程序应用不断扩展,技术栈的演替也时有发生,技术预研可能伴随开发工作进行,因此开发流程的控制要从实际出发,不必局限于预定流程或思路,随时调整开发的进度。
开发铁路部门日常办公或生产的Web 应用,开发模式应以快速开发和迭代开发为主,边开发、边调研,开发流程如下。
1)在完成需求调研之后,应确定Web 应用整体的视觉观感,也就是前端页面的外观、颜色、控件的整体风格等,可以自行设计,也可以下载和使用layui、easyui 等开源的前端页面框架来完成。
2) 设计功能交互,即Web 应用具体的功能实现。首先,将用户提出的抽象需求转换成网页交互的设计语言;其次,使用规范的网页控件实现前端的交互;最后,分析需要传递给后端程序处理的数据。
3) Web 应用的后端程序主要用于处理数据,从数据库中提取数据,处理前端发送的请求等,这部分是最核心的开发工作。
信息平台开发后需进行测试,测试无误后即可进入部署和试运行阶段。
选择服务器时应在保证性能的前提下尽可能地节省成本。由于信息平台仅在本单位内部使用,一般配置常用的办公电脑即可。本文选择的服务器配置为:CPU I5-4210M;4 GB内存;500 GB硬盘。
Web 应用的部署受限于开发过程中使用的电脑语言和编译环境,例如使用java 语言编写的Web应用可以实现跨平台部署,也就是不限于信息平台服务器的操作系统种类,可以部署在linux 系统下,也可以部署在windows 系统下。但如果采用C#语言,则只能部署在windows 自带的IIS 服务器下。
以C#语言开发的Web 应用为例,部署步骤:在服务器上安装sqlserver 数据库,导入数据库原始表格;将编译完成后的网络应用下载到指定的路径下,安装windows 自带的IIS 服务器;打开IIS 服务器管理界面,设置好已经编译完成的程序路径,启动IIS 服务器即可。
信息平台搭建完成后,用办公网内另一台电脑进行测试,能够正常访问则可以将此信息平台移入SSL VPN 网络中。
综上所述,SSL VPN 能够在应用层面上对网络信息、特定的服务器数据进行保护。客户端电脑与信息平台服务器之间的数据包通过SSL 协议加密,可以有效防止被窃听或抓包,保证了客户端电脑的数据安全。非法用户也不能绕开实体防火墙直接访问信息平台服务器,保证了信息平台的数据安全。在网络层面上,与其他VPN 技术相比,SSL VPN 不改变既有的网络配置,实现了低成本的私有专用网络,且能够保证较高的安全性,满足铁路部门日常工作中的信息化需求;采用.net core 等技术实现迭代开发,快速搭建安全稳定、立足时效性的轻量级信息平台。SSL VPN 技术可以为信息平台的搭建提供简易、可靠的应用层网络结构,以应对日益严峻的网络安全形势。