F.24. passwordcheck — verificar la seguridad de las contraseñas #

F.24.1. Parámetros de configuración

El módulo passwordcheck verifica las contraseñas de los usuarios cada vez que se establecen con CREATE ROLE o ALTER ROLE. Si una contraseña se considera demasiado débil, será rechazada y el comando terminará con un error.

Para habilitar este módulo, añade '$libdir/passwordcheck' a shared_preload_libraries en postgresql.conf, luego reinicia el servidor.

Puedes adaptar este módulo a tus necesidades modificando el código fuente. Por ejemplo, puedes usar CrackLib para verificar contraseñas; esto solo requiere desmarcar dos líneas en el Makefile y volver a compilar el módulo. (No podemos incluir CrackLib por defecto debido a razones de licencia). Sin CrackLib, el módulo aplica algunas reglas simples para la seguridad de las contraseñas, las cuales puedes modificar o ampliar según creas conveniente.

Caution

Para evitar que se envíen contraseñas sin cifrar a través de la red, que se escriban en el registro del servidor o que sean robadas por un administrador de bases de datos, PostgreSQL permite al usuario proporcionar contraseñas precifradas. Muchos programas cliente hacen uso de esta funcionalidad y cifran la contraseña antes de enviarla al servidor.

Esto limita la utilidad del módulo passwordcheck, porque en ese caso solo puede intentar adivinar la contraseña. Por esta razón, no se recomienda passwordcheck si tus requisitos de seguridad son altos. Es más seguro utilizar un método de autenticación externo como GSSAPI (consulta la Chapter 20) que confiar en contraseñas dentro de la base de datos.

Alternativamente, podrías modificar passwordcheck para que rechace las contraseñas precifradas, pero obligar a los usuarios a establecer sus contraseñas en texto claro conlleva sus propios riesgos de seguridad.

F.24.1. Parámetros de configuración #

passwordcheck.min_password_length (integer)

La longitud mínima aceptable de la contraseña en bytes. El valor predeterminado es 8. Solo los superusuarios pueden cambiar este ajuste.

Note

Este parámetro no tiene efecto si un usuario proporciona una contraseña precifrada.

En un uso normal, este parámetro se establece en postgresql.conf, pero los superusuarios pueden alterarlo sobre la marcha dentro de sus propias sesiones. Un uso típico podría ser:

# postgresql.conf
passwordcheck.min_password_length = 12