Re: [Rats] Vetting claim definitions

"Eric Voit (evoit)" <evoit@cisco.com> Fri, 07 June 2019 20:31 UTC

Return-Path: <evoit@cisco.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 AF1B712009C for <rats@ietfa.amsl.com>; Fri, 7 Jun 2019 13:31:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.499
X-Spam-Level:
X-Spam-Status: No, score=-14.499 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com header.b=WkiI9WQo; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=NdhUbKCD
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 RfM-P7q8X-Eu for <rats@ietfa.amsl.com>; Fri, 7 Jun 2019 13:31:09 -0700 (PDT)
Received: from rcdn-iport-3.cisco.com (rcdn-iport-3.cisco.com [173.37.86.74]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B50841200C7 for <rats@ietf.org>; Fri, 7 Jun 2019 13:31:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=45886; q=dns/txt; s=iport; t=1559939468; x=1561149068; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=NszWJSgqzccqnfCc19jbE/YxR1eWaDE8DXGObS4qrGM=; b=WkiI9WQoJaAoWaBrCwfsiANfpqucSDsmsHRlCvIaE52+lSBuJg+s/qia 7RHVe0sEQ8U1TClKcJ93IFz3DaB3Y+O+NgneesmZ0mH20luTKeD7B8eav S9C9wwrEmJNCNluJE2glKci1VMkTg7DbQv2AZAKxBupdZpOwusDBSVcg1 g=;
IronPort-PHdr: 9a23:ZDRiNBCDzWEeV+tyxMmoUyQJPHJ1sqjoPgMT9pssgq5PdaLm5Zn5IUjD/qg93kTRU9Dd7PRJw6rNvqbsVHZIwK7JsWtKMfkuHwQAld1QmgUhBMCfDkiuIeDtbjASF8VZX1gj9Ha+YgBY
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AoAAB0yPpc/5ldJa1mGgEBAQEBAgEBAQEHAgEBAQGBVAIBAQEBCwGBDi8pJwNqVSAECygKhAuDRwOOYYJXlzGBQoEQA1QJAQEBDAEBIwoCAQGEQAIXglMjNwYOAQMBAQQBAQIBBG0cDIVKAQEBAQMSEQoTAQEpAwICBwEPAgEIDgMEAQEhAQYDAgICMBQJCAIEDgUIFwODAYEdTQMdAQIMnQsCgTiITxBxgTGCeQEBBYUFGIIPAwaBNAGKPIEeF4FAPyZrRoJMPoJhAQECAYErAQsBBgEhDB8JAoJSMoImiz9LA4IYhGwilQtqCQKCDoZDiEWEVIIkL4ZJjXWUIo8jAgQCBAUCDgEBBYFlImdxcBU7gmyCDwsBF4ECAQKCSIUUhT9yAYEojDoBAQ0XB4EEAYEgAQE
X-IronPort-AV: E=Sophos;i="5.63,564,1557187200"; d="scan'208,217";a="559324399"
Received: from rcdn-core-2.cisco.com ([173.37.93.153]) by rcdn-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 07 Jun 2019 20:31:07 +0000
Received: from XCH-ALN-008.cisco.com (xch-aln-008.cisco.com [173.36.7.18]) by rcdn-core-2.cisco.com (8.15.2/8.15.2) with ESMTPS id x57KV7kL022443 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 7 Jun 2019 20:31:07 GMT
Received: from xhs-rtp-001.cisco.com (64.101.210.228) by XCH-ALN-008.cisco.com (173.36.7.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 7 Jun 2019 15:31:06 -0500
Received: from xhs-rtp-003.cisco.com (64.101.210.230) by xhs-rtp-001.cisco.com (64.101.210.228) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 7 Jun 2019 16:31:05 -0400
Received: from NAM05-CO1-obe.outbound.protection.outlook.com (64.101.32.56) by xhs-rtp-003.cisco.com (64.101.210.230) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Fri, 7 Jun 2019 16:31:05 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=NszWJSgqzccqnfCc19jbE/YxR1eWaDE8DXGObS4qrGM=; b=NdhUbKCDE0qzrNxhXq6soxcB8OdOk+gmG+ka3ZK2e1rIZx+ZleEcKwxUW6K4gCeOtAIdTgB3Z+u2jPct68M9mvS+/UmfL2/CkFKvQ+RqTIsx7fIl8Sr5MyN95U77WClhDcBuUMIgoVzcYIdgCp72NHZpoSjH0fgq22vhauw+zsg=
Received: from DM6PR11MB4089.namprd11.prod.outlook.com (20.176.126.30) by DM6PR11MB2988.namprd11.prod.outlook.com (20.177.217.149) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1943.22; Fri, 7 Jun 2019 20:31:02 +0000
Received: from DM6PR11MB4089.namprd11.prod.outlook.com ([fe80::d014:d7a3:270:e5a9]) by DM6PR11MB4089.namprd11.prod.outlook.com ([fe80::d014:d7a3:270:e5a9%3]) with mapi id 15.20.1965.011; Fri, 7 Jun 2019 20:31:02 +0000
From: "Eric Voit (evoit)" <evoit@cisco.com>
To: Laurence Lundblade <lgl@island-resort.com>
CC: Hannes Tschofenig <Hannes.Tschofenig@arm.com>, Mike Jones <Michael.Jones=40microsoft.com@dmarc.ietf.org>, Michael Richardson <mcr+ietf@sandelman.ca>, "rats@ietf.org" <rats@ietf.org>
Thread-Topic: [Rats] Vetting claim definitions
Thread-Index: AQHVHSQrNP3gSrcbuEuedIL4RWxi86aQLzAwgABa8ACAABflIA==
Date: Fri, 07 Jun 2019 20:31:02 +0000
Message-ID: <DM6PR11MB4089C31F977DD496B5CC49D7A1100@DM6PR11MB4089.namprd11.prod.outlook.com>
References: <BC6D5D3A-BD2F-496E-AA68-D2A758A33843@island-resort.com> <12913.1559739926@localhost> <30754CD8-98AB-4080-952E-880BC630EC69@island-resort.com> <BL0PR00MB029274A33B44A0B8CE310C0BF5160@BL0PR00MB0292.namprd00.prod.outlook.com> <VI1PR08MB536061869B7BE623F861B821FA100@VI1PR08MB5360.eurprd08.prod.outlook.com> <DM6PR11MB408908B0F071051FEC0B090BA1100@DM6PR11MB4089.namprd11.prod.outlook.com> <902E75D8-D8AC-403B-A295-0EC3034E44B2@island-resort.com>
In-Reply-To: <902E75D8-D8AC-403B-A295-0EC3034E44B2@island-resort.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=evoit@cisco.com;
x-originating-ip: [173.38.117.68]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 2a3413ab-7bfc-4ba7-4216-08d6eb870f26
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:DM6PR11MB2988;
x-ms-traffictypediagnostic: DM6PR11MB2988:
x-ms-exchange-purlcount: 4
x-microsoft-antispam-prvs: <DM6PR11MB2988A190A13D9D33B570A2E3A1100@DM6PR11MB2988.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7691;
x-forefront-prvs: 0061C35778
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(366004)(136003)(346002)(396003)(124014002)(40434004)(199004)(189003)(66574012)(14454004)(478600001)(68736007)(26005)(52536014)(8676002)(186003)(45080400002)(33656002)(9326002)(966005)(99286004)(54906003)(102836004)(6506007)(53546011)(606006)(74316002)(446003)(11346002)(476003)(5660300002)(7696005)(76176011)(8936002)(6916009)(76116006)(4326008)(486006)(66556008)(66476007)(66446008)(316002)(236005)(9686003)(66066001)(81156014)(81166006)(55016002)(64756008)(54896002)(6306002)(5024004)(53936002)(6436002)(25786009)(7736002)(6246003)(229853002)(71200400001)(2906002)(256004)(14444005)(71190400001)(3846002)(790700001)(6116002)(73956011)(66946007)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB2988; H:DM6PR11MB4089.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: cisco.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: qhDPE7PUuq6CfwJ8fkkiU37eGnEmx0BoAzeCSYYharvvPXiATGMMcduEcLshP+zG+7wwkrlH3tXGp5Kp2bXHVc5LqjUpToeSVpD5vsQ7Pyobrbze67nDr2wCvGD4ixc8y63+W5bFwHttTG2wH+zURpSbKfFM12pgtBgVfm/cdE0tUX5bbET/UVzaeQk37yrhIM5tnC/GjanXASJt4CFw2FPLmfS6Ed2SLDFg7eS+0fLAQ72Uvf7HZpY+79jZVBajUua6ThZb1oQUZYBn+v5BcJZHRFc6VKlmJnnr13Z991B3fo/aU13f44c8AS6meRA/qjQrl0LKm3RhYKzTQ+67e+Y5avy61H3xsKi/14cpxFljIOf0djq7XmrLAJHAdELzfTnfE1oVbZUal7au6Kn2loI28r3OC1kCtEuN+f4TS+I=
Content-Type: multipart/alternative; boundary="_000_DM6PR11MB4089C31F977DD496B5CC49D7A1100DM6PR11MB4089namp_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 2a3413ab-7bfc-4ba7-4216-08d6eb870f26
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jun 2019 20:31:02.3543 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: evoit@cisco.com
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB2988
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.36.7.18, xch-aln-008.cisco.com
X-Outbound-Node: rcdn-core-2.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/hPSUzRvd-z5Vi4YwfSLUp7GmGcc>
Subject: Re: [Rats] Vetting claim definitions
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, 07 Jun 2019 20:31:12 -0000

Hi Laurence,

Effectively this “Router Attestation Profile” draft you are proposing would consist of well-defined claims which are also YANG objects.  And these YANG objects would augment the model definition within draft-birkholz-rats-basic-yang-module.

If you agree, this is exactly what I was hoping to hear.  Good things which can come from this approach:

  *   Network Elements would be capable of reading some subset of what is coming off of EAT capable hardware chips.
  *   Where brand new claims are being explored, a search of existing YANG objects could be done.  Adoption on YANG definitions where possible would minimize downstream mapping.

Eric

From: Laurence Lundblade, June 7, 2019 2:53 PM

Hi Eric,

Feels like there’s opposing views:

1) Carsten, Kathleen, myself and maybe Henk and others want an EAT to be a CWT/JWT.This really does make the claim set open-ended. CWT is a bit more carefully managed than JWT, but we’ll still end up with a lot of claims registered.

2) You want a very well-defined concise claim set, a controlled policy for allowing new claims and maximal interoperability.

