# Configuring Hsm For Key Storage

> 硬件安全模块（HSM）是防篡改的物理设备，在加固环境中保护密钥并执行加密操作。存储在 HSM 中的密钥永远不会离开设备边界，提供最高级别的密钥保护。

- Skill: `killvxk/configuring-hsm-for-key-storage` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add killvxk/configuring-hsm-for-key-storage`
- Raw SKILL.md: https://api.skillmd.com/api/skills/killvxk/configuring-hsm-for-key-storage/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: Apache-2.0
- Author: killvxk (https://skillmd.com/u/killvxk)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/killvxk/configuring-hsm-for-key-storage

---

# 配置 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

## 验证标准

- [ ] SoftHSM2 使用令牌和用户 PIN 初始化
- [ ] AES 密钥在 HSM 内部生成
- [ ] RSA 密钥对在 HSM 内部生成
- [ ] 加密/解密使用 HSM 驻留密钥
- [ ] 签名/验证使用 HSM 驻留密钥
- [ ] 密钥无法导出（不可提取）
- [ ] 密钥列表显示所有 HSM 存储对象

