Re: [nfsv4] Comments on draft-ietf-nfsv4-integrity-measurement-07

Chuck Lever <chuck.lever@oracle.com> Thu, 07 November 2019 15:56 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 6664812093A for <nfsv4@ietfa.amsl.com>; Thu, 7 Nov 2019 07:56:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.301
X-Spam-Level:
X-Spam-Status: No, score=-4.301 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] 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 gHL41gDDiaZC for <nfsv4@ietfa.amsl.com>; Thu, 7 Nov 2019 07:56:48 -0800 (PST)
Received: from userp2130.oracle.com (userp2130.oracle.com [156.151.31.86]) (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 EF835120939 for <nfsv4@ietf.org>; Thu, 7 Nov 2019 07:56:47 -0800 (PST)
Received: from pps.filterd (userp2130.oracle.com [127.0.0.1]) by userp2130.oracle.com (8.16.0.27/8.16.0.27) with SMTP id xA7FsPb0120721; Thu, 7 Nov 2019 15:56:46 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-2019-08-05; bh=VAAZ6rJ56eENDo2MUrv/nUn5FIqOXLxZmGhHA8XJLqk=; b=PaV1VVb4hB3YN4AW34uLbtbTkzai8/KS8c8TcpIDyR1/8/Vys2XjsPW/1EvjLK2v9hpQ Fid6pRbpymUNRFDHxjeWbBWrjp18IKdbEA+GiCXi974UsJ3pZoeLWAU9jczhUgDg+br9 PorkyBaohNp5aWNLSELijlWcBpFhlExCmuaMHgy7pmTVIAsLHBgUxhloww9gmC8pEdKr K4+q5/yK0thfvbaaOb3nVlltD/3gvYGy0pT749KNzk8+pFZCyoCMg1B6LKzgmAnZ8TbN P0e8gyLJNsuQp+bFBC+V3kJn4kuPCFoXjqf9L6dBAJFsyFfy6UxofqsiJlHJBu7i5/JG Kw==
Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by userp2130.oracle.com with ESMTP id 2w41w1766k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 07 Nov 2019 15:56:46 +0000
Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.27/8.16.0.27) with SMTP id xA7Fs4mE139979; Thu, 7 Nov 2019 15:56:45 GMT
Received: from aserv0121.oracle.com (aserv0121.oracle.com [141.146.126.235]) by aserp3020.oracle.com with ESMTP id 2w4k2vnqhh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 07 Nov 2019 15:56:45 +0000
Received: from abhmp0014.oracle.com (abhmp0014.oracle.com [141.146.116.20]) by aserv0121.oracle.com (8.14.4/8.13.8) with ESMTP id xA7FuiP0026689; Thu, 7 Nov 2019 15:56:44 GMT
Received: from anon-dhcp-152.1015granger.net (/68.61.232.219) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 07 Nov 2019 07:56:44 -0800
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
From: Chuck Lever <chuck.lever@oracle.com>
In-Reply-To: <CAFt6BanShDjwD3SftuDUvChFq9zOU5h1UC2y=W+3bVm++jAEKA@mail.gmail.com>
Date: Thu, 07 Nov 2019 10:56:43 -0500
Cc: Benjamin Kaduk <kaduk@mit.edu>, NFSv4 <nfsv4@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <479C7409-9DCF-4C11-84AB-2E3729D96B22@oracle.com>
References: <CAFt6BakApq=FJWs+r-jwxvTdXYs9yOg9KS47no93kdnp2gZ_+Q@mail.gmail.com> <9BEBDE7A-522A-4A6B-8132-D9C3A8A4922C@oracle.com> <CAFt6Ba=q=vSt+wtcHsi59gWnwFpuUaDqQue7f=GFSUvd25uV+g@mail.gmail.com> <BFDF314F-B913-4C4A-BAB4-C09FA840F4F6@oracle.com> <CADaq8jc_gM0SWe9weRJYp7s7xjtN9kihbVnUiBN61hF2LUJjzQ@mail.gmail.com> <FD12C92F-BBF4-4174-B896-48738C02B78E@oracle.com> <CAFt6BanwC4uu=9SpZQdiGjFswzkC3cSWPzGia34qBT5W+uuMNw@mail.gmail.com> <5B51BB44-F39D-4EF6-9E1E-3EF958F90260@oracle.com> <20191031192409.GJ88302@kduck.mit.edu> <67D69A00-D231-4845-A840-F3D67D629554@oracle.com> <CAFt6BanShDjwD3SftuDUvChFq9zOU5h1UC2y=W+3bVm++jAEKA@mail.gmail.com>
To: spencer shepler <spencer.shepler@gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9433 signatures=668685
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1910280000 definitions=main-1911070151
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9433 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-1910280000 definitions=main-1911070151
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/mClUudS2x3kUChmX7zsqrNB5fKc>
Subject: Re: [nfsv4] Comments on draft-ietf-nfsv4-integrity-measurement-07
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: Thu, 07 Nov 2019 15:56:50 -0000

