Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 12 Jul 2018 18:03:27 +0200
From:      Dirk-Willem van Gulik <dirkx@webweaving.org>
To:        RW <rwmaillists@googlemail.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: Limits to seeding /dev/random | random(4)
Message-ID:  <7C42CD28-078F-4AF6-90F2-5E951F8386D5@webweaving.org>
In-Reply-To: <20180712165751.1e5b8e24@gumby.homeunix.com>
References:  <3A988D26-7B08-4301-8176-B0ED8A559420@webweaving.org> <1531317515.66719.20.camel@freebsd.org> <20180712165751.1e5b8e24@gumby.homeunix.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 12 Jul 2018, at 17:57, RW via freebsd-hackers =
<freebsd-hackers@freebsd.org> wrote:

> On Wed, 11 Jul 2018 07:58:35 -0600 Ian Lepore wrote:
>=20
>=20
>> When asking our prng gurus for advice on writing a device driver for
>> an on-chip entropy source, the advice I got was basically: there's no
>> need to feed in more entropy on an ongoing basis, but no harm in
>> doing so either, within reason. The recommendation was to feed at or
>> below an average rate of about 128 bits/second. Pushing in more isn't
>> harmful, just wasteful of system resources because it doesn't make
>> anything better.
>=20
> This is a bit simplistic because it ignores the way that fortuna
> stripes entropy across 32 pools.
>=20
> In order to fully secure the prng at boot time you need to get 256 =
bits
> of entropy into it, and to guarantee that you need to have 256 bits in
> pool[0], which means you need to write 256*32=3D8192 bits into the =
random
> device. This should be done as early in the rc.d boot process as
> possible. Once the pools are primed you could trickle entropy in in
> smaller amounts if you wish.

So these HW devices [1] give us a raw feed =E2=80=94 which one usually =
whitewashes [2] in order to use.

It is fairly well defined how many bits of entropy we get =E2=80=98raw=E2=80=
=99.

During boot - can I feed the right number of bits without whitewashing - =
letting the kernel do the trick (much like random_harvest_queue() does =
in for example the mouse driver) ?

Or should it be properly whitened first ?

Our goal is to get to a point where a very stripped down BSD can be =
booted up (sans network or much in terms of attached devices but for a =
printer and chipcard reader) =E2=80=94 yet is know to have a solid =
seeded RNG.

With kind regards,

Dw.

1: https://13-37.org/en/shop/infinite-noise-trng/
2: https://github.com/manuel-domke/infnoise=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7C42CD28-078F-4AF6-90F2-5E951F8386D5>