Re: [Ace] remarks on draft-tiloca-ace-oscore-gm-admin-00

Marco Tiloca <marco.tiloca@ri.se> Wed, 08 January 2020 16:07 UTC

Return-Path: <marco.tiloca@ri.se>
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 36FC01200B5; Wed, 8 Jan 2020 08:07:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=risecloud.onmicrosoft.com
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 n0uDHSLE5C4J; Wed, 8 Jan 2020 08:07:48 -0800 (PST)
Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2071.outbound.protection.outlook.com [40.107.20.71]) (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 3EBD8120867; Wed, 8 Jan 2020 08:07:45 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gMROtiRlhMx9zPbjunSFcrshmF6scHYIFxVXLWCUeILm0r96pLv7xqsBC2NqJlZQhvwi8LHRzGm3udOdPZK4BPulc3C/fd7EBaWkD3vffB0rjXKqNU+f4SZmRRLJj7omslZFKsfHcVyFMEycy1VVAh1juyoFocL8pd6kzzaTmb2GsYebkFbgeXfzK4FNlAK+7DNOCk3cScBDZYDrkkPW9SyOKKFNPwSG9j+CeJMmsZdCjQLlWUOkqOMNwvjxrCMj0DBve87qtFXvB3uCTp5ezC+QoVVzKR0erw2uZqbBdrFMzPNk+K+RoRkPjLYNHtNlAt0ZVEI9FMpmFMr7IomTyw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m3mJqFbPtDzESYLm7y08jI8ByO8hjp+4Nel4V5zgWig=; b=CPC16zp3EYE6U1RfdDP5JPEK58OR0qMI6nFJznclPBVinB41zCv5xmapb7xkY+xw0J6JMk63m7NXilR9oZRIhCoTEObDKB+V/g4Npjh5DbRBZkS1gNPshFU8NUwSel1uAdI24zUPIIJ7Zk9r6DCnREPEHgNM1o4FxdrRIDgKARu35wpVYGWnPp67Nerl3GhLr1ZHG4gWq7JMiFW5ym/wQxRiAIkWhCxqbh1HK010dyu+05gmKAeWmoCNVtLw73TOYSwOLQIcoEXPhzAYFfkvOU+RcQA1XzxPSJ43OKzyINNYcLJOtbEolwoAB70TCj+1G8SDxGaRBthg05GIEhSeBg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ri.se; dmarc=pass action=none header.from=ri.se; dkim=pass header.d=ri.se; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RISEcloud.onmicrosoft.com; s=selector1-RISEcloud-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m3mJqFbPtDzESYLm7y08jI8ByO8hjp+4Nel4V5zgWig=; b=ViohZ7ozP45JDWN1+PBf7oH7ofca178wsfhCY4qv6eLHKVQDVH1pCidG13LvMAGa/6sxw48HrModTbnMJJBTCRjwnrLm5tzbnIvBw0cy5rycH4r4LBikFqk9Ay/6gBwGt6395oGHpqu/T9lOz7C7B8aUGCGnIM/0TZFV6tlI/y0=
Received: from VI1P189MB0398.EURP189.PROD.OUTLOOK.COM (10.165.195.159) by VI1P189MB0285.EURP189.PROD.OUTLOOK.COM (10.165.198.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.9; Wed, 8 Jan 2020 16:07:42 +0000
Received: from VI1P189MB0398.EURP189.PROD.OUTLOOK.COM ([fe80::3485:ce83:891b:469]) by VI1P189MB0398.EURP189.PROD.OUTLOOK.COM ([fe80::3485:ce83:891b:469%4]) with mapi id 15.20.2623.008; Wed, 8 Jan 2020 16:07:42 +0000
Received: from [10.8.2.14] (196.240.54.60) by HE1PR05CA0312.eurprd05.prod.outlook.com (2603:10a6:7:93::43) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2623.9 via Frontend Transport; Wed, 8 Jan 2020 16:07:42 +0000
From: Marco Tiloca <marco.tiloca@ri.se>
To: Jim Schaad <ietf@augustcellars.com>, "draft-tiloca-ace-oscore-gm-admin@ietf.org" <draft-tiloca-ace-oscore-gm-admin@ietf.org>
CC: "ace@ietf.org" <ace@ietf.org>
Thread-Topic: remarks on draft-tiloca-ace-oscore-gm-admin-00
Thread-Index: AdWfJkCd54YEkIoYSoqR2Q9ieECPkwnF3wsA
Date: Wed, 08 Jan 2020 16:07:42 +0000
Message-ID: <a5e579e1-a1cf-ab20-4af7-38d54ee6cf3a@ri.se>
References: <01b401d59f2e$ff406560$fdc13020$@augustcellars.com>
In-Reply-To: <01b401d59f2e$ff406560$fdc13020$@augustcellars.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-clientproxiedby: HE1PR05CA0312.eurprd05.prod.outlook.com (2603:10a6:7:93::43) To VI1P189MB0398.EURP189.PROD.OUTLOOK.COM (2603:10a6:802:35::31)
authentication-results: spf=none (sender IP is ) smtp.mailfrom=marco.tiloca@ri.se;
x-ms-exchange-messagesentrepresentingtype: 1
x-originating-ip: [196.240.54.60]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 780f0547-62b6-45ed-166e-08d79454e445
x-ms-traffictypediagnostic: VI1P189MB0285:
x-microsoft-antispam-prvs: <VI1P189MB0285DE209B5765C88626E12E993E0@VI1P189MB0285.EURP189.PROD.OUTLOOK.COM>
x-ms-oob-tlc-oobclassifiers: OLM:3383;
x-forefront-prvs: 02760F0D1C
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(376002)(346002)(136003)(39860400002)(396003)(51444003)(189003)(199004)(4326008)(966005)(81166006)(8676002)(52116002)(81156014)(6486002)(71200400001)(53546011)(36756003)(478600001)(186003)(64756008)(956004)(2616005)(66556008)(16526019)(26005)(66476007)(66616009)(44832011)(66446008)(316002)(2906002)(86362001)(66946007)(4001150100001)(66574012)(31696002)(110136005)(5001810100001)(31686004)(5660300002)(8936002)(16576012); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1P189MB0285; H:VI1P189MB0398.EURP189.PROD.OUTLOOK.COM; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: ri.se does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: Lsha2dsrQ9x6xIQ0cjQ9S9dvE2y2xCqSsEavpfRAWcyfDS2E3xfAo8TVV+uCkq4TOe3PL/k2bYJoRwwGkAmIZqL566oX/vEvvlaa416lISyl1qLcyt2lX6+ClnlNYeJp23oqCsEIGRxZT5Dj4TjnexGl50dTRxEU6c1eZgYUTem6s6W+VHzxsD0D5qDrX5q3hVUVv56Lor29yR+XllSjJcz0I6xNk9VUO9s299uC3/PUZj1Sgn0jGehi3ZU1+T6ly+yFEZndan2YwbYpgQrTo6Ym9tWlDK4Hs2hLL6BY/wyI1IjHEs8b2ZvQ4k1jeadJQUtYRcmtPcfal8i77JrRsRaJRnAbel6rR7ByBhfz9pznE9yj2BbK1AMB2XnvyYynY091lywxU8GeVS/+Kq23+Fn/9Z+Qpzye6Di0lToLCZ97wyl+k5DdAknvlzdromjTgggVYhkSkf0qto8O71vfs7XFjfrB62/g9nEI9v5Y2Q0RnluV06qzwFeRhuWMMst6ZtlzGioPTuTmuJ8mDW0BNGOrfpksuKeEMkp2Nt80GoRx0C5kcKwYdUNQkPtMUYMT
x-ms-exchange-transport-forked: True
Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="2lGEXp0y3lZd1GxZ2h8kfLjhvih9vCqbR"
MIME-Version: 1.0
X-OriginatorOrg: ri.se
X-MS-Exchange-CrossTenant-Network-Message-Id: 780f0547-62b6-45ed-166e-08d79454e445
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jan 2020 16:07:42.6190 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5a9809cf-0bcb-413a-838a-09ecc40cc9e8
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: R/4uczHKV/Zjg0S35bAtO4ipN2GZBRerCy2qHFhyJtav/SFrUX3xKUVAAPcUUCstrN23ixYZu8nSXPWMc15PWA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1P189MB0285
Archived-At: <https://mailarchive.ietf.org/arch/msg/ace/tGpu-Pqz0Vn7RJ4P6v3Va-IMvFs>
Subject: Re: [Ace] remarks on draft-tiloca-ace-oscore-gm-admin-00
X-BeenThere: ace@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Authentication and Authorization for Constrained Environments \(ace\)" <ace.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ace>, <mailto:ace-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ace/>
List-Post: <mailto:ace@ietf.org>
List-Help: <mailto:ace-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ace>, <mailto:ace-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Jan 2020 16:07:52 -0000

Hi Jim,

Thanks a lot for this review!

We have been working on an updated version accessible at [1], which is
already taking into account your comments on CoRAL.

Please, find below inline some more replies and open points.

Best,
/Marco

[1]
https://gitlab.com/crimson84/draft-tiloca-ace-oscore-gm-admin/blob/v-01/draft-tiloca-ace-oscore-gm-admin.md

On 2019-11-20 00:13, Jim Schaad wrote:
> This is just going to be a high level review on how things are done rather
> than a detailed review on each line of text.
>
> 1. - Go and read that CoRE Pub-Sub update document - you know the one that
> Klaus and friends have not managed to get written since the model proposal
> was done way back when.

<MT>
Yes, we are now relying on an akin interface, along the lines of the now
published draft
https://datatracker.ietf.org/doc/draft-hartke-t2trg-coral-pubsub/
</MT>

>
> 2.  Re-write this to use CoRAL - Yes I know that this makes another
> dependency on getting it published from the CoRE group, but I don't want to
> do things multiple times.

<MT>
We have now also added examples in CoRAL, for all the interactions
between Administrator and Group Manager, now also extended with FETCH
for filtered retrieval.
</MT>

>
> 3.  I think that this document really needs to be able to be used with
> HTTP/JSON as well as CoAP.   If you can get the JSON version of CoRAL from
> Klaus then this falls out without any work.

<MT>
We are now saying the CoRAL examples are in text format, but they are in
CBOR or JSON on the wire, with no particular additional effort. Is this
enough?
</MT>

>
> 4.  Are you making it a requirement that the group name be the same as the
> group identifier assigned by the "group_name" parameter?  If so then having
> some type of title and description would seem to be almost mandatory.

<MT>
They are in fact the very same thing. The "group_name" parameter
specifies the group name, as intended to identify the OSCORE group both
by the administrator and the joining nodes in the other related
documents. We can use only "invariant name" rather than "invariant
identifier". Are we missing something? If so, what do you suggest we
should give a title and description to?
</MT>

>
> 5.  There needs to be some parameters around pointing to the correct AS and
> so forth.  The management API may reject because it does not trust the AS.
> Don't assume that this is a single value for the AS either.

<MT>
This is good and also aligned with other related drafts.

If we interpret your suggestion correctly:

1) The POST request to /manage may specify also an optional 'as_uri'
parameter, with the link to a suggested AS. The GM may accept the
suggestion or not. If not, it has to think of an alternative AS, as
valid issuer of tokens for joining that group.

2) The GM must have one more parameter in the group configuration with
the effective AS URI, i.e. either one provided by the administrator and
accepted, or one otherwise decided.

