Utilità di bcrypt (UUIDv4 ())

2

Uno dei miei colleghi sta lavorando alla protezione degli ID client e dei segreti OAuth 2 per il nostro server OAuth e ha ideato questo schema in cui non solo avrebbe utilizzato UUID v4 per generare valori casuali, ma anche crittografarli. Un altro collega ha chiesto qual è lo scopo di bcrypting, a cui ha ottenuto la risposta che solo UUID v4 "perde 4 bit di casualità" (il che renderebbe i valori generati più ipotizzabili).

La domanda sembrava legittima per quanto ne so, ma non ho trovato nulla riguardo alla parte "perde 4 bit di casualità".

La mia domanda è se l'utilizzo di bcrypt qui ha in realtà un ulteriore vantaggio e, in caso affermativo, quanti benefici aggiuntivi.

Non sono molto esperto quando si tratta di crittografia, cifrari, numeri casuali crittografati e così via, quindi i punti di riferimento per ulteriori approfondimenti relativi a questa particolare domanda sarebbero apprezzati.

    
posta Ionuț G. Stan 11.07.2014 - 15:53
fonte

1 risposta

4

UUID di tipo "v4" devono essere generati con 122 bit casuali:

o  Set all the other bits to randomly (or pseudo-randomly) chosen
   values.

Tuttavia, non è detto che i detti bit debbano provenire da un Cryptographically secure PRNG (sezione 4.5 raccomanda ma non lo impone).

SE i 122 bit provengono in realtà da un PRNG sicuro, quindi sono immuni alla ricerca esauriente, perché tale spazio è troppo grande per l'esplorazione pratica (vedi questa risposta per ulteriori dettagli). L'aggiunta di bcrypt è quindi solo spreco di CPU e complessità extra gratuita, che non è mai una buona cosa, specialmente in sicurezza.

Se i 122 bit non prodotti da un PRNG sicuro, allora hai un problema. È concepibile che bcrypt potrebbe in qualche modo mitigare il problema, nello stesso modo in cui bcrypt è in grado di tollerare le password , che possono essere descritte solo come "chiavi a bassa entropia". Ma dipende davvero da quanto insicuro sia il PRNG. Una "sicurezza" PRNG fa affidamento sulla sua imprevedibilità; qui, "quanto" l'attaccante non conosce i 122 bit. Se quel "quanto" è veramente basso, allora bcrypt non salverà il giorno.

Quindi la mia opinione è che quando la crittografia di un UUID è appropriata, l'UUID è non appropriato per l'uso come chiave segreta, e dovresti correggerlo.

Per quanto riguarda i "3 bit extra di casualità", questo sembra confuso, o confuso, o entrambi. Non ho idea da dove venga questa idea.

    
risposta data 11.07.2014 - 16:17
fonte

Leggi altre domande sui tag