Re: [nfsv4] TLS Fingerprint Pinning Needed

Chuck Lever <chuck.lever@oracle.com> Thu, 09 April 2020 16:30 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 117B23A0BE1 for <nfsv4@ietfa.amsl.com>; Thu, 9 Apr 2020 09:30:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.267
X-Spam-Level:
X-Spam-Status: No, score=-2.267 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.168, 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 V2WRh6l6ErGW for <nfsv4@ietfa.amsl.com>; Thu, 9 Apr 2020 09:30:18 -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 DF83A3A0BE2 for <nfsv4@ietf.org>; Thu, 9 Apr 2020 09:30:17 -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 039GHqHa146061; Thu, 9 Apr 2020 16:30:16 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=WkDoMwPxg/okZpcwq0lMA1iW+0Di4gZOw/PXU9AC0qw=; b=Lmc7XT1yL8q4vAZI5hlPCElrC/zu9v8zrchm4Gf22eLdCZQhz3hP1R/O9MrTJxscZk7s tKSEcj1dzyqIX9xjvHio3DLo7dlCOdQaRK9s6Xdq+ubBYkRn0xW7Nj1s2WkVH7OI4Sox rghR4IqJvHcCKVdMcr/hZNQp3pJjEZQRAxRFvSGVNyIyq+hy11hAfsXz547QHk2Ff/j1 3SM+B7/ReYFT6AlZ7oWG2bhD6rDhUW+5iEK/JowcEwFuAigvxIK3lSGOXNnXwJ/HD1wU HIRnypRrJvkrYLjx2c7UKIuij5mJKai6AP5M7c/AxTwLdgCZug9qFc8rvE98J28y3SVF dQ==
Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by aserp2120.oracle.com with ESMTP id 3091m12jn5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 09 Apr 2020 16:30:13 +0000
Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 039GHcj0146323; Thu, 9 Apr 2020 16:30:13 GMT
Received: from userv0122.oracle.com (userv0122.oracle.com [156.151.31.75]) by aserp3020.oracle.com with ESMTP id 3091m8n6h6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 09 Apr 2020 16:30:13 +0000
Received: from abhmp0010.oracle.com (abhmp0010.oracle.com [141.146.116.16]) by userv0122.oracle.com (8.14.4/8.14.4) with ESMTP id 039GUCAZ026630; Thu, 9 Apr 2020 16:30:12 GMT
Received: from anon-dhcp-153.1015granger.net (/68.61.232.219) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 09 Apr 2020 09:30:11 -0700
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: <CAD2Ti2_eRXuCCK6C=hfa5eticmdmEGYr-TBZH_M_n3kqFGn7+g@mail.gmail.com>
Date: Thu, 09 Apr 2020 12:30:10 -0400
Cc: nfsv4@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <725E46A9-5FDD-4451-BEDD-06E141CEFDB8@oracle.com>
References: <CAD2Ti2_Wmqgtm4iRTtoqVKPk8JJw+nP-rim2NjZWa=FDFbK5Bw@mail.gmail.com> <MN2PR19MB40451B5CBE13E7A19D9C0B1183CB0@MN2PR19MB4045.namprd19.prod.outlook.com> <CAD2Ti2_eRXuCCK6C=hfa5eticmdmEGYr-TBZH_M_n3kqFGn7+g@mail.gmail.com>
To: grarpamp <grarpamp@gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9586 signatures=668685
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 mlxscore=0 malwarescore=0 spamscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004090120
X-Proofpoint-Virus-Version: vendor=nai engine=6000 definitions=9586 signatures=668685
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxlogscore=999 mlxscore=0 priorityscore=1501 phishscore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 malwarescore=0 clxscore=1015 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2003020000 definitions=main-2004090120
Archived-At: <https://mailarchive.ietf.org/arch/msg/nfsv4/G2K_qDhh-AVYrsnD3m2Ie7yWr8s>
Subject: Re: [nfsv4] TLS Fingerprint Pinning Needed
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, 09 Apr 2020 16:30:20 -0000

