Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 8 Jan 2018 18:44:43 -0600
From:      Benjamin Kaduk <kaduk@mit.edu>
To:        Rick Macklem <rmacklem@uoguelph.ca>
Cc:        Garrett Wollman <wollman@bimajority.org>, "freebsd-fs@freebsd.org" <freebsd-fs@freebsd.org>
Subject:   Re: Anyone managed to build a static gssd?
Message-ID:  <20180109004443.GK25484@kduck.kaduk.org>
In-Reply-To: <YTOPR0101MB2172DBE2F99D65C3E7D8FCD3DD130@YTOPR0101MB2172.CANPRD01.PROD.OUTLOOK.COM>
References:  <23121.48634.348216.421634@hergotha.csail.mit.edu> <20180107190802.GD25484@kduck.kaduk.org> <YTOPR0101MB21723D8BB5B9AFFCD051F512DD120@YTOPR0101MB2172.CANPRD01.PROD.OUTLOOK.COM> <23122.42381.906072.663073@hergotha.csail.mit.edu> <YTOPR0101MB2172DBE2F99D65C3E7D8FCD3DD130@YTOPR0101MB2172.CANPRD01.PROD.OUTLOOK.COM>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jan 08, 2018 at 01:52:48PM +0000, Rick Macklem wrote:
> Garrett Wollman wrote:
> [good stuff snipped]
> > What would it take to get AES support?
> Good question. Unfortunately I don't know the answer.
> (I shouldn't have blamed RPCSEC_GSS Version 1, since it isn't this spec
>  that is the problem, from what I know.)
> 
> 1 - The kernel RPCSEC_GSS code does upcalls to the userland library for
>    the initialization phase (ie. GSS_Init() calls using the tokens).
>    --> So question #1 becomes "Does the Heimdal GSSAPI library know how
>          to do better checksum/encryption than was specified in the original
>          GSSAPI RFC?".

Heavens; yes!  Per RFC 6649, you shouldn't be using single-DES for
anything you actually care about the confidentiality of.

> 2 - The kernel RPCSEC_GSS code uses the session key from the GSS_Init()
>   handling of the tokens to do checksums/encryption. (Basically in kernel
>    versions of GSS_GetMIC(), GSS_VerifyMIC(), GSS_Wrap, GSS_Unwrap().)
>    If the answer to #1 is yes, then it  might not be that much work?

sys/kgssapi/krb5 has bits for aes/RC4/etc.

> 3 - I have never seen any definition of what the QOPs are for better encryption
>   types in the GSSAPI. (Numbers that define the better checksum/encryption
>   algorithms.)
>   --> I have no idea if the NFS implementors have done anything about this.
>         I haven't seen discussions of it on nfsv4@ietf.org, but it may have happened.
>         Without this, you'd end up with a FreeBSD specific hack that didn't
>         interoperate with other NFS implementation.s
>         In practice these days "If Linux supports it, others will too.".

The GSS QOP should be considered deprecated as of GSS-API version2,
and GSS_C_QOP_DEFAULT is the only thing I ever see used.
The session key output by the GSS security context negotiation will
be of an encryption type supported by both peers, so there "ought
not" be any code changes needed to the GSS-API consumer code.

> If you can answer all of the above, then you probably know the answer.
> It could range from some fairly minor changes to the kernel RPCSEC_GSS
> code to a whole lot of work.
> 
> Maybe some Kerberos conversant folk can shed light on this?

The above all adds up to a situation where the last time I tried to
look at this (a few years ago), I had managed to convince myself
that non-single-DES should "just work" as-is.  But I didn't actually
spin up a test server to verify that.

-Ben



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20180109004443.GK25484>