Thread (42 messages) 42 messages, 10 authors, 2025-05-02

Re: [PATCH 0/4] tsm: Unified Measurement Register ABI for TVMs

From: Dan Middleton <hidden>
Date: 2025-02-18 16:25:15
Also in: lkml

On 2/14/25 3:59 PM, Xing, Cedric wrote:
On 2/14/2025 10:26 AM, Dave Hansen wrote:
quoted
On 2/14/25 08:19, Xing, Cedric wrote:
quoted
quoted
But if this is for debug, wouldn't these belong better in debugfs? 
Do we
really want to maintain this interface forever? There's no shame in
debugfs.
There are many other (more important/significant) uses besides 
debugging.

For example, any applications that make use of runtime measurements 
must
extend RTMRs, and this interface provides that exact functionality.

Another example, a policy may be associated with a TD (e.g., CoCo) by
storing its digest in MRCONFIGID, so that the policy could be verified
against its digest at runtime. This interface allows applications to
read MRCONFIGID.
The attestation world is horrifically complicated, and I don't
understand the details at _all_. You're going to have to explain this
one to me like I'm five.

Could you also explain how this is different from the hardware and
virtual TPMs and why this doesn't fit into that existing framework? How
are TVMs novel? What justifies all this new stuff?
TVM (TEE VM) is a broad term referring to encrypted/protected VMs on 
various confidential computing (CC) architectures, such as AMD SEV, 
Arm CCA, Intel TDX, etc. Each of these architectures includes hardware 
components for storing software measurements, known as measurement 
registers (MRs). This patch series aims to provide the necessary 
functionality for applications that need to access these MRs.

There are no real/hardware TPMs but only virtual ones in TVMs. Virtual 
TPMs can be built upon the native MRs provided by the underlying CC 
architectures.

If you need more detailed information, I'd be happy to discuss it 
further offline to avoid cluttering the mailing list.
Hi Dave,

Let me try to add more plain language usages.

This ABI lets applications extend events after boot such that they can be
part of the hardware-based attestation.

One common reason is to _identify the workload_ running in the VM.
Typically a VM attestation tells you that you booted to a clean state.
It is much more valuable to a Relying Party to know that they are 
interacting
with a trusted application / workload.
Projects like CNCF Confidential Containers [1] and Attested Containers
[2] would like to do this.

More generally, Relying Parties can track the state of an application in
the attestation. Auctions are common examples of stateful flows where it
can be meaningful to, e.g., attest that a bid arrived before or after the
close of an auction.

[1] 
https://github.com/confidential-containers/guest-components/blob/main/attestation-agent/attester/src/tdx/rtmr.rs
[2] https://github.com/intel/acon

Thanks,
Dan Middleton

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help