Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Sep 2012 12:21:04 +0200
From:      Pawel Jakub Dawidek <pjd@FreeBSD.org>
To:        RW <rwmaillists@googlemail.com>
Cc:        freebsd-security@freebsd.org, Jonathan Anderson <jonathan.anderson@cl.cam.ac.uk>, Mariusz Gromada <mariusz.gromada@gmail.com>
Subject:   Re: Collecting entropy from device_attach() times.
Message-ID:  <20120920102104.GA1397@garage.freebsd.pl>
In-Reply-To: <20120919231051.4bc5335b@gumby.homeunix.com>
References:  <20120918211422.GA1400@garage.freebsd.pl> <A8FD98DD94774D00B4E5F78D3174C1B4@gmail.com> <20120919192923.GA1416@garage.freebsd.pl> <20120919205331.GE1416@garage.freebsd.pl> <20120919231051.4bc5335b@gumby.homeunix.com>

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

--/04w6evG8XlLl3ft
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Sep 19, 2012 at 11:10:51PM +0100, RW wrote:
> On Wed, 19 Sep 2012 22:53:32 +0200
> Pawel Jakub Dawidek wrote:
>=20
>=20
> > Here's how the distribution looks like for device_attach() times of my
> > sound card. The times were 26bit numbers, so this is after discarding
> > top ten bits, which leave us with 16 lower bits of pure entropy:)
> >=20
> > 	http://people.freebsd.org/~pjd/misc/harvest_device_attach.png
>=20
>=20
> You're basing  a model for all devices on a single sound card, that
> doesn't seem safe to me. Isn't it possible that a device could take a
> long and well defined time? Some interrupts can carry a lot of entropy
> but they are still only accounted at 2 bits.

I agree, we should do such analysis for much more devices and different
kind of devices. A platform might be an important factor as well.
It is hard to collect decent number of probes when reboot is needed, so
what I'd recommend is to turn of SMP, boot into single module and
kldload/kldunload a driver in a loop, of course with kernel patched to
log those times.

> I don't see the point of trying to set a realistic number of bits
> unless there's a need for secure random numbers before initrandom. If
> there isn't then you might just as well set the estimation at zero
> bits, and avoid wasting cpu cycles on unnecessary spontaneous reseeds
> before the forced reseed.

It would be ideal if we could provide properly seeded PRNG even for
single-user mode, so eliminating initrandom altogether is also an
option, but also doesn't hurt to leave it as it is. I don't like
depending on initrandom as it doesn't help for single-user mode and it
might be easy to make some mistake by ordering rc.d/ scripts and placing
some script that needs properly seeded PRNG before initrandom.
Feeding enough entropy into yarrow before even root is mounted would be
perfect.

--=20
Pawel Jakub Dawidek                       http://www.wheelsystems.com
FreeBSD committer                         http://www.FreeBSD.org
Am I Evil? Yes, I Am!                     http://tupytaj.pl

--/04w6evG8XlLl3ft
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (FreeBSD)

iEYEARECAAYFAlBa7hAACgkQForvXbEpPzQNYwCggtLkg+VP8Angoz3tnnb6UtUW
SpoAmgJ2GfsmN8GcWi+ex/fYI1RcjFIO
=2WdM
-----END PGP SIGNATURE-----

--/04w6evG8XlLl3ft--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20120920102104.GA1397>