首页 > 编程知识 正文

kerberos协议步骤,kerberos认证优缺点

时间:2023-05-06 14:55:23 阅读:143008 作者:1664

本文假设您对kerberos有一定的了解。

kerberos认证包括第三方:客户端、密钥数据库中心(KDC )、服务器(server ) )客户端必须访问的服务、hdfs等。

另一方面,kerberos的key http://www.Sina.com/: master key是基于密码经过一定规则派生的,对于长密钥,用长密钥加密的数据是网络密钥理由很简单。 一旦这些用长密钥加密的分组被恶意网络监控者截获,原则上,只要有足够的时间,他就可以用——任何加密算法来计算得到你用于加密的长密钥

用33558 www.Sina.com/: long-term key加密的包不能用于网络传输,因此使用另一个短密钥加密需要网络传输的数据。 由于该Key只在一定期间内有效,所以即使加密后的数据包被黑客截获,在计算Key时,该Key也早已过期

在kerberos上,KDC保存所有客户端和服务器的主密钥,但不保存和维护会话密钥。 KDC生成会话密钥并将其存储和维护在相应的客户端上。 每个客户端和服务器都将自己的主密钥和自己保存为客户端。

二、认证过程:认证过程共包括4个Sub-protocol。

1、授权服务交换(as exchange ) :

通过该Sub-protocol、KDC、准确地说是KDC的认证服务实现客户端的身份确认,并向该客户端发行TGT。 具体流程如下

client使用client Master Key加密将client info扔进KDC,KDC从account数据库中提取与client对应的master key对发送的信息进行解密,验证客户端的身份,验证成功向客户端返回用KDC主密钥加密的TGT和用客户端的主密钥加密的会话密钥(skdc-client:logon session key )。 TGT包括以下内容:

. session key : skdc-client:logon session key.client name realm :简单地说就是domain nameclient.end time 3360 TGT的有效期。 客户端使用自己的主密钥解密第二部分,得到会话密钥(skdc-client:logon session key )。

2、用户2用户协议

客户端向服务器申请服务器和KDC的会话密钥(skdc-session key )以及属于封装了该会话密钥的服务器的TGT,如果该TGT存在于服务器的缓存中,则为服务器否则,在AS Exchange中从KDC获取(与上一步骤相同,但在这种情况下,服务器将作为客户端) ) )。

3、时间传递服务(TGS )交换

客户端通过向KDC提供自己的TGT,服务器的TGT和授权器向KDC的中继服务(TGS )申请用于访问服务器的Ticket。 要求内容如下。

. Client TGT: Client用AS Exchange获取的Ticket Granting Ticket,TGT用KDC的Master Key加密. Server TGT: Server用AS Exchange获取的tich 此TGT包含服务器和KDC的会话密钥(skdc-server ).Authenticator。 这最初是为了证明Client TGT的所有者是否是自己,其中包含Client info,skinticator.server name realm :简单地说就是Domain name 在Server上,这次在客户端想要访问的Server TGS收到客户端申请Ticket的请求后,必须验证客户端提供的客户端TGT是否是从AS发行的。 因此必须用客户端提供的Authenticator来证明。 但是,授权是用登录会话密钥(skdc-client )加密的,自己没有保存这个会话密钥。 因此,TGS首先使用自己的主密钥对客户端提供的客户端TGT进行解密,得到该Logonsessionkey[SKDC-client],再将该logon session key [ skdc-concect ] 在通过必须解密授权的验证后,TGS再次使用其主密钥解密服务器TGT以获得会话密钥(skdc -服务器)。

验证是通过将ticketgrantingserviceresponse (krb _ TGS _ rep )发送到客户端进行的。 该KRB_TGS_REP由用Logonsessionkey(skdc-Client )加密的客户端、用于服务器的session key (session key )和session key (server-client )构成

. session key:s服务器-客户端。 Client name realm:简单地说,domain nameclient.end time : ticket的过期时间client接收KRB_TGS_REP,并使用logon session key ()

4、客户端/服务器(cs ) Exchange

Client创建一个身份验证器来证明自己是Ticket的真正所有者,并使用sessionkey(sserver-Client )对其进行加密。 客户端使用验证器和会话密钥(skdc-server ) ),服务器使用会话密钥(skdc-server )解密Ticket,然后会话密钥(Server ) sessionkey ) sserver-client )解密authenticacaaaaack,这样就完成了kerberos认证,客户端可以直接访问服务器。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。