[Rats] Review of draft-ietf-rats-eat-01

Thomas Fossati <Thomas.Fossati@arm.com> Fri, 12 July 2019 14:33 UTC

Return-Path: <Thomas.Fossati@arm.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 CA9CF12029E for <rats@ietfa.amsl.com>; Fri, 12 Jul 2019 07:33:16 -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, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, 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=armh.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 XR60xc_yXrEg for <rats@ietfa.amsl.com>; Fri, 12 Jul 2019 07:33:12 -0700 (PDT)
Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-eopbgr140049.outbound.protection.outlook.com [40.107.14.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 147F012029D for <rats@ietf.org>; Fri, 12 Jul 2019 07:33:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qZHalXfIjOlybLGM99DlgYmoCTFe9dzIlqF64emp+60=; b=U8jvpENnhPBIbjJDWqKsI/fBhj2+wowJK1hisqaZKzhrce2Ixpf978ELk4LzZAoXznnO3qFvXarzprb0dkv1q/Vie6whkXGQ51AFZNkkYgUGIBznrQKmQYYmRqIw/raxj4HNFnhvcxY6JVrAtCFaoDpuby/HXIqAetBdWvKqFWI=
Received: from AM6PR08MB4231.eurprd08.prod.outlook.com (20.179.4.202) by AM6PR08MB2984.eurprd08.prod.outlook.com (52.135.163.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2052.18; Fri, 12 Jul 2019 14:33:08 +0000
Received: from AM6PR08MB4231.eurprd08.prod.outlook.com ([fe80::a0cb:7d43:97aa:b4fa]) by AM6PR08MB4231.eurprd08.prod.outlook.com ([fe80::a0cb:7d43:97aa:b4fa%7]) with mapi id 15.20.2052.022; Fri, 12 Jul 2019 14:33:08 +0000
From: Thomas Fossati <Thomas.Fossati@arm.com>
To: "rats@ietf.org" <rats@ietf.org>
CC: Thomas Fossati <Thomas.Fossati@arm.com>, Simon Frost <Simon.Frost@arm.com>
Thread-Topic: Review of draft-ietf-rats-eat-01
Thread-Index: AQHVOL65PFAOEPathEWojEQ1hWBvTQ==
Date: Fri, 12 Jul 2019 14:33:08 +0000
Message-ID: <7604E782-9230-43F2-9F62-62BE30731B66@arm.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Thomas.Fossati@arm.com;
x-originating-ip: [217.140.106.50]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 9c3a682f-b614-432a-5f00-08d706d5dbd6
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:AM6PR08MB2984;
x-ms-traffictypediagnostic: AM6PR08MB2984:
x-microsoft-antispam-prvs: <AM6PR08MB29846320390E31E8704B51D19CF20@AM6PR08MB2984.eurprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8273;
x-forefront-prvs: 00963989E5
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(39860400002)(136003)(396003)(346002)(376002)(366004)(199004)(40434004)(189003)(316002)(33656002)(66066001)(54896002)(476003)(54906003)(6916009)(2616005)(4326008)(6306002)(6116002)(86362001)(68736007)(966005)(71200400001)(71190400001)(66476007)(66946007)(66556008)(561944003)(6512007)(64756008)(2351001)(25786009)(66446008)(53936002)(76116006)(91956017)(81156014)(8936002)(9326002)(1730700003)(5660300002)(6486002)(478600001)(5024004)(256004)(186003)(36756003)(6506007)(7736002)(14444005)(66574012)(5640700003)(6436002)(2501003)(26005)(14454004)(99286004)(102836004)(3846002)(2906002)(486006)(8676002)(81166006); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR08MB2984; H:AM6PR08MB4231.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: k95RCoYn0TBIW0TrCcXUjoqgzp/rDvgeX/905TVw1eU+uRwAk44jMQDToYD/Zj8t1j6AljeEqp7A08Ju93LC9u2i71puNlUgotu7sCZ8AVB7XBU61fkK0b066rhH8BuLwimzOERvYQMXgBQ47k2pEIcXRE80J8GB1JZhQCKyDLGLXry01ghP9VJT6aMZVvzL9tJO0KkeQdT8ghdCXU7o8F5OZdm5nJfBVnmd0zRNJYP66Al/pKYlT8O2fFj4CYKW8bNs2OjcmobThXS1sgEFNujGm9L/kOUNS3zsc/3x50StzI7PJdEAf4nJN8NcYAAozvpSwJbYMFNEmP0yol3jVerXQJsf0jUCx8taloZqMChQJ01eWZbSZD1lc9KL8jNFrZSY7mjmX7htCY1fd2hzqPjyaR+dDi97EWZaLLk07JE=
Content-Type: multipart/alternative; boundary="_000_7604E782923043F29F6262BE30731B66armcom_"
MIME-Version: 1.0
X-OriginatorOrg: arm.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 9c3a682f-b614-432a-5f00-08d706d5dbd6
X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jul 2019 14:33:08.0515 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: Thomas.Fossati@arm.com
X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB2984
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/d4GYkpwEMmh0VjD3Gmjd1h82Wpc>
Subject: [Rats] Review of draft-ietf-rats-eat-01
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, 12 Jul 2019 14:33:17 -0000

Hi,

We did a quick pass over the latest EAT draft (-01) and amassed a few
comments (see below).  Thanks for all the good work you put into the
document!

Cheers, Thomas & Simon

# High level

* At a certain point we should probably do a pass to harmonise the
  terminology between the architecture draft and EAT (section 1.3 in
  particular):
  * basic concepts & vocabulary: e.g., RoT definition;
  * protocol roles & responsibilities.

* The need for profiling EAT to make it work in reality is pretty
  obvious when you think about the considerable number or things that
  one needs to state to achieve interop, e.g.:
  * Signing scheme
  * Transport
  * Supported claims
  * Type of UEID
  * Security level / certification scheme
  So it seem that having the "profile" concept, and an associated
  identifying claim -- for example, in PSA [1] we use arm_psa_profile_id
  -- defined as part of this doc would be beneficial.

[1] https://tools.ietf.org/html/draft-tschofenig-rats-psa-token-02#section-3

# Detailed

## S1.3

  * "This attestation key material is used for signing EATs."
  * "The EAT is always signed by the attestation key material
    provisioned by the manufacturer."

This seems to prevent nested_eat use cases (e.g., cloud workloads with
container/VM entities) where the outer EAT is signed with an "ephemeral"
attestation key associated with the instance that is itself attested by
the inner EAT signed with the AKM.  I suggest removing the sentence.

## S1.4.2

  * "No particular signing algorithm or signing scheme is required by
    this standard."

Isn't this a basic interop concern?  Is a EAT verifier supposed to
implement every possible signing/verification algorithm?
If we want to keep the above as-is, I think the following:

  "Over time to facilitate interoperability, some signing schemes may be
  defined in EAT profiles or other documents either in the IETF or
  outside."

Should say instead something like:

  "It is expected that EAT profiles or other specs building on EAT,
  either in the IETF or outside, will *mandate* a set of applicable
  signing schemes."

## S3

  * "It also mentions several claims defined by CWT and JWT are
    particularly important for EAT."

Typo: "[...] that are particularly important [...]"

  * "All claims are optional * No claims are mandatory"

Either one or the other is redundant?

  * "All claims that are not understood by implementations MUST be
    ignored"

While this is generally the right approach to support evolution, I'd
avoid making this a requirement here and let EAT profiles decide for
themselves instead.

## S3.1

  * "Note that intrinsically by the nature of a nonce no security is
    needed for its transport"

Not sure about the above: what about avoiding confusing the principals,
and/or reordering of messages from one principal?  In fact, it seems
it's exactly the opposite and that some security considerations would be
in order.  That, or dropping the sentence altogether.

## S3.3.

  * "No two products anywhere, even in completely different industries
    made by two different manufacturers in two different countries
    should have the same UEID"

Not sure how this assertion is compatible with type RAND UEIDs which –
unlike the other types – are constrained only by a local choice (e.g., a
"good enough" random generator) and not by any governance regime.

## S3.6

Security level is a certification-like claim except it's not backed by a
3rd party certification entity.  And even though the proposed 4 levels
look somewhat reasonable, I wonder what the benefits of having this
claim are?  ISTM that self-proclaiming sec levels adds nothing at best,
whilst altering the security perception in the worst case.  That said,
I'd not be against defining a generic "certification" container that can
be specialised by the specific EAT profile according to an existing or
future scheme, but that would be a pretty different thing from this.

## S3.7

I'm pretty sure we want to have something like this, but I'm not sure
the current definition is good enough.  Would this be better as a single
value with 4 states?

One problem with the current proposal is that "debug permanent disable"
implies "debug disable" but they can be set independently and therefore
inconsistently.

## S3.8

This needs some privacy considerations, in particular explaining the
interaction with UEID (the combo location & stable identity correlator
is pretty explosive.)  There is probably lots to be extracted from
previous GEOPRIV work (see, e.g., RFC6280).

## S3.9

  * "Seconds since the token was created"

I assume the "token creation" happens when the signature is applied?  If
so, I don't understand how can this information be sealed in the token
with a value different from 0.  If instead the age is "per-claim", then
a single global value is clearly insufficient.  Alternatively, if it has
"per-profile" semantics (e.g., "time since boot measurements taken"),
then this again can't be global, as it'd have profile-specific semantics.

## S3.11

  * "Typically, one will be the device-wide EAT that is low to medium
    security and another from a Secure Element or similar that is high
    security.”

Maybe s/Typically/For example/ : this is not necessarily the typical
case.

  * "The contents of the "eat" claim"

Typo: "nested_eat"

  * "It is either a full CWT or JWT including the COSE or JOSE signing."

Maybe worth a hint to dispatch it to the right decoder to avoid trial &
error and/or content-type snooping.

## S6

As already noted, this needs at least discussion around the location claim.

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.