Algoritmo di hashing per cryptsetup

2

Cifrò il mio SSD usando cryptsetup e vorrei sapere quale hashing algprithm usare.

Prima di tutto, benchmark cryptsetup:

PBKDF2-sha256 262144 iterazioni al secondo

PBKDF2-sha512 167397 iterazioni al secondo

PBKDF2-ripemd160 362077 iterazioni al secondo

PBKDF2-whirlpool 190511 iterazioni al secondo

Stavo pensando di usare PBKDF2-sha512 ma forse PBKDF2-whirlpool è meglio? Mi piacerebbe aspettare circa 2 secondi all'avvio per hashing quindi sarebbe qualcosa come 400k iterations se whirlpool e 350k se sha512.

Quale pensi sia la migliore?

    
posta trog 15.04.2015 - 15:39
fonte

1 risposta

2

Il punto delle forti funzioni di hashing della password è rendere l'elaborazione della password lenta in modo che gli aggressori trovino più difficile eseguire un attacco di forza bruta sulla tua password. Sfortunatamente rende anche più lento per te; questo è il limite dell'esercizio. Al meglio , rendi la funzione n più lenta per te e n volte più lenta (con lo stesso n ) per l'attaccante; ma l'attaccante può acquistare alcuni "hardware specializzati" (ad esempio GPU o FPGA) che, a seconda della funzione utilizzata, possono permettergli di soffrire meno di te da tutte le iterazioni.

Quindi ciò che si desidera evitare è una funzione che aumenta l'attività di calcolo più per te che per l'utente malintenzionato. Usi una semplice CPU generica, probabilmente una sorta di PC compatibile x86. L'attaccante può acquistare PC, ma può anche acquistare alcune GPU o alcuni FPGA che possono fornire più potenza di calcolo (cioè più tentativi di password al secondo) per lo stesso budget.

Quindi, dovresti evitare SHA-256 e RIPEMD-160, entrambi basati su operazioni con interi a 32 bit che sono notevolmente efficienti su GPU. SHA-512 sarebbe un affare migliore: la CPU del tuo PC è piuttosto buona con operazioni a 64 bit (sia in modalità a 64 bit, sia tramite opcode SSE2 in modalità a 32 bit), mentre una GPU tipica no. L'uso di SHA-512 renderà l'attività 2 o 3 volte più difficile per l'aggressore che maneggia la GPU (guadagnerà comunque dall'uso della GPU, ma non tanto quanto con l'SHA-256).

Whirlpool è normalmente implementato con tabelle di ricerca e probabilmente sarà piuttosto lento su una GPU (ma dovrebbero essere esplorate le implementazioni bitslice). Tuttavia, ci si può aspettare che Whirlpool si dia una mappa abbastanza buona all'Fpga (proprio come AES), quindi se temi gli attaccanti avanzati che non evitano l'uso di FPGA, allora non usare Whirlpool qui.

Per riassumere , si può dire che PBKDF2 / SHA-512 sia la scelta migliore (probabilmente sarebbe meglio se si potesse usare bcrypt). Tuttavia, ricorda che tali differenze tendono ad essere sminuite da ciò che puoi ottenere con un password più sicura . L'uso di una password ad alta entropia è la prima linea di difesa e più importante della scelta della funzione di hashing.

    
risposta data 15.04.2015 - 15:53
fonte

Leggi altre domande sui tag