Kerberos认证协议
Kerberos认证协议也称三头犬协议,因为在Kerberos认证过程中,需要有三个角色:Client、Server以及KDC(Key Distribution Center)密钥分发中心。
Kerberos认证协议的目的是为客户端/服务端提供身份验证。最主要的问题是如何证明“你是你”。
认证过程中涉及到的名词:
- AS(Authentication Server) 认证服务器
- KDC(Key Distribution Center) 密钥分发中心
- TGT(Ticket Granting Ticket) 票据授权票据
- TGS(Ticket Granting Server) 票据授权服务器
- SS(Service Server) 特定服务提供端
- session_key随机生成的字符串
KDC(密钥分发中心),由Authentication Server(认证服务器)和Ticket Granting Server(票据授权服务器)组成,认证的时候,它会访问AD数据库。
Kerberos认证步骤
认证步骤主要有三个来回,过程简单描述为:
- 用户向KDC发送请求验证自己的身份
- KDC确认用户身份并给用户发送凭证
- 用户向KDC发送网络服务访问请求凭证
- KDC给用户发送网络服务凭证
- 用户使用网络服务凭证访问相应的网络服务
- 网络服务器确认网络服务凭证有效并向用户提供网络服务
详细过程为:
K(c,tgs):session_key(client与tgs之间的通信)
K(c,s):session_key(client与server之间的通信)
-
client->dc(kdc(as)):客户端向认证服务器(AS)发送一个认证请求,给AS发送的信息:
- 用户hash加密的时间戳以及其他一些信息
- 用户名明文
- TGS的一些信息
-
DC(KDC(AS))->client:认证服务器(AS)认证通过后(对比用户名是否在AD中),给客户端发送的信息&