METABYTE
Inapoi la articole

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.

14 mai 20262 min de citit
Mituri despre /dev/urandom: adevărul pe care (nu) îl știați

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.