postgresql 发送密码是否加密以进行身份验证?

jw5wzhpr  于 2023-02-15  发布在  PostgreSQL
关注(0)|答案(1)|浏览(176)

下面是我的pg_hba.conf条目。

host     dbname         username    0.0.0.0/0   radius radiusserver=xyz radiussecret=xyz

我的理解是,当客户端尝试建立连接到postgres时,密码会发送到postgres,然后由postgres传递给radius进行身份验证。一旦从Radius获得确认,连接就会建立。如果不正确,请更正。
1.现在当密码被发送到db时,它会不会是未加密的?我想是的。
1.密码发送到Radius时,是否加密?
1.如果我将主机条目转换为hostssl,那么当客户端发送密码时,它将被加密,对吗?

q8l4jmvw

q8l4jmvw1#

1.是的,PostgreSQL服务器的密码是纯文本,前提是连接本身是未加密的。
1.是的,显然它是在PostgreSQL服务器和radius服务器之间加密/散列的,但显然只是用md5散列,所以不是最好的。可能有其他的方法来保护它,但我认为这将是一个radius的问题,而不是postgresql的问题。
1.是的,ssl会在客户端和PostgreSQL之间保护它,但是如果你担心把明文密码发送到一个被入侵的服务器,那么在pg_hba中使用hostssl是错误的。入侵服务器的人只会把“hostssl”改回“host”,如果他们有任何好处的话。相反,你想在客户端强制执行这一点,使用PGSSLMODE=verify-full或等效的。(实际上他们不需要关闭ssl,因为它将被加密以便他们解密)

相关问题