Subject: Re: [Rats] Often Attester == Device?

From: Laurence Lundblade <[email-masked]>
Date: Wed, 29 Dec 2021 08:48:43 -0600

I recently realized the source of my surprise that Attester == Device.

In normal English use of the word attester, it is just the witness, the informer or the reporter to the exclusion of what is witnessed, what is the subject.

Definitions of attester. someone who affirms or vouches for the correctness or truth or genuineness of something. synonyms: attestant. type of: informant, witness, witnesser. someone who sees an event and reports what happened

However, RATS architecture defines attester to mean both the witness and the witnessed.

The RATS term “Attesting Environment” is closer in spirit to the English definition of the word “attester”.

I suspect this usage came because the distinction between the RATS target environment and attestation environment came after we started using the term attester.

Note that it is OK in RATS for the target environment and attestation environments to be the same.

It’s probably not something we want to change, but here’s one idea:
  Attester — Just the part doing the attesting, the witness, what is called “attesting environment” now
  (Attestation) Target — Just the subject of the claims, the witnessed, what is called “target environment” now
  Attestation Component — The combination of Attester and Target

This came up because of this EAT PR <https://github.com/ietf-rats-wg/eat/pull/148> to tighten up the definition of the term entity to address comments by Hannes. At first I thought an EAT entity  was an attester as defined in RATS Architecture, but clearly it is a target environment. Also, there’s some agreement that EAT will continue to use the term “entity” since it is the “E” in EAT. 

One more thing on the topic. If it were up to me, I’d improve the definition of Attester in RATS architecture to something like this:

A central role performed by a system component [RFC4949] that both produces Evidence and is the subject of the an attestation. The Evidence is used to determine the degree of trust in it to perform some operation or receive some data.

Note that an attester is never a person so the more appropriate RFC 4949 term for it is system component rather than entity.

LL

> On Oct 23, 2021, at 10:31 AM, Laurence Lundblade <[email-masked]> wrote:
> 
> Hi,
> 
> This is a question of clarification.
> 
> Take the example of a mobile phone running Android with a TEE.
> - The Attesting Environment is in the TEE
>   - The TEE has keys that sign Attestation Evidence
>   - The TEE has access to all of Android (but Android has no access to the TEE)
> - The Attestation Evidence it produces includes:
>   - The version, boot and debug state of Android
>   - Measurements (e.g. hashes) of Android system files
>   - Measurements of the running Android kernel
> 
> The Attester includes *all of Android*, right?
> 
> I draw this conclusion based on figure 2 from the RATS Architecture diagram reproduced below. Android is the Target Environment thus making it part of the Attester.
> 
> It will be common for the “Attester" to be the whole device (Phone, laptop, car, washing machine...)  or nearly so. This is a little surprising to me, but seems OK.
> 
> LL
> 
> 
>                     .--------------------------------.
>                     |                                |
>                     |            Verifier            |
>                     |                                |
>                     '--------------------------------'
>                                             ^
>                                             |
>                   .-------------------------|----------.
>                   |                         |          |
>                   |   .----------------.    |          |
>                   |   | Target         |    |          |
>                   |   | Environment    |    |          |
>                   |   |                |    | Evidence |
>                   |   '----------------'    |          |
>                   |                   |     |          |
>                   |                   |     |          |
>                   |          Collect  |     |          |
>                   |           Claims  |     |          |
>                   |                   |     |          |
>                   |                   v     |          |
>                   |                 .-------------.    |
>                   |                 | Attesting   |    |
>                   |                 | Environment |    |
>                   |                 |             |    |
>                   |                 '-------------'    |
>                   |               Attester             |
>                   '------------------------------------'
> 
>                     Figure 2: Two Types of Environments
> 
>

---

From: "Smith, Ned" <[email-masked]>
Date: Fri, 31 Dec 2021 20:18:11 +0000

See inline <NMS>

From: RATS <[email-masked]> on behalf of Laurence Lundblade <[email-masked]>
Date: Wednesday, December 29, 2021 at 6:49 AM
To: rats <[email-masked]>
Subject: Re: [Rats] Often Attester == Device?

However, RATS architecture defines attester to mean both the witness and the witnessed.
<NMS> RATS arch defines roles (Attester, Verifier, Endorser, RVP, RP,…). Roles are functionalities that are performed (e.g., by an entity). The dictionary definition doesn’t distinguish between the thing and the role.

