Re: [Rats] Should we remove submods from EAT? (was Re: EAT Review Comments)

Laurence Lundblade <lgl@island-resort.com> Fri, 17 December 2021 19:26 UTC

Return-Path: <lgl@island-resort.com>
X-Original-To: rats@ietfa.amsl.com
Delivered-To: rats@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2FAD03A0913 for <rats@ietfa.amsl.com>; Fri, 17 Dec 2021 11:26:03 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, 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 Qyi8QhE7QEip for <rats@ietfa.amsl.com>; Fri, 17 Dec 2021 11:25:57 -0800 (PST)
Received: from p3plsmtpa09-03.prod.phx3.secureserver.net (p3plsmtpa09-03.prod.phx3.secureserver.net [173.201.193.232]) (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 661C83A0912 for <rats@ietf.org>; Fri, 17 Dec 2021 11:25:56 -0800 (PST)
Received: from [192.168.1.7] ([75.80.148.243]) by :SMTPAUTH: with ESMTPA id yIrbmolOfH63LyIrcmTv1H; Fri, 17 Dec 2021 12:25:56 -0700
X-CMAE-Analysis: v=2.4 cv=A9ypg4aG c=1 sm=1 tr=0 ts=61bce444 a=VPU1mRQhDhA4uSX60JRRww==:117 a=VPU1mRQhDhA4uSX60JRRww==:17 a=IkcTkHD0fZMA:10 a=l70xHGcnAAAA:8 a=QyXUC8HyAAAA:8 a=pGLkceISAAAA:8 a=iwsNLBZcinU1e_k-4esA:9 a=QEXdDO2ut3YA:10 a=JtN_ecm89k2WOvw5-HMO:22
X-SECURESERVER-ACCT: lgl@island-resort.com
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.17\))
From: Laurence Lundblade <lgl@island-resort.com>
In-Reply-To: <10720.1639667481@localhost>
Date: Fri, 17 Dec 2021 11:25:55 -0800
Cc: "Smith, Ned" <ned.smith@intel.com>, Hannes Tschofenig <Hannes.Tschofenig@arm.com>, "rats@ietf.org" <rats@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <6CBC3D74-7963-4127-A510-C6A0C54E5EFA@island-resort.com>
References: <DBBPR08MB59150EEE386E675005A52124FA6E9@DBBPR08MB5915.eurprd08.prod.outlook.com> <B81765CF-8515-440B-A021-977FCD59D5E2@island-resort.com> <DBBPR08MB5915DD8BAA394E7D665E4C7DFA709@DBBPR08MB5915.eurprd08.prod.outlook.com> <E6E179AD-23AA-4B22-A0CE-26BED6BB2862@island-resort.com> <ABD665F5-777E-4A9C-8920-0135FA91FC7B@intel.com> <10720.1639667481@localhost>
To: Michael Richardson <mcr+ietf@sandelman.ca>
X-Mailer: Apple Mail (2.3445.104.17)
X-CMAE-Envelope: MS4xfCtT8PD/rEf9aFx8omQH2EWETKIFSZrrMmXHenZ/WgB2iO31RoYHRDfvc03zwtrluhJrCJd6sbedZ2AEwLDYDABJ/YnOuUwuHgFLa0qC67JVSJzPg1Gv Ac06ZmGgQA07E4F0JGqrOKipdsB85FVNlIak8XmlhUKUfFaj1kUbrw012C4jg13sNcuL39pofJl5N1SDSLNXP+mt3bGwviU0Q7NS4uNVzalqhTazkSCmc2j5 aYBh4Nk+YtZXjsjtZ32JPFqIu7Co7RthgCshmXB6nQaPjN/notoPqCFZzwZVPDBJ
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/N2sD2Eh70UfWrUON98XKTSpm8fI>
Subject: Re: [Rats] Should we remove submods from EAT? (was Re: EAT Review Comments)
X-BeenThere: rats@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Remote ATtestation procedureS <rats.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rats>, <mailto:rats-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rats/>
List-Post: <mailto:rats@ietf.org>
List-Help: <mailto:rats-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rats>, <mailto:rats-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 17 Dec 2021 19:26:03 -0000

