[Rats] AD Review of draft-ietf-rats-eat-19

Roman Danyliw <rdd@cert.org> Fri, 17 March 2023 23:15 UTC

Return-Path: <rdd@cert.org>
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 F18CBC14CE36 for <rats@ietfa.amsl.com>; Fri, 17 Mar 2023 16:15:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.098
X-Spam-Level:
X-Spam-Status: No, score=-7.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cert.org
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 mAGLSamdAF_i for <rats@ietfa.amsl.com>; Fri, 17 Mar 2023 16:15:46 -0700 (PDT)
Received: from USG02-CY1-obe.outbound.protection.office365.us (mail-cy1usg02on0731.outbound.protection.office365.us [IPv6:2001:489a:2202:d::731]) (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 12C39C14E513 for <rats@ietf.org>; Fri, 17 Mar 2023 16:15:45 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector5401; d=microsoft.com; cv=none; b=QQYTIEY+zKrxGWZXIw/4KUKa/5OTgAtQ3NxUvVQD4mBO5je8jzgzXJL2TQRjYPaDpDWaM06TqWd3lmAtWe4MuNAYkwUiHN5zMdNmqSncz5HHC7v6LpbjQZF4j6o0cSgDSyHdteCpemo5KdVMFhKGHu5Zu2eyF7S6/zOZ1m77tQk+f8ZMjalgPt8yOTEa2ykUXLmqUB4TDslPvnaCnv183DzlRDP4yTDB+Toy12m/Uswuugp4jgFF6sOOcmh0G3mD/g38ZVHnPvYKv4c1DCy3EK3ljuvO0A5PlaWL/DQaBPGQHXBG1+o6xO6itiVVaai//i2PPzrFCg7L4P7DFs4YMA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector5401; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=v8TclPQLDSl7nHbzAjLSpIVS03Ivko2X/9VESm0ha98=; b=MdGV+EODqIgNy238x1Bu7qBZlN36stCmrkTUswro0RCsBY3zxmo8ufTeDGvsmoWPSy1CVBNV524GyBK8bPBl8XMsVRFz7qQqah5Aj++Tf/uJVcdwIedt+NxUKvZwp1EygVIpZaZfDMBNTe9IvWsgBuwuhfsV/50kJMOdp6tsdATsHlmYlWrcO6P+W/jK150KvJ6NmTnDntPNN/oNQEX4ai8iIvLE3aYbtdyI2qOTGV9mka2syxu/4q+XRL8ltmaO1GNxVDZCnWOrU3KLQZ9ZYebAivZ7vnf1RC+P7wBaroS1oHoD7xjCW/1aGhPWoTd2psT/JYOdWHmaXqK8g0E2aw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cert.org; dmarc=pass action=none header.from=cert.org; dkim=pass header.d=cert.org; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cert.org; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=v8TclPQLDSl7nHbzAjLSpIVS03Ivko2X/9VESm0ha98=; b=AdW0stk+5Nmsga1PsdHkthGds4Q4YcpIDw8/hPWNh/JwkgcttEo0VuoPOapMSG7XtnIVpJf+8ddnDUCG+Hr3Ey1IMte0VLh1uXLiG24gAX6VephP1rKqQrbzHvJ/sGO5UByNGJJW3Ec048exjkJVm69SQ7rL3G+F8pSoTITTo80=
Received: from BN2P110MB1107.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:168::11) by BN2P110MB1762.NAMP110.PROD.OUTLOOK.COM (2001:489a:200:16a::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.33; Fri, 17 Mar 2023 23:15:41 +0000
Received: from BN2P110MB1107.NAMP110.PROD.OUTLOOK.COM ([fe80::b585:6958:6026:4b8a]) by BN2P110MB1107.NAMP110.PROD.OUTLOOK.COM ([fe80::b585:6958:6026:4b8a%5]) with mapi id 15.20.6178.031; Fri, 17 Mar 2023 23:15:41 +0000
From: Roman Danyliw <rdd@cert.org>
To: "rats@ietf.org" <rats@ietf.org>
Thread-Topic: AD Review of draft-ietf-rats-eat-19
Thread-Index: AdlZH5iCS5e9FHKPTPmQQOz+cKRb0A==
Date: Fri, 17 Mar 2023 23:15:41 +0000
Message-ID: <BN2P110MB1107B56336DC627D90E7F2FADCBD9@BN2P110MB1107.NAMP110.PROD.OUTLOOK.COM>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=cert.org;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: BN2P110MB1107:EE_|BN2P110MB1762:EE_
x-ms-office365-filtering-correlation-id: a19594bd-7d27-48b3-9723-08db273d86d8
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: GVyGbv4R0icHaCw+m7buVy6ir7/yodqMapp35vXYAC9v3XqT45pC0J6IPMt8XoNW7qE3dHh0hoY4xXXMa0n1wi/iskV18uFWC8EPn8xcRGzoIKv7dFvR4BGKe+yR5Q0dmNBWVsNEXp8uP7r085XzF8j7WSeptsYhuS8XQJ14O4qGmJztORB1H2AooPXnaq+YWsacoTMlWkv/a3qcdOLiU9GxSkPZxW3pkco9bWjp9EgXvsiO+zldE3zdpQYiseGBfK7+/EYyBAa/zj6rV5jihiKvApe+uKOlMcign8h+vjrrm8SlUdENSITok/KnxYAQ+RkMms9rX0ayQ58n6Iqrl2YXar2FGwHT24w31ycnu+Tb/NgZyk4sLGWeO2Zq2u83XcoyOvVKLosmBkm18q4e65GCcLi1YOpphLmXPpYMURhE87ZUZ60vpTbRvibpb6ofNsZmSOoCzeMDZjliIZNNn1wmJFjuQQfILXq/7MymzABh3RKZ0Hiy/fNoiMJx5oMx8MUfg+4kdAPpditKYhiNamasJeuWEiozDkBSC9ZibM17mavHXB97nFOmMA3PhAieNYut3fcZ1mkDts/b6uOlpRxZ0/Jye1HRtw2Z23AmHvf1cuTeHvowxubxvO+Zo34o2VFM1NvBMVYvg5P8n1y8oQ2GkCAgJsEKnb212rUOnhSmf1u3rwV0CuQorUGtAwIk
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN2P110MB1107.NAMP110.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230025)(39830400003)(396003)(366004)(136003)(451199018)(52536014)(41300700001)(30864003)(66946007)(66446008)(2906002)(8676002)(64756008)(6916009)(5660300002)(66556008)(66476007)(76116006)(8936002)(83380400001)(966005)(508600001)(7696005)(71200400001)(9686003)(4743002)(26005)(16799955002)(186003)(6506007)(55016003)(82960400001)(33656002)(86362001)(66574015)(122000001)(41320700001)(38100700002)(38070700005); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: 6juYw9Je/v+VXJ3wbgW3a2153a/YFa74xyZbZbPotwDf0ouxKPPZTQoNqOKvl3O0szJrD7iBpWYt8+VOr+YPgcD43FOUCLlxGMtXchkQPcl2+S/d5zE3v64IlhFvG1EIuYzMAUgrFaHH9oMS1H+Y2524tr+4QqHKo8oLKYx4njAP5I6oSUjrXMB7rgQFUzPJ4uFc8GRjfs6k6Tj2fEnBARukVs03/Ucj8PzpxYFMv56uSv1fCUcloFNW6QH3JHSGH68EPCKiX7OjlzHnppKwnGUhbPxQjO7kRyPgJXd1gRVZ5e9geAzJc5eZiKVfK6z2Um76tTORQVEW7psW6KbQ0JV7GhYDdm3qT0BFFJKX9R5a45h8vOQi58ql3aI29E7rByU1NbcIntsGJZcHW1b8bBQYmvLIBuoFuPv/d797vvO2baZlvS2emOuGY79LHGPxbLvCFOVkfmmZeVW+8a2ttKAwNQtfFs4NIXeV33WSYG52Cp68NsrhQNEpLz9TsvQL5vA90C44m+4hxfPdMXH5S9dc6mlM6w5tvV2lDx+YZYrwStRlPOAnT9DcrWSuqzyhGagEcP+rWBiJRyfQ3nBiHlimom4iFDYqiiMu7g4X3TxcfT4MrRxQodVu4khIFpXd65armiViCzwd8xZe13hoHOTu08NEBGKfcNnlCjDF5bOHbbkm5jh0mc5sAf/OasaNNv9s7Z6XMfZHm73paRF2XtS3SAkYbA2FutfsesotacTgtEUYcFzIwsOwBp1Sc1yjkteMeiWowpI7yM7MJ9uHDdiSfLoODIsLvyBiZ5ftSbeZvTQVQLjZzIe6F2CigGUDd9KPWAKri+RK90tkYr4ro7myyECesPiSiayJmy7tiKHLHe8jsMrE0zVwhnMWtPCRIKaGBfkLcvKAw4NGeHMScK1UMeSIaTajrNicEzvW+L0urGjsG2eOKWbOhBPEuxSmrS+fp4/XkU24eB20g88tDCkPlIS3t9VdFzV7qj3G7qdCksa9FspfpRoHfu6PB9W3GZhJv03FDpgeah5wuAAgm+FY7B6UcrfEtDQ2rtNeyamMitAoB9fjqO5LBIIh2z2eMDQF9xI9TA0pe2nKYImuofIPCoLVLSdQOy+MaIKhspqzWKLa7Y7zO0DaEja7MCFLA/ckJb2InwK7/F/FSRFpE645T60vlhqS9lRWCcA8xykWO/u/8HtZWRYn186U04zNVa0m65sw0ExYq27lt2tsXqIxmIOJeHV6ZkGnqkY3fd6ba+m1GXGeQ9fSrFx9ZgprcK2g/QYpeZrIF54RPEv8XLElj0K8Se8hjX8ZBBAl2DZ+WbAtP1cBbmuwbA/VjC2OW3wT15U8NCU38t+Bs7rOXuaTg2hcjXTOwfQelqYPmi7cxtSyNnS1sOR2RD4YaYfOVNyibVezJbs81/SFyVWN+uR+ffn5gIK4hnxmmZqde3K1AcTFRL8Ei/sv+6CGwj2qcqe+TbE4V4nh/S0ExeFd+3mdHx/Z9Ziaqn334HRljD4=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-OriginatorOrg: cert.org
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: BN2P110MB1107.NAMP110.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-Network-Message-Id: a19594bd-7d27-48b3-9723-08db273d86d8
X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Mar 2023 23:15:41.1575 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 95a9dce2-04f2-4043-995d-1ec3861911c6
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN2P110MB1762
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/50ZbUkhSrU1cgOLYkir3f1kKFiY>
Subject: [Rats] AD Review of draft-ietf-rats-eat-19
X-BeenThere: rats@ietf.org
X-Mailman-Version: 2.1.39
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 Mar 2023 23:15:51 -0000

