[devel] kernel: отключить random.trust* из коробки

Vitaly Chikunov vt на altlinux.org
Ср Мар 5 20:42:02 MSK 2025


On Tue, Feb 11, 2025 at 09:41:12PM +0300, Andrey Savchenko wrote:
> Добрый день!
> 
> Начиная с ядра 6.10 опции CONFIG_RANDOM_TRUST_CPU больше нет:
> https://www.kernelconfig.io/config_random_trust_cpu

Перед удалением там был такой текст.

-config RANDOM_TRUST_CPU                                                                                                    
-       bool "Initialize RNG using CPU RNG instructions"                                                                    
-       default y                                                                                                           
-       help                                                                                                                
-         Initialize the RNG using random numbers supplied by the CPU's                                                     
-         RNG instructions (e.g. RDRAND), if supported and available. These                                                 
-         random numbers are never used directly, but are rather hashed into                                                
-         the main input pool, and this happens regardless of whether or not                                                
-         this option is enabled. Instead, this option controls whether the                                                 
-         they are credited and hence can initialize the RNG. Additionally,                                                 
-         other sources of randomness are always used, regardless of this                                                   
-         setting.  Enabling this implies trusting that the CPU can supply high                                             
-         quality and non-backdoored random numbers.                                                                        

> 
> Теперь доверие к RDRAND и энтропии от загрузчика включено
> по-умолчанию:
> https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/tree/drivers/char/random.c#n821
> 
> И можно выключить только по:
> random.trust_cpu=off
> random.trust_bootloader=off
> 
> Поэтому и пишу сюда, а не в devel-kernel, потому что изменения
> нужны на уровне параметров ядра со стороны загрузчика.
> 
> Ввиду уязвимостей вида:
> https://github.com/google/security-research/security/advisories/GHSA-4xq7-4mgh-gp6w
> 
> сложно рассматривать включенный из коробки random.trust_cpu иначе,
> чем бэкдор. У Intel дела не сильно лучше — вспоминаем материалы
> Сноудена.
> 
> И с random.trust_bootloader не лучше — вспоминаем качество кода
> вендорских реализаций UEFI и количество проблем в них.
> 
> Поэтому предлагаю: во всех загрузчиках (grub, efi, lilo, extlinux,
> что там ещё у нас используется) добавить в kernel cmdline:
> 
> random.trust_cpu=off random.trust_bootloader=off
> 
> Да, у пользователей систем с сотнями контейнеров, где systemd
> выедает всю энтропию на старте системы, могут быть задержки
> в загрузке. На таких системах пользователи могут убрать эти
> параметры ценой безопасности своих систем, что печально, т.к. обычно
> это хостинг. Правильным лечением будет исправлять systemd, но ввиду
> острой нехватки галоперидола у его ключевых разработчиков это
> представляется затруднительным.
> 
> С наилучшими пожеланиями,
> Андрей Савченко



> _______________________________________________
> Devel mailing list
> Devel на lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel



Подробная информация о списке рассылки Devel