💡
原文英文,约1000词,阅读约需4分钟。
📝
内容提要
SCRAM-SHA-256是一种用于PostgreSQL 10及以上版本的身份验证协议,使用SCRAM secrets作为密码的等效物。它基于RFC 5803,在pg_authid中存储。默认机制为“SCRAM-SHA-256”,迭代次数为4096,盐值长度为16个随机字节。可以自定义迭代次数和盐值长度。迭代次数越高,生成密钥的成本越高,但安全性更高。可以通过设置GUC参数来提高迭代次数。迭代次数对连接数和查询速度有影响,用户需权衡安全性和速度需求。
🎯
关键要点
- SCRAM-SHA-256是一种用于PostgreSQL 10及以上版本的身份验证协议,使用SCRAM secrets作为密码的等效物。
- SCRAM-SHA-256的默认迭代次数为4096,盐值长度为16个随机字节。
- 可以自定义SCRAM的迭代次数和盐值长度,迭代次数越高,安全性越高,但计算成本也增加。
- 低迭代次数加快身份验证速度,但更容易受到暴力攻击;高迭代次数则提供更强的保护,但会延长身份验证时间。
- PostgreSQL 16将允许用户通过GUC参数配置SCRAM的迭代次数,以提高对暴力攻击的防护。
- 生成SCRAM密钥的成本包括创建角色时的计算资源和连接尝试时的计算时间。
- 在高迭代次数下,生成密钥可能需要较长时间,例如10M迭代的角色创建时间为5975.290毫秒。
- 在身份验证时,低迭代次数的连接速度明显快于默认的4096迭代次数,用户需权衡安全性与速度。
- 使用连接池可以缓解高迭代次数带来的性能瓶颈,用户应仔细选择安全性与速度的平衡。
➡️