首页> 中国专利> 一种基于报文模拟的非公开密码算法SSL VPN设备性能测试方法

一种基于报文模拟的非公开密码算法SSL VPN设备性能测试方法

摘要

本发明提出了一种基于报文模拟的非公开密码算法SSL VPN设备性能测试方法。对加密传输SSL协议进行改造,得到专门的协议客户端模拟与服务端完整的交互过程。从而使用商业或开源的自动化测试工具,通过加密数据报文捕获、解析、模拟、发送、回放等实现对非公开密码算法SSL VPN设备性能测试。该测试过程与真实环境中基本一致,能够完成在模拟真实的环境中对SSL VPN产品进行严格的测试、评估和验证。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-06-03

    授权

    授权

  • 2013-02-20

    实质审查的生效 IPC(主分类):H04L12/26 申请日:20120911

    实质审查的生效

  • 2013-01-02

    公开

    公开

说明书

技术领域

本发明涉及一种基于SSL(Secure Sockets Layer,安全套接层)协议的VPN(virtual private network,虚拟专用网络)接入系统,主要针对基于报文模拟的非公开密码算法SSL VPN设备性能测试,属于信息安全测试领域。 

背景技术

SSL(Secure Sockets Layer,安全套接层)协议是一种在两台设备之间提供安全通道的网络安全通信协议,它采用数据加密、身份认证、隧道传输和密钥管理等关键技术保障数据传输的安全。 

SSLVPN即指采用SSL协议来实现远程接入的一种新型VPN技术。它在公共IP网络设施上,通过数据包封装的隧道技术,并采用加密技术、认证技术和访问控制等综合安全机制,构建的安全虚拟专用网络。 

随着信息安全从只关注网络安全转变为重点关注以业务为核心的应用安全,SSL VPN已经逐渐成为远程接入解决方案的标准。它具有高细粒度的访问控制、简单易用的使用风格受到越来越多远程访问用户的青睐,在网络中得到越来越多的应用。用户新需求的日益增加促使SSL VPN系统也变得越来越复杂,比如支持不同的客户端接入模式,支持不同的客户端操作系统,支持客户端不同的认证方式等,SSLVPN复杂的部署环境使得对SSL VPN性能测试变得困难。 

在国外,ICSA实验室是第一个开始针对SSL VPN产品进行认证的,也是目前业内唯一针对SSL VPN系统的认证测试项目。ICSA实验室曾为全球数百家顶级的安全厂商的产品进行测试和认证。然而,国内对于SSL VPN产品的认证和测试工作才刚刚开始,还没有统一和公认的测试标准和认证方法。而国外ICSA实验室SSL VPN认证及测试方法又是非公开的。为此,我国必须拥有自主知识产权的SSL VPN认证及测试方法,在模拟真实世界的环境中对SSL VPN产品进行严格的测试、评估和验证。 

目前商业或开源自动化测试工具,采用基于录制回放的机制,通过录制构成单次流程,然后再通过多进程/线程回放流程的方法对一般设备进行性能测试。然而,国内部分基于SSL协议的VPN接入设备使用了国家密码管理局指定的密码算法,这是一种非公开的密码算法,只有硬件实现,并且终端软件必须通过专用密码芯片进行加 解密运算。由于加密协议自身的安全性设计,特别是服务器和客户端均采用硬件加密卡加解密时,加密数据包具有不可复制的特性,不能直接使用录制回放的机制进行性能测试。因此,商业或开源的自动化测试工具直接使用录制回放的机制来对SSL VPN设备进行性能测试是行不通的。 

发明内容

