国密SSL协议之性能测试

本文涉及的产品
性能测试 PTS,5000VUM额度
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 国密SSL在实际上线和使用过程中,性能就是一个必须面对的问题。国密SSL和标准SSL相比,算一个新生事物,没有完善齐备的性能测试工具。本文针对国密SSL性能测试,描述了相关指标,并提供一些基本的方法和工具。

1 背景

国密SSL在实际上线和使用过程中,性能就是一个必须面对的问题。
国密SSL和标准SSL相比,算一个新生事物,没有完善齐备的性能测试工具。
本文针对国密SSL性能测试,描述了相关指标,并提供一些基本的方法和工具,
也做了nginx/tomcat/硬件网关的测试对比。

2 国密SSL性能指标

国密SSL性能指标主要有三个:新建速率(CPS,Connection per second)、加密吞吐(Throughput)、最大并发连接(Max Persistent Connections)

其中CPS和吞吐与性能强相关,最大并发连接和内存大小强相关。

2.1 新建速率CPS

CPS衡量的是国密SSL建立的快慢(主要涉及非对称密码处理),新建指的是以下步骤的总和:

1) 客户端与服务器/网关建立TCP;

2) 客户端与服务器/网关建立国密SSL(不使用会话重用);

3) 客户端从服务器/网关下载一个小页面(不使用HTTP的Keep-Alive),页面大小为64字节或者1K字节;

4) 客户端与服务器/网关关闭国密SSL;

5) 客户端与服务器/网关关闭TCP;

2.2 加密吞吐

加密吞吐衡量的是国密SSL对数据加解密的快慢(主要涉及对称密码处理),通常测试下载一个较大的页面,比如下载1M字节页面。

2.3 最大并发连接

最大并发连接主要看国密SSL服务器/网关能够同时保持多个在线连接,通常可以建立好连接,下载一个小页面,然后做Keep-Alive保持,不断新增加连接,直到增加会出错。

3 国密SSL性能分析

国密SSL,以算法SM2_SM4_SM3为例,主要涉及SM2、SM3、SM4的密码处理。其中新建速率与SM2性能强相关,加密吞吐则与SM3/SM4性能强相关。

另外SM2算法有其自身特点。基本上签名的速度>验签的速度,同时SM2加密速度

结合到国密SSL协议,则通常出现一个现象:

1) 单向国密SSL使用SM2算法,客户端比服务器端更消耗性能,因为客户端是SM2加密;

2) 单向标准SSL使用RSA算法,服务器端比客户端更消耗性能,因为客户端是RSA加密;

4 国密SSL性能测试方法

4.1 拓扑

image.png

图1 测试拓扑

4.2 硬件测试仪

标准SSL硬件测试仪主要有思博伦的avalanche等,目前不清楚是否支持国密SSL协议,或者支持国密SSL插件。国内硬件测试仪情况不详。

4.3 LoadRunner

LoadRunner是软件测试性能的方法之一。好消息是LoadRunner支持第三方插件,通过第三方插件就能够支持国密SSL协议。

4.4 gmab

Apache ab也可以支持标准SSL协议性能测试,但不支持国密。但ab是有源码的,可以自行增加国密SSL协议支持。

www.gmssl.cn提供一个国密ab的实现,软件名称叫gmab。下载参见:

https://www.gmssl.cn/gmssl/index.jsp?go=down

4.5 gmkb

前面分析到,对于国密SSL而言,客户端的性能消耗要大于服务器/网关端的性能消耗,因此使用LoadRunner和gmab的话,需要多台高性能客户端压力机。

www.gmssl.cn提供一个国密SSL性能测试的“黑”科技软件gmkb,能够通过一个客户端压力机就可以简单评估出服务器/网关的国密SSL的CPS性能。下载参见:

https://www.gmssl.cn/gmssl/index.jsp?go=down

4.6 gmcb

www.gmssl.cn提供一个国密SSL性能测试加密吞吐的软件gmcb,能够通过一个或者多个客户端压力机测试出服务器/网关的国密SSL的加密吞吐性能。下载参见:

https://www.gmssl.cn/gmssl/index.jsp?go=down

5 国密SSL性能测试结果

5.1 Web服务器

通过gmab和gmcb,我们简单测试了www.gmssl.cn的nginx国密SSL性能和tomcat的国密SSL性能。测试的单向国密SSL的性能,服务器为CentoOS7,CPU为Intel(R) Core(TM) i9-9900K CPU @ 3.60GHz,内存为16G,网卡为intel万兆电口。

Nginx国密版本1.8.0,安装下载参见https://www.gmssl.cn/gmssl/index.jsp?go=nginx

国密Nginx性能如下:

新建:3600

吞吐:693MBps

并发:50w

Tomcat国密版本9.0.37,安装下载参见https://www.gmssl.cn/gmssl/index.jsp?go=tomcat

国密Tomcat性能如下:

新建:720

吞吐:240MBps(字节/秒)

并发:8192(内存实际用的很少,tomcat报错,没有继续深入)

5.2 硬件网关

作为对比,我们拿到了北京云钥网络科技有限公司(www.keyaas.com)的硬件国密网关KSG2500的性能数据,KSG2500性能给人印象深刻,毕竟是一款高端专业硬件网关。KGS2500性能:

新建:5w

吞吐:2GBps(字节/秒)

并发:300w

6 国密SSL性能测试小结

本文涉及了国密SSL性能的方方面面,并且给出了www.gmssl.cn的国密nginx和国密tomcat的实测性能数据,也对比了硬件网关KSG2500的性能数据。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
11天前
|
算法 小程序 网络安全
阿里云WoSign SSL证书,RSA和国密有什么区别?_沃通SSL技术文档
阿里云WoSign品牌SSL证书为用户提供国密合规SM2算法SSL证书、全球信任RSA算法SSL证书,全球信任、国密合规,能够满足阿里云平台用户不同的SSL证书应用需求。那么阿里云WoSign SSL证书分别提供的RSA算法和国密算法,有什么区别呢?
561 6
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
192 7
Jmeter实现WebSocket协议的接口测试方法
|
28天前
|
JavaScript 安全 Java
谈谈UDP、HTTP、SSL、TLS协议在java中的实际应用
下面我将详细介绍UDP、HTTP、SSL、TLS协议及其工作原理,并提供Java代码示例(由于Deno是一个基于Node.js的运行时,Java代码无法直接在Deno中运行,但可以通过理解Java示例来类比Deno中的实现)。
53 1
|
26天前
|
缓存 网络协议 Linux
Python渗透测试之ARP毒化和协议应用
Python渗透测试之ARP毒化和协议应用
25 0
|
2月前
|
消息中间件 安全 Kafka
Kafka支持SSL/TLS协议技术深度解析
SSL(Secure Socket Layer,安全套接层)及其继任者TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。这些协议在传输层对网络连接进行加密,确保数据在传输过程中不被窃取或篡改。
128 0
|
3月前
|
安全 网络安全 数据安全/隐私保护
|
4月前
|
安全 网络协议 网络安全
SSL(Secure Sockets Layer)是一种安全协议,用于在客户端和服务器之间建立加密的通信通道。
SSL(Secure Sockets Layer)是一种安全协议,用于在客户端和服务器之间建立加密的通信通道。
|
6月前
|
安全 网络协议 网络安全
SSL协议
SSL协议
115 8
|
6月前
|
安全 算法 应用服务中间件
SSL/TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】
SSL/TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】 【可验证】 详细描述TLS是安全传输层协议,用于在两个通信应用程序之间提供保密性和数据完整性。
2832 2
|
6月前
|
安全 网络协议 网络安全