ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Andrey Savchenko <bircoph@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] [sisyphus] Не переключается в графический режим
Date: Thu, 8 Nov 2018 20:06:28 +0300
Message-ID: <20181108200628.9d78e74b154e6950ef806354@altlinux.org> (raw)
In-Reply-To: <ab431b73-5d63-3e1f-67d2-da0a6ae29243@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 8947 bytes --]

On Wed, 7 Nov 2018 21:38:20 +0300 Leonid Krivoshein wrote:
> 
> 07.11.2018 16:12, Andrey Savchenko пишет:
> > Вот именно. Нужно понимать, что такое случайные числа, чем они
> > отличаются от псевдослучайных, что такое энтропия данных и как это
> > всё используется в криптографии. Пока что Вы пишете полную чушь,
> > демонстрирующую отсутствие понимания темы обсуждения.
> 
> Андрей, Алексей, Дмитрий, не могу с вами согласиться по некоторым 
> вопросам. Изучив тему более глубоко, могу теперь быть докладчиком на 
> следующей конференции! :) Если серьёзно, в споре рождается ИСТИНА. Почти 
> одновременно с нашей дискуссией родился следующий талмуд от коллеги по 
> FLOSS: https://www.2uo.de/myths-about-urandom -- мнение там 
> высказывается противоположное вашему, даются важные замечания 
> относительно оценки размера энтропийного пула (!!!) и новшеств в этой 
> связи в ядре 4.8, приводятся мнения некоторых криптологов. Тебе, Андрей, 
> будет особо интересно узнать, для чего там используется полиномная 
> математика. ;-)

Вот именно, там *мнение*, а не научная статья или монография
известного эксперта. Я же ссылаю на публикации и книги, прошедшие
рецензирование и проверку временем.

Я прочитал таки мнение по твоей ссылке. В ней очень много громких
фраз и очень мало фактов. Весь первый раздел "вопрос – ответ" не
имеет ссылок на рецензируемые источники.

Впрочем, во многом автор прав, он вполне корректно приводит
упрощённую схему получения выхлопов (u)random. Главная проблема вот
в чём: он игнорирует факт изменения энтропии пула, считая его не
относящимся к делу (и без аргументации этого):

What about entropy running low?
It doesn't matter. 

Единственный недостаток /dev/random в том, что он работает в
блокирующем режиме, а urandom — в неблокирующем. Начиная с 4.17 это
исправили (CVE-2018-1108, ты сам приводил). Теперь urandom тоже
может быть блокирован при нехватке исходной энтропии. По-моему, на
это вы и напоролись.

Рекомендую также ознакомиться вот с этой работой (уже писал):
https://factorable.net/weakkeys12.extended.pdf

Даже в указанной тобой работе автор пишет о необходимости
сохранения пула энтропии при завершении работы и его загрузке при
запуске:

On Linux it isn't too bad, because Linux distributions save some
random numbers when booting up the system (but after they have
gathered some entropy, since the startup script doesn't run
immediately after switching on the machine) into a seed file that
is read next time the machine is booting. So you carry over the
randomness from the last running of the machine. 

А теперь представим, что питание внезапно отключилось. Даже у нас в
офисе это не редкость, а ИБП не у всех. Получится, что при
следующей загрузке будет использоваться старый пул. А это не
безопасно, очень, т.к. произойдёт повторное использование одной и
той же "неповторяемой" последовательности.

Шутки со случайностью плохи и стоят дорого. Недаром АНБ засунуло
бэкдор прямо в RNG: Dual_EC_DRBG:
https://en.wikipedia.org/wiki/Dual_EC_DRBG#Weakness:_a_potential_backdoor

> > Для начала рекомендую почитать Applied Cryptography by Bruce
> > Schneier, разделы:
> > 2.8 Random and Pseudo-Random-Sequence Generation.
> > 17.14 Real Random-Sequence Generators
> 
> Вот не стоило здесь это приводить, оно совершенно "ни о чём", чесслово! 

