【问题标题】:PostgreSQL user password change from MD5 to scram-sha-265PostgreSQL 用户密码从 MD5 更改为 scram-sha-265
【发布时间】:2018-11-26 05:45:59
【问题描述】:

我正在查看这个Change PostgreSQL password encryption from MD5 to SHA 问题,以了解如何将 Postgres 中的用户密码散列更改为 MD5 以外的其他内容,因为据我所知,它现在基本上已经过时了。

但我很好奇是否需要在服务器的pg_hpa.conf 文件中进行更改,因为根据本教程https://blog.bigbinary.com/2016/01/23/configure-postgresql-to-allow-remote-connection.html 您需要向其中添加以下内容:

host    all             all              0.0.0.0/0                       md5
host    all             all              ::/0                            md5

是否需要更改“md5”?还是纯粹是指定密码是必需的,并且在将哈希函数更改为 scram-sha-256 时不会受到影响?

【问题讨论】:

    标签: postgresql authentication password-hash


    【解决方案1】:

    即使您将password_encryption 更改为scram-sha-256,您也可以在pg_hba.conf 中保留md5 作为身份验证方法。这样做很不寻常。

    不寻常的主要原因是对于password_encryption = scram-sha-256,客户端无论如何都必须了解新的哈希方法才能从用户输入的密码中计算出哈希密码。那么为什么不将它也用于更安全的身份验证呢?

    为避免混淆,我想补充一点,PostgreSQL 中有两种不同的密码散列操作:

    1. 用户输入的密码经过哈希处理(连同用户名)以生成实际的 PostgreSQL 密码,存储在 pg_authid 中。这是为了避免有人窃取密码并在其他系统上重复使用的问题。

    2. 在身份验证期间,服务器会要求客户端生成带有特定盐的密码哈希(已从上一步哈希)。然后通过线路发送此“双重哈希”密码。

    换句话说,您的问题是:我们能否将scram-sha-256 用于第一点,将md5 用于第二点?

    【讨论】:

    • 是的,这基本上是我的问题。我不确定 password_encryption 是否对身份验证方法有任何影响,以及最佳做法是什么。为了验证,将第二个更改为与第一个匹配是否有意义?
    • 当然。您将免费获得更好的安全性。
    猜你喜欢
    • 1970-01-01
    • 2021-07-19
    • 2016-06-12
    • 2010-11-25
    • 1970-01-01
    • 2022-11-10
    • 2012-09-25
    • 2012-11-26
    • 2018-02-23
    相关资源
    最近更新 更多