From: Alexey Gladkov <gladkov.alexey@gmail.com> To: make-initrd@lists.altlinux.org Subject: Re: [make-initrd] q: фича для зарыбливания RNG Date: Mon, 5 Jul 2021 13:45:11 +0200 Message-ID: <20210705114511.goynngedmfptyric@example.org> (raw) In-Reply-To: <20210705111130.GX2168@imap.altlinux.org> On Mon, Jul 05, 2021 at 02:11:30PM +0300, Michael Shigorin wrote: > Здравствуйте. > Коллеги, в связи с очередной невменяемостью апстрима systemd > (по совместительству udevd), в v240 выразившейся в повышении > требований к качеству псевдослучайных чисел на ранней стадии > загрузки[1,2], и возникающих вследствие этого залипаний этой > самой ранней стадии загрузки в ожидании каких-либо событий > -- бывает достаточно нажать Shift или вставить USB-флэшку -- > предлагаю реализовать фичу, которая бы обеспечивала начальную > инициализацию ядерного RNG с опорой на то, что при старте > может "дребезжать" (особенно при наличии хоть какого-то RTC). > > У нас тут образовался хак на скору руку, но он прямо по > rc.sysinit и заведомо неоптимален, вследствие чего далее > был предложен такой вид кусочка на шелле: > > --- > { > # Initialize bash random seed using current time nanoseconds > # to avoid possible kernel pool usage > RANDOM=$((10#$(date "+%N") % 32768)) > seed=$( { dmesg; ls -l /var/log /proc; } | md5_bin | od -h ) > for ((i=0; i<64; i++)); do > echo $seed $RANDOM $(date "+%s%N") | md5_bin > done > /dev/random > unset i seed > } & > --- > > или даже такой (но это ещё 128 форков): > > --- > { > export \ > RANDOM=$((10#$(date "+%N") % 32768)) \ > seed=$( { dmesg; ls -l /var/log /proc; } | md5_bin | od -h ) > for ((i=0; i<64; i++)); do > ( echo $seed $RANDOM $(date "+%s%N"); ls -l /proc ) | md5_bin > done > /dev/random > unset i seed > } & > --- Я уже видел похожий код и мы с тобой что-то подобное обсуждали. Я помню, что тогда была проверка а нужно ли делать такой хак. > Прилагаю хак и md5_bin.c, прошу совета: > * стоит ли так делать; > * как лучше собирать md5_bin имени ilyakurdyukov@; > * куда лучше поместить скрипт. > > [1] http://systemd.io/RANDOM_SEEDS > [2] http://github.com/systemd/systemd/blob/v240/NEWS#L200 Насколько вижу это всё касается исключительно systemd. Насколько мне известно udevd не требует наличия энтропии. Разве не правильнее добавить код в systemd так как это будет на си и будет оптимальнее ? -- Rgrds, legion
next prev parent reply other threads:[~2021-07-05 11:45 UTC|newest] Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-07-05 11:11 Michael Shigorin 2021-07-05 11:45 ` Alexey Gladkov [this message] 2021-07-05 15:49 ` Michael Shigorin 2021-07-05 16:21 ` Alexey Gladkov
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=20210705114511.goynngedmfptyric@example.org \ --to=gladkov.alexey@gmail.com \ --cc=make-initrd@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
Make-initrd development discussion This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/make-initrd/0 make-initrd/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 make-initrd make-initrd/ http://lore.altlinux.org/make-initrd \ make-initrd@lists.altlinux.org make-initrd@lists.altlinux.ru make-initrd@lists.altlinux.com public-inbox-index make-initrd Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.make-initrd AGPL code for this site: git clone https://public-inbox.org/public-inbox.git