Re: [PATCH] KEYS: asym_tpm: Switch to get_random_bytes()

From: Jerry Snitselaar
Date: Fri Oct 04 2019 - 14:33:47 EST


On Fri Oct 04 19, James Bottomley wrote:
On Fri, 2019-10-04 at 21:22 +0300, Jarkko Sakkinen wrote:
On Thu, Oct 03, 2019 at 04:59:37PM -0700, James Bottomley wrote:
> I think the principle of using multiple RNG sources for strong keys
> is a sound one, so could I propose a compromise: We have a tpm
> subsystem random number generator that, when asked for <n> random
> bytes first extracts <n> bytes from the TPM RNG and places it into
> the kernel entropy pool and then asks for <n> random bytes from the
> kernel RNG? That way, it will always have the entropy to satisfy
> the request and in the worst case, where the kernel has picked up
> no other entropy sources at all it will be equivalent to what we
> have now (single entropy source) but usually it will be a much
> better mixed entropy source.

I think we should rely the existing architecture where TPM is
contributing to the entropy pool as hwrng.

That doesn't seem to work: when I trace what happens I see us inject 32
bytes of entropy at boot time, but never again. I think the problem is
the kernel entropy pool is push not pull and we have no triggering
event in the TPM to get us to push. I suppose we could set a timer to
do this or perhaps there is a pull hook and we haven't wired it up
correctly?

James


Shouldn't hwrng_fillfn be pulling from it?