Split IAKERB for local KDCs cross-realm setup?

Greg Hudson ghudson at mit.edu
Fri Mar 28 17:07:27 EDT 2025


On 3/28/25 14:55, Alexander Bokovoy wrote:
>>   [*] Currently any KRB-ERROR causes context establishment failure, so
>>       (3) cannot work unless an option is added to the IAKERB-HEADER to
>>       change this to give the initiator a chance to try locally.

> My initial idea was to intercept one of those two KRB-ERROR responses we
> get back from the acceptor for not being able to identify a KDC or reach
> it and don't return to the application yet.

This would be a divergence from the spec.  This isn't necessarily 
showstopper, especially as the spec is still a draft, but I wanted to 
make note of it.  Section 3 says:

   When the GSS-API acceptor is unable to obtain an IP address for a KDC
   in the client's realm, it sends a KRB_ERROR message with the code
   KRB_AP_ERR_IAKERB_KDC_NOT_FOUND to the client in place of an actual
   reply from the KDC, and the context fails to establish.

and there is similar text for KRB_AP_ERR_IAKERB_KDC_NO_RESPONSE.  This 
restriction seems unnecessary; I don't see any mechanical reason why it 
wouldn't work for the initiator to continue the exchange after locally 
handling the requests for the current realm.

Any update to the draft should be handled through the kitten WG, but I 
also want to note that if the draft is updated, the new text should make 
it clear that the GSS tokens containing the couldn't-be-proxied request 
and error response must appear in the KRB-FINISHED transcript, like any 
other pre-AP-REQ tokens in the exchange.


More information about the krbdev mailing list