¿Debo establecer la longitud máxima de caracteres para la contraseña usando bcrypt?

3

Estoy usando bcrypt para crear un hash de contraseña y en la documentación de php que dice

  

Precaución: el uso de PASSWORD_BCRYPT para el parámetro algo resultará   en el parámetro de la contraseña que se trunca a una longitud máxima de 72   personajes.

Si permito que los usuarios escriban más de 72 caracteres, es como si los engañara porque no usan la contraseña que creen que usan. Así que mi pregunta es si necesito establecer la longitud máxima o no

    
pregunta Almis 13.04.2015 - 18:11
fuente

2 respuestas

6

Bueno, Dmitry tiene razón cuando dice que 72 caracteres son buenos. Si los personajes son lo suficientemente aleatorios. (1.78 bits por carácter).

Puede utilizar el método descrito (advertencia de seguridad de que la contraseña es "demasiado larga"). O simplemente limite la longitud de la contraseña (con advertencia de seguridad).

Si espera que sus usuarios ingresen más de 72 caracteres, también podría usar SHA-512 para prehash la contraseña, así que ingresaría el hash en el código bcrypt (como contraseña) y no la contraseña real. No hay problemas de seguridad con este enfoque. Sin embargo, no es estándar, por lo que si necesita proporcionar interoperabilidad con otras aplicaciones (no la suya) no puede usarla.

    
respondido por el SEJPM 13.04.2015 - 18:59
fuente
1

No me preocuparía por eso. 72 caracteres es una longitud de contraseña bastante decente, y el truncamiento de la contraseña es una práctica común. Sus usuarios confiarán en usted con muchas opciones de seguridad (como el algoritmo hash y el número de iteraciones) que afectan a la seguridad mucho más que la longitud de la contraseña.

Implementar una advertencia no estaría mal, es decir, si no tienes nada más que implementar en su lugar.

    
respondido por el Dmitry Grigoryev 13.04.2015 - 18:25
fuente

Lea otras preguntas en las etiquetas