OTP, deployability.

Roland C. Dowdeswell elric at imrryr.org
Thu Jun 16 13:35:38 EDT 2011


I have been reading some of the recent discussions on the list
about implmenting new pre-auth mechanisms to deal with OTP with
some interest.  Also, the recent thread about storing passwds in
memory revived my interest as OTP mechanisms are the obvious way
to stop this from posing a security risk as they would simply store
a string that was no longer directly useful.

I considered deploying OTP via Kerberos at a previous employers a
number of years ago and have a number of observations from a large
scale existing Kerberos shop that might be of interest.

If one has a large deployed Kerberos infrastructure, it would be
much easier to deploy it if it did not involve the addition of
pre-authentication mechanisms but rather was able to work with
PA-ENC-TIMESTAMP using a single password prompt.  This is certainly
not possible for all OTP mechanisms, e.g. if there is a challenge
response, well, obviously you must deliver the challenge in some
fashion.  But for event-based or time-based OTP systems where there
is no challenge, it should be possible to deploy them by simply
modifying the KDC and user behaviour but not the client libraries.

The reasons that you might like to be able to do this are many but
the most important ones that spring to mind are:

	1.  A large existing Kerberos shop will likely have a rather
	    heterogenous environment with many OSes floating about
	    all of which are required to continue working.  You
	    are unlikely to be able to affect change to, e.g.  the
	    older unsupported Windows machines but large organisations
	    will generally have software which does not work on
	    newer OS builds.  It sometimes takes many many years
	    to work the older OSes out of the environment.

	2.  Upgrading PAM stacks even on existing OSes can prove to
	    be difficult due to ABI issues, etc.  Applications that
	    both use Kerberos ticket-based authentication and PAM
	    have to have either PAM stacks that are built with the
	    same version of the Kerberos libraries or a PAM stack
	    that plays a few games to get to use its version of
	    the krb5 libs (perhaps simply linking the krb5 libs
	    into the PAM stack statically).

	3.  A lot of PAM applications assume user+pass and cannot
	    deal with a proper conversation.  Especially on older
	    OS versons: I'm pretty sure that I've seen issues with
	    gdm, xlock and xscreensaver in the last five or so years.
	    (But my memory could be a bit hazy.)

	4.  Large Kerberos shops rarely use Kerberos only for authentication
	    but frequently have legacy applications that provide username
	    and passwd.  Many of these might of been written prior to
	    Kerberos being installed or perhaps just cargo-culted from
	    older software.  This software is unlikely to understand
	    the conversation in krb5_get_init_creds() because, well,
	    let's just be honest: the developers noted that it would
	    be harder to do it properly and so they didn't under the
	    assumption that the world would never change.

	5.  3rd party vendor code frequently expects to do a PLAIN
	    auth against LDAP to validate user passwds.  Maybe some
	    internally developed software simply queries LDAP.

	6.  web browsers on iPhones, iPads, blackberries, etc. can't
	    do Kerberos and likely connect to one or more systems that
	    are likely to have the assumption that user+pass is the
	    structure of authentication.

These sorts of issues could take years to resolve at a large company.

None of what I am saying should be interpreted to mean that I think
that new preauth mechanisms shouldn't be developed, but rather, I
think that it would be quite useful to a number of environments if
there were an option or two to deploy OTP without changing the
current AS_REQ exchanges---especially in the short term---because
rolling out new pre-auth mechanisms might take many years at many
established institutions.

--
    Roland Dowdeswell                      http://Imrryr.ORG/~elric/



More information about the krbdev mailing list