Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MEC Endorsements #174

Merged
merged 17 commits into from
Dec 6, 2023
Merged

MEC Endorsements #174

merged 17 commits into from
Dec 6, 2023

Conversation

henkbirkholz
Copy link
Member

@henkbirkholz henkbirkholz commented Dec 1, 2023

The MEC-E part of #168 including a new record type for the conditions.

Comment on lines 2 to 3
conds: [ + condition-triple-record ]
actions: [ + stateful-environment-record ]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIRC we agreed this would be the other way round, i.e.: the condition expressed in terms of a bunch of stateful-environments, the "actions" as EMTs.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe. Let's fix that nit in the next call.

Comment on lines 1 to 4
condition-triple-record = [
environment-map
measurement-map
]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this needs to be explicitly added to the CDDL fragments' list to be visible

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Until we resolve the discussion on grouping / appraisal context, the scope of the condition-triple-record is (possibly) ambiguous as the condition scope could, in principal, refer to EMTs from a different appraisal context from the context in which the action is to be applied.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed in b01b05f

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so I thought.... actually fixed in c261262

Comment on lines 1213 to 1214
* `env`: the environment to which the endorsed value (conditionally) applies
* `ends`: the endorsed value(s) associated with `env`
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these two should be dropped

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

addressed in f553dd3

nedmsmith and others added 5 commits December 5, 2023 12:58
Co-authored-by: Thomas Fossati <tho.ietf@gmail.com>
Signed-off-by: Thomas Fossati <thomas.fossati@linaro.org>
Co-authored-by: Thomas Fossati <thomas.fossati@linaro.org>
Co-authored-by: Henk Birkholz <henk.birkholz@sit.fraunhofer.de>
Signed-off-by: Thomas Fossati <thomas.fossati@linaro.org>
Co-authored-by: Thomas Fossati <thomas.fossati@linaro.org>
Co-authored-by: Henk Birkholz <henk.birkholz@sit.fraunhofer.de>
Signed-off-by: Thomas Fossati <thomas.fossati@linaro.org>

The order in which MEC Endorsement triples are evaluated is important: different sorting may produce different end-results in the computed ACS.

Therefore, the set of applicable MEC Endorsement triple MUST be topologically sorted based on the criterion that a MEC Endorsement triple is evaluated before another if its Target Environment and Endorsement pair is found in any of the stateful environments of the second triple.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have a feeling that there might be some edge cases where a verifier needs the ability to use a more complex algorithm than topological sorting.
Would it be better to make this a SHOULD?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there must be no ambiguity in the processing rules.
If there are cases where topo-sorting is not the unique criterion (or a completely different criterion is used) we need to describe the steps clearly.

Signed-off-by: Yogesh Deshpande <yogesh.deshpande@arm.com>

Notes:

* In order to give the expected result, the condition must describe the expected context completely.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This note makes me think about a lot of different questions:

  • Is there a case where other conditions might partly describe the expected context?
  • What problems occur if the CoRIM author chooses to only partly describe the context?
  • Why is this triple different from other triples, for example conditional-endorsement-triple-record?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This note makes me think about a lot of different questions:

  • Is there a case where other conditions might partly describe the expected context?
  • What problems occur if the CoRIM author chooses to only partly describe the context?
  • Why is this triple different from other triples, for example conditional-endorsement-triple-record?
    Agree 100% on your last point, we need to make edits to optimise and only put forward one triple, instead of these two which are effectively singular and plural instances of doing the same thing!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This note makes me think about a lot of different questions:

  • Is there a case where other conditions might partly describe the expected context?

hmm, what kind of implicit matching are you thinking of?

  • What problems occur if the CoRIM author chooses to only partly describe the context?

You'd get false positives.

  • Why is this triple different from other triples, for example, conditional-endorsement-triple-record?

This is a superset of conditional-endorsement-triple-record. As such, it makes the other redundant, at a small increase in the serialisation cost.

The "series" one is a bit of a different beast: it does some sort of short-circuited OR, so in terms of condition-matching rules it's substantially different.

Notes:

* In order to give the expected result, the condition must describe the expected context completely.
* The scope of a single MEC triple encompasses an arbitrary amount of environments across all layers in an Attester.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* The scope of a single MEC triple encompasses an arbitrary amount of environments across all layers in an Attester.
* A single MEC triple can be used to make an endorsement conditional on multiple environments across layers or in different modules.

Signed-off-by: Yogesh Deshpande <yogesh.deshpande@arm.com>
henkbirkholz and others added 2 commits December 6, 2023 16:19
Co-authored-by: Yogesh Deshpande <yogesh.deshpande@arm.com>
Co-authored-by: Yogesh Deshpande <yogesh.deshpande@arm.com>
Comment on lines 1 to 4
condition-triple-record = [
environment-map
measurement-map
]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Until we resolve the discussion on grouping / appraisal context, the scope of the condition-triple-record is (possibly) ambiguous as the condition scope could, in principal, refer to EMTs from a different appraisal context from the context in which the action is to be applied.

draft-ietf-rats-corim.md Outdated Show resolved Hide resolved
Notes:

* In order to give the expected result, the condition must describe the expected context completely.
* The scope of a single MEC triple encompasses an arbitrary amount of environments across all layers in an Attester.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The implication of a scope that covers all grouping / appraisal contexts is the EMT expressions must have some aspect that is globally unique (at least within the expected scope). EMT scope should be described as part of the EMT construction and not as a footnote to a particular triple construction.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The implication of a scope that covers all grouping / appraisal contexts is the EMT expressions must have some aspect that is globally unique (at least within the expected scope). EMT scope should be described as part of the EMT construction and not as a footnote to a particular triple construction.

See Issue #176

Signed-off-by: Thomas Fossati <thomas.fossati@linaro.org>
yogeshbdeshpande and others added 2 commits December 6, 2023 15:43
Signed-off-by: Thomas Fossati <thomas.fossati@linaro.org>
@thomas-fossati thomas-fossati merged commit d546b10 into main Dec 6, 2023
2 checks passed
@thomas-fossati thomas-fossati deleted the only-mec branch December 6, 2023 15:57
andrew-draper pushed a commit that referenced this pull request Jan 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants