在PostgreSQL 10中,scram-sha-256设置使用了多少次迭代?
医生只是说
将此参数设置为scram-sha-256将使用scram-sha-256加密密码。
生成日志读取。
添加SCRAM-SHA-256对密码协商和存储的支持(Michael Paquier, Heikki Linnakangas)这证明了比现有的md5协商和存储方法更好的安全性。
它是 scram-common.h
中的一个编译时变量,称为 SCRAM_ITERATIONS_DEFAULT
。目前设置为 4096。
这基本上符合规范“经验法则”,该规范在2015年11月被引用为15,000。它目前是允许迭代的最低值。来自 RFC-7677
这种机制的强度部分取决于哈希迭代计数,如[RFC5802]中的“I”所示。根据经验,哈希迭代次数应该是这样的:现代机器执行完整的算法需要0.1秒;然而,这在移动设备和其他相对低性能的系统上不太可能实现。在撰写本文时,经验法则给出了大约15,000次所需的迭代;然而,在当前的移动手机上,4096的散列迭代计数需要大约0.5秒。这种计算成本可以通过缓存ClientKey来避免(假设Salt和hash迭代计数是稳定的)。因此,本规范的建议是哈希迭代计数至少应为4096,但应仔细考虑使用明显更高的值,尤其是在移动使用不太重要的情况下。