-
Notifications
You must be signed in to change notification settings - Fork 72
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
Compositional Notion On Attestation Types #2
Comments
There are two simple, existing solutions:
This feature request is about cases where the above solutions won't work. Theoretical use cases (if there are more, please add them):
My inclination is to defer this until we have significant real-world examples where existing solutions won't work. |
I wanted to bump this issue since I've been thinking about nested predicates as well as capturing attestation dependencies for my work on CDI. Since our goal is to provide fine-grained application level attestations about artifacts with corresponding evidence (which itself may consist of other types of attestations), I specifically have the need for capturing nested predicates, or at least references to other attestation objects. Let me give a more concrete example: If I then additionally want to attest to the assertion "this binary contains buffer guard variables", I might do this by showing that the binary was built with gcc v9 using the Maybe this is still too theoretical a use case, but since part of my work on CDI is to enable the use of TEEs for builds and such complex application-level attestations about artifacts, this is an issue I'm actively looking into right now. So, I think getting some feedback from this community as to what predicate identifiers or references could make sense for in-toto would be helpful so I can take that into consideration as I develop an in-toto compatible predicate schema for CDI. |
My inclination is to consider attestations immutable and reference them by hash. |
I tend to agree that referencing other attestations by hash makes a lot of sense. The only other question then is, how do we find this attestation if the only reference we receive is the hash? I think there's going to have to be some kind of location URI or some other info to resolve the referenced attestation. For example, if the referenced attestation is stored in a Rekor instance, we should be able point to that address. |
Separate, but related question. It seems like there is at least a potential ITE in here, which is this notion of cross-attestation references. Is this something that's worth drafting up at this point? And it seems like if we were to add support for signing a list of predicates under a single attestation generated within a single step (which is not the same thing as a bundle), this would be part of the ITE-6 spec? Or does this warrant a separate ITE that enhances ITE-6? In both of these cases, it might make sense to push ITE-6 towards acceptance before adding support for composed/nested attestations and references. |
I suggest that we move this to slsa-framework/slsa#269. My feeling is that we should always have some other identifier/URI in addition to a hash. You don't just get a blob of data out of nowhere. You have some idea of what it is.
I think it should at least be documented. I don't know if it needs a full-blown ITE. @SantiagoTorres thoughts?
I think we should expand the attestation format (Statement layer) to support this as a first-class concept. Again, I don't know if it need a separate ITE. |
@SantiagoTorres @MarkLodato The general consensus for multiple attestations about a subject is to use a bundle. With the new ResourceDescriptor type (introduced in #143), we can embed pointers to attestations within other predicates. Do we think that the intent behind this issue is covered now? |
I'm good closing it. |
It'd be nice to describe a strategy for different types of attestations within the same action.
Should we have these two types of attestations live under the same object? or would they be separate attestations attached to the same action. I.e., you could have 1 subject with multiple predicates.
F.e., Having a provenance type that includes a measured boot record:
This way, we would be able to know provenance information of the build + information about the host's integrity.
The text was updated successfully, but these errors were encountered: