[6086] in Kerberos

home help back first fref pref prev next nref lref last post

Re: error in "krb5_sendto_kdc" logic

daemon@ATHENA.MIT.EDU (Ed Phillips)
Wed Nov 1 08:44:39 1995

Date: Wed, 1 Nov 1995 08:43:28 -0500 (EST)
From: Ed Phillips <flaregun@UDel.Edu>
To: Jim_Miller@bilbo.suite.com
Cc: krb5-bugs@MIT.EDU, kerberos@MIT.EDU
In-Reply-To: <9510312343.AA13383@bilbo.suite.com>

On Tue, 31 Oct 1995, Jim Miller wrote:

> 
> [This bug report is for KRB5, beta 4, patch level 3.  It may also exist in  
> other versions.  I haven't looked.]
> 
> There are two "for" loops in "krb5_sendto_kdc", one inside the other.  The  
> inner loop iterates through each KDC in the list returned by  
> "krb5_locate_kdc".  The outer loop increases the value of timeout until  
> the maximum is reached and the function returns a KRB5_KDC_UNREACH error.
> 
> The logic of the outer loop assumes that if none of the KDCs replied, then  
> it is ok to re-send requests and we'll just wait a little longer.   
> However, this logic is flawed.  The success of the logic depends on the  
> reason why the inner loop never got a reply.
> 
> If the client's KDC request never reached the KDC, then it is ok for the  
> client to re-send the request.  However, if the request *did* reach the  
> KDC but the KDC's reply got lost, then it is not ok for the client to  
> re-send the request because the second attempt (bit for bit identical to  
> the first) would just be discarded by the KDC as a replayed kdc message.

	The KDC used to just retransmit the same response (or at least 
that's what the KDC's log would indicate).  I don't know when this would 
have changed.  I don't see anything wrong with having the KDC retransmit 
the response to the same requestor.

> 
> For this to be a real problem, all KDCs in the list would have to receive  
> the original requests, and then have their replies lost.  Not very likely,  
> but possible.  The likelihood depends on the number of alternative KDCs  
> and the reasons why replies are getting lost.
> 
> To correctly handle this case, you need to send additional information  
> when you re-send ticket requests.  Something so the KDCs can distinguish  
> re-tries from previous attempts or replay attacks. However, this may  
> create backwards incompatibilities.
> 
> Not sure what the best solution is.
> 
> Jim_Miller@suite.com
> 

+-------------------------------------------------------------------------+
| Ed Phillips <flaregun@udel.edu> University of Delaware (302) 831-6082   |
| Jr Systems Programmer, Network and Systems Services, Info. Technologies |
| Public key footprint: 1C D4 AC C2 A3 D5 97 AA  DB 3B D8 85 88 E7 40 B8  |
| Finger flaregun@udel.edu for PGP public key                             |
+-------------------------------------------------------------------------+


home help back first fref pref prev next nref lref last post