hackweb
appunti di hacking e tecnologia
IT EN
menù principale
menù utente
non sei loggato

RNG debole: token prevedibili

10 novembre 2025 · 1 min di lettura · #crypto #random #tokens

Token di sessione, reset password, CSRF, API key: tutti devono essere imprevedibili. Un PRNG non crittografico (rand(), mt_rand(), Math.random()) è predicibile dopo pochi output.

Il problema

mt_rand() ha uno stato ricostruibile; se il seed deriva dal tempo (srand(time())), lo spazio è minuscolo. Un token di reset così si forza offline.

// SBAGLIATO
$token = md5(uniqid(rand(), true));
// GIUSTO
$token = bin2hex(random_bytes(32));

Difesa

Usa un CSPRNG: random_bytes (PHP), secrets (Python), crypto.randomBytes (Node), /dev/urandom. Almeno 128 bit di entropia. Confronta i token in tempo costante e falli scadere.


« torna alla home

ultimi post
 
il tuo indirizzo IP:
216.73.216.108
visitatore #1
MOTD:
Ogni astrazione perde da qualche parte.
Qui guardiamo dove.
argomenti