Platform SDK: Logon Authentication |
The user begins logging on to the network by typing a logon name and password. The Kerberos client on the user's workstation converts the password to an encryption key and saves the result in a program variable.
The client then requests credentials for the KDC's ticket-granting service by sending the KDC's authentication service a message of type KRB_AS_REQ (Kerberos Authentication Service Request). The first part of this message identifies the user and the TGS service being requested. The second part of the message contains pre-authentication data intended to prove that user knows the password. This is simply an authenticator message encrypted with the master key derived from the user's login password.
When the KDC receives KRB_AS_REQ, it looks up the user in its database, gets the associated user's master key, decrypts the pre-authentication data, and evaluates the timestamp inside. If the timestamp is valid, the KDC can be assured that the pre-authentication data was encrypted with the user's master key and thus that the client is genuine.
Once it has verified the user's identity, the KDC creates credentials that the client can present to the ticket-granting service.