- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
SSL VPN网关性能测试
摘要
实现网络安全的方法有很多,本文主要介绍SSL VPN的相关实现技术及测试方法,重点介绍使用IXIA公司的IXIA400T自动化测试仪表对我们自主研发的SSL VPN安全网关的性能测试。
1 引言
随着互联网在人们的生活、学习、工作中的应用越来越广泛,网络安全问题受到大家越来越多的重视,互联网面临的威胁主要来自于黑客攻击、管理欠缺、网络本身固有的缺陷、应用软件的漏洞以及后门等等。在网络中通信的双方通过不安全的媒介进行通信,必须从以下几个方面保证来保证通信的安全。
(1)秘密性:只有发送者和接收者可以理解所传递的消息的内容。
(2)身份认证:进行通信的双方——发送者和接收者——都需要确认彼此的身份,也就是确认对方真正是所宣称的那个人。
(3)消息完整性:发送者和接收者需要同时确信通信的内容在传输过程中没有被恶意或者无意更改。
实现网络安全的方法有很多,本文主要介绍SSL VPN的相关实现技术及测试方法,重点介绍使用IXIA公司的IXIA400T自动化测试仪表对我们自主研发的SSL VPN安全网关的性能测试。
2 SSL VPN实现技术
SSL VPN一般的实现方式是在企业的防火墙后面,被保护服务器(服务器群)前面放置一个SSL代理服务器。如果用户希望安全地连接到公司网络上,那么当用户在浏览器上输入一个URL后,连接将被SSL代理服务器取得,并验证该用户的身份,通过身份验证后SSL代理服务器将提供一个远程用户与各种不同的应用服务器之间连接。SSL VPN的主要实现技术有代理、应用转换、端口转发和网络扩展。
(1)代理Proxying:SSL VPN网关将来自远端浏览器的页面请求(采用HTTPS协议)转发给Web服务器,然后将服务器的响应回传给终端用户。
(2)应用转换Application Translation:对于非Web页面的文件访问,往往借助于应用转换。SSL VPN网关与企业网内部的微软CIFS或FTP服务器通信,将这些服务器对客户端的响应转化为HTTPS协议和HTML格式发往客户端。
(3)端口转发Port Forwarding:端口转发用于端口定义明确的应用。它需要在终端系统上运行一个非常小的Java或ActiveX程序作为端口转发器,监听某个端口上的连接。当数据包进入这个端口时,它们通过SSL连接中的隧道被传送到SSL VPN网关,SSL VPN网关解开封装的数据包,将它们转发给目的应用服务器。使用端口转发器,需要终端用户指向他希望运行的本地应用程序,而不必指向真正的应用服务器。
(4)网络扩展Network Extension:SSL VPN网关还可以帮助企业实现网络扩展。它将终端用户连接到企业网,并根据网络层信息(如目的IP地址和端口号)进行接入控制。虽然牺牲了高级别的安全性,却也换来了复杂拓扑结构下网络管理简单的好处。
3 SSL VPN性能测试
全面考察SSL VPN安全网关需要从产品的功能、易用性、稳定性、安全性以及性能5大方面来进行测试。在对我们的SSL VPN安全网关实施性能测试时,我们选择了IXIA公司的IXIA400T自动化测试仪表,IXIA测试仪表具有综合性强、功能多的特点,接口模块可以根据需要进行自主选择,在SSL VPN安全网关的性能测试中我们选用了应用层负载模块ALM1000T8,ALM1000T8是运行四到七层应用软件的专用接口模块,针对状态基的运行做了优化处理,具有很高的测试性能。在ALM接口模块上,有8个高密度排列的RISC处理器,每个处理器具有独立的操作系统、存储器和网络接口。这种独特的结构,有利于高效灵活地测试负载均衡设备、防火墙、服务器、邮件网关、入侵检测、内容交换机等设备及其网络的安全性能。软件模块选用IxLoad,IxLoad支持丰富的SSL协议功能,运行IxLoad模拟基于Web的业务流,对SSL VPN安全网关的性能进行测试。
根据目前业界比较认可的SSL VPN性能指标并结合自身产品的特点,我们选取5项性能指标进行测试,即新建连接速率、最大并发连接数、加密吞吐量、网络延迟和双机切换效率。在测试中每个项目至少进行3次测试,计算出平均值作为最后结果。
3.1 性能测试拓扑图
图1为性能测试环境示意1,图2为性能测试环境示意2。
图1 性能测试环境1
图2 性能测试环境2
3.2性能指标及实战
(1)新建连接速率
●指标含义:新建连接速率是指SSL VPN每秒可以新建立的用户连接数目,也称会话速率,即每秒可以建立和终止的SSL会话数目(会话可以理解为客户端到网关的一次连接,即浏览器的一次Web页面访问)。该参数主要考察被测设备单位时间内的处理会话能力。
●测试过程:IXIA400T模拟客户端和服务器,将被测设备设置为中间设备。模拟的客户端和服务器建立TCP连接,在此连接上进行SSL会话协商,建立SSL会话后,客户端通过被测设备从服务器下载1024bit/s的页面(注意页面大小可以灵活设置,但必须以不会因为数据量过大而造成系统I/O过载为前提条件,因此应该尽量采用小页面),当成功接收完数据之后,关闭SSL会话,关闭TCP连接。此会话过程包含了SSL协议中的非对称加密过程(协商)和对称加密过程(传输数据)。我们取被测设备负载稳定期的平均新建用户率作为测试结果。
●影响因素:影响此项值的因素有很多,例如是否有SSL硬件加速卡,是否控制速率上限以确保CPU资源有盈余、加密算法实现所用的语言、算法模块调度等。
●实战:Ixload为我们提供了很多有用的测试案例,我们可以从中选择比较适合自己的,再根据自身需要调整相应的参数。我们可以根据需要采用接口模块的多个端口进行组合,以提高模拟客户端和服务器的性能。
a.测试时使用512bit/s或者1024bit/s的证书,请注意证书的长度将直接影响SSL的加解密速度,对产品性能的测试结果会产生较大的影响。
b.加密算法:RC4-MD5。
c.负载模式:Connections/Second。
d.协议:Http1.0。
e.页面大小:1024bit/s(或者64bit/s)。
f.客户端网络:模拟地址范围。
g.服务器网络:模拟地址。
h.负载压力:由于IxLoad自动化测试工具具有自动加压、自动保持连接等特点,即它会自动调整负载压力值测得被测设备的性能,同时不用配置服务器的响应Latency或客户端的Think Time,这些特点使得性能测试简单、有效。在测试中我们采用逐步加压的方式进行,在20s内将压力从0上升到最高值,并在最高值维持180s,然后再用20s的时间将压力减为0。
i.数据获取:在维持180s的中间60s,我们计算该时间段内的平均速率,作为新建连接速率。
●结果分析
a.在客户端状态中观察到新建连接速率值达不到预期值,并且在想办法提高硬件配置的情况下也始终维持在一个较小的恒定值。这种情况有可能是软件设计者出于对产品提供稳定性能的考量,对用户数目做出了限制,只能达到某个设定值。
b.在客户端状态中观察到HTTP、TCP的速率始终非常低。这种情况下先检查CPU和MEM的消耗情况,如果是系统本身的进程消耗较大,则有可能是系统硬件配置造成的瓶颈,需要加大CPU和MEM;如果是产品本身的软件进程造成的消耗过大,则需要软件设计者改进设计,提高代码质量,以提高连接速率和连接质量,以确保更多的用户能够同时使用高质量的SSL VPN服务。
c.在客户端状态中观察到HTTP、TCP的速率在达到一个较高值后突然急剧下降至0。出现这种情况首先考虑系统是否崩溃;如果不是则查看系统的CPU和MEM的消耗是否过大;还有一种情况就是由于数据量大,连接跟踪表被写满,网络通道被堵死,导致数据包被大量丢弃。
(2)最大并发连接数
●指标含义:最大并发连接数是指同时通过SSL VPN来访问内部网的最大连接数目。该参数主要考察被测设备的会话处理容量,即在同一时间所能保持的会话连接数目,这个数值通常是几百到几千,不过同时在线的用户数越多,每位用户所感受到的速度就会越慢。
●测试过程:IXIA400T模拟客户端,与被测设备建立SSL会话。在此惟一的会话上,发送多条通过被测设备从IXIA400T模拟的服务器下载1024bit/s大小页面的指令。我们取负载稳定期的平均并发连接数作为测试结果。
●影响因素:影响此项值最关键因素是会话队列存储空间的大小,即内存的大小,还有是否开辟缓冲空间做预处理(即保持连接状态,但是其请求暂时不作处理),其他影响因素有下载的页面大小,SSL VPN使用的证书位数等。
●实战
a.测试时使用512bit/s或者1024bit/s的证书。
b.加密算法:RC4-MD5。
c.负载模式:Concurrent Connection。
d.协议:Http1.0。
e.页面大小:1024bit/s(或者64bit/s)。
f.客户端网络:模拟地址范围。
g.服务器网络:模拟地址。
h.负载压力:在测试中我们采用逐步加压的方式进行,在20s内将压力从0上升到最高值,并在最高值维持180s,然后再用20s的时间将压力减为0。
i.数据获取:从测试结果中找到Concurrent Connection的最大稳定值,作为最大并发连接数。
●结果分析
a.重复同样的测试3次,发现客户端成功请求的次数在不断降低。这种情况需要检查连接跟踪表是否已经被写满,造成网络堵塞;或者内存和CPU消耗多大,造成产品性能下降。
b.尝试增加内存数量,修改连接跟踪表的最大限制值,检测最大并发连接数是否会有相应的增加。
(3)加密吞吐量
●指标含义:此项指标主要评估SSL VPN在应用层的吞吐量,此项值越大,表示该设备在单位时间内的数据转发能力越强。
●测试过程:IXIA400T模拟客户端行为,首先与被测设备建立SSL会话。在此惟一的会话上,从IXIA400T模拟的服务器上下载1024kbit/s的页面,我们取IXIA400T模拟的服务器端发送数据的平均速率作为测试结果。
●影响因素:影响此项值的一个很大因素是对称加密算法实现的效率,如果实际传输的数据仅仅是HTTP的大数据报内容,那么吞吐量应该能接近100%,由于有加密运算,所以实际吞吐量值会受到很大的影响。
●实战:
a.测试时使用512bit/s或者1024bit/s的证书,请注意证书的长度将直接影响SSL的加解密速度,对产品性能的测试结果会产生较大的影响。
b.加密算法:RC4-MD5。
c.负载模式:Throughput(MBps),请注意这里的单位为MBps,换算成Mbps需要将测试结果乘以8。
d.协议:Http1.0。
e.页面大小:1024kbit/s。
f.客户端网络:模拟地址范围。
g.服务器网络:模拟地址。
h.负载压力:在测试中我们采用逐步加压的方式进行,在20s内将压力从0上升到最高值,并在最高值维持180s,然后再用20s的时间将压力减为0。
i.数据获取:从测试结果的Excel中找到在维持180s阶段的中间60s双向的数据量平均值之和,将此值作为设备的实际吞吐量。
●结果分析
a.尝试使用不同的加密算法进行测试,检测不同的加密算法对吞吐量的影响力。
b.测试过程中检查CPU的使用情况,检测是否因为SSL加解密,对CPU消耗过大(CPU使用率超过70%以上)造成产品性能受到很大影响。
(4)网络延迟
指标含义:网络延迟是指从用户向SSL VPN发起访问请求开始,到成功从后台服务器拿到第一位数据的时间间隔。由于在不同负载下其数值会发生变化,所以我们取最大新建连接速率测试中的平均网络延迟作为测试结果。
(5)双机切换效率
指标含义:双机切换效率是指当主SSL VPN设备发生故障到从SSL VPN设备发现主设备故障并接管其服务的时间间隔。在主从SSL VPN设备上设置定时工作表——可导致设备切换工作状态,计算切换时间的平均值作为测试结果。
SSL VPN产品的性能测试指标并不仅仅只有以上五种,测试人员可以根据实际需要对测试项目进行适当的调整,以协助软件开发人员找出系统瓶颈,进一步提升产品性能。
4 结束语
SSL VPN产品作为一个新技术产品,其发展和成熟仍在不断进行之中,也许在不久的将来也会形成如同IPSec一般成熟的安全技术,我们在SSL VPN产品方面的测试技术也必将与时俱进,发展得更加成熟和完善。
作者:张虹 来源:电信网技术
上一篇:帧中继测试技术
下一篇:仪表放大器的传感器信号采集电路设计