Hi!

I completed an AD review of draft-ietf-rats-eat-19.  Thank you for all of the work on this document.  My feedback is as follows:

** Please merge https://github.com/ietf-rats-wg/eat/pull/367

** EAT as a "message".  Editorial.

The text notes that EAT is a message in a number of places in the text.  For example:
-- Section 1 "An Entity Attestation Token (EAT) is a message or token made up of claims about an entity."
-- Section 3.  "An EAT is a "message", a "token", or such whose content is a Claims-Set about an entity or some number of entities"
-- Section 3. "This document also defines a new top-level message"
-- Section 5. "It  is a top-level EAT message like a CWT or JWT."

Could there be a forward reference earlier to explain that EAT is a "message" like a "CWT and JWT".  EAT is not implying any specific message flow.

** Section 1.
  The security model and goal for attestation are unique and are not
  the same as for other security standards like those for server
  authentication, user authentication and secured messaging. 

The text asserts a difference, but the distinction isn't clear to me.  Is this text noting that "attestation" is not the same as "authentication"?  

** Section 1.
  In particular, EAT provides a profile
  mechanism to be able to clearly specify the claims needed, the
  cryptographic algorithms that should be used and other for a
  particular token and use case.

-- Where in this document is the normative behavior "specify[ing] the claims needed"?  Is that the related to the eat_profile claim and Section 6?

