[secdir] secdir review of draft-ietf-netconf-zerotouch-22

David Mandelberg <david+work@mandelberg.org> Tue, 24 July 2018 23:20 UTC

Return-Path: <david+work@mandelberg.org>
X-Original-To: secdir@ietfa.amsl.com
Delivered-To: secdir@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 69B991311DD for <secdir@ietfa.amsl.com>; Tue, 24 Jul 2018 16:20:26 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
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 XTyRYtVLQNCf for <secdir@ietfa.amsl.com>; Tue, 24 Jul 2018 16:20:24 -0700 (PDT)
Received: from smtp.rcn.com (smtp.rcn.com [69.168.97.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 3DD621311F8 for <secdir@ietf.org>; Tue, 24 Jul 2018 16:20:22 -0700 (PDT)
X_CMAE_Category: , ,
X-CNFS-Analysis: v=2.2 cv=e9pEcuh/ c=1 sm=1 tr=0 a=OXtaa+9CFT7WVSERtyqzJw==:117 a=OXtaa+9CFT7WVSERtyqzJw==:17 a=KGjhK52YXX0A:10 a=IkcTkHD0fZMA:10 a=NTnny0joGdQA:10 a=R9QF1RCXAYgA:10 a=bmmO2AaSJ7QA:10 a=BTUBnpS-AAAA:8 a=yNzICCC_xv75c2v2eKQA:9 a=yfGOJNFoQxixm5pA:21 a=NjTHmDkTon47Fx94:21 a=QEXdDO2ut3YA:10 a=pblkFgjdBCuYZ9-HdJ6i:22
X-CM-Score: 0
X-Scanned-by: Cloudmark Authority Engine
X-Authed-Username: ZHNlb21uQHJjbi5jb20=
Authentication-Results: smtp02.rcn.cmh.synacor.com smtp.mail=david+work@mandelberg.org; spf=neutral; sender-id=neutral
Authentication-Results: smtp02.rcn.cmh.synacor.com header.from=david+work@mandelberg.org; sender-id=neutral
Authentication-Results: smtp02.rcn.cmh.synacor.com smtp.user=dseomn@rcn.com; auth=pass (LOGIN)
Received-SPF: neutral (smtp02.rcn.cmh.synacor.com: 209.6.43.168 is neither permitted nor denied by domain of mandelberg.org)
Received: from [209.6.43.168] ([209.6.43.168:52106] helo=uriel.mandelberg.org) by smtp.rcn.com (envelope-from <david+work@mandelberg.org>) (ecelerity 3.6.25.56547 r(Core:3.6.25.0)) with ESMTPSA (cipher=DHE-RSA-AES256-GCM-SHA384) id 4B/41-18484-134B75B5; Tue, 24 Jul 2018 19:20:17 -0400
Received: from [192.168.1.152] (DD-WRT [192.168.1.1]) by uriel.mandelberg.org (Postfix) with ESMTPSA id A474A1C605C; Tue, 24 Jul 2018 19:20:16 -0400 (EDT)
To: draft-ietf-netconf-zerotouch.all@ietf.org, iesg@ietf.org, secdir@ietf.org
From: David Mandelberg <david+work@mandelberg.org>
Organization: David Mandelberg, LLC
Message-ID: <361393b0-6666-08ff-bdf4-3ba3bf4323c7@mandelberg.org>
Date: Tue, 24 Jul 2018 19:20:14 -0400
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/secdir/RNtvpWPTgB9KqRaOmYzLGEYsrHs>
Subject: [secdir] secdir review of draft-ietf-netconf-zerotouch-22
X-BeenThere: secdir@ietf.org
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: Security Area Directorate <secdir.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/secdir>, <mailto:secdir-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/secdir/>
List-Post: <mailto:secdir@ietf.org>
List-Help: <mailto:secdir-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/secdir>, <mailto:secdir-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 24 Jul 2018 23:20:27 -0000

I have reviewed this document as part of the security directorate's
ongoing effort to review all IETF documents being processed by the
IESG.  These comments were written primarily for the benefit of the
security area directors.  Document editors and WG chairs should treat
these comments just like any other last call comments.

The summary of the review is Almost ready.

Is there any protection against old signed Zero Touch Information? I see 
that Ownership Vouchers and Owner Certificates both have mechanisms for 
expiration (and for certs, revocation), but I don't see anything 
comparable for redirect or onboarding information. If an owner creates a 
valid redirect or onboarding object and discovers a bug in it, is there 
any way for the owner to make that object no-longer-valid without 
getting an entirely new owner certificate and revoking the old cert? Is 
that intentional?

It seems like this protocol places more trust in device manufacturers 
than was previously required, but I don't see any discussion of that in 
the security considerations. If necessary, is there any way to disable 
zero touch, and configure a device manually? E.g., if the supply chain 
is presumed-secure, but the manufacturer's well-known bootstrap server 
is compromised, is there any way to securely provision a new device?

Section 3.4 mentions a device identify certificate. I assume the public 
keys in those certificates are unique per-device? If not, I want to 
think a bit more about possible attacks where the attacker correlates 
encrypted artifacts without being able to decrypt them.

Section 5.4 says what to do "if the revocation status is not 
attainable". What does that mean precisely? E.g., I assume failure to 
download a CRL, absence of a CRL in the CMS data, and failure to contact 
an OCSP server all count. But what if the device acquires a valid CRL 
that is stale (nextUpdate < now)?

If I'm understanding correctly, the intent of well-known bootstrap 
servers is that the manufacturer can redirect devices to customer 
bootstrap servers that have the actual onboarding information. But I 
also don't see any reason that a (potentially compromised) trusted 
manufacturer's bootstrap server couldn't provide the onboarding 
information directly. It's probably easier to secure the (potentially 
offline) private keys used to sign ownership vouchers than it is to 
secure the (presumably highly available, online) well-known bootstrap 
servers. So it seems like the system as a whole could be more secure if 
well-known bootstrap servers could only provide untrusted redirects.

I don't understand the error cases around the "flag to enable zerotouch 
bootstrapping" in section 5.1. How exactly is that flag set to false? Is 
it by the initial configuration step in section 5.6? If that's where the 
flag is set to false, won't some owners forget to include that in their 
config? Also, how atomic is the application of initial configuration? Is 
there any possible case in which some of the initial configuration can 
be applied without touching the flag, so that the device appears to be 
correctly configured, but will try to bootstrap again on the next 
reboot? Conversely, can the flag be set to false without the device 
being fully configured? (I don't think that's a security issue, just 
potentially a management headache.)

Section 9.4 says to assume owner certificates "are not revokable" if 
there's no accurate clock. Is there no value in checking for a CRL or 
OCSP response, even without the ability to determine if it's recent? It 
seems to me that checking with an active server (CRL Distribution Point 
or OCSP server, as opposed to a stapled CRL or OCSP response) would make 
it significantly harder (not infeasible, just harder) for an attacker to 
use a revoked cert against a device with no clock.

-- 
Freelance cyber security consultant, software developer, and more
https://david.mandelberg.org/