I think both objectives are good and desirable.

I think the way to have both is to leave the CWT/JWT registration open as they are AND ALSO define a profile / subset in an IETF standard for your use case. This profile / subset can:

- Make clear normative references to extant claims that are considered well-enough formed and interoperable
- Define some new claims where none are extant
- Define a policy for adding new claims
- Labelling to distinguish the profile from a general open-ended CWT/JWT

So one way forward is for this WG to adopt another document. Maybe call it “Router Attestation Profile”.  This would be in addition to EAT. It makes normative references to the EAT claims it likes.

Another way forward is for the EAT draft to change direction some and become the more tight and limited attestation definition. It would probably address more than just the router use case, but it would retain the main characteristics you want. If we do this, then we can expect other attestation use cases to write documents and maybe run them through this WG or maybe not.

LL


On Jun 7, 2019, at 10:14 AM, Eric Voit (evoit) <evoit@cisco.com<mailto:evoit@cisco.com>> wrote:

Hi Hannes,

If we were sure we could limit EAT claims to just a few things which come out of hardware, this wouldn't concern me as much as it does.  However the domain of attestable objects was left fairly open within the EAT draft.   And we need to determine what level of interoperability are we trying to shepherd via RATS.

In the end, RATS (and EAT) need to determine the level of interoperability desired for specific claims.   I don't claim deep familiarity with JWT.  But looking at RFC-7519, Section 4.1, I see that I would have questions as an implementer.  For example, the claims "iss", "sub", and "aud" look to have population/processing which is application specific.  Therefore with these claims, it is up to applications on either side of the JWT must come to an agreement on what the populated instances mean.  (I.e., not the WG.)

