Subject: [Teep] EAT claims needed by TEEP

From: Dave Thaler <[email-masked]>
Date: Mon, 26 Oct 2020 22:15:34 +0000

As discussed in previous IETF meetings, if there are claims beyond the base set that
other WGs need, they can be specified by the other WGs with review by RATS.

The TEEP WG needs the following in EATs and I am not sure whether they can be
covered by existing claims or whether TEEP-specific claims are needed.  From
section 7.1 of draft-ietf-teep-architecture:

Ø     -  Device Identifying Information: TEEP attestations may need to

Ø        uniquely identify a device to the TAM.  Unique device

Ø        identification allows the TAM to provide services to the device,

Ø        such as managing installed TAs, and providing subscriptions to

Ø        services, and locating device-specific keying material to

Ø        communicate with or authenticate the device.

I believe the Universal Entity ID Claim (ueid) is claim that meets the above requirement.
But the TEEP arch then goes on to say:

Ø        In some use cases it

Ø        may be sufficient to identify only the class of the device.  The

Ø        security and privacy requirements regarding device identification

Ø        will vary with the type of TA provisioned to the TEE.
Which EAT claim contains the device class? The closest thing I see is OEM Identification by IEEE (oemid)
but I am not sure that is sufficient since it's only the OEM not the device class from that OEM.
This doesn't seem like something that should be TEEP specific though, so can someone tell me how to
represent device class using the claims in the EAT spec?

Ø     -  TEE Identifying Information: The type of TEE that generated this

Ø        attestation must be identified, including version identification

Ø        information such as the hardware, firmware, and software version

Ø        of the TEE, as applicable by the TEE type.  TEE manufacturer

Ø        information for the TEE is required in order to disambiguate the

Ø        same TEE type created by different manufacturers and address

Ø        considerations around manufacturer provisioning, keying and

Ø        support for the TEE.

Similarly for this requirement, the closest thing I see is Origination Claim (origination) but I am not sure
that is sufficient since it's just the manufacturer not the "version identification information such as the
hardware, firmware, and software version of the TEE"
Should the TEEP WG define TEEP-specific claims for such information?

Dave

---

From: Laurence Lundblade <[email-masked]>
Date: Tue, 27 Oct 2020 11:57:29 -0700

Personally, I think attestation of TEE’s is pretty important and should be handled well in EAT. So I’m interested in working on and adding claims for this to EAT.

After reading section 7.1 in TEEP architecture, it does seem like there some work to do here to get to specific standardized interoperable claims.

More comments below.

> On Oct 26, 2020, at 3:15 PM, Dave Thaler <dthaler=[email-masked]> wrote:
> 
> This doesn’t seem like something that should be TEEP specific though, so can someone tell me how to

I don’t think the OEMID, UEID or other should be (ab)used  to represent device class. That would result in them being less reliable and useful in a generic sense. We should come up with a new claim.

We can define a claim to be  the device class and make it a byte string like a UEID, but I think we have to go further to make it useful as an interoperable standardize claim. There has to be some method for the classification. TrustZone vs hypervisor based? Fast vs slow? Has a protected mode kernel and TAs? The TEEP document doesn’t say. This seems problematic without a classification scheme.

I wonder if the intent is more about grouping, in which case we can define a GEID (Group Entity ID) that looks a lot like a UEID. That seems useful and sensible to me. It is not about classification based on any characteristics. It lines up with the privacy preserving technique of one key per 100,000 devices.

> hardware, firmware, and software version of the TEE”

Definitely not origination claim. The intent of it something like Endorser identification and I think it should be replaced by an Endorser/X.509 cert URL.

I would say, this is a combination of claims

I’ve just added a PR <https://github.com/ietf-rats-wg/eat/pull/68> for HW version claims.

The intent for SW version claims is to use CoSWID. We should probably create some examples to see if it can represent what TEEP wants to represent.

The paragraph mentions “type of TEE”. I’m not sure what is intended. I don’t know of any common taxonomy for classifying TEEs.

> Should the TEEP WG define TEEP-specific claims for such information?

I’d like to see most of them go into EAT unless they are super specific to TEEP (TEEP not TEEs). I think there is value in broad standardize claims as it promotes interoperability of RATS.

LL

