Re: [PATCH v2 1/3] Add the latent_entropy gcc plugin

From: Emese Revfy
Date: Fri Jun 03 2016 - 13:36:06 EST


On Wed, 1 Jun 2016 12:42:27 -0700
Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:

> On Tue, 31 May 2016 01:31:45 +0200 Emese Revfy <re.emese@xxxxxxxxx> wrote:
>
> > This plugin mitigates the problem of the kernel having too little entropy during
> > and after boot for generating crypto keys.
> >
> > It creates a local variable in every marked function. The value of this variable is
> > modified by randomly chosen operations (add, xor and rol) and
> > random values (gcc generates them at compile time and the stack pointer at runtime).
> > It depends on the control flow (e.g., loops, conditions).
> >
> > Before the function returns the plugin writes this local variable
> > into the latent_entropy global variable. The value of this global variable is
> > added to the kernel entropy pool in do_one_initcall() and _do_fork().
>
> I don't think I'm really understanding. Won't this produce the same
> value on each and every boot?

No, because of interrupts and intentional data races.

--
Emese