-- Editorial. The last clause in doesn't parse for me "... and other for a particular token and use case"

** Section 1.  Editorial.  
   The entity side of an EAT implementation generates the claims and
   typically signs them with an attestation key.  

-- s/The entity side of an EAT implementation/The entity's EAT implementation/

-- s/SW defenses/software defenses/

** Section 1.1.
   Many of the claims defined in this document are claims about an
   entity, which is equivalent to an attesting environment as defined in
   [RATS.Architecture]

This link to "attesting environment" per Figure 2 of RFC9334 doesn't appear consistent.  In RFC9334, claims are about the "target environment" and "attesting environment collect[s] the values and the information to be represented in Claims by reading system registers and variables, calling into subsystems, and taking measurements on code, memory, or other relevant assets of the Target Environment."

** Section 1.1.

   An entity may be the whole device, a subsystem,
   a subsystem of a subsystem, etc.  

What is the relationship between this statement and the "layered attestation environments" and "composite device" defined in  Section 3.2 and 3.3 of RFC9334?  

** Section 1.1

    An entity also corresponds to a "system component", as defined in the
   Internet Security Glossary [RFC4949].   ...

Is this entire paragraph trying to precisely define "system component" needed in light of text in the architecture document?

** Section 1.2.  Editorial.  This bulleted item is not like the others:

