- 由于密码算法是公开的,网络的安全性就完全基于密钥的安全保护上。因此在密码学中出现了一个重要的分支——密钥管理。
- 密钥管理包括:密钥的产生、分配、注入、验证和使用。本节只讨论 密钥的分配。
- 密钥分配是密钥管理中最大的问题。
- 密钥必须通过最安全的通路进行 分配。
- 网外分配方式:派非常可靠的信使携带密钥分配给互相通信的各用户。
- 网内分配方式:密钥自动分配。
但随着用户的增多和网络流量的增大,密钥更换频繁(密钥必须定期更换才能做到可靠),派信使的办法已不再适用,而应采用网内分配方式。
对称密钥的分配
- 目前常用的密钥分配方式是设立密钥分配中心 KDC (Key Distribution Center)。
- KDC 是大家都信任的机构,其任务就是给需要进行秘密通信的用户临时分配一个会话密钥(仅使用一次)。
- 假设用户 A 和 B 都是 KDC 的登记用户,并已经在 KDC 的服务器上安装了各自和 KDC 进行通信的主密钥(master key)KA 和 KB。 “主密钥”可简称为“密钥”。
对称密钥的分配
对称密钥的分配说明
- 为防止重放攻击,KDC 还可在报文中加入时间戳。
- 会话密钥 KAB 是一次性的,因此保密性较高。
- KDC 分配给用户的密钥 KA 和 KB,应定期更换,以减少攻击者破译密钥的机会。
Kerberos
- 目前最出名的密钥分配协议是 Kerberos V5。
- Kerberos 既是鉴别协议,同时也是 KDC,它已经变得很普及,现 在是互联网建议标准。
- Kerberos 使用比 DES 更加安全的高级加密标准 AES 进行加密。
Kerberos密钥分配说明
- A 用明文(包括登记的身份)向鉴别服务器 AS 表明自己的身份。
- AS 向 A 发送用 A 的对称密钥 KA 加密的报文,这个报文包含 A 和 TGS 通信的会话密钥 KS ,以及 AS 要发送给 TGS 的票据(这个票据是用 TGS 的对称密钥 KTG 加密的)。
- A 向 TGS 发送三个项目:
- 转发鉴别服务器 AS 发来的票据。
- 服务器 B 的名字。这表明 A 请求 B 的服务。请注意,现在 A 向 TGS 证明自己的身份并非通过键入口令(因为入侵者能够从网上截获明文口令),而是通过转发 AS 发出的票据(只有 A 才能提取出)。票据是加密的,入侵者伪造不了。
- 用 KS 加密的时间戳 T 。它用来防止入侵者的重放攻击。
- TGS 发送两个票据,每一个都包含 A 和 B 通信的会话密钥 KAB 。给 A 的票据用 KS 加密;给 B 的票据用 B 的密钥 KB 加密。请注意,现在入侵者不能提取 KAB ,因为不知道 KA 和 KB 。入侵者也不能重放步骤 3,因为入侵者不能把时间戳更换为一个新的(因为不知道 KS )。
- 7A 向 B 转发 TGS 发来的票据,同时发送用 KAB 加密的时间戳 T。
B 把时间戳 T 加 1 来证实收到了票据。B 向 A 发送的报文用密钥
KAB 加密。 - 以后,A 和 B 就使用 TGS 给出的会话密钥 KAB 进行通信。
公钥的分配
- 在公钥密码体制中,如果每个用户都具有其他用户的公钥,就可实现安全通信。
- 但不能随意公布用户的公钥,因为无法防止假冒和欺骗。使用者也无法确定公钥的真正拥有者。
- 需要有一个值得信赖的机构——即认证中心 CA (Certification Authority),来将公钥与其对应的实体(人或机器)进行绑定 (binding)。
- 认证中心一般由政府出资建立。
- 每个实体都有 CA 发来的证书 (certificate),里面有公钥及其拥有者的标识信息。
- 此证书被 CA 进行了数字签名,是不可伪造的,可以信任。
- 证书是一种身份证明,用于解决信任问题。
- 任何用户都可从可信的地方(如代表政府的报纸)获得认证中心 CA 的公钥,此公钥用来验证某个公钥是否为某个实体所拥有(通过向 CA 查询)。
- 有的大公司也提供认证中心服务。
CA 证书
- CA 证书具有统一的格式,ITU-T 制定了 X.509 协议标准,用来描述证书的结构。
- IETF接受了 X.509,仅做了少量的改动,给出了互联网 X.509 公钥基础结构 PKI (Public Key Infrastructure)。
CA 证书的吊销
- 证书不是永久有效,它可以过期,也可以被吊销。
- 有很多原因导致证书被吊销,例如:
- 用户的私钥已被泄漏
- 该用户不再被该 CA 认证
- CA 签署用户证书的私钥已被泄漏
- CA 建立并维护一个证书吊销列表。