10.7 预览功能:密码重用检查插件

默认情况下,MariaDB 不检查用户是否重用密码。一些安全策略要求用户每次都选择新密码,而密码重用检查插件(在 MariaDB 10.7.0 预览版中可用)可以实现此功能。

旧密码存储在 mysql.password_reuse_check_history 表中,其保留期限由 password-reuse-check-interval 系统变量决定,该变量指定天数。默认情况下,此值为零,表示无限期保留。

此插件可以与其他密码验证插件结合使用,例如 Simple Password Check pluginCrackLib Password Check plugin

请注意,如果关闭全局 strict_password_validation 变量(通过将密码指定为哈希值),密码验证很容易被规避。默认情况下,此变量已设置。

安装插件

尽管插件的共享库默认与 MariaDB 一起分发,但插件本身默认并未由 MariaDB 安装。

您可以通过执行 INSTALL SONAME 或 INSTALL PLUGIN 动态安装插件,无需重新启动服务器。例如:


INSTALL SONAME 'password_reuse_check';

第二种方法可用于告知服务器在启动时加载插件。可以通过提供 –plugin-load 或 –plugin-load-add 选项来以这种方式安装插件。这可以作为 mysqld 的命令行参数指定,也可以在选项文件中相关服务器选项组中指定。例如:


[mariadb]
...
plugin_load_add = password_reuse_check

示例


INSTALL SONAME 'password_reuse_check';

GRANT SELECT ON *.* TO user1@localhost identified by 'pwd1';
Query OK, 0 rows affected (0.038 sec)

GRANT SELECT ON *.* TO user1@localhost identified by 'pwd1';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

当然,不可能简单地使用一个中间密码,然后再尝试恢复旧密码。


SET PASSWORD FOR user1@localhost = PASSWORD("pwd1");
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

有两种方法可以尝试此功能。

Tarball

下载并安装 tarball

容器

您可以运行名为 quay.io/mariadb-foundation/mariadb-dev:10.7-mdev-9245-password-reuse 的容器,其接口与 Docker Library mariadb 镜像相同。

Binder 在线 MariaDB Jupyter Notebook

使用 Binder,您的网页浏览器中提供了完整的运行实例。请耐心等待链接加载,这需要一点时间。

欢迎提供反馈

如果您在此功能预览中遇到任何问题、设计方面的疑问或不按预期工作的边缘情况,请在 MDEV 项目上通过 JIRA 提交 bug/功能请求告知我们。欢迎在 Zulip 上讨论。

另请参阅

知识库中的 密码重用检查插件