dockerized环境中的Argon2参数

时间:2019-12-03 09:17:22

标签: java docker kubernetes passwords password-hash

我正在将用于身份验证的基于spring-boot / kotlin的微服务部署到Kubernets集群中。 为了安全地存储和比较密码,我想使用Argon2,但是我找不到合适的参数。

  • 由于该服务应该在公共云中运行,所以我选择Argon2id模式来降低发生旁道攻击的风险。
  • 在一般OWASP recommendations之后,我选择了盐,输出长度为32B。
  • 考虑到在dockerized环境中的约束,我选择了2的并行度因子。
  • 总体而言,我希望哈希运算大约需要1s。

现在困扰我的参数是内存。第8节中的The whitepaper建议使用大约1GB的内存。 目前,我们的Pod总共有1GB的内存限制,我不希望在没有适当推理的情况下更改该限制。使用那么多的内存还意味着每个服务实例只能一次认证一个用户。 但是,更重要的是,为了使用1GB达到可接受的时间,我需要将迭代次数设置为1。 令我特别烦恼的是,我发现的所有库(包括参考实现)中的默认内存成本都在//*[not(self::android.widget.LinearLayout)]/android.widget.ProgressBar2^12KB=4MB之间。

因此,我的问题是:是否有关于如何权衡内存和迭代的建议或建议,尤其是在dockerized环境中? 我使用5次迭代和2^16KB=64MB获得了不错的结果。鉴于Argon2的存储硬度是针对专用硬件的,那么260MB的存储限制是否足够?

编辑:为了使我的问题更清楚:我能找到的所有讨论都建议占用尽可能多的内存并使用机器提供的内存。在云环境中,这个角色通常是相反的,我需要说明我需要多少资源。

0 个答案:

没有答案