Kerberos网络身份认证协议
Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客 户机 / 服务器应用程序提供强大的认证服务。
- Kerberos的三大要素:
client、server、KDC - 对于KDC,这是我自己理解画的草图
- 个人理解:
密钥分发中心 KDC(Key Distribution Center)
KDC(Key Distribution Center) = DC(Domain Controller)
是客户端和服务器都信任的第三方实体
它提供密码管理功能
它负责维护安全主体的账户信息,包括密钥
它负责kerberos协议中的密钥分发职责
KDC由认证服务和票据授权服务组成:
认证服务AS (Authentication Service):管理安全主体的身份和密钥、对客户身份认证,发放票据授权票据
票据授权服务 TGS (Ticket Granting Service) :票据授权服务主要是进行票据授权票据的确认,确认用户的身份并颁发服务票据。类似于Token一样的一种表明身份的东西。
借用浏览器上常见的草图
- 根据图上,进行简单的口头化理解:
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