User talk:David in oregon
Welcome!
|
RdRand in virtual machines
David, why does the RdRand instruction explicitly allow itself to be disabled by a virtual machine operating system? This seems like a totally obvious random number subversion attack vector on any system that runs in virtual machines (i.e. most web services run by large companies, including most of their internal systems). Gnuish (talk) 08:21, 5 October 2013 (UTC)
There is only one scenario where a hypervisor should be trapping RdRand. That is for VM lockstep operation, where the hypervisor ensures multiple VMs are running the same VM in the same state. This is typically for high reliability operation. The hypervisor needs to trap the instruction, pull a random value, return it to the VM and pass that random value to the other instances, so they can run in sync.
The trappability of RdRand is explicitly to enable lockstep VMs. A non-lockstep VM should not and people should be suspicious if a VM implementation does. David in oregon (talk) 20:20, 5 October 2013 (UTC)