* [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