-
Notifications
You must be signed in to change notification settings - Fork 53
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
ELF payload: what goes into MRTD and RTMRs? #617
Comments
It seems a bug - https://github.com/confidential-containers/td-shim/blob/main/td-shim/src/bin/td-shim/main.rs#L225 - to unconditionally extend payload to RTMR1. If payload is already measured by TDMR, then this step should be skipped. |
PR #618 is submitted to fix the duplicate measurements.
@dimakuv seems you are using the So in summary:
You can try to enable the feature by adding |
@dimakuv , could you please take a look at the patch, to see if it resolved your problem? |
@jyao1 @gaojiaqi7 I tried the PR #618:
I do the exact same steps as I described above. Unfortunately, I don't see any improvement:
As you can notice, both MRTD and RTMR[1] are updated. P.S. I didn't test |
Missed the situation. It should work now. Thanks. |
The latest commit seems to work fine:
Now, MRTD is updated when the payload is modified. But RTMR[1] stays the same. |
@dimakuv , thank you very much to confirm that. |
I have my ELF payload. I link it with TD-Shim firmware like this:
The resulting binary is 16MB in size:
Then this resulting binary is fed to QEMU to start a TDX VM:
I'm trying to make sense of the MRTD and RTMR measurements that I observe:
I understand why RTMRs 2 and 3 are all-zeros. VMM, TD-Shim, and my payload do not touch these RTMRs.
I think I understand why
RTMR[0]
is a constant -- it's because I run QEMU with the same parameters (like the list of exposed devices), soRTMR[0]
reflects the VMM inputs (the TD Hob generated by VMM and handed over to TD-Shim).But I'm confused with
MRTD
andRTMR[1]
:RTMR[1]
reflects Payload and PayloadParam? But the payload binary was already measured into MRTD; why is it also measured intoRTMR[1]
? Why isRTMR[1]
changed in my experiment?-append
to add kernel arguments.Your spec says this:
I'm confused by "based upon different use cases". What does it mean exactly? Who and how decides whether the payload is measured into MRTD? Is it decided by the VMM, based on the combination of
-bios
and-kernel
cmdline arguments?The text was updated successfully, but these errors were encountered: