Kerberos网络身份认证协议

Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客 户机 / 服务器应用程序提供强大的认证服务。

  • Kerberos的三大要素:
    client、server、KDC
  • 对于KDC,这是我自己理解画的草图
  • Kerberos安全认证链接hive kerberos身份认证_Kerberos安全认证链接hive

  • 个人理解:
    密钥分发中心 KDC(Key Distribution Center)
    KDC(Key Distribution Center) = DC(Domain Controller)
    是客户端和服务器都信任的第三方实体
    它提供密码管理功能
    它负责维护安全主体的账户信息,包括密钥
    它负责kerberos协议中的密钥分发职责

KDC由认证服务和票据授权服务组成:
认证服务AS (Authentication Service):管理安全主体的身份和密钥、对客户身份认证,发放票据授权票据
票据授权服务 TGS (Ticket Granting Service) :票据授权服务主要是进行票据授权票据的确认,确认用户的身份并颁发服务票据。类似于Token一样的一种表明身份的东西。

借用浏览器上常见的草图

Kerberos安全认证链接hive kerberos身份认证_服务器_02

  • 根据图上,进行简单的口头化理解:
    1-2. client向kerberos服务请求,希望获取访问server的权限。 kerberos得到了这个消息,首先得判断client是否是可信赖的, 也就是白名单黑名单的说法。这就是AS服务完成的工作,通过 在AD中存储黑名单和白名单来区分client。成功后,返回AS返 回TGT给client。
    3-4. client得到了TGT后,继续向kerberos请求,希望获取访问 server的权限。kerberos又得到了这个消息,这时候通过client 消息中的TGT,判断出了client拥有了这个权限,给了client访 问server的权限ticket。
    4-5. client得到ticket后,终于可以成功访问server。这个ticket只是 针对这个server,其他server需要向TGS申请。

常见术语

  • TGT
    KDC生成一个用于对称加密的session key,也叫TGT(Ticket-granting Ticket) key。
  • Golden Ticket(黄金票据)
    TGT是由KRBTGT用户生成的,有了该票据你可以访问任何通过kerberos认证的服务,如果我们拿到了该用户的Hash,那么我们就可以伪造TGT,该用户只存在于域控中,所以前提是你要拿到域控的权限。
  • Silver Ticket(白银票据)
    如果我们有服务器上的用户Hash,就可以伪造一个Server-Ticket绕过认证,达到访问服务的目的。白银票据只能访问特定的服务。

参考文章:
http://www.360doc.com/content/15/0803/10/13047933_489182493.shtml