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

时间:2017-04-27 21:07:00

标签: postgresql passwords sha256 sasl-scram postgresql-10

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

docs just say

  

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

build log reads

  

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

1 个答案:

答案 0 :(得分: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,但应该仔细考虑      给予使用显着更高的值,特别是在哪里      移动使用并不那么重要。