All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jason A. Donenfeld" <Jason@zx2c4.com>
To: "James E . J . Bottomley" <jejb@linux.ibm.com>
Cc: "Daniel P. Berrangé" <berrange@redhat.com>,
	"QEMU Developers" <qemu-devel@nongnu.org>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"DOV MURIK" <Dov.Murik1@il.ibm.com>
Subject: Re: [PATCH] x86: fix q35 kernel measurements broken due to rng seeding
Date: Wed, 1 Feb 2023 10:12:45 -0500	[thread overview]
Message-ID: <CAHmME9p0n12uw_m1CBzhaGG8irYnZ55i6mJCAN0hKSL1mhG37w@mail.gmail.com> (raw)
In-Reply-To: <bac451554357676b073d589f7668b517020d9a4e.camel@linux.ibm.com>

[-- Attachment #1: Type: text/plain, Size: 2762 bytes --]

This patch is not needed. It is already fixed in a pending pull. Do not
merge.

On Wed, Feb 1, 2023, 09:57 James Bottomley <jejb@linux.ibm.com> wrote:

> On Wed, 2023-02-01 at 14:35 +0000, Daniel P. Berrangé wrote:
> > On Wed, Feb 01, 2023 at 08:57:10AM -0500, James Bottomley wrote:
> > > The origin commit for rng seeding 67f7e426e5 ("hw/i386: pass RNG
> > > seed
> > > via setup_data entry") modifies the kernel image file to append a
> > > random seed.  Obviously this makes the hash of the kernel file
> > > non-deterministic and so breaks both measured and some signed
> > > boots.
> >
> > I recall raising that at the time
> >
> >   https://lists.gnu.org/archive/html/qemu-devel/2022-08/msg00710.html
> >
> > and Jason pointed me to a followup which I tested and believe
> > fixed it for SEV:
> >
> >   https://lists.gnu.org/archive/html/qemu-devel/2022-08/msg00601.html
> >
> > but it doesn't look like that second patch ever merged. We went
> > through so many patches I think it probably got obsoleted by
> > something else, and no one rechecked SEV again.
>
> The kernel file problem is a pretty huge one.  OVMF lays it down on an
> internal file system and without the second patch, it now contains
> random junk at the end.  Anything that hashes the whole file (which
> includes not only the measured direct boot but also grub signatures and
> probably other bootloader signing mechanisms) will have an issue.
>
> > > The commit notes it's only for non-EFI (because EFI has a different
> > > RNG seeding mechanism) so, since there are no non-EFI q35 systems,
> > > this should be disabled for the whole of the q35 machine type to
> > > bring back deterministic kernel file hashes.
> >
> > SeaBIOS is the default firmware for both q35 and i440fx. The
> > majority of systems using q35 will be non-EFI today, and that
> > is what the random seed was intended to address. I don't think
> > we can just disable this for the whole of q35.
> >
> > When you say it breaks measured / signed boots, I presume you
> > are specifically referring to SEV kernel hashes measurements ?
> > Or is there a more general problem to solve ?
>
> No it generally breaks measured/signed boots because it adds random
> junk to the kernel file.  The second patch will fix this if you apply
> it because setup data isn't measured or signed (yet ... however see the
> linux-coco debate about how it should be).
>
> I also note there was a v3 of the patch and considerable discussion
> saying it couldn't work:
>
> https://lore.kernel.org/qemu-devel/20220804230411.17720-1-Jason@zx2c4.com/
>
> Which is likely why it never went in ... although the discussion does
> seem to resolve towards the end.
>
> James
>
>

[-- Attachment #2: Type: text/html, Size: 3693 bytes --]

  reply	other threads:[~2023-02-01 15:13 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-01 13:57 [PATCH] x86: fix q35 kernel measurements broken due to rng seeding James Bottomley
2023-02-01 14:35 ` Daniel P. Berrangé
2023-02-01 14:56   ` James Bottomley
2023-02-01 15:12     ` Jason A. Donenfeld [this message]
2023-02-01 15:14     ` Daniel P. Berrangé
2023-02-01 15:10 ` Jason A. Donenfeld
2023-02-01 15:24   ` James Bottomley
2023-02-01 16:41     ` Dov Murik
2023-02-01 16:50     ` Peter Maydell
2023-02-01 19:35       ` James Bottomley
2023-02-01 17:51     ` Jason A. Donenfeld
2023-02-01 20:38       ` James Bottomley
2023-02-01 20:48         ` Jason A. Donenfeld
2023-02-02 14:38           ` James Bottomley
2023-02-02 15:03             ` H. Peter Anvin
2023-02-02 15:17               ` James Bottomley
2023-02-02 18:56                 ` H. Peter Anvin
2023-02-02 19:02                 ` H. Peter Anvin
2023-02-02 19:13                 ` H. Peter Anvin

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=CAHmME9p0n12uw_m1CBzhaGG8irYnZ55i6mJCAN0hKSL1mhG37w@mail.gmail.com \
    --to=jason@zx2c4.com \
    --cc=Dov.Murik1@il.ibm.com \
    --cc=berrange@redhat.com \
    --cc=jejb@linux.ibm.com \
    --cc=kraxel@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.