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=down4.5 gmkb
前面分析到,對于國密SSL而言,用戶端的性能消耗要大于伺服器/網關端的性能消耗,是以使用LoadRunner和gmab的話,需要多台高性能用戶端壓力機。
www.gmssl.cn提供一個國密SSL性能測試的“黑”科技軟體gmkb,能夠通過一個用戶端壓力機就可以簡單評估出伺服器/網關的國密SSL的CPS性能。下載下傳參見:
4.6 gmcb
www.gmssl.cn提供一個國密SSL性能測試加密吞吐的軟體gmcb,能夠通過一個或者多個用戶端壓力機測試出伺服器/網關的國密SSL的加密吞吐性能。下載下傳參見:
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的性能資料。