kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Graf <graf@amazon.com>
To: "Claudio Carvalho" <cclaudio@linux.ibm.com>,
	"Jörg Rödel" <jroedel@suse.de>,
	"Tom Lendacky" <thomas.lendacky@amd.com>
Cc: <amd-sev-snp@lists.suse.com>, <linux-coco@lists.linux.dev>,
	<kvm@vger.kernel.org>, Carlos Bilbao <carlos.bilbao@amd.com>,
	Klaus Kiwi <kkiwi@redhat.com>
Subject: Re: [ANNOUNCEMENT] COCONUT Secure VM Service Module for SEV-SNP
Date: Wed, 3 May 2023 19:16:04 +0200	[thread overview]
Message-ID: <6890ae22-c3e2-cba3-3ce6-d3f65dacb31d@amazon.com> (raw)
In-Reply-To: <cc22183359d107dc0be58b4f9509c8d785313879.camel@linux.ibm.com>


On 03.05.23 18:51, Claudio Carvalho wrote:

>
> Hi Jorg,
>
> On Wed, 2023-05-03 at 14:26 +0200, Jörg Rödel wrote:
>>>    - Are you open to having maintainers outside of SUSE? There is some
>>>      linux-svsm community concern about project governance and project
>>>      priorities and release schedules. This wouldn't have to be AMD even,
>>>      but we'd volunteer to help here if desired, but we'd like to foster a
>>>      true community model for governance regardless. We'd love to hear
>>>      thoughts on this from coconut-svsm folks.
>> Yes, I am definitely willing to make the project more open and move to a
>> maintainer-group model, no intention from my side to become a BDFL for
>> the project. I just have no clear picture yet how the model should look
>> like and how to get there. I will send a separate email to kick-start a
>> discussion about that.
>>
> Thanks. I would be happy to collaborate in that discussion.
>
>>>    - On the subject of priorities, the number one priority for the
>>>      linux-svsm project has been to quickly achieve production quality vTPM
>>>      support. The support for this is being actively worked on by
>>>      linux-svsm contributors and we'd want to find fastest path towards
>>>      getting that redirected into coconut-svsm (possibly starting with CPL0
>>>      implementation until CPL3 support is available) and the project
>>>      hardened for a release.  I imagine there will be some competing
>>>      priorities from coconut-svsm project currently, so wanted to get this
>>>      out on the table from the beginning.
>> That has been under discussion for some time, and honestly I think
>> the approach taken is the main difference between linux-svsm and
>> COCONUT. My position here is, and that comes with a big 'BUT', that I am
>> not fundamentally opposed to having a temporary solution for the TPM
>> until CPL-3 support is at a point where it can run a TPM module.
>>
>> And here come the 'BUT': Since the goal of having one project is to
>> bundle community efforts, I think that the joint efforts are better
>> targeted at getting CPL-3 support to a point where it can run modules.
>> On that side some input and help is needed, especially to define the
>> syscall interface so that it suits the needs of a TPM implementation.
>>
>> It is also not the case that CPL-3 support is out more than a year or
>> so. The RamFS is almost ready, as is the archive file inclusion[1]. We
>> will move to task management next, the goal is still to have basic
>> support ready in 2H2023.
>>
>> [1] https://github.com/coconut-svsm/svsm/pull/27
>>
>> If there is still a strong desire to have COCONUT with a TPM (running at
>> CPL-0) before CPL-3 support is usable, then I can live with including
>> code for that as a temporary solution. But linking huge amounts of C
>> code (like openssl or a tpm lib) into the SVSM rust binary kind of
>> contradicts the goals which made us using Rust for project in the first
>> place. That is why I only see this as a temporary solution.
>>
>>
> I think the crypto support requires more design discussion since it is required
> in multiple places.
>
> The experience I've had adding SVSM-vTPM support is that the SVSM needs crypto
> for requesting an attestation report (SNP_GUEST_REQUEST messages sent to the
> security processor PSP have to be encrypted with AES_GCM) and the vTPM also
> needs crypto for the TPM crypto operations. We could just duplicate the crypto
> library, or find a way to share it (e.g. vdso approach).
>
> For the SVSM, it would be rust code talking to the crypto library; for the vTPM
> it would be the vTPM (most likely an existing C implementation) talking to the
> crypto library.


With SVSM, we're reintroducing a new way of doing SMM inside virtual 
machines: A higher privilege mode than can transparently run arbitrary 
code at arbitrary times, invisible to the OS.

That means any bug in that code is fatal. TPM implementations may 
receive untrusted inputs from user space. That means we need to confine 
it as strongly as possible: The syscall interface needs to be as minimal 
and static (no dynamic memory allocations, object livecycles, etc) as 
possible. The less memory we share between the TPM implementation and 
anything outside, the better. Any memory sharing is a potential side 
channel attack target (data) or side channel training target (code).

So to fold this into the paragraph above: Please don't overthink / 
overengineer this. Applications should be as self contained as possible. 
No VDSO, no direct linking. Ideally even fully static at boot memory 
allocation.


Alex




Amazon Development Center Germany GmbH
Krausenstr. 38
10117 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 149173 B
Sitz: Berlin
Ust-ID: DE 289 237 879



  reply	other threads:[~2023-05-03 17:16 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-21  9:29 [ANNOUNCEMENT] COCONUT Secure VM Service Module for SEV-SNP Jörg Rödel
2023-03-21 11:09 ` James Bottomley
2023-03-21 12:43   ` Jörg Rödel
2023-03-21 13:43     ` James Bottomley
2023-03-21 15:14       ` Jörg Rödel
2023-03-21 17:48         ` Dr. David Alan Gilbert
2023-03-21 18:50           ` Jörg Rödel
2023-03-21 20:05         ` James Bottomley
2023-03-22  1:29           ` Marc Orr
2023-03-22 17:57             ` Daniel P. Berrangé
2023-03-22  9:15           ` Jörg Rödel
2023-03-22 18:07             ` Daniel P. Berrangé
2023-03-22 18:24               ` Dionna Amalie Glaze
2023-03-21 15:06 ` Dr. David Alan Gilbert
2023-03-21 15:25   ` Jörg Rödel
2023-03-21 16:56     ` Dr. David Alan Gilbert
2023-03-21 19:03       ` Jörg Rödel
2023-03-21 19:53         ` Dr. David Alan Gilbert
2023-03-22  9:19           ` Jörg Rödel
2023-03-22  9:43             ` Alexander Graf
2023-03-22 10:34               ` Dr. David Alan Gilbert
2023-03-22 17:37                 ` Dionna Amalie Glaze
2023-03-22 17:47                   ` Dr. David Alan Gilbert
2023-03-22 21:53                     ` James Bottomley
2023-04-11 19:57 ` Tom Lendacky
2023-04-11 20:01   ` Dionna Amalie Glaze
2023-04-13 16:57   ` James Bottomley
2023-04-14  9:00     ` Jörg Rödel
2023-05-02 23:03 ` Tom Lendacky
2023-05-03 12:26   ` Jörg Rödel
2023-05-03 15:24     ` Dionna Amalie Glaze
2023-05-03 15:43       ` James Bottomley
2023-05-03 16:10       ` Daniel P. Berrangé
2023-05-03 16:51     ` Claudio Carvalho
2023-05-03 17:16       ` Alexander Graf [this message]
2023-05-05 15:34       ` Jörg Rödel
2023-05-05 15:47         ` Daniel P. Berrangé
2023-05-04 17:04     ` James Bottomley
2023-05-05 12:35       ` Christophe de Dinechin
2023-05-06 12:48         ` James Bottomley
2023-05-08  5:16           ` Alexander Graf
2023-05-05 15:02       ` Jörg Rödel

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=6890ae22-c3e2-cba3-3ce6-d3f65dacb31d@amazon.com \
    --to=graf@amazon.com \
    --cc=amd-sev-snp@lists.suse.com \
    --cc=carlos.bilbao@amd.com \
    --cc=cclaudio@linux.ibm.com \
    --cc=jroedel@suse.de \
    --cc=kkiwi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-coco@lists.linux.dev \
    --cc=thomas.lendacky@amd.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;
as well as URLs for NNTP newsgroup(s).