Re: [Rats] Comments on draft-fedorkow-rats-network-device-attestation-00

Guy Fedorkow <gfedorkow@juniper.net> Wed, 13 November 2019 16:55 UTC

Return-Path: <gfedorkow@juniper.net>
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 3D4841208C8 for <rats@ietfa.amsl.com>; Wed, 13 Nov 2019 08:55:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URI_HEX=0.1, URI_NOVOWEL=0.5] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=juniper.net header.b=Mobv/6Lq; dkim=pass (1024-bit key) header.d=juniper.net header.b=AVRUlt2e
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 Ced6JR4We6nL for <rats@ietfa.amsl.com>; Wed, 13 Nov 2019 08:55:44 -0800 (PST)
Received: from mx0a-00273201.pphosted.com (mx0a-00273201.pphosted.com [208.84.65.16]) (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 2E6BD12090B for <rats@ietf.org>; Wed, 13 Nov 2019 08:55:44 -0800 (PST)
Received: from pps.filterd (m0108159.ppops.net [127.0.0.1]) by mx0a-00273201.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id xADGgCAT026038; Wed, 13 Nov 2019 08:55:41 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : mime-version; s=PPS1017; bh=5kb5quajFcMwg5U057e6LK0hr0SJdeQVDVrQZB9T9PQ=; b=Mobv/6LqEmukYD9pb8nVfTN31Tdg2aP0e+1OslQjSC8pTHdA/+iUJI+jQD6BzuP/QU/z WWSMTVepQi4wmNsedpg1y0WGkmvZxd9aOQ99een5LGl5AAyBhuJ4DmU/Am3VtntR58jp /jvy5HmLR9JH2SsYStqlfsFspj8+vp+Zd56+pzUECvP/2lRsugQuSa4U/eYw2gQgJu3U Ct1YRa8D46c4SLaAjaODKijo9hNvxP1//VCJJLZPs5g9SeK/IIwoZrKtRy5s24yuVZbz 7ma0hYVnP0N6bIkmZ4fKBZwMW+vad45ZwpB8H+ez89h5uW20joJhUUJPUnuPdOF6WSfZ cw==
Received: from nam03-dm3-obe.outbound.protection.outlook.com (mail-dm3nam03lp2059.outbound.protection.outlook.com [104.47.41.59]) by mx0a-00273201.pphosted.com with ESMTP id 2w7prpkavg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 13 Nov 2019 08:55:41 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gv2LGpHfKLMJ9x9NhPXIJ9YTeOgNgUrUhWloj46rn5Bo6Q07xKHe3pdl4ULGeSWs/Q9JD/jzYiLfyutRa7/sXDknMLvpCubRvrq+qpz5n2Tbj93Zqa1R6euPun41Kmfb2at3N7MmFSc9fmIAs1p9irmTfL0y8CxP+tPbt9SmNqaKmSK4lVrCkzxfO2EsjvFXR3fz/8swxQJcqJQ8vsgTZg1KbFDMOn5gmXFWXOfSGDx1HdxFz3Vz/HyiPfxF230BmSrFquGQV4VxiJrLzBP1mj/ye4mXX7VTIyrawhLlOfW55JQSWnFsT0dRaWGqBB/hMAfAsiPI16ZJjCk5GyglmQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5kb5quajFcMwg5U057e6LK0hr0SJdeQVDVrQZB9T9PQ=; b=IfBlpkXFiBfe3nde78c+a/AF5M6CSYr1gg7wDpl727eAt9Sf+I5tVR7gvbNURxSEktFaYJIoj5kBNCr0o252e0D/Jn4Mllp5nJF0k6FLx9kfmF2s2rcU0ww4VAg0mQ7CzXE8wCvMl/NuISLhMs8frM5n6LF/zIuetLDjrjGAhdHJ0US1Y3oMQAwT7ORnUQO8wKzHbe/X2HzQAGSO2yjajeATJcrtjzFNoIH5oBrxV0EkVL0h0kj8RUmqW0TS272a8scj98k48qG9HQT9GxKDrbAz2nSGxfBwD9TXx8msIPWDN9ZGz6BUkhR798yo7rOJRF9CoYFDbX8alV7q41JZLg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=juniper.net; dmarc=pass action=none header.from=juniper.net; dkim=pass header.d=juniper.net; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=juniper.net; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5kb5quajFcMwg5U057e6LK0hr0SJdeQVDVrQZB9T9PQ=; b=AVRUlt2eNgz3rkXWAdQTvE+9LW93WVf0TXftobjKS/N2rEVEmYrLkt4K874w/fqxov1QCu1jbz+HZTEwmUit3HAgP8bp3nkbBngTjBXWJ3UbUOIMtNIthAnv4XQ8z0y7fIs8TnxhxKkjrHluBA5RdeENX9cYBxloKC09B+rcZgQ=
Received: from BYAPR05MB4248.namprd05.prod.outlook.com (20.176.251.147) by BYAPR05MB5751.namprd05.prod.outlook.com (20.178.51.205) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2451.17; Wed, 13 Nov 2019 16:55:38 +0000
Received: from BYAPR05MB4248.namprd05.prod.outlook.com ([fe80::dd02:9d00:19f6:b4e]) by BYAPR05MB4248.namprd05.prod.outlook.com ([fe80::dd02:9d00:19f6:b4e%6]) with mapi id 15.20.2451.023; Wed, 13 Nov 2019 16:55:38 +0000
From: Guy Fedorkow <gfedorkow@juniper.net>
To: Dave Thaler <dthaler=40microsoft.com@dmarc.ietf.org>
CC: "rats@ietf.org" <rats@ietf.org>, Thomas Hardjono <hardjono@mit.edu>, "Smith, Ned" <ned.smith@intel.com>, Henk Birkholz <henk.birkholz@sit.fraunhofer.de>, Jessica Fitzgerald-McKay <jmfmckay@gmail.com>
Thread-Topic: Comments on draft-fedorkow-rats-network-device-attestation-00
Thread-Index: AdWVAeYZl01Kj/T7RhKuuFayaZmLkQABRoFwAFG+ZHAA+zfH4A==
Date: Wed, 13 Nov 2019 16:55:38 +0000
Message-ID: <BYAPR05MB424898EBF159057CD41A8E84BA760@BYAPR05MB4248.namprd05.prod.outlook.com>
References: <CY4PR21MB0773C2CA01797EC8F01CB722A3780@CY4PR21MB0773.namprd21.prod.outlook.com> <MWHPR21MB07845CD7F255A251A403091DA3780@MWHPR21MB0784.namprd21.prod.outlook.com> <BYAPR05MB42486C2F0A2A47B626AB2659BA7B0@BYAPR05MB4248.namprd05.prod.outlook.com>
In-Reply-To: <BYAPR05MB42486C2F0A2A47B626AB2659BA7B0@BYAPR05MB4248.namprd05.prod.outlook.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_Extended_MSFT_Method=Automatic; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=dc0a14cb-52f7-481f-9452-45415e41c007; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Application=Microsoft Azure Information Protection; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2019-11-04T20:56:07.9046064Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Owner=dthaler@ntdev.microsoft.com; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Enabled=True; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SiteId=bea78b3c-4cdb-4130-854a-1d193232e5f4; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Owner=gfedorkow@juniper.net; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_SetDate=2019-10-31T19:26:53.5191743Z; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Name=Juniper Business Use Only; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Application=Microsoft Azure Information Protection; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_ActionId=c07f85d3-3baa-4bca-9285-7a27b371dd42; MSIP_Label_0633b888-ae0d-4341-a75f-06e04137d755_Extended_MSFT_Method=Automatic
dlp-product: dlpe-windows
dlp-version: 11.3.2.8
dlp-reaction: no-action
x-originating-ip: [66.129.241.14]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: 6fc87750-c770-46c8-94c3-08d7685a4f95
x-ms-traffictypediagnostic: BYAPR05MB5751:
x-microsoft-antispam-prvs: <BYAPR05MB57519CC7D64DC4E4FB101823BA760@BYAPR05MB5751.namprd05.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0220D4B98D
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(136003)(396003)(39860400002)(346002)(366004)(376002)(40224003)(199004)(189003)(476003)(2906002)(99286004)(486006)(33656002)(9326002)(25786009)(66476007)(66946007)(66556008)(66446008)(6506007)(76116006)(9686003)(6306002)(76176011)(64756008)(74316002)(54896002)(55016002)(54906003)(229853002)(6436002)(86362001)(53546011)(11346002)(81156014)(7736002)(236005)(316002)(8676002)(26005)(186003)(446003)(81166006)(7696005)(52536014)(71200400001)(30864003)(606006)(5660300002)(14454004)(6116002)(3846002)(790700001)(256004)(14444005)(102836004)(66066001)(5024004)(6246003)(478600001)(8936002)(966005)(45080400002)(71190400001)(4326008)(579004); DIR:OUT; SFP:1102; SCL:1; SRVR:BYAPR05MB5751; H:BYAPR05MB4248.namprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1;
received-spf: None (protection.outlook.com: juniper.net does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: LPoOhhE8TfXAyY2UI3zCIHqsOMQhsQChkMomDDWaN75btviRgQEkBqbCaF/iILh7cqpXph07m+3/lemKOzig0sNBE43HCOCFNBdU+wRabrD5i0ks9R9SQkjfE09/vrpdYG1lCgvnIrcyT3wx6Vkn+IMiNx7oKY7esfbxSq7RZtJ4Zflr3Vrb0yRAhtCkCEYYOD/sqUm6IluP1rKR/1GuNy94RUUnaLmJta759HlEteEay1LVrWgEB3uAGRa3zQfwpn27O1Xkqy2+znUa2rOrAqGCWB222/sVU6qm2JwnFB9mUaxD6xIsqPUkM8OGdAAB6WwHDRyXp6ZR2JMRgUzVG9CJdm0MgKTIBSpqOA+b2yi+V/ZfkAYDVnOX39ae1NNM9GbYh6+/rRvdnkeO7QoerPlE+kuLG9oC7utblZ7SOVo/MCXWSsEhYr7pqD8E+tAM
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_BYAPR05MB424898EBF159057CD41A8E84BA760BYAPR05MB4248namp_"
MIME-Version: 1.0
X-OriginatorOrg: juniper.net
X-MS-Exchange-CrossTenant-Network-Message-Id: 6fc87750-c770-46c8-94c3-08d7685a4f95
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Nov 2019 16:55:38.6160 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: bea78b3c-4cdb-4130-854a-1d193232e5f4
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: zdav4Ds85m65UL6KF64eHmBzQ3ACADy8W9eJ0i0HqH3OTTXmfQweckkkVgdw4BQMVDBZLayiYVcWmzwlpckbgg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR05MB5751
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,18.0.572 definitions=2019-11-13_04:2019-11-13,2019-11-13 signatures=0
X-Proofpoint-Spam-Details: rule=outbound_spam_notspam policy=outbound_spam score=0 mlxlogscore=999 impostorscore=0 adultscore=0 suspectscore=0 clxscore=1015 priorityscore=1501 spamscore=0 malwarescore=0 bulkscore=0 phishscore=0 mlxscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-1910280000 definitions=main-1911130147
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/jJXUctvfo22pOK1AMRtJit10u5c>
Subject: Re: [Rats] Comments on draft-fedorkow-rats-network-device-attestation-00
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, 13 Nov 2019 16:55:49 -0000

Hi Dave,
  I'd like to respond to two points in your original message.

  I think you asked (indirectly) why RIV calls for separate keys for attestation and identity.  That's due to a particular TPM anti-spoofing security principal...
  Attestation evidence is collected entirely inside the TPM.  In the conventional Measured Boot flow, the rot of trust measures the first mutable component, which then measures the second, and so on in a chain.  Each time a measurement is taken, the TPM "extends" the value into a TPM PCR.  Net result is that the measurement showing that a section of code is out of whack is taken before that code is run, i.e., the hack doesn't have a chance to manipulate the end result, because it's measured by something trusted first.
  To preserve that property, the "quote" that reports the accumulated PCRs must be signed inside the TPM, so that the attesting system must transfer the result to the verifier without modification.  Net result is that, even if the attesting system is hacked, it can't pretend to be unmodified by cleaning up the quote before it goes to the verifier.
  But for that to be true, it must be impossible for the attesting system to forge a valid quote.  And for that to be true, it must be impossible for the attesting system to make up a quote from nothing, and convince the TPM to sign it with the attestation key.
  And identity key, on the other hand, must sign whatever it's asked to sign.  The Identity Key signature doesn't say anything about what it was that got signed, its purpose is to prove that, what ever it was, it got signed by the specific TPM.  So there's nothing to prevent an attesting system from making up a quote, and having it signed by an identity key.  So that leads to a desire for separate keys.
  But  you still have to prove that the quote comes from the same device as the identity (the so-called Asokan man in the middle attack).  The TPM has a mechanism to prove that two keys are resident in the same TPM, but RIV takes a simpler approach, but asking whoever provisions the keys (the manufacturer by default) to make the attestation key and identity keys at the same time, and put the same identity information into the corresponding two certificates.  So the verifier can look at the identity certificate and the attestation certificate, check that they are both valid signatures from the appropriate authority (e.g. the manufacturer), check that they have the same model and device serial number, and from there, know that the attestation result originated on the box that they're trying to attest.

  There is a secondary detail that makes the issue a bit less black-and-white.  For TPM1.2, the roles of attestation and identity keys simply must be separate, end of story.  In TPM2.0, it's possible to use one key for both, with a tiny probability of something going wrong...  that is, an attestation key can sign an external object, as long as it doesn't appear to spoof a quote.  But cryptographers usually then argue that good key management should use separate keys for separate functions, and we note that some Identity protocols require keys capable of encryption as well as signing, and so to simplify the cases, we ended up simply keeping them separate.

  Apologies for the long-winded response, but I hope that helps clarify the oblique reference in the RIV doc to two keys for anti-spoofing".  I can update the doc.

  There was also a question about scope of the doc.  There is actually a reason that it's been left a bit ambiguous at TCG.  The doc is currently focused on YANG as the external interface for attestation.  That's clearly aimed at networking gear - I don't think anyone else uses YANG.  Other applications, such as attesting the state of large embedded controllers in industrial gear, would follow the same workflow, but would undoubtedly want some other protocol.  It would be a simple job to extend the doc to those use cases by adding additional protocols, although there are none specifically in the pipeline that I know of.
  The other focus for the doc is TPM.  Of course there are other roots of trust that might be able to fill the same role, and might use the same workflow.  That's a tougher job to estimate, so we declared it out-of-scope for now.
  Oh, and the third restriction, "things that don't sleep"... this is definitely not fundamental.  The TPM clearly can be used in PCs that sleep, but getting in and out of sleep and hibernate states is complicated.  Large embedded devices typically have no application for sleep and hibernate, so we declared it out of scope for RIV.  If someone wants to add it back in, there are no fundamental limitations.

  For the RATS context, I'm fine with revising the doc to make the scope clearer.

  Let me know if this addresses your questions...

  And Henk, Ned, let me know if I'm misrepresenting keying policies!
Thanks
/guy







Juniper Business Use Only
From: Guy Fedorkow
Sent: Friday, November 8, 2019 11:10 AM
To: Dave Thaler <dthaler=40microsoft.com@dmarc.ietf.org>
Cc: rats@ietf.org; Thomas Hardjono <hardjono@mit.edu>; Smith, Ned <ned.smith@intel.com>; Henk Birkholz <henk.birkholz@sit.fraunhofer.de>; Jessica Fitzgerald-McKay <jmfmckay@gmail.com>
Subject: RE: Comments on draft-fedorkow-rats-network-device-attestation-00

Hi Dave,
  I'll look at the title and scope again.  Within TCG, we'd left it a bit ambiguous, as there are a number of applications that it would fit without too much work.  But for RATS, I'm fine with being more careful to delineate where the work as written fits.
  We'll think of a more-formal way to say this, but as Jessica said, the actual scope of the doc is "things with a TPM that use YANG, and don't do sleep/wake cycles".
  I assume this can't be changed now given that the IETF106 deadline has passed, but there will be another revision one way or another in which I can address your other comments.
  Thanks
/guy






Juniper Business Use Only
From: Dave Thaler <dthaler=40microsoft.com@dmarc.ietf.org<mailto:dthaler=40microsoft.com@dmarc.ietf.org>>
Sent: Wednesday, November 6, 2019 8:18 PM
To: Guy Fedorkow <gfedorkow@juniper.net<mailto:gfedorkow@juniper.net>>
Cc: rats@ietf.org<mailto:rats@ietf.org>; Thomas Hardjono <hardjono@mit.edu<mailto:hardjono@mit.edu>>; Smith, Ned <ned.smith@intel.com<mailto:ned.smith@intel.com>>; Henk Birkholz <henk.birkholz@sit.fraunhofer.de<mailto:henk.birkholz@sit.fraunhofer.de>>; Jessica Fitzgerald-McKay <jmfmckay@gmail.com<mailto:jmfmckay@gmail.com>>
Subject: RE: Comments on draft-fedorkow-rats-network-device-attestation-00

And a couple of additional comments on -01 (the subject had -00 in it and probably shouldn't have)


  *   Since section 1 scopes the definition of RIV to certain types of network equipment, I find the term RIV to be

overly broad, since it has a name that implies it is remote attestation for all purposes, which it's apparently not.

I would recommend that, like the title of the doc, the term RIV be narrowed significantly by adding words

to indicate its narrow scope.



  *   Section 4 says:

In light of these
   requirements for protecting the privacy of users of the network, the
   Network Equipment must identify itself, and its boot configuration
   and measured device state (for example, PCR values), to the
   Equipment's Administrator, so there's no uncertainty as to what
   function each device and configuration is configured to carry out .



RIV specifically addresses the collection information from enterprise
   network devices by an enterprise network.

               However, those two sentences appear to be contradictory.   The first one talks about
               the "Equipment's Administrator" whereas the second one talks about "an enterprise network".
               Unless you further narrow the scope in section 1.5 to only cases where those are the same,
               you should not assume that the "Equipment's Administrator" and the "enterprise network"
               are the same organization.


  *   Another point on the same text in section 4 is that it talks about "boot" configuration and then says
"there's no uncertainty as to what function each device and configuration is configured to carry out".

In order to have "no uncertainty" you either have to remove the word "boot", so that it's not just

"boot" configuration, but configuration in general, or else constrain your definition of "embedded"

to cases where all configuration and functionality is fixed at boot time.  That's common in embedded,

but not universal, depending on your definition of embedded.  Currently you only define "embedded"

as "where the device manufacturer ships the software image for the device"

but that by itself doesn't mean all functionality is fixed at boot time.  E.g., the configuration might be

separate from the software image, and might even be obtained after boot, unless you scope down your

definition of "embedded".



  *   Section 5 says

"TPM practices require that these keys be different, as a way of
   ensuring that a general-purpose signing key cannot be used to spoof
   an attestation quote."

and

"To prevent spoofing, the quote generated inside the TPM must by
   signed by a key that's different from the DevID, called an
   Attestation Key (AK)."



The claim that a split is necessary to prevent spoofing is non-obvious (I know I didn't follow it).  I would recommend either

  1.  Delete the text about spoofing and just say that's how TPM works, or
  2.  Provide an explanation, or
  3.  Reference a publically accessible document that has the explanation.

Dave

From: RATS <rats-bounces@ietf.org<mailto:rats-bounces@ietf.org>> On Behalf Of Dave Thaler
Sent: Wednesday, November 6, 2019 4:26 PM
To: Guy Fedorkow <gfedorkow=40juniper.net@dmarc.ietf.org<mailto:gfedorkow=40juniper.net@dmarc.ietf.org>>
Cc: rats@ietf.org<mailto:rats@ietf.org>; Thomas Hardjono <hardjono@mit.edu<mailto:hardjono@mit.edu>>; Smith, Ned <ned.smith@intel.com<mailto:ned.smith@intel.com>>; Henk Birkholz <henk.birkholz@sit.fraunhofer.de<mailto:henk.birkholz@sit.fraunhofer.de>>; Jessica Fitzgerald-McKay <jmfmckay@gmail.com<mailto:jmfmckay@gmail.com>>
Subject: [Rats] Comments on draft-fedorkow-rats-network-device-attestation-00

[updated subject line]

Here's some comments on draft-fedorkow-rats-network-device-attestation-00, in addition to the one in the thread copied at bottom...

Section 1.2:

?  o  Platform Identity, the mechanism providing trusted identity, can

  *   reassure network managers that the specific devices they ordered
  *   from authorized manufacturers for attachment to their network are
  *   those that were installed, and that they continue to be present in
  *   their network.  As part of the mechanism for Platform Identity,
  *   cryptographic proof of the identity of the manufacturer is also
  *   provided.

Above is somewhat ambiguous.   When it says "the specific devices", is it talking about device instances
(in the exact serial number or key pair sense), or the same models?   I.e., I ordered 3 widgets, and I got
three widgets (and not three oranges or something else).  Is this talking about verifying that they're
widgets, or that they're the precise 3 widgets you're expecting?   I suspect you mean the latter but it's not
clear.   Assuming you do mean instances, then knowing that they're the specific devices that were ordered
presumes some mechanism for learning the public keys of the devices ordered, prior to their arrival, and
this should be called out.

Section 2.1 discusses the model where the verifier communicates directly with the attested device.
However, it doesn't point out the problems with that model, which is that the attested device will see this
as unsolicited inbound communication, and hence and sort of host firewall-like behavior will prevent the
interrogation from succeeding.    Section 1.5 already constrains the scope to a very narrow scenario, but
it's not sufficient, it has to be constrained further to the scenario where unsolicited inbound communication
is permitted.   Allowing unsolicited inbound communication opens up other potential security and privacy
risks that should be discussed in sections 4 and 5.

Given the narrowness of the applicability, and the security and privacy risks inherent in the model where
the verifier communicates directly with the attested device, it's not obvious why this is a good direction
to pursue, especially if there might be alternatives that are both more broadly applicable, and more secure/private.

I have no objection if there are good reasons, but the draft doesn't yet provide sufficient justification
in my view.

Thanks,
Dave

From: Guy Fedorkow <gfedorkow=40juniper.net@dmarc.ietf.org<mailto:gfedorkow=40juniper.net@dmarc.ietf.org>>
Sent: Wednesday, November 6, 2019 12:57 PM
To: Dave Thaler <dthaler@microsoft.com<mailto:dthaler@microsoft.com>>
Cc: rats@ietf.org<mailto:rats@ietf.org>; Thomas Hardjono <hardjono@mit.edu<mailto:hardjono@mit.edu>>; Smith, Ned <ned.smith@intel.com<mailto:ned.smith@intel.com>>; Henk Birkholz <henk.birkholz@sit.fraunhofer.de<mailto:henk.birkholz@sit.fraunhofer.de>>; Jessica Fitzgerald-McKay <jmfmckay@gmail.com<mailto:jmfmckay@gmail.com>>
Subject: RE: RIV and the RATS architecture

Hi Dave,
  Ok, I suppose the model where the verifier communicates directly with the attested device is a kind of sub-contracted full-service background check.  That's ok with me, as long as no one interprets the diagram as meaning that the relying party must somehow insert itself into the exchange between Verifier and Attester.

  And I see what you mean about lining up the scope of RIV.  The draft has gone through a number of changes as we've tried to disentangle it from TCG tribal knowledge.
  I think the scope is set by a couple factors.
  The doc as written is clearly limited to TPM-based systems.  That's certainly not the only way to manage a root of trust, but it's the one that's available on a lot of gear already, and it's fairly stable and tightly spec'd.  From the TCG side, I'd expect there would be interest in extending the ideas to other TCG roots of trust such as DICE, but it seems that should be driven out of TCG.

  The limitation to Network Equipment is entirely a matter of expedience.  I think the approach would work easily in other embedded applications, although YANG is likely a fixation only relevant to networking guys.  Other domains would presumably need other domain-specific protocols.

  I'll connect with Jessica to see if we can figure out how to align the name and scope a bit better with the rest of the RATS world.

  Thanks
/guy




Juniper Business Use Only
From: Dave Thaler <dthaler=40microsoft.com@dmarc.ietf.org<mailto:dthaler=40microsoft.com@dmarc.ietf.org>>
Sent: Monday, November 4, 2019 3:56 PM
To: Guy Fedorkow <gfedorkow@juniper.net<mailto:gfedorkow@juniper.net>>
Cc: rats@ietf.org<mailto:rats@ietf.org>; Thomas Hardjono <hardjono@mit.edu<mailto:hardjono@mit.edu>>; Smith, Ned <ned.smith@intel.com<mailto:ned.smith@intel.com>>; Henk Birkholz <henk.birkholz@sit.fraunhofer.de<mailto:henk.birkholz@sit.fraunhofer.de>>; Jessica Fitzgerald-McKay <jmfmckay@gmail.com<mailto:jmfmckay@gmail.com>>
Subject: RE: RIV and the RATS architecture

Hi Guy, sorry for the delay, I was at a conference (Open Source Summit, Confidential Computing Consortium, and Linux Security Summit were all co-located) all last week and traveling there/back.

Responses inline below...

From: RATS <rats-bounces@ietf.org<mailto:rats-bounces@ietf.org>> On Behalf Of Guy Fedorkow
Sent: Thursday, October 31, 2019 12:27 PM
To: Dave Thaler <dthaler=40microsoft.com@dmarc.ietf.org<mailto:dthaler=40microsoft.com@dmarc.ietf.org>>
Cc: rats@ietf.org<mailto:rats@ietf.org>; Thomas Hardjono <hardjono@mit.edu<mailto:hardjono@mit.edu>>; Smith, Ned <ned.smith@intel.com<mailto:ned.smith@intel.com>>; Henk Birkholz <henk.birkholz@sit.fraunhofer.de<mailto:henk.birkholz@sit.fraunhofer.de>>; Jessica Fitzgerald-McKay <jmfmckay@gmail.com<mailto:jmfmckay@gmail.com>>
Subject: [Rats] RIV and the RATS architecture

Hi Dave,
  Thanks for your doc https://tools.ietf.org/html/draft-thaler-rats-architecture-00<https://urldefense.com/v3/__https:/nam06.safelinks.protection.outlook.com/?url=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2Fnam06.safelinks.protection.outlook...com*2F*3Furl*3Dhttps*3A*2F*2Ftools.ietf.org*2Fhtml*2Fdraft-thaler-rats-architecture-00*26data*3D02*7C01*7Cdthaler*40microsoft.com*7C520adf8cc884437d639508d75e385c4d*7C72f988bf86f141af91ab2d7cd011db47*7C1*7C0*7C637081468537546960*26sdata*3D20zFPTGCbLybPlTaNB2E6uSb3re0G2bYPGC8F9TNXis*3D*26reserved*3D0__*3BJSUlJSUlJSUlJSUlJSU!8WoA6RjC81c!Rpme4JKWETjOw_zisYJRdztjgIgNvTA_HZoPymMV_ggWZP8BkjOlbCzLuKc18WRBFIY*24&data=02*7C01*7Cdthaler*40microsoft..com*7C1bf26678bca14945d3bd08d763191133*7C72f988bf86f141af91ab2d7cd011db47*7C1*7C0*7C637086831671084329&sdata=Lo3rkbTEksxPZCDIB*2FuCj*2BszeMO4xQuHUxDkOF9DZBk*3D&reserved=0__;JSUlJSUlJSUlJSoqKioqJSUqKioqKioqKiUlKiUlJSUlJSUlJSUlJSUlJQ!8WoA6RjC81c!Xn2_O62Wg9lin7aRm0WrBgW70EydD8BZFq8Se5MIXVP-bsHRkuSwjYOdlg3eAgtRn20$>.
  Do you have a view as to how the TPM-based attestation described in RIV would fit with the proposed categorization?
https://tools.ietf.org/html/draft-fedorkow-rats-network-device-attestation-00<https://urldefense.com/v3/__https:/nam06.safelinks.protection.outlook.com/?url=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2Fnam06.safelinks.protection.outlook.com*2F*3Furl*3Dhttps*3A*2F*2Ftools.ietf.org*2Fhtml*2Fdraft-fedorkow-rats-network-device-attestation-00*26data*3D02*7C01*7Cdthaler*40microsoft.com*7C520adf8cc884437d639508d75e385c4d*7C72f988bf86f141af91ab2d7cd011db47*7C1*7C0*7C637081468537556953*26sdata*3DVTByXHpjuEMkojKjjly0i0BbnvujhB4fIpQaqiPFDKA*3D*26reserved*3D0__*3BJSUlJSUlJSUlJSUlJSU!8WoA6RjC81c!Rpme4JKWETjOw_zisYJRdztjgIgNvTA_HZoPymMV_ggWZP8BkjOlbCzLuKc1fEcZrRQ*24&data=02*7C01*7Cdthaler*40microsoft.com*7C1bf26678bca14945d3bd08d763191133*7C72f988bf86f141af91ab2d7cd011db47*7C1*7C0*7C637086831671084329&sdata=W95iVCu0BKi3ioryV7ZOngYQnALJEwEgF19Iw6sXTHg*3D&reserved=0__;JSUlJSUlJSUlJSoqKioqJSUqKioqKioqKiUlKiUlJSUlJSUlJSUlJSU!8WoA6RjC81c!Xn2_O62Wg9lin7aRm0WrBgW70EydD8BZFq8Se5MIXVP-bsHRkuSwjYOdlg3eGnNGpPw$>

Great question. From my reading of draft-fedorkow-rats-network-device-attestation-00, it's a background check model, as section 2.3 of your doc explains:
>   3.  A Relying Party, which has access to the Verifier to request
>       attestation and to act on results.

That sentence above is by definition the background check model.
That is, the Attester talks to the Relying Party, the Relying Party then requests a background check by consulting a Verifier,
and will accept whatever answer the Verifier decides.
There are ways where you could use the passport model for network device attestation,
but your document only covers the background check model.

  It doesn't seem to be a passport, since the attester only provides raw evidence, not a pre-approved passport

Agreed, from my reading of your document.

  It doesn't seem to be a background check, as it's the verifier that collects and analyzes the evidence.

If I understand your point here, you're saying that the verifier talks directly to the attester (e.g., by querying the yang module), without going back through the relying party, and that that seemed to you to be different from a classic "background check" diagram.  Did I get your point correctly?

If so, then I see it as a variation of the background check model, as opposed to a separate model per se.

  I'm not sure it matters to RIV, as we haven't drawn much distinction between the relying party and the verifier...  As you say, if they're on the same machine, the distinction is almost moot.

Agree.

And if they're not, I think the communication is out of scope for RIV (if not for RATS).

I disagree that it's out of scope for RATS.

I have no opinion on whether it's out of scope for RIV, since I still have some confusion on the intended scope of RIV.
I note that your document constrains its scope (in section 1.5) to only TPM-based embedded devices, and not other
types of devices.   I couldn't tell if the scope of RIV and the scope of the draft (which does not have RIV in the name, or in
section 1.5) are similar or one is a subset of the other.   Indeed, the title of the document is far wider than just TPM-based
embedded devices, so in that sense the title doesn't match the scoping in section 1.5.   Just explaining why there's not
enough information for me to have an opinion on verifier-relying party communication in RIV.

There can be other network attestation solutions that look quite different from the flow in your draft
(and I have no skin in this game, so don't have a bias towards any solution in particular).   For example,
some other solution might involve a RADIUS server being a Verifier, so the verifier - relying party communication might
be RADIUS in that example.   There's many ways to construct solutions, and so I imagine there's probably multiple
solutions already out there, since the NEA problem is not new even in the IETF (https://tools....ietf.org/wg/nea/<https://urldefense.com/v3/__https:/nam06.safelinks.protection.outlook.com/?url=https*3A*2F*2Furldefense.com*2Fv3*2F__https*3A*2Ftools.ietf.org*2Fwg*2Fnea*2F__*3B!8WoA6RjC81c!Rpme4JKWETjOw_zisYJRdztjgIgNvTA_HZoPymMV_ggWZP8BkjOlbCzLuKc1mSGm10I*24&data=02*7C01*7Cdthaler*40microsoft.com*7C1bf26678bca14945d3bd08d763191133*7C72f988bf86f141af91ab2d7cd011db47*7C1*7C0*7C637086831671094320&sdata=jzwLX8epRspaFxc1XVL61XMieibUdFECiPAD2860Dzg*3D&reserved=0__;JSUlJSUlJSUlJSUlJSUlJSUlJSUl!8WoA6RjC81c!Xn2_O62Wg9lin7aRm0WrBgW70EydD8BZFq8Se5MIXVP-bsHRkuSwjYOdlg3eRfx7-V0$> has
pointers to RFCs for anyone reading this who's not already aware of it).

  But it would be good ensure the architecture and the applications of it actually do fit together...

Absolutely.

Dave

  Thanks
/guy






Juniper Business Use Only