ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Postgresql从MD5密码验证改为SCRAM-SHA-256

2021-06-28 18:02:55  阅读:293  来源: 互联网

标签:hank Postgresql SHA zabbix pg SCRAM 256


随着密码学技术的发展,MD5哈希算法构造的密码越来越不安全,所以,PG顺应发展,从10版本开始支持了SCRAM-SHA-256加密算法,因为使用的新的哈希算法。使得在暴力破解的时候花费的代价更加昂贵。那么,接下来,在PG中看一下如何从MD5切换到SCRAM-SHA-256。
首先,太老的的驱动不支持SCRAM-SHA-256,都会报错,如JDBC,会报The authentication type 10 is not supported。那么就需要升级驱动。

接下来就是数据库服务端修改配置:

#修改postgresql.conf参数文件
password_encryption = scram-sha-256
#重新载入配置文件
pg_ctl reload -D $PGDATA 
或
SELECT pg_reload_conf();
#查看参数配置是否修改成功
SHOW password_encryption;
#重置用户密码
\password user_name
#修改pg_hba.conf验证方法,然后reload即可
如:
host  all  all  0.0.0.0/0 md5
改为
host  all  all  0.0.0.0/0 scram-sha-256

实例:

#通过\password user_name修改了hank用户密码
postgres=# select rolname,rolpassword from pg_authid where rolname in('hank','zabbix');
 rolname |                                                              rolpassword                                                              
---------+---------------------------------------------------------------------------------------------------------------------------------------
 zabbix  | md5435f13d666b53dd9b4b829e237213fd8
 hank    | SCRAM-SHA-256$4096:yqNGsct76W5ZjPvMxxjzRw==$NmR4QIuHRlhu+I/HP1TQ4OC6stmtgN6Oc7oZa76tKxQ=:kNOwGMU+tSbJ2QQiD1Hb/rCKX7/coQEdkeUjD9+pEhE=

#pg_hba.conf没有修改,但是同样可以通过密码登陆,这是pg的一个兼容性特性,即使没写SCRAM-SHA-256,可以自动识别密码为SCRAM-SHA-256加密的,然后验证通过,而且使用老的MD5加密的用户也可以正常登陆
host  all  all  0.0.0.0/0 md5

psql -h ******* -p 1921 -U hank
Password for user hank: 
psql (12.6)
Type "help" for help.
hank=> 

#如果修改pg_hba.conf为scram-sha-256,即使zabbix用户写对密码,也无法正常登陆,如下,只有通过scram-sha-256加密的hank用户可正常登陆,也可以查看视图pg_hba_file_rules
host  all  all  0.0.0.0/0 scram-sha-256

psql -h xxxxx -p 1921 -U zabbix
Password for user zabbix: 
psql: error: FATAL:  password authentication failed for user "zabbix"
 psql -h xxxxxx -p 1921 -U hank
Password for user hank: 
psql (12.6)
Type "help" for help.

hank=> 

#修改密码后,可正常登陆
postgres=# \password zabbix
Enter new password: 
Enter it again: 
postgres=# select rolname,rolpassword from pg_authid where rolname in('hank','zabbix');
 rolname |                                                              rolpassword                                                              
---------+---------------------------------------------------------------------------------------------------------------------------------------
 hank    | SCRAM-SHA-256$4096:yqNGsct76W5ZjPvMxxjzRw==$NmR4QIuHRlhu+I/HP1TQ4OC6stmtgN6Oc7oZa76tKxQ=:kNOwGMU+tSbJ2QQiD1Hb/rCKX7/coQEdkeUjD9+pEhE=
 zabbix  | SCRAM-SHA-256$4096:Q2LODw88k0a3G9cr36Crvw==$EhBkOVbaNIxpqZADeYGCQE6LIam/k+aqmdQqBuxJM28=:Xw+ySsSGidAdvfQ/98LL38NnK1wsT96sivwtJZ144vU=
(2 rows)

psql -h xxxxxxxx -p 1921 -U zabbix
Password for user zabbix: 
psql (12.6)
Type "help" for help.

zabbix=> 


标签:hank,Postgresql,SHA,zabbix,pg,SCRAM,256
来源: https://blog.csdn.net/dazuiba008/article/details/118308665

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有