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