• J
    random: add mechanism for VM forks to reinitialize crng · ae099e8e
    Jason A. Donenfeld 提交于
    When a VM forks, we must immediately mix in additional information to
    the stream of random output so that two forks or a rollback don't
    produce the same stream of random numbers, which could have catastrophic
    cryptographic consequences. This commit adds a simple API, add_vmfork_
    randomness(), for that, by force reseeding the crng.
    
    This has the added benefit of also draining the entropy pool and setting
    its timer back, so that any old entropy that was there prior -- which
    could have already been used by a different fork, or generally gone
    stale -- does not contribute to the accounting of the next 256 bits.
    
    Cc: Dominik Brodowski <linux@dominikbrodowski.net>
    Cc: Theodore Ts'o <tytso@mit.edu>
    Cc: Jann Horn <jannh@google.com>
    Cc: Eric Biggers <ebiggers@google.com>
    Reviewed-by: NArd Biesheuvel <ardb@kernel.org>
    Signed-off-by: NJason A. Donenfeld <Jason@zx2c4.com>
    ae099e8e
random.c 48.2 KB