Subject: [ldapext] Re: Password policy state attributes

From: "Ed Reed" <[email-masked]>
Date: Fri, 22 Nov 2002 12:43:01 -0700

At the risk of sounding like a crackpot...
 
You may need to consider something like the X.509 certificate object class discussed in PKIX - an entry with all the policy associated with the particular credential - in this case a password associated with an authentication identity.
 
The X.500 object model used in LDAP simply doesn't make it easy to associate different policy values in one attribute with specific attribute values in another.
 
Better to think of it this way -
 
Each password and its policy is really a user identity with some refinements.  That can be "security equivalent" to a particular user, or perhaps more correctly, the user entry can be "security equivalent" to the password used to log in.  The logic to support such a thing would not be all that different from a login mechanism that allowed a user to select, from a list of allowed roles, those roles the user wanted to assume for a particular login session.
 
It's messy, and fundamentally changes the way people think about identities and their credentials, but in a world where the same identity may use one of several credentials to authenticate, and if it's beneficial to associate different authorization rights with the individual based on which credential they used, it may be a necessary change to consider.
 
Ed

>>> "Jim Sermersheim" <[email-masked]> 11/22/02 12:16PM >>>
A group of people interested in progressing the password policy draft has been growing and exchanging emails off list. We're moving discussion here so we have a list and a wider audience.

The current topic has to do with storing password policy state information for objects. What is needed is a way to store values that represent state information on an object. There is the need to associate the state information with a password. This is because it's desirable to allow multiple passwords per object, and it to be allowed that policy can be described and executed separately for each password. Thus, we need a way of associating each bit of password policy state information with the password it applies to.

For example. There is an attribute called pwdExpirationWarned. This holds the timestamp of when the client was first warned that the password would expire soon, thus it is single-valued. Now, let's say the object that is subject to password policy makes use of three password attributes due to there being three different hard access interfaces: atmPassword, telePassword, and webPassword (think bank account access). When the pwdExpirationWarned attribute is updated (due to an impending  password expiration), there needs to be some way of associating the warning with the password that will expire (let's say it's webPassword).

Our first attempt was to use attribute descriptions with a new tagging option  called "pwd-". In the example above, pwdExpirationWarned;pwd-webPassword would be used to store/retrieve the warning time for the webPassword. The problem that was brought up with this approach (as I remember it) was that since the descr form of attribute types is not canonical, we cannot use it in the attribute option. It would lead to interoperability problems.

Quickly, it was suggested to just use the oid form of the attribute type, like pwdExpirationWarned;pwd-1.2.3.4. While this would solve the problem above, it is an illegal encoding. Attribute options are defined as consisting of ALPHA, DIGIT, and DASH characters.

Then the suggestion of moving the attribute association inside the value was put forth say something like "webPassword#200210240212Z". This requires new syntaxes which some implementors don't like, but worse: 1) It doesn't allow the attributes to be defined as single-value. 2) It doesn't allow the server to enforce uniqueness among the values. 3) It doesn't allow the replace operation (where replace would work with single-valued attributes). None of these limitations are desirable.

I would now like to suggest returning to the first or second suggestion. The first has limitations in a distributed environment, and maybe something can be done about it, but I'm not sure what. The second would be modified to fit the required syntax by replacing dots with dashes. Thus the example would change to: pwdExpirationWarned;pwd-1-2-3-4

Jim

p.s. I can provide a set of recent previous discussions on this and other issues to anyone that wants them.

_______________________________________________
Ldapext mailing list
[email-masked] 
https://www1.ietf.org/mailman/listinfo/ldapext

---

From: Michael Ströder <[email-masked]>
Date: Fri, 22 Nov 2002 22:50:23 +0100

Ed Reed wrote:
> You may need to consider something like the X.509 certificate object 
> class discussed in PKIX - an entry with all the policy associated with 
> the particular credential - in this case a password associated with an 
> authentication identity.

It was also my first impression that this topic is very much the same sort 
of discussion like storing X.509 certificates in separate subordinate 
entries vs. certificate matching rules.

Maybe I missed something but how does the authentication mechanisms 
distinguish which password to use for authentication in a specific 
application? If you have really several applications with different 
passwords then I'd suggest to simply put the application-specific 
credentials in different (subordinate) entries (with different 
application-specific object class assigned to them).

Anyway IMHO one objective of LDAP deployment was getting rid of many 
passwords. At least that's what I read in most "whitepapers"... ;-)

Ciao, Michael.

---

From: Peter Gietz <[email-masked]>
Date: Thu, 28 Nov 2002 17:26:46 +0100

> the particular credential - in this case a password associated with an 

Yes this came to my mind as well. Such a solution would also facilitate 
for other password policy attributes, such as duration, minimal length 
etc. etc. Implementationwise it seems to me that having all these 
attributes in one entry is far more easier than having to parse all the 
tags of the password attributes.

[...]> 
> A group of people interested in progressing the password policy draft 
> has been growing and exchanging emails off list. We're moving discussion 
> here so we have a list and a wider audience.

I very much appreciate this discussion. I think password policy is 
something more and more needed, since LDAP is more and more used as 
central authentication service.

And I appreciate that this discussion is now taking place on this list.

[...]
> other issues to anyone that wants them.

yes please. May be you could put them in a webarchive or so.

cheers,

Peter

-- 
_______________________________________________________________________

Peter Gietz (CEO)
DAASI International GmbH                phone: +49 7071 2970336
Wilhelmstr. 106                         Fax:   +49 7071 295114
D-72074 Tübingen                        email: [email-masked]
Germany                                 Web:   www.daasi.de

Directory Applications for Advanced Security and Information Management
_______________________________________________________________________