Re: [Suit] Suit manifest with variable recipients

Michael Richardson <mcr+ietf@sandelman.ca> Tue, 13 July 2021 01:10 UTC

Return-Path: <mcr+ietf@sandelman.ca>
X-Original-To: suit@ietfa.amsl.com
Delivered-To: suit@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2FEED3A0CEB for <suit@ietfa.amsl.com>; Mon, 12 Jul 2021 18:10:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=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 nRF8fQPalz-b for <suit@ietfa.amsl.com>; Mon, 12 Jul 2021 18:10:05 -0700 (PDT)
Received: from tuna.sandelman.ca (tuna.sandelman.ca [209.87.249.19]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 457D63A0CDD for <suit@ietf.org>; Mon, 12 Jul 2021 18:10:05 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by tuna.sandelman.ca (Postfix) with ESMTP id 5A6DF38B2B; Mon, 12 Jul 2021 21:12:55 -0400 (EDT)
Received: from tuna.sandelman.ca ([127.0.0.1]) by localhost (localhost [127.0.0.1]) (amavisd-new, port 10024) with LMTP id aiVffXmDYunM; Mon, 12 Jul 2021 21:12:51 -0400 (EDT)
Received: from sandelman.ca (obiwan.sandelman.ca [IPv6:2607:f0b0:f:2::247]) by tuna.sandelman.ca (Postfix) with ESMTP id 43D1338B2A; Mon, 12 Jul 2021 21:12:51 -0400 (EDT)
Received: from localhost (localhost [IPv6:::1]) by sandelman.ca (Postfix) with ESMTP id CD22694B; Mon, 12 Jul 2021 21:09:58 -0400 (EDT)
From: Michael Richardson <mcr+ietf@sandelman.ca>
To: Brendan Moran <Brendan.Moran@arm.com>
cc: suit <suit@ietf.org>
In-Reply-To: <F51C5D05-043E-4F07-9A4C-7044646192E3@arm.com>
References: <F51C5D05-043E-4F07-9A4C-7044646192E3@arm.com>
X-Mailer: MH-E 8.6+git; nmh 1.7+dev; GNU Emacs 26.1
X-Face: $\n1pF)h^`}$H>Hk{L"x@)JS7<%Az}5RyS@k9X%29-lHB$Ti.V>2bi.~ehC0; <'$9xN5Ub# z!G,p`nR&p7Fz@^UXIn156S8.~^@MJ*mMsD7=QFeq%AL4m<nPbLgmtKK-5dC@#:k
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=-=-="; micalg="pgp-sha512"; protocol="application/pgp-signature"
Date: Mon, 12 Jul 2021 21:09:58 -0400
Message-ID: <27551.1626138598@localhost>
Archived-At: <https://mailarchive.ietf.org/arch/msg/suit/2exprTduWGBjyo5eHBx5qVWqFWo>
Subject: Re: [Suit] Suit manifest with variable recipients
X-BeenThere: suit@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Software Updates for Internet of Things <suit.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/suit>, <mailto:suit-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/suit/>
List-Post: <mailto:suit@ietf.org>
List-Help: <mailto:suit-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/suit>, <mailto:suit-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 13 Jul 2021 01:10:11 -0000

Brendan Moran <Brendan.Moran@arm.com> wrote:
    > The result is that COSE_Recipients MUST be held outside of the
    > manifest’s chain of trust. This complicates matters somewhat. It would
    > be better if most of the COSE_Encrypt was held under the trust umbrella
    > while the COSE_Recipients were held outside the umbrella. However, COSE
    > does not support detached Recipient lists. This may be a failing of
    > COSE, and perhaps it should be discussed there. In the interim,
    > however, SUIT needs to move forward with some solution to deploying
    > variable recipient lists.

I think it is reasonable that SUIT give COSE a clear set of requirements.
(Let's not do CBOR packed goof again)

    > I can see several options:


    > Option 1: Place the COSE_Encrypt outside the manifest, reference it by
    > URI (remote) or Integer (envelope) Modify
    > suit-parameter-encryption-info to take a tstr (URI) or integer
    > (Envelope Reference)

    > This means that all devices supporting the encryption-info parameter
    > MUST support both integrated, detached local, and detached remote
    > modes. I don’t think this is really in the spirit of SUIT.

I see your point.

    > Option 2: Place the COSE_Encrypt outside the manifest, reference it by
    > Integer (envelope) Add a new suit-parameter-encryption-info-detached
    > that takes the integer (Envelope Reference)

    > This has the benefit of being unambiguous. However, it creates a new
    > problem: what happens if both the
    > suit-parameter-encryption-info-detached and the
    > suit-parameter-encryption-info are set? Does there need to be a rule
    > that one explicitly unsets the other? How does that work with
    > permissions?

It sounds to me that either it's invalid (manifest rejected outright), or one
simply has a higher priority than the other.

    > Option 3: Abuse COSE slightly: Place a COSE_Encrypt0 in the
    > manifest. Place a list of recipients outside the manifest.

    > This has the benefit of being what we actually want, but it probably
    > won’t play nice with COSE libraries.

I think that few devices will have totally generic COSE libraries anyway.
Encoders can cope.


--
Michael Richardson <mcr+IETF@sandelman.ca>   . o O ( IPv6 IøT consulting )
           Sandelman Software Works Inc, Ottawa and Worldwide