[16188] in Kerberos_V5_Development

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

Re: Pasword quality pluggable interface project review

daemon@ATHENA.MIT.EDU (ghudson@mit.edu)
Sun Aug 29 12:17:03 2010

Date: Sun, 29 Aug 2010 12:16:59 -0400 (EDT)
From: ghudson@mit.edu
Message-Id: <201008291616.o7TGGxum009115@outgoing.mit.edu>
To: ghudson@mit.edu
In-Reply-To: <201008280039.o7S0deDw002631@outgoing.mit.edu>
Cc: krbdev@mit.edu
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: krbdev-bounces@mit.edu

I uncovered one subtle issue during implementation: if a module's
check method decides it doesn't like a new password, what error code
should it return?

There are three error codes in kadm_err.et: KADM5_PASS_Q_TOOSHORT,
KADM5_PASS_Q_CLASS, and KADM5_PASS_Q_DICT.  Those error codes are
treated specially by kadmind's process_chpw_request().  But if plugins
are not tracking <kadm5/admin.h>, they won't have access to those
error codes.

krb5-strength sidesteps this issue by tying into find_word(), so that
all module errors are converted to KADM5_PASS_Q_DICT in libkadm5srv.

I can think of a few options which don't reintroduce <kadm5/admin.h>
into the API:

  * Add a boolean result argument to the check method, so that a
    failing password is not an error from the perspective of the
    pluggable interface.

  * Add a string result argument to the check method (to be set to
    NULL if the password passes quality checks), in the hopes that a
    module-generated explanation could be conveyed to the user.  No
    idea how this would ever be localized, though.  Also, the password
    change protocol doesn't appear to have a way to communicate such
    errors (looking at our implementation, anyway), so such strings
    would only show up in the kadmind log.

  * Create a new error in the krb5 table (or actually, the k5e1
    expansion table) for unspecified password quality failures, and
    treat that error code specially in process_chpw_request().
_______________________________________________
krbdev mailing list             krbdev@mit.edu
https://mailman.mit.edu/mailman/listinfo/krbdev

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