From: "Alexey V. Vissarionov" <gremlin@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] rngd vs haveged vs crng (khwrngd)
Date: Tue, 3 Sep 2019 13:12:17 +0300
Message-ID: <20190903101217.GT12903@altlinux.org> (raw)
In-Reply-To: <12b305ed-4e3c-c4c1-7d19-17649f0817fe@gmail.com>
On 2019-09-03 10:37:07 +0300, Leonid Krivoshein wrote:
>>> Единственное, что делается ДО -- инициализация devtmpfs.
>> Вроде бы достаточно очевидно, что devtmpfs_mount() выполняется
>> до run_init_process(), но после mount_block_root()
> Инициализация экземпляра файловой системы внутри ядра
> и монтирование её в userspace -- две разные вещи.
А можно ссылочки в виде имен файлов и названий функций? Мало ли,
вдруг в ядре что-то кардинально поменялось, а я это пропустил...
> Монтирование /dev в userspace инициируется процессом с PID 1
Да ну?
/*
* If configured, or requested by the commandline, devtmpfs will be
* auto-mounted after the kernel mounted the root filesystem.
*/
int devtmpfs_mount(const char *mntdir)
{
int err;
if (!mount_dev)
return 0;
if (!thread)
return 0;
err = ksys_mount("devtmpfs", mntdir, "devtmpfs", MS_SILENT, NULL);
if (err)
printk(KERN_INFO "devtmpfs: error mounting %i\n", err);
else
printk(KERN_INFO "devtmpfs: mounted\n");
return err;
}
Это drivers/base/devtmpfs.c
> уже после того, как ядро проинициализировало initramfs, devtpmfs,
> нашло и запустило /sbin/init.
Не... корень смонтирован, devtmpfs смонтирован - а /sbin/init еще не
запущен.
Удивительно, правда? :-)
> Никаких устройств на этом этапе ещё нет, ramfs/tpmfs в ядро
> вкомпилируются.
> Даже если не указывать путь к собственному initramfs, оно тоже в
> ядре имеется всегда. Пустое, без /sbin/init,
Да - init/noinitramfs.c
> чтобы отработал твой любимый fallback с /dev/md0.
Тут либо слово fallback не к месту, либо мысль куда-то ускользнула.
>>> К моменту запуска /sbin/init может быть даже не загружено ещё
>>> никаких модулей.
>> И это очень плохо. Потому что очень многие из них используют
>> как минимум один способ (из четырех возможных) помочь ядерному
>> ГСЧ набрать энтропию перед run_init_process()
> К счастью, в initramfs у нас не systemd, иначе с проблемой мы
> сталкивались бы раньше и на большем охвате железа. systemd только
> так генерирует UUID'ы для сервисов, множество временных файлов,
> использует внутренние хэш-таблицы и случайные числа для
> всевозможных "сетевых" нужд. Так что плохо, да, но может быть ещё
> хуже. Полагаю, тем, у кого нет systemd, эта проблема неведома.
Да какая разница? Запустили init - появились процессы в userspace,
которым нужен ГСЧ.
> На SysV-init вероятность запуска сервиса, требующего CRNG, примерно
> равна нулю.
В этом тысячелетии я компутеров без SSH уже не видел.
>>> Процесс асинхронной инициализации хорошо виден в dmesg и
>>> journalctl. У нас, правда, тут не systemd сейчас стартует, а
>>> другой /sbin/init. Но надо понимать, что прохождение stage1
>>> зависит от железа и конфигурации системы.
>> Что ты в данном случае называешь stage1?
> initrafms (initrd) -- первая стадия загрузки.
Пофигу - это уже userspace.
>>> Блокировку на этапе загрузки можно рассматривать не только
>>> как баг юзабилити. В ряде задач это тоже CVE, вплоть до DoS
>>> для всего HA-кластера. В конце концов, подкопив энтропии,
>>> можно обновить состояние инициализации CRNG.
>> Да: низкоэнтропийная криптография - это уязвимость. Исправлять
>> ее будем, или как обычно?
Это отнюдь не риторический вопрос.
>>> А терпеть тормоза при загрузке можно далеко не во всех
>>> сценариях.
>> При вводе системы в промышленную эксплуатацию сервер должен
>> быть запущен позавчера.
Здесь, насколько я понимаю, возражений нет?
--
Alexey V. Vissarionov
gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii
GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net
next prev parent reply other threads:[~2019-09-03 10:12 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-25 10:29 [devel] rngd vs haveged vs crng Konstantin Lepikhov
2019-04-25 19:17 ` Andrey Savchenko
2019-04-25 19:21 ` Denis Medvedev
2019-04-25 19:26 ` Michael Shigorin
2019-04-26 0:01 ` Leonid Krivoshein
2019-04-26 0:19 ` Leonid Krivoshein
2019-04-26 4:43 ` Anton Farygin
2019-04-26 0:51 ` Leonid Krivoshein
2019-04-26 12:45 ` Mikhail Efremov
2019-04-26 22:46 ` Alexey V. Vissarionov
2019-04-27 4:17 ` Denis Medvedev
2019-04-27 5:37 ` Ivan A. Melnikov
2019-05-22 23:08 ` Alexey Shabalin
2019-05-23 4:37 ` Anton Farygin
2019-05-27 11:59 ` Michael Shigorin
2019-05-27 14:18 ` Anton Farygin
2019-05-28 0:08 ` Leonid Krivoshein
2019-05-27 23:53 ` Leonid Krivoshein
2019-05-28 5:08 ` Anton Farygin
2019-05-28 8:57 ` Alexey V. Vissarionov
2019-05-28 10:51 ` Anton Farygin
2019-05-29 8:44 ` Anton Gorlov
2019-05-29 8:46 ` Anton Gorlov
2019-05-29 10:52 ` Anton Farygin
2019-05-30 1:11 ` [devel] rngd vs haveged vs crng (khwrngd) Vitaly Chikunov
2019-05-30 4:39 ` Anton Farygin
2019-05-30 5:16 ` Anton Farygin
2019-05-30 16:40 ` Alexey V. Vissarionov
2019-05-30 16:51 ` Anton Farygin
2019-05-30 17:20 ` Alexey V. Vissarionov
2019-05-31 10:51 ` Andrey Savchenko
2019-05-31 6:50 ` Anton Farygin
2019-05-31 10:56 ` Alexey V. Vissarionov
2019-05-31 16:58 ` Anton Farygin
2019-08-30 23:06 ` Alexey Shabalin
2019-08-31 6:36 ` Leonid Krivoshein
2019-08-31 12:35 ` Alexey V. Vissarionov
2019-08-31 14:47 ` Leonid Krivoshein
2019-08-31 15:42 ` Alexey V. Vissarionov
2019-09-02 21:31 ` Leonid Krivoshein
2019-09-02 22:25 ` Paul Wolneykien
2019-09-03 5:58 ` Alexey V. Vissarionov
2019-09-03 6:02 ` Anton Farygin
2019-09-03 8:49 ` Paul Wolneykien
2019-09-03 19:52 ` Leonid Krivoshein
2019-09-03 20:01 ` Andrey Savchenko
2019-09-03 20:56 ` Leonid Krivoshein
2019-09-04 2:22 ` Alexey V. Vissarionov
2019-09-03 23:31 ` Paul Wolneykien
2019-09-03 8:49 ` Paul Wolneykien
2019-09-03 9:54 ` Alexey V. Vissarionov
2019-09-03 10:01 ` Paul Wolneykien
2019-09-03 10:29 ` Alexey V. Vissarionov
2019-09-03 10:35 ` Paul Wolneykien
2019-09-03 10:38 ` Alexey V. Vissarionov
2019-09-03 10:46 ` Michael Shigorin
2019-09-03 7:02 ` Leonid Krivoshein
2019-09-03 8:49 ` Paul Wolneykien
2019-09-03 19:46 ` Leonid Krivoshein
2019-09-03 23:33 ` Paul Wolneykien
2019-09-04 3:36 ` Leonid Krivoshein
2019-09-20 10:47 ` Sergey Bolshakov
2019-09-20 12:23 ` Alexey V. Vissarionov
2019-09-21 0:33 ` Leonid Krivoshein
2019-09-03 7:28 ` Aleksei Nikiforov
2019-09-03 8:25 ` Alexey V. Vissarionov
2019-09-02 23:59 ` Alexey V. Vissarionov
2019-09-03 7:37 ` Leonid Krivoshein
2019-09-03 10:12 ` Alexey V. Vissarionov [this message]
2019-09-03 20:51 ` Leonid Krivoshein
2019-08-31 7:30 ` Anton Farygin
2019-05-31 14:12 ` [devel] rngd vs haveged vs crng Anton Gorlov
2019-05-31 14:12 ` Anton Gorlov
2019-05-30 17:54 ` Alexey V. Vissarionov
2019-05-31 5:08 ` Anton Farygin
2019-05-31 11:01 ` Alexey V. Vissarionov
2019-05-31 17:01 ` Anton Farygin
2019-05-28 0:53 ` Leonid Krivoshein
2019-09-17 20:08 ` Nikolai Kostrigin
2019-09-17 21:51 ` Alexey V. Vissarionov
2019-09-17 23:29 ` Leonid Krivoshein
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190903101217.GT12903@altlinux.org \
--to=gremlin@altlinux.org \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
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