Re: [PATCH] random: add blocking facility to urandom

Sasha Levin
2011-09-07T20:38:24Z

On Wed, 2011-09-07 at 16:30 -0400, Steve Grubb wrote:
> On Wednesday, September 07, 2011 04:23:13 PM Sasha Levin wrote:
> > On Wed, 2011-09-07 at 16:02 -0400, Steve Grubb wrote:
> > > On Wednesday, September 07, 2011 03:27:37 PM Ted Ts'o wrote:
> > > > On Wed, Sep 07, 2011 at 02:26:35PM -0400, Jarod Wilson wrote:
> > > > > We're looking for a generic solution here that doesn't require
> > > > > re-educating every single piece of userspace. And anything done in
> > > > > userspace is going to be full of possible holes -- there needs to be
> > > > > something in place that actually *enforces* the policy, and
> > > > > centralized accounting/tracking, lest you wind up with multiple
> > > > > processes racing to grab the entropy.
> > > >
> > > > Yeah, but there are userspace programs that depend on urandom not
> > > > blocking... so your proposed change would break them.
> > >
> > > The only time this kicks in is when a system is under attack. If you have
> > > set this and the system is running as normal, you will never notice it
> > > even there. Almost all uses of urandom grab 4 bytes and seed openssl or
> > > libgcrypt or nss. It then uses those libraries. There are the odd cases
> > > where something uses urandom to generate a key or otherwise grab a chunk
> > > of bytes, but these are still small reads in the scheme of things. Can
> > > you think of any legitimate use of urandom that grabs 100K or 1M from
> > > urandom? Even those numbers still won't hit the sysctl on a normally
> > > function system.
> >
> > As far as I remember, several wipe utilities are using /dev/urandom to
> > overwrite disks (possibly several times).
>
> Which should generate disk activity and feed entropy to urandom.

I thought you need to feed random, not urandom.

Anyway, it won't happen fast enough to actually not block.

Writing 1TB of urandom into a disk won't generate 1TB (or anything close
to that) of randomness to cover for itself.

> > Something similar probably happens for getting junk on disks before
> > creating an encrypted filesystem on top of them.
>
> During system install, this sysctl is not likely to be applied.

It may happen at any time you need to create a new filesystem, which
won't necessarily happen during system install.

See for example the instructions on how to set up a LUKS filesystem:
https://wiki.archlinux.org/index.php/System_Encryption_with_LUKS#Preparation_and_mapping

--

Sasha.