当前位置:   article > 正文

kerberos的as tgs cs认证基本原理_as tgs

as tgs

KDC(kerberos Distribution Center)密钥分发中心,维护所有账户的名称和Master Key(key的hash code)。
提供:AS认证服务、TGS票据授予服务
Client 访问 Service需要Kerberos认证过程3个子协议:
1.AS Exchange
2.TGS Exchange
3.CS Exchange
认证过程如下图:
在这里插入图片描述

1.1Authentication Service Exchange
该服务通过KDC的AS服务对Client身份的确认,并颁发给该Client一个TGT服务授权票据。
在这里插入图片描述

Client向KDC AS发送KRB_AS_REQ请求,Client使用自己的Master Key对KRB_AS_REQ的主体部分进行加密(KDC可以通过AD获取该client的master key)KRB_AS_REQ的大体内容:
Pre-authentication data:包含用以证明自己身份的信息。(证明自己知道account的密码)一般是被client的master key加密的Timestamp
Client name&realm:就是Domin name\Client name
  • 1
  • 2
  • 3

Server Name :KDC 的TGS 的server name
当使用Kerberos V5时,用户的密码永远不会通过网络发送,甚至不会以加密的形式发送,Kerberos V5管理期间除外。
在这里插入图片描述

AS通过接收KRB_AS_REQ是否是Client name&realm声称的account,AS只需要通过提取Client对应的master key 对Pre-authentication解密,如果是合法的Timestamp,则可以证明提供了正确的密码。
通过验证后AS将一份Authentication Service Response(KRB_AS_REP)发送给client,KRB_AS_REP主要包含两部分:本Client的Master key 加密的Session key(SKDC-Client:Logon Session Key),被自己(KDC服务krbtgt对应的key,只有KDC解密防止篡改)加密的TGT。TGT包含以下的内容:
Session Key:SKDC-Client:Logon Session Key
Client name&realm:Domin name/Client
End time:TGT到期时间
Client通过自己 的Master key对第一部分解密获取Session key(SKDC-Client:Logon Session Key)之后,携带TGT便可以进入下一步:TGS(Ticket granting Service)Exchange
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

1.2Ticket Granting Service Exchange
证明持有的TGT是AS颁发,并获取对应服务的票据
在这里插入图片描述

Client向KDC中的TGS发送KRB_TGS_REQ,请求包含:
TGT:client通过AS Exchange获取的TGT被KDC的Master key进行加密。
Authenticator:用来证明当初TGT的拥有者是否是自己,所以它必须以TGT的颁发方(KDC)和自己(client)的Session key(SKDC-Client:Logon Session Key)来进行加密。在Kerberos的Authenticator实际上就是关于Client的一些信息和当前时间的一个Timestamp。
Client name&realm:Domin name/client name
Server name &realm:Domin name/Server ,这次是Client试图访问的Server。

在这里插入图片描述

TGS收到KRB_TGS_REQ颁发Ticket之前会验证Client提供的TGT是否是AS颁发的。通过Authenticator来证明。但是Authenticator是用Logon Session Key(SKDC-Client)加密的,获取Logon Session Key TGS先用自己的Master key解密TGT,从而获取这个logon Session key解密Authenticator进行验证。通过验证向Client 发送KRB_TGS_REP有两部分组成:使用Logon Session key(SKDC-Client)加密用于Client和Server的Session Key(Sserver-Client)、使用Server的Master Key进行加密的Ticket。Ticket大体包含以下内容:
Session Key:Sserver-Client
Client name&realm:Domin name/Client
End time:Ticket的到期时间
Client收到KRB_GTS_REP使用Logon Session Key(SKDC-Client)解密第一部分获取Session key(SServer-Client)。有了Session Key和Ticket,Client 就可以和Server进行交互。
  • 1
  • 2
  • 3
  • 4
  • 5

1.3Client/Server Exchange
证明自己就是Ticket的合法所有者
在这里插入图片描述

Client 通过TGS Exchange获取Client和Server的Session key,随后就是证明自己就是ticket的真正所有者的Authenticator,并使用Session key(SServer-Client)进行加密。最后将Authenticator和Ticket作为KRB_AP_REQ发送给server。
  • 1

Server接受到KRB_AP_REQ之后,通过自己的master key解密Ticket 从而获取Session key。通过session key解密Authentictor,进行身份验证。验证成功让Client访问需要的资源,否则拒绝对方访问请求。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/1004041
推荐阅读
相关标签
  

闽ICP备14008679号