通过HSM实现SSL卸载

HSM支持SSL卸载,将业务的SSL协商以及加解密处理从服务器迁移到HSM,从而减轻服务器的负载压力。本文介绍什么是SSL卸载。

什么是SSL卸载

SSL卸载(SSL Offloading)是一种网络优化技术,通过将SSL/TLS加密和解密操作从应用服务器转移到专用设备,后端服务器只需处理解密后的明文请求,从而释放CPU资源。证书和私钥集中在卸载设备上管理,无需在每个服务器部署证书,提升了服务器性能并简化了证书管理,适用于网站、API服务等高流量的HTTPS服务场景,以及金融、医疗等行业需集中管控加密流量的场景。

安全性

  • 内网安全:HSM与后端服务器使用VPC通信,通过内网通道保障安全。

  • 私钥的物理隔离与保护:私钥始终存储在HSM的防篡改硬件中,即使HSM被入侵,攻击者也无法通过导出或复制获取私钥,通过物理隔离保障安全性。

  • 集中化密钥管理与访问控制:通过HSM统一管理所有证书私钥,避免分散存储在多台服务器或设备中。HSM通过设置密码机管理员或操作员等角色,为用户授予不同权限。

  • 集群化部署:HSM通过集群化部署,满足负载均衡及容灾要求。

合规性

  • 算法合规性:密码机满足国家密码法要求。

  • 操作可审计:HSM生成详细日志,记录每次私钥使用的时间、操作类型等,以满足审查要求。

典型部署方案图

在阿里云ECS上实现SSL卸载的典型部署方案如下图所示。

image

SSL卸载场景中,Nginx代理负责处理客户端TLS握手,TASSL引擎作为Nginx与密码机之间的桥梁,通过PKCS#11等标准接口将Nginx的密码运算请求转发至密码机,密码机实例管理工具则用于初始化密码机、创建密钥等操作。

整个TLS握手的流程如下:

  1. 客户端与Nginx建立TCP连接,发起TLS握手。

  2. Nginx执行TLS验证需要使用私钥时,Nginx通过TASSL引擎向HSM发送操作请求。

    说明

    私钥始终存储在HSM中,不会被加载到Nginx服务器的内存中。

  3. HSM执行TLS验证相关的解密、签名操作,将结果返回给TASSL引擎。

  4. Nginx基于HSM返回的结果,完成TLS握手。

  5. 建立加密通道,后续请求由Nginx解密为明文并转发至后端服务。