Re: [nfsv4] New Version Notification for draft-cel-nfsv4-rpc-tls-01.txt

Chuck Lever <chuck.lever@oracle.com> Mon, 01 April 2019 17:50 UTC

Return-Path: <chuck.lever@oracle.com>
X-Original-To: nfsv4@ietfa.amsl.com
Delivered-To: nfsv4@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 14D2C1204CC for <nfsv4@ietfa.amsl.com>; Mon, 1 Apr 2019 10:50:42 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.3
X-Spam-Level:
X-Spam-Status: No, score=-4.3 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=oracle.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id U9JjIDtEJEWl for <nfsv4@ietfa.amsl.com>; Mon, 1 Apr 2019 10:50:38 -0700 (PDT)
Received: from aserp2130.oracle.com (aserp2130.oracle.com [141.146.126.79]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 3117D1204CA for <nfsv4@ietf.org>; Mon, 1 Apr 2019 10:50:37 -0700 (PDT)
Received: from pps.filterd (aserp2130.oracle.com [127.0.0.1]) by aserp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id x31Ho9Tf169526; Mon, 1 Apr 2019 17:50:36 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=content-type : mime-version : subject : from : in-reply-to : date : cc : content-transfer-encoding : message-id : references : to; s=corp-2018-07-02; bh=jYSkIH70QcFmqi2xhvBxROKom+oxuUggvsSZS3GsJGE=; b=s5+4G2HnxwvCnx0BJBAN6sF2MO5Tdg4RlFVN02jQ8jaVEuy/EaUS76OLnl7zAR9+fuO9 M9Jjj1SYRaPGxCSCKDsFMCu94azfdT7B7+hFLuXLP6qaRr0AwEG1OeOLGaHXmMp96/D6 94ARZsFvel68LnaqXBJ6/cgNUNjx4o29vyv8fLCyzbF1M6TfpDxUqFunGBmD7sIOQuYW zqtycKz7dvqXRLCeQmq8LVEiUu1W6ekmxu3xBOw/aYQmov3unDuKh+kxZZPMoGi+e5Io 7rUBgMkJe1rUYE+TFLqsX6/jZ4NGMMtr4NCTGXDHePZQPl2uwvJtvz0wMWSuySNcUbvV mQ==
Received: from aserv0022.oracle.com (aserv0022.oracle.com [141.146.126.234]) by aserp2130.oracle.com with ESMTP id 2rhwyd0q1p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 01 Apr 2019 17:50:36 +0000
Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserv0022.oracle.com (8.14.4/8.14.4) with ESMTP id x31HoZXT005794 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 1 Apr 2019 17:50:35 GMT
Received: from abhmp0005.oracle.com (abhmp0005.oracle.com [141.146.116.11]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id x31HoZ4K010104; Mon, 1 Apr 2019 17:50:35 GMT
Received: from anon-dhcp-171.1015granger.net (/68.61.232.219) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 01 Apr 2019 10:50:34 -0700
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\))
From: Chuck Lever <chuck.lever@oracle.com>
In-Reply-To: <CAN-5tyFU_9v=OQcvEfkC-YLJZTEenRyNa67YPJBBnNG8g0EsTQ@mail.gmail.com>
Date: Mon, 01 Apr 2019 13:50:33 -0400
Cc: NFSv4 <nfsv4@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <1362131D-77D7-4BF0-AD50-9B775508F439@oracle.com>
References: <154264272736.5235.8955444239583271708.idtracker@ietfa.amsl.com> <CO2PR0601MB7597A7490C43DAE5A3268E6B5D80@CO2PR0601MB759.namprd06.prod.outlook.com> <39802AA5-3F70-48C7-824B-CAC0FB871016@oracle.com> <CADaq8jc82bfxpjxz_f6Uy-4c0yazJujOrKo+TejPkx-q6qq_3Q@mail.gmail.com> <1480794517.422703.1553504031783.JavaMail.zimbra@desy.de> <4F7BC6A0-50F9-47BC-8465-28833835E7F6@oracle.com> <1119874674.601037.1553546666143.JavaMail.zimbra@desy.de> <946EFDD8-F04D-49CD-A1C8-D8E8A6D5EE35@oracle.com> <2020506870.740381.1553612716598.JavaMail.zimbra@desy.de> <CAN-5tyGggDUe2DNSjRc6vAyXgGo4LVwYVK5zmTOyr0soPFVKrQ@mail.gmail.com> <3705AA25-10DF-43BF-BE1D-B0BE27F705DE@eggert.org> <0E00BED9-74D4-4594-A7AC-FCD624461DD7@eggert.org> <880CC259-A82A-401F-A81D-5FCD6A9758B3@oracle.com> <SN4PR2101MB0736EF7A385F5D95107D4118A05F0@SN4PR2101MB0736.namprd21.prod.outlook.com> <3A634328-B190-473B-A6D7-C5878CC2654B@oracle.com> <SN4PR2101MB073663820F28F2AAA8766E38A05A0@SN4PR2101MB0736.namprd21.prod.outlook.com> <D43B092E-03D1-470F-AF57-1E9416E8518E@oracle.com> <CAN-5tyFU_9v=OQcvEfkC-YLJZTEenRyNa67YPJBBnNG8g0EsTQ@mail.gmail.com>
To: Olga Kornievskaia <aglo@umich.edu>
X-Mailer: Apple Mail (2.3445.102.3)
X-Proofpoint-Virus-Version: vendor=nai engine=5900 definitions=9214 signatures=668685
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1810050000 definitions=main-1904010116
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/btjeO9_01dFz77Zz5qTEGsEqCf8>
Subject: Re: [nfsv4] New Version Notification for draft-cel-nfsv4-rpc-tls-01.txt
X-BeenThere: nfsv4@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NFSv4 Working Group <nfsv4.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/nfsv4/>
List-Post: <mailto:nfsv4@ietf.org>
List-Help: <mailto:nfsv4-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/nfsv4>, <mailto:nfsv4-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Apr 2019 17:50:42 -0000

