ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] kernel: отключить random.trust* из коробки
@ 2025-02-11 18:41 Andrey Savchenko
  2025-02-11 22:27 ` Alexey V. Vissarionov
  0 siblings, 1 reply; 2+ messages in thread
From: Andrey Savchenko @ 2025-02-11 18:41 UTC (permalink / raw)
  To: ALT Linux Team development discussions

[-- Attachment #1: Type: text/plain, Size: 2369 bytes --]

Добрый день!

Начиная с ядра 6.10 опции CONFIG_RANDOM_TRUST_CPU больше нет:
https://www.kernelconfig.io/config_random_trust_cpu

Теперь доверие к 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, но ввиду
острой нехватки галоперидола у его ключевых разработчиков это
представляется затруднительным.

С наилучшими пожеланиями,
Андрей Савченко

[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [devel] kernel: отключить random.trust* из коробки
  2025-02-11 18:41 [devel] kernel: отключить random.trust* из коробки Andrey Savchenko
@ 2025-02-11 22:27 ` Alexey V. Vissarionov
  0 siblings, 0 replies; 2+ messages in thread
From: Alexey V. Vissarionov @ 2025-02-11 22:27 UTC (permalink / raw)
  To: ALT Linux Team development discussions

Good ${greeting_time}!

On 2025-02-11 21:41:12 +0300, Andrey Savchenko wrote:

 > Начиная с ядра 6.10 опции CONFIG_RANDOM_TRUST_CPU больше нет

Да и пусть с ней.

 > Теперь доверие к RDRAND и энтропии от загрузчика включено
 > по-умолчанию

Вполне себе источники энтропии. Если не использовать их как
единственные - ничуть не хуже остальных.

 > И можно выключить только по: random.trust_cpu=off
 > random.trust_bootloader=off
 > Поэтому и пишу сюда, а не в devel-kernel, потому что изменения
 > нужны на уровне параметров ядра со стороны загрузчика.

CONFIG_CMDLINE

 > сложно рассматривать включенный из коробки random.trust_cpu
 > иначе, чем бэкдор. У Intel дела не сильно лучше вспоминаем
 > материалы Сноудена.
 > И с random.trust_bootloader не лучше вспоминаем качество кода
 > вендорских реализаций UEFI и количество проблем в них.

Повторю, так бывает в единственном случае - когда нет никаких
других источников.

Ой, а у нас их действительно нет... И что же это за вредители
такие их все массово поотключали, да еще и не дают ядру набрать
энтропию? :-)

 > Поэтому предлагаю: во всех загрузчиках (grub, efi, lilo, extlinux,
 > что там ещё у нас используется) добавить в kernel cmdline:
 > random.trust_cpu=off random.trust_bootloader=off

Отказать, отменить и запретить.

Если по каким-то причинам (религиозным, наверное) совсем уж претит
использовать дополнительно от двух до десятка источников энтропии,
такой костыль действительно можно применить, но в CONFIG_CMDLINE:
это обеспечит его использование только в уязвимых ядрах (6.12 моей
сборки данная проблема не затрагивает, если что).

И если уж туда лезть, то сразу написать ro panic=30 rootdelay=10

 > Да, у пользователей систем с сотнями контейнеров, где systemd
 > выедает всю энтропию на старте системы, могут быть задержки
 > в загрузке.

Запустил в одном терминале dd bs=1M if=/dev/random of=/dev/null ,
а в другом watch cat /proc/sys/kernel/random/entropy_avail

Устойчиво выдает 256, не шелохнется. Даже если аппаратный ГСЧ из
УПШ выдернуть.

Вопрос со звездочкой^{\tm}: как я этого добился и откуда берется
нужное количество случайных битов для подпитки ядерного генератора?
Подсказка: наполнение пула энтропии у меня происходит на шестой
секунде загрузки ядра.

 > На таких системах пользователи могут убрать эти параметры ценой
 > безопасности своих систем, что печально, т.к. обычно это хостинг.

Достаточно, чтобы в момент запуска init ядерный пул энтропии был
(1) наполнен (2) с использованием хотя бы одного доверенного
источника (а лучше трех-пяти). Дальше работает гаммирование с
подмешиванием случайных битов через add_hwgenerator_randomness(),
add_device_randomness(), add_interrupt_randomness() итд.

 > Правильным лечением будет исправлять systemd, но ввиду острой
 > нехватки галоперидола у его ключевых разработчиков это
 > представляется затруднительным.

А еще это веский аргумент продолжать поддерживать sysVinit.


-- 
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-02-11 22:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-02-11 18:41 [devel] kernel: отключить random.trust* из коробки Andrey Savchenko
2025-02-11 22:27 ` Alexey V. Vissarionov

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git