From: "Daniel P. Berrangé" <berrange@redhat.com>
To: "Cristian Rodríguez" <cristian@rodriguez.im>
Cc: "open list:All patches CC here" <qemu-devel@nongnu.org>,
"Jason A. Donenfeld" <Jason@zx2c4.com>
Subject: Re: [PATCH] crypto/gcrypt: prefer kernel as direct source of entropy
Date: Mon, 22 Jan 2024 20:19:42 +0000 [thread overview]
Message-ID: <Za7N3pIUXQB4lAkl@redhat.com> (raw)
In-Reply-To: <CAPBLoAfbj51gFZ-=41jYHytPBvM_AagsB1ixySPpwr5Y4SPJpA@mail.gmail.com>
On Mon, Jan 22, 2024 at 05:08:16PM -0300, Cristian Rodríguez wrote:
> On Mon, Jan 22, 2024 at 11:48 AM Daniel P. Berrangé <berrange@redhat.com>
> wrote:
>
> > On Fri, Jan 19, 2024 at 05:39:40PM -0300, Cristian Rodríguez wrote:
> > > gcrypt by default uses an userspace RNG, which cannot know
> > > when it is time to discard/invalidate its buffer
> > > (suspend, resume, vm forks, other corner cases)
> > > as a "when to discard" event is unavailable to userspace.
> >
> > So in this scenario QEMU is impacted when QEMU is running inside
> > another VM. ie the L0 QEMU "forks" the guest, and the L1 QEMU
> > needs to re-init its RNG.
> >
> > > Set GCRYCTL_SET_PREFERRED_RNG_TYPE to GCRY_RNG_TYPE_SYSTEM
> > > which must be done before the first call to gcry_check_version()
> >
> > QEMU is just one out of many applications that use libgcrypt and
> > I see no reason why QEMU should be special cased in this respect.
> >
> > Updating each application to hardcode use of GCRY_RNG_TYPE_SYSTEM
> > does not feel like a good solution. If this was a good default
> > to use everywhere, then gcrypt should have set this default
> > already, rather than requiring every app to solve the forking
> > problem itself.
> >
>
> this default is because either other OSs had problems or in the past the
> linux rng was not as performant as it is right now,
> now it outputs 100's of MB per second on a potato.
>
> Updating every app that uses gcrypt is not really practical
> > in terms of time investment anyway.
> >
>
> Yeah, it will be pretty time consuming so I have so far only sent a few
> patches for things I consider important.
>
> >
> > If gcrypt doesn't want to make this its global default, then
> > I would suggest that gcrypt should make its default be
> > configurable. I see from its docs:
> >
> >
> > https://gnupg.org/documentation/manuals/gcrypt/Configuration.html#Configuration
> >
> > that it already supports a /etc/gcrypt/random.conf file.
> > Perhaps they would extend that to allow selection of the
> > default RNG backend, system-wide.
>
>
> And things will remain problematic by default , because of all the
> obscurity and that FIPS mode overrides
> all defaults you choose anyways, including if I hardcode the preference in
> the source code like I did here.
If the DRBG is required for FIPS compliance, and QEMU hardcoded
the system RNG, then QEMU can't be used in a FIPS environment.
So I still think this question of defaults is something to be
fixed in the gcrypt code centrally, not in individual apps.
With regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2024-01-22 20:20 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-01-19 20:39 [PATCH] crypto/gcrypt: prefer kernel as direct source of entropy Cristian Rodríguez
2024-01-22 14:48 ` Daniel P. Berrangé
2024-01-22 20:08 ` Cristian Rodríguez
2024-01-22 20:19 ` Daniel P. Berrangé [this message]
2024-01-22 20:21 ` Cristian Rodríguez
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=Za7N3pIUXQB4lAkl@redhat.com \
--to=berrange@redhat.com \
--cc=Jason@zx2c4.com \
--cc=cristian@rodriguez.im \
--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 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).