Мифы о /dev/urandom: правда, которую вы (не) знали
Разбираем популярные заблуждения о /dev/urandom — и это не очередной скучный мануал.

Если вы хоть раз писали код, генерирующий случайные числа, то наверняка слышали: «urandom — это небезопасно, используй /dev/random». Спойлер: это миф, который живёт в головах разработчиков упорнее, чем баги в легаси.
Давайте разберёмся. /dev/urandom не блокируется, если энтропии мало — вот откуда ноги растут. Когда-то (на заре Linux) это действительно могло давать слабые случайные числа. Но с версии ядра 4.8 (2016 год) /dev/urandom инициализируется один раз при загрузке, используя аппаратный источник энтропии. После этого он так же криптостоек, как его старший брат /dev/random, но без блокировок.
А вот /dev/random — тот ещё тормоз. Он может встать колом, дожидаясь «достаточной энтропии», что в продакшене чревато паникой и таймаутами. Представьте, что ваш сервер завис, пока ждёт, когда мышь пошевелят или клавишу нажмут — а это сервер в облаке, где мыши нет.
Кстати, в современных системах /dev/random тоже перестал блокироваться (с ядра 5.4), но мифы живут. Так что в следующий раз, когда кто-то на code review скажет «используй /dev/random», можете вежливо ткнуть ссылкой на эту статью. Или просто улыбнуться и кинуть в него /dev/urandom.
Комментарий студии METABYTE: Мифы о безопасности — как баги: чем старше, тем упорнее. Мы в своих проектах всегда проверяем такие вещи, чтобы ваш продакшен не зависал в ожидании энтропии.
СЛЕДУЮЩИЙ ШАГ
Понравилось как мыслим?
Применяем те же принципы в клиентских проектах: AI, автоматизации, продукты, которые не умирают после релиза.