Kerberos协议
介绍
Kerberos是一种网络认证协议,用于验证用户与主机身份的身份验证协议。
Windows Server 操作系统可以实现kerberos版本5身份验证协议和公钥身份验证的扩展,用于传输授权数据和委派。Kerberos身份验证客户端可作为支持提供程序(SSP)实现,并且通过安全支持提供程序接口(SSPI)就行访问。初始用户身份验证与Winlogon单个登录体系结构相集成。
Kerberos 密钥发行中心(KDC)与在域控制器上运行的其他Windows Server安全服务集成。KDC使用域的Active Directory域服务数据库作为其安全数据库。Active Directory域服务是域或林中的默认Kerberos实现的必须的。
协议框架
Kerberos
协议中主要包含:
- 访问服务的Client
- 提供服务的Server
KDC(Key Distribution Center)密钥分发中心
Authentication Server(AS)
:用于验证Client端的身份,通过验证就会给一张TGT(Ticket Granting Ticket)票给ClientTicket Granting Server(TGS)
:作用是通过AS发送给的Client的票(TGT)获取访问Server端的ST(Service Ticket)
一般情况下KDC
服务默认安装在域控中,Cilent
与Server
为域内的用户或者服务。
认证流程(身份认证服务交换 、票据授权服务交换、客户端/服务认证交换)
Client向KDC发起请求ASREQ,请求的凭据是Client hash加密的时间戳
KDC使用Client hash解密,如果正确就返回加密的的TGT,TGT里面包含了PAC,PAC包含了Client的sid,Client所在的组
PAC(Privilege Attribute Certificate)特权属性证书,不同账户有不同的权限,PAC就是用来区分不同权限的一种方法
Client凭借TGT票据像KDC发起针对特定服务的请求
KDC解密,结果正确就返回加密的TGS(不管用户有没有访问权限,重要TGT正确就会返回TGS票据)
Client拿着TGS票据去请求服务
服务器解密TGS,验证身份
流程比较简陋