根据 PostgreSQL 代码仓库的最新动态,近日有维护者提交“弃用 MD5 密码支持”的 commit。

PostgreSQL 将不再支持 MD5 密码插图

该维护者指出,MD5 被认为不适合用作加密散列算法已有一段时间。此外,PostgreSQL 中的 MD5 密码散列很容易受到传递散列攻击,即知道用户名和散列密码就足以进行身份验证。v10 中添加的 SCRAM-SHA-256 方法不存在这些问题,被认为优于 MD5。

PostgreSQL 将不再支持 MD5 密码插图1

根据讨论,本次 commit 将 PostgreSQL 中的 MD5 密码支持标记为弃用,并将在未来的版本中删除。

现在,文档中包含了多个弃用通知,而 CREATE ROLE 和 ALTER ROLE 在设置 MD5 密码时也会发出弃用警告。用户可以通过将 md5_password_warnings 参数设置为 “off” 来禁用这些警告。

这可能是 PostgreSQL 18 明确告知 MD5 密码支持已过时并将在未来移除的程度。PostgreSQL 19 将支持使用 MD5 密码升级,并允许使用它们进行身份验证,但禁止创建新密码。之后,PostgreSQL 20 将禁止使用 MD5 密码进行验证。

最后,在 PostgreSQL 21 中,将禁止使用 MD5 密码升级,并且 PostgreSQL 内部将不再提供 MD5 密码支持。因此,如果出于某种原因需要,PostgreSQL 中的 MD5 密码支持仍将存在数年,但现在已被正式弃用,移除路径也已启动。


相关来源

免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表一休教程网的观点和立场。