¿Es importante usar un hash lento en htpasswd?

3

Tengo entendido que el propósito de .htpasswd files es restringir el acceso a algunos archivos en el sistema de archivos del servidor. Si un atacante obtiene acceso a él, es probable que también tenga acceso a todo lo demás, por lo que parece que tiene poco sentido usar un hash lento en esta situación (solo aumentaría la carga del servidor). Sin embargo, acabo de ver que Apache 2.4 introdujo soporte para bcrypt en estos archivos:

  

*) htpasswd, htdbm: Agregue soporte para el algoritmo bcrypt (requiere        apr-util 1.5 o superior). PR 49288. [Stefan Fritsch]

La solicitud de características no ofrece ninguna explicación sobre por qué el uso de un hash más simple hace que las "contraseñas almacenadas en esas funciones de hash sean vulnerables a las grietas". ¿Es esto simplemente "paranoia" o hay una buena razón para usar un hash más fuerte en este escenario?

    
pregunta mgibsonbr 28.04.2014 - 09:39
fuente

2 respuestas

3

Hay dos razones principales por las que las contraseñas en un archivo .htpasswd necesitan hashing de contraseña segura :

  1. Aunque un atacante que puede leer el archivo .htpasswd probablemente pueda leer los otros archivos en el directorio, la contraseña también puede permitir el acceso de escritura . Hay una serie de situaciones en las que un atacante puede leer archivos privados pero no escribir en ellos; por ejemplo, cuando el atacante acaba de encontrar un disco duro desechado o una cinta de respaldo en un contenedor de basura. De manera similar, las contraseñas pueden tener una vida útil más larga que los datos que protegen: un antiguo .htpasswd podría contener una contraseña que todavía es válida ahora, para acceder a los archivos de datos que no existían en absoluto.

  2. El hash de contraseña no protege en última instancia los datos, sino la propia contraseña . Las contraseñas son datos confidenciales por derecho propio, porque:

    • Los usuarios reutilizan contraseñas. Una contraseña para un usuario en un servidor determinado también puede ser válida en otros sistemas donde el usuario tiene una cuenta. Personalmente soy lo suficientemente maníaco como para generar diferentes contraseñas aleatorias para todos los servidores en los que tengo cuentas, pero sé que la mayoría de las personas no hacen las cosas de esa manera.

    • Los usuarios no hacen contraseñas aleatorias . En particular, cuando se ven obligados a cambiar sus contraseñas (como desafortunadamente, las políticas mal pensadas lo obligan), los usuarios confían en secuencias : si su contraseña actual es Lilongwe37 , entonces es probable que su próxima contraseña será Lilongwe38 . Una vez más, una contraseña antigua, incluso después de lo que parece un "restablecimiento de contraseña" , será valiosa para un atacante.

Por estas razones, el hashing correcto de la contraseña en los archivos .htpasswd es importante.

    
respondido por el Thomas Pornin 28.04.2014 - 14:53
fuente
1

El descifrado de contraseñas, el uso de ataques de fuerza bruta, diccionario o tabla arco iris (o cualquier combinación de estos), son todas las técnicas que adivina la contraseña.

En un sistema de computación, adivinar contraseñas lleva tiempo, y aquí radica la ventaja de una función hash lenta (es decir, computacionalmente más compleja). Cuanto más tiempo tarde en calcularse una función hash, más tiempo tomará adivinar (descifrar) una contraseña con éxito.

Es por esto que las funciones de hash lentas son superiores a las rápidas, en lo que respecta al nivel de seguridad que ofrecen.

De hecho, si un pirata informático puede obtener acceso (raíz) al servidor web, él o ella puede robar el archivo .htpasswd (o mejor: contenido) e intentar descifrar las contraseñas fuera de línea. La razón por la que las contraseñas se almacenan en un formato hash (lento de calcular), es para proporcionar una capa adicional de seguridad: las credenciales almacenadas en el archivo se pueden usar en otros sistemas o servicios informáticos.

    
respondido por el Steven Volckaert 28.04.2014 - 10:30
fuente

Lea otras preguntas en las etiquetas