密钥分配

Wu Jun 2020-01-07 08:43:49
Categories: > Tags:

由于密码算法是公开的,网络的安全性就完全基于密钥的安全保护上。

密钥管理包括:密钥的产生、分配、注入、验证和使用。

1 对称密钥的分配

1.1 密钥分配中心 KDC

密钥分配中心 KDC (Key Distribution Center)的任务就是给需要进行秘密通信的用户临时分配一个会话密钥(仅使用一次)。

假定用户 A 和 B 都是 KDC 的登记用户。A 和 B 在 KDC 登记时就己经在 KDC 的服务器上安装了各自和 KDC 进行通信的主密钥(master key) KA和KB

此后,A 和 B 就可使用会话密钥 KAB 进行这次通信了。

KDC 还可在报文中加入时间戳,以防止报文的截取者利用以前己记录下的报文进行重放攻击。会话密钥 KAB 是一次性的,因此保密性较高。而 KDC 分配给用户的密钥 KB 和 KB,都应定期更换,以减少攻击者破译密钥的机会。

1.2 密钥分配协议 Kerberos

目前最出名的密钥分配协议是 Kerberos V5。Kerberos 既是鉴别协议,同时也是 KDC。使用 AES 进行加密。

Kerberos 使用两个服务器:鉴别服务器 AS (Authentication server)、票据授予服务器 TGS (Ticket-Granting server)。Kerberos 只用于客户与服务器之间的鉴别,而不用于人对人的鉴别。

以后,A 和 B 就使用 TGS 给出的会话密钥 KAB 进行通信。

2 公钥的分配

认证中心 CA (Certification Authority)将公钥与其对应的实体(人或机器)进行绑定(binding)。

每个实体都有 CA 发来的证书(certificate),里面有公钥及其拥有者的标识信息(人名或IP地址)。此证书被 CA 进行了数字签名。

任何用户都可从可信的地方(如代表政府的报纸)获得认证中心 CA 的公钥,此公钥用来验证某个公钥是否为某个实体所拥有(通过向 CA 查询)。