Шнайер и не о чём? Ты уверен? Это один из лучших криптографов мира,
работающий в открытую. Да, первое издание его "Прикладной
криптографии" вышло ещё в 1996 году (и одна конторка очень бесилась
по этому поводу) и не потеряло своей актуальности.

> Чтобы это понять, придётся прочитать про "мифы" от и до -- там это 
> разбивается в пух и прах.

Прочитал. Не нашёл, где разбивается. Там одни крики и никакой
математики. Из фактов есть только одна ссылка на Бернштейна,
которая выкручивается наоборот.

> К приведённой тобой статье 2012 года было куда больше интересных 
> комментариев относительно "природы истинной случайности", сама статья 
> затрагивала haveged постольку-поскольку. Там же автор активно продвигал 
> rngd -- другой юзерспейсный демон. А наша бурная дискуссия по следам 
> этих дебатов подвела следующие итоги:
> 
> 1. haveged в чём-то аналогичен /dev/urandom, он генерирует 
> "случайность", выполняя функцию аналогичную ядру.

Согласен.

> 2. единственная претензия к haveged и /dev/urandom в том, что на выходе 
> получается больше бит, чем на входе.

Да. И этого достаточно, чтоб ни для чего важного его не
использовать. Если долгосрочная защита не нужна, то можно и urandom
использовать, но она может быть нужна. Мы априори не знаем, что
будет делать пользователь, поэтому подставляться нельзя.

> 3. не надо использовать ни haveged, ни rngd в дистрибутивах Альт, чтобы 
> не подрывать себе репутацию.

Да.

> 4. надо находить и устранять причины раннего опустошения энтропии, 
> приводящие к блокировкам.

Думаю, дело не в раннем опустошении, а в раннем ненаполнении. На
бездисковых тонких клиентах это очень даже возможно.

> 5. желательно всем обзавестись такими энтропийными ключиками, как у 
> Алексея! :)

И да, и нет. То, что у Алексея ключик аппаратный — это хорошо, но,
как я помню, там нет равномеризации выборки и не гарантируется
несмещённость. А если третий момент распределения будет сильно
отличен от нуля, то это тоже значимая уязвимость, поскольку делает
возможным корреляционный анализ данных, особенно на большой выборке.

Best regards,
Andrew Savchenko

