Re: KDC model and atomicity

Nico Williams <[email protected]> Wed, 13 Jun 2012 18:55:14 -0500
Newsgroups gmane.ietf.krb-wg
Message-ID <CAK3OfOjOkxiSbJQR8Gt-eW_2MQ9z6HP_ZH5mZt191-6+kzhWJg@mail.gmail.com>
On Wed, Jun 13, 2012 at 6:41 PM, Jeffrey Hutzelman <[email protected]> wrote:
> Right.  However, note that the present attribute as described may not be
> the one that a KDC can provide, depending on how its policy works.  I'd
> suggest three attributes:
>
> - failed auths since last successful auth
> - failed auths since last key/pw change
> - failed auths since "forever"
>
> ... where "forever" does not necessarily extend past deleting and
> recreating the principal, or administratively resetting the counter, or
> whatever.

I see no point for the third one unless forever means [effectively]
"since unlock".

> All three attributes should be both read-only and optional, with the
> expectation that most KDCs will implement at most one.

At most?  As long as it isn't "at least".

> Same deal with timestamp of last successful/unsuccessful/attempt.

I'd rather not have that attribute at all.  Because why not list all
times of unsuccessful attempts since some point in time?

But also, none of this really says anything at all about password
guessing attacks.

A smart attacker will try a safe number of passwords < N for each
principal in whatever period of time the attacker can expect the users
to successfully authenticate.  This way the attacker can mount a slow
attack, but if there's lots of users the attacker can still make
progress fairly quickly.  Which really goes to my second objection: I
object to N-strikes-you're-locked.  It's not a good feature; it's a
_DoS_ attack vector where none need exist; it's hard to implement
correctly; it doesn't actually protect against password guessing
attacks, and it protects less well as the number of users in a realm
goes up.

I'd be much happier just ripping this out.  If it must stay in I want
all of it to be optional, and I want the security considerations
section to discuss the DoS issue and the low effectiveness of this
feature in stopping password guessing attacks.

>> We need to describe how to unlock a principal though.
>
> Yup.  For this I'd suggest a boolean attribute indicating the principal
> is locked out, which MAY be write-only, and in fact MAY support only
> writing a value of "false".

As long as it's clear that this can be a virtual attribute such that
modifying it is possibly equivalent to an operation.  But see above.

Nico
--
_______________________________________________
ietf-krb-wg mailing list
[email protected]
https://lists.anl.gov/mailman/listinfo/ietf-krb-wg