Olga, thanks for your comments.


> On Apr 1, 2019, at 12:06 PM, Olga Kornievskaia <aglo@umich.edu> wrote:
> 
> Comments about the draft-1 and section 4.3 Authentication.
> 
> 1. Why is there no option of no client authentication and simply using
> server-side authentication and using AUTH_SYS on top of it (and
> perhaps this is addressed by the 2nd editorial comment in the [] but
> the lack including this as an option bothered me). I think this is the
> most useful option to be considered.

I quite agree that it is the most useful. I don't see where we are
specifically excluding that option, however.


> I don't see how adding
> self-signed client certificates adds to the security of the system but
> instead this adds a costly PKI operation that would impact the time it
> takes to establish a secure connection.

Self-signed certificates allow a form of weak authentication by the
server. At least it can audit which client is connecting. The
discussion of self-signed certs can be removed if it's not something
we want to explicitly commend.

It can be made a little more robust by using DANE, maybe.


> 2. If there is an addition of certificated-based authentication (and
> specifically for option #4 of PKI-based crews + AUTH_NONE) shouldn't
> there be wording on what it means to do PKI-based authentication (the
> whole fun of interpreting X.509-based certification etc).

Feel free to propose text, or point us to an example discussion.


> 3. This is about the wording of option #3 and specifically ".. doesn't
> need to enable costly GSS integrity or privacy services". This to me
> reads that GSS integrity/privacy services is more costly that doing
> the same with TLS which I don't believe is a true statement.

It is a true statement in the sense that TLS may be offloaded from the
host. Otherwise, I agree: if encryption is done by the host CPU, there
is going to be little or no difference in computational cost.


> Shouldn't
> it be something like "it can forego using GSS integrity/privacy
> services because the transport layer already provides an encrypted
> connection" or something of the sorts that say we don't need to do
> integrity/privacy twice?

Sure, that's fair. I'll revise that text.


> 4. This is somewhat implementation specific question. If the draft is
> introducing an AUTH_TLS RPC security mechanism, I assume in linux we'd
> translate it to "sec=tls" option to be like other RPC AUTH mechanisms.
> But "sec=tls" doesn't quite work, it better fits with the "proto=tls"
> option group because "tls" by itself isn't enough. It'll always be
> combined with a traditional "sec=sys" or "sec=krb5". Then we are
> really introducing an option like "sec=tls+sys" or "sec=tls+krb5".

This is an implementation issue rather than a protocol issue, of
course, but I don't feel that sec= makes sense at this point. We
are not changing the way RPC users are authenticated, which is what
sec= controls.


> Then shouldn't we be introducing something like AUTH_TLS_SYS and
> AUTH_TLS_GSS?

No. The purpose of AUTH_TLS is simply to discover server support for
TLS. It is explicitly forbidden to be used after the TLS handshake.


> Or if we are really talking about "proto=tls" (or
> proto=dtls) do we even need AUTH_TLS and couldn't it be port-based
> decision to support it or not (but yes I read the RFC 2595 that
> discourages the use of "secure" ports as they could lead to user and
> administrator misconceptions). To reiterate, I feel that if AUTH_TLS
> is added but "sec=tls isn't used it would be confusing to users.

See earlier parts of this thread. I think we are purposely trying to
avoid introducing new ports and portmapper dependencies. A netid-
based solution is probably a non-starter.

I expect we will add a family of TLS mount and export options to
control transport-level security, separate from transport protocol
and user authentication mode.


> On Fri, Mar 29, 2019 at 10:18 AM Chuck Lever <chuck.lever@oracle.com> wrote:
>> 
>> 
>> 
>>> On Mar 28, 2019, at 8:35 PM, Tom Talpey <ttalpey@microsoft.com> wrote:
>>> 
>>>> -----Original Message-----
>>>> From: Chuck Lever <chuck.lever@oracle.com>
>>>> Sent: Thursday, March 28, 2019 3:43 PM
>>>> To: Tom Talpey <ttalpey@microsoft.com>
>>>> Cc: Lars Eggert <lars@eggert.org>; NFSv4 <nfsv4@ietf.org>
>>>> Subject: Re: [nfsv4] New Version Notification for draft-cel-nfsv4-rpc-tls-01.txt
>>>> 
>>>> 
>>>>> On Mar 26, 2019, at 1:58 PM, Tom Talpey <ttalpey@microsoft.com> wrote:
>>>>> 
>>>>>> -----Original Message-----
>>>>>> From: nfsv4 <nfsv4-bounces@ietf.org> On Behalf Of Chuck Lever
>>>>>> Sent: Tuesday, March 26, 2019 1:52 PM
>>>>>> To: Lars Eggert <lars@eggert.org>
>>>>>> Cc: NFSv4 <nfsv4@ietf.org>
>>>>>> Subject: Re: [nfsv4] New Version Notification for draft-cel-nfsv4-rpc-tls-
>>>> 01.txt
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>>> On Mar 26, 2019, at 12:35 PM, Lars Eggert <lars@eggert.org> wrote:
>>>>>>> 
>>>>>>> On 2019-3-26, at 17:33, Lars Eggert <lars@eggert.org> wrote:
>>>>>>>> Also note that STARTTLS is somewhat less secure than running TLS
>>>> directly.
>>>>>> See for example Section 6 of RFC3207:
>>>>>>>> 
>>>>>>>> A man-in-the-middle attack can be launched by deleting the "250
>>>>>>>> STARTTLS" response from the server.  This would cause the client not
>>>>>>>> to try to start a TLS session.  Another man-in-the-middle attack is
>>>>>>>> to allow the server to announce its STARTTLS capability, but to alter
>>>>>>>> the client's request to start TLS and the server's response.
>>>>>>>> 
>>>>>>>> ...
>>>>>>> 
>>>>>>> And RFC8314 recommends (for mail) that "implicit TLS" should be used
>>>>>> instead of STARTTLS.
>>>>>> 
>>>>>> Perhaps that is what we should require for RPC on TLS;
>>>>>> that is, "STARTTLS MUST NOT be used"?
>>>>> 
>>>>> It's a fine requirement, but there may need to be a justification for the MUST.
>>>>> 
>>>>> It's important to note that such a requirement means you'll need to allocate
>>>>> a new port number for such connections. This would apply to any upper
>>>>> layer using the new RPC flavor, which in turn might impact the portmapper.
>>>>> Note, it may also have implications on the proposed negotiation. If TLS is
>>>>> a "done deal", negotiating the auth flavor may be moot.
>>>> 
>>>> We could create a new netid for this purpose.
>>>> 
>>>> Advertise an RPC program with this new netid, and no STARTTLS would
>>>> be needed. The client simply connects and begins TLS negotiation.
>>> 
>>> But, the current draft proposes using a new AUTH_TLS exchange, which
>>> if successful allows the client to perform a STARTTLS. If you define a netid
>>> and/or port number, the client would simply start in TLS, prior to even
>>> sending its first RPC.
>>> 
>>> Would that not simply make the whole draft unnecessary?
>> 
>> No. The current revision places a number of restrictions on how TLS
>> is used, and that is needed in any case. But, the draft could define
>> new netids and reserve a new port number for making portmapper requests
>> using TLS.
>> 
>> Anyway, this is a strawman. I wanted to bring it up to ensure we are
>> happy with using STARTTLS.
>> 
>> 
>> --
>> Chuck Lever
>> 
>> 
>> 
>> _______________________________________________
>> nfsv4 mailing list
>> nfsv4@ietf.org
>> https://www.ietf.org/mailman/listinfo/nfsv4
> 
> _______________________________________________
> nfsv4 mailing list
> nfsv4@ietf.org
> https://www.ietf.org/mailman/listinfo/nfsv4

--
Chuck Lever