Kerberos Cross-Realm Trust
Luke Hebert
- 2 minutes read - 213 wordsCross-realm authentication in Kerberos is handled entirely through TGS (Ticket-Granting Service) messages. No special protocol is needed beyond the standard ticket exchange flow. The three-step process below shows exactly how a user in one realm reaches a service in another, and where things break when the trust is misconfigured.
The Three-Step Ticket Flow
User
fooobtains a TGT forkrbtgt/LOCAL@LOCAL. The session key is encrypted with the user’s long-term secret (password) and the long-term key forkrbtgt/LOCAL@LOCAL. This is the initial AS exchange.User
foorequests a ticket forkrbtgt/LOCAL@REMOTE. The session key is encrypted using both the long-term secret forkrbtgt/LOCAL@REMOTE(which both the LOCAL and REMOTE KDCs share) and the session key from thekrbtgt/LOCAL@LOCALticket. Note: the user is still talking to the LOCAL KDC here, via a TGS exchange.User
foorequests a service ticket forservice/remote.host@REMOTE. The session key is encrypted with the session key fromkrbtgt/LOCAL@REMOTEand the service’s long-term key. For this step, the user talks to the REMOTE KDC (another TGS exchange).
Key Takeaway
The shared secret between the two KDCs (the krbtgt key) is what bridges the trust. If that key is out of sync or the trust relationship is misconfigured, step 2 will fail and the user will never reach the remote service.