> On Dec 16, 2021, at 7:11 AM, Michael Richardson <mcr+ietf@sandelman.ca> wrote:
> 
> Smith, Ned <ned.smith@intel.com> wrote:
>> There has been discussion that EAT as a standalone spec can’t
>> reasonably be implemented without a profile.

The same is true for CBOR, CWT, JWT, COSE and JOSE (more comments below).

>> Possibly, the profile
>> context addresses some of these concerns? The PSA draft goes further to
>> define a profile, but I don’t see it directly addressing the
>> consideration for multi-vendor device composition.
> 
> That's unfortunate if that is really the case.  Profiles of profiles of profiles.
> I think of EAT as the profile of COSE that let's us do attestation.

Do you mean EAT as a profile of CWT, not COSE?


> If there is a profile, then it would address the naming concern that you
> raised.
> 
> In general, I think that every single vendor/integrator who puts the right
> manufacturer supports (Endorsements, Reference Values) and/or operates a
> Verifier (likely in Background Check model) will need to solve the naming and
> profile problem.    I'm not sure that we need standardization here: it's all
> under control of the manufacturer.

Agreed, submod naming is left to the manufacturer, specifically the maker of the Attester. I haven’t been able to come up with anything better so far.

More below in response to Thomas.


> 
>> The other EAT claims (not submod) seem to imply a simple composition
>> where the thing (module) to which the CWT/JWT is issued / bound is the
>> thing (module) that has the EAT claim.
> 
> I would prefer that the EAT document was simplified/shortened, that anything
> we do not presently have running code for be removed to another document.
> I'd like to see EAT published by Summer 2022, even if that means four or five
> extension documents come later.

There is running code for submodules (CToken & Xclaim) and most other claims, but not for DEB.



> On Dec 16, 2021, at 3:37 AM, Thomas Fossati <tho.ietf@gmail.com> wrote:
> 
> hi Laurence,
> 
> I agree with you that submods exist for a very good reason. They have
> particular value if the composition pattern is static and known
> a-priori (Ned's email has some interesting points in this regard). The
> existence of submods has enabled some interesting expression during
> prototyping efforts here.  Note also that I would be concerned
> that if submods did not exist then that might result in multiple custom
> solutions emerging to express nesting, which would be a poor result for
> the wider RATS standardisation efforts.

So, unless a strong consensus emerges, I will keep submods in EAT.

> 
> The current definition is nice and simple, though I would like to
> explore some extra functionality at some point. The small trouble I have
> with it is that the string type limits the expressiveness of the submod
> identifier.  Ideally, one could have a composite, more powerful type on
> the LHS of the submod definition.  Note that this would be possible in
> CBOR but not in JSON, so if we want interworking between the two formats
> we'd need to find another solution. For example one where the RHS
> clearly separates identification information from the measurements.  At
> that point the string key would be redundant, or left as a hint.  At the
> moment I don't have a very concrete proposal (i.e., code) though, so
> this is just a thought.

Maps with labels that are not strings or integers are generally a bit scary and off the beaten path. I suspect many CBOR libraries (like QCBOR) have built-in support for maps with string and integer labels, but not for arbitrarily complex labels. So some aggregate type in the label would up the implementation cost a lot, particular on the decode side.

I don’t know what sort of submods you are trying to implement.

Best I can think of is that you pack some structure into the string label. Maybe we also allow byte string labels to help. The Verifier and RP usually have ample CPU power and memory so multiple scans of the submods section are OK. The implementation can unpack the whole submods section into memory including unpacking the structure in the label and do whatever it needs to do to get to the submod it wants. Maybe in the extreme, the byte string labels are wrapped CBOR.

LL



A few more comments on interoperability and profiles:

- One CBOR implementation sends indefinite lengths and a receiver only decodes definite lengths —> no interoperability
- There are no required algorithms and no handshake for COSE and JOSE so the —> no interoperability is possible
- There are no required claims in CWT or JWT —> —> no interoperability is possible
- Even the PSA profile of EAT is not locked down enough to guarantee interoperability

Though it is common, all this lack of guaranteed interoperability seems a bit odd for the IETF in a way. It was a main motivator for me to put profiles in EAT.

FIDO has a conformance certification program. The FIDO spec is therefor tight on this. In theory vendors on different planets that can’t talk to each other can produce interoperable and conformance-passing FIDO implementations.