Archiviazione password con Jasypt StrongPasswordEncryptor vs PBKDF2

0

Attualmente stiamo lavorando all'autenticazione per un'applicazione web. Per l'archiviazione delle password, utilizziamo Jasypt StrongPasswordEncryptor con SHA-256 e decine di migliaia di iterazioni. Entrando nel progetto, avevo sperato di implementare PBKDF2-HMAC-SHA512 (non credo che potrei ottenere la trazione su un interruttore per bcrypt o scrypt).

Il Jasypt StrongPasswordEncryptor semplicemente re-hash il passato comunque molte volte specificato usando SHA-256 (o altro algoritmo scelto), invece delle iterazioni HMAC in PBKDF2. Comprendo che il vantaggio di sicurezza di PBKDF2 è la sua bassa velocità, mentre SHA è veloce. Tuttavia, poiché PBKDF2 sta semplicemente reiterando HMAC-SHA (o qualche altra funzione), è difficile mostrare un miglioramento rispetto al metodo corrente.

Se il miglioramento della sicurezza derivante dal cambiamento è minimo, è improbabile che venga fatto. Se c'è un sostanziale miglioramento della sicurezza, è ancora abbastanza presto nel progetto da realizzare.

Di cosa si tratta HMAC-SHA che lo rende migliore / più lento di un normale SHA?

Che tipo di informazioni posso portare a una richiesta di modifica - quanto miglioramento ci sarebbe?

La modifica è necessaria?

    
posta Applesnacks 12.08.2014 - 19:12
fonte

1 risposta

3

Il StrongPasswordEncryptor di Jasypt è un caso speciale di StandardStringDigester di Jasypt che, nonostante il nome, non è standard in tutti. Dalla descrizione, sembra essere una costruzione personalizzata, che ha quindi lo stesso problema di qualsiasi altra costruzione non standard: non è stata rivista. Non sappiamo come progettare funzioni protette e il meglio che possiamo fare è mettere le funzioni sotto controllo collettivo di (molti) crittografi per un po 'di tempo (anni). Una funzione non standard non ha beneficiato anche di questo, quindi non sappiamo davvero se è buono o no.

Non seguire gli standard peer-reviewed è, a mio parere, un grave difetto di sicurezza. Passare a PBKDF2 sarebbe quindi un miglioramento significativo. (Ma prevedo che le persone che si dedicano a funzioni personalizzate penseranno diversamente.)

Ovviamente bcrypt è meglio .

    
risposta data 12.08.2014 - 20:15
fonte

Leggi altre domande sui tag