Do you think of any additional related parameters to be included in the
POST request, other than 'as_uri'? Perhaps the public key of the
suggested AS if applicable?

Do you think the suggestion in the request should actually be a list of
AS, out of which the GM may pick up at most one?
</MT>

>
> 6.  You are missing a lot of management detail on the POST to the group
> node.  Some of the things that are missing would be:
> a)  Is the group active or inactive

<MT>
We can have one more parameter on the group-configuration resource for this.

We are interpreting active/inactive as follows. Ideally, upon creating
the group, the request can specify the initial status as active or
inactive. Upon later updating the group by sending a request to the
group-configuration resource, the administrator can change the status
(or read it through a GET).

Then the active/inactive status has two parallel scopes:

1) one scope is for the GM alone, i.e the GM would allow the joining of
new group members only if the group is set as active.

2) when the group is set as inactive, the current group members should
refrain from sending and should not expect receiving any message
protected with that group key material. However, there is no way to
actually force them to.

In support to scope (2), when the status changes to inactive, the GM
should inform group members about that. To this end, the
group-membership resource intended for group members would also include
a parameter reflecting the group status and aligned in value with the
one in the group-configuration resource. Then, there are two ways to
inform the group members of a status change.

a) A way is to have the group members observing the group-membership
resource (that they may have been doing already anyway for
notification-based rekeying).

