Joh*_*ane 5 security postgresql hash md5 internals
为什么 PostgreSQL 默认将用户密码存储在 MD5 哈希中不是安全漏洞?我正在研究 PostgreSQL 的内部结构,并且已经访问了系统目录pg_authid,当我阅读有关 MD5 哈希加密的信息时,它似乎被认为是过时的。在我看来,如果管理员或用户能够访问底层文件存储,那么他们可以假设破解密码并执行上述凭据可以启用的任何操作。
我问为什么它不是安全漏洞,因为显然 PostgreSQL 已经过“通用标准认证”,根据它的 wiki 似乎是军用级安全,其中指出它来自西方国防组织。
谢谢!
首先,PostgreSQL 10 添加了基于 SASL 的SCRAM-SHA256,使其成为一个有争议的问题。
对于旧版本:这是一个弱点,但由于多种原因,它不是一个大的安全漏洞:
Internet 部署的 PostgreSQL 实例应使用 SSL,以防止窃听协议。这大大降低了成功窃取密码的机会。
密码是两次腌制的。存储在磁盘上的密码用盐进行散列,并采用 md5 摘要。但是在线路上发送的密码被重新加盐并使用身份验证交换特定的盐重新散列,因此如果您在线路上捕获散列密码,则不能在以后的身份验证中简单地重播它。
如果您设法通过窃听明文连接获得相同的两次加密密码的几份副本,则您可能会利用 MD5 中的弱点来查找存储在磁盘上的加密版本,并使用它来对数据库进行身份验证。
但这需要大量工作,而且使用 SSL 几乎可以完全避免。
就个人而言,我认为“共同标准”接近一堆官僚主义的废话。它仅适用于一个特定的安装,其中包含从硬件到所有内容的非常狭窄的特定版本。它应该有助于排除总蛇油,但它肯定不能证明任何东西都是安全的。(见鬼,看看政府系统……)
| 归档时间: |
|
| 查看次数: |
1144 次 |
| 最近记录: |