linux-coco.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <graf@amazon.com>
To: James Bottomley <James.Bottomley@HansenPartnership.com>,
	"Reshetova, Elena" <elena.reshetova@intel.com>,
	Dan Middleton <dan.middleton@linux.intel.com>,
	"linux-coco@lists.linux.dev" <linux-coco@lists.linux.dev>,
	"Kalra, Ashish" <ashish.kalra@amd.com>
Subject: Re: Confidential Computing call May 10: RTMR ABI & TEE I/O
Date: Mon, 10 Jun 2024 14:09:27 +0200	[thread overview]
Message-ID: <e1a22a93-bf58-4aa7-a94e-9d2907f2ef02@amazon.com> (raw)
In-Reply-To: <88ca715e6234bd7d09cee1b0cb7682cc3e15ed3a.camel@HansenPartnership.com>

Hey James,

On 08.06.24 16:41, James Bottomley wrote:
>
> On Fri, 2024-06-07 at 18:05 +0200, Alexander Graf wrote:
>> On 07.06.24 16:46, Reshetova, Elena wrote:
>>>> Hi Dan,
>>>>
>>>> On 03.05.24 21:55, Dan Middleton wrote:
>>>>> Hi
>>>>> Next Friday, May 10th at 9am PDT, we have a Confidential
>>>>> Computing devsec / BoF / Discussion Group / SIG call. Everyone
>>>>> is welcome.
>>>>>
>>>>> Tentative agenda includes RTMR ABI v3 direction and TEE I/O
>>>>> next steps.
>>>> I haven't seen an email for today's call, so let me throw my
>>>> topic suggestion here:
>>>>
>>>> I would like to talk about "confidential kexec" today: A kexec
>>>> mechanism that allows you to destroy the confidential VM you're
>>>> in and recreate a new one based on a payload of the old one. With
>>>> that, we would have a very easy and clean mechanism to bootstrap
>>>> a VM into a fully measured  new execution stack.
>>> Interesting topic, I am curious of the requirements!
>>> Sounds like you want a local fast migration, i.e. a migration to a
>>> newCoCo VM on the same platform? I guess the difference would be
>>> the absenceof the online migration phase since you are probably ok
>>> stopping the original CoCo VM first.
>>
>> Almost. I basically want the VM to be able to provide a new early
>> measurement. So the opposite of migration: With migration, I want to
>> preserve previous state. Here, the main motivation is to get rid of
>> any previous state except the new "seed" for the target VM.
>>
>> There are 2 main use cases for this:
>>
>> 1) Measurement purely based on initial launch measurements. If the
>> full OS is inside an initramfs, we can provide
>> firmware+kernel+initramfs as "seed". The CoCo env would measure
>> everything and I have an easy path to validate authenticity of my
>> target environment. I also have an easy path  to update the VM and
>> then measure without replaying any event logs.
> With an SVSM (that you're not replacing, so the initial launch


That assumes you want an SVSM in the first place. I

   a) Don't think you really need to and
   b) Believe it should come from the customer, not the cloud provider, 
as it's the highest privileged piece of code in your VM


For both, the easy solution is to allow a customer to reboot into their 
own "initial launch measurement" from a currently running VM.

> measurement remains valid) this one is easy: it can reinit everything
> (including the vTPM) and redo a measured boot.  So here you have
> exactly the same measurements as though it were a clean boot.
>
>> 2) Update SVSM (or similar). Often today, you want to implement TPMs
>> and inside a higher privileged component that is really part of the
>> VM. To update it, you could use in-VM mechanisms, but that leaves a
>> path where you boot with an old version -> exploit -> update to the
>> new. If we could "reboot"/kexec into a new SVSM, we could reason
>> about its confidentiality with a 100% guarantee.
> This one's a bit more difficult because the initial launch measurement
> becomes invalid if the SVSM is replaced.  What I'd suggest happens here
> is that the SVSM reinit everything (including the vTPM), then measure a
> "replace SVSM" record containing both the old and new SVSM measurements
> and then do a measured boot.  That way an attesting system can tie the
> old launch measurement to the updated SVSM.


This only works if the SVSM doesn't have any security vulnerabilities. 
If it does, you can't trust the measurement anymore and your whole 
update path is out of the window. For CoCo, we need to make sure that 
there is a viable way for users to run secure versions of all code 
without depending on the merit of their infrastructure provider, no?


Alex




Amazon Web Services Development Center Germany GmbH
Krausenstr. 38
10117 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 257764 B
Sitz: Berlin
Ust-ID: DE 365 538 597

  reply	other threads:[~2024-06-10 12:09 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-03 19:55 Confidential Computing call May 10: RTMR ABI & TEE I/O Dan Middleton
2024-05-07 16:17 ` James Bottomley
2024-05-13  5:10 ` Samuel Ortiz
2024-06-07 14:24 ` Alexander Graf
2024-06-07 14:46   ` Reshetova, Elena
2024-06-07 16:05     ` Alexander Graf
2024-06-08 14:41       ` James Bottomley
2024-06-10 12:09         ` Alexander Graf [this message]
2024-06-12 12:48           ` James Bottomley
2024-06-12 11:19       ` Reshetova, Elena
2024-06-12 11:49         ` Alexander Graf
2024-06-12 13:19           ` Reshetova, Elena
2024-06-12 21:18             ` Steve Rutherford

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=e1a22a93-bf58-4aa7-a94e-9d2907f2ef02@amazon.com \
    --to=graf@amazon.com \
    --cc=James.Bottomley@HansenPartnership.com \
    --cc=ashish.kalra@amd.com \
    --cc=dan.middleton@linux.intel.com \
    --cc=elena.reshetova@intel.com \
    --cc=linux-coco@lists.linux.dev \
    /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;
as well as URLs for NNTP newsgroup(s).