Re: [Rats] Android comments on EAT draft

Giridhar Mandyam <mandyam@qti.qualcomm.com> Thu, 16 May 2019 17:04 UTC

Return-Path: <mandyam@qti.qualcomm.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 CA2D412008F for <rats@ietfa.amsl.com>; Thu, 16 May 2019 10:04:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.299
X-Spam-Level:
X-Spam-Status: No, score=-4.299 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=qti.qualcomm.com
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 Fdn9ldjzcjRw for <rats@ietfa.amsl.com>; Thu, 16 May 2019 10:03:55 -0700 (PDT)
Received: from alexa-out-sd-02.qualcomm.com (alexa-out-sd-02.qualcomm.com [199.106.114.39]) (using TLSv1.2 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B664C120025 for <rats@ietf.org>; Thu, 16 May 2019 10:03:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=qti.qualcomm.com; i=@qti.qualcomm.com; q=dns/txt; s=qcdkim; t=1558026235; x=1589562235; h=from:to:subject:date:message-id:references:in-reply-to: mime-version; bh=ubNS+6Digz3LVD9QUWVhR3T8dvN5jNet1f/Ur9+CG44=; b=J0TgpxHEw8SKXH0lskxDLvVqmlaQ7vro01Wyim28mWtBsiRhlWVjhz3C 9GXYDwuosDxMnCH4GngwpzSd869dEKjZX/ZIHmcZZo88+MYzw2l2neStD rrZaGOkBLTkAxXTRo0cr/RcNFOkEzChDmbIkOWbp2G+1oejDutdZTJW3F U=;
Received: from unknown (HELO ironmsg01-sd.qualcomm.com) ([10.53.140.141]) by alexa-out-sd-02.qualcomm.com with ESMTP; 16 May 2019 10:03:52 -0700
X-IronPort-AV: E=McAfee;i="5900,7806,9259"; a="333597202"
Received: from nasanexm01g.na.qualcomm.com ([10.85.0.33]) by ironmsg01-sd.qualcomm.com with ESMTP/TLS/AES256-SHA; 16 May 2019 10:03:52 -0700
Received: from NASANEXM01C.na.qualcomm.com (10.85.0.83) by NASANEXM01G.na.qualcomm.com (10.85.0.33) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Thu, 16 May 2019 10:03:52 -0700
Received: from NASANEXM01C.na.qualcomm.com ([10.85.0.83]) by NASANEXM01C.na.qualcomm.com ([10.85.0.83]) with mapi id 15.00.1395.000; Thu, 16 May 2019 10:03:52 -0700
From: Giridhar Mandyam <mandyam@qti.qualcomm.com>
To: Shawn Willden <swillden=40google.com@dmarc.ietf.org>, "rats@ietf.org" <rats@ietf.org>
Thread-Topic: [Rats] Android comments on EAT draft
Thread-Index: AQHVC4B6k56wXxjAOEyVrZUT4gj5/KZt7gPg
Date: Thu, 16 May 2019 17:03:51 +0000
Message-ID: <04a7116e67bc401a9c4bf7150050772d@NASANEXM01C.na.qualcomm.com>
References: <CAFyqnhVJ-ps4bdhsyQDOHdzHVZsXeK7_kCDXxUVUcuyDzWS3uA@mail.gmail.com>
In-Reply-To: <CAFyqnhVJ-ps4bdhsyQDOHdzHVZsXeK7_kCDXxUVUcuyDzWS3uA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.80.80.8]
Content-Type: multipart/alternative; boundary="_000_04a7116e67bc401a9c4bf7150050772dNASANEXM01Cnaqualcommco_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/rats/Lj6WDu_Ek7dtBXCpNtRfzhA3he8>
Subject: Re: [Rats] Android comments on EAT 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: Thu, 16 May 2019 17:04:05 -0000

As has been mentioned in other responses, base EAT claims are optional and the original list is meant to be expanded as necessary.

> Specifically, EAT is about attesting to a device while Keystore Attestation is about attesting to a key -- though we also attest to quite a bit about the context of the key, i.e. the device. Indeed, the device information we provide is growing with every release, because there's a strong pent-up demand for device attestation.  So Keystore Attestation is gradually expanding to include the device attestation role, but must also retain its key attestation purpose.  For EAT to be directly applicable, it would have to include claims about a key as well.

Much like ARM defined a PSA token (https://tools.ietf.org/html/draft-tschofenig-rats-psa-token-00), there is nothing to prevent the creation of a Keystore attestation token based on EAT.  For instance, the “entity” could be assumed to the keypair instance itself.   I would imagine the list of attributes defined in the 509 attestation extension in https://source.android.com/security/keystore/attestation would be the place to start for what would constitute the claim set in an Keystore attestation token based on EAT.  Note there are already some claims that appear to overlap the Android Keystore attestation attributes (e.g. seclevel for attestationSecurityLevel, nonce for attestationChallenge).  If the existing claim semantics in the EAT spec need to be re-considered for the Keystore use case, then that it something we can discuss.  There are also several claims that would need to be defined in order to meet the requirements for an Android Keystore attestation.

-Giri Mandyam

From: RATS <rats-bounces@ietf.org> On Behalf Of Shawn Willden
Sent: Wednesday, May 15, 2019 5:44 PM
To: rats@ietfa.amsl.com
Subject: [Rats] Android comments on EAT draft

Hi all.

After being invited by Laurence to join this WG some time ago, I have completely dropped the ball. I apologize for that; in the interim period I have expanded my team from one engineer (me) to six, and we all still have more to do than we can accomplish, which gives a good indication of how much I was dropping on the floor.  I think I have now delegated enough that I can begin to put some time into this.

After reviewing the draft (which I like a lot, in many ways), I notice a crucial divergence of focus between EAT and Android Keystore Attestation.  Perhaps this means that EAT is not applicable for Android; but I'd like to explore the question a bit.

Specifically, EAT is about attesting to a device while Keystore Attestation is about attesting to a key -- though we also attest to quite a bit about the context of the key, i.e. the device. Indeed, the device information we provide is growing with every release, because there's a strong pent-up demand for device attestation.  So Keystore Attestation is gradually expanding to include the device attestation role, but must also retain its key attestation purpose.  For EAT to be directly applicable, it would have to include claims about a key as well.

Perhaps another option is that we could use an EAT attestation as a sub-element inside a CBOR structure that attests to a key.  Or maybe there are other ideas about how an EAT attestation may fit into a larger attestation that describes characteristics of entities other than the containing device?

Another, more tractable, area of difference is that EAT provides Claims for several data items which Android will likely never allow to be attested because of their privacy implications and potential for ecosystem fragmentation (apps choosing which devices they'll run on -- we generally try to deny them the information they'd like to have to make those choices).  These are:

  *   UEID
  *   Origination
  *   Location
We do allow OEM Identification, though it's a different format and is restricted.

Some other claims that we have, and think are important, are OS version and patch-level (represented as a date, YYYYMMDD); secure boot verification key digest; secure boot digest (hash of all verified code); application ID (a digest of the requesting app signing key); and secure app version (hmm, don't have a patchlevel, but we should!  I'll see about adding that for R).

I suppose all of this could be address by registering additional claims.  I'm not sure it would make sense to add a set of claims (or a complex claim) that addresses key attestation, though.  That seems to significantly change the semantics. Or does that sort of extension seem appropriate to folks?

I also have a set of more detailed comments and questions, plus some editorial suggestions.  I put the draft into a Google Doc and added comments.  I've asked my team to take a pass through it as well, and I'll share it with this mailing list as soon as they've had a chance to weigh in.

Again, my apologies for jumping in late.  Let me know if you think EAT just isn't appropriate for Android.

--
Shawn Willden | Staff Software Engineer | swillden@google.com<mailto:swillden@google.com> | 720-924-6645