From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=ALL_TRUSTED,BAYES_00, FUZZY_XPILL,HEADER_FROM_DIFFERENT_DOMAINS,RP_MATCHES_RCVD autolearn=no autolearn_force=no version=3.4.1 Date: Tue, 3 Sep 2019 08:58:55 +0300 From: "Alexey V. Vissarionov" To: ALT Linux Team development discussions Message-ID: <20190903055855.GP12903@altlinux.org> References: <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> <77efad51-4876-fa68-f8e5-291a3bb5a058@altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <77efad51-4876-fa68-f8e5-291a3bb5a058@altlinux.org> Cc: gremlin@altlinux.org 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: Tue, 03 Sep 2019 05:58:58 -0000 Archived-At: List-Archive: List-Post: On 2019-09-03 01:25:00 +0300, Paul Wolneykien wrote: >>> Он при всем желании не может стартануть раньше, чем ядро >>> скажет run_init_process("/sbin/init"); > Означает ли это, что в ядре есть код, который сперва ждёт > накопления N байт хорошей энтропии, и только после этого > выполняет run_init_process("/sbin/init") ? В ядре такой проверки нет. И вероятность ее появления лично я оцениваю как пренебрежимо малую. >>> 2. к моменту начала использования недоверенного RNG пул >>> должен быть заполнен данными из других источников. > Когда читаешь "должен быть заполнен" как отдельное условие, > то кажется, что тут есть элемент желательности. Мол, должен > быть заполнен, если всё идёт по плану. Именно так. Потому что если он не будет заполнен - недоверенный источник может выдать детерминированную последовательность и тем самым ослабить криптозащиту. > А если не заполнен, то значит вы это не обеспечили, должным > образом не настроили и т.д. Разумеется. > Если это так, то мне стало интересно, почему это сделано так > сложно, что изначально содержит в себе потенциальную возможность > race и deadlock? Строго наоборот: очень долгое время (много лет) проблемы просто не возникали, так как ядро успевало набрать энтропию всеми четырьмя возможными способами - add_device_randomness(), add_disk_randomness(), add_input_randomness() и add_interrupt_randomness(). Сейчас компутеры стали производительнее и загружаются быстрее, да еще и люди мешают: источники энтропии инициализируют поздно, а данные из ГСЧ хотят рано. > По описываемым симптомам, проблема явно в том, что PID 1 стартует > раньше, чем заполнен пул энтропии (необходимым и достаточным её > количеством). Но поскольку за запуск PID 1 и за энтропию отвечает > одно и то же ядро, то непонятно, почему нельзя сначала накопить > энтропию (послушать диски, сеть и т.п.), и только потом уже > запустить PID 1? Почему нельзя-то? Можно. Но, похоже, никому не нужно. -- Alexey V. Vissarionov gremlin ПРИ altlinux ТЧК org; +vii-cmiii-ccxxix-lxxix-xlii GPG: 0D92F19E1C0DC36E27F61A29CD17E2B43D879005 @ hkp://keys.gnupg.net