Keberos认证过程

Kerberos(/ˈkərbərəs/)是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。适用于客户服务模式。解决”某某声称自己是某某“的认证问题。它的模块包括:

  • AS(Authentication Server)= 认证服务器
  • KDC(Key Distribution Center)= 密钥分发中心(含所有信任客户端的密码)
  • TGT(Ticket Granting Ticket)= 票据授权票据,票据的票据
  • TGS(Ticket Granting Server)= 票据授权服务器
  • SS(Service Server)= 特定服务提供端

认证过程如下图示:


 

  • client,宣称自己是 A,打算访问 服务器 B,向 KDC发起一个认证信息 “爱你一万年”,请求访问B的入场券(票据)
  • KDC 使用 A 的密码对client发来的认证信息解密,若解密失败,就知道client冒充 A,结束。
  • client 收到 KDC 返回的认证信息和自己发的认证信息对比,是否是 “爱你一万年”,判别 KDC是否是假冒
  • 双方认证成功,KDC发送给A info信息
    • 用A密钥加密的 session key,client收到后需解密出 sesion key
    • 访问B的票据(相同的session key、票据持有者、A所属的 group),使用B的密钥加密
  • client拿着票访问服务器B,并发送用session key加密的认证信息 “芝麻开门”
  • 得到票,服务器B使用密钥解密票据信息,得到session key,并用来解密认证信息,解密成功返回"芝麻开门"
  • client得到返回的认证信息对比,判断服务器B是否是假冒者
  • 服务器B还进行 group权限校验,判断 client是否具有操作权限,建立双向专属通道

 

参考文献 

kerberos认证原理---讲的非常细致,易懂
kerberos维基百科
能用通用的语言介绍下Kerberos 协议么?