[Ace] AIF extending models vs. composite scopes

Christian Amsüss <christian@amsuess.com> Tue, 02 July 2024 12:11 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 AF609C15153F for <ace@ietfa.amsl.com>; Tue, 2 Jul 2024 05:11:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.909
X-Spam-Level:
X-Spam-Status: No, score=-1.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] 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 fMODLrlonlkd for <ace@ietfa.amsl.com>; Tue, 2 Jul 2024 05:11:12 -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 102FBC14F5E5 for <ace@ietf.org>; Tue, 2 Jul 2024 05:11:09 -0700 (PDT)
Received: from poseidon-mailhub.amsuess.com ([IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bd]) by smtp.akis.at (8.17.2/8.17.2) with ESMTPS id 462CB6pJ061853 (version=TLSv1.2 cipher=ECDHE-ECDSA-AES256-GCM-SHA384 bits=256 verify=NOT) for <ace@ietf.org>; Tue, 2 Jul 2024 14:11:06 +0200 (CEST) (envelope-from christian@amsuess.com)
X-Authentication-Warning: smtp.akis.at: Host [IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bd] claimed to be poseidon-mailhub.amsuess.com
Received: from poseidon-mailbox.amsuess.com (unknown [IPv6:2a02:b18:c13b:8010:a800:ff:fede:b1bf]) by poseidon-mailhub.amsuess.com (Postfix) with ESMTP id B50153DC84 for <ace@ietf.org>; Tue, 2 Jul 2024 14:11:04 +0200 (CEST)
Received: from hephaistos.amsuess.com (unknown [IPv6:2a02:b18:c13b:8010:b8f3:68be:587:a349]) by poseidon-mailbox.amsuess.com (Postfix) with ESMTPSA id 5F30F3791A for <ace@ietf.org>; Tue, 2 Jul 2024 14:10:17 +0200 (CEST)
Received: (nullmailer pid 6631 invoked by uid 1000); Tue, 02 Jul 2024 12:10:17 -0000
Date: Tue, 02 Jul 2024 14:10:17 +0200
From: Christian Amsüss <christian@amsuess.com>
To: ace@ietf.org
Message-ID: <ZoPuKZGorSXH00RZ@hephaistos.amsuess.com>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="SrbrPypfr/6dEP92"
Content-Disposition: inline
X-Scanned-By: MIMEDefang 2.86
Message-ID-Hash: CPDG7CKQKS4LYW7XI3JHWQEOAU6PYHEI
X-Message-ID-Hash: CPDG7CKQKS4LYW7XI3JHWQEOAU6PYHEI
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] AIF extending models vs. composite scopes
List-Id: "Authentication and Authorization for Constrained Environments (ace)" <ace.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/ace/gm0HSXWFegzlI4qY2XCzsJmPtJs>
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 AIF experts and ACE group,

looking into AIF (in particular the REST-specific model) for use on
embedded (RIOT OS based) systems, there are properties I'd like to
express additional properties in a token, eg:

a. "When responses are sent to a client authorized with this token, the
   server may place non-confidential but possibly attack relevant data in
   problem-details."

   (Like, stack traces with program counters and/or line numbers, not the
   content of the stack).

b. "Under memory load, evict state from this token last."

   (In particular, a server may have an LRU cache of OSCORE/EDHOC
   contexts, but this context will only be evicted from there by another
   context established from a token with the same authorization).

There are two approaches I see that would still retain usability with
AIF:

1. Wrap the AIF and some indicators for the extra data in some kind of
   "bag" structure.

2. Extend AIF such that a structure like this is permissible:

   [["/s/temp", 1/GET/], ["/a/led", 5/GET|PUT/],
    [CPA12345(null)/access error details/, true]]

3. Make up resources that represent the permissions. This is kind of
   viable for the error case (when assigning error instances a la
   /err/0001, permission to read through the indirection can imply
   permission to get it served directly), but I wouldn't know how to
   explain this for use case b.

All have in common that an AS that is unaware of the extra features can
still deal out the regular authorizations; 3 is even easy to add to any
AS that supports regular AIF.

Is any of those patterns already established, or has been explored in
parts?

Thanks
Christian

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