目录
对于任何密码系统的安全性来说,密钥管理都是至关重要的。
密钥管理是安全的密码算法的前置条件,如果没有安全的过程来处理密钥,那么使用密码技术就没有任何意义。
密钥管理是什么?
密钥管理是密码机制和真实系统安全性之间的接口,因此必须根据特定应用或组织的需要进行定制。
但注意,不同的体系需要不同的解决方案,没有一种绝对正确的管理密钥的方法。
下文关注:
- 对称密钥
- 公钥对中的私钥(既解密私钥或签名密钥)
密钥管理的流程
密钥管理指" 密码学密钥的安全管理 ",这是一个宽泛的定义,因为密钥管理涉及范围很广(可能涉及很多信息安全问题,例如物理安全、访问控制、网络安全、安全策略、风险管理和灾难恢复),流程包括:
- 技术控制
- 可能需要特殊的硬件设备来存储密码学密钥;
- 可能需要特殊的密码协议来建立密钥;
- 过程控制
- 指策略、实践和流程;
- 环境控制
- 根据实际环境进行调整;
- 人为元素
- 密钥管理最终通常涉及人来做事;
密钥管理的两个基本需求
这个两个密钥管理的基本需求,适用于密钥生存周期的各个阶段:
- 密钥的保密性 ;
- 在密钥的整个生存周期中,秘密密钥必须对所有各方保密,除非获得授权知道它们;
- 如使用弱密码生成机制,容易被攻击者确定关于密钥信息;
- 在传输时容易受到攻击,因此,必须使用安全密钥分发机制;
- 密钥被存储在设备上时,可能是他们最脆弱的时候;因此存储机制必须足够强大,以抵御能够访问其设备的攻击者;
- 如果密钥没有被正确销毁,那么它可能被恢复;
- 密钥目的 保证;
- 密钥关联的实体信息(在对称密码中,可能有多个实体;在公钥密码,每个密钥通常只与一个实体关联);
- 使用密钥的算法;
- 密钥使用限制;(例如,某个对称密钥只能用于创建和验证MAC,或者某个签名密钥只能用于对某个交易额的事务进行数字签名。)
- 数据完整性;
- 将上述信息链接到密钥本身(作绑定),否则就不能依赖于它;
- 在某些应用中,我们需要一个更强的要求,即对目的的保证可以向第三方证明 (provable to a third party),这可能是数字签名方案的验证密钥的情况。
密钥的生存周期
密钥管理范围的另一种视角是通过考虑密钥生存周期(Key Lifecycle),它标识了在整个生存期中密钥相关的各种进程。如下图:

密钥的生存期
密钥的预期生存期(Cryptoperiod) 指的是密钥只能在指定的时间内使用,在此期间内,密钥是被认为可用的(Live) 。一旦超过这个生存周期,密钥将被视为过期(Expire) ,不应该被使用。此时,它可能需要 存档(Archieve) 或 销毁(Destroy) 。
给密钥设置有限的生存期的原因:
- 降低密钥泄露的风险;
- 减少密钥管理的失败;(例如,强制每年更换密钥,将确保那些离职人员还保留了密钥,他们在下一年将无法使用)
- 降低未来受攻击的风险;
- 强制实施管理周期;(比如,对提供按年付费对电子资源的访问,那么一年的密钥生存周期就允许可访问密钥的人可以打开付费资源)
- 灵活性;
- 限制秘钥暴露;
密钥生成
密钥的生存周期,从密钥的生成开始。
- 直接用随机数生成的数字;
密钥长度的选择
密钥的长度取决于效率 和安全性这个两个维度的考量。
密钥派生
派生出密钥的秘密值被称为基密钥(Base Key).
对称密钥的派生方法:
-
可以使用密钥派生函数(HKDF)派生。
-
也可以基于口令派生密钥。
-
从组元生成密钥。
密钥建立
管理对称密钥最常用的技术就是密钥分级(Key Hierarchy);
分级部署密钥有两个明显的优势:
- 安全分发和存储;
- 方便可扩展的密钥变更;
三级密钥结构案例:
- 主密钥(Master Key,MK)
一般使用硬件安全模块(HSM)来存储主密钥; - 密钥加密密钥(Key Encrypting Key,KEK)
- 数据密钥(Data Key,DK),也称为会话密钥(Session Key)
密钥包装:
密钥分级中,一个密钥的传输,必须在另一个密钥的保护下。
涉及密钥派送;
建立密码学密钥的方法:
- 密钥分级
- 可伸缩的密钥分级结构
- 单交易唯一密钥
密钥存储
密钥需要得到保护,那么密钥存储在哪里呢?
最好的方法是不要再任何地方存储密码学密钥,而是在需要的时候动态生成它们。
存储方式:
- 存储在软件中
- 存储在硬件中
- 硬件安全模块,提供防篡改功能,有人视图提取密钥,就会触发防篡改电路。
- HSM, 会有一个或多个密钥始终驻留在HSM中,这个密钥称为 本地主密钥(Local Master Key,LMK)
- 其它类型的硬件
密钥备份/密钥存档/密钥恢复
todo
密钥使用
什么是密钥分离?
密钥变更
密钥变更的情况:
- 有计划的密钥变更
- 无计划的密钥变更
变更原理:
- 生成变建立一个新的密钥
- 撤销旧密钥
密钥激活:
密钥激活是指授权使用密钥的过程。
授权是基于密钥的身份信息进行实体身份认证。

密钥销毁
当密钥不在用于任何目的是,必须以安全的方式销毁它。
遇到一下情况时,需要销毁密钥:
- 当密钥过期时(密钥的生存期的自然结束)
- 当密钥被撤销时
- 在密钥存档的必要期限结束时。
采用的技术:
数据擦除,或数据清理机制。
密钥管理的实际流程实例
todo
总结
密码学原语很少因其设计的弱点而受到损害,反而常常是由于密钥管理不善而受到损害 。因此,从实践的角度来看,密钥管理是最重要的一个环节。
密钥管理这个是密码学中与用户关系最大的方面,因为它是最有可能需要在单个应用环境中进行决策和流程设计的部分。
密钥管理由策略 、流程控制 组合,最终必须落到实践。
Reference
【密码学】密钥管理:③密钥的保护、存储、备份、撤销、过期、销毁
https://blog.csdn.net/qq_39780701/article/details/141141468
NIST的《密钥管理的NIST建议》