Hi Spencer, thanks for your reply. Unfortunately it leaves me with more questions.

> On Nov 7, 2019, at 2:05 AM, spencer shepler <spencer.shepler@gmail.com> wrote:
> 
> 
> Apologies for top posting but I would like to address one portion of this thread only.
> 
> I have poached one particular comment.... the below is quoted from Chuck's last response on this thread.
> --
> > I think I lack the background to understand why Spencer doesn't believe
> > this is an appropriate use of the NFS protocol, but I don't think that this
> > is the right thread to educate me.
> 
> I'm also interested in learning more about this. The same argument has been
> made in the past about extending NFS in general, and I guess I had assumed
> that this had been resolved with the publication of RFCs 8178 and 8276.
> 
> --
> 
> I agree that RFC 8178 provides the ability to add features, particularly attributes, to the protocol and I agree with the utility of 8178 and that is appropriate.
> 
> I also agree with the utility of RFC 8276 but I disagree with the interpreted precedent of the RFC per Chuck's comment.
> 
> To quote from RFC 8276:
> 
> "Xattr keys and values MUST NOT be interpreted
> by the NFS clients and servers, as such behavior would lead to
> non-interoperable implementations.  If there were a need to specify
> one or more attributes that servers need to act upon, the appropriate
> semantics would be specified by adding a new attribute for the
> purpose as provided for by [RFC5661] and [RFC8178]."
> 
> I read the proposed integrity measurement capability as providing a "system-level" interpretation.

The intent of the quoted text was to prevent the use of xattrs as a side-channel ioctl mechanism, which I'm not proposing here. However, I am proposing "adding a new attribute" as suggested in the quoted text. Therefore, I feel that I'm following the letter, if not also the intention, of this text.


> The decision to allow for the execution of application binaries is a "system" level activity or in other words, a feature that explicitly requires the client to interpret the semantics of the protocol extension.  Because of the client's need to interpret the capability, the definition should be defined in a way that it can be implemented in an open fashion and hopefully, but not required, defined in a way that it is "upgradeable".

"System level activity" is not defined in the quoted text, so it's not clear-cut to me that there is any consensus that can be relied upon as solid rhetorical ground.

Interpretation of the stored metadata can be done by the NFS implementations themselves, by the kernels on those hosts, or by unprivileged agents running in user space. The same functionality, but are all three "system level activity" ? Not clear where the boundary is.

Why is "outside of the NFS implementation but in the kernel" still a system-level activity? How would you draw this line on a non-POSIX or user space NFS client, for example?


> To the point of "open", I don't believe the availability of open source sufficient in this instance.  Yes, a clean-room approach to implementation can be executed but even with that action, a patent claim can still be made.  Therefore, without the protocol definition being captured in a way that clearly allows the reader to have a sense that IETF's policies for disclosure have followed, I don't believe it should be allowed as an extension of the NFS protocol.

NFS is being used only to transport and store this metadata, in the same way that is used to transport and store file content, which is also interpreted on clients in ways that are out of the purview of the IETF. It would be a stronger argument if there existed an actual IETF document which recorded a consensus and an on-point legal opinion about this.

My document also permits an implementation not to interpret the metadata at all. If a reader or implementer has any doubts, s/he can simply treat that metadata as the opaque blob that it is.


> So, I am left with my objection to this work moving forward.

Even if I introduce an Informative definition of the metadata format to the document? Does that not meet your second suggested way forward (from earlier email)?

Is there a need to make the format Normative, either within the IETF or in some other standards setting context?

What if the Linux community made the IMA metadata format completely open (ie, stated publicly that it is unencumbered IP) ?

What if Linux stored this metadata in a user xattr instead?


> If this proposal would to be accepted, it sets a precedent that a individual could define a similar extension for their favorite XYZ product in such a way that interoperable implementations could be not implemented.  In least this could lead to a proliferation of OS, vendor specific feature creep and at worse, non IP infringing implementations would be impossible to implement.

That's dire. I wish this requirement was clearly documented somewhere.

Why isn't the SELinux label work a problem in this regard?


--
Chuck Lever