Bundle DCAP collateral together with attestation to avoid fetching on the verifier side - #65
Bundle DCAP collateral together with attestation to avoid fetching on the verifier side#65ameba23 wants to merge 5 commits into
Conversation
…JSON for serializing payloads to save space
|
Hey @ameba23, working on some other change I need in here and found this. Don't understand this PR very well but it seems to have cross-concerns with my upcoming PR, so leaving a msg from Claude here for you: Quick context and a status question. (Claude authored)We use Where this one matters to us: if collateral ends up in the evidence payload, our archive So — you wrote you're not suggesting this be merged, and on #58 you lean toward option 1 |
This is a possible solution to #58
In order to avoid needing to do a network fetch to retrieve DCAP collateral during verification, in this PR the attester fetches collateral at the point of DCAP attestation generation, and includes it in the evidence payload.
Since collateral is signed by Intel it does not matter from a trust perspective whether it is provided by the (untrusted) attester or retrieved by the verifier.
The advantage is we do just one PCCS fetch per attestation regardless of how many times it is verified, even if the verifications are by different remote peers.
The disadvantages:
attestationcrate less useful as a general purpose library.For these reasons i am not suggesting we merge this, but i wanted to provide a complete possible solution.
Edit: Looking into this more as @Ruteri thinks this is maybe worthwhile. Since we since merged the PR integrating with
attest, this is going to look quite different as we have both platform metadata and collateral in the attestation evidence payload.An additional concern for including evidence in x509 certificate extension: Rustls caps
Certificatehandshake messages at 64kb. Thats probably ok for the evidence/collateral sizes we see right now, but this could very well be a problem in the future. For this reason, this PR also switches the attestation payload encoding from JSON to scale to significantly decrease payload size. Backwards compatibility for JSON encoded payloads is provided. See #75TODO: