Skip to content

executables-related claims granularity #28

@thomas-fossati

Description

@thomas-fossati

Codepointing the Executables Bucket

AR4SI's State of Art and CCA mappings

Currently, the Executables bucket defines 5 codepoints:

  • two affirming
  • two warnings
  • one contraindicated

While mapping AR4SI to CCA, we identified a few problems with the current state of affairs in the Executable bucket:

  • the codepoints are not sufficient to cover the cases we need to potentially describe,
  • the conflation of boostrap and runtime executables complicates the expression of intent

Verifier Statements about Executables

Starting from first principles, the verifier needs to make the following statements to a RP (or a downstream verifier):

  • ✅ : "checks done, all components are known-good"
  • ❌ : "checks done, at least one component is known-bad"
  • ❓ : "checks done, at least one component is unrecognized"

To these three, we need to add a fourth "➖", meaning "no checks done" - either because no executables pop up in evidence, or because the verifier is not authoritative for the executable bits of that piece of evidence.

The possible combinations of the three main "checks done" statements are:

Semantics
1 0 0 all recognized and known-good
0 0 1 all recognized, at least one known-bad
0 1 0 no known-bad, at least one unrecognized
0 1 1 at least one known-bad and at least one unrecognized

Keeping all the eggs in one bucket

If the Executables bucket needs to carry statements about boot and runtime executables, since there are 4 possible of them, it means their cross-product will burn a good chunk of the standard available codepoints. This is not ideal.

The table below tries to capture all combined boot+runtime statements and assign them a codepoint1.
Note that we also need to cater for Runtime not being checked, which adds 4 other codepoints, for a total of 20.
That looks like a lot, especially considering that the Contraindicated space is smaller than the Warning space (30 vs 60).

Boot Runtime AR4SI codepoint
2
+1
+2
❌❓ +3
+4
+5
+6
❌❓ +7
+8
+9
+10
❌❓ +11
❌❓ +12
❌❓ +13
❌❓ +14
❌❓ ❌❓ +15
+16
+17
+18
❌❓ +19

Splitting the Executable bucket in two

If instead we split the Executables bucket into separate Boot and Runtime buckets, the codepoints pressure drops dramatically:

Boot/Runtime Executable AR4SI codepoint
2
+1
+2
❌❓ +3

In this scenario, the ➖ (not checked) condition, would result in the corresponding bucket being missing or 0-scored.

Footnotes

  1. All codepoints are computed as deltas from a warning_tier_offset and contraindicated_tier_offset still TBD.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions