passwordcheck
用于强制拒绝修改弱密码的扩展
仓库
https://www.postgresql.org/docs/current/passwordcheck.html
https://www.postgresql.org/docs/current/passwordcheck.html
源码
passwordcheck_cracklib-3.1.0.tar.gz
passwordcheck_cracklib-3.1.0.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
passwordcheck | - | SEC | PostgreSQL | C |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 7990 | passwordcheck | 否 | 是 | 是 | 否 | 否 | 否 | - |
| 相关扩展 | pg_auth_mon credcheck pgaudit login_hook auth_delay set_user sepgsql |
|---|
版本
| PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|
| - | - | - | - | - |
安装
提示:这是 PostgreSQL 内核自带的 contrib 扩展
用法
passwordcheck 在通过 CREATE ROLE 或 ALTER ROLE 设置密码时验证密码强度。弱密码将被拒绝并返回错误。
配置
添加到 postgresql.conf:
shared_preload_libraries = 'passwordcheck'
配置参数
| 参数 | 默认值 | 描述 |
|---|---|---|
passwordcheck.min_password_length | 8 | 最小密码长度(字节)(仅超级用户可设置) |
工作原理
该模块检查通过 CREATE ROLE 或 ALTER ROLE 设置的密码:
-- 如果密码太短或太弱将被拒绝
CREATE ROLE myuser WITH LOGIN PASSWORD 'abc';
-- ERROR: password is too short
-- 足够强的密码将被接受
CREATE ROLE myuser WITH LOGIN PASSWORD 'Str0ng_P@ssword!';
默认检查
在没有 CrackLib 的情况下,该模块强制执行:
- 最小密码长度(可通过
passwordcheck.min_password_length配置) - 密码不能是用户名
- 基本复杂度要求
限制
- 客户端程序发送的预加密密码无法被完全验证
- 该模块只能猜测加密提交中的实际密码
- 为了更强的安全性,考虑使用外部认证方法(例如 GSSAPI)
- 无需
CREATE EXTENSION—— 这仅是一个共享库模块