HSM支援SSL卸載,將業務的SSL協商以及加解密處理從伺服器遷移到HSM,從而減輕伺服器的負載壓力。本文介紹什麼是SSL卸載。
什麼是SSL卸載
SSL卸載(SSL Offloading)是一種網路最佳化技術,通過將SSL/TLS加密和解密操作從應用伺服器轉移到專用裝置,後端伺服器只需處理解密後的明文請求,從而釋放CPU資源。認證和私密金鑰集中在卸載裝置上管理,無需在每個伺服器部署認證,提升了伺服器效能並簡化了認證管理,適用於網站、API服務等高流量的HTTPS服務情境,以及金融、醫學等行業需集中管控加密流量的情境。
安全性
內網安全:HSM與後端伺服器使用VPC通訊,通過內網通道保障安全。
私密金鑰的物理隔離與保護:私密金鑰始終儲存在HSM的防篡改硬體中,即使HSM被入侵,攻擊者也無法通過匯出或複製擷取私密金鑰,通過物理隔離保障安全性。
集中化密鑰管理與存取控制:通過HSM統一管理所有認證私密金鑰,避免分散儲存在多台伺服器或裝置中。HSM通過設定密碼機管理員或操作員等角色,為使用者授予不同許可權。
叢集化部署:HSM通過叢集化部署,滿足負載平衡及容災要求。
合規性
演算法合規性:密碼機滿足國家密碼法要求。
操作可審計:HSM產生詳細日誌,記錄每次私密金鑰使用的時間、操作類型等,以滿足審查要求。
典型部署方案圖
在阿里雲ECS上實現SSL卸載的典型部署方案如下圖所示。
在SSL卸載情境中,Nginx代理負責處理用戶端TLS握手,TASSL引擎作為Nginx與密碼機之間的橋樑,通過PKCS#11等標準介面將Nginx的密碼運算請求轉寄至密碼機,密碼機執行個體管理工具則用於初始化密碼機、建立密鑰等操作。
整個TLS握手的流程如下:
用戶端與Nginx建立TCP串連,發起TLS握手。
當Nginx執行TLS驗證需要使用私密金鑰時,Nginx通過TASSL引擎向HSM發送操作請求。
說明私密金鑰始終儲存在HSM中,不會被載入到Nginx伺服器的記憶體中。
HSM執行TLS驗證相關的解密、簽名操作,將結果返回給TASSL引擎。
Nginx基於HSM返回的結果,完成TLS握手。
建立加密通道,後續請求由Nginx解密為明文並轉寄至後端服務。