[Ace] PoA based Device Registration (draft-vattaparambil-ace-wg-poa-device-reg): Support, suggestions

Christian Amsüss <christian@amsuess.com> Fri, 17 May 2024 10:23 UTC

Return-Path: <christian@amsuess.com>
X-Original-To: ace@ietfa.amsl.com
Delivered-To: ace@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B4132C1D4CF2; Fri, 17 May 2024 03:23:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.596
X-Spam-Level:
X-Spam-Status: No, score=-2.596 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id J0z322i-ff7R; Fri, 17 May 2024 03:23:10 -0700 (PDT)
Received: from smtp.akis.at (smtp.akis.at [IPv6:2a02:b18:500:a515::f455]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5D545C14F699; Fri, 17 May 2024 03:23:01 -0700 (PDT)
Received: from poseidon-mailhub.amsuess.com (095129206250.cust.akis.net [95.129.206.250]) by smtp.akis.at (8.17.2/8.17.2) with ESMTPS id 44HAMwp7085646 (version=TLSv1.2 cipher=ECDHE-ECDSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 May 2024 12:22:58 +0200 (CEST) (envelope-from christian@amsuess.com)
X-Authentication-Warning: smtp.akis.at: Host 095129206250.cust.akis.net [95.129.206.250] claimed to be poseidon-mailhub.amsuess.com
Received: from poseidon-mailbox.amsuess.com (hermes.lan [10.13.13.254]) by poseidon-mailhub.amsuess.com (Postfix) with ESMTP id 26E083A7C0; Fri, 17 May 2024 12:22:58 +0200 (CEST)
Received: from hephaistos.amsuess.com (unknown [IPv6:2a02:b18:c13b:8010:6b53:33e8:97f6:e185]) by poseidon-mailbox.amsuess.com (Postfix) with ESMTPSA id DA7253558A; Fri, 17 May 2024 12:22:57 +0200 (CEST)
Received: (nullmailer pid 30634 invoked by uid 1000); Fri, 17 May 2024 10:22:57 -0000
Date: Fri, 17 May 2024 12:22:57 +0200
From: Christian Amsüss <christian@amsuess.com>
To: draft-vattaparambil-ace-wg-poa-device-reg@ietf.org, ace@ietf.org
Message-ID: <ZkcwAS3WGgbEhrmS@hephaistos.amsuess.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="0ZSXNF580lhANdxS"
Content-Disposition: inline
X-Scanned-By: MIMEDefang 2.86
Message-ID-Hash: UDOHIA7NJQMJ5BH24QZN5P7ZNMOCZXYU
X-Message-ID-Hash: UDOHIA7NJQMJ5BH24QZN5P7ZNMOCZXYU
X-MailFrom: christian@amsuess.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-ace.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc4
Precedence: list
Subject: [Ace] PoA based Device Registration (draft-vattaparambil-ace-wg-poa-device-reg): Support, suggestions
List-Id: "Authentication and Authorization for Constrained Environments (ace)" <ace.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/ace/jqoK6_T_-bmo2wQK8gZIp6bsMAE>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ace>
List-Help: <mailto:ace-request@ietf.org?subject=help>
List-Owner: <mailto:ace-owner@ietf.org>
List-Post: <mailto:ace@ietf.org>
List-Subscribe: <mailto:ace-join@ietf.org>
List-Unsubscribe: <mailto:ace-leave@ietf.org>

Hello Sreelakshmi, authors, ACE,

I've read draft-vattaparambil-ace-wg-poa-device-reg-00 and think it
provides a valuable contribution to ACE, especially if it grows to
actually propose an interface to the client registration problem.
I am not sure that the proposed solution has the ideal work flow, but
nonetheless, the WG should concern itself with this. (In particular,
looking at figure 5, I'd rather have the DO talk to the AS rather than
send a relatively large signed statement to the client that the client
then relays to the AS -- the client needs to stay small and carry little
data).

The use case I'm looking into it for is to enable CoRE dynlink [1] (yes
it's long expired, but I still think we should go on with it), where a
constrained device is told to act as a CoAP client and pull or push data
from one resource to another resource, possibly even without
understanding the role of that resource. (My favorite example is that
it'd be used to tell a physical temperature control dial to PUT its
value to a heating control's set-point resource). In practice, picking
up PoA terminology, the device owner POSTs a link pointing to the RS
into the binding site resource of the Client, annotated with some
additional metadata. As the Client is previously unaware of the RS or
its AS, with PoA, the owner would register the Client at the AS, and
then add AS metadata into that POST.

(At least) in this case, the AS validation problem has an almost trivial
solution: As part of the POSTed link (which points to the RS resource),
the DO would include a bundle of the AS URI, the AS's credential, the
audience and scope that it should request and possibly also a key ID
that the AS assigned to the client credentials the DO obtained from the
AS during client registration (as an optimization to not make the client
send its credentials by value -- in my scenario this is all run on
EDHOC, and KIDs make it really really compact).

This way, the unencrypted pre-flight request is completely avoided, and
we don't need any of the two solutions proposed in 4.2 -- instead, the
(AS URI, AS credentials, audience, scope) bundle is conveyed to the
client as part of its mandate to perform some specific task on the RS.

It may even be dangerous *not* to bundle those, if the DO is not just
"the" device owner but just a user that has some control over the
client: If there were multiple such users that both have some authority
over the AS different ASes (or within the same AS), then a less
privileged user might install some low-authorization PoA into the
client, but then direct the client to an RS resource where the
unauthorized initial request redirects the client to use the
high-authorization PoA installed by a different user.

Best regards
Christian

[1]: https://datatracker.ietf.org/doc/html/draft-ietf-core-dynlink-14

-- 
To use raw power is to make yourself infinitely vulnerable to greater powers.
  -- Bene Gesserit axiom