IPSec协商性能测试方法研究

2021-08-19 08:16张一
数字技术与应用 2021年7期
关键词:用户数网络设备脚本

张一

(中国电子科技集团公司第三十研究所,四川成都 610041)

0 引言

随着计算机网络快速发展,互联网已经成为企业用户主要的通信网络,如何保证通信信息的安全,免遭窃听和篡改,通过IPSec VPN可以实现数据的完整性和机密性保护。IPSec要求在发送数据之前先在站点网络安全设备之间建立隧道,网络安全设备在大容量并发用户数进行协商并协商成功所需要的时间,以及安全网络设备在单位时间内所能协商建立的隧道数目,即建立隧道速率(Tunnel Setup Rate),是各生产厂家用以区别自己的产品与其他同类竞争产品的一个关键衡量标准,对于一款安全网络设备来说,隧道容量和隧道建立速率尤其重要。

科技在发展,用户需求也是日新月异,产品研发技术也一直在不断的发展变化,测试技术也要同步发展,不仅要积累成熟经验,还要引入更加先进的测试技术和方法,不断研究创新,本文主要针对IPsec协议中隧道容量和隧道建立速率两个方面内容,介绍了一种性能测试方法。

1 IPSec协议基本概念[1]

IPSec(IP Security)是一个集合了多种标准的体系结构。这些标准在网络层为IPv4、IPv6[RFC4301]以及移动IPv6[RFC4877]提供数据源认证、完整性、机密性以及访问控制。它还为两个通信的实体提供一种交换密钥的方法、一个加密套件以及一种标记使用压缩的方法。

1.1 IPsec结构

IPsec的操作可分为建立阶段与数据交换阶段。建立阶段负责交换密钥材料并建立安全关联(Security Association,SA),此阶段主要通过因特网密钥交换(Internet Key Exchange,IKE)协议实现。数据交换阶段会使用不同类型的封装架构,称为认证头(Authentication Heather,AH)与封装安全负载(Encapsulating Security Payload,ESP),如图1所示。

图1 IPSec架构图Fig.1 IPSec architecture diagram

认证头协议AH是由RFC2402定义的,该协议可以提供无连接的数据源验证、数据完整性和抗重放攻击服务(通过其报文头中的序列号进行抗重放判断)。数据完整性主要是基于消息验证码MAC来实现的,通过共享密钥对整个数据报计算散列值[2]。

封装安全载荷ESP是由RFC2406定义,该协议不仅可以提供无连接的数据来源认证、数据的完整性和抗重放攻击服务,还可以对数据包和数据流进行加密,提供机密性服务[2]。

密钥交换协议IKE主要是用来实现安全协议的安全参数的协商,其中有加密及鉴别密钥、加密及鉴别算法、密钥的生存周期、通信的保护模式等,并将协商的结果保存在SA中,为后续数据交换使用[2]。

1.2 IKE协议

IKE是一种混合型协议,由RFC2409定义,使用了部分Internet安全关联和密钥管理协议(ISAKMP)、部分密钥交换协议(Oakley)和安全密钥交换机制(SKEME),基于UDP(User Datagram Protocol)500端口号用于动态验证IPSec通信双方之间协商安全服务和建立安全关联,以及生成安全密钥。

采用IKE协商安全联盟主要分为两个阶段:第一阶段通信双方协商和建立IKE协议本身使用的安全通道,建立一个IKE SA;第二阶段利用第一阶段已通过认证和安全保护的安全通道,建立一对用于数据安全传输的IPSec安全联盟。

IKE第一阶段支持两种协商模式,分别为主模式(Main Mode)和积极模式(Aggressive Mode)。

主模式主要进行三次交换,包含6条信息,其中消息1和消息2为策略协商,并交换双方的cookie和SA载荷;消息3和消息4为Diffie-Hellman交换和伪随机值nonce交换,交换后生成密钥SKEYID;消息5和消息6为协商双方交换标识载荷和散列载荷,进行身份验证,如图2所示。

图2 主模式的协商过程Fig.2 Negotiation process of main mod

积极模式只有三条消息,消息1主要为发起方策略和密钥生成信息,包括Diffie-Hellman、伪随机值nonce和五元组,消息2为回应接收方的密钥生成信息和身份验证数据,消息3发送发起方身份验证信息。积极模式安全性较低,但协商速度快,如图3所示。

