一种增强型VPN安全隔离网关设计与实现
2015-06-24孙伟峰林少锋
孙伟峰,张 琳,林少锋,杨 燕,陶 波
一种增强型VPN安全隔离网关设计与实现
孙伟峰1,张 琳1,林少锋1,杨 燕2,陶 波1
(1.中国人民解放军西安通信学院信息安全系,西安 710106;2.中国人民解放军71521部队,新乡 453002)
VPN安全隔离网关采用“双ARM主机+FPGA隔离机”架构,ARM主机对数据包进行路由转发,FPGA隔离机在ARM主机之间进行数据摆渡,并对流向外网侧的数据包进行签名,对流向内网侧的数据包进行签名验证,实现对非法数据包进行安全隔离。安全隔离网关之间采用私有协议进行双向认证,大大提高了系统的安全性。通过在VPN安全隔离网关和边界服务器之间建立ESP-VPN连接,本系统可解决跨非信任域进行安全数据传输的问题。
网络安全;安全网关;网络隔离;VPN;ARM
0 引 言
VPN技术是一种通过在公共网络中构建一条加密的隧道,从而扩大局域网通信距离的一种技术。这种技术可实现网络-网络(site-site)和主机-网络(terminal-site)之间的通信,极大的方便了企业内部信息的共享。国内VPN设备的几个大厂商,包括深信服、华为、锐捷网络、启博、和NETGEAR等,这些厂家生产的设备多为机架式设备,还有一些小型路由器也具有VPN功能,然而,这些设备均为单主机结构,存在主机被控制的风险。
目前将VPN技术应用于敏感信息的传输,还存在几个方面的风险。一是对于单主机转发数据的通信方式,存在主机被控制的风险;二是未能实现可信区域与不可信区域的隔离,不能阻止非法数据包进入可信网络;三是无法在使用VPN的终端之间的进行相互认证问题;四是存在VPN服务器欺骗的问题。针对这些不足,本文设计了一种增强型VPN隔离网关,可实现安全网关之间和安全网关与IpsecVPN服务器之间的相互认证。
已经有多种方案[1-3]将FPGA应用于网络安全中,本文通过对这些方案进行对比和改进,使得网络的接入更加安全可信。该隔离网关采用“双ARM主机+FPGA隔离机”架构,FPGA隔离机位于两块ARM主机(内网ARM主机和外网ARM主机)之间,对内网和外网数据进行“摆渡”,并对两个网络之间交换的数据包进行签名和验证,以此实现内外网络的隔离[4-7]。两块ARM主机各包含一个RJ45(10/100M)网口,用于连接网络,靠近转发服务器的一侧称为外网侧,另一侧称为内网侧。相对于单主机方式,本文提出的解决方案具有以下几个优点:一是可实现可信区域与非可信区域的隔离,通过FPGA对进入内网的数据包进行验证,不能通过验证的数据包,均被丢弃;二是避免了运行VPN程序的主机被控制从而导致进入内网的风险,即使外网ARM主机被黑客控制,他也无法通过FPGA,进一步控制内网ARM造成更严重的安全事件;三是可实现VPN终端的认证,利用UKey和客户端VPN网关的用户名+密码,可在VPN服务器上对客户端进行认证;四是避免了服务器欺骗,虚假的服务器上不可能有用户名+密码的认证。
2 系统架构设计
系统采用VPN服务器在可信区域和不可信区域边界进行数据转发的方式实现数据交互。隔离网关采用签名-验证模式实现对等通信。远程隔离网关(位于不可信区域)首先向VPN服务器进行认证,通过认证之后,建立VPN连接。来自远程终端的标准IP数据包经过远程隔离网关进行签名之后,经VPN通道加密后发送到VPN服务器。VPN服务器将数将数据解密后,恢复为非标准的IP数据包,然后发送给中心隔离网关(位于可信区域)。非标准IP数据经过中心隔离网关处理后,恢复为标准IP数据包,然后发送给相应的内网终端设备。系统架构如图1所示。
图1 系统架构示意图
3 通信协议设计
由于需要在安全隔离网关之间实现互相认证,本私有协议基于IPv4通用协议,在每一个标准IP数据包末尾添加32字节的认证信息来实现认证。因此,需要对标准的IPv4数据包进行定制。
3.1私有数据包设计
私有协议基于IPv4数据包进行自定义。自定义的IP数据包格式如表1所示。
表1 自定义IP包格式
私有数据包通过对标准IPv4数据包添加了32字节的附加摘要形成,数据包的验证正是基于此摘要信息进行的。
3.2数据包发送处理流程
将隔离网关外网侧连接VPN服务器(eth0);内网侧(eth1)与用户终端连接。数据从内网口流向外网口时,FPGA对IP数据包的有效载荷和密钥(从USBKEY读取)进行哈希运算,得到32字节的摘要值,然后将此摘要附加在原IP数据包尾部,同时将IP包首部的数据包长度值字段增加32,然后发送给VPN服务器。发送流程如图2所示。
图2 数据包发送流程
3.3私有IP包接收处理流程
私有IP包接收处理流程与发送流程相反,首先对数据包进行验证,通过验证的转发到内网,否则丢弃。接收流程:外网ARM主机接收到私有IP数据包,然后经FPGA计算私有IP数据包载荷(不包含末尾32字节)的摘要值,再与私有IP数据包尾部的32字节进行比较,如果相等,则将IP数据包尾部的32字节去掉,然后交给内网ARM主机进行转发,如果不相等,则直接丢弃该数据包。处理流程如图2所示。数据从外网口流向内网口时,FPGA对收到的IP数据包的有效载荷(不包含最后32字节)和密钥(从USBKEY读取)进行哈希运算,将得到的32字节与原数据包尾部的32字节进行比较。若相同,则剥离末尾32字节数据,将包头数据包长度字段值减小32,然后转发到内网,否则直接丢弃该数据包。处理过程如图3所示。
图3 私有IP包接收处理流程
IP数据包摘要计算方法一般采用MD5、SHA或者SHA1等算法。为了防止恶意欺骗,可采用共享密钥的方式,对附加的摘要值进行AES加密,并通过不定时更新共享密钥的方式,防止恶意欺骗,从而实现安全网关之间的双向认证。
3.4FPGA驱动开发
FPGA在隔离网关中的作用是进行数据包的摆渡、签名和验证,在必要的时候,还需要对IP数据包进行分片。
FPGA对IP数据包的分片处理。在进行分片后,需要进行填充处理,对每个IP数据包填充的字节数为:x=8-length%4,length表示原IP数据包的长度值。因此,每个IP数据包的后8字节如表2所示。
表2 自定义IP数据包格式
利用插入到数据部分的最后2字节作为指示符。数据包填充的后5字节中,前3字节固定为0。第4字节为x,表示本IP分片附加的字节数,第5字节为N,表示分片序号。*表示可能的有效数据或填充数据0。
FPGA对IP数据包的合并处理。在接收方,提取x,提取N,根据N修正该分片的偏移值字段,修正规则为:offset=offset-8*N。然后,根据x的值,去除包尾部的x字节的补位字节。将各分片合并为原始IP数据包,然后提取签名信息进行认证处理。
3.5客户端程序设计
由于VPN通道需要穿过多个网络,因此,选择ESP工作模式的VPN实现客户端与服务器端的连接。VPN客户端是在OpenSwan开源软件的基础上,对其进行修改后,移植到嵌入式Linux系统中。系统启动之后,自动运行客户端程序与服务器建立VPN连接,并通过预置的用户名、密码进行验证,通过验证后即可建立IpsecVPN连接。
3.6客户端配置
客户端需要配置内外网络接口的IP地址、掩码,路由,还需要配置FPGA虚拟网络接口的IP地址,并启用转发功能,需要注意的是,在客户端的外网口,不能配置默认路由,否则数据包不会经Ipsec通道发送。
4 服务器程序设计
4.1VPN服务器和客户端设计
VPN服务器将OpenSwan编译为.ko模块文件,然后进行调用。同时利用Sqlite数据库对用户名和密码进行存储,实现对安全网关的验证。
在IPSEC VPN通道建立期间,对每一个客户端建立一个计时器和计数器,若超过一定的时间,还没有建立连接,则断开客户端连接,重新启动连接建立过程。当一个客户端尝试一定的次数还没有成功建立连接,则服务器禁止该用户一段时间,可提高服务器资源的利用率,在一定程度上防止对服务器的内存耗尽型攻击,同时可防止对用户名密码的暴力猜解。
在接受客户端的连接后,系统为每一个客户端建立一个专门的进程进行数据转发,避免了不同进程之间的数据干扰。
4.2Sqlite数据库的移植和安装
服务器采用Sqlite 3.08数据库保存用户名和密码,在客户端连接VPN服务器的时候进行接入权限的认证。
在数据库中,用户名和密码以密文的形式保存,进行用户名和密码的修改时,需要在服务器上运行中间件,以增强系统安全性。
4.3服务器端配置
服务器端需要配置的参数包括内外网口的IP地址、掩码和路由表,然后启动VPN服务器程序。为了便于服务器的迁移,可采用动态域名的方式。服务器启动后,自动运行动态域名服务,客户端设置动态域名服务器,在进行连接前,客户端通过动态域名解析得到服务器的真实IP地址,然后进行连接,可避免服务器IP地址变化带来的IP地址变化问题。
5 系统运行情况
系统基本配置信息:ARM主机硬件内核采用S3C6410(主频533MHz,内存1GB),FPGA采用Altera Cyclone EP1C12Q24017N,计算机采用window XP操作系统,千兆网卡。通过系统测试,在局域网环境下,可承载IP视频电话,清晰度很高。在进行文件传输的时候,同时支持TCP和UDP方式,端到端系统的吞吐率可达1M字节每秒。图4为系统客户端硬件图。由图5可见,在服务器的外网口(eth0)利用tcpdump工具抓取到的数据为经过Ipsec隧道的密文数据,在服务器的内网口(eth1)抓取到的数据为明文数据。图6为IPSEC VPN隧道建立过程的协商信息,图7为系统吞吐量测试截图信息。
6 结 语
本系统基于嵌入式系统,设计并实现了安全隔离网关系统。通过测试,本系统具有较高的吞吐量,能支持语音、视频等通信业务,能够实现网络隔离,具有较高的安全性。由于安全隔离网关同时可支持多个终端,因此需要提供更高速的数据流,以支持实时视频通信、高速数据下载等,因此,在后续的工作中,可从以下三个方面进行改进:一是采用Cortex-
图4 安全网关硬件图
图5 在VPN服务器内外网口抓包信息
图6 IPSEC VPN隧道建立过程
A8处理器等更高速的ARM处理器,千兆网络接口和高性能FPGA对系统硬件进行升级,提高系统处理能力,二是设计更安全的密钥交换机制,防止共享密钥泄露的问题,三是采用低功耗技术进行便携化改进,以适应特殊应用场合,四是对FPGA程序进行升级,使其能处理IPv6协议的数据。
图7 系统吞吐量测试图
[1] Li Xiao-Nan,Dai Zi-Bin,Wu Zai-He,etc.,Design of security transmission system for the internet,International Conference on Information Management,Innovation Management&Industrial Engineering,2012,526-529.
[2] LISuo-Lei,SU Lie-Hua,LIHeng-Xun,Design and Implement of Secure Access Gateway of the Internet of Things based on FPGA,Netinfo Security,2013.
[3] Qi Zhang,Analysis of network security isolation and information exchange technology,Network Security Technology &Application,2014.
[4] 杨富友、骆德渊,基于ARM架构的嵌入式VPN平台设计[J].单片机与嵌入式系统应用,2005(10):48-50.
[5] 刘春艳,基于IPSec的VPN网关设计与实现[J].网络安全技术与应用,2013,(11):59-60.
[6] 葛学峰,时斌,朱晓舒等.一种基于CPLD高速大容量双端口RAM电路系统的设计[J].南京师范大学学报(工程技术版),2011(3):68-72.
[7] 关杰,王健.基于FPGA与ARM协同工作的网络数据采集系统[J].桂林电子科技大学学报,2014(8):315-318.
Design and Implementation of an Enhanced VPN Secure Isolation Gateway
SUNWei-feng,ZHANG Lin,LIN Shao-feng,YANG Yan,TAO Bo
(1.Information Security Dep.,Xi'an Communications Institute of PLA,Xi'an,710106,China;2.Chinese people's Liberation Army 71521,Xinxiang 453002,China)
An enhanced VPN gateway is proposed by employing the architecture of dual ARMhosts+ FPGA isolator in this paper.The ARMhosts routed and forwarded packets.The FPGA isolator ferried packets between ARMhosts,authenticated the input packets and signed the output packets,thus the non-confidential packetswas isolated.The private protocol is used to build themutual authentication between VPN gateways,so the security performance of the system is improved by setting up ESP-VPN connection between VPN Gateway and boundary server,the system can transfer sensible data securely over non-confidential network areas.
Network Security;Secure Gateway;Network Isolation;VPN;ARM
TP393
:A
:1673-5692(2015)06-628-05
孙伟峰(1978—),男,陕西临潼人,讲师,主要研究方向为网络安全;
E-mail:20624307@qq.com
张 琳(1979—),女,陕西西安人,讲师,主要研究方向为网络安全;
林少锋(1978—),男,福建漳州人,讲师,主要研究方向为网络安全;
杨 燕(1977—),女,山东曹县人,工程师,主要研究方向为计算机应用;
陶 波(1979—),男,上海人,讲师,主要研究方向为软件应用。
10.3969/j.issn.1673-5692.2015.06.012
2015-09-06
2015-11-20