From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Paul Wolneykien To: devel@lists.altlinux.org References: <4beb559f-4864-35a2-b8c8-3fa0909d6069@basealt.ru> <20190530164054.GA27835@altlinux.org> <4041b3c1-b134-9720-0f01-1a2527ed1721@basealt.ru> <20190531105614.GD27835@altlinux.org> <975ac233-dc84-d9eb-1d24-975ee807c075@basealt.ru> <20190831123520.GD12903@altlinux.org> <936a2336-e8c6-8274-37cf-a8059ee9bf44@gmail.com> <20190831154243.GE12903@altlinux.org> <7e2bba2a-867f-b8a0-6e27-1a07521e13fb@gmail.com> Organization: ALT Linux Team Message-ID: <77efad51-4876-fa68-f8e5-291a3bb5a058@altlinux.org> Date: Tue, 3 Sep 2019 01:25:00 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 MIME-Version: 1.0 In-Reply-To: <7e2bba2a-867f-b8a0-6e27-1a07521e13fb@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: ru Content-Transfer-Encoding: 8bit Subject: Re: [devel] rngd vs haveged vs crng (khwrngd) X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 Sep 2019 22:25:01 -0000 Archived-At: List-Archive: List-Post: 03.09.2019 00:31, Leonid Krivoshein пишет: >>> И здесь речь о случайных числах для запуска >>> самого systemd, который может стартануть и быстрее, чем через >>> три секунды. Мне тоже стало интересно, о чём вы тут спорите. 31.08.2019 18:42, Alexey V. Vissarionov пишет: >> Он при всем желании не может стартануть раньше, чем ядро скажет >> run_init_process("/sbin/init"); Означает ли это, что в ядре есть код, который сперва ждёт накопления N байт хорошей энтропии, и только после этого выполняет run_init_process("/sbin/init") ? 03.09.2019 00:31, Leonid Krivoshein пишет: > Процессы инициализации ядра и запуска /sbin/init асинхронны. 31.08.2019 18:42, Alexey V. Vissarionov пишет: >> 2. к моменту начала использования недоверенного RNG пул должен >> быть заполнен данными из других источников. Когда читаешь "должен быть заполнен" как отдельное условие, то кажется, что тут есть элемент желательности. Мол, должен быть заполнен, если всё идёт по плану. А если не заполнен, то значит вы это не обеспечили, должным образом не настроили и т.д. Если это так, то мне стало интересно, почему это сделано так сложно, что изначально содержит в себе потенциальную возможность race и deadlock? По описываемым симптомам, проблема явно в том, что PID 1 стартует раньше, чем заполнен пул энтропии (необходимым и достаточным её количеством). Но поскольку за запуск PID 1 и за энтропию отвечает одно и то же ядро, то непонятно, почему нельзя сначала накопить энтропию (послушать диски, сеть и т.п.), и только потом уже запустить PID 1?