1 背景
國密SSL在實際上線和使用過程當中,性能就是一個必須面對的問題。 國密SSL和標準SSL相比,算一個新生事物,沒有完善齊備的性能測試工具。 本文針對國密SSL性能測試,描述了相關指標,並提供一些基本的方法和工具, 也作了nginx/tomcat/硬件網關的測試對比。
2 國密SSL性能指標
國密SSL性能指標主要有三個:新建速率(CPS,Connection per second)、加密吞吐(Throughput)、最大併發鏈接(Max Persistent Connections)nginx
其中CPS和吞吐與性能強相關,最大併發鏈接和內存大小強相關。算法
2.1 新建速率CPS
CPS衡量的是國密SSL創建的快慢(主要涉及非對稱密碼處理),新建指的是如下步驟的總和:tomcat
1) 客戶端與服務器/網關創建TCP;服務器
2) 客戶端與服務器/網關創建國密SSL(不使用會話重用);網絡
3) 客戶端從服務器/網關下載一個小頁面(不使用HTTP的Keep-Alive),頁面大小爲64字節或者1K字節;併發
4) 客戶端與服務器/網關關閉國密SSL;jsp
5) 客戶端與服務器/網關關閉TCP;工具
2.2 加密吞吐
加密吞吐衡量的是國密SSL對數據加解密的快慢(主要涉及對稱密碼處理),一般測試下載一個較大的頁面,好比下載1M字節頁面。性能
2.3 最大併發鏈接
最大併發鏈接主要看國密SSL服務器/網關可以同時保持多個在線鏈接,一般能夠創建好鏈接,下載一個小頁面,而後作Keep-Alive保持,不斷新增長鏈接,直到增長會出錯。測試
3 國密SSL性能分析
國密SSL,以算法SM2_SM4_SM3爲例,主要涉及SM二、SM三、SM4的密碼處理。其中新建速率與SM2性能強相關,加密吞吐則與SM3/SM4性能強相關。
另外SM2算法有其自身特色。基本上簽名的速度>驗籤的速度,同時SM2加密速度<SM2解密速度;這個特色正好和RSA反過來,RSA是簽名速度遠小於驗籤速度,同時RSA公鑰加密的速度遠遠大於私鑰解密的速度。
結合到國密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的性能數據。