News for hackers. Stuff that matters.
Re:Fixing Getrandom() by masklinn on Tuesday October 01, 2019 @01:20PM (#21127968)
You're cutting off the first half of the quote which is pretty damn relevant:

> we need to find some way to fix userspace's assumptions that they can always get high quality entropy in early boot, or we need to get over people's distrust of Intel and RDRAND

Though ts'o is also ignoring the third option — and the one used by openbsd — of storing an rng seed after boot (and on shutdown).

The very first boot does remain problematic if the image isn't seeded though.

Re:Fixing Getrandom() by cpeterso on Tuesday October 01, 2019 @01:50PM (#21128414)
Ubuntu's man pages say "all major Linux distributions have [saved a seed file across reboots] since 2000 at least":

http://manpages.ubuntu.com/manpages/trusty/man4/random.4.htm...

Re:Fixing Getrandom() by wahern on Tuesday October 01, 2019 @02:44PM (#21129107)
Lennart, posting as mezcalero, addresses that in the LWN discussion. TL;DR: systemd loads the seed too late in the boot process, which is a deliberate choice on their part.
Re:Fixing Getrandom() by jnurmine on Tuesday October 01, 2019 @02:53PM (#21129190)
But is it really that difficult to seed the image for that first boot?

For example, an installation process using an .iso image could, after verifying the .iso, put a random seed inside the .iso (unpack-modify-pack) as a pre-configuration step. Like an extra preparation step after downloading. New installation = new pre-configuration step, to avoid seed reuse.

The previous would apply to VMs and containers and such.

For traditional embedded/IoT style devices, the step could be done at the factory when flashing the image. Or maybe there could be a small flash area with the seed as part of the initial flashing procedure.

I guess some forms of installation end up being "problematic" to handle (ro root filesystems maybe).

Re:Fixing Getrandom() by wahern on Tuesday October 01, 2019 @03:37PM (#21129661)
A VirtIO-RNG driver has been in Linux for over 10 years: https://wiki.qemu.org/Features/VirtIORNG

Randomness in VMs isn't a problem. If VM hypervisors aren't providing VirtIO-RNG, it's still just a quick fix and reboot away. The quickest way to make sure all hypervisors and hosting providers enable VirtIO-RNG, or something similar, is for the kernel to being assuming, loudly, that strong entropy is available at boot time.

For embedded stuff SPI RNG chips and similar solutions have been available since forever, not to mention the on-chip sources on most modern ARM and x86 CPUs and SoCs.

If a product designer (e.g. embedded device) or solution provider (cloud hosting) chooses to put their trust in RDRAND alone, then that's their choice--Linux shouldn't be second guessing it, or at least allow such a choice to dictate the semantics of its APIs.

Re:Fixing Getrandom() by denton-scratch on Wednesday October 02, 2019 @08:43AM (#21135737)
VirtIO-RNG has not been officially accepted into Xen (it seems to be easier to incorporate into a PV DOMU).

If you have RDRAND hardware, you could (I suppose) pipe it's output from DOM0 into an encrypted root terminal session on DOMU, and feed that into the pool.

I personally don't want to rely on RDRAND. Unlike a tampered ADD instruction, a tampered RDRAND instruction would appear to be undetectable, even in principle. I wish Intel had given me the raw bits from their DRBG, instead of providing only the whitened stream. Or hell, give me both - but not just an opaque stream.

Re:Fixing Getrandom() by saagarjha on Tuesday October 01, 2019 @03:11PM (#21129379)
> unpack-modify-pack

This seems eminently unfeasible for many applications, and it won't work at all for read-only filesystems as you've mentioned.

Re:Fixing Getrandom() by boring_twenties on Tuesday October 01, 2019 @01:27PM (#21128058)
How is it relevant? The fact that he's proposing an alternative option doesn't change the fact that he's also presenting a completely insane one.
Re:Fixing Getrandom() by zamadatix on Tuesday October 01, 2019 @02:07PM (#21128671)
In the same way "We need to stop driving the boat into rocks or..." is relevant context to "...we need to start liking to swim". Just because something is listed as an option does not mean the speaker is interested in actually doing that.

It's a speaking pattern meant to convey "we've got to do something about <x> and people don't like <y> (so it's gotta be <x>)". In reality there are almost always more <options> than the duality implies but at no point does the person ever actually want <y>.

Re:Fixing Getrandom() by boring_twenties on Tuesday October 01, 2019 @04:03PM (#21129937)
I can't quite put my finger on it, but there is something in Tso's statement that seems to me to be quite different from yours.

In your example, the fact that the first option is self-evidently correct even in a vacuum, is something of a cue that the second option isn't meant to be taken as seriously.

In Tso's statement, it's not immediately clear to me which of the two options he prefers. In fact, his use of the phrase "get over it" leads me to think that is actually his preferred variant. To me, that phrasing means if not an outright trivial and unworthy concern, then at least one that only needs the passage of time. There doesn't seem to be any indication that he's using the phrase ironically or anything.

Of course it is always possible that I'm just misreading or misinterpreting it. But that is why the first half didn't, and still doesn't, seem relevant to me.