HSM 是什么
HSM(Hardware Security Module,硬件安全模块)是在专用设备内生成并保护密钥的硬件:密钥不出设备,签名与解密都在设备内部完成,对外只返回运算结果。它适用于根 CA、代码签名、支付类密钥与合规要求较高的场景。代价是采购成本、集群与备份复杂度都会上升,因此选型前要先明确需要保护的是哪类密钥、并发量与合规条款的具体要求。
基本信息
| 形态 | 板卡、网络设备、云 HSM(云 KMS 底层通常也是 HSM) |
|---|---|
| 接口 | PKCS#11、JCE、CNG 等标准接口 |
| 价值 | 密钥不可导出、防篡改、性能与合规资质 |
| 代价 | 采购成本、集群与备份复杂度提升 |
| 备份特点 | 密钥不可导出,备份依赖设备级机制或集群复制,不能简单拷贝文件 |
典型使用场景
- 根 CA 与中间 CA 的私钥保护,要求双人控制与操作审计
- 代码签名与文档签名密钥的保护
- 支付与金融场景的密钥合规要求
- 高并发签名服务:借助硬件加速并以集群分担负载
- 开发与测试阶段用软 HSM 验证流程,生产环境再替换为硬件设备
提供者与令牌查看
提供者与令牌查看
ls /usr/lib64/pkcs11/ # 查看可用提供者
p11tool --provider /usr/lib64/pkcs11/libsofthsm2.so --list-tokens # 列出令牌
# 软 HSM(SoftHSM)仅用于开发阶段验证流程与接口
# softhsm2-util --init-token --slot 0 --label dev软 HSM 与硬件 HSM
| 维度 | 软 HSM | 硬件 HSM |
|---|---|---|
| 密钥保护 | 文件系统内,可被复制 | 设备内保存,不可导出 |
| 防篡改 | 无 | 具备物理与逻辑防护 |
| 性能 | 依赖主机 CPU | 内置加速,可集群扩展 |
| 适用阶段 | 开发与流程验证 | 生产根密钥与合规场景 |
| 成本 | 低 | 采购与运维成本较高 |
接口标准化是 HSM 的核心价值:应用通过 PKCS#11 或 JCE 调用,更换设备厂商时上层改动较小。规划时务必同时考虑集群(多台设备的一致性)与灾难恢复(设备损坏后如何继续签名),这两项常在故障发生时才被想起。