为了解决上述的问题,本发明提出了一种基于报文模拟的非公开密码算法SSL VPN设备性能测试方法。基于SSL协议的VPN接入设备使用了国家密码管理局指定的密码算法,这是一种非公开的密码算法,只有硬件实现。终端软件必须通过专用密码芯片进行加解密运算。由于加密协议自身的安全性设计,加密数据包具有不可复制的特性,不能使用商业或开源的自动化测试工具通过录制回放机制来对SSL VPN设备进行性能测试,这就需要对加密传输SSL协议进行相应改造和加密报文进行模拟工作。本发明首先对加密传输SSL协议进行改造,固定客户端Hello和服务端Hello报文在进行基于RSA、ECC或IBC的密码算法协商时的密码套件、证书信息、以及用来产生随机数的random字段,使得客户端与服务端每次协商出来的会话密钥固定。去除加密SSL记录层协议中对seq num的递增操作,使得相同的应用数据产生相同的加密报文,从而得到专门的协议客户端模拟与服务端完整的交互过程。通过加密报文捕获与解析、应用层加密报文模拟、加密报文发送与回放,实现使用商业或开源的自动化测试工具对SSL VPN设备性能测试。解决了基于硬件加密的SSL VPN设备无法使用商业或开源自动化测试工具进行性能测试的难题。 

本发明采用如下技术方案: 

一种基于报文模拟的非公开密码算法测试基于安全套接层(SSL)协议的虚拟专用网络(VPN)设备性能的方法,包括如下步骤: 

第一步,对加密传输SSL协议进行改造; 

第二步,对加密数据报文进行捕获与解析; 

第三步,对加密数据报文进行模拟; 

第四步,对加密数据报文进行发送; 

第五步,对加密数据报文进行回放; 

最后,实现对非公开密码算法SSL VPN设备性能测试。 

根据本发明的一个方面,在第一步,对加密传输SSL协议进行改造中,采用客户端Hello信令和服务端Hello信令在客户端和服务端之间进行基于RSA、ECC或 IBC的密码算法协商,确定密码套件。 

根据本发明的一个方面,在第一步,对加密传输SSL协议进行改造中,固定客户端和服务端身份验证及密钥交换过程中的证书信息。 

根据本发明的一个方面,在第一步,固定客户端Hello信令和服务端Hello信令中用来产生随机数的random字段,使得客户端与服务端每次协商出来的会话密钥固定。 

根据本发明的一个方面,在第一步,对加密传输SSL协议进行改造中,去除加密SSL记录层协议中对seq_num的递增操作,使得相同的应用数据产生相同的加密数据报文,以模拟SSL VPN连接中的大流量通信。 

根据本发明的一个方面,在第二步,对加密数据报文进行捕获与解析中,捕获客户端与SSL VPN服务器之间底层安全通讯加密数据包。 

根据本发明的一个方面,在第二步,对加密数据报文进行捕获与解析中,解析客户端与SSL VPN服务器之间底层安全通讯加密数据包。 

根据本发明的一个方面,在第三步,对加密数据报文进行模拟中,在应用层数据部分采用IP报文模拟的方法,在该IP报文中,上层协议采用ICMP协议中的ECHO Request报文进行生成,实现了测试过程的简便性、可控性、与真实环境的一致性。 

根据本发明的一个方面,在第四步,对加密数据报文进行发送中,加密报文模拟完成后,在客户端和服务端分别向对端发送加密报文,客户端和服务端分别接收处理对端发送的加密数据报文。 

根据本发明的一个方面,在第五步,对加密数据报文进行回放中,在建立加密传输SSL连接时,每条SSL连接只发送一次该阶段的报文,以实现对SSLVPN服务器最大并发SSL连接数的测试。 

根据本发明的一个方面,在第五步,对加密数据报文进行回放中,建立加密传输SSL隧道后,在应用层通信中,循环回放该阶段中的交互加密报文以模拟大流量通信,以实现对SSL VPN服务器的吞吐量测试。 

附图说明

下面结合附图及具体实施例对本发明再作进一步详细的说明。 

图1是根据本发明一个实施例的SSL握手流程; 

图2是根据本发明一个实施例的random字段固定; 

图3是根据本发明一个实施例的序列号seq_num修改; 

图4是根据本发明一个实施例的应用层数据报文模拟; 

图5是根据本发明一个实施例的加密数据报文传输流程图。 

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。 

本发明针对SSL VPN设备性能测试的应用需求,解决问题的主要技术方案是:通过对加密传输SSL协议改造,得到专门用来进行的协议客户端,模拟客户端与服务端的完整交互过程,通过对加密报文捕获与解析、应用层加密报文模拟、加密报文发送与回放等完成对SSL VPN设备性能测试。 

