Mituri despre /dev/urandom: adevărul pe care (nu) îl știați
Desființăm miturile despre /dev/urandom — nu e un manual plictisitor, ci o discuție pe cinste.

Dacă ați scris vreodată cod care generează numere aleatoare, cu siguranță ați auzit: «urandom nu e sigur, folosește /dev/random». Spoiler: e un mit care trăiește în mintea dezvoltatorilor mai încăpățânat decât bug-urile în codul vechi.
Să lămurim. /dev/urandom nu se blochează dacă entropia e scăzută — de aici vine confuzia. Pe vremuri (la începuturile Linux) chiar putea genera numere slabe. Dar de la kernelul 4.8 (2016), /dev/urandom se inițializează o dată la boot, folosind o sursă hardware de entropie. După aceea, e la fel de sigur ca /dev/random, dar fără blocări.
/dev/random, în schimb, e un încetinit. Poate să se oprească așteptând „suficientă entropie”, ceea ce în producție duce la panică și timeout-uri. Imaginați-vă serverul blocat, așteptând să mișcați mouse-ul sau să apăsați o tastă — și e un server în cloud, fără mouse.
Apropo, în sistemele moderne, /dev/random nu se mai blochează (de la kernelul 5.4), dar miturile persistă. Data viitoare când cineva la code review zice „folosește /dev/random”, puteți să dați un link către acest articol. Sau zâmbiți și aruncați cu /dev/urandom.
Comentariul echipei METABYTE: Miturile despre securitate sunt ca bug-urile: cu cât mai vechi, cu atât mai persistente. În proiectele noastre verificăm aceste lucruri, ca producția voastră să nu aștepte entropia.
URMATORUL PAS
Ti-a placut abordarea?
Aplicam aceleasi principii in proiectele clientilor: AI, automatizari, produse care nu se sting dupa lansare.