Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Aug 2013 01:18:22 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        Mark R V Murray <mark@grondar.org>
Cc:        Tim Kientzle <tim@kientzle.com>, FreeBSD-arch Arch <freebsd-arch@freebsd.org>, secteam@freebsd.org, =?iso-8859-1?Q?Dag-Erling_Sm=F8rgrav?= <des@des.no>
Subject:   Re: random(4) plugin infrastructure for mulitple RNG in a modular fashion
Message-ID:  <71A92486-2213-421E-B3D2-E55816C18924@bsdimp.com>
In-Reply-To: <F908BF80-538B-4363-ACCC-3D860CBEE359@grondar.org>
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> <537622E1-F785-4BFA-B829-09DCDB484606@grondar.org> <932AB5CA-778E-438D-8FD3-8C0F29F3D117@kientzle.com> <F908BF80-538B-4363-ACCC-3D860CBEE359@grondar.org>

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

On Aug 18, 2013, at 2:02 PM, Mark R V Murray wrote:
> On 18 Aug 2013, at 20:27, Tim Kientzle <tim@kientzle.com> wrote:
>> But clearly some people really want to be able to
>> force /dev/random to be the unconditioned output
>> of a particular HW RNG.  I don't know if this is a
>> good idea or not, but clearly there are people who
>> want this.
>=20
> Agreed. (This includes my change of position on the
> subject.)
>=20
> Others want Yarrow/Fortuna no matter what.

If we're going to allow passthrough, we should require the kernel config =
to explicitly do something to get pass through.

nodevice yarrow
device random_passthrough

would be my suggestion.

>> I am NOT claiming the old blocking /dev/random is
>> "good"; just that it is not an entirely unacceptable failure
>> mode for badly mismatched kernel/hardware combinations.
>> Keep in mind such mismatches may happen accidentally:
>> add-on HW RNG cards can fail.
>=20
> True. Yarrow and Fortuna were designed to shield against
> those very failure modes. They treat ALL entropy sources
> as suspect and endeavour to be secure irregardless.
>=20
> I propose two-route device:
>=20
> Route 1 (SW):
>    Yarrow/Fortuna (choosable between the two for now),
>    and a fallback for Route 2. It should be possible to
>    build a kernel without this route.
>=20
> Route 2 (HW):
>    Minimally-processed randomness directly from a dedicated
>    source, similar to the rdrand/ivy device, but with the
>    actual source abstracted. If no suitable source is
>    available, then this whole route fails. This is where
>    some useful "pluggability" can come. If this fails to
>    fall back; then perhaps a "I don't care" vs "PANIC!!"
>    fallback can be supplied. Here lie the dragons.

I'd go so far as to say that if you have random in your kernel, then you =
need to specify some "filter" or you get a compile-time error. =
Specifying yarrow via DEFAULTS or std.foo is fine by me, since both of =
those can be overriden fairly easily....  I'd also think we'd want to =
FAIL_PANIC or FAIL_BLOCKING, and have that choice hard wired at some =
level too, to be explicit about things. But maybe that's gilding things =
a bit too much and a tunable would suffice...

Warner




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?71A92486-2213-421E-B3D2-E55816C18924>