[Draft] Expose unprotected headers, additional protected headers and payload to policy #297
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Illustrative PR for the purpose of discussion, showing:
test_uhdr_policy
,test_payload_policy
)did:x509
issuer, for attested payloads (test_cnf_kid
)tss
map in protected headers for attestation and collateral (test_tss_map
)test_attestation_verification
)Note that unprotected headers must be only be used with great care in policy. It is necessary to authenticate them against either a trust anchor, or against a cryptographically secure fingerprint in the protected header. Using un-authenticated unprotected headers as inputs otherwise compromises the ability to audit policy execution.
The following protected headers are added to enable signing experiments:
CWT_Claims(15).cnf(8).kid(3)
(https://www.rfc-editor.org/rfc/rfc8747.html#name-confirmation-claim)A "tss" map with:
"tss" . "attestation"
"tss" . "snp_endorsements"
"tss" . "uvm_endorsements"
CWT_Claims.cnf.kid
lets us bindx5chain[0]
(PEM for now) andreport_data
in the attestation. We probably want to useCWT_Claims.cnf.COSE_Key
ultimately, because the security properties will be same but the messages will be cleaner and X.509-free, but that requires a bit of refactoring.