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

Conditional endorsement series triple section reworded #326

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

nedmsmith
Copy link
Collaborator

@nedmsmith nedmsmith commented Oct 15, 2024

Added description to conditional series triple to address issues #310 and #321.
Updated example here to better illustrate a use case.

Added text to address issue #310 for conditional series triple and issue #321
Modified cond series example to better highlight motivating use case.
Fix white space
More realistic use case that could result in multiple entries satisfied by the condition.
fix whitespace.
cddl/examples/comid-series.diag Show resolved Hide resolved
cddl/examples/comid-series.diag Outdated Show resolved Hide resolved
[^issue] https://github.com/ietf-rats-wg/draft-ietf-rats-corim/issues/310
The Conditional Endorsement Series Triple is used to assert endorsed values conditional on various sets of possible measurement values.
Each series entry describes a different possible set of values.
Series entries are ordered so that the set describing the most trustworthy state is evaluated first and least trustworthy state last.
Copy link
Collaborator

Choose a reason for hiding this comment

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

The ordering leads to negative conditions in the head of the rule still. The possible evaluation inconsistency from Issue #321 remains.

If the conditions are mutually-exclusive, then there's no need to order them and the triple is syntactic sugar for multiple normal conditions.
If the conditions are not mutually-exclusive, then you need a way to stratify condition matching to regain logical consistency.

Given that you haven't stated any condition, I don't know what your intention is here.

@nedmsmith
Copy link
Collaborator Author

Additional use case context: Some have characterized the triple as being an optimization of endorsement triples. The way to realize the same semantics using conditional-endorsement-triple is that there will be multiple valid RIMs containing statements about valid SVN ranges. A vendor may increment an SVN when a new image of security sensitive code is released, resulting in multiple valid RIMS in circulation. If at some later point one of the implementations is found to have a vulnerability, the affected RIM(s) can be revoked.

Nevertheless, there can be a range of RIMS that declare multiple valid SVN values. The RIMS could match the same component resulting in multiple ACS entries but with different matching reference SVN values.

The question then is how should these values be processed and by whom? Ideally, the best answer should be selected, because there will be additional endorsement statements that assert additional information based on SVN state. This approach distributes state across multiple RIMS resulting in multiple ACS entries that then needs to be post-processed to find the "best" correct answer.

Comparing this to the series triple. One RIM can be used to communicate the information that would otherwise be spread across in multiple RIMs and avoids adding, unnecessarily, multiple correct answers to the ACS that then need to be filtered in some way to find the best answer.

Any vendor that relies on SVNs to manage security change control will likely need this capability. If they don't proactively increment SVNs as part of their release process, then they will need to release / install updates that update the SVN. The alternative is they merely have to revoke an already issued RIM.

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.

3 participants