如何在KDC和用户(计算机)之间预共享主密钥mk ?
2024-09-06
来源:筏尚旅游网
1、首先客户端向KDC发送一个会话密钥申请。这个申请的内容可以简单概括为”我是某客户端,我需要个Session Key用于与某服务器通话“。
2、KDC在接收到这个请求的时候,生成一个会话密钥。为了保证这个会话密钥仅仅限于发送请求的客户端和它希望访问的服务器知道,KDC会为这个会话密钥生成两个副本,分别被客户端和服务器使用。然后从账户数据库中提取客户端和服务器的主密钥分别对这两个副本进行对称加密。对于服务器,与会话密钥一起被加密的还包含关于客户端的一些信息,以便对发起连接请求的客户端进行身份认证。
3、通过上面的过程,客户端实际上获得了两组信息:一个是通过自己主密钥加密的会话密钥;另一个是被Server的主密钥加密的数据包,包含会话密钥和关于自己的一些确认信息。在这个基础上,我们再来看看服务器是如何对客户端进行认证的。
4、客户端通过用自己的主密钥对KDC加密的会话密钥进行解密从而获得会话密钥,随后创建认证符(Authenticator,包括客户端信息和时间戳(Timestamp)),并用会话密钥对其加密。最后连同从KDC获得的、被服务器的主密钥加密过的数据包(客户端信息和会话密钥)一并发送到服务器端。我们把通过服务器的主密钥加密过的数据包称为服务票证(Session Ticket)。
5、当服务器接收到这两组数据后,先使用它自己的主密钥对服务票证进行解密,从而获得会话密钥。随后使用该会话密钥解密认证符,通过比较由客户端发送来的认证符中的客户端信息(Client Info)和服务票证中的客户端信息实现对客户端身份的验证。
显示全文