it can also be described as:
...
Claims are defined in CDDL and serialized using CBOR or JSON

It is a complete sentence and the other bullets are not

** Editorial.  I would be helpful to establish somewhere early in the document or provide a forward reference to explain the difference between a token and claim-set.  Here are early references to a distinction being made without explanation.

-- Section 1. "Nesting of tokens and claims sets is accommodated for composite devices that have multiple subsystems."
-- Section 1.2. "Nesting of claims sets and tokens to represent complex and compound devices"
-- Section 1.2. "EAT defines a means for nesting tokens and claims sets to accommodate composite device"

** Section 1.2

   As with
   CWT and JWT, no claims are mandatory and claims not recognized should
   be ignored.

Is this guidance talking about EAT usage in application?  If so, I would recommend repeated and adapting the language from RFC7519, Section4:

(my restatement by substituting EAT for JWT)
The set of claims that a EAT must contain to be considered valid is context dependent and is outside the scope of this specification. Specific applications of EATs will require implementations to    understand and process some claims in particular ways.  However, in the absence of such requirements, all claims that are not understood by implementations MUST be ignored.
 
** Section 1.2
Full tokens with security envelopes may be embedded in an
   enclosing token.  The nested token and the enclosing token do not
   have to use the same encoding (e.g., a CWT may be enclosed in a JWT).

What is the difference between a "full token" and a "token"?

** Section 2.
   This document reuses terminology from RATS Architecure
   [RATS.Architecture]:
...
   Socket Group:  refers to the mechanism by which a CDDL definition is
      extended, as described in [RFC8610] and [RFC9165]

"Socket Group" is not defined in [RATS.Architecture]

** Section 3
   This
   includes the nesting of an EAT that is a different format than the
   enclosing EAT.

What is meant by "different format"?  Is it a difference application profile or is it encodings?

