From: "Xing, Cedric" <cedric.xing@intel.com>
To: Alexander Graf <graf@amazon.com>,
Dan Williams <dan.j.williams@intel.com>,
Samuel Ortiz <sameo@rivosinc.com>,
James Bottomley <James.Bottomley@HansenPartnership.com>,
Lukas Wunner <lukas@wunner.de>,
Dionna Amalie Glaze <dionnaglaze@google.com>,
Qinkun Bao <qinkun@google.com>,
Mikko Ylinen <mikko.ylinen@linux.intel.com>,
Kuppuswamy Sathyanarayanan
<sathyanarayanan.kuppuswamy@linux.intel.com>
Cc: <linux-kernel@vger.kernel.org>, <linux-coco@lists.linux.dev>
Subject: Re: [PATCH RFC 0/3] tsm: Unified Measurement Register ABI for TVMs
Date: Mon, 9 Sep 2024 09:55:35 -0500 [thread overview]
Message-ID: <b1965018-6663-4bf5-b8e0-8210d0429333@intel.com> (raw)
In-Reply-To: <10ffa4f1-e3f9-4b7d-9a6f-e4dd843f6d44@amazon.com>
Hi Alex,
Thanks for you comments!
On 9/8/2024 12:37 PM, Alexander Graf wrote:
> Hey Cedric,
>
> On 08.09.24 06:56, Cedric Xing wrote:
>> NOTE: This patch series introduces the Measurement Register (MR) ABI,
>> and is
>> largely a continuation of Samuel Ortiz’s previous work on the RTMR ABI
>> [1].
>>
>> This patch series adds a unified interface to TSM core for confidential
>> computing (CC) guest drivers to provide access to measurement
>> registers (MRs),
>> which are essential for relying parties (RPs) to verify the integrity
>> of the
>> computing environment. The interface is structured around
>> `struct tsm_measurement_provider`, which holds an array of
>> `struct tsm_measurement_register` and includes operations for reading and
>> updating MRs.
>>
>> The MRs come in two varieties: static and runtime. Static MRs are
>> determined at
>> the TEE VM (TVM) build time and capture the initial memory image or the
>> configuration/policy specified by the TVM's owner. In contrast,
>> Runtime MRs
>> (RTMRs) start with known values, such as all zeros, at TVM build time
>> and are
>> extended with measurements of loaded code, data, configuration, or
>> executed
>> actions by the TVM guest during runtime.
>
>
> Is there a particular reason to treat runtime and static measurements
> separately? In Nitro Enclaves (which I still need to add tsm integration
> for), both are simply NSM PCRs. "Static" measurements get locked by the
> initial boot code. "Runtime" measurements can get locked by guest code
> later in the boot process. But technically, both are the same type of
> measurement.
>
My apologies for the confusion! They are in fact treated in the same way
from the CC guest driver's perspective.
Here I meant to describe that static and runtime MRs have different
properties (like "locked" as you mentioned) so in order to treat them in
the same way, we'd have to define the properties in code (i.e., `enum
tsm_measurement_register_flag` in include/linux/tsm.h).
> In fact, other attributes like an additional "hash_algo" to the
> measurement itself can be useful in general. If the underlying
> infrastructure allows for a generic event log mechanism, having that
> easily available here is useful too.
>
`hash_algo` is indeed a member of `struct tsm_measurement_register`.
> So I don't really understand why we would treat static and runtime
> measurements differently. Can't we just make all of them directories and
> indicate whether they are (im-)mutable via a file?
>
Distinguishing them in the user interface makes enumeration of RTMRs
easier. Also, there are RTMR specific artifacts that static MRs don't
have. The most obvious is the `event_log`. `hash_algo` is less obvious
but it is in fact applicable to RTMRs only (the only thing that a static
MR has is its value). Adding those to static MRs would confuse users.
-Cedric
next prev parent reply other threads:[~2024-09-09 14:55 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-08 4:56 Cedric Xing
2024-09-08 4:56 ` [PATCH RFC 1/3] tsm: Add TVM Measurement Register Support Cedric Xing
2024-09-08 4:56 ` [PATCH RFC 2/3] tsm: Add RTMR event logging Cedric Xing
2024-09-08 4:56 ` [PATCH RFC 3/3] tsm: Add TVM Measurement Sample Code Cedric Xing
2024-09-09 15:14 ` Jeff Johnson
2024-09-09 15:20 ` Xing, Cedric
2024-09-12 12:28 ` James Bottomley
2024-09-14 16:36 ` Xing, Cedric
2024-09-14 17:10 ` James Bottomley
2024-09-15 4:53 ` Xing, Cedric
2024-10-24 17:21 ` Mikko Ylinen
2024-09-08 17:37 ` [PATCH RFC 0/3] tsm: Unified Measurement Register ABI for TVMs Alexander Graf
2024-09-09 14:55 ` Xing, Cedric [this message]
2024-09-10 7:47 ` Alexander Graf
2024-09-10 18:07 ` Xing, Cedric
2024-09-10 17:09 ` Jean-Philippe Brucker
2024-09-11 4:01 ` Xing, Cedric
2024-09-11 6:56 ` Alexander Graf
2024-09-12 15:43 ` Xing, Cedric
2024-09-13 9:43 ` Alexander Graf
2024-09-11 12:06 ` James Bottomley
2024-09-11 13:46 ` Qinkun Bao
2024-09-11 14:10 ` James Bottomley
2024-09-12 3:23 ` Xing, Cedric
2024-09-12 12:15 ` James Bottomley
2024-09-12 19:00 ` Xing, Cedric
2024-09-13 12:55 ` James Bottomley
2024-09-15 4:31 ` Xing, Cedric
2024-09-13 12:58 ` James Bottomley
2024-09-15 5:14 ` Xing, Cedric
2024-09-11 23:29 ` Dan Williams
2024-09-11 23:36 ` Dan Williams
2024-09-12 9:25 ` Jean-Philippe Brucker
2024-09-12 10:03 ` Christophe de Dinechin
2024-09-12 11:02 ` Jean-Philippe Brucker
2024-09-13 19:42 ` Xing, Cedric
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=b1965018-6663-4bf5-b8e0-8210d0429333@intel.com \
--to=cedric.xing@intel.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=dan.j.williams@intel.com \
--cc=dionnaglaze@google.com \
--cc=graf@amazon.com \
--cc=linux-coco@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=lukas@wunner.de \
--cc=mikko.ylinen@linux.intel.com \
--cc=qinkun@google.com \
--cc=sameo@rivosinc.com \
--cc=sathyanarayanan.kuppuswamy@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®