Re: [Rats] Call for adoption (after draft rename) for Yang module draft

Laurence Lundblade <lgl@island-resort.com> Tue, 12 November 2019 04:17 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 130CF1200C3 for <rats@ietfa.amsl.com>; Mon, 11 Nov 2019 20:17:04 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.894
X-Spam-Level:
X-Spam-Status: No, score=-1.894 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=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 DMq0pZ3p6kIE for <rats@ietfa.amsl.com>; Mon, 11 Nov 2019 20:16:59 -0800 (PST)
Received: from p3plsmtpa06-01.prod.phx3.secureserver.net (p3plsmtpa06-01.prod.phx3.secureserver.net [173.201.192.102]) (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 7880A12002F for <rats@ietf.org>; Mon, 11 Nov 2019 20:16:59 -0800 (PST)
Received: from [10.141.0.126] ([45.56.150.139]) by :SMTPAUTH: with ESMTPA id UNbuiSj2iMfejUNbuiJcTK; Mon, 11 Nov 2019 21:16:58 -0700
From: Laurence Lundblade <lgl@island-resort.com>
Message-Id: <0AACCF7B-36A9-4AF9-B18A-BF18DC35986E@island-resort.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_AA06634F-59CB-4FF0-B882-631A4442EFD4"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Mon, 11 Nov 2019 20:16:58 -0800
In-Reply-To: <3C967A22-DBB0-4EA7-923D-B423920EB9BD@intel.com>
Cc: "\"Schönwälder, Jürgen\"" <J.Schoenwaelder@jacobs-university.de>, Michael Richardson <mcr+ietf@sandelman.ca>, "rats@ietf.org" <rats@ietf.org>
To: "Smith, Ned" <ned.smith@intel.com>
References: <8B173958-FC2A-4D1D-A81C-F324AB632CD7@cisco.com> <147F9159-6055-4E55-ABDC-43DFE3498BF1@island-resort.com> <ce5f8206-74dc-36bb-0093-a93045d5c67f@sit.fraunhofer.de> <0A7E3A4F-8534-4E98-BCB7-1454E07699F4@island-resort.com> <C3AE2645-49C8-4313-BCED-02FEB576B614@cisco.com> <1C8A1884-A37D-45E3-8C11-2FC5A083B245@island-resort.com> <ba12a686-1b34-21a3-388c-bbe01c01a408@sandelman.ca> <4A83CDF5-D29F-4279-8B03-E9D23299EB53@island-resort.com> <0C6940B0-E93F-4274-9D00-DEC4119B8F69@island-resort.com> <3310947D-EA31-4107-8FF0-B917A027C955@intel.com> <20191111213249.4p7z2ovkvqy2u5go@anna.jacobs.jacobs-university.de> <3C967A22-DBB0-4EA7-923D-B423920EB9BD@intel.com>
X-Mailer: Apple Mail (2.3445.104.11)
X-CMAE-Envelope: MS4wfNb0NuyZTdrk/r4gaNK232/3+r73HumdA2NZdD1D7n6pymKbdNCW75GKeWJlWfJqUTZ/hYfndN6TQwuErYL7ZEBbhgx6cwd5nWm4zQQQK6OH/eaKirD0 dz7PlRxAqrYkxAZpM30FpSB71ARI8uSL9o2gow34Mz8rIXKEnD0vCERyNQcoA1MoRKKmP8HnYWcYtnBi134mDf3LF83zZGpenwaFfxT96IOTHS2qyKomYV7m +C2pLlAQQQ4KIuF6N7oLuCEa5QVEbun+MMO+UMPQWLACLS7rKTQM7e5hS9CsJOJu
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/0OttktE_Stg2J0yhs4Q7Lvcm3LY>
Subject: Re: [Rats] Call for adoption (after draft rename) for Yang module draft
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: Tue, 12 Nov 2019 04:17:04 -0000

What is most important for me is that the YANG document allow for EAT tokens as that seems like an important upgrade path / alternative given that EATs are much more capable.

But flip it around. In RATS maybe it should be possible for TPM-based attestations to go anywhere an EAT goes. You should be able move TPM attestations around by HTTP, or in TLS extension points or maybe even as an IMAP extension just like you can with EAT. To some degree FIDO has done it. It has a pluggable attestation architecture that allows several formats including TPM-based, Android SafetyNet (which is not Android key store) and some FIDO-specific schemes that are more EAT like.

That seems like it takes you to a clear demarcation between:
Self-securing signed attestation token
Token conveyance protocol

This seems very good in concept. We often separate like this in protocol design.

Then one way to look at the RATS work is in three:
EAT Attestation Token
TPM Token (that can be carried by HTTP and almost any conceivable protocol extension)
A very specific YANG-based conveyance protocol for routers because that’s how routers like it and it is important for the RATS work group constituency.

Maybe we’ll find another specific conveyance protocol we’ll want to address, but in general we don’t have to. All the web app, IoS app and Android app frameworks will be OK just like they are today for things like Android KeyStore.

If you look at it this way, 1) then EAT is fine as, 2) we need to define a new "TPM Token" format that is sort of an alternative to EAT, and 3) the YANG module has to be tweaked so it is a carrier of EATs and TPM Tokens. (I’m probably glossing over some of the complexity with YANG and TPMs).

