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 拓撲
圖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的性能數據。