The RATS term “Attesting Environment” is closer in spirit to the English definition of the word “attester”.
<NMS> Agree. It is nevertheless an example of an entity that performs the attester role but qualifies the entity by using ‘environment’ as an abstract term that is a subcomponent / submodule of the Entity.

I suspect this usage came because the distinction between the RATS target environment and attestation environment came after we started using the term attester.
<NMS> Yes and no. It was necessary to decompose the Entity that hosted the Attester Role. We needed an abstract terminology for doing the decomposition. There are several possible alternatives that could have been used such as module/submodule, element/subelement, entity/subentity, component/subcomponent etc… I don’t think there is an obvious right or wrong choice. We went with environment.

Note that it is OK in RATS for the target environment and attestation environments to be the same.
<NMS> There was passionate discussion over this and the resolution was to allow them to be the same. For example, a “root of trust” environment could be argued to be both target and attester environments. However, it could also be argued that an Endorser asserts claims about the RoT env. Hence, it seems to follow the pattern of the target env not being the same as the attesting env. That is the Endorser seems to take the role of Attesting Env and RoT takes the role of Target Env. (but applying this terminology too broadly is difficult to follow IMHO but from a philosophical perspective the argument that target and attesting envs should not be the same can be reasonably asserted.)

<NMS> I don’t think any change is needed either.

This came up because of this EAT PR<https://github.com/ietf-rats-wg/eat/pull/148> to tighten up the definition of the term entity to address comments by Hannes. At first I thought an EAT entity  was an attester as defined in RATS Architecture, but clearly it is a target environment. Also, there’s some agreement that EAT will continue to use the term “entity” since it is the “E” in EAT.
<NMS> I think there are several synonymous or mostly synonymous terms being used between EAT and RATS Arch. EAT uses ‘entity’ as an abstract term for ‘device’ (which is more concrete vs. abstract). If you were familiar with TCG specs, they might use ‘platform’ as something synonymous with ‘device’. The issue with ‘entity’ as an abstraction of either ‘device’ or ‘platform’ is RFC4949 allows it to include other things like people or organizations. Hence, it is overly broad. EAT also uses ‘submodule’ but logically could use ‘module’; both are abstract terminology for a decomposition of ‘entity’ (I think?). For example, the corim draft uses “Module” somewhat equivalently to EAT ‘entity’ and/or EAT ‘submod’. ‘Module’ and ‘submodule’ are abstract terms for component/subcomponent, but component/subcomponent seems somewhat abstract also. ‘environment’ is arguably more abstract than either ‘module’ or ‘component’. For example, an environment could consist of multiple physical components. But for the most part I don’t think any of the terminology uses are right or wrong, they’re all somewhat synonymous to “a place where RATS Role functionality can be performed” (e.g., Attesting Environments) or synonymous to “a place that is acted upon by such functionality” (e.g., Target Environments).

<NMS> I get where you’re going. I’m not passionate about including / excluding the definition as I think the existing wording communicates this concept already. I don’t think it’s a good idea for the arch to include multiple definitions of the same thing. The definition above seems to redefine Evidence. The main difference here is use of the phrase “performed by a system component”. The RATS arch does use the role names in sentences that omit the pedantic “perfomed by a <entity term>”. This was discussed and the design team preferred allowing avoidance of pedantic sentence construction for improved readability (at the risk of potentially being imprecise about the relationship between Roles and Entities).

Note that an attester is never a person so the more appropriate RFC 4949 term for it is system component rather than entity.
<NMS> Agree. I thought there was wording in EAT draft to this effect?
LL

On Oct 23, 2021, at 10:31 AM, Laurence Lundblade <[email-masked]<mailto:[email-masked]>> wrote:

Hi,

LL

                    |                                |

                    |            Verifier            |

                    |                                |

                                            ^

                                            |

                  |                         |          |

                  |   .----------------.    |          |

                  |   | Target         |    |          |

                  |   | Environment    |    |          |

                  |   |                |    | Evidence |

                  |   '----------------'    |          |

                  |                   |     |          |

                  |                   |     |          |

                  |          Collect  |     |          |

                  |           Claims  |     |          |

                  |                   |     |          |

                  |                   v     |          |

                  |                 .-------------.    |

                  |                 | Attesting   |    |

                  |                 | Environment |    |

                  |                 |             |    |

                  |                 '-------------'    |

                  |               Attester             |