[Rats] debug disable (was Re: Processing Endorsements and Evidence into Results)

Laurence Lundblade <lgl@island-resort.com> Fri, 03 April 2020 18:00 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 D0B0C3A09AF for <rats@ietfa.amsl.com>; Fri, 3 Apr 2020 11:00:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.797
X-Spam-Level:
X-Spam-Status: No, score=-1.797 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=no 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 9pyhLZbr-EeV for <rats@ietfa.amsl.com>; Fri, 3 Apr 2020 11:00:06 -0700 (PDT)
Received: from p3plsmtpa09-02.prod.phx3.secureserver.net (p3plsmtpa09-02.prod.phx3.secureserver.net [173.201.193.231]) (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 750793A09B4 for <rats@ietf.org>; Fri, 3 Apr 2020 11:00:06 -0700 (PDT)
Received: from [192.168.1.78] ([76.167.193.86]) by :SMTPAUTH: with ESMTPA id KQbtjws0BQG23KQbtjctUk; Fri, 03 Apr 2020 11:00:05 -0700
X-CMAE-Analysis: v=2.3 cv=Z+CS40ZA c=1 sm=1 tr=0 a=t2DvPg6iSvRzsOFYbaV4uQ==:117 a=t2DvPg6iSvRzsOFYbaV4uQ==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=0XtbOteLAAAA:20 a=7CQSdrXTAAAA:8 a=48vgC7mUAAAA:8 a=K6EGIJCdAAAA:8 a=03-ksFfLAAAA:8 a=UqCG9HQmAAAA:8 a=yMhMjlubAAAA:8 a=u4ooS7Ln3TBKnMoUDKkA:9 a=5EQvnLYBJ7oI5zDb:21 a=lUdfWMBVHWRQBj5x:21 a=QEXdDO2ut3YA:10 a=y9xj3q3fsdtBesVT9jcA:9 a=Dls7fpq71dqwZQc5:21 a=KChdqQdhosJ53ZFt:21 a=UpUzhoANeXLIUn2-:21 a=_W_S_7VecoQA:10 a=a-qgeE7W1pNrGK8U0ZQC:22 a=w1C3t2QeGrPiZgrLijVG:22 a=L6pVIi0Kn1GYQfi8-iRI:22 a=xzjcLgdzzKJd7D42GW5i:22
X-SECURESERVER-ACCT: lgl@island-resort.com
From: Laurence Lundblade <lgl@island-resort.com>
Message-Id: <C2FB508E-9527-4ABA-82EA-99558B8B76FF@island-resort.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_9511321B-B3D3-4106-BF4F-75BD681E62D5"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Fri, 03 Apr 2020 11:00:04 -0700
In-Reply-To: <BL0PR2101MB1027DAD1C277DF2255F4795AA3C70@BL0PR2101MB1027.namprd21.prod.outlook.com>
Cc: Ned Smith <ned.smith@intel.com>, "rats@ietf.org" <rats@ietf.org>
To: Dave Thaler <dthaler=40microsoft.com@dmarc.ietf.org>
References: <C3BC4E14-8BF8-4CD5-882B-F7AAF4B9155F@island-resort.com> <BB724659-3075-4ED2-8745-BACBD0D17C2B@island-resort.com> <B8790B3C-35FF-4709-837D-0BE609678104@intel.com> <BL0PR2101MB1027DAD1C277DF2255F4795AA3C70@BL0PR2101MB1027.namprd21.prod.outlook.com>
X-Mailer: Apple Mail (2.3445.104.11)
X-CMAE-Envelope: MS4wfLPHr8y81/cJCjBQYead463rvlWl4JB7uOa2zIVQvd6hjs6uIsLvnQsSF+8t2MZQ07dKSVuoorrhEbE3FFQ8NaIHueE6sTEs3MRL9iAZ7+eIs2lOzoK0 PzlRPbpPvSCnOzRlGQ80JR+/fWR6pt2723NLJa25mK4AZhNvV4IfweZYPnto5VHoVzR08C0uCF5j5DcqeW61LLxxK+mUhpXH3jrVsWEdqXPSWJI2bxX1bZeH ZrJd0udkKuyT3Auj7pwl5Q==
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/kT3055jIzIl1BoPRwIX3BXxp2c8>
Subject: [Rats] debug disable (was Re: Processing Endorsements and Evidence into Results)
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, 03 Apr 2020 18:00:09 -0000

The latest debug disable text is here <https://github.com/ietf-rats-wg/eat/blob/master/draft-ietf-rats-eat.md> in GitHub but not yet in a released draft.

The “permanent disable” state still allows for the OEM (and only the OEM) to enable for things like RMA so it couldn't go in an endorsement. “full permanent disable” could, but only if the manufacturer really did it for every chip they shipped.

The debug facilities the claim is aimed at are HW and system facilities like JTAG, scan chain, Arm Coresight <https://developer.arm.com/ip-products/system-ip/coresight-debug-and-trace> and such. 

Maybe for some app download systems it might make sense to make the app an Attestation Target and make claims about that app’s debug state, but that’s not how debug for SW / apps usually works. There’s not usually config to turn debug on or off for individual apps.

LL


> On Apr 2, 2020, at 9:27 PM, Dave Thaler <dthaler=40microsoft.com@dmarc.ietf.org> wrote:
> 
> Debug-disable is not (in general, but can be in specific cases) permanent for a device, it can vary by application on the same device,
> and can vary over time as say software/firmware is patched or configured, so cannot in that case be in an endorsement.
>  
> Also I would expect that endorsements generally also carry some sort of expiration or validity period as well, which isn’t in Laurence’s example.
> (And expiration time is an example of something that equality comparison against a “known good value” doesn’t work for.)
>  
> Dave
>  
> From: RATS <rats-bounces@ietf.org> On Behalf Of Smith, Ned
> Sent: Thursday, April 2, 2020 9:20 PM
> To: Laurence Lundblade <lgl@island-resort.com>; rats@ietf.org
> Subject: Re: [Rats] Processing Endorsements and Evidence into Results
>  
> BTW: Since ‘debug-disable’ is permanent it could probably equally be included in Endorsement.
> It is also reasonable that Verifier could downgrade ‘security level’ based on other claims and how they relate to policies. Security level in Evidence is an assertion the attester makes that has to be substantiated in some way. It could also be used exclusively as a conclusion in Results based on review of a bunch of other claims (in other words Attestation Results cold acquire additional claims beyond what originally existed in the intersection of Evidence and Endorsement.
>  
> Policies and or standardized profiles decide all these variables IMHO.
>  
> But the example seems to be illustrative (if that was the intent).
>  
> -Ned
>  
> From: RATS <rats-bounces@ietf.org <mailto:rats-bounces@ietf.org>> on behalf of Laurence Lundblade <lgl@island-resort.com <mailto:lgl@island-resort.com>>
> Date: Thursday, April 2, 2020 at 4:16 PM
> To: "rats@ietf.org <mailto:rats@ietf.org>" <rats@ietf.org <mailto:rats@ietf.org>>
> Subject: Re: [Rats] Processing Endorsements and Evidence into Results
>  
> Let me make this much more concrete with an example. I’m using JSON representation of CWT/EAT/Endorsements with C-style comments for reading ease.
>  
> Endorsement
> {
>     “trust-evidence”: “all”,           // E0, I just made this up
>     “field-upgradable”: true,          // E1, from draft-birkholz-rats-endorsement-eat-00
>     “shielded-secret”: internal,       // E2, from draft-birkholz-rats-endorsement-eat-00
>     “common-criteria”: https://www.commoncriteriaportal.org/files/epfiles/0879V3a_pdf.pdf <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.commoncriteriaportal.org%2Ffiles%2Fepfiles%2F0879V3a_pdf.pdf&data=02%7C01%7Cdthaler%40microsoft.com%7C4809b6abf17245234e7a08d7d78651b3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637214844793201421&sdata=E69tACqMXmlHdnjeBU9Y8cDT5DJAwHo0%2B7fAIgvtU4s%3D&reserved=0>”,      // E3, from draft-birkholz-rats-endorsement-eat-00
> }
>  
> Evidence
> {
>     “iat": 5734873409823,              // C1 time stamp for evidence creation time(eg) from EAT draft
>     “security-level”: 4                // C2 the security level is “hardware” from EAT draft
>     “debug-disable”: “permanent”       // C3 debug is permanently disabled for all but the OEM from EAT draft
> }
>  
> Results
> {
>     “field-upgradable”: true,          // R1, from draft-birkholz-rats-endorsement-eat-00
>     “shielded-secret”: internal,       // R2, from draft-birkholz-rats-endorsement-eat-00
>     “common-criteria”: https://www.commoncriteriaportal.org/files/epfiles/0879V3a_pdf.pdf <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.commoncriteriaportal.org%2Ffiles%2Fepfiles%2F0879V3a_pdf.pdf&data=02%7C01%7Cdthaler%40microsoft.com%7C4809b6abf17245234e7a08d7d78651b3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637214844793201421&sdata=E69tACqMXmlHdnjeBU9Y8cDT5DJAwHo0%2B7fAIgvtU4s%3D&reserved=0>”,      // R3, from draft-birkholz-rats-endorsement-eat-00
>     “iat": 5734873409823,              // R4 time stamp for evidence creation time(eg)
>     “security-level”: 4                // R5 the security level is “hardware”
>     “debug-disable”: “permanent”       // R6 debug is permanently disabled for all but the OEM
> }
>  
> In this example, the RP is probably feeding this into a risk engine so they want all the details.
>  
>  
> Here’s another very abbreviated example with made up claim names:
>  
> Endorsement (not showing any signing)
> {
>     “expected-hash”: “TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZW”
> }
>  
> Evidence
> {
>     “actual-hash”: “TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZW"
> }
>  
> Results
> {
>     “verified”: true,  
> }
>  
> This all seems like the eventual logical result of the EAT, endorsements and architecture drafts to me.
>  
> LL
>     
>  
>  
>  
> 
> On Apr 2, 2020, at 12:36 PM, Laurence Lundblade <lgl@island-resort.com <mailto:lgl@island-resort.com>> wrote:
>  
> Now that we have a first draft describing endorsements <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Fdraft-birkholz-rats-endorsement-eat-00&data=02%7C01%7Cdthaler%40microsoft.com%7C4809b6abf17245234e7a08d7d78651b3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637214844793211423&sdata=8ZPy3ny07A3FO%2BHn3fCrWnCoUKBbIkKhxbCMvF5Jbl8%3D&reserved=0>, and they look like Evidence and Results, it seems interesting to consider some of how the verifier uses Endorsements (reference the architecture diagram below).
>  
> Let’s say there are three things in the endorsement, E1, E2 and E3, three things in the evidence, C1, C2 and C3 and three in the results, R1, R2 and R3.
>  
> Then three simpleton top-level cases:
>  
> 1) An Endorsement is passed through and becomes a result: E1 — > R1
> 2) A Claim is passed through and becomes a results: C1 —> R2
> 3) Some endorsements combine with some claims to become a result: {E2, E3, C2, C3} —> R3
>  
> However that seems to be too simple and I think there has to be some sort of a primitive endorsement, call it E0, whose semantics are that some or all of the claims can always be believed. I think that means 2) doesn’t really exist, but has to be this:
>  
> 2) Some claims can pass through with the use of the primitive E0 endorsement: {E0, C1} —> R2
>  
> One way E0 could be defined in the draft describing endorsements <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Fdraft-birkholz-rats-endorsement-eat-00&data=02%7C01%7Cdthaler%40microsoft.com%7C4809b6abf17245234e7a08d7d78651b3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637214844793211423&sdata=8ZPy3ny07A3FO%2BHn3fCrWnCoUKBbIkKhxbCMvF5Jbl8%3D&reserved=0> is that it is a list of the labels of claims that are trusted to be passed through. For numeric labels  a range INT64_MAX to INT64_MIN (or -infinity to +infinity)  indicates all claims are trusted. It could also list specific ones that are trusted.
>  
> From the TEE, FIDO and Android Attestation views of the world where measurements aren’t a primary thing and secure/trusted boot is required and always on, a common model will be to pass everything through to create an aggregate result. It could be represented this way:
>  
> E1->R1
> E2->R2
> E3->R3
> {E0,C1}->R4
> {E0,C2}->R5
> {E0,C3}->R6
>  
> I think this goes on to submodules too and has some relation to the attempted to propose a connection type.  Endorsements may be able to say how submodules are trusted. There might even be an E00 primitive that says the lead attester is allowed to say how submodules are trusted. This whole line of thinking was partly prompted by this issue <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fietf-rats-wg%2Feat%2Fissues%2F58&data=02%7C01%7Cdthaler%40microsoft.com%7C4809b6abf17245234e7a08d7d78651b3%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637214844793221414&sdata=uXX3tjZCocPUqEI47BoDPHVaSOWaAssDjlSWZgY0fZw%3D&reserved=0> against EAT and comments from Giri and Dave.
>  
> LL
>  
>  
>                  ************   ************    *****************
>                  * Endorser *   * Verifier *    * Relying Party *
>                  ************   *  Owner   *    *  Owner        *
>                        |        ************    *****************
>                        |              |                 |
>            Endorsements|              |                 |
>                        |              |Appraisal        |
>                        |              |Policy for       |
>                        |              |Evidence         | Appraisal
>                        |              |                 | Policy for
>                        |              |                 | Attestation
>                        |              |                 |  Result
>                        v              v                 |
>                      .-----------------.                |
>               .----->|     Verifier    |------.         |
>               |      '-----------------'      |         |
>               |                               |         |
>               |                    Attestation|         |
>               |                    Results    |         |
>               | Evidence                      |         |
>               |                               |         |
>               |                               v         v
>         .----------.                      .-----------------.
>         | Attester |                      | Relying Party   |
>         '----------'                      '-----------------'
>  
>  
>  
>  
>  
>  
>  
> _______________________________________________
> RATS mailing list
> RATS@ietf.org <mailto:RATS@ietf.org>
> https://www.ietf.org/mailman/listinfo/rats <https://www.ietf.org/mailman/listinfo/rats>
>  
> _______________________________________________
> RATS mailing list
> RATS@ietf.org <mailto:RATS@ietf.org>
> https://www.ietf.org/mailman/listinfo/rats <https://www.ietf.org/mailman/listinfo/rats>