IKE第二阶段可以由通信的双方中的任一方发起,主要为协商IPSec SA使用的安全参数,创建IPSec SA,使用AH或ESP来对IP数据流加密,保护通信数据内容。

2 测试设计

2.1 环境搭建

在使用LoadRunner进行并发测试之前,使用两台安全网络设备进行子网规划建立网络规则,进行密钥协商建立隧道,生成协商包,通过修改网络设备脚本,将协商包保存本地使用,通过对网络安全设备的程序做一定的修改,对协商过程中进行抗重放判断的代码进行修改,关闭抗重放功能。测试原理为通过LoadRunner模拟其中一端网络设备,按照已经生成的网络规则进行IKE协商,模拟网络设备调用已生成的协商包进行并发协商,对协商过程进行测试。

前期准备主要为协商文件和LoadRunner脚本,脚本主要分为三部分:分别为Vuser_init,Action,Data.ws三个脚本。

Vuser_init:主要为模拟用户初始化脚本;此脚本主要模拟网络设备加载协商包文件,从本地指定路径读取相应的数据文件。

Action:主要处理协商包发送、接收脚本;通过建立网络连接,模拟网络设备进行协商包发送和接收,并对接收到的协商包进行判断处理,在处理过程中根据协议测试内容设置相关事务数,并对各个所要测试的指标按照事务数进行统计处理;代码在建立网络连接创建套接字时作为一个事务开始,设置函数lr_start_action(),在断开网络连接关闭套接字作为事务结束,设置函数lr_end_action(),通过开始事务和结束事务,方便对协商速率和协商时间等指标进行统计。此处主要实现两种模式,一种为测试在大容量并发用户数进行协商并协商成功所需要的时间,另一种为测试网络设备单位时间内并发能力即建立隧道速率。

Data.ws:主要定义协商包大小,根据不同网络设备定义协商包文件属性。

图4 测试环境拓扑图Fig.4 Test environment topology diagram

2.2 测试执行

LoadRunner服务器配置网络参数与模拟发包网络设备端一致,配置LoadRunner用户数,选择相应脚本,配置场景。

2.2.1 隧道建立速率测试

测试网络设备在单位时间内所能建立的隧道数量。

(1)配置LoadRunner脚本,根据每秒启动用户数和总并发用户数设置协商结束等待时间;

(2)设置LoadRunner参数,设置每秒启动用户数和运行时间;

(3)配置网络设备,将协商过程中SA的更新周期关闭,或设置更新周期大于测试时间,防止在测试过程中出现密钥更新的情况;

(4)如果隧道发生故障,则降低每秒启动用户数和调整等待时间;

通过调整每秒启动用户数,得出不同启动用户数情况下的每秒事务数,进而得到网络设备隧道建立速率最优值。

2.2.2 隧道容量测试

本测模式实际使用场景,测试大容量用户同时向中心网络设备发起协商并协商成功所需要的时间。

测试步骤:

(1)配置LoadRunner脚本,设置每次隧道协商建立以后即关闭;

(2)设置LoadRunner参数,根据隧道建立速率设置每秒启动用户数;

(3)配置网络设备,将协商过程中SA的更新周期关闭,或设置更新周期大于测试时间,防止在测试过程中出现密钥更新的情况;

(4)如果协商失败或者隧道发生异常,可以通过增加协商建立隧道重试次数或者减少每秒启动用户数降低隧道建立速率来调整。

2.2.3 测试结果

通过调整每秒启动用户数和隧道重试次数,得到建立不同隧道容量所需要的协商时间。

3 总结

本文结合IPsec协议族的特点以及应用,通过对IPsec-IKE两个阶段协商的过程进行分析,利用性能测试工具LoadRunner模拟协商报文的构造方法,处理流程,设计了一种对IPsec协议中IKE协议进行并发性能测试的新方法,详细描述了该测试方法和步骤,这种方法的优点是测试数据和脚本以及测试环境构造快速方便,可以代替人工测试,很大程度上提高了测试效率。

猜你喜欢
用户数网络设备脚本
酒驾
一种基于C# 的网络设备自动化登录工具的研制
数据库系统shell脚本应用
快乐假期
基于VBS实现BRAS在线用户数的自动提取
2016年6月电话用户分省情况
2013年12月电话用户分省情况
基于列车监测网络设备的射频功放模块设计
基于三层交换技术架构数字化校园网络设备的配置与管理
2013年4月电话用户分省情况