Re: [Rats] Vetting claim definitions

Mike Jones <Michael.Jones@microsoft.com> Fri, 07 June 2019 19:25 UTC

Return-Path: <Michael.Jones@microsoft.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 016B01200F3 for <rats@ietfa.amsl.com>; Fri, 7 Jun 2019 12:25:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.009
X-Spam-Level:
X-Spam-Status: No, score=-2.009 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_NONE=-0.0001, SPF_PASS=-0.001, T_DKIMWL_WL_HIGH=-0.01, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 5mofQPH7Pbrp for <rats@ietfa.amsl.com>; Fri, 7 Jun 2019 12:25:15 -0700 (PDT)
Received: from NAM06-DM3-obe.outbound.protection.outlook.com (mail-eopbgr640122.outbound.protection.outlook.com [40.107.64.122]) (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 BA04D1200C7 for <rats@ietf.org>; Fri, 7 Jun 2019 12:25:14 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=testarcselector01; d=microsoft.com; cv=none; b=mMp2JoR90b92xQQgf2C7XJH8ybeKXu7fYM3gzjcR38zE6JUbHNfwkNQzxwiXdJyOKtoKsXK3OhKY3qSoLgFVKjNXmw+wi8YyDIUMxfbaWFmhAsazpWzQxDW15Sa7GxxV53KIKFDknuiDi4rK/AfmV4ceHSLoA2fOvSbhrlFkYFBQMJULvuHWleidokYFYUg6c+GJhyxws4nRW1yR7u+nqxw7hXNcZz/Dr9ll83YwJxHukV5oyaKmW2uz+9QctK5DBqmoBhoahBPPpWOvdVJrstqY4J6RdSxKgt7EInOJY/THBGD8PUXfZ4qFVVMSvGnRUEJuHX0boGp3WuqOQiBLog==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=testarcselector01; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DQfjFDeZEELToEw3uDfMRllGdruwlN2YkQHFrSodwqo=; b=n3eUCugoGCrVBZWtp01itQyewx0enBbx+IYIN3zJ41pd+xYQYDYC7KUxIn1+lzwnAoO6/AWUkGVChblo3LJArnkdOMimoofh8TiIZLQeIWNSY9mGZ/G4NhnilRZKVlGOprvgq8CahEFHhaVJqaUNL1QqM10WyDGpi9oitvL2kK6ltqLaqBXDZgcoU32ixuFuM+q/EUozqC2JPYVGTaOG+UIuMRSvwTfZlYQxw/vguXHF1XfYsgGgYoGUWXXutPagSIxdC1/eK3n406Z1ew8H7h540J45Eu4009TFvBu5ZvY22u3wCV+94jnjr7MHddxw1qsX2lK28I3E47jqUkUd7w==
ARC-Authentication-Results: i=1; test.office365.com 1;spf=none;dmarc=none;dkim=none;arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DQfjFDeZEELToEw3uDfMRllGdruwlN2YkQHFrSodwqo=; b=Pwn0A4fTyfjrVliqy9P91ucngt/FnfCSKU+82lS+S78m6pxNE+4+MMLmPC6uf+HmjB3qUFuYE5dlC0cR2be78vU8g66Ss1+Mbzmti+GThWFOds2KSgsC5ESSZ1ZeMlecl6DQc7Rg4KMQTyWBtB696XI0PZQrqMHyLrikgnKmnSw=
Received: from MW2PR00MB0298.namprd00.prod.outlook.com (52.132.148.29) by MW2PR00MB0330.namprd00.prod.outlook.com (52.132.148.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2006.0; Fri, 7 Jun 2019 19:25:07 +0000
Received: from MW2PR00MB0298.namprd00.prod.outlook.com ([fe80::e4e2:b272:8153:c183]) by MW2PR00MB0298.namprd00.prod.outlook.com ([fe80::e4e2:b272:8153:c183%4]) with mapi id 15.20.2006.000; Fri, 7 Jun 2019 19:25:07 +0000
From: Mike Jones <Michael.Jones@microsoft.com>
To: Laurence Lundblade <lgl@island-resort.com>, "Eric Voit (evoit)" <evoit@cisco.com>
CC: Michael Richardson <mcr+ietf@sandelman.ca>, Hannes Tschofenig <Hannes.Tschofenig@arm.com>, Mike Jones <Michael.Jones=40microsoft.com@dmarc.ietf.org>, "rats@ietf.org" <rats@ietf.org>
Thread-Topic: [Rats] Vetting claim definitions
Thread-Index: AQHVG7XVbraN3V8Gs0WRMkd4jETRWqaNUNhQgALAEgCAAGC2AIAAG10AgAAGxyA=
Date: Fri, 07 Jun 2019 19:25:07 +0000
Message-ID: <MW2PR00MB0298D282632D828F2BCB16F5F5100@MW2PR00MB0298.namprd00.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:
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=0e7ea0e0-f8f3-4407-8e94-0000c4a5ab88; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2019-06-07T19:17:06-0800; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michael.Jones@microsoft.com;
x-originating-ip: [50.47.93.218]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: d9ac5293-749e-4414-9c43-08d6eb7dd994
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:MW2PR00MB0330;
x-ms-traffictypediagnostic: MW2PR00MB0330:
x-ms-exchange-purlcount: 4
x-microsoft-antispam-prvs: <MW2PR00MB033001F70740A48A30AE75AFF5100@MW2PR00MB0330.namprd00.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7691;
x-forefront-prvs: 0061C35778
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(136003)(396003)(366004)(39860400002)(376002)(346002)(124014002)(189003)(199004)(40434004)(5024004)(26005)(66574012)(256004)(14444005)(74316002)(81166006)(73956011)(8936002)(8990500004)(72206003)(66446008)(6436002)(66946007)(76116006)(14454004)(966005)(66476007)(66556008)(64756008)(6506007)(5660300002)(52536014)(102836004)(33656002)(81156014)(2906002)(71190400001)(71200400001)(10090500001)(8676002)(186003)(86362001)(7736002)(53546011)(446003)(6246003)(25786009)(55016002)(22452003)(110136005)(606006)(54906003)(53936002)(99286004)(76176011)(68736007)(7696005)(66066001)(3846002)(478600001)(10290500003)(229853002)(486006)(11346002)(54896002)(236005)(6306002)(9686003)(476003)(316002)(790700001)(6116002)(4326008); DIR:OUT; SFP:1102; SCL:1; SRVR:MW2PR00MB0330; H:MW2PR00MB0298.namprd00.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: efO2rE8De5NtZT2eT6wBmtUnSmDdURr3Cue+Th3ZGA7AlEXzGd+uptOGURxoGwYR+YxIi5bP0oEUcX5swkoTNCiZAO9hhIMzlMEVC1BuN5+1jeZGD8ff433WcPcT79BiF+BOiNP6M4gbXkH69twHciTfGy7wombw73Ord/WJMCG6rfdIQC/WbUGKKbwEBfJ4aY1yDfzgbC3cpeT4alW52EsIi5Tgs6EzsH2vyhUzfch+DNO95U9XFlCp6E3DhPwYwLq0UAh4G0cdoEBpHCx6+/1ha87W1+zf+ZTHD7+SwIkjedhzGYA1FM9TaQd1uAZML805eY7xEExNK+hexq0gPV6hdQaSreZePG6CSXHhlf5DFuIdG7KJWJGTjU+fUQ7GX6F6acqDPwe1UMsa6CoZOPLI+arSr7aNSuHkY4A7aos=
Content-Type: multipart/alternative; boundary="_000_MW2PR00MB0298D282632D828F2BCB16F5F5100MW2PR00MB0298namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d9ac5293-749e-4414-9c43-08d6eb7dd994
X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jun 2019 19:25:07.2758 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: mbj@microsoft.com
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR00MB0330
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/0slzRuycgj__qGZNSCHT8IAlAxs>
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 19:25:21 -0000

This is exactly the approach I’d advocate.  To be fully interoperable, both JWTs and CWTs by design require an application profile that defines the processing rules for each of the claims.  For instance, OpenID Connect defines something called an ID Token<https://openid.net/specs/openid-connect-core-1_0.html#IDToken>, which is a JWT with specific processing rules<https://openid.net/specs/openid-connect-core-1_0.html#IDTokenValidation> for the claims.  For instance, it says how to use the “iss” (issuer) claim to retrieve public keys to validate the JWT signature.

For EATs, just like other applications of JWTs and CWTs, application profiles will be required to define the how to use the claims in the EAT.  This is as it should be.  If we also want to create such a profile (or multiple such profiles) in addition to the general EAT specification, we can do that.

                                                       -- Mike

From: RATS <rats-bounces@ietf.org> On Behalf Of Laurence Lundblade
Sent: Friday, June 7, 2019 11:53 AM
To: Eric Voit (evoit) <evoit@cisco.com>
Cc: Michael Richardson <mcr+ietf@sandelman.ca>; Hannes Tschofenig <Hannes.Tschofenig@arm.com>; Mike Jones <Michael.Jones=40microsoft.com@dmarc.ietf.org>; rats@ietf.org
Subject: Re: [Rats] Vetting claim definitions

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<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc7519%23section-10.1&data=02%7C01%7CMichael.Jones%40microsoft.com%7C698e0d0a833e41227e2908d6eb79825b%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636955304457815708&sdata=U5SoqEEqak6b8XDbDwyzANNpMRZccH4wktDytsjbm5M%3D&reserved=0>:

   Values are registered on a Specification Required [RFC5226<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Frfc5226&data=02%7C01%7CMichael.Jones%40microsoft.com%7C698e0d0a833e41227e2908d6eb79825b%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636955304457825910&sdata=sdIiV%2BjmTtmZtd%2BGFriMZ1%2Bx%2FtR8h%2FgQRYVjphT5%2FE4%3D&reserved=0>] 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.