** Section 4.2.1 ueid claim.  Does the WG expect future extensions to this claim given the type byte?  If so, should there be an IANA registry to manage this byte?

** Section 4.2.1.
(a) 
The consumer of a UEID MUST treat a UEID as a completely opaque
   string of bytes and MUST NOT make any use of its internal structure.

(b) 
The type byte is needed to distinguish UEIDs of different types that
   by chance have the same identifier value

(c)
The type byte MUST be treated as part of the opaque
   UEID and MUST NOT be used to make use of the internal structure of
   the UEID.

It appears that the guidance in (b) to use the 'type' to distinguish different UEIDs conflicts with (a) and (c) which asserts that the UEID (of which the type is part of) are supposed to be opaque.

** Section 4.2.1.  I'm having difficulty reconciling the guidance that the UEID is opaque with the fact that type=0x2 and 0x3 have inherent structure.

** Section 4.2.2.  Typo. s/Device Indentifier/Device Identifier/

** Section 4.2.3.1.  Please provide an informative reference for SHA-256.

** Section 4.2.3.1.  What is the reasoning for providing guidance on using a hash function to generate the OEMID?  Specifically, what advantage does it provide over the first approach of choosing a number of 128-bit number at random?

** Section 4.2.3.1.  Please include a normative reference for the first instance of base64url encoding.

** Section 4.2.4.  Is it envisioned that a profile could use the hwmodel claim without the oemid?

** Section 4.2.5.  Editorial.

   The structure and sorting order of this text
   string can be specified using the version-scheme item from CoSWID
   [CoSWID].

Wouldn't it be more precise to say that the values corresponding to the "SWID/CoSWID Version Scheme Value" registry?

** Section 4.2.4 - 4.2.7:  

-- Does the presence of a swversion claim in an EAT, require that an a swname claim also be present? 

-- Same question for hwversion and hwname.

** Section 4.2.5 and 4.2.7.  Editorial.

-- 4.2.5: The structure and sorting order of this text
   string can be specified using the version-scheme item from CoSWID

-- 4.2.7:  The "swversion" claim makes use of the CoSWID version scheme data
   type

The hwversion and swversion claim both seem to be using the same CoSWID registry in the same way.  However, one is framed as "version-scheme item" and the other "version scheme data type".

** Section 4.2.9.  

   As with all claims, the absence of the "dbgstat" claim means it is
   not reported.  A conservative interpretation might assume the enabled
   state.

It isn't clear why the absence of a claim should indicate that it's value is true (i.e., dbgstat=enabled).

** Section 4.2.10.  The CDDL has an altitude-accuracy item, but the prose does not describe it.

** Section 4.2.10.  Is the unit of the timestamp item in seconds?

** Section 4.2.10.

   The
   entity MUST still have a "ticker" that can measure a time interval.
   The age is the interval between acquisition of the location data and
   token creation.

If the age and timestamp items are both optional, why is this claim putting a requirement on the entity to be able to capture something (the ticker) that doesn't need to be passed?

** Section 4.2.14.  Are there Security Considerations around retrieval of DLOA from a given URI?

** Section 4.2.15

   Some manifests may be signed by their software manufacturer before
   they are put into this EAT claim.  When such manifests are put into
   this claim, the manufacturer's signature SHOULD be included.

If the manufacturer's signature isn't included, how would one know that it is signed?

** Section 4.2.15

   Identification of the type of manifest is always by a CoAP
   Content-Format integer [RFC7252].  If there is no CoAP identifier
   registered for the manifest format, one should be registered, perhaps
   in the experimental or first-come-first-served range.

If the manifest is always identified by the CoAP, per the first sentence, why "should" one be registered?  This would be a must.

** Section 4.2.15.

   When the [CoSWID] format is used, it MUST be a payload CoSWID, not an
   evidence CoSWID.

What makes something a "payload" vs. "evidence" CoSWID.

