Contraseñas de usuarios almacenadas inadecuadamente

De Safeval Wiki
Saltar a: navegación, buscar

El almacenamiento de contraseñas en la base de datos, si no se hace correctamente, permite que el administrador de base de datos para recuperar contraseñas de usuario. Como la contraseña, por definición, sólo deben ser conocidas por el usuario. Incluso los administradores de sistemas no deberían ser capaces de conocer la contraseña de un usuario determinado. Esto evita que la rendición de cuentas de usuario para sus acciones. Si un usuario es sorprendido cometiendo un fraude, siempre puede decir que no era él, sino uno de los administradores que también conocen su contraseña. Además de la posibilidad de un ataque por el administrador del sistema, utilizando contraseñas recuperadas en la base de datos.

La contraseña debe ser almacenado hash o cifrado de un solo sentido. El algoritmo de hash debe ser de buena calidad (recomendado hoy están SHA-2 384 o 512), el hash debe hacerse sobre la concatenación de la entrada + contraseña + sal, donde la sal es un número generado al azar para cada registro de la tabla, almacenada en una columna separada. Algunos sistemas implementa la sal como un número global para todos los registros de usuarios, que no impide el ataque tablas de arco iris, que es la principal preocupación cuando se utiliza la sal.

Como el hash es un cifrado de una manera, la validación de la clave tiene que repetir los mismos pasos y comparar el hash generado con las credenciales de autenticación presentados por el usuario con el hash almacenado en la base de datos. La tabla que contiene la información de autenticación de los usuarios debe ser protegido, con el acceso mínimo posible.

Estas recomendaciones se apliquen normalmente en almacenamiento de contraseñas LDAP, por lo que una alternativa es almacenar las contraseñas de los usuarios en un repositorio LDAP.