| name | configuring-hsm-for-key-storage |
| description | 硬件安全模块(HSM)是防篡改的物理设备,在加固环境中保护密钥并执行加密操作。存储在 HSM 中的密钥永远不会离开设备边界,提供最高级别的密钥保护。 |
| domain | cybersecurity |
| subdomain | cryptography |
| tags | ["cryptography","hsm","key-management","pkcs11","hardware-security"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
配置 HSM 进行密钥存储
概述
硬件安全模块(HSM)是防篡改的物理设备,在加固环境中保护加密密钥并执行加密操作。存储在 HSM 中的密钥永远不会离开设备边界,提供最高级别的密钥保护。本技能涵盖使用 PKCS#11 标准接口配置 HSM,包括密钥生成、签名、加密,以及使用物理 HSM 和用于开发的 SoftHSM2 进行密钥管理。
目标
- 将 SoftHSM2 配置为开发用 PKCS#11 提供程序
- 通过 PKCS#11 在 HSM 内部生成和管理密钥
- 使用 HSM 驻留密钥执行加密操作(签名、验证、加密、解密)
- 实施 HSM 支持的证书颁发机构操作
- 配置密钥访问策略和用户认证
- 对接云 HSM 服务(AWS CloudHSM、Azure)
核心概念
HSM 合规级别
| FIPS 级别 | 保护方式 | 使用场景 |
|---|
| FIPS 140-2 Level 1 | 仅软件 | 开发 |
| FIPS 140-2 Level 2 | 防篡改证据、基于角色的认证 | 一般生产 |
| FIPS 140-2 Level 3 | 防篡改、基于身份的认证 | 金融、政府 |
| FIPS 140-2 Level 4 | 物理篡改响应 | 军事、机密 |
PKCS#11 架构
应用程序 --> PKCS#11 API --> HSM 提供程序 --> 硬件 HSM
|
(开发用 SoftHSM2)
PKCS#11 中的密钥对象
| 对象类型 | 描述 | 操作 |
|---|
| CKO_SECRET_KEY | 对称密钥(AES) | 加密、解密、封装 |
| CKO_PUBLIC_KEY | 公钥(RSA、EC) | 验证、加密、封装 |
| CKO_PRIVATE_KEY | 私钥(RSA、EC) | 签名、解密、解封装 |
| CKO_CERTIFICATE | X.509 证书 | 存储、检索 |
安全注意事项
- 永远不要从 HSM 中导出私钥(使用 CKA_EXTRACTABLE=False)
- 为不同应用程序使用独立的插槽/分区
- 为 CA 根密钥实施多人密钥仪式
- 为所有 HSM 操作启用审计日志
- 实施 HSM 备份和灾难恢复
- 使用强 PIN 并启用 SO(安全官)PIN
验证标准