/dev/random

Steve Kargl sgk at troutmask.apl.washington.edu
Mon Aug 20 22:43:17 UTC 2012


On Mon, Aug 20, 2012 at 11:05:39PM +0100, Ben Laurie wrote:
> On Mon, Aug 20, 2012 at 11:02 PM, Steve Kargl
> <sgk at troutmask.apl.washington.edu> wrote:
> > On Mon, Aug 20, 2012 at 07:49:16PM +0100, Ben Laurie wrote:
> >> Apparently /dev/random uses h/w PRNGs if available, discarding all
> >> other sources of randomness.
> >>
> >> This seems like a mistake to me - we should fix it.
> >>
> >> Also, it seems that entropy is available in detailed interrupt timing
> >> (see http://www.issihosts.com/haveged/) which might be useful on
> >> entropy-starved systems - I suspect we are not exploiting this source,
> >> and in light of recent developments, we probably should be,
> >>
> >> Comments?
> >
> > Well, it's hard to comment when you failed to explain
> > *why* you think it is a mistake.
> 
> Sorry - because I do not think it is wise to trust the h/w prng so
> much we discard other entropy.
> 

I guess I simply don't understand your terseness here.  FreeBSD
collects entropy (on my system) from 

kern.random.sys.harvest.ethernet: 1
kern.random.sys.harvest.point_to_point: 1
kern.random.sys.harvest.interrupt: 1
kern.random.sys.harvest.swi: 0

What do you mean by h/w prng here?  Are you talking about these
sysctls and what each collects?   Or, are you talking about h/w
crypto accelerators such as hifn(4) and padlock(4)?

> >  In addition, I'm having
> > a hard time parsing your 1st sentence, which appears to
> > be related to this sentence:
> >
> >    The device will probe for certain hardware entropy sources,
> >    and use these in preference to the fallback, which is a
> >    generator implemented in software.
> >
> > from 'man 4 random'.  Your 'all other sources of randomness'
> > would then need to be amended to 'all other sources of entropy'.
> > But, then 'all other sources' does not make sense, because only
> > the 'generator implemented in software' is discarded.
> 
> That is everything except the hardware, right? So ... all other sources.

It's a single source.  Not sure why you want to write
'all other sources.'   Unless you're being overly
dramatic to sway opinion to your desire result that it is
a bad idea. 

> > It is also unclear why a linux-only project for gathering entropy
> > is relevant here given that FreeBSD already has the ability to
> > use both hardware and software interrupts as sources of entropy.
> 
> It is relevant because it seems there is entropy available in
> fine-grained timing.

kern.random.sys.harvest.swi controls collection of 
entropy from SWI, implicit would (implicitly?) be
controlled by timing of the interrupt. 


-- 
Steve


More information about the freebsd-arch mailing list