-
Notifications
You must be signed in to change notification settings - Fork 32
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
[WIP] Attestation protocol #44
base: main
Are you sure you want to change the base?
Conversation
c158b33
to
c93f563
Compare
Prepare to use it in other places outside the core protocol. No functional change intended. Signed-off-by: Dov Murik <[email protected]>
No functional change intended. Signed-off-by: Dov Murik <[email protected]>
Introduce a global SERVICES object to register SVSM services and their data, and functionality to serialize the services list to a binary manifest according to the SVSM spec. Signed-off-by: Dov Murik <[email protected]>
Implement the entire body of the attestation protocol with its two calls, according to the SVSM spec. This is still WIP because it still misses: 1. Call to openssl SHA-512 routine to build the report data 2. Actual call to hypervisor to get the attestation report Signed-off-by: Dov Murik <[email protected]>
Handle attestation protocol requests in handle_request(). Make the CORE_QUERY_PROTOCOL return supported versions (1) of the attestation protocol (1). Signed-off-by: Dov Murik <[email protected]>
c93f563
to
9b9deed
Compare
I pushed a v2 of this branch (7 patches) to https://github.com/svsm-vtpm/linux-svsm/tree/attestation-protocol-v2 :
I have a PoC guest linux kernel support of getting the attestation report via SVSM; I implemented it as another ioctl in I succeeded starting a guest and fetching a VMPL0 report via SVSM and a VMPL1 report via "regular" guest message request. |
Update: I published the guest kernel RFC patch series for getting SVSM attestation report It uses the |
... and here is a simple guest userspace program to call the new SNP_SVSM_ATTEST_SERVICES ioctl (defined in the kernel RFC patches mentioned above) and save the responses in local files: |
Implement most of the attestation protocol with its two calls, according to the SVSM spec.
This is still WIP because it still misses:
Once we have these features in linux-svsm I can rebase and plug them into the mocks that I left in
src/protocols/attestation.rs
(functionstodo_sha_512()
andget_snp_attestation_report()
).In order to test this I implemented an attestation SVSM call in OVMF during boot.
I had to modify
AsmVmgExitSvsm
to optionally fill a struct with the response register values. I'll point to these changes soon.