>  
> Dave
> _______________________________________________
> RATS mailing list
> [email-masked] <mailto:[email-masked]>
> https://www.ietf.org/mailman/listinfo/rats <https://www.ietf.org/mailman/listinfo/rats>

---

From: Dave Thaler <[email-masked]>
Date: Tue, 27 Oct 2020 20:26:27 +0000

Inline below…

From: Laurence Lundblade <[email-masked]>
Sent: Tuesday, October 27, 2020 11:57 AM
To: Dave Thaler <[email-masked]>
Cc: [email-masked]; teep <[email-masked]>
Subject: Re: [Rats] EAT claims needed by TEEP

More comments below.

On Oct 26, 2020, at 3:15 PM, Dave Thaler <dthaler=[email-masked]<mailto:dthaler=[email-masked]>> wrote:

The TEEP WG needs the following in EATs and I am not sure whether they can be
covered by existing claims or whether TEEP-specific claims are needed.  From
section 7.1 of draft-ietf-teep-architecture:

>     -  Device Identifying Information: TEEP attestations may need to
>        uniquely identify a device to the TAM.  Unique device
>        identification allows the TAM to provide services to the device,
>        such as managing installed TAs, and providing subscriptions to
>        services, and locating device-specific keying material to
>        communicate with or authenticate the device.

I believe the Universal Entity ID Claim (ueid) is claim that meets the above requirement.
But the TEEP arch then goes on to say:

>        In some use cases it
>        may be sufficient to identify only the class of the device.  The
>        security and privacy requirements regarding device identification
>        will vary with the type of TA provisioned to the TEE.

+1

[DT] I’m not sure we need a classification scheme, at least for TEEP.  A simple device class byte string as you suggest would suffice in my opinion.

>     -  TEE Identifying Information: The type of TEE that generated this

>        attestation must be identified, including version identification

>        information such as the hardware, firmware, and software version

>        of the TEE, as applicable by the TEE type.  TEE manufacturer

>        information for the TEE is required in order to disambiguate the

>        same TEE type created by different manufacturers and address

>        considerations around manufacturer provisioning, keying and

>        support for the TEE.

Definitely not origination claim.

+1

The intent of it something like Endorser identification and I think it should be replaced by an Endorser/X.509 cert URL.

It’s just used:

1)     For a Verifier in appraising the evidence (nothing TEEP specific here, appraisal policy can involve any claim), and

2)     To be used by a TAM to decide which TA’s apply to the TEE.  In that sense it’s just like any other vendor id + device class for any non TEE, and I believe if there were a byte string for device class as you suggest that would be sufficient in my opinion.

Keeping in mind the “layered attestation” concept in the arch doc, as long as we have a claimset per layer, then I think the same “vendor id” and “class” claims that would apply to any device could be reused for the TEE, and reused for describing each layer.  E.g., a “version” claim would apply at the hardware layer and be the hardware version, at the firmware layer and be a firmware version, at the OS layer and be an OS version, etc.

I’ve just added a PR<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fietf-rats-wg%2Feat%2Fpull%2F68&data=04%7C01%7Cdthaler%40microsoft.com%7Cab1ee7788f1f4d449c5508d87aaa3006%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637394218658895685%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=JyNCTwUJvkCPk3H9uYmD0BLfUXPu6vhnQomkIqiqiUM%3D&reserved=0> for HW version claims.

Agree this sounds promising.

A unique identifier is sufficient in my view, no “classification” or “taxonomy” is required by anything that the TEEP WG has discussed to date, as far as I know.

Sounds good to me.   Consider this a request to add some way to express “vendor id”, “model” (or “class” or whatever you want to call it), and “version” as claims that can be applied in claimsets at various layers.   I glanced at the PR you referenced and it seems to be a chip-specific version, not a generic version claim that can be used at multiple layers, so is not sufficient to meet the TEEP arch draft’s requirements, we still need other claims added.

Thanks!
Dave

LL

Dave
_______________________________________________
RATS mailing list
[email-masked]<mailto:[email-masked]>
https://www.ietf.org/mailman/listinfo/rats<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Frats&data=04%7C01%7Cdthaler%40microsoft.com%7Cab1ee7788f1f4d449c5508d87aaa3006%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637394218658895685%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=O5LJZBw%2B6huYU7BrNSgOUQNw2H5uoDGwZj09%2FPghKrI%3D&reserved=0>

---

From: Laurence Lundblade <[email-masked]>
Date: Tue, 27 Oct 2020 13:45:08 -0700

CoSWID should cover all the identification of vendors, models, versions and stuff for SW. If it doesn’t talk to Henk about fixes to CoSWID. :-)

For HW, there is OEMID and recently proposed chip version, board version and device version. It seems like we need a model number claim for HW. I will work on that.

Seems like submodules would be used to organize claims for layered attestation and all of the above claims can occur in any submodule they need to.

Does this mostly cover it? 

I worry that the HW claims are bit too rigid in their use of EAN-13 and IEEE registries. Might need to do something about that.

LL

> On Oct 27, 2020, at 1:26 PM, Dave Thaler <[email-masked]> wrote:
> 
> Inline below…
>  
> From: Laurence Lundblade <[email-masked] <mailto:[email-masked]>> 
> To: Dave Thaler <[email-masked] <mailto:[email-masked]>>
> Cc: [email-masked] <mailto:[email-masked]>; teep <[email-masked] <mailto:[email-masked]>>
> On Oct 26, 2020, at 3:15 PM, Dave Thaler <dthaler=[email-masked] <mailto:dthaler=[email-masked]>> wrote:
>  
> I’ve just added a PR <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fietf-rats-wg%2Feat%2Fpull%2F68&data=04%7C01%7Cdthaler%40microsoft.com%7Cab1ee7788f1f4d449c5508d87aaa3006%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637394218658895685%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=JyNCTwUJvkCPk3H9uYmD0BLfUXPu6vhnQomkIqiqiUM%3D&reserved=0> for HW version claims.
>  
> https://www.ietf.org/mailman/listinfo/rats <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Frats&data=04%7C01%7Cdthaler%40microsoft.com%7Cab1ee7788f1f4d449c5508d87aaa3006%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637394218658895685%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=O5LJZBw%2B6huYU7BrNSgOUQNw2H5uoDGwZj09%2FPghKrI%3D&reserved=0>
>

---

From: Dave Thaler <[email-masked]>
Date: Wed, 28 Oct 2020 00:05:13 +0000

Looking at draft-ietf-sacm-coswid, I agree that CoSWID should cover it if there is a claim specified to hold a CoSWID.

So yes, your summary of what is needed sounds right to me.

Dave

Sent: Tuesday, October 27, 2020 1:45 PM

LL

On Oct 27, 2020, at 1:26 PM, Dave Thaler <[email-masked]<mailto:[email-masked]>> wrote:

Inline below…

From: Laurence Lundblade <[email-masked]<mailto:[email-masked]>>
Sent: Tuesday, October 27, 2020 11:57 AM
To: Dave Thaler <[email-masked]<mailto:[email-masked]>>
Cc: [email-masked]<mailto:[email-masked]>; teep <[email-masked]<mailto:[email-masked]>>
Subject: Re: [Rats] EAT claims needed by TEEP

More comments below.

+1

+1

It’s just used:

I’ve just added a PR<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fietf-rats-wg%2Feat%2Fpull%2F68&data=04%7C01%7Cdthaler%40microsoft.com%7C86adc518cd4846f5d04c08d87ab932a2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637394283129551122%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=SAznEZzXc1sGG2DgHGzVzhG%2FEXDqDUNJGbq8VUU7vyU%3D&reserved=0> for HW version claims.

Thanks!
Dave

LL

Dave
_______________________________________________
RATS mailing list
[email-masked]<mailto:[email-masked]>
https://www.ietf.org/mailman/listinfo/rats<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fwww.ietf.org%2Fmailman%2Flistinfo%2Frats&data=04%7C01%7Cdthaler%40microsoft.com%7C86adc518cd4846f5d04c08d87ab932a2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637394283129561119%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=jhNeZjOpLSA4ywPllPp9jSTGnoowLW5NXq0o%2BSsj5Ks%3D&reserved=0>

---

From: Simon Frost <[email-masked]>
Date: Wed, 28 Oct 2020 18:14:08 +0000

Note that some of the Arm team will be attending the upcoming hackathon and had been discussing doing some work there on describing components with CoSWID via EAT. This builds on some implementation work already completed as part of an Arm project that will shortly be upstreamed.

The PSA EAT profile originally introduced a hardware version based on an EAN-13. This was used as a reference to a general set of hardware in a certification scheme. Further work has shown this format is not suitable and it has will be deprecated in a future releases of the profile. The PSA profile also contains an ‘ImplementationID’ claim (byte string of sufficient size to hold a SHA2 hash) which is intended to be used as a much more specific identifier of a hardware group. The intent here is that reference values for an ImplementationID can be known by a verifier to assist appraisal policy.

Thanks
Simon

Sent: 27 October 2020 20:45

LL

Inline below…

More comments below.

+1

+1

It’s just used:

Thanks!
Dave

LL

Dave

IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.

---

From: Laurence Lundblade <[email-masked]>
Date: Thu, 29 Oct 2020 13:02:42 -0700

> On Oct 28, 2020, at 11:14 AM, Simon Frost <[email-masked]> wrote:
> 

I think we want to have a claim that is clearly and explicitly a HW version. There can be additional claims to look up reference values or other stuff Verifiers need. All claims are optional so, implementations that only use something like ImplementID can leave out HW version.

I think we should keep EAN-13 as an option, even though it won’t work for everyone.

In addition to EAN-13 versions, we can just define byte string, or we can go a lot further by reusing the version scheme from CoSWID. Here’s some of the types.

   +-------+-------------------------+--------------------------------+
   | Index | Version Scheme Name     | Definition                     |
   +=======+=========================+================================+
   | 1     | multipartnumeric        | Numbers separated by dots,     |
   |       |                         | where the numbers are          |
   |       |                         | interpreted as integers (e.g., |
   |       |                         | 1.2.3, 1.4.5, 1.2.3.4.5.6.7)   |
   +-------+-------------------------+--------------------------------+
   | 2     | multipartnumeric+suffix | Numbers separated by dots,     |
   |       |                         | where the numbers are          |
   |       |                         | interpreted as integers with   |
   |       |                         | an additional textual suffix   |
   |       |                         | (e.g., 1.2.3a)                 |
   +-------+-------------------------+--------------------------------+
   | 3     | alphanumeric            | Strictly a string, sorting is  |
   |       |                         | done alphanumerically          |
   +-------+-------------------------+--------------------------------+
   | 4     | decimal                 | A floating point number (e.g., |
   |       |                         | 1.25 is less than 1.3)         |
   +-------+-------------------------+--------------------------------+
   | 16384 | semver                  | Follows the [SEMVER <https://tools.ietf.org/html/draft-ietf-sacm-coswid-15#ref-SEMVER>]           |
   |       |                         | specification                  |
   +-------+-------------------------+--------------------------------+

My understanding is that they are always encoded as CBOR text strings, so floating-point doesn’t mean #7.25 or such.

LL

> On Oct 27, 2020, at 1:26 PM, Dave Thaler <[email-masked] <mailto:[email-masked]>> wrote:
>  
> Inline below…
>

---

From: Thomas Fossati <[email-masked]>
Date: Thu, 29 Oct 2020 20:45:20 +0000

Hi Laurence,

> My understanding is that they are always encoded as CBOR text strings,
> so floating-point doesn’t mean #7.25 or such.

Correct.  In (Co)SWID software-version is just a text string and version-scheme
is there to do some semantic polishing.  But the underlying type is always #3.

Maybe I’m misunderstanding your proposal here, but I would be circumspect
in mixing SWIDs attributes, which are scoped to software artifacts, with HW
identifiers.

Cheers!

---

From: Laurence Lundblade <[email-masked]>
Date: Thu, 29 Oct 2020 14:06:53 -0700

> On Oct 29, 2020, at 1:45 PM, Thomas Fossati <[email-masked]> wrote:
> 
> Hi Laurence,
>  

Hi Thomas,

All the SW Version stuff would fall under a single EAT claims that contains a full CoSWID.

For HW Version, I was thinking of two EAT claims, one for the version text, another for the version scheme (or we could go off and define a full CoHWID).

LL

---

From: Thomas Fossati <[email-masked]>
Date: Thu, 29 Oct 2020 21:21:14 +0000

On 29/10/2020, 21:07, "RATS" <[email-masked]> wrote:
> Maybe I'm misunderstanding your proposal here, but I would be circumspect
> For HW Version, I was thinking of two EAT claims, one for the version
> text, another for the version scheme (or we could go off and define a
> full CoHWID).

OK, looks like I had misunderstood your plan :-) thanks for the
clarification!
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.