b) A second way is for the group members to have a dedicated local
resources for this (and other) kind of control communication (e.g.
rekeying). This is something we are also considering in
ace-key-groupcomm(-oscore) for receiving individual rekeying messages.
In either case this would require either: i) each node to provide the GM
with the URI to such local resource, in the join request; or ii) the GM
to include in the join response to each joining node a same multicast
address targeting a local resource that that node has to create to
receive control messages.
</MT>

> b) How does the server react if you change a the content encryption
> algorithm, is this a simple re-key operation or is it more complicated

<MT>
An easy answer would be rekeying the group, just as for any other
triggering reason. I agree this should be mention in this draft.

However, I think a more elaborated description of what happens if the
algorithm is changed (regardless why and how) should be actually better
given in oscore-groupcomm (the what) and in ace-key-groupcomm-oscore
(the how).
</MT>

> c) How does the server react if you change the signature algorithm?  This
> would seem to be a much harder thing to do if the group is not empty or not
> active as everybody is going to need to re-join.

<MT>
Right. If the signature algorithm changes, the current public keys may
be not compatible with it any longer. We see the following possible
ways, assuming the current group members have learnt of the new
algorithm in use.

1) The hard way, i.e. everyone leaving and re-joining.

2) A more lightweight way, i.e. relying on yet another operation for
current group members on the GM, to upload a new public key consistent
with the new algorithm. This would require to proof possession of the
corresponding private key, as it is done upon joining. Probably, in this
case, this can happen like we do in the Group OSCORE profile of ACE
between the Client and the AS, see the bullet point on
'client_cred_verify' at [2].

