Re: [nfsv4] NFS over TLS for floating clients

Benjamin Kaduk <> Thu, 02 April 2020 03:34 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id DE6D73A08E0 for <>; Wed, 1 Apr 2020 20:34:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 4xp6ndwHjr0P for <>; Wed, 1 Apr 2020 20:34:29 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 45CA93A08DA for <>; Wed, 1 Apr 2020 20:34:28 -0700 (PDT)
Received: from ([]) (authenticated bits=56) (User authenticated as kaduk@ATHENA.MIT.EDU) by (8.14.7/8.12.4) with ESMTP id 0323YN4S029631 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 1 Apr 2020 23:34:25 -0400
Date: Wed, 1 Apr 2020 20:34:23 -0700
From: Benjamin Kaduk <>
To: Rick Macklem <>
Cc: Craig Everhart <>, Trond Myklebust <>, "" <>
Message-ID: <>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.12.1 (2019-06-15)
Archived-At: <>
Subject: Re: [nfsv4] NFS over TLS for floating clients
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NFSv4 Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 02 Apr 2020 03:34:31 -0000

On Wed, Apr 01, 2020 at 07:26:09PM +0000, Rick Macklem wrote:
> Benjamin Kaduk wrote:
> >On Mon, Mar 30, 2020 at 02:16:46AM +0000, Rick Macklem wrote:
> >> Benjamin Kaduk wrote:
> >> >
> >> >There's a little bit of a mismatch between what TLS client certificates say
> >> >and what TLS server certificate say, at least in the common class of usage.
> >> >If you read RFC 6125, you note that it *only* talks about naming TLS server
> >> >certificates, because the process for that is along the lines of "the
> >> >client figures out in some mechanism specified by the application protocol
> >> >a name that it's trying to contact, and the server has to present a
> >> >certificate that matches that desired name".  For client certificates, on
> >> >the other hand, the server may not have some preconceived notion of what
> >> >identity the client should be proving, and so the X.509 certificate serves
> >> >solely as an identifier, not a verification of identity.  In this sense,
> >> >depending on the server's authentication policy, there's not necessarily a
> >> >need for the client to have a well-known IP address or DNS name to validate
> >> >against.
> >> A case I've coded up that may or may not be allowed by the current draft is:
> >> - Optionally, if the client presents a certificate to the server that verifies and
> >>    where the CN is of the form "user@dns_domain", then this "user" is translated
> >
> >Oof, could I persuade you to go with a subjectAltName instead?  Putting
> >structure within (or really, using at all) the legacy subject CN is
> >generally disrecommended.
> I've changed it to use the otherName field of subjectAltName.
> I haven't figured out a nice way to input this to openssl, but inputting:
> works.
> >>    to a set of credentials used for all RPCs on the TCP connection instead of
> >>    what is   provided in the RPC request header. I put "user" in quotes because
> >>    I think you can argue that this is the identity of the client host and the server
> >>    chooses to assign credentials to that client identity.
> >>    (Basically, I'd argue that, for laptops, the line between "user" and "host" is fuzzy
> >>     and normally one and the same.)
> >
> >This is a unique-enough usage that I'd recommend a dedicated OID for the
> "otherName" SAN type.
> Any quick hints on how I get an OID?

Well, it's a distributed (hierarchical) assignment policy, so in theory
it's supposed to be pretty easy, in that you know someone who controls a
sub-arc of numbers and can assign you one from that.  There are several
subtrees that are managed by IANA that a final RFC could get an allocation
from, but that doesn't help you for your experimental/local use.
I expect there's a few folks on this list that could find someone to make
an allocation if needed.