linux-nfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: NeilBrown <neilb@suse.de>
To: Chuck Lever <chuck.lever@oracle.com>
Cc: Steve Dickson <SteveD@redhat.com>, linux-nfs@vger.kernel.org
Subject: Re: [PATCH 0/3] Various gssd fixes including machine-credential issue.
Date: Thu, 6 Jun 2013 09:43:36 +1000	[thread overview]
Message-ID: <20130606094336.4faf099d@notabene.brown> (raw)
In-Reply-To: <1ECE6C65-EE15-46C1-97D1-636B15A775F7@oracle.com>

[-- Attachment #1: Type: text/plain, Size: 3747 bytes --]

On Wed, 5 Jun 2013 11:37:12 -0400 Chuck Lever <chuck.lever@oracle.com> wrote:

> Again, I ask: what is being protected?  Why would an administrator make this requirement?  I would like to clearly understand this particular attack so we can design a smart solution that does what administrators want.

I honestly have no idea.  But if there is nothing to be protected, why would
someone recommend (even if they don't require) integrity protection?

If I was setting up a server and was concerned about security I would be
choosing options that required signed messages where-ever possible, even if I
couldn't see the exact scenario by which a non-signed message could cause a
problem.

Certainly in an AUTH_SYS environment (trusted network transport), AUTH_SYS or
AUTH_NONE should be enough for SETCLIENTID.  But you want an AUTH_GSS
environment, why not aim to make everything use AUTH_GSS?

> 
> > For 3.6 (and earlier?) a client could work with this by running "kinit" as
> > both themselves and root, and running "gssd -n".  Then whenever they access
> > files, or whenever root accesses files on their behalf, the access uses their
> > credential and works.  The only access that tried to use the machine
> > credential (which doesn't exist) would be performed in the context of an
> > access by the user (an open) and would fall back on the user's credential.
> > 
> > In 3.[789] the mount doesn't work because it requires a SETCLIENTID which
> > tries to use the machine credential and has no user to fall back on.
> > It falls back on AUTH_NONE (is that right?) which the server doesn't accept.
> 
> The 3.7+ fallback logic works just like 3.6 and earlier.  The difference is that now the SETCLIENTID occurs as the first operation on the first mount.  At that early stage, there are no user credentials available because no-one has attempted to create any open or lock state, which is what is mined on the client for a user credential.
> 
> > In 3.10 the same happens but now it falls back on AUTH_SYS and the server
> > still doesn't accept it (because Dave said integrity protection is important).
> 
> No one has proposed a server change, so AUTH_SYS should be a reasonable choice.  Servers do not have to enforce the use of integrity-protecting security flavors for lease management unless the administrators recognize a palpable threat.  I'm trying to identify what kind of threats that might be, because so far we have been talking in hypotheticals.

If it is only hypothetical, why is it even recommended?  I must be missing
something.
If we expect the server will always accept AUTH_SYS, why ever bother sending
anything else?
If we expect the server might not accept AUTH_SYS, we should do our best to
send the appropriate authentication.



> > Your desire to make it "just work" without monkeying around with flags to gssd
> > is certainly good.  However there is a key difference between a multi-user
> > client and a single-user client.  For the multi-user client there must be a
> > separate "root" identity, whether in the form of a machine credential or a
> > credential for uid=0.  For the single-user client there is only one identity.
> > So somewhere that distinction needs to be configured.
> 
> I believe we will be fundamentally better off if we use the same mechanism in both cases.  The implementation is less complex and easier for us to test and maintain.  The promise of a broad "no configuration" solution also has its appeal.

Certainly agree it would be better.  Not convinced it is actually possible.
Not an important issue for me at the moment though.

I've provided a patched kernel to customer.  Hopefully will hear back soon.

Thanks
NeilBrown

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 828 bytes --]

  parent reply	other threads:[~2013-06-05 23:43 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-06-03  1:00 [PATCH 0/3] Various gssd fixes including machine-credential issue Neil Brown
2013-06-03  1:00 ` [PATCH 1/3] krb5_utils: remove redundant array size Neil Brown
2013-07-01 16:05   ` Steve Dickson
2013-06-03  1:00 ` [PATCH 3/3] gssd: add -N option to use root credentials as machine credentials Neil Brown
2013-07-01 16:23   ` Steve Dickson
2013-07-01 21:35     ` NeilBrown
2013-06-03  1:00 ` [PATCH 2/3] krb5_util: don't give up on machine credential if hostname not available Neil Brown
2013-07-01 16:22   ` Steve Dickson
2013-07-01 21:56     ` NeilBrown
2013-07-02 12:29       ` Steve Dickson
2013-07-02 12:29   ` Steve Dickson
2013-06-03  2:01 ` [PATCH 0/3] Various gssd fixes including machine-credential issue Chuck Lever
2013-06-03  2:23   ` NeilBrown
2013-06-03  2:45     ` Chuck Lever
2013-06-03  3:01       ` NeilBrown
2013-06-03  4:32         ` Chuck Lever
2013-06-03 23:30           ` NeilBrown
2013-06-04  1:13             ` Chuck Lever
2013-06-04 19:16               ` Chuck Lever
2013-06-05  1:26                 ` NeilBrown
2013-06-05 15:37                   ` Chuck Lever
2013-06-05 17:14                     ` Chuck Lever
2013-06-05 23:53                       ` NeilBrown
2013-06-05 23:43                     ` NeilBrown [this message]
2013-06-12  6:12                       ` NeilBrown
2013-06-12 16:01                         ` Chuck Lever
  -- strict thread matches above, loose matches on Subject: below --
2013-06-05 14:05 E.G. Keizer
2013-06-05 14:25 ` Myklebust, Trond
2013-06-05 14:48   ` E.G. Keizer
2013-06-05 15:14     ` Myklebust, Trond
2013-06-05 15:19     ` Chuck Lever
2013-06-05 15:23       ` Myklebust, Trond
2013-06-05 15:24         ` Chuck Lever

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130606094336.4faf099d@notabene.brown \
    --to=neilb@suse.de \
    --cc=SteveD@redhat.com \
    --cc=chuck.lever@oracle.com \
    --cc=linux-nfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).