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

"Smith, Ned" <> Mon, 11 November 2019 21:27 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id BB99912083A for <>; Mon, 11 Nov 2019 13:27:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.899
X-Spam-Status: No, score=-6.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id i4D9Ar9m8i9G for <>; Mon, 11 Nov 2019 13:27:13 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 3535312006D for <>; Mon, 11 Nov 2019 13:27:13 -0800 (PST)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from ([]) by with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Nov 2019 13:27:11 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.68,293,1569308400"; d="scan'208,217";a="405365623"
Received: from ([]) by with ESMTP; 11 Nov 2019 13:27:10 -0800
Received: from ( by ( with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 11 Nov 2019 13:27:10 -0800
Received: from ([]) by ([]) with mapi id 14.03.0439.000; Mon, 11 Nov 2019 13:27:10 -0800
From: "Smith, Ned" <>
To: Laurence Lundblade <>, Michael Richardson <>
CC: "" <>
Thread-Topic: [Rats] Call for adoption (after draft rename) for Yang module draft
Thread-Index: AQHVlCwI8/lytau3hU+AhCwtIdg/0ad/EtmAgAAHhgCAAAO0AIAGacyAgAAGuoCAAG6gAIAA8mEAgAABTID//5RNgA==
Date: Mon, 11 Nov 2019 21:27:09 +0000
Message-ID: <>
References: <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
user-agent: Microsoft-MacOutlook/10.1e.0.191013
x-originating-ip: []
Content-Type: multipart/alternative; boundary="_000_3310947DEA3141078FF0B917A027C955intelcom_"
MIME-Version: 1.0
Archived-At: <>
Subject: Re: [Rats] Call for adoption (after draft rename) for Yang module draft
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Remote Attestation Procedures <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 11 Nov 2019 21:27:16 -0000

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).


On 11/11/19, 11:52 AM, "RATS on behalf of Laurence Lundblade" <<> on behalf of<>> 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.


On Nov 11, 2019, at 11:47 AM, Laurence Lundblade <<>> wrote:

On Nov 10, 2019, at 9:20 PM, Michael Richardson <<>> 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.