Re: [nfsv4] AD review of draft-ietf-nfsv4-rpc-tls

Chuck Lever <chuck.lever@oracle.com> Mon, 20 April 2020 13:47 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 B22BE3A0D7C for <nfsv4@ietfa.amsl.com>; Mon, 20 Apr 2020 06:47:44 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.2
X-Spam-Level:
X-Spam-Status: No, score=-0.2 tagged_above=-999 required=5 tests=[DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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 Vjyvug_Enhq4 for <nfsv4@ietfa.amsl.com>; Mon, 20 Apr 2020 06:47:42 -0700 (PDT)
Received: from aserp2120.oracle.com (aserp2120.oracle.com [141.146.126.78]) (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 DCE543A0D7B for <nfsv4@ietf.org>; Mon, 20 Apr 2020 06:47:41 -0700 (PDT)
Received: from pps.filterd (aserp2120.oracle.com [127.0.0.1]) by aserp2120.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 03KDcXGI171846; Mon, 20 Apr 2020 13:47:38 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-2020-01-29; bh=6loxeSQ9P12QUA4Ix5lvT41/AK5CxartABPPAXrDUVA=; b=UxQqLUyrDk9lzt0Tr1NMNtt12mYrlOJpXqAoTnAETn83V60HF4+BEZuZ2Vf4+xvBllGw 0yt+P8WSrSsFEmR3ZL58Oy1apmvNDcrPx8Mnrdf5XVO+Vh/rCt9/CxvCwdYKbcPbxg2m gIPh2GHUe+6t/x5IFj7jURBZzfZ5MFC3Y1zd1mZqbC7fSYMTMPLLmZgxv3n7ga59OTA2 uh3Gn5cNylnhE7scNj0+vX2/bAcLcEZW+JAQs591dRg10qBXqlKMT1RCjOWTYAAZpzjb ftXOyitG4gK0nwtgUxsywJENk3Q2+qRh4rtOUxY/3GpDml8yfBiU/0g+Rx+S02GrVA0D cQ==
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by aserp2120.oracle.com with ESMTP id 30fsgkqaed-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 20 Apr 2020 13:47:38 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 03KDlVw6119638; Mon, 20 Apr 2020 13:47:38 GMT
Received: from aserv0122.oracle.com (aserv0122.oracle.com [141.146.126.236]) by aserp3030.oracle.com with ESMTP id 30gb3qfmb1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 20 Apr 2020 13:47:38 +0000
Received: from abhmp0012.oracle.com (abhmp0012.oracle.com [141.146.116.18]) by aserv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 03KDlbMx002665; Mon, 20 Apr 2020 13:47:37 GMT
Received: from anon-dhcp-153.1015granger.net (/68.61.232.219) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 20 Apr 2020 06:47:37 -0700
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
From: Chuck Lever <chuck.lever@oracle.com>
In-Reply-To: <17d789f5353a015cd4dedfce84676a29f87272fb.camel@gmail.com>
Date: Mon, 20 Apr 2020 09:47:34 -0400
Cc: NFSv4 <nfsv4@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <534DBBED-1D03-4C24-BCEC-42CF37852176@oracle.com>
References: <VI1PR0702MB3775838FD12AB8A89392C17B95C90@VI1PR0702MB3775.eurprd07.prod.outlook.com> <FA2D661E-A787-4772-8F9D-A7594AE82F38@oracle.com> <CADaq8jciLWhL_FMmPcsdrVVS=9Gee8SYAsqi36H5v9iuNo7Pgw@mail.gmail.com> <E414F060-532B-4017-AC7E-5869884B2153@oracle.com> <e5796752c6204ffdd78503b1a9c9045cfd761e52.camel@gmail.com> <F9AC44CE-750E-416A-944D-E2382524020E@oracle.com> <19d2513b1093fc71223e361afca90d1a1ad6183a.camel@gmail.com> <E8D24949-C2A3-463A-953F-FAE7F46D4D23@oracle.com> <4e7912c6c55680f50b05aaa2cdc98f59733cd5b2.camel@ericsson.com> <C89BF8F3-7F65-4995-9CDB-CC1673E01463@oracle.com> <CADaq8jdUtDLDPPKM8GgsNFdOOOS+eAGsjrcoA9N8s8+G7FdxRw@mail.gmail.com> <17d789f5353a015cd4dedfce84676a29f87272fb.camel@gmail.com>
To: Trond Myklebust <trondmy@gmail.com>, David Noveck <davenoveck@gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9596 signatures=668686
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 spamscore=0 adultscore=0 mlxlogscore=999 phishscore=0 suspectscore=0 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004200118
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9596 signatures=668686
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 priorityscore=1501 lowpriorityscore=0 mlxlogscore=999 malwarescore=0 clxscore=1015 spamscore=0 bulkscore=0 phishscore=0 suspectscore=0 impostorscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004200117
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/0tdFsFNOyazF3alUNAKmNFkE0_c>
Subject: Re: [nfsv4] AD review of draft-ietf-nfsv4-rpc-tls
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, 20 Apr 2020 13:47:45 -0000


> On Apr 20, 2020, at 8:45 AM, Trond Myklebust <trondmy@gmail.com> wrote:
> 
> On Mon, 2020-04-20 at 05:51 -0400, David Noveck wrote:
>> 
>> 
>> On Sun, Apr 19, 2020, 11:40 AM Chuck Lever <chuck.lever@oracle.com> wrote:
>>> > 
>>> > On Tue, 2020-04-14 at 11:39 -0400, Chuck Lever wrote:
>>> >>   o  If a client uses an ephemeral source port for a TCP connection and
>>> >>      does not present authentication material to initiate TLS host
>>> >>      authentication, the server MUST abort the TLS handshake with a
>>> >>      handshake_failure alert.
>>> > 
>>> 
>>> I've concluded that because...
>>> 
>>> • It is widely recognized these days that the source port is no realistic
>>> indication of any degree of authority on the client,
>>> • The new requirement was proposed well after the end of WGLC for rpc-tls,
>>> • The use of a privileged port is discussed in RFC 5531 as implementation
>>> guidance, not as a normative requirement,
>>> • There seems to be an ongoing lack of consensus about what exactly should be
>>> said,
>>> 
>>> .... I will drop this new text entirely.
>>> 
>>> Dave Noveck pointed out to me that Appendix A of rpc-tls already quotes the
>>> final paragraph of RFC 5531 Appendix A, which suggested the use of the source
>>> port.
>> 
>> Actually, I didn't.  I got to Appendix A of 5531 directly, trying to understand the current role of AUTH_SYS for my slides Wednesday.
>> 
>>> 
>>> IMHO Appendix A of rpc-tls really ought to make some kind of statement about
>>> how weak it is to use the client's source port, as the purpose of the source
>>> port test is to mitigate the weaknesses of AUTH_SYS that are discussed in that
>>> section. However, given how late it is, I leave that discussion to subsequent
>>> documents. The source port test can remain an implementation quality issue for
>>> the time being.
>> 
>> I agree but think we could non-controversially draw attention to the wealnesses of the existing approach by adding "(I.e. without transport-level encryption or client authentication)" after "by itself".  I think that is the kind of clarification that is reasonable even at this late stage.
> 
> Transport level encryption is not an indicator that this is a trusted client, only that the transport itself is secure; I could still have your server see a fudged client IP+port number (e.g. by routing through a NAT).
> Client authentication is really the only way to ascertain that the client is indeed the trusted entity without adding another layer of strong authentication on top of TLS.
> 
> In short: I'd prefer dropping the 'transport-level encryption or' bit in your proposal and just leave it as "(I.e. without client authentication)".

Here's how the middle section of Appendix A reads after this addition:

   Appendix A of [RFC5531] contains a brief explanation of security
   considerations:

      It should be noted that use of this flavor of authentication does
      not guarantee any security for the users or providers of a
      service, in itself.  The authentication provided by this scheme
      can be considered legitimate only when applications using this
      scheme and the network can be secured externally, and privileged
      transport addresses are used for the communicating end-points (an
      example of this is the use of privileged TCP/UDP ports in UNIX
      systems -- note that not all systems enforce privileged transport
      address mechanisms).

   It should be clear, therefore, that AUTH_SYS by itself (i.e., without
   strong client authentication) offers little to no communication
   security:


>> Ultimately this will need to be addressed by describing how the authentication material provided by the client is to be used. I had been thinking that would be done in NFSV4-specific documents but it might be possible/necessary to do some of this at the RPC level, given what RFC 5531 already says
>> 
>> 
>>> 
>>> --
>>> 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