[Anima] underspecification in handling of unsigned voucher requests

Michael Richardson <mcr+ietf@sandelman.ca> Mon, 03 December 2018 12:10 UTC

Return-Path: <mcr@sandelman.ca>
X-Original-To: anima@ietfa.amsl.com
Delivered-To: anima@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9ED32130E77 for <anima@ietfa.amsl.com>; Mon, 3 Dec 2018 04:10:44 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, 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 G0RckmV__cjz for <anima@ietfa.amsl.com>; Mon, 3 Dec 2018 04:10:41 -0800 (PST)
Received: from relay.sandelman.ca (relay.cooperix.net [IPv6:2a01:7e00::f03c:91ff:feae:de77]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 96A53130E98 for <anima@ietf.org>; Mon, 3 Dec 2018 04:10:41 -0800 (PST)
Received: from dooku.sandelman.ca (unknown [185.201.60.232]) by relay.sandelman.ca (Postfix) with ESMTPS id CCBC51F8BD; Mon, 3 Dec 2018 12:10:37 +0000 (UTC)
Received: by dooku.sandelman.ca (Postfix, from userid 179) id A7AFA3AF2; Mon, 3 Dec 2018 12:09:50 +0000 (GMT)
From: Michael Richardson <mcr+ietf@sandelman.ca>
To: max pritikin <pritikin@cisco.com>, anima@ietf.org
X-Attribution: mcr
X-Mailer: MH-E 8.6; nmh 1.6; GNU Emacs 24.5.1
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg="pgp-sha256"; protocol="application/pgp-signature"
Date: Mon, 03 Dec 2018 12:09:50 -0000
Message-ID: <19433.1543838990@dooku.sandelman.ca>
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima/5Zo94tjmq6FQdrnPDYhflUI7C3w>
Subject: [Anima] underspecification in handling of unsigned voucher requests
X-BeenThere: anima@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Autonomic Networking Integrated Model and Approach <anima.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima>, <mailto:anima-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima/>
List-Post: <mailto:anima@ietf.org>
List-Help: <mailto:anima-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima>, <mailto:anima-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 03 Dec 2018 12:10:45 -0000

Max, one of the hurdles that the Fairhair Alliance interop experienced was
due to under-specification of the unsigned pledge request.  Most implemented
unsigned pledge requests because it was simpler.

In the past two weeks I was trying to implement unsigned pledge requests, and
I had a number of assumptions challenged in the process.
I am seriously of the opinion that unsigned voucher requests (whether
constrained or not) may have no value at all and should be removed.
(At least, I would like to write that they are unwelcome in the ACP
applicability section)

Assumptions I had which were not verified by our text:

1) that the unsigned voucher request should be placed into
   prior-signed-voucher-request in (parboiled: Registrar->MASA)
   voucher-request.
   The MASA can distinguish between a signed object (which may be a voucher
   request, or a prior signed voucher for renewals[%1]).

2) that the unsigned voucher request should even be copied to the MASA *AT ALL*
   We don't say anything about that.  We hardly even talk about the
   processing.
   I enclose text/diff at the bottom to change that.

3) I assumed that the proximity-registrar-cert has meaning in the unsigned
   voucher-request.  One might claim that it's presence provides no value at
   all since the request is not signed.
   The only piece that has any value would seem to be the nonce.
   So if the pledge has a clock and does not need freshness in it's voucher,
   it could use a time-limited voucher (expiry-on set), then it would
   essentially send an empty voucher-request.  This surprised me to realize.

4) If the unsigned voucher-request has no value/content, why send it on to
   the MASA at all.  I pondered this for awhile, and then remembered that
   this is a channel from the Pledge to the MASA, and that we wanted to
   permit this channel to be extensible and available for proprietary uses if
   desired.  We have this for signed voucher-requests as is.
   If we want to maintain this for unsigned voucher-requests, then we need
   to mandate that it be passed upwards.

Putting unsigned (JSON) into prior-signed-voucher-request seems wrong from a
YANG point of view: see next message on that.

[%1] - can vouchers with nonces be renewed by the MASA?  I think we will need
     clarifying text once someone has implemented this.

diff --git a/dtbootstrap-anima-keyinfra.txt b/dtbootstrap-anima-keyinfra.txt
index a5c4163..8ac806b 100644
--- a/dtbootstrap-anima-keyinfra.txt
+++ b/dtbootstrap-anima-keyinfra.txt
@@ -2062,17 +2118,30 @@ Internet-Draft                    BRSKI                    November 2018
    Example 1.

    The registrar validates the client identity as described in EST
-   [RFC7030] section 3.3.2.  If the request is signed the registrar
-   confirms that the 'proximity' asserion and associated 'proximity-
-   registrar-cert' are correct.

+   [RFC7030] section 3.3.2.  This involves validating the signatory of
+   the TLS Client Certificate.  As described in the next section, there
+   are different models for authorizing accepted devices.

+
+
+   If the request is signed the registrar confirms that the voucher-
+   request is signed by the same key as terminates the TLS connection.

+   The Registrar extracts the serial-number of the pledge from the TLS
+   Client Certificate.  It uses this serial-number to form it's voucher-
+   request.
+
+   The Registrar examines the pledge's voucher-request (verifying the
+   signature, if the request is signed) and extracts any nonce present
+   to include in it's voucher-request.  In addition, any 'proximity'
+   assertion and associated 'proximity-registrar-cert' need to be
+   verified to be correct.




--
Michael Richardson <mcr+IETF@sandelman.ca>, Sandelman Software Works
 -= IPv6 IoT consulting =-