[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2018-11-08 17:06 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-02 16:20         ` Leonid Krivoshein
2018-11-02 17:05             ` Leonid Krivoshein
2018-11-02 17:20               ` Michael Shigorin
2018-11-02 17:23               ` Leonid Krivoshein
2018-11-02 20:23                 ` Paul Wolneykien
2018-11-02 22:35                   ` Leonid Krivoshein
2018-11-03  1:05                   ` Leonid Krivoshein
2018-11-03  4:01                     ` Denis Medvedev
2018-11-03 11:43                       ` Leonid Krivoshein
2018-11-04 11:17                         ` Leonid Krivoshein
2018-11-05  8:23                         ` Alexey V. Vissarionov
2018-11-05 16:42                           ` Leonid Krivoshein
2018-11-05 17:05                             ` Andrey Savchenko
2018-11-05 17:25                               ` Andrey Savchenko
2018-11-05 17:29                                 ` Andrey Savchenko
2018-11-05 17:32                                   ` Michael Shigorin
2018-11-05 17:48                                     ` Leonid Krivoshein
2018-11-05 18:43                                       ` Vladislav Zavjalov
2018-11-05 18:54                                 ` [devel] " Dmitry V. Levin
2018-11-05 20:57                                   ` Leonid Krivoshein
2018-11-05 21:19                                     ` Andrey Savchenko
2018-11-05 21:42                                       ` Leonid Krivoshein
2018-11-05 22:04                                         ` Dmitry V. Levin
2018-11-06  3:12                                         ` Andrey Savchenko
2018-11-05 21:32                                     ` Dmitry V. Levin
2018-11-05 18:58                                 ` [devel] [sisyphus] " Leonid Krivoshein
2018-11-05 19:46                                   ` Andrey Savchenko
2018-11-05 22:12                                     ` Leonid Krivoshein
2018-11-06  2:59                                       ` Andrey Savchenko
2018-11-06  8:09                                     ` Alexey V. Vissarionov
2018-11-05 20:06                                   ` Andrey Savchenko
2018-11-05  7:37                       ` Alexey V. Vissarionov
2018-11-05 16:25                         ` Leonid Krivoshein
2018-11-05 16:37                           ` Dmitry V. Levin
2018-11-05 16:45                             ` Leonid Krivoshein
2018-11-06 11:02                               ` Alexey V. Vissarionov
2018-11-06 17:36                                 ` Leonid Krivoshein
2018-11-05 17:06                             ` Leonid Krivoshein
2018-11-06 21:00                       ` Sergey Y. Afonin
2018-11-06 22:04                         ` Andrey Savchenko
2018-11-06 22:10                           ` Sergey Y. Afonin
2018-11-06 22:15                             ` Andrey Savchenko
2018-11-06 22:17                               ` Sergey Y. Afonin
2018-11-06 22:29                                 ` Andrey Savchenko
2018-11-06 23:27                                 ` Dmitry V. Levin
2018-11-07  5:42                                   ` Sergey Afonin
2018-11-07 13:12                                     ` Andrey Savchenko
2018-11-07 18:38                                       ` Leonid Krivoshein
2018-11-07 19:41                                         ` Paul Wolneykien
2018-11-07 19:53                                           ` Alexey V. Vissarionov
2018-11-07 22:19                                           ` Leonid Krivoshein
2018-11-08 15:58                                             ` Andrey Savchenko
2018-11-08 19:22                                               ` Andrey Savchenko
2018-11-08 22:29                                                 ` Leonid Krivoshein
2018-11-08 22:34                                                   ` Alexey Shabalin
2018-11-08 22:47                                                     ` Leonid Krivoshein
2018-11-09  9:54                                                       ` Paul Wolneykien
2018-11-08 22:38                                                 ` Alexey Shabalin
2018-11-08 22:39                                                 ` Alexey V. Vissarionov
2018-11-08 16:33                                           ` Andrey Savchenko
2018-11-08 16:35                                             ` Denis Medvedev
2018-11-08 17:15                                               ` Andrey Savchenko
2018-11-08 18:11                                                 ` Denis Medvedev
2018-11-08 22:40                                                 ` Leonid Krivoshein
2018-11-08 22:49                                                   ` Andrey Savchenko
2018-11-08 22:52                                                     ` Leonid Krivoshein
2018-11-08 22:59                                                       ` Andrey Savchenko
2018-11-08 23:49                                                         ` Leonid Krivoshein
2018-11-09  0:39                                                           ` Andrey Savchenko
2018-11-08 23:21                                                       ` Alexey V. Vissarionov
2018-11-09  9:44                                             ` Paul Wolneykien
2018-11-09 10:10                                               ` Andrey Savchenko
2018-11-09 10:40                                                 ` Leonid Krivoshein
2018-11-09 12:52                                                 ` Alexey Shabalin
2018-11-09 13:14                                                   ` Andrey Savchenko
2018-11-09 13:42                                                     ` Антон Мидюков
2018-11-10  9:05                                                   ` Sergey Y. Afonin
2018-11-08 17:06                                         ` Andrey Savchenko [this message]
2018-11-08 23:07                                           ` Alexey V. Vissarionov
2018-11-09  0:30                                             ` Andrey Savchenko
2018-11-09  1:33                                               ` Leonid Krivoshein
2018-11-09  1:54                                                 ` Leonid Krivoshein
2018-11-09  7:39                                                 ` Andrey Savchenko
2018-11-09  6:58                                               ` Alexey V. Vissarionov

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=20181108200628.9d78e74b154e6950ef806354@altlinux.org \
    --to=bircoph@altlinux.org \
    --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