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

"Smith, Ned" <ned.smith@intel.com> Mon, 22 July 2019 19:25 UTC

Return-Path: <ned.smith@intel.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 D1B4B12008C for <rats@ietfa.amsl.com>; Mon, 22 Jul 2019 12:25:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.198
X-Spam-Level:
X-Spam-Status: No, score=-4.198 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, 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 vKK7Rpu-JEGK for <rats@ietfa.amsl.com>; Mon, 22 Jul 2019 12:25:56 -0700 (PDT)
Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (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 2F41612004E for <rats@ietf.org>; Mon, 22 Jul 2019 12:25:56 -0700 (PDT)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Jul 2019 12:25:40 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.64,296,1559545200"; d="scan'208,217";a="171728755"
Received: from orsmsx108.amr.corp.intel.com ([10.22.240.6]) by orsmga003.jf.intel.com with ESMTP; 22 Jul 2019 12:25:39 -0700
Received: from orsmsx109.amr.corp.intel.com ([169.254.11.25]) by ORSMSX108.amr.corp.intel.com ([169.254.2.65]) with mapi id 14.03.0439.000; Mon, 22 Jul 2019 12:25:39 -0700
From: "Smith, Ned" <ned.smith@intel.com>
To: Laurence Lundblade <lgl@island-resort.com>
CC: Carl Wallace <carl@redhoundsoftware.com>, "rats@ietf.org" <rats@ietf.org>
Thread-Topic: [Rats] Review of draft-ietf-rats-eat-01
Thread-Index: AQHVO1Sot1WITJZhTkGux2FA/JRehKbNFbwAgABnRACAAHq+gIAADdyAgAkjaICAAE22gP//y2SA
Date: Mon, 22 Jul 2019 19:25:38 +0000
Message-ID: <4DCDE2CE-3160-411D-A22B-8ED4AFF0305D@intel.com>
References: <D95268DC.E2D3B%carl@redhoundsoftware.com> <5CBB3ED3-0CD6-443D-B80F-EE426F7905C3@island-resort.com> <D95316BE.E2E33%carl@redhoundsoftware.com> <D8B4A43F-8654-468F-8A93-9D8E44236784@island-resort.com> <D9538DB1.E2F9F%carl@redhoundsoftware.com> <87C82D04-59AD-4729-AFC7-68207CD91A35@intel.com> <2F4DEA04-A962-4644-B321-14F926055910@island-resort.com>
In-Reply-To: <2F4DEA04-A962-4644-B321-14F926055910@island-resort.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.1a.0.190609
x-originating-ip: [10.251.7.178]
Content-Type: multipart/alternative; boundary="_000_4DCDE2CE3160411DA22B8ED4AFF0305Dintelcom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/DJ21JwukT2C8pQxkBVt7u_X6w9k>
Subject: Re: [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: Mon, 22 Jul 2019 19:25:59 -0000

I’ve seen this concept described as “component nesting” and “device composition”. Not sure there is an accepted industry term for it. Maybe it makes sense to consider adding it to a terminology section in the architecture?

On 7/22/19, 2:34 PM, "Laurence Lundblade" <lgl@island-resort.com<mailto:lgl@island-resort.com>> wrote:

The intent of aggregation is within an entity. For example a phone contains a secure element, a TEE and a Linux kernel all supplied by different vendors. The secure element generates an EAT its keys. The TEE generates an EAT with its keys. The Linux kernel generates an EAT that aggregates the two previously and signs with the Linux kernel’s keys.

LL



On Jul 22, 2019, at 1:55 PM, Smith, Ned <ned.smith@intel.com<mailto:ned.smith@intel.com>> wrote:

Right now the scope of RATS focuses on Attester to Verifier and Verifier to Relying Party flows. Flows from Asserter (supply chain entity) to Verifier are out of scope currently. The use cases for counter signing and multiple signing may relate more to supply chain than Attester to Verifier.

Aggregation (if I’m not mistaken) is when a Verifier communicates to a Relying Party. A simple aggregation might be to “allow” or “deny” (or maybe I’m misunderstanding what is meant by aggregation).

On 7/16/19, 2:23 PM, "RATS on behalf of Carl Wallace" <rats-bounces@ietf.org<mailto:rats-bounces@ietf.org> on behalf ofcarl@redhoundsoftware.com<mailto:carl@redhoundsoftware.com>> wrote:


<snip>
Should 3.11 be 'nested EATs' or 'aggregated EATs'. In other words, are
these really nested (like signed then encrypted or signed then
countersigned) or are they aggregated into an array then signed? Should
these be wrapped as a bstr (at least for CBOR)?

They really are nested. It says:


   The contents of the "eat" claim must be a fully signed, optionally

   encrypted, EAT token.

The nesting is really powerful as it allows multiple subsystems to make EAT tokens (a modern cell phone has lots of CPUs, often well isolated from each other) and for them to be combined and bound to each other.

I understand that nesting is powerful and that encryption or other signatures can be applied later. However, the language here reads like aggregation of EATs from various subsystems into a larger composition. Is nesting really what we want there (vs nesting where additional cryptographic services are applied)? Even if nesting is appropriate here, is aggregation something we also want in the toolbox?

I think we want both aggregation and nesting.

To be sure it is clear, nesting means you take a fully formed and signed EAT token and put it in another fully formed and signed EAT token. One of the reasons this might happen is that a device (e.g. a car) is assembled out of multiple components that can’t be modified by the end manufacturer. Subcomponents are capable of generating EATs. Some final component (controlled by the car maker) puts them all together in one token for the car the signature of which binds all the sub tokens together.

The submods claim is the proposed way to do aggregation of claims where the subcomponent set of claims is not separately signed.

So that leaves the question of aggregation of signed EATs. There's enough flexibility that can be added later if it's not viewed as necessary now but turns out to be useful later. The CMS ContentCollection is what I was thinking of.

<snip>