[Labeled-nfs] Labeled RPC & NFS
James Morris
jmorris at namei.org
Mon Jan 14 00:22:36 EST 2008
On Sun, 2 Dec 2007, Matthew N. Dodd wrote:
> >
> > > > I assume that's just for prototyping purposes? My understanding was
> > > > that we were going to do this via GSS.
> > > GSS adds nothing but additional complexity at this point. The key changes
> > > here are the ones that change the various cred structures consumed by the
> > > RPC and NFS code.
> >
> > Well, labeled NFS must work with existing GSS implementations, and it seems
> > that this scheme is incompatible with GSS as it is a distinct security
> > flavor of its own.
>
> So a couple of potential issues.
>
> The userland/kernel GSS protocol provides credential service on a per-UID
> basis.
>
> The credential cache mechanism matches per UID. (As did the auth_unix
> mechanism which is why I created a whole new auth_seclabel.)
>
> In general the current RPC implementation seems poorly suited to MAC
> environments.
>
> RPCSEC_GSS seems like a good idea, but the implementation isn't actually very
> extensible (in the way we need to be able to add additional fields to the
> credential.)
Ok, I don't disagree with the RPCSEC_GSS issues above, but I'm wondering
if it's viable to prevent its use when MAC labeling is active.
I gather the expectation is that AUTH_SECLABEL would be used in
conjunction with IPSec or other machine-based security. I believe this
can provide useful security if configured carefully, e.g. specify MAC
policy on the client so that only trusted subjects have the ability to
send traffic to the NFS port, to prevent forging of RPC messages (and thus
MAC attributes); or even use labeled IPSec :-)
However, I think that end to end authentication is still highly desirable,
so that stronger security measures such as hardware tokens and biometrics
can be used to establish a security relationship directly between the end
user and the server.
Let's say that someone manages to compromise a client machine via a kernel
bug in the case of using machine-based security only. They will then be
able to forge any MAC credentials which the server will accept from that
client machine. This may include all possible MAC credentials.
If the system was instead using end to end security, then the immediate
damage would be limited to forging MAC credentials of users only on the
compromised system, and if using e.g. hardware tokens, then perhaps
further limited to active sessions.
So, I think that admins will want the choice to use RPCSEC_GSS for end to
end security, and that we thus need to find another way to convey the MAC
credentials of users.
- James
--
James Morris
<jmorris at namei.org>
More information about the Labeled-nfs
mailing list