Re: [Rats] Vetting claim definitions

Laurence Lundblade <lgl@island-resort.com> Wed, 12 June 2019 17:18 UTC

Return-Path: <lgl@island-resort.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 E43D712022C for <rats@ietfa.amsl.com>; Wed, 12 Jun 2019 10:18:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.888
X-Spam-Level:
X-Spam-Status: No, score=-1.888 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01] 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 YwFsSZpCWizn for <rats@ietfa.amsl.com>; Wed, 12 Jun 2019 10:18:13 -0700 (PDT)
Received: from p3plsmtpa12-10.prod.phx3.secureserver.net (p3plsmtpa12-10.prod.phx3.secureserver.net [68.178.252.239]) (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 35D2012021B for <rats@ietf.org>; Wed, 12 Jun 2019 10:18:12 -0700 (PDT)
Received: from [192.168.1.82] ([76.192.164.238]) by :SMTPAUTH: with ESMTPA id b6t0hn87T3F4bb6t1hiCkB; Wed, 12 Jun 2019 10:18:12 -0700
From: Laurence Lundblade <lgl@island-resort.com>
Message-Id: <8A8FF2AF-C5CA-471A-ABA2-A3E630448A75@island-resort.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_3150D9F5-A161-4346-9349-250BDD0531E4"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Date: Wed, 12 Jun 2019 10:18:10 -0700
In-Reply-To: <DM6PR11MB4089B664568293A03AD6FD40A1ED0@DM6PR11MB4089.namprd11.prod.outlook.com>
Cc: Michael Richardson <mcr+ietf@sandelman.ca>, Hannes Tschofenig <Hannes.Tschofenig@arm.com>, "rats@ietf.org" <rats@ietf.org>, Henk Birkholz <henk.birkholz@sit.fraunhofer.de>, Mike Jones <Michael.Jones=40microsoft.com@dmarc.ietf.org>
To: "Eric Voit (evoit)" <evoit@cisco.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> <DM6PR11MB4089C31F977DD496B5CC49D7A1100@DM6PR11MB4089.namprd11.prod.outlook.com> <D990AE6C-3722-40EA-9B11-9B7EDEF9AFE5@island-resort.com> <DM6PR11MB4089D8274D816949BAC5215DA1130@DM6PR11MB4089.namprd11.prod.outlook.com> <8AA62B47-28EA-4D9D-B103-DBD1F3964BAF@island-resort.com> <DM6PR11MB4089B664568293A03AD6FD40A1ED0@DM6PR11MB4089.namprd11.prod.outlook.com>
X-Mailer: Apple Mail (2.3445.9.1)
X-CMAE-Envelope: MS4wfJoU9RJ/0QHsTzl7GbTGrWfW/8otrOytnagV7U+Jzipg4nCwQ9BT6Q9AAW6qjvo9wpzAWJks2SHNA1dKlESBGevdz76wMjO2n7aSu273Vzus8m4c2jmb H6HDVYTGMf5+3z3RJTLE/Jia6WODJln1iDBNZFptP1d+m+RrRR8qX1RS5xldYiYM2e7AevC6b86EroE8vllmTvrS9mtr9+F6q58rUmkJe+cpUwp3T6Gr4ZBk 1xO0q46JTK3LFYzGRNYvbZVBMJWf6Op8uq4ZqXXUntlItMzyGtU5xeojPdGLGjNI0pKiUQGnJwogttSaX+nwfZ1hTk1azHsKxUBTPonbUBU1m6yODqnNitqX qZRhyhIqeE4OXFMwIhBbq/gjdaNX+Q==
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/hueMpYVBxBT_JBuo-e6bfzDF-3c>
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: Wed, 12 Jun 2019 17:18:25 -0000

This exchange was really helpful for me.

So an EAT / CWT / JWT remain as a signed self-secured message that can be moved in lots of different ways. That can include the RPC mechanisms defined using YANG that seem to be the main means of moving management data in/out of routers. I hope we get to writing a little bit of YANG to define that. As with CWT and JWT the means of moving the messages around include HTTP headers, extension points in other protocols and so on. Seems like draft-birkholz-reference-ra-interaction-model holds for most of them.

Additionally, we always consider YANG-defined objects when we defined EAT / CWT / JWT claims.

I’m going back to working on the EAT draft now.

LL


> On Jun 11, 2019, at 2:03 PM, Eric Voit (evoit) <evoit@cisco.com> wrote:
> 
> Hi Laurence,
>  
> From: Laurence Lundblade, June 11, 2019 11:21 AM
> 
> Hi Eric,
>  
> What I’m trying to figure out here is where there can be real practical interoperability with extant YANG-defined objects and how we go about it as I assume this is your current objection to adoption.
>  
> <eric> I certainly intended no argument against adoption.  I did vote in favor of adoption.  It was just that I want to see this topic addressed as part of the draft's progression.  I think the vote summary from Kathleen covers my desire just fine.
> 
> On Jun 10, 2019, at 2:23 PM, Eric Voit (evoit) <evoit@cisco.com <mailto:evoit@cisco.com>> wrote:
>  
> Hi Laurence,
>  
> It is true that the YANG of draft-birkholz-rats-basic-yang-module is currently TPM2 specific.  But over the past month we have been having discussions on how to augment into this model case statements and a tree structure which allows exposure of information from alternative hardware types such as the TPM1.2.  
>  
> Per your note below, I am guessing that draft-birkholz-rats-basic-yang-module could provide a query/response interface to access EAT information.  The Network Element's YANG model theoretically could allow access based on whatever choice of protocols the Network Element supports (e.g., NETCONF/XML. RESTCONF/JSON, CoMI/CBOR).  But the choice and protocols of used to access EAT objects over a YANG interface is something each platform would need to define.   The baseline choice for Interoperability here is tbd.
>  
> You mentioned a YANG interface. Seems like a point where there might be interoperability. Is this an interface on the router that is used to collect the claims data before signing? Or is it an interface on the back end / server / relying party that is involved in validating the data? Or maybe it is the rpc interaction defined in draft-birkholz-rats-basic-yang-module? I’m not sure what the intended endpoints of that RPC are. Router and Relying Party? 
>  
> <eric>  It is the RPC mechanism.  The RPC mechanisms allow a relying party to fetch internal datastore objects within the Router.   
>  
> One vendor specific example of a domain relevant YANG model is here:
> https://github.com/YangModels/yang/blob/master/vendor/cisco/xe/16101/Cisco-IOS-XE-boot-integrity-oper.yang <https://github.com/YangModels/yang/blob/master/vendor/cisco/xe/16101/Cisco-IOS-XE-boot-integrity-oper.yang>
> This model allows information from within a cryptoprocessor to be inspected by both the router and the relying party *after* it has been signed by the one of the router's cryptoprocessors.
>  
> Note: this model is just one of almost 400 YANG models supported on that type of device:
> https://github.com/YangModels/yang/tree/master/vendor/cisco/xe/16101 <https://github.com/YangModels/yang/tree/master/vendor/cisco/xe/16101>
> Looking at this second link, you can get an idea of the level of investment placed into YANG by Router vendors attempting to unify the exposure of information.
>  
>  
> Now that we are generally agreeing that an EAT is a CWT or JWT, the interaction model between device and relying party is inherited from them. Mostly we’re defining the format of a signed message and leaving the transport of the message open-ended so it can be embedded in HTTP headers, protocol extensions and such. If YANG is used to define interaction on routers, then some YANG RPC could be used (if that is what YANG RPC is) to define transport of CWTs (if CWTs are used on routers). There’s also draft-birkholz-reference-ra-interaction-model.
>  
> <eric> I have been seeing EAT as a useful way to define what comes out of cryptoprocessor hardware which might be located on a router.  For relying parties outside the router, the EAT raw payload might be fetched through RPC.  Or perhaps some or all of the corresponding YANG objects might be fetched.  Additionally, specific objects could be referenced so that logic on the router might be applied based on the value of that object.   A good example we have tested here is when we send a notification message to a relying party only when a specific PCR has changed.  This level of granularity means the relying party doesn't have to continuously poll for the router to see if the PCR has changed. 
>  
>  
> Whether it is even meaningful/relevant to support such YANG-EAT interoperability is something I don't know yet.  For me to consider EAT for implementation would mean EAT has been adopted within routers/switches.   As this is possible, I feel there is little for the WG to lose if we try to select/define some common objects which span our different domains.
>  
>  
> Here’s comments on a pass through draft-birkholz-rats-basic-yang-module
>  
> grouping nonce {... Seems essentially compatible with nonce / cti / jai in CWT / JWT
> grouping pcr-selection {...   TPM-specific so we probably go with the YANG definition
> grouping pcr-selector {...   TPM-specific so we probably go with the YANG definition
> grouping signature-scheme {… EAT will use COSE for this
> grouping attestation-key-identifier {… EAT will use COSE for this
> grouping tpm-name {… TPM-specific so we probably go with the YANG definition
> grouping compute-node {… I think this one needs work to figure out what it is and if EAT’s UEID is similar
> grouping node-uptime {… Seems simple to make exactly the same for EAT
> grouping log-identifier {… and grouping boot-event-log {… and other log stuff… Maybe TPM specific; maybe needs work to understand
> grouping ima-event {… and related. We do want some IMA claims in CWT format. Maybe they are part of EAT. Maybe they are separate. Maybe they use the YANG definition. 
>  
> <eric> This is a nice start on the type of analysis I am hoping to see.   I think as we work this through, we can save mapping cycles for future developers.  
>  
> Please understand that in no way do I claim that YANG is perfect.  And YANG models can take years to complete.   But on the plus side for YANG, I am sure it is possible to construct YANG models so that new hardware types can be inserted.  If you want a preview of the types of structure which might be used for this type of extensibility, check out at how draft-ietf-netconf-yang-push augments new case types into a the YANG model described within draft-ietf-netconf-subscribed-notifications.
>  
> YANG not perfect?? Huh? What?  :-)
>  
> I wish some YANG experts would chime in more here. I’m trying to learn on the fly and really should be updating the EAT draft instead.
>  
> <eric>  I encourage other YANG viewers out there to chime in as well.
>  
> Eric
>  
> LL
>  
> 
> 
>  
> Eric
>  
> From: Laurence Lundblade, June 10, 2019 2:57 PM
> 
> 
> Hi Eric,
>  
> So I think we have some agreement on general principles for how to structure the documents this work group produces so we can have both flexibility in the definition of new claims and well-defined concise sets claims for particular use cases. 
>  
> In particular I appreciate the confirmation of this from Mike Jones. Hopefully lack of objection implies a lot of agreement. 
>  
>  
> Eric, I think you are now digging into the next level of detail on how to deal with TPM-based implementations and claims specified in YANG and how that will interoperate with CWT/COSE and JWT/JOSE based tokens.
>  
> I don’t really understand YANG and how to fully read draft-birkholz-rats-basic-yang-module yet. Working on it (but I should be working on the new EAT draft…)
>  
> draft-birkholz-rats-basic-yang-module REQUIRES a TPM to implement it. That implies to me that neither CWT/COSE and JWT/JOSE signed container formats can be used because I don’t think TPM’s can produce either format. Pretty sure we agree that EAT will always be CWT/COSE or JWT/JOSE. 
>  
> (It is also odd to me that an IETF standard would require particular HW. It should just be about bits on the wire. EAT will have some means to indicate the security of the HW and SW that produced a given token, but will not require any particular security from the HW or SW)
>  
> But let’s assume that a relying party (I think you call this the Network Element) can unpack and verify signature that in the format of CWT and JWT and the TPM-style sig that I think is implied by draft-birkholz-rats-basic-yang-module. The result will be a set of claims in some syntax. It will be CBOR or JSON in the case of CWT or JWT. 
>  
> What will it be for draft-birkholz-rats-basic-yang-module??? YANG-described stuff an be lots of different syntaxes by my understanding. How many of them will a relying party be expected to support so there is interop?
>  
> I’m going to stop here for the answer to that question.
>  
> LL