Re: How do embedded linux-rt systems fill their entropy/randomness pools?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Thomas and others,

Your "genirq: Disable random call on preempt-rt" commit on Jul 21 2009
removes interrupt timings as a potential source of randomness for the
kernel entropy pool, if CONFIG_PREEMPT_RT_FULL  is set. I have no
qualms with this change, per se; manipulating the entropy pool is
clearly something that shouldn't be happening at IRQ priority.

However: on an embedded linux-rt system with solid-state storage,
add_input_randomness() ought to contribute no entropy at all, and
add_disk_randomness() likely contributes a marginal amount of entropy,
since SSD seek timings have little variance. That leaves
ioctl(/dev/random, RNDADDENTROPY) as the only remaining entropy
source. But no kernel drivers appear to use that, and few
distributions have egd set up out-of-the-box.

Thus, for a stock linux-rt kernel, it appears to be the case that
**NOTHING POPULATES THE ENTROPY POOL**. I can readily reproduce this
on a live linux-rt ARM system: after boot,
/proc/sys/kernel/random/entropy_avail is 0, and stays there.

This, to me, seems to be a severe problem. In particular, if the
embedded RT system is responsible for generating its own RSA keys for
e.g. SSH/SSL on first boot, then the lack of entropy leaves it
susceptible to catastrophic factorization attacks as documented in
"Ron was wrong, Whit is right", http://eprint.iacr.org/2012/064.pdf,
which made the news 3 months or so ago.

Do you agree with this analysis?

How have other linux-rt users solved this sort of problem, besides
userspace ioctl(RNDADDENTROPY) calls from an entropy gathering daemon?

Would anybody (else) be interested in pursing a realtime-safe way to
use interrupt timings as an entropy source?


-- Richard Tollerton <richard.tollerton@xxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux