Subject: Re: IRQF_SAMPLE_RANDOM question...

From: Matt Mackall <[email-masked]>
Date: Tue, 07 Apr 2009 07:57:31 -0700

On Tue, 2009-04-07 at 07:16 -0400, Robin Getz wrote:
> On Mon 6 Apr 2009 15:01, Matt Mackall pondered:
> > On Mon, 2009-04-06 at 14:30 -0400, Robin Getz wrote:
> > > We have lots of embedded headless systems (no keyboard/mouse, no
> > > soundcard, no video) systems with *no* sources of entropy - and
> > > people using SSL. 
> > 
> > I'd rather add a random_sample_network call somewhere reasonably central
> > in the network stack. Then we can use the knowledge that the sample is
> > network-connected in the random core to decide how to measure its
> > entropy. The trouble with IRQF_SAMPLE_RANDOM is that many of its users
> > are technically bogus as entropy sources in the current model.
> 
> OK - that makes more sense.
> 
> Does that mean we also shouldn't be using IRQF_SAMPLE_RANDOM on interrupt 
> sources in subsystems which already have add_xxx_randomness() in them? (block 
> devices, and input devices?)
> 
> block/blk-core.c -> blk_end_io() -> add_disk_randomness()
> drivers/input/input.c -> input_event() -> add_input_randomness()
> 
>  drivers/block/xen-blkfront.c, line 639
> 
>  drivers/input/touchscreen/wm97xx-core.c, line 374
>  drivers/input/keyboard/gpio_keys.c, line 145
>  drivers/input/keyboard/bf54x-keys.c, line 255
>  drivers/input/serio/hp_sdc.c, line 881

Yes. The flag needs to be taken out and shot. Everything going into the
RNG should be made to go through an add_*_randomness interface only.
Preferably not at a per-driver level.

-- 
http://selenic.com : development and support for Mercurial and Linux