Всякий раз, когда я кошка /proc/sys/kernel/random/entropy_avail
внутри моих контейнеров Docker (на основе Linux 5.10) я получаю двузначный результат, что, по-видимому, смехотворно мало.Предположительно все, что меньше 4 цифр, плохо, и идеально держать его близко к 4096 (максимум).
Я читал о демоне сбора энтропии под названием иметь
, но он предположительно устарел, начиная с ядра Linux 5.6, поэтому я больше не уверен, что это правильное решение.
Почему у меня такая низкая энтропия внутри контейнеров Docker с ядром 5.10 и что я могу сделать, чтобы это исправить?
Первоначально я обнаружил это, когда скрипт Python «цитата дня» продолжал выбирать одни и те же несколько цитат. Я не задавал вручную стандартный модуль Python Random, но, согласно его документации и исходному коду, он должен заполнять себя из системной энтропии (непосредственно через гетэнтропия (3)
или получить получитьслучайно(2)
если они доступны, что я предполагаю, они будут в типичной современной среде Linux или через /dev/случайный
или же /dev/urandom
в противном случае или вернуться к использованию системного времени и PID в качестве крайней меры). Так что я предполагаю, что моя энтропия была настолько низкой, что гетэнтропия (3)
возвращал плохую энтропию? В любом случае, ручное заполнение модуля Python Random системным временем решило эту проблему.
Однако теперь меня беспокоит, что мои веб-серверы, использующие TLS, и мои серверы аутентификации, работающие в одинаковых контейнерах Docker, могут не иметь достаточной энтропии для генерации надежных ключей, одноразовых блокнотов, задач и многого другого. Итак, я хочу разобраться, как гарантировать, что мои контейнеры Docker получают достаточно энтропии, чтобы хорошо выполнять свою работу.
Это не критическая национальная инфраструктура или что-то, где установка аппаратного модуля ГСЧ была бы уместной. Это всего лишь размещенные в облаке контейнеры Docker, поэтому я надеюсь найти решение, которое смогу реализовать в своих контейнерах/образах Docker.