> On Apr 8, 2020, at 1:48 AM, grarpamp <grarpamp@gmail.com> wrote:
> 
> On 3/30/20, Black, David <David.Black@dell.com> wrote:
>> This looks interesting - is there a BCP (Best Current Practice) RFC or
>> similar reference on what MUST/SHOULD to be implemented and how implementers
>> ought to think about this to make good choices?  Or is there one being
>> prepared?
> 
> Not aware of one, maybe the list knows of some more resources?
> Would be good to have some more documents in the space.
> In particular herein regarding fingerprinting... differentiating the
> two different cert DER vs pubkey forms, their various features and
> capabilities in real world cert schemes scenarios, and re MITM.
> 
> There is a general encryption proponent mandate RFC,
> commensurate with Snowden events, the number escapes
> at this moment.
> 
> Yes, more development of such a BCP as you mention regarding
> TLS fingerprint capabilities, and TLS extent forward in general,
> would be nice. That would then extend to many protocols
> in a default guide of reference way as to what is possible,
> including say NFS.

I don't think it's a "would be nice". Given the IETF's citation
requirements, if an NFS spec is to make compliance statements
about using TLS pinning there would first have to be Standards
Track documents that properly introduce pinning and cover
the security issues satisfactorily.

The high level requirement is the area experts within IETF have
to reach consensus about the general mechanism. Only after that
point, protocol architects are then permitted to cite that
consensus in their specifications.

In other words, I think David is gently suggesting the correct
starting point for making this happen.


> It is difficult to say "MUST" or "SHOULD" or "MAY"
> regarding this fingerprinting business for NFS.

The OWASP links cannot be Normative references, true enough.


> But it may be reasonable that 5.5.2 be expanded to mention
> the two different fingerprint classes, the four modes, as reasonable
> desireables. And to then reference out to the OWASP links at the
> bottom of the RFC.

As a co-author of rpc-tls, I can get behind adding beefier
implementation guidance in Section 5.2.2. However since this
document has already gone through WGLC, I'd really like to have
a rough consensus about that level of change.

I'm working through the AD review comments this week, and can
propose some text on-list.


> Maybe then leverage that effort into a BCP with other
> application RFC groups regarding TLS.

To be clear: Pinning seems like good stuff and NFS should probably
be made to use it. IMO the nfsv4 working group is not the place
to initiate that work. Starting it here (or even in rpc-tls in
particular) is placing the cart before the horse.

We are required to have a BCP and/or generic RFCs first. In my
view, the advance work would be more appropriate coming from
the tls working group:

https://datatracker.ietf.org/wg/tls/documents/

Have you taken these ideas up with them?


>> For example, such a document ought to cover the tradeoffs among
>> the four validation options, and how a safe default be chosen.   In general,
>> this looks like a good direction as trust anchors and trust anchor
>> management have always been a weak point in the web PKI
>> 
>> The OWASP pages are a good start, but leave revocation for future work and
>> are weak on certificate replacement - in particular, the comment that the
>> "application would need to be updated regularly" appears to punt the
>> underlying app validation problem upward to the app store operators (e.g.,
>> to defend against a rogue app that accesses the server via an MITM proxy
>> server), which doesn't mesh well with "An application which pins a
>> certificate or public key no longer needs to depend on others - such as DNS
>> or CAs".  Some dependence on the app store operator may be unavoidable for
>> first-use.
> 
> It is assumed, and guaranteed under public embarrassment
> of news media, that revocation will results in a physical regen
> and change of cert (triggering both cert DER and pubkey
> hard physical swapouts). Thus revocation, and the whole
> revocation "authority" repository CRL OCSP checks etc,
> is not at all coming into an issue in this fingerprint context,
> since they are entirely independant and fixed and local,
> and detect and resolve all such revocation swaps by
> very nature of fingerprint failure and fingerprint updates.
> 
> The "application being updated regularly" is of course a nice
> option for such app shipping devs to do gratuitously for users.
> But has no bearing on users subsequent needed capability
> to pin whatever they want and feel is necessary independantly.
> 
> If I were an NFS users in particular infrastructures and risks,
> I might want to pin the end server pubkey (or cert DER),
> or intermediate instances of the same (leaving server cert
> free to float) regardless of what my vertical or lateral silo,
> or other peer model, or CA, or rogue, says to accept.
> 
> Is there a reasonable way to more strongly suggest implementation
> of those two fingerprint methods, and even some of the four modes,
> as options between server-client in the NFS TLS RFC?

The nfsv4 WG's speculative plan is to produce one or more NFS-
specific documents that would be able to provide this kind of
detailed requirement for implementations of NFS that use TLS.

To REQUIRE certificate pinning, the NFS document would cite RFCs
that are specifically about pinning and then describe how NFS
would use it.

Those RFCs have to be published first or at the same time as
the NFS documents that cites them. Those are the process rules.


--
Chuck Lever