From: Leonid Krivoshein <klark.devel@gmail.com>
To: devel@lists.altlinux.org
Subject: Re: [devel] rngd vs haveged vs crng (khwrngd)
Date: Tue, 3 Sep 2019 22:46:57 +0300
Message-ID: <aa97c5e7-0597-2374-9c1a-58028f935126@gmail.com> (raw)
In-Reply-To: <8b8855ce-2d5b-e35b-cc7a-855b8f4edc50@altlinux.org>
03.09.2019 11:49, Paul Wolneykien пишет:
> 03.09.2019 10:02, Leonid Krivoshein пишет:
>> 03.09.2019 01:25, Paul Wolneykien пишет:
>>> 03.09.2019 00:31, Leonid Krivoshein пишет:
>>>>>> И здесь речь о случайных числах для запуска
>>>>>> самого systemd, который может стартануть и быстрее, чем через
>>>>>> три секунды.
>>> Мне тоже стало интересно, о чём вы тут спорите.
>> В данном случае речь о проблемах, обсуждаемых в статье:
>> https://systemd.io/RANDOM_SEEDS -- разработчики systemd заверяют, что
>> случайные числа на раннем этапе запуска им тоже нужны, но их источник не
>> обязан быть криптографического качества.
> И, стало быть, разницы между /dev/random и /dev/urandom им
> недостаточно? Одного слишком много — встаёт колом, другой — слишком
> низкого качества. В таком случае им нужен третий — какой-нибудь
> /dev/boot_random, качество и количество энтропии в котором будет
> необходимого и достаточного качества.
> Но мне кажется, что это ошибка и вполне опасная. В вопросах
> безопасности "серединный путь" не годится, я считаю. Если уж
> пользователь выбрал ОС с криптозагрузкой (назовём это так), то
> требования должны быть высокими во избежание. С быстрой загрузкой без
> спецоборудования это вряд ли совместимо и поэтому не нужно пытаться
> делать вид, что это так.
В целом, согласен. Статус этого документа не совсем ясен. Я бы назвал
это "отмазками". Преподносится как информация для разработчиков. И
действительно из этого документа можно задействовать множество способов,
где железо позволяет. А где не позволяет, здесь говорится, чем грозит и
что это будет вашим риском. Всё честно.
>
>> В принципе, даже 1 бит энтропии
>> вместе с текущим временем и glibc rand() это обеспечивают. Поэтому речь
>> явно не только запуске самого systemd, иначе бы так сильно не
>> заморачивались.
> А кто ещё, sshd?
Нет, даже при запуске ssh-keygen -A используется /dev/urandom для
инициализации внутреннего ГПСЧ. Возможности сменить источник СЧ я там не
увидел. Но в командной строке есть возможность использовать готовый
сертификат. Тот факт, что при запуске службы возможна генерация
криптографических пар таким вот генератором меня тоже удивляет. Тут надо
иметь ввиду, что зависимость от /dev/urandom порождает меньшее из зол: с
какого-то ядра (4.16 кажись) принято блокировать обращение к
/dev/urandom до полной инициализации пула ядра. Судя по логам, первым,
кто оттуда хапает трижды по 16 байт -- systemd. В дальнейшем в лог
выводятся лишь предупреждения о недостатке энтропии, но блокировки не
выполняется. И нет, на практике с sshd проблем не вылазило ни разу.
Проблемы вылазили и будут вылазить со всей криптухой, начиная с
cryptsetup до всяких keyring'ов.
> Почему с ним раньше проблем не возникало?
Тут gremlin@ уже верно ответил. Лишь добавлю деталей: массовый переход с
HDD на SSD/NVME (прерываний в первых секундах старта ощутимо меньше),
более быстрый параллельный запуск. Раньше можно было увидеть загруженный
desktop MATE за 14-20 секунд, на некоторых новых машинках уже 5-7
секунд. Раньше загрузка была последовательной, сам SysVinit не требовал
ГПСЧ.
> Ну и опять
> же, на мой взгляд это проблема, в первую очередь, в диагностике. Если
> какая-то служба долго не стартует, то в журнале должно быть что-то про
> нехватку энтропии.
Тут сложнее. Никто (systemd тоже) не может заранее предугадать, какая из
служб попросит у ядра getrandom(), а на время блокировки все зависимые
службы не будут грузиться. Например, при запуске графического сеанса с
включенным авто-входом в MATE, стартует gnome-keyring, и вместо рабочего
стола несколько минут чёрный экран. В журнале dmesg через несколько
минут может появиться одна запись. Типа crng init done. Тогда процесс
загрузки продолжится. Ускорить помогает хаотичное движение мышкой и
нажатие клавиш.
--
Best regards,
Leonid Krivoshein.
next prev parent reply other threads:[~2019-09-03 19:46 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 [this message]
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
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=aa97c5e7-0597-2374-9c1a-58028f935126@gmail.com \
--to=klark.devel@gmail.com \
--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