• Linux идиоты образование Вот, почитайте, что пишет один мой знакомый преподаватель. Оптимизация образования.
    (15:28:23) ***: Не использовать /dev/random.
    (15:28:33) ***: Вместо него только /dev/urandom.
    (15:28:46) ***: Да, Я сам так и делаю.
    (15:28:54) ***: И студентов так же учил.
    (15:29:26) ***: Рандом не работает и не нужен.
    (15:29:57) ***: Использовать в скриптах на их серверах нужно только /dev/urandom.
    (15:30:16) ***: Вот, тогда будет хорошо, очень хорошо.
    (15:31:11) ***: Т.е. поступить в точности наоборот, как их там учат на защите информации.
    (15:31:43) ***: Но эти защитники мало чего понимают в линуксовых генераторах случайных чисел.
    (15:32:03) ***: А то бы знали, что /dev/random не нужен.
    (15:32:43) ******: А почему /dev/random не нужен?
    (15:32:46) ******: дай ссылку.
    (15:33:11) ***: Потому что он использует тот же самый генератор, что и сам /dev/urandom.
    (15:33:33) ***: Просто он лочится, когда у него оценка энтропии низкая.
    (15:33:56) ***: Это теоретически нужно только один раз --- при загрузке системы.
    (15:34:14) ***: Чтобы начальное состояние генератора было не так легко вычислять.
    (15:34:42) ***: А так --- получать "надёжные случайные числа" он не умеет, а сами такие числа никогда не нужны.
    (15:35:15) ***: Все практические алгоритмы криптографии имеют вычислительную стойкость, и для них псевдослучайных числе более чем достаточно.
    (15:35:53) ***: Поэтому торчащий в Линуксе /dev/random --- это порождение сумрачного гения линуксоидов.
    (15:36:06) ***: Вот во всех бсдях это просто одно и тоже.
    ♡ recommended by @dluciv  and 1 others

Replies (23)

  • @Strephil, 2uo.de я просто оставлю это здесь для полноты
  • @qnikst, TLDR — /dev/urandom использовать вполне можно, но сначала нужно вычитать достаточное количество данных
  • @qnikst, хотя в статье несколько другой вывод
  • @Strephil, что не так-то? Всё правильно написано.
  • @Zert, мне, кстати, интересно ТС понимает, что написано правильно или посмеяться выложил.
  • @qnikst, вообще-то посмеяться, но похоже, что он прав.
  • @Strephil, А чо не так? Атаку на /dev/urandom в студию плз.
  • @Strephil, Чего-то даже омские линуксоиды загрустили, видя это.
  • @OmskLUG, о, наверное омские линуксоиды смогут посовещаться и защитить мнение о том, что блокирующийся /dev/random где-т нужен
  • @Strephil, Чота я не понял логики. Есть два ГПСЧ, один из которых лочится когда у него энтропии не хватает, а другой — не лочится. И почему первый не нужен? Потому что нет задач, для которых потребителю потребовалось бы точно знать, достаточно уже пула энтропии или нет?
  • @qnikst, here, I fixed it: "сначала надо прочитать хоть что-то из /dev/random"
  • @blaze, Обоснуй.
  • @L29Ah, ну так в статье очень понятно об этом написано: /dev/random и /dev/urandom кормятся с одной сиськи. /dev/random считает энтропию, /dev/urandom нет. Как следствие, если сразу после старта системы ты что-то попытаешься прочитать из /dev/urandom он охотно вернет тебе сколько хочешь случайных чисел из пула, инициализированного нулями, поскольку энтропию туда положить еще не успели (это приближение, немножко успели, но слишком мало, можно попробовать перебрать или как-то еще раскрутить).
    Если же сначала прочитать хоть один байт из /dev/random, то этот байт ты получишь не раньше, чем ДСЧ будет нормально инициализирован и после этого /dev/urandom тоже будет нормально инициализирован.
  • @blaze, Тогда ты всё-таки хочешь не читать её, а select'ать на чтение.
  • @L29Ah, в целом неважно, но select легче сломать случайно в очередном ядре :) А read если вернул байт, то вернул.
  • @blaze, Сложнее, потому что огромное количество софта им пользуется, включая удав и иксы.
  • @L29Ah, селектом на /dev/random? O_O
  • @blaze, Как будто что-то плохое.
  • @blaze, Селектом на что угодно. Селект на /dev/urandom должен быть как-то иначе реализован штоле.
  • @L29Ah, Конечно. В каждом device driver есть отдельная точка входа на poll/select/всю эту фигню, там можно что угодно наворотить, начиная с ENOTSUP или return 0;
  • @OmskLUG, иксам-то зачем
  • @Strephil, А разве доказано, что существуют генераторы псевдослучайных чисел? разве это не открытая проблема? Есть ли такой генератор, чей выхлоп нельзя отличить от рандома, например, за полиномиальное время?
  • @Strephil, Тем временем в gnupg:
    We need to generate a lot of random bytes. It is a good idea to perform
    some other action (type on the keyboard, move the mouse, utilize the
    disks) during the prime generation; this gives the random number
    generator a better chance to gain enough entropy.