[Kerberos] Kerberos 认证过程整理

Kerberos是一种安全认证协议,意在提供

  • more secure authentication
  • simplified management of password
  • convenience of single sign on

Kerberos的基本结构

  • Kerberos Client: 申请服务的一方
  • Kerberized Service: 提供服务的一方
  • Kerberos KDC: 提供密码管理的认证的一方。Client和service provider都会将自己的私密保存在KDC中。

     

Kerberos 认证过程

1. Client向KDC申请TGT

Client向KDC发送只包含 principal 的数据包

KDC查询user principal database是否存在该用户,如果存在,则生成一个被KDC密钥加密过的TGT和一个time sensitive的session key. 然后返回给用一个被用户密钥加密过的TGT+session key

      

2. Client向KDC请求service

Client生成一个authenticator,并用session key加密,和请求的服务名,TGT,一并发送给KDC。

KDC对比authenticator和TGT,如果没有问题,则相信client,并返回给client一个用service密钥加密的service ticket和新的session key,返回的数据包用第一次的session key加密。

         

3. Client向service请求服务

Client收到KDC返回的数据包,并用新的session key加密authenticator,和service ticket一起发送给service。

Service收到数据包,用自己的密钥打开service ticket,然后用service ticket里面的session key打开authenticator。如果验证通过,则返回client想要的服务数据。

Reference

https://www.youtube.com/watch?v=KD2Q-2ToloE

http://www.kerberos.org/software/tutorial.html

https://software.intel.com/sites/manageability/AMT_Implementation_and_Reference_Guide/default.htm?turl=WordDocuments%2Fintroductiontokerberosauthentication.htm

原文地址:https://www.cnblogs.com/qingwen/p/5021482.html