[Anima-bootstrap] keyinfra-03 review

peter van der Stok <stokcons@xs4all.nl> Wed, 17 August 2016 06:51 UTC

Return-Path: <stokcons@xs4all.nl>
X-Original-To: anima-bootstrap@ietfa.amsl.com
Delivered-To: anima-bootstrap@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B384012B011 for <anima-bootstrap@ietfa.amsl.com>; Tue, 16 Aug 2016 23:51:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.602
X-Spam-Level:
X-Spam-Status: No, score=-2.602 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001] autolearn=ham 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 S6ZPO_loqPej for <anima-bootstrap@ietfa.amsl.com>; Tue, 16 Aug 2016 23:51:28 -0700 (PDT)
Received: from lb3-smtp-cloud6.xs4all.net (lb3-smtp-cloud6.xs4all.net [194.109.24.31]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2308512B008 for <anima-bootstrap@ietf.org>; Tue, 16 Aug 2016 23:51:27 -0700 (PDT)
Received: from webmail.xs4all.nl ([194.109.20.207]) by smtp-cloud6.xs4all.net with ESMTP id Y6rR1t00S4U4Moq016rRkZ; Wed, 17 Aug 2016 08:51:26 +0200
Received: from 2001:983:a264:1:dc04:129e:842d:28c7 by webmail.xs4all.nl with HTTP (HTTP/1.1 POST); Wed, 17 Aug 2016 08:51:25 +0200
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Date: Wed, 17 Aug 2016 08:51:25 +0200
From: peter van der Stok <stokcons@xs4all.nl>
To: Anima-bootstrap <anima-bootstrap@ietf.org>
Organization: vanderstok consultancy
Mail-Reply-To: consultancy@vanderstok.org
Message-ID: <681a69f5cae643a7701e0df980c44a0a@xs4all.nl>
X-Sender: stokcons@xs4all.nl (sA4ovDvuunGz+VWaixFSecPpyK2W9srg)
User-Agent: XS4ALL Webmail
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima-bootstrap/IA3L3_CCrG3QqfM3O3Q9g81qNL8>
Subject: [Anima-bootstrap] keyinfra-03 review
X-BeenThere: anima-bootstrap@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
Reply-To: consultancy@vanderstok.org
List-Id: Mailing list for the bootstrap design team of the ANIMA WG <anima-bootstrap.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima-bootstrap>, <mailto:anima-bootstrap-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima-bootstrap/>
List-Post: <mailto:anima-bootstrap@ietf.org>
List-Help: <mailto:anima-bootstrap-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima-bootstrap>, <mailto:anima-bootstrap-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 17 Aug 2016 06:51:30 -0000

Hi Max,

In Berlin you asked for more reviews of the keyinfra (bootstrapping) 
draft.
Below my efforts from a constrained device/network point of view.
I hope the review helps to get the validity of this document for the 
constrained world better understood.

Greetings,

Peter

__________________________________________________________________________________________________________________

Anima-bootstrapping-keyinfra-03
In general:
I think this is quite an important document to standardize autonomous 
security bootstrapping in the control plane, but its relation to 
constrained devices could be improved and clarified.
I found it difficult to review the document because there is much 
overlapping text that describes the same protocol or function but in 
different words. Also I recommend the use of consistent terminology. For 
example, the terms new entity, device and new device, probably denoting 
the same thing, are used throughout the document. A consistent choice 
would help the reader. The terms vendor service, MASA, or just vendor 
could be aligned in figures and text.  As a result this is a quite 
high-level review, in which I mainly try to point out ways to improve 
the readability.
In more detail:
There are two authorizations in the document: a provisional one and a 
definite one. Giving them different names and referring to them by these 
names would help. For the moment a reader has to guess what “authorized” 
means in different parts of the text. The term Zero-touch approach could 
be explained in section 1.1.
Page 4.
The 4 questions at the top of page 4 need rephrasing. Especially the 
words “who”, “mine”, “it”, and “I” are ambiguous.
Suggest to remove in the second paragraph: “The domain’s decisions …. 
Auditable fashion”. This is difficult to follow and needs information 
provided later.
Optimal security (remove optimal)
“Bootstrapping  … secure”. Remove, does not help.
Last phrase before 1.1: reduce to: Support of alternative key 
infrastructures is discussed.
Page 5: DomainID. Remove “(a string value … is used)”. This information 
does not help me.
Pledge: to at the factory (which one to or at?)
  belongs with this network (you mean domain?)
section 1.2. I find the discussion in this section very hard to follow. 
The general message I receive, is “constrained networks” are out of 
scope (NO 802.15.4); unless you execute only parts of the bootstrapping 
protocol. But executing parts of the protocol is not allowed. On the 
other hand an argument is made about the size of the messages being 
prohibitive; but it is not clear what sizes we discuss. Later in the 
document (section 5.7.5) a discussion about CoAP and DTLS follows; but 
the relation with this section is unclear.
My suggestion is to clarify the end state expected from the key 
distribution as explained in section 3.1.7. Explain that constrained 
devices may need this state, mention the intended use of coap (section 
3.2.1) and point out where the bootstrapping communication may be long 
(transport of certificates) and will need the block option of CoAP.
Page 9: Is ownership tracker part of MASA? In the rest of the document 
its existence seems not essential.
Section 3. The first paragraph about autonomic fashion should go to 
section 1, where the relation with ACP could be clarified. In general: 
Ignoring non autonomic aspects will help the readability of this 
document.
Figure 2 is quite helpful, but why is there a figure 5 and 6 on pages 29 
and 30; and what are the differences?
Section 3.1 I don’t understand: “A new entity…. been configured” Why 
not; I assume the protocol detects this behaviour.
Page 12: identify itself AND authenticate Registrar (they have equal 
importance)
Page 13: point 3: why the text about nonce? This will be treated several 
times later in the text.
Point 4: Very confusing to me. Many terms are used that are explained 
much later, like: Audit token, ownership voucher, Registrar server 
certificate.
Point 5 “e.g. EST”. Why e.g. it seems to be the only option later in the 
text. If not can it be made more explicit that other methods are 
supported.
Section 3.1.1 Discovery. The standardization of the discovery of the 
proxy (registrar) does not seem necessary to me. The bootstrapping 
protocol is not affected at all when different discovery protocols are 
used. Just citing GRASP and mDNS as examples within their context seems 
more than sufficient to me.
Section 3.1.2 phrase 1; to what? does the new entity identify itself?
Paragraph 2: What is the bootstrapping protocol server here? The proxy 
or the Registrar? Is it the data received from the registrar that is not 
trusted? But the data from the new entity is trusted? And why is a TLS 
connection needed, if no data is trusted?
Page 15, last phrase before 3.1.3: bootstrapping server -> registrar? 
New device -> new entity?
Section 3.1.3. Is this where EST is started? Might be helpful to 
indicate which parts are already fixed by EST.
The phrase: “Since client authentication occurs during TLS handshake” is 
confusing. Is this the TLS handshake discussed under 3.1.2 or a new one? 
Neither is it clear if this is the provisional authentication or the 
final one.
This section in general needs more clarification and description of the 
flow on how redirections to a different Registrar works.
Section 3.1.4 why cite the non autonomic (and non used) enrolment 
protocols?
The audit token provides sufficient information to continue, but the 
ownership voucher does not?
Section 3.1.5. Why this last paragraph about time distribution?
Section 3.1.6 mentions audit token and ownership voucher; but only 
discusses audit token afterwards to start RFC7030 process.
Section 3.1.7 specifies the final purpose of the key distribution? IMO 
part of this text should go to the introduction to motivate the 
bootstrapping protocol and also show its validity for constrained 
devices and networks.
3.2 facilitates communication between ???. According to figure 2 the 
registrar is not necessarily configured on the Proxy.
What is a control plane CPU? Probably text has gone missing.
Not clear from the text how/why a device becomes a proxy and by whom/how 
it is configured with the relevant information like the Registrar’s 
address.
Section 3.2.1 The choice between DTLS and TLS appears all of the sudden. 
All former text discussed TLS; I suggest that a different section is 
dedicated to use of CoAP, describes the http/TLS to coap/dtls mapping, 
and the draft consistently uses TLS for clarity. Section 3.2.1. is then 
more dedicated to the discovery and keeping proxy stateless.
Section 3.2.2 suggests multiple options to proxy the connection to the 
Registrar. Can other methods be used beyond that are listed here.
Section 3.3.1 should the out of band be cited here? The draft describes 
autonomic behaviour.
End of section 3.3.2; why the emphasis on homenet?
Section 3.3.3, 2nd paragraph; examples might be handy?
Section 3.3.3 Claims for an unauthenticated Registrar are only…; Is this 
a viable approach?
Section 3.4 Factory provider?
Section 3.5 As the devices have a common trust anchor… Please make 
devices more explicit.
Section 3.5.1. device -> new entity
The new entity can validate the domain membership after joining? You 
mean it can act as proxy?
Section 3.6 Network access Control? Where does this term come from?
What does “having sufficient connectivity” mean?
Section 4.4 Zero-touch is an unknown term.
Already enrolled devices -> proxies.
Section 4.5 What are central control functions?
Section 5 repeats much of earlier sections. I suggest to remove text in 
earlier sections (or make more abstract) to minimize duplication.
What is an “air-gapped” network? Referring in the text to fig 5 and fig 
6 and pointing out the differences helps readability.
Here my review stops; The technology seems already quite solid if the 
proxy behaviour with IPIP encapsulation of the TLS messages are better 
clarified. The text needs quite some editing to remove duplication, 
improve consistency, and remove many of the design decision discussions. 
I hope my comments may help.

Greetings,

Peter

-- 
Peter van der Stok