Devo impostare la lunghezza massima dei caratteri per la password usando bcrypt?

3

Uso bcrypt per creare un hash della password e nella documentazione php che dice

Caution: Using the PASSWORD_BCRYPT for the algo parameter, will result in the password parameter being truncated to a maximum length of 72 characters.

Se permetto agli utenti di digitare più di 72 caratteri è come se li ingannassi perché non usano la password che pensano di usare. Quindi la mia domanda è che ho bisogno di impostare la lunghezza massima o no

    
posta Almis 13.04.2015 - 18:11
fonte

2 risposte

6

Bene, Dmitry ha ragione quando dice che 72 personaggi sono buoni. Se i personaggi sono abbastanza casuali. (1.78 bit per carattere).

È possibile utilizzare l'approccio descritto (avviso di sicurezza che la password è "troppo lunga"). O semplicemente limitare la lunghezza della password (con avviso di sicurezza).

Se si prevede che gli utenti inseriscano più di 72 caratteri, è possibile utilizzare SHA-512 per pre-scalare la password, in modo da alimentare l'hash nel bcrypt (come password) e non nella password effettiva. Non ci sono problemi di sicurezza con questo approccio. Tuttavia non è standard, quindi se hai bisogno di fornire l'interoperabilità con altre applicazioni (non le tue) non puoi usarlo.

    
risposta data 13.04.2015 - 18:59
fonte
1

Non me ne preoccuperei. 72 caratteri è una lunghezza discreta della password e il troncamento della password è una pratica comune. I tuoi utenti si fidano di te con molte opzioni di sicurezza (come l'algoritmo di hash e il numero di iterazioni) che influenzano la sicurezza molto più della lunghezza della password.

L'implementazione di un avviso non danneggerebbe comunque, ovvero se non hai nient'altro da implementare.

    
risposta data 13.04.2015 - 18:25
fonte

Leggi altre domande sui tag