Collecting entropy from device_attach() times.
Ben Laurie
benl at freebsd.org
Wed Sep 19 19:59:16 UTC 2012
On Wed, Sep 19, 2012 at 8:29 PM, Pawel Jakub Dawidek <pjd at freebsd.org> wrote:
> On Wed, Sep 19, 2012 at 07:30:52PM +0100, Jonathan Anderson wrote:
>> > If all the times are more or less equally probable in this range […]
>>
>> They're very unlikely to be equally probable. It would make sense to do some characterization of these times and their statistics: a highly non-uniform distribution would mean that we don't actually get many bits per attach.
>
> I have times for ~2000 device_attach() calls when loading sound card
> driver on totally idle system. If someone could take those and analyse
> the distribution that would be great.
>
>> > […] we have more
>> > than 19 bits of entropy from this one call, but I reduced if to four
>> > bits only, because there are devices that are much faster to attach.
>> >
>>
>> Another reason for doing the above characterization is that, if a particular device_attach() really does provide 12 bits of uncertainty, it's a shame to drop eight of them on the floor.
>
> Rights. That's why I've prepared another patch:
>
> http://people.freebsd.org/~pjd/patches/harvest_device_attach.2.patch
>
> which effectively discards top ten bits, which means we expect 0.1% of
> the attach time to be unpredictable (the attach time in most cases vary
> by few percent, not sure yet how much of this variation is really
> unpredictable).
This is the wrong thing to do! There's no reason to discard bits on
input (modulo the device throwing away inputs, that is) - just reduce
your entropy estimate. "Extra" bits do no harm.
More information about the freebsd-security
mailing list