密码学:密钥管理
密钥管理是密码系统不可缺少的组成部分,也是密码系统中最重要、最困难的部分。出发点是在一种安全策略指导下的密钥产生、存储、分配、删除、归档和应用方案。
目的:维持系统各实体之间的密钥关系,抗击各种威胁:
- 密钥泄露
- 密钥和公钥身份真实性丧失
- 未授权使用
内容:产生、登记、装入、存储和保护、分配和密钥协定、使用控制、备份恢复、更新、撤销和销毁。
密钥类型
- 会话密钥:两个终端在一次通信中使用的密钥。用于加密文件时叫文件密钥,加密数据时叫数据加密密钥。
- 密钥加密密钥:用于对会话密钥或文件密钥进行加密时采用的密钥。又称辅助(二级)密钥或密钥传送密钥。
- 主机主密钥:对密钥加密密钥加密的密钥,存于主机处理器。
- 基本密钥:也叫初始密钥、用户密钥。由用户指定或系统分配给用户的,可以在较长时间内由一对用户专用的密钥。
- 公钥体制下还有公开密钥、秘密密钥、签名密钥。
密钥的层次关系可以用下面的公式表示:
密钥产生
密钥产生不当会导致密钥空间的减小和字典式攻击。要尽可能随机等概率产生密钥。不同等级的密钥产生方式不同:
- 主机主密钥最重要,要保证完全随机
- 密钥加密密钥可以伪随机或者安全算法产生
- 会话密钥可以通过密钥加密密钥和某些算法产生
- 初始密钥可以用类似主机主密钥的方式
密钥登记与装入
密钥登记:将密钥和特定使用者绑定。
密钥装入:主机主密钥和终端主密钥装入时要有电磁屏蔽,装入后不可再读出,可间接验证。会话密钥不存在装入问题。
密钥保护
最好放在物理安全的地方。否则要使用机密性和完整性服务来保护。公钥的存储方式有:一次性发放给用户;用户存放在公共媒体上;利用公钥建立密钥环分散保存。
密钥分配和密钥协定
- 密钥分配协议:系统内一个成员选择密钥,并安全传送给别的成员的协议。
- 密钥协定协议:系统内两个或多个成员在公开信道上联合建立秘密密钥。两个成员的密钥协定也称为密钥交换,如著名的 Diffie-Hellman 密钥交换。
一个是单成员确定,一个是协商确定。
主密钥的分配:将密钥切分成多部分,通过多种方式传输。
密钥分配体制
- 集中式:中心服务器负责密钥的分发,密钥的存储量和用户量差不多。代表:Kerberos 协议。
- 分布式:用户协商密钥交换。例如 Diffie-Hellman 密钥交换。但没有鉴别能力,不能抵抗中间人攻击。
密钥的分配技术
- 静态分配:中心以脱线方式预分配
- 动态分配:请求-分发的在线分发技术
密钥的静态配置管理体制
- 点对点配置:单个体需要存储 个密钥,整体密钥量为
- 网状配置:用户统一和一个 KMC 交互,总密钥量为 。KMC 容易成为性能瓶颈。
- 星状配置:局部的网状配置再进一步集中到一个 KMC,配置局部 KMC,是密钥的层次管理方案。
公钥分配方案
首先是著名的 Diffie-Hellman 密钥交换,可被中间人攻击。利用离散对数的复杂度保证密钥不被获取,通过原根和选定随机数进行密钥协定,但中间人可以截获并伪造双方密钥进行攻击。
STS 协议
假设用户有签名/验证算法 sig/ver,可信中心的签名/验证为 sig_TA/ver_TA,用户有证书 (ID(u), ver_u, sig_TA(ID(u), ver_u)):
- 用户 U 随机选 ,计算 发给 V
- 用户 V 随机选 ,计算 ,,发送 给 U;同时计算
- 用户 U 计算 ,用
ver_v验证 ,用ver_TA验证 ,计算 ,把 发给 V - V 验证
ver_u(S_u)和ver_TA(C(U))
STS 协议在 Diffie-Hellman 基础上引入 TA 的证书校验机构,在交换密钥的同时补充身份认证,解决了中间人攻击。
MIT 协议
引入了证书,但双方不进行签名。MIT 协议在用户丢失证书时可以进行中间人攻击。
密钥使用控制
目标:标识密钥的种类,使得密钥值和合法使用范围绑定。通常标识有:密钥拥有者、密钥标识符、有效时间、特定算法、特定使用环境和用户、密钥产生注册认证的实体、完整性检查。
密钥长度
目标:保证系统安全但不能开销太大。确定长度需要考虑:保存信息的价值、信息的保密时间、攻击者的资源情况。
本文从 CSDN 迁移并重写,原文链接。