[69] in Info-AFS_Redistribution

home help back first fref pref prev next nref lref last post

Kerberos and UNIX passwd authentication

daemon@ATHENA.MIT.EDU (daemon@ATHENA.MIT.EDU)
Tue Feb 5 03:37:44 1991

Date: Mon, 04 Feb 91 19:00:08 -0500
From: Bill Doster <billdo@ifs.umich.edu>
To: bob@ibmpa.awdpa.ibm.com (Bob Andrews)
Cc: billdo@ifs.umich.edu, info-afs@transarc.com

> Does anyone know of any way to build a UNIX password file, complete
> with encrypted passwords from the kerberos and protection databases
> kept on the AFS servers?  What I'd like to do is to switch our
machines
> over to use AFS (Kerberos) as the primary means of password
> maintainance and authentication.  The problem is, we have several
types
> of systems for which we don't have a working login program that will
> authenticate with AFS.

The password field in /etc/passwd is generated by running crypt()
on a user's password.  The password "field" (Kerberos key) stored
in the Kerberos database is generated by running AFS's string-to-key
function on a user's password.

> We need such a program so we can continue to have a common pw file,
> and use kerberos as the primary means of password authentication.

If you want to generate the /etc/passwd password fields and your
starting point is the Kerberos keys of the Kerberos database
then you are pretty much out of luck.  The AFS string-to-key
function is (intentionally) a one-way function (by which I mean
that it's easy to map from a user password to Kerberos key while
it is very difficult to derive the original password from the
Kerberos key).  Therefore, to generate the /etc/passwd fields,
you really need to have the plaintext version of the password.
The system sees the plaintext password at two points: all login-
type programs (login, rexecd(), xdm, ftpd) and password-changing
programs (passwd).  By intercepting the plaintext password at
one (or both) of these two points, you would be able to re-construct
(or maintain) the password fields of /etc/passwd.

I would suggest that you either:

	1.  Modify all login programs to ignore the password
		field in /etc/passwd and instead consult the
		AFS kerberos server.
or
	2.  Modify your password-changing programs so that they
		will update both the kerberos database and the
		/etc/passwd password field.  If you don't have
		the source for the passwd programs, you may be
		able to wrap a script around them the does both
		although raises numerous security concerns...

I would view option 2 as a work-around until you can move to
option 1 because while it gives you a common password file it
does not offer you any additional security on the non-AFS
machines.

Hope that answers your question,
   Bill Doster
   IFS Project, Univ. of Mich.



home help back first fref pref prev next nref lref last post