Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Aug 2013 01:09:24 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        Tim Kientzle <tim@kientzle.com>
Cc:        =?iso-8859-1?Q?Dag-Erling_Sm=F8rgrav?= <des@des.no>, secteam@freebsd.org, Mark R V Murray <mark@grondar.org>, FreeBSD-arch Arch <freebsd-arch@freebsd.org>
Subject:   Re: random(4) plugin infrastructure for mulitple RNG in a modular fashion
Message-ID:  <12B58C72-CFE3-4AD4-AD03-462A10E431D9@bsdimp.com>
In-Reply-To: <4C1BD77C-8C6B-4044-9285-5978A3BC4B70@kientzle.com>
References:  <20130807183112.GA79319@dragon.NUXI.org> <86pptfnu33.fsf@nine.des.no> <20130815231713.GD76666@x96.org> <20130816002625.GE76666@x96.org> <9B274F48-0C88-4117-BEAC-1A555772A3C5@grondar.org> <86a9kf733d.fsf@nine.des.no> <0C97B866-A169-4141-8368-AA7F5B5382F4@grondar.org> <861u5r71zi.fsf@nine.des.no> <892B11BD-396D-4F82-B97C-753F72CA494D@grondar.org> <86r4dr5j3p.fsf@nine.des.no> <4C1BD77C-8C6B-4044-9285-5978A3BC4B70@kientzle.com>

next in thread | previous in thread | raw e-mail | index | archive | help

On Aug 18, 2013, at 10:53 AM, Tim Kientzle wrote:

> On Aug 18, 2013, at 4:33 AM, Dag-Erling Sm=F8rgrav wrote:
>=20
>> Mark R V Murray <mark@grondar.org> writes:
>>> OK - in the context of what is currently there, it makes less sense =
than
>>> that; loading RDRAND/Ivy and Nehemiah simultaneously is silly =85
>=20
> Lots of folks build static kernels that they run on diverse
> hardware.
>=20
> The hardware RNG modules should be loadable simultaneously
> and should probe and activate only if their hardware is present,
> like any other driver for real hardware.

Agreed, I made that point earlier in this thread...

>> Provided the HWRNG is of sufficient quality, the user should be =
allowed
>> to use it directly (through /dev/random) without Yarrow / Fortuna.
>=20
> We could have kernel options to choose mixers
> (e.g., Yarrow or Fortuna) for /dev/random and
> loadable device modules for entropy sources.
>=20
> Besides Yarrow and Fortuna mixers, we could then
> offer a "null mixer" option that selected the single
> "best" entropy source and passed it directly through.

I'm still wondering why timecounters aren't the right model to follow =
here, where you can have several compiled into the kernel and the one =
with the best score wins.

> Users could compile the null mixer into the kernel
> and load a single HW RNG driver to have precise
> control over /dev/random.  Interrupt harvesting would
> be the lowest-quality source as a fall back.
>=20
> In particular, this has a reasonable failure mode if
> someone built a kernel with only a single HW entropy
> source and the null mixer:
>  * On hardware with that source, they would get
>     full-speed HW entropy.
>  * On hardware without that source, they would get
>     the old blocking /dev/random that we had before
>     Yarrow, the one that used only interrupt harvesting.

Assuming there was enough interrupt entropy to generate bits...

Warner




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?12B58C72-CFE3-4AD4-AD03-462A10E431D9>