TPM Token would not be a general claims carrier like EAT. TPM HW is super locked down and limited and TPM Token would just do what TPMs can do. Probably the “claims" amount to a few PCRs. Since the TPM signing format is fixed, the TPM Token signing format would be fixed. TPM Token is sort of a serialization of the output of a TPM. (It can’t be directly COSE as TPM’s can’t do RFC 8152 section 4.4, the COSE-specific creation of the to-be-signed bytes, when signing; probably similarly not JOSE). Since TPM Token is simple, will never change and won’t have extensions we don’t need all the weight of CDDL or YANG or such and can maybe go directly to JSON, XML or CBOR.

LL




> On Nov 11, 2019, at 4:56 PM, Smith, Ned <ned.smith@intel.com> wrote:
> 
> YANG I already being used to describe attestation flows and attestation related data. So the reason why is it is already deployed.
> 
> YANG has been used as an IM language but more commonly as a DML. 
> 
> When trying to talk about attestation "Claims" it helps if we're speaking the same language. 
> 
> On 11/11/19, 13:33 PM, "RATS on behalf of Schönwälder, Jürgen" <rats-bounces@ietf.org on behalf of J.Schoenwaelder@jacobs-university.de> wrote:
> 
>    Hi,
> 
>    we commonly call YANG a data modeling language and not an information
>    modeling language. Can someone explain why you want to use YANG?
> 
>    /js
> 
>    On Mon, Nov 11, 2019 at 09:27:09PM +0000, Smith, Ned wrote:
>> You’re saying YANG fills a gap that is similar to what OpenAPI/RAML fills?
>> 
>> It could be doing more than this as well, such as defining claims (as was suggested in a previous email by I think Michael). If RATS determined that the way to specify a Claim in the information model was via CDDL (only) and there is a YANG expression of it, then that implies a CDDL to YANG mapping is required. (Is that reasonable?).
>> 
>> Or RATS says that it is reasonable to use either/both CDDL and YANG for Claims expressions. This suggests there are CDDL and YANG mappings to whatever are the target DMLs (JOSE, COSE, DER, something else?). Does YANG support DML mappings to JOSE, COSE and DER or just to YANG? Does CDDL support mappings to DER and YANG (something else)?
>> 
>> Ideally CDDL can be mapped to other information modelling languages (e.g. YANG) so that only one normative expression needs to be canonized. However, that implies extra work on behalf of the YANG drafts to come up with the CDDL equivalent. Maybe that is unnecessary extra work for consistency sake? That would force the conversations around whether ‘time’ and ‘ticks’ are the same information model expression (for example).
>> 
>> -Ned
>> 
>> On 11/11/19, 11:52 AM, "RATS on behalf of Laurence Lundblade" <rats-bounces@ietf.org<mailto:rats-bounces@ietf.org> on behalf of lgl@island-resort.com<mailto:lgl@island-resort.com>> wrote:
>> 
>> One more note on this. It seems wrong-headed to try express claims in YANG. To do that we’d need to invent a YANG signing standard (YOSE?). Seems like YANG should be thought of as RPC / conveyance / transport here, not as a way to format a signed attestation token.
>> 
>> LL
>> 
>> 
>> 
>> On Nov 11, 2019, at 11:47 AM, Laurence Lundblade <lgl@island-resort.com<mailto:lgl@island-resort.com>> wrote:
>> 
>> On Nov 10, 2019, at 9:20 PM, Michael Richardson <mcr+ietf@sandelman.ca<mailto:mcr+ietf@sandelman.ca>> wrote:
>> 
>> 
>> I think the value add to the larger RATS effort of adding EAT support
>> to this YANG protocol is really high. It a core thing to do that helps
>> bring together the two attestation worlds and make the TPM and EAT
>> work here less like ships in the night.
>> 
>> Can you explain what it would mean to add EAT support for a YANG module?
>> 
>> The EAT is an opaque chunk of data in YANG. I’m not a YANG expert, but maybe like this:
>> 
>> Server                               Device
>> GetAttestationTypes —>
>>                                <- TYPE_TPM, TYPE_CWT /* bit flags */
>> 
>> GetAttestation(TYPE_CWT , nonce) —>
>>                                <— CWT Token /* a full signed token */
>> 
>> I assume YANG can carry opaque binary data of moderate size.
>> 
>> The yang module information model would have an element for a nonce and for an opaque EAT. It would not describe any internals of the EAT. The information model for the EAT is separate in the EAT document.
>> 
>> LL
>> 
>> 
>> 
>> 
> 
>> _______________________________________________
>> RATS mailing list
>> RATS@ietf.org
>> https://www.ietf.org/mailman/listinfo/rats
> 
> 
>    -- 
>    Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>    Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>    Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
>    _______________________________________________
>    RATS mailing list
>    RATS@ietf.org
>    https://www.ietf.org/mailman/listinfo/rats
> 
>