2

scram-sha-256 设置在 PostgreSQL 10 中使用了多少次迭代?

文档只是说

将此参数设置为 scram-sha-256 将使用 SCRAM-SHA-256 加密密码。

构建日志读取

添加对密码协商和存储的 SCRAM-SHA-256 支持 (Michael Paquier, Heikki Linnakangas) 这证明了比现有的 md5 协商和存储方法更好的安全性。

4

1 回答 1

3

它是一个编译时变量,scram-common.h称为SCRAM_ITERATIONS_DEFAULT. 目前它设置为 4096。

这基本上符合 2015 年 11 月引用的规格“经验法则”为 15,000。它是当前允许迭代的最低值。来自RFC-7677

这种机制的强度部分取决于散列迭代计数,如 [RFC5802] 中的“i”表示。根据经验,哈希迭代计数应该是现代机器执行完整算法需要 0.1 秒;然而,这在移动设备和其他性能相对较低的系统上不太可能实现。在撰写本文时,经验法则给出了大约需要 15,000 次迭代;然而,在当前的手机上,4096 的哈希迭代计数大约需要 0.5 秒。这种计算成本可以通过缓存 ClientKey 来避免(假设 Salt 和哈希迭代计数是稳定的)。 因此,本规范的建议是哈希迭代计数应至少为 4096,但应仔细考虑使用显着更高的值,特别是在移动使用不太重要的情况下。

于 2017-04-27T21:07:30.627 回答