** Section 4.2.15

   A [SUIT.Manifest] may be used as a manifest.

What is the purpose of this explicit call out to SUIT.  Can't any manifest format with a Content-Format Identifier usable?

** Section 4.2.15.  (I'm no CDDL modeling expert) Why does the CDDL definition of manifest-format need cyclone-dx-* and spdx-*?  Couldn't one just say:

   $manifest-body-cbor /= text
   $manifest-body-json /= text

This would allow support for any text (JSON and XML) based manifest format?

** Section 4.2.17.  Is there any guidance to provide on how the "results-id" is generated?  How unique it is?  How entities need to coordinate on defining a common understanding it it?

** Section 4.2.18.  Typo. s/standaridized/standardized/

** Section 4.2.18.

     "CBOR":  The second array item must be some base64url-encoded CBOR
      that is a tag, typically a CWT or CBOR-encoded detached EAT bundle

This "must" needs to be a "MUST" to be consistent with the rest of the guidance in this section.

** Section 4.3.  Editorial. Why is Section 4.1 (eat_nonce) not in this section as they are providing meta-data about the token?

** Section 4.3.3.  intuse.  Does the WG expect this claim to be extended with additional values?  Should it be maintained with an IANA registry?

** Section 6.  Which parts of this section are normative vs. informative.  It looks like Section 6.3 is normative.  I can't tell with the rest since the rest of the sections (except in one place) don't use RFC2119 language.

** Section 7.2.1.  Editorial.

OLD
They are just text strings that contain a URI

NEW
They are just text strings that contain a URI conforming to the format defined in RFC3986

** Section 7.2.2.  Please find a reference for the "oid" format.

** Section 8.4

   EAT defines the nonce claim for replay protection and token
   freshness.  

Shouldn't this read "eat_nonce"?

** Section 9.3.  Should there be a normative "MUST" about providing a freshness mechanism?

** Section 9.4.  

   Since any COSE encryption will
   be removed by the receiving consumer, the communication of claim
   subsets to any downstream consumer should leverage a communication
   security protocol (e.g.  Transport Layer Security).

-- Per "Since any COSE encryption will ...", couldn't it also be JOSE too?

-- Should there be some mandatory equivalent made that the transport security properties should be at least as strong as the object security properties of the EAT?

** Section 9.4.

   However, assume the EAT of the previous example is hierarchical and
   each claim subset for a downstream consumer is created in the form of
   a nested EAT.  Then, Transport Layer Security between the receiving
   and downstream consumers is not strictly required.  Nevertheless,
   downstream consumers of a nested EAT should provide a nonce unique to
   the EAT they are consuming.

I don't follow how a hierarchical relation changes the required security.  Could this be clarified?

** Section 10.2.  Typo. s/preferrably/preferably/

** Section 10.5.  Please review https://www.rfc-editor.org/errata_search.php?eid=4954.  

-- The field named "Encoding" here should be called "Content Coding".  
-- Why is "binary" the right encoding for a json item.

** Section B.1. Typo. s/datadbase/database/

** Appendix E.  Who is the intended audience of this text?  New claims are going to into the JOSE and COSE registries which has it's own guidance to the DE.  There are no "EAT"-specific claims.

** E.5.  This section seems to make the case that is the opposite of E.2 and E.3 (which argued for generalization)

** F.1.2.  Typo. s/Siganture/Signature/

** F.2.  Good guidance is in this section.  Is there a reason it isn't in the Security Considerations section?

** Appendix G.  Should this be removed prior to publication?  If so, add text to the RFC Editor.

** References. [CycloneDX]

   [CycloneDX]
              "CycloneDX",
              <https://cyclonedx.org/specification/overview/>.

The IESG will push back at this being web link that could likely change to point to the latest version of the specification.  CycloneDX is versioned so please point to a particular version.  This looks like the a specific reference 

https://cyclonedx.org/docs/1.4/json/


Regards,
Roman