[2455] in Kerberos_V5_Development

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

Password expiration via a preauth mechanism

daemon@ATHENA.MIT.EDU (Ken Hornstein)
Tue Jul 29 16:05:30 1997

To: krbdev@MIT.EDU
Date: Tue, 29 Jul 1997 15:57:12 -0400
From: Ken Hornstein <kenh@cmf.nrl.navy.mil>

After a bit of head-scratching, I think I figured out how preauthentication
actually works.  So anyway, I added a new preauthentication type called
KRB5_PADATA_PW_EXPTIME.  This contains the time the password is going to
expire.  There is a new configuration entry in the kdc.conf file called
"kdc_warn_pwexpire" that contains a delta time used to decide when to
start warning the user.  For example, if you have:

	kdc_warn_pwexpire = 7d 0m 0s

PADATA_PW_EXPTIME preauth data will be sent in reply to AS_REQ's when
a client's password will expire in 7 days or less.

I cheated a bit on the data format; I didn't want to define a new ASN.1
message type (is that the right termology?), so the password expiration
time is encoded using the PA-ENC-TS ASN.1 message type (since it's really
just a timestamp).  This seems at least to be the right "spirit", since
the emphasis is on using ASN.1 for all Kerberos data.  I don't think
this presents any security problems, since in my implementation the
preauth data isn't encrypted and thus cannot be substitued for a valid
PA-ENC-TS message.

Clients can decode this if they wish and present it to the user.  I
added a new function to libkrb5, since I didn't want clients to have
to include k5-int.h to get all of the ASN.1 prototypes.  AFAIK,
this doesn't affect clients that don't know about this preauth type.

Comments?  Any interest in the code?

--Ken

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