Re: Standardizing an MSR or other hypercall to get an RNG seed?

Andy Lutomirski
2014-09-19T18:42:02Z

On Fri, Sep 19, 2014 at 11:30 AM, Christopher Covington
<cov@codeaurora.org> wrote:
> On 09/17/2014 10:50 PM, Andy Lutomirski wrote:
>> Hi all-
>>
>> I would like to standardize on a very simple protocol by which a guest
>> OS can obtain an RNG seed early in boot.
>>
>> The main design requirements are:
>>
>> - The interface should be very easy to use. Linux, at least, will
>> want to use it extremely early in boot as part of kernel ASLR. This
>> means that PCI and ACPI will not work.
>
> How do non-virtual systems get entropy this early? RDRAND/Padlock? Truerand?
> Could hypervisors and simulators simply make sure these work?
>

If RDRAND is available, then Linux, at least, will use it. The rest
are too complicated for early use. Linux on x86 plays some vaguely
clever games with rdtsc and poking at the i8254 port.

I think that these tricks are even less useful as a guest than they
are on metal, and we can use paravirt mechanisms to make guest early
boot rngs much stronger.

--Andy