]> git.baikalelectronics.ru Git - kernel.git/commit
x86/rdrand: Remove "nordrand" flag in favor of "random.trust_cpu"
authorJason A. Donenfeld <Jason@zx2c4.com>
Sat, 9 Jul 2022 10:43:06 +0000 (12:43 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Mon, 18 Jul 2022 13:04:04 +0000 (15:04 +0200)
commitff64c7d8c07f5226125791bae34cad1a8ee2d525
treedadeaf9e5523c535fcb6092440a5a16865463114
parent5d72a318be1c43a9e632c3361de364155f29e261
x86/rdrand: Remove "nordrand" flag in favor of "random.trust_cpu"

The decision of whether or not to trust RDRAND is controlled by the
"random.trust_cpu" boot time parameter or the CONFIG_RANDOM_TRUST_CPU
compile time default. The "nordrand" flag was added during the early
days of RDRAND, when there were worries that merely using its values
could compromise the RNG. However, these days, RDRAND values are not
used directly but always go through the RNG's hash function, making
"nordrand" no longer useful.

Rather, the correct switch is "random.trust_cpu", which not only handles
the relevant trust issue directly, but also is general to multiple CPU
types, not just x86.

However, x86 RDRAND does have a history of being occasionally
problematic. Prior, when the kernel would notice something strange, it'd
warn in dmesg and suggest enabling "nordrand". We can improve on that by
making the test a little bit better and then taking the step of
automatically disabling RDRAND if we detect it's problematic.

Also disable RDSEED if the RDRAND test fails.

Cc: x86@kernel.org
Cc: Theodore Ts'o <tytso@mit.edu>
Suggested-by: H. Peter Anvin <hpa@zytor.com>
Suggested-by: Borislav Petkov <bp@suse.de>
Acked-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Documentation/admin-guide/kernel-parameters.txt
arch/x86/kernel/cpu/amd.c
arch/x86/kernel/cpu/rdrand.c