And again it looks like details on the way this is done fits better in
other documents.

[2]
https://tools.ietf.org/html/draft-tiloca-ace-group-oscore-profile-01#section-3.1

</MT>

> d) Other parameter that are changed may be just as bad as changing the
> signature algorithm - how the re-key is done jumps immediately to mind.

<MT>
Yes, changing HKDF/Alg results in what discussed two replies above;
changing anything else (thus related to signatures) results in what
discussed in the reply above.
</MT>


>
> 7.  Is there currently any way for a KDC to signal to all of the members
> that have joined that the key group no longer exists?  A DELETE would seem
> to indicate the need to be able to do this.

<MT>
Right, the DELETE of a group-configuration resource would trigger
something like this. The current resource maintaining on the GM consists
in: destroying both group-configuration and group-membership resource,
then reply to the Administrator.

That said, a possible extension to also inform current group members is
akin to what we describe above about signaling that the group has moved
to inactive state. That is:

i) if group members observe the group-membership resource, a 4.04
notification is sent to them, upon deleting that resource.

ii) if group members have their own local resource to receive control
messages from the GM, a control message can inform about the deletion of
such group-membership resource. This would be particularly convenient to
be sent over multicast. This method (ii) would actually require the GM
to send these messages to the group members first, and only afterwards
actually delete the group-membership resource, in case information such
as the destination addresses and URIs to consider are stored as part of
the group-membership resource itself.

A group member can of course discover what happened at any time, just by
sending any type of request to the deleted group-membership resource and
getting a 4.04 response back.

The actual difference between an existing inactive group and a deleted
group is that the latter has no way back, and would need to be
re-created from scratch on the GM by the Administrator.
</MT>

>
> Jim
>
>
>

-- 
Marco Tiloca
Ph.D., Senior Researcher

RISE Research Institutes of Sweden
Division ICT
Isafjordsgatan 22 / Kistagången 16
SE-164 40 Kista (Sweden)

Phone: +46 (0)70 60 46 501
https://www.ri.se