Previous | Table of Contents | Next |
Of special importance in Kerberos Version 4 is the protocol requesting the users password. This step is not initiated until after klogin receives the first response from the KDC. When the user enters an invalid username, the KDC responds with an error to klogin. When the user enters a correct username, the KDC responds with a message encrypted with the secret key of the user. Only after this response is received will klogin prompt for the password. Kerberos V4 introduces this delay in retrieving the password in an attempt to limit the amount of time the password string is kept in memory. This approach is laudable because storing a password in memory even for a short time might enable a concurrently running rogue program an opportunity for password theft. However, as you will see, this protocol also opens Kerberos V4 to password guessing attacks.
A More Detailed Analysis of klogin
The login scenario described previously is actually more complex than the overview indicates. In this section, you learn additional details about the messages exchanged in Kerberos.
Recall that the TGS is the part of the Kerberos server responsible for generating shared session keys. The TGS is itself a secure Kerberos server, named krbtgt, which shares a secret with the KDC. Anytime X wants to initiate a secure conversation with another entity in the network, X must contact the TGS and ask for a new session key and ticket. In order to communicate with the TGS, X must establish trust with the TGS by completing the login process. The TGS is the only place where a principal can obtain a session key, and the only way to gain the right to request a session key from the TGS is by logging in to the KDC. Remember, too, that the TGS is just a special part of the KDC. So, when you read that a message is exchanged with the TGS, it is really the KDC that receives all of the messages for the Kerberos server. Here are the login steps assuming again that X is the user attempting to authenticate to Kerberos.
The klogin program obtains the password from X as before and attempts to decrypt the message received from the KDC. One of the indicators for successful decryption is when the name of the requested service sent back by the KDC matches the string krbtgt. If decryption is accomplished, login is complete, and the user X now starts communicating with other principals.
A More Detailed Look at a Session
At some point in the future, X will want to talk to another principal such as Y. The TGT plays an important role in this process. Normally, when two principals exchange a ticket, the lifetime of the ticket is very short to prevent replay attacks. If the tickets lifetime is too long, an attacker might be able to use the ticket at a future time, impersonate one of the principals, and trick the other principal into divulging information. Therefore, tickets normally expire within a few seconds, although the limit is configurable by the Kerberos administrator. On the other hand, the TGT has a longer lifetime because a principal needs to reuse it each time a new session key is needed. When a TGT is renewed or when a new TGT is obtained , the user must complete the I&A process again with the Kerberos server. This process requires reentry of the password. Most sites limit the TGT lifetime to eight hours or less for a login user.
When login is complete, a principal has both SKx,tgs and the TGT. At a minimum, the TGT contains the value {SKx,tgs}Ktgs, or the session key for use between the TGS and X encrypted with the secret key of the TGS. All of this information was obtained from the KDC. What happens when X wants to communicate with Y?
Previous | Table of Contents | Next |