Re: [PATCH v7 0/5] Allow guest access to EFI confidential computing secret area

From: James Bottomley
Date: Tue Feb 01 2022 - 10:06:27 EST


On Tue, 2022-02-01 at 15:41 +0100, Greg KH wrote:
> On Tue, Feb 01, 2022 at 09:24:50AM -0500, James Bottomley wrote:
> > [cc's added]
> > On Tue, 2022-02-01 at 14:50 +0100, Greg KH wrote:
[...]
> > > You all need to work together to come up with a unified place for
> > > this and stop making it platform-specific.
> >
> > I'm not entirely sure of that. If you look at the differences
> > between EFI variables and the COCO proposal: the former has an
> > update API which, in the case of signed variables, is rather
> > complex and a UC16 content requirement. The latter is binary data
> > with read only/delete. Plus each variable in EFI is described by a
> > GUID, so having a directory of random guids, some of which behave
> > like COCO secrets and some of which are EFI variables is going to
> > be incredibly confusing (and also break all our current listing
> > tools which seems somewhat undesirable).
> >
> > So we could end up with
> >
> > <common path prefix>/efivar
> > <common path prefix>/coco
>
> The powerpc stuff is not efi. But yes, that is messy here. But why
> doesn't the powerpc follow the coco standard?

There is no coco standard for EFI variables. There's only a UEFI
variable standard which, I believe, power tries to follow in some
measure since the variables are mostly used for its version of secure
boot. Certainly you're either a power or UEFI platform but not both,
so they could live at the same location ... that's not true with the
coco ones. I added the cc's to see if there are other ideas, but I
really think the use cases are too disjoint.

As Daniel has previously proposed, it might be possible to unify the
power and UEFI implementations ... useful if we want them to respond to
the same tooling, but we'll do that by giving them the same EFI
semantics. The semantics and source of the coco secrets will still be
immutable and completely alien to whatever backend does the non
volatile power/efi authenticated variables, so we'll still need two
different backends and then it's just a question of arguing about path,
which doesn't make sense as a blocker.

> > To achieve the separation, but I really don't see what this buys
> > us. Both filesystems would likely end up with different backends
> > because of the semantic differences and we can easily start now in
> > different places (effectively we've already done this for efi
> > variables) and unify later if that is the chosen direction, so it
> > doesn't look like a blocker.
> >
> > > Until then, we can't take this.
> >
> > I don't believe anyone was asking you to take it.
>
> I was on the review list...

You raised a doc/API concenrn. I think you were on the review list to
ensure it got addressed.

James