我正在将用于身份验证的基于spring-boot / kotlin的微服务部署到Kubernets集群中。 为了安全地存储和比较密码,我想使用Argon2,但是我找不到合适的参数。
现在困扰我的参数是内存。第8节中的The whitepaper建议使用大约1GB的内存。
目前,我们的Pod总共有1GB的内存限制,我不希望在没有适当推理的情况下更改该限制。使用那么多的内存还意味着每个服务实例只能一次认证一个用户。
但是,更重要的是,为了使用1GB达到可接受的时间,我需要将迭代次数设置为1。
令我特别烦恼的是,我发现的所有库(包括参考实现)中的默认内存成本都在//*[not(self::android.widget.LinearLayout)]/android.widget.ProgressBar
和2^12KB=4MB
之间。
因此,我的问题是:是否有关于如何权衡内存和迭代的建议或建议,尤其是在dockerized环境中?
我使用5次迭代和2^16KB=64MB
获得了不错的结果。鉴于Argon2的存储硬度是针对专用硬件的,那么260MB的存储限制是否足够?
编辑:为了使我的问题更清楚:我能找到的所有讨论都建议占用尽可能多的内存并使用机器提供的内存。在云环境中,这个角色通常是相反的,我需要说明我需要多少资源。