[OpenAFS] home on afs woes
Jeffrey Hutzelman
jhutz@cmu.edu
Wed, 04 Jan 2006 19:26:07 -0500
On Wednesday, January 04, 2006 05:31:15 PM -0600 "Douglas E. Engert"
<deengert@anl.gov> wrote:
> Exactly where in the PAM stack do you want
>> to obtain (and, if need be, discard) this extra token? pam_open_session()
>
> I am not sure. It has to be after the GSSAPI or pam_authenticate has a TGT
> (which could have been via keyboard interactive or at the console) but
> before
> the krb5_kuserok is called.
You don't want to use the forwarded ticket for this, or one that was
obtained by pam_authenticate. Those are tickets for which the client
(read: attacker) knows the session key, and thus can spoof the server and
give you back a false .klogin file.
Access to the klogin file must in some way be protected by a key which the
potential attacker does not and cannot know.
In AFS, the intended mechanism for this is a feature of rxgk that will
allow the cache manager to combine users' credentials with its own in such
a way that traffic is protected by a key which is tied to the user's
identity but is known only to the cache manager. One side effect of the
technique used to achieve this is that the cache manager will be able to
protect _all_ communication with the fileserver, even when done on behalf
of unauthenticated users.
Another is that, if we choose to implement the feature, the fileserver will
be able to make access control decisions based on the client host's
identity as well as that of the user. The effect would be similar to the
behavior of IP-address ACL's today, except that it would behave reasonably
consistently and would actually be secure.
With these features, it is possible to access and trust a .klogin file
without requiring the user's credentials, if users and/or administrators
are willing to set permissive enough ACL's. Personally, I fall into that
camp -- I don't mind if .k5login contents are world-readable.
Another feature I'd like to see added to the ptserver is the ability to map
a large set of Kerberos principals (either enumerated or based on a
pattern) to a single PTS entry. I've been thinking about this for a long
time, though, and haven't yet come up with a way to represent it that
doesn't make the lookups grossly inefficient (something we cannot afford;
this is an operation the fileserver uses a lot, and its performance is a
real issue).
If we can ever find a way to provide that capability, it should allow the
camp that wants to keep klogin files secret a way to do so without creating
a pts entry for every host.
-- Jeffrey T. Hutzelman (N3NHS) <jhutz+@cmu.edu>
Sr. Research Systems Programmer
School of Computer Science - Research Computing Facility
Carnegie Mellon University - Pittsburgh, PA