home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.protocols.kerberos
- Path: sparky!uunet!charon.amdahl.com!pacbell.com!decwrl!sdd.hp.com!elroy.jpl.nasa.gov!ames!agate!stanford.edu!ISI.EDU!bcn
- From: bcn@ISI.EDU (Clifford Neuman)
- Subject: Local password validation (was: kerberizing xlock)
- Message-ID: <9211052343.AA16104@tgo.isi.edu>
- Sender: news@shelby.stanford.edu (USENET News System)
- Organization: Internet-USENET Gateway at Stanford University
- Date: Thu, 5 Nov 1992 23:43:23 GMT
- Lines: 48
-
- From: bf4grjc@socrates.MIT.EDU (Ravi Ganesan (301) 595-8439)
- Date: Thu, 5 Nov 92 14:00:50 EST
-
- I feel that getting a ticket and then getting a service ticket and using that
- service - under the condition the service is on the same machine, is a
- theoretically messy, but practically convenient solution. (To recap a
- hyper-kludgy hyper-quick and hyper-dirty way of doing this would be to
- replace login with a combination of a kinit, a chown on the ticket, and then
- a quick rlogin into the same machine. Naturally in practice you would set
- up a dummy server that does something trivial like retun a YES/No
- repsonse to your login program.
-
- Note that if all you want is to verify the password locally, and if
- you do not have a use for subsequent Kerberos authentication, then you
- can request a ticket for the "local verification" service in your
- first request to Kerberos. There is no need to first request a ticket
- granting ticket.
-
- Also, there is no need to actually contact the local verification
- service out of band. The verification can be done entirely by the
- login program.
-
- What you would do is initially request a ticket for the verification
- service, use that ticket to construct an authenticator, then
- immediately verify the ticket and authenticator from within the login
- program using the "local verification" services key which is
- presumably available to the login program since it runs as root.
-
- You could simplify this even further if you were willing to write your
- own code to do the verification, instead of using the code in the
- Kerberos library. To do this, you would:
-
- Make an initial request for a "local verification" server ticket
-
- Decrypt the response using the password entered by the user
-
- Decrypt the ticket using the key of the "local verification" server
-
- Check to make sure the ticket is not expired
-
- Compare the session key from the ticket with that from the
- response from the KDC.
-
- If they match, and the ticket has not expired, then you have verified
- the identity of the user.
-
- ~ Cliff
-
-