Once setup here's how I see Kerberos works (overly simplified, msg details ignored, timestamps, etc):
1. User uses own password to encrypt a msg to the KeyServer requesting authentication
2. The KeyServer generates a session key and secret, it then encrypts it with the users password and sends back to the user
3. The user decrypts the msg storing the session key and secret.
4. The User requests a Service Ticket by encrypting the request and secret with the session key.
5. The KeyServer replies with a new service session key and generates another msg for the Server containing the service session key, encrypting it with the Servers password
6. The User sends the msg for the Server to the Server.
7. The Server uses its own key to decrypt the msg from the KeyServer via the User
* The User and Server now share a service session key
* It appears that the User password is unlocked when the User logs onto their physical machine, it is then stored in volitile ram
So, it comes back to using the operating systems login and associated services to store the keys.
I'm not really considering the key exchange protocol here, moreover how to store a password or key locally in a secure fashion, without having to rely on the underlying systems' login
Quote:
Originally Posted by sundialsvcs
..
The strategy that you should be using is: digital certificates, embedded as a simple resource within the application, and encrypted such that the application can decode it. ...
|
Yes, but how to store it securely independent of system login?