密钥为什么要分层
密钥体系的通用做法是分层:上层密钥保护下层密钥,下层密钥数量多、更换频繁。典型层次是根密钥保护签发密钥(中间密钥),签发密钥再派生或签出数据密钥与会话密钥。这样设计的好处很直接:日常高频轮换只动最下层,根信任保持稳定;而根密钥使用频率极低、保护强度最高,不必跟着业务节奏转动。CA 体系的根到中间到叶证书,与 KMS 里的主密钥到数据密钥,是同一种思路的两个实例。
基本信息
| 典型层次 | 根密钥 -> 主密钥/中间密钥 -> 数据密钥与会话密钥 |
|---|---|
| 设计原则 | 越上层使用越少、保护越强、寿命越长 |
| PKI 实例 | 根 CA -> 中间 CA -> 叶证书密钥 |
| 数据侧实例 | KMS 主密钥 -> 数据密钥(DEK)-> 每条数据独立密钥 |
| 配套要求 | 下层密钥的生成与使用受上层策略约束 |
| 常见退化 | 层次画出来了,但权限与流程仍是平铺的 |
典型使用场景
- 新建设计:规划根钥匙是否离线、签发层放在哪、数据层如何轮换。
- 合规评审:证明根密钥的使用频率与保护措施符合要求。
- 轮换计划:按层次安排哪些密钥定期换、哪些长期不动。
- 事故定级:判断受影响的是根、中间还是数据层,决定处置范围。
- KMS 落地:用主密钥封装数据密钥,避免把大量数据绑在一把密钥上。
层次结构示意
层次结构示意
Root Key(离线或 HSM 内,低频使用,寿命最长)
+-- Issuing Key / 中间密钥(签发与轮换,中频)
+-- Data Key v1 -> 加密业务数据(可定期轮换)
+-- Data Key v2 -> 新数据使用,旧数据仍由 v1 解密
# 轮换下层密钥不会影响根信任,也不会让历史数据失效
# 越级用根密钥做高频操作,是分层设计最常见的退化方式层次与保护策略
| 层级 | 使用频率 | 保护要求 |
|---|---|---|
| 根密钥 | 每年数次或更低 | 离线保存或 HSM 内,双人控制 |
| 中间/签发密钥 | 按需签发时使用 | HSM 或受控签名服务 |
| 数据密钥 | 随数据写入频繁使用 | 短期有效,由上层密钥封装存储 |
| 会话密钥 | 每次会话新建 | 内存中生成与销毁,不落盘 |
| 派生密钥 | 按用途区分 | 通过 KDF 绑定用途,避免复用 |
层次结构必须与授权模型配套:如果任何进程都能调用根密钥接口,层次就只是图纸上的分层,实际风险仍是单层。