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 all 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 @@
mec-endorsement-triple-record = [
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) =>
[ + mec-endorsement-triple-record ]
* $$triples-map-extension
}>
33 changes: 32 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 @@ -749,6 +749,11 @@ The following describes each member of the `triples-map`:
Endorsement based on the acceptance of a stateful environment. Described
in {{sec-comid-triple-cond-end}}.

* `mec-endorsement-triple-record` (index 10) Triples describing a series of
Endorsement that are applicable based on the acceptance of a series of
stateful environment records. Described in
{{sec-comid-triple-mec-endorsement}}.

#### Common Types

##### Environment
Expand Down Expand Up @@ -1249,6 +1254,32 @@ applies to all measurements in the triple, including those in `measurement-value
{::include cddl/conditional-endorsement-triple-record.cddl}
~~~

#### Multi-Environment Conditional (MEC) Endorsement Triple {#sec-comid-triple-mec-endorsement}

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

> "IF accepted state matches all `conds` values, THEN every entry in the `endorsements` is added to the accepted state"

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

A `mec-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.

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.

There are scope-related questions that need to be answered. ([^tracked-at] https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/176)

## Extensibility {#sec-extensibility}

The base CORIM schema is described using CDDL {{-cddl}} that can be extended
Expand Down
Loading