Common of object definitions/claims from internal hardware are important if the Network Element needs to act on specific values.  And as a vendor, I know that I do want to act on information coming out of hardware even if the information is being pushed to a remote validator (e.g., immediately push an EAT token downstream if a specific hash value changes).  As a result I want more explicit and stable claim definitions.

More highly specified claims of course exposes possible claim redundancy, foreign key relationships, and cross-mapping with downstream information models. I assert this is a good thing because we expose (and hopefully minimize) costs which are borne by downstream developers.

Eric

Hannes Tschofenig, June 7, 2019 7:29 AM
FWIW: While the JWT registry looks more mixed in terms of claim types. This is, however, only a result of the widespread adoption.
There are no problems, as far as I know, with the diversity of the claims and that they are not all useful in every context. Different deployments use the claims they find useful.

I am wondering whether we are trying to fix a problem with the registry of claims that doesn’t occur in practice.

Ciao
Hannes

From: RATS <rats-bounces@ietf.org<mailto:rats-bounces@ietf.org>> On Behalf Of Mike Jones
Sent: Mittwoch, 5. Juni 2019 19:31
To: Laurence Lundblade <lgl@island-resort.com<mailto:lgl@island-resort.com>>; Michael Richardson <mcr+ietf@sandelman.ca<mailto:mcr+ietf@sandelman.ca>>
Cc: rats@ietf.org<mailto:rats@ietf.org>
Subject: Re: [Rats] Vetting claim definitions

Actually, normal (non-collision-resistant) JWT claims *are* allocated on a specification required basis with expert review.  See this text at https://tools.ietf.org/html/rfc7519#section-10.1:

   Values are registered on a Specification Required [RFC5226<https://tools.ietf.org/html/rfc5226>] basis
   after a three-week review period on the jwt-reg-review@ietf.org<mailto:jwt-reg-review@ietf.org>
   mailing list, on the advice of one or more Designated Experts.
   However, to allow for the allocation of values prior to publication,
   the Designated Experts may approve registration once they are
   satisfied that such a specification will be published.

So a specification can easily register both JWT and CWT claims.

                                                       -- Mike

From: Laurence Lundblade <lgl@island-resort.com<mailto:lgl@island-resort.com>>
Sent: Wednesday, June 5, 2019 8:46 AM
To: Michael Richardson <mcr+ietf@sandelman.ca<mailto:mcr+ietf@sandelman.ca>>
Cc: rats@ietf.org<mailto:rats@ietf.org>; Mike Jones <Michael.Jones@microsoft.com<mailto:Michael.Jones@microsoft.com>>
Subject: Re: [Rats] Vetting claim definitions

Below…
+ Mike Jones, co-author of CWT

On Jun 5, 2019, at 6:05 AM, Michael Richardson <mcr+ietf@sandelman.ca<mailto:mcr+ietf@sandelman.ca>> wrote:


Laurence Lundblade <lgl@island-resort.com<mailto:lgl@island-resort.com>> wrote:
— Today CWT allocates millions of slots for expert review. No
specification is required, but some information should be provided.

JWT doesn’t seem to have this, which is maybe why it is messier. It
kind of seems bad and wrong that it doesn’t to me.

JWT doesn't have this because the claims are "unlimited" length strings, so
one can always make up a unique string in lieu of registration.
 org.island-resort.lgl.whateverstringyouwant

is probably completely yours :-)
Of course, if you want to interoperate you need to agree about how, so there
are some advantages of a forcing function that demands you write things down
first :-)

Unlimited length string claim names are fully part of CWT. Also, COSE allows them for headers, algorithm names and such too. So from a syntax view CWT and COSE are the same as JWT in allowing long string names.

However, COSE and CWT are different in the management of the string name space:

Strings of length 1            Standards Action
Strings of length 2            Specification Required
Strings of length greater than 2    Expert Review

These, along with the integer names space rules, then imply:

Integer values less than -65536 are the only ones free for use with no review or processing by IANA and experts.

JWT also has this notion of Collision-Resistant Name based on OIDs or UUIDs, which is essentially some rules to make up names that don’t go into an IANA registry and are still unique and won’t collide.

JWT could have done what CWT does. Seems to me that CWT has taken a radically more managed approach to the super-open JWT approach. Maybe the CWT folks realized the JWT design was poor.


At any rate, there seems to be some consensus here that the CWT approach is what we want for attestation. It is also the more recent and thus maybe more advanced thinking.

I’m hoping we can find our way to just accept the CWT claim naming management scheme as is for attestation. If other CWT-based efforts did the same (draft-birkholz-core-coid) did the same then the world would be much simpler.

However that still leaves open some issue with JWT namespace management. (We do want JSON based attestation to be JWT’s, right? Just the same as CBOR-based attestation are CWT’s).

LL

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.