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
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions cddl/corim-frags.mk
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ COMID_FRAGS += coswid-triple-record.cddl
COMID_FRAGS += crypto-key-type-choice.cddl
COMID_FRAGS += domain-dependency-triple-record.cddl
COMID_FRAGS += domain-membership-triple-record.cddl
COMID_FRAGS += mec-endorsement-triple-record.cddl
COMID_FRAGS += domain-type-choice.cddl
COMID_FRAGS += endorsed-triple-record.cddl
COMID_FRAGS += entity-map.cddl
Expand Down
4 changes: 4 additions & 0 deletions cddl/mec-endorsement-triple-record.cddl
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
multi-env-conditional-endorsement-triple-record = [
henkbirkholz marked this conversation as resolved.
Show resolved Hide resolved
conds: [ + stateful-environment-record ]
endorsements: [ + endorsed-triple-record ]
]
2 changes: 2 additions & 0 deletions cddl/triples-map.cddl
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,7 @@ triples-map = non-empty<{
[ + conditional-endorsement-series-triple-record ]
? &(conditional-endorsement-triples: 9) =>
[ + conditional-endorsement-triple-record ]
? &(mec-endorsement-triples: 10) =>
[ + multi-env-conditional-endorsement-triple-record ]
henkbirkholz marked this conversation as resolved.
Show resolved Hide resolved
* $$triples-map-extension
}>
28 changes: 27 additions & 1 deletion draft-ietf-rats-corim.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ informative:
seriesinfo: Version 1.0, Revision 0.19
date: July 2020
target: https://trustedcomputinggroup.org/wp-content/uploads/DICE-Layering-Architecture-r19_pub.pdf
IANA.concise-software-identifier: coswid-reg
IANA.coswid: coswid-reg
SPDM:
title: Security Protocol and Data Model (SPDM)
author:
Expand Down Expand Up @@ -1186,6 +1186,32 @@ Evidence.
{::include cddl/domain-membership-triple-record.cddl}
~~~



#### Multi-Environment Conditional (MEC) Endorsements Triple {#sec-comid-triple-mec-endorsements}
thomas-fossati marked this conversation as resolved.
Show resolved Hide resolved

The semantics of the Multi-Environment Conditional (MEC) Endorsements Triple is as follows:

> "IF accepted state matches the `cond` value, THEN `env` is associated with the endorsed value(s) `ends`."
yogeshbdeshpande marked this conversation as resolved.
Show resolved Hide resolved
thomas-fossati marked this conversation as resolved.
Show resolved Hide resolved

~~~ cddl
{::include cddl/mec-endorsement-triple-record.cddl}
~~~

A `multi-env-conditional-endorsement-triple-record` has the following parameters:

* `conds`: all target environments, along with a specific state, that need to match `state-triples` entries in the ACS for the endorsement(s) to apply
* `endorsements`: endorsements that are added to the ACS `state-triples` if all `conds` match.

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.


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.

* 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

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.


#### CoMID-CoSWID Linking Triple {#sec-comid-triple-coswid}

A CoSWID triple relates reference measurements contained in one or more CoSWIDs
Expand Down
Loading