结合附图及实施例详细说明如下。 

1.加密传输SSL协议改造 

为了能够使用商业或开源自动化测试工具通过录制回放的机制来对SSL VPN设备进行性能测试,需要对SSL VPN协议实现进行相应改造,步骤如下: 

1)如附图1中,采用客户端Hello信令和服务端Hello信令在客户端和服务端之间进行基于RSA、ECC或IBC的密码算法协商,确定密码套件。在客户端Hello和服务端Hello消息之后是身份验证和密钥交换过程,包括服务端证书、服务端密钥交换,客户端证书、客户端密钥交换。为了使用录制回放脚本的方法对SSL VPN设备性能测试,需要固定加密套件和证书信息等。从而可以通过对SSL VPN配置信息修改,实现多种组合的加密套件的加解密性能测试,如加密套件可以选择:RSA-SM1-SHA1或SM1-SM2-SM3等。 

2)如附图2中所示:客户端Hello和服务端Hello中random字段用来产生随机数,客户端和服务器端使用Hello消息交换随机数,再使用交换的随机数、预主密钥生成会话密钥。在录制回放脚本中,为了使得客户端与服务端每次协商出来的会话密钥固定,需要将客户端与服务端生成的随机数全部设置为0。 

3)如附图3所示,seq_num序列号,每一个读写状态都分别维持一个单调递增序列号。为了使用录制回放方式对SSL VPN设备测试,必须使得相同的应用数据产生相同的加密报文,以模拟SSL VPN连接中的大流量通信。需要去掉 SSL VPN记录层协议中对seq_num的递增操作。 

2.加密数据报文捕获与解析 

捕获客户端与SSL VPN服务器之间底层安全通讯加密握手数据包,然后再捕获通过SSL VPN服务器访问应用或下载文件时底层通讯加密数据包,并解析该加密数据包。从而完成“终端用户启动客户端→完成与SSL VPN服务器握手→访问应用/下载文件→关闭安全客户端”整个通讯过程的加密报文捕获与解析。 

3.加密数据报文模拟 

为了测试过程的简便性、可控性,在应用层数据部分采用IP报文模拟的方法,如附图4所示,客户端与服务端交互完整IP报文的基本格式,在应用层数据部分也为完整的IP报文,在该IP报文中,上层协议采用ICMP协议中的ECHO Request报文进行生成。生成时,首先根据需要的报文大小申请相应的内存空间作为缓冲区,并以该缓冲区开头的28个字节作为IP协议与ICMP协议的报文头(IP协议20字节,ICMP协议8字节)进行填充,最后在缓冲区中的其他空间中填充随机内容。在分别填充IP与ICMP报文头时,注意根据图中所示的字节格式与顺序,目的地址要选择服务端可访问的内网地址,两个校验和字段先留空,待其他字段填充完之后,再根据校验和计算方法进行计算与填充。 

4.加密数据报文发送 

如附图5所示,加密报文模拟完成后,在客户端和服务端分别向对端发送该报文,客户端和SSL VPN服务器分别接收处理对端发送的加密报文。 

5.加密数据报文回放 

如附图5所示,在进行并发测试时,将通信报文划分为两个阶段:第一阶段,在建立加密SSL连接时,每条SSL连接只发送一次该阶段的报文,实现对SSL VPN服务器最大并发SSL连接数的测试。第二阶段,建立加密传输SSL隧道后,在应用层通信中,循环回放该阶段中的交互加密报文以模拟大流量通信,实现对SSL VPN服务器的吞吐量测试。 

本发明提出了一种基于报文模拟的非公开密码算法SSL VPN设备性能测试方法,优点在于: 

1)本发明通过修改SSL VPN的握手协议、即固定加密套件与证书、固定产生随 机数的random字段、去除加密SSL记录层协议中对seq_num的递增操作,在不改变加密传输SSL协议性能的基础上,完整的模拟了客户端与服务端的SSL握手过程。 

2)本发明通过加密数据报文捕获与解析、加密数据报文模拟、加密报文发送,完整的模拟了客户端与服务器端通讯的过程,在客户端使用预先生成的加解密报文,在SSL VPN服务器端仍然采用硬件PCI加密卡,保证了测试环境与真实环境一致性。 

