[18787] in Kerberos_V5_Development

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

Re: Automatic FAST via Anonymous PKINIT

daemon@ATHENA.MIT.EDU (Benjamin Kaduk)
Fri May 30 13:17:05 2014

Date: Fri, 30 May 2014 13:16:51 -0400 (EDT)
From: Benjamin Kaduk <kaduk@mit.edu>
To: Nathaniel McCallum <npmccallum@redhat.com>
In-Reply-To: <5387815B.9040504@mit.edu>
Message-ID: <alpine.GSO.1.10.1405301313060.25244@multics.mit.edu>
MIME-Version: 1.0
Cc: krbdev@mit.edu
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Errors-To: krbdev-bounces@mit.edu

On Thu, 29 May 2014, Greg Hudson wrote:

> On 05/20/2014 02:59 PM, Nathaniel McCallum wrote:
>> The client should detect the following state: [...]
>>
>> Currently, when this state exists, the client fails to authenticate. I
>> would like to propose that when this state exists, the client should
>> instead attempt to perform anonymous PKINIT and use the resulting ticket
>> to establish the FAST channel to find if new preauth mechs are
>> available.
>
> I think this is a good idea, but we need to consider how to cache the

I re-read the original proposal, and also think it's a good idea.

The only thing that seems like it might require additional thought is the 
server policy side, where the logic could get a bit complicated depending 
on what preauth schemes are in play.  I don't think there's anything 
non-obvious, just that a KDC serving some clients which only do pkinit, 
some that only do OTP, etc., requires some logic to know what to offer in 
each case.

> 1. Don't cache it; get a new anonymous credential each time we run into
> this situation.
>
> 2. Cache it in a MEMORY ccache with a fixed name.
>
> 3. If the default ccache is collection-enabled, add the ticket to the
> collection using the anonymous name.  This might be a bad idea; we don't
> necessarily want WELLKNOWN/ANONYMOUS to become one of the identities to
> consider authenticating with.
>
> 4. Introduce the concept of the default fast ccache with discovery
> options paralleling the regular default ccache ($KRB5FASTCCNAME,
> [libdefaults]->default_fast_ccache_name, a hardcoded default like
> /tmp/krb5fastcc_%{uid} overridable at build time).  This could also be
> used by pam_krb5 to provide an armor ticket from the keytab for use by
> AS requests, on systems with keytabs.
>
> Option 4 has the biggest footprint, but is my current preference.  If
> the default fast ccache doesn't exist or can't be used, we can fall back
> to option 2.

Option 4 looks fairly appealing.  It's possible that option 1 would be 
reasonable, but I don't have a good feel for what the performance impact 
would be of needing to do a public-key operation for every such 
authentication.

-Ben
_______________________________________________
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