Re: [Rats] Dealing with Attestation Roots

Laurence Lundblade <lgl@island-resort.com> Sun, 26 April 2020 19:26 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 8264F3A0F13 for <rats@ietfa.amsl.com>; Sun, 26 Apr 2020 12:26:01 -0700 (PDT)
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_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 fKgYXXc3DVxS for <rats@ietfa.amsl.com>; Sun, 26 Apr 2020 12:25:58 -0700 (PDT)
Received: from p3plsmtpa06-08.prod.phx3.secureserver.net (p3plsmtpa06-08.prod.phx3.secureserver.net [173.201.192.109]) (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 DC9BA3A0F1D for <rats@ietf.org>; Sun, 26 Apr 2020 12:25:57 -0700 (PDT)
Received: from [192.168.1.78] ([76.167.193.86]) by :SMTPAUTH: with ESMTPA id Smuaj5ZvwYPrTSmuajI0ID; Sun, 26 Apr 2020 12:25:57 -0700
X-CMAE-Analysis: v=2.3 cv=EoCsUhUA c=1 sm=1 tr=0 a=t2DvPg6iSvRzsOFYbaV4uQ==:117 a=t2DvPg6iSvRzsOFYbaV4uQ==:17 a=pGLkceISAAAA:8 a=48vgC7mUAAAA:8 a=1MSDjx2PAAAA:20 a=FOECo9npAAAA:8 a=n8i27M1mAAAA:8 a=YR1WRx-QAAAA:8 a=i0EeH86SAAAA:8 a=z6gsHLkEAAAA:8 a=hD80L64hAAAA:8 a=96kE7qOnKFvWYeHqX_IA:9 a=poDjYddjOVpP9xRX:21 a=YnSBK_LETCTrUOha:21 a=QEXdDO2ut3YA:10 a=hKI9eobjCLQokgsKDVMA:9 a=JGkeJO6Mp8GvHkrp:21 a=b2KhRQuRoTeZISfU:21 a=OeWRAXXtQf8Phl4b:21 a=_W_S_7VecoQA:10 a=w1C3t2QeGrPiZgrLijVG:22 a=byWG51NV23l9F6lfGfes:22 a=iOyaEzCc-dPZPfZw1HLk:22 a=d-OLMTCWyvARjPbQ-enb:22
X-SECURESERVER-ACCT: lgl@island-resort.com
From: Laurence Lundblade <lgl@island-resort.com>
Message-Id: <BF649CFC-958F-4273-811B-64E744F6B463@island-resort.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_152CBEA5-6194-4702-99CE-555727D8FF42"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
Date: Sun, 26 Apr 2020 12:25:55 -0700
In-Reply-To: <089577da-e46c-5f9c-ef08-30a325ea9cfc@gmail.com>
Cc: "rats@ietf.org" <rats@ietf.org>
To: Anders Rundgren <anders.rundgren.net@gmail.com>
References: <49d8907c-7637-3d21-0619-4999565fc50e@gmail.com> <7C65B977-FA56-4118-BA8B-121BD9697F7C@island-resort.com> <d67985a1-97da-3e23-81e6-1b58b61e1d1a@gmail.com> <FE63538E-389A-4F07-B8DB-6B875D27C3D0@island-resort.com> <089577da-e46c-5f9c-ef08-30a325ea9cfc@gmail.com>
X-Mailer: Apple Mail (2.3445.104.11)
X-CMAE-Envelope: MS4wfE3hGvTSPl4URjHzUJzdIWGTVvOC181ILpCgzQU9jQsXm9C6RKdJawHtktX2qXZMDOm2DQyDzbGm93tqhow7Ksjji1LgsEkGHsPJ95UI5aaJM9Hxd0sb gI6Lk4fdEyid1cjohazQpWHZxObpx0kEX1re8bxEpvOJr3wsDiRwS0AWHHtk1Z5QPE7fm9JZXbK3sExJjAL4/QDgnzsDZY99/pg=
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/F-jOyvff_-tOqeSWWiEHEljRbtY>
Subject: Re: [Rats] Dealing with Attestation Roots
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: Sun, 26 Apr 2020 19:26:02 -0000


> On Apr 23, 2020, at 8:31 PM, Anders Rundgren <anders.rundgren.net@gmail.com> wrote:
> 
> On 2020-04-23 21:20, Laurence Lundblade wrote:
>> Hi Anders,
> Hi Laurence;
> 
>> I think using an X.509 hierarchy with EAT is a fine thing to do, but no one’s done it yet. 
> 
> I see it more like a workaround in the absence of a standard.  Using CWTs is a better solution.

Android uses X.509 both for the attestation token and to chain up from a root to a verification key. Agreed that the X.509 for the attestation token is not preferred as a standard. I wasn’t suggesting that. I was suggesting that X.509 is used WITH CWT/EAT to chain up from a root to a verification key per https://tools.ietf.org/html/draft-ietf-cose-x509-06 <https://tools.ietf.org/html/draft-ietf-cose-x509-06>. I think I’m agreeing with you.

> 
> 
>> The two EAT implementations I know of, use other means to find the verification key. One by key ID, another by a combination of claims inside the attestation.
>> 
> Somewhere there must be a trust anchor or a trusted public key, right? How do you locate it expressed in practical terms?  This is the only thing the "Web PKI + Vendor URL" proposal was meant to addresses.  For those who have doubts about automated retrieval of trust anchors based on vendor-specific host names, the scheme can also aid manual installation of such.
> 
> The proposal is neutral with respect to key hierarchy.  A flat or multi-level (as in Android) scheme would be dealt with in the same way.

Yes, I generally I agree with you on all this.

Though I think there are other ways than an X.509 root certificate and a URL for it to find a verification key. 

I think we should have an IETF RATS draft that says how to use X.509 roots and hierarchies plus a URI with EAT/CWT.

LL



> 
> Anders
> 
>> Android’s solution is not standard, it is just used by Android AFAIK.
>> I think it would be fine to write a draft that says how to use X.509 with EAT. It would involve https://tools.ietf.org/html/draft-ietf-cose-x509-06 <https://tools.ietf.org/html/draft-ietf-cose-x509-06> and maybe the URL you’ve suggested for finding the root. Would even be interested in adding this functionality to ctoken <https://github.com/laurencelundblade/ctoken <https://github.com/laurencelundblade/ctoken>>.
>> Technically speaking, this is all about endorsements and relates to recent email threads on that subject here.
>> LL
>>> On Apr 22, 2020, at 7:54 AM, Anders Rundgren <anders.rundgren.net@gmail.com <mailto:anders.rundgren.net@gmail.com> <mailto:anders.rundgren.net@gmail.com <mailto:anders.rundgren.net@gmail.com>>> wrote:
>>> 
>>> On 2020-04-22 16:38, Laurence Lundblade wrote:
>>>> Hi Anders,
>>> 
>>> Hi Laurence,
>>> Thank you for responding!
>>> 
>>>>> On Feb 27, 2020, at 9:51 AM, Anders Rundgren <anders.rundgren.net@gmail.com <mailto:anders.rundgren.net@gmail.com> <mailto:anders.rundgren.net@gmail.com <mailto:anders.rundgren.net@gmail.com>>> wrote:
>>>>> 
>>>>> Hi List,
>>>>> In the https://cyberphone.github.io/openbankingwallet project the idea was to use attestations.  The most recent version of the Android app indeed supports this as well.
>>>>> 
>>>>> In an ideal world the root would be provided by Google.  However, since we don't live in an ideal world there are vendors out there who do not follow that "recipe”.
>>>> Are you referring to Android N Key Attestation that is implemented in the key store?
>>> 
>>> This is indeed one possible usage.
>>> https://developer.android.com/training/articles/security-key-attestation
>>> 
>>>>> 
>>>>> For W3C's PaymentRequest API a simpler solution is used which do not match attestations but is better than nothing.  This scheme builds on publishing a manifest associated with the app.  Here is my particular manifest:  https://mobilepki.org/w3cpay/method
>>>>> 
>>>>> But I still would like to use attestations and also not being tied to browsers.
>>>>> 
>>>>> What about making attestations optionally contain a URL to the root like https://huawei.com/teeroot ?
>>>> I don’t know what https://huawei.com/teeroot  is. I can’t get anything from this URL.
>>> 
>>> That's correct, I don't even know where to find Huawei's attestation root which is how I came to this idea :)
>>> 
>>> 
>>>> I’m guessing you are after an X.509 root certificate, one that is used for Android-style attestation. Is that right?
>>> 
>>> Right.  Is using an X.509 root certificate an unusual way of dealing with attestation verification?
>>> 
>>> Anders
>>> 
>>>> LL
>>>>> Since the number of vendors in finite and the Web-PKI is in a fairly good shape these days, this could serve as a workaround for those who don't have any number of cycles to spend on installing arbitrary tee root certificates.  That is, a verifier's "trust registry" would simply hold host names like "huawei.com", "sony.com", "samsung.com", etc.
>>>>> 
>>>>> If there is a better method, I'm all ears!
>>>>> 
>>>>> thanx,
>>>>> Anders
>>>>> 
>>>>> _______________________________________________
>>>>> RATS mailing list
>>>>> RATS@ietf.org
>>>>> 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>