PG口令加密算法中的scram-sha-256

0    1014    1

Tags:

👉 本文共约4464个字,系统预计阅读时间或需17分钟。

口令认证

有几种基于口令的认证方法。

这些方法的过程类似,但是区别在于用户口令如何被存放在服务器上以及客户端提供的口令如何被通过连接发送。

scram-sha-256

方法scram-sha-256按照RFC 7677中的描述执行SCRAM-SHA-256认证。

它使用的是一种挑战-响应的方案,可以防止在不可信连接上对口令的嗅探并且支持在服务器上以一种加密哈希的方式存放口令,因此被认为是安全的。

这是当前提供的方法中最安全的一种,但是旧的客户端库不支持这种方法。

PostgreSQL10版本开始提供了基于SCRAM-SHA-256密码认证方法。在以前的版本中使用MD5认证方法,使用自定义安全性较低的challenge-response机制。 它可以防止密码嗅探,并避免以纯文本形式将密码存储在服务器上, 但如果攻击者设法从服务器窃取密码的哈希值,则无法再提供保护。此外,MD5哈希算法现在不再被认为对于确定的攻击是安全的。如RRFC 7677中所述, 方法scram-sha-256执行SCRAM-SHA-256认证。可防止密码在不可信连接上嗅探,并支持以密码散列的形式将密码存储在服务器上, 这种形式被认为是安全的。对于新上的实例建议直接使用SCRAM-SHA-256密码认证方法(initdb时指定auth为scram-sha-256),但是对于从MD5升级上来的实例稍微麻烦一点。

md5

方法md5使用一种自定义的安全性较低的挑战-响应机制。

它能防止口令嗅探并且防止口令在服务器上以明文存储,但是无法保护攻击者想办法从服务器上窃取了口令哈希的情况。

此外,现在认为MD5哈希算法对于确定攻击已经不再安全。

md5方法不能与db_user_namespace特性一起使用。

为了简化从md5方法到较新的SCRAM方法的转变,如果在pg_hba.conf中指定了md5但是用户在服务器上的口令是为SCRAM(见下文)加密的,则将自动选择基于SCRAM的认证。

password

方法password以明文形式发送口令,因此它对于口令“嗅探”攻击很脆弱。

如果可能应该尽量避免使用它。

不过,如果连接被SSL加密保护着,那么可以安全地使用password(不过如果依靠SSL,SSL证书认证可能是更好的选择)。

PostgreSQL数据库口令独立于操作系统用户口令。

每个数据库用户的口令被存储在pg_authid系统表中。

口令可以用 SQL 命令[CREATE USER](mk:@MSITStore:C:\Users\markbo\Desktop\PG培训认证学习资源(学员可分享)\PostgreSQL 11.2 中文手册.chm::/sql-createuser.html)和[ALTER ROLE](mk:@MSITStore:C:\Users\markbo\Desktop\PG培训认证学习资源(学员可分享)\PostgreSQL 11.2 中文手册.chm::/sql-alterrole.html)管理,例如CREATE ROLE foo WITH LOGIN PASSWORD 'secret'或者psql的\password命令。

如果没有为一个用户设置口令,那么存储的口令为空并且对该用户的口令认证总会失败。

不同的基于口令的认证方法的可用性取决于用户的口令在服务器上是如何被加密(或者更准确地说是哈希)的。由设置口令时的配置参数password_encryption控制。

如果口令使用scram-sha-256设置加密,那么它可以被用于认证方法scram-sha-256和password(但后一种情况中口令将以明文传输)。如上所述,在这种情况下,指定的认证方法md5将自动切换到使用scram-sha-256方法。

如果口令使用md5设置加密,那么它仅能用于md5和password认证方法说明(同样,后一种情况中口令以明文传输)。(之前的PostgreSQL发行版支持在服务器上存储明文口令。现在已经不可能了)。

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
PG口令加密算法中的scram-sha-256后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章!
验证码:
请先关注本站微信公众号,然后回复“验证码”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦。
  • 18509239930
  • 个人微信

  • DB宝
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部