3)如附图5所示,在加密数据报文回放阶段,在建立加密传输SSL连接时,每条SSL连接只发送一次该阶段的报文,实现了对SSL VPN服务器最大并发SSL连接数的测试。建立加密传输SSL隧道后,在应用层通信中,循环回放该阶段中的交互加密报文以模拟大流量通信,实现了对SSL VPN服务器的吞吐量测试。该测试过程与真实环境中基本一致,能够完成在模拟真实的环境中对SSL VPN产品进行严格的测试、评估和验证。 

根据本发明的一个方面,基于报文模拟的非公开密码算法SSL VPN设备性能测试方法采用如下的技术方案:一种基于报文模拟的非公开密码算法SSL VPN设备性能测试方法,对加密传输SSL协议进行改造,得到专门的协议客户端模拟与服务端完整的交互过程。从而使用商业或开源的自动化测试工具,通过加密数据报文捕获、解析、模拟、发送、回放等实现对非公开密码算法SSL VPN设备性能测试。 

根据本发明的一个方面,固定客户端Hello和服务端Hello在进行基于RSA、ECC或IBC的密码算法协商时的密码套件。 

根据本发明的一个方面,固定客户端和服务端身份验证及密钥交换过程中的证书信息。 

根据本发明的一个方面,固定客户端Hello和服务端Hello中用来产生随机数的random字段,使得客户端与服务端每次协商出来的会话密钥固定。 

根据本发明的一个方面,去除加密SSL记录层协议中对seq_num的递增操作,使得相同的应用数据产生相同的加密数据报文,以模拟SSL VPN连接中的大流量通信。 

根据本发明的一个方面,捕获客户端与SSL VPN服务器之间底层安全通讯加密数据包。 

根据本发明的一个方面,解析客户端与SSL VPN服务器之间底层安全通讯加密数据包。 

根据本发明的一个方面,在应用层数据部分采用IP报文模拟的方法,在该IP报文中,上层协议采用ICMP协议中的ECHO Request报文进行生成,实现了测试过程的简便性、可控性、与真实环境的一致性。 

根据本发明的一个方面,加密报文模拟完成后,在客户端和服务端分别向对端发送加密报文,客户端和服务端分别接收处理对端发送的加密数据报文。 

根据本发明的一个方面,在建立加密传输SSL连接时,每条SSL连接只发送一次该阶段的报文,以实现对SSL VPN服务器最大并发SSL连接数的测试。 

根据本发明的一个方面,建立加密传输SSL隧道后,在应用层通信中,循环回放该阶段中的交互加密报文以模拟大流量通信,以实现对SSL VPN服务器的吞吐量测试。 

虽然已在具体实施方案中描述了本发明的实施方案及其各种功能组件,但是应当理解,可以用硬件、软件、固件、中间件或它们的组合来实现本发明的实施方案,并且本发明的实施方案可以用在多种系统、子系统、组件或其子组件中。当用软件或固件来实现时,本发明的单元是用于执行必要任务的指令/代码段。程序或代码段可被存储在机器可读介质(例如,处理器可读介质或计算机程序产品)中,或者在传输介质或通信链路中,通过包含在载波或由载波调制的信号中的计算机数据信号来传输。机器可读介质可以包括可存储或传输机器(例如,处理器、计算机等)可读并可执行形式的信息的任何介质。机器可读介质的例子包括电子线路、半导体存储器件、ROM、闪存、可擦除可编程ROM(EPROM)、软盘、压缩盘(CD-ROM)、光盘、硬盘、光纤介质、射频(RF)链路等。计算机数据信号可以包括可在传输介质上传播的任何信号,所述传输介质例如是电子网络信道、光纤、空气、电磁介质、射频(RF)链路、条形码等。代码段可以经由因特网、企业内部网等网络来下载。 

虽然本发明已经详细的示出并描述了一个相关且特定的实施范例参考,但本领域的技术人员应该能够理解,在不背离本发明的精神和范围内可以在形式上和细节上作出各种改变。这些改变都将落入本发明的权利要求所要求保护的范围。 

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号