Argon2 密码哈希参数安全

Argon2 Password Hashing Parameter Security

我正在开发一个移动应用程序,在我对 argon2 密码哈希算法的外行研究中,似乎(忽略密钥和盐)有三个主要参数:

虽然广播这些显然没有意义,但据我所知,这些将不可避免地需要在移动应用程序中进行编译,而坏人可以通过反编译移动应用程序来找出这些参数。

我需要如何保护这些参数?

如果需要保护这些参数,我该如何混淆这些参数或减轻对已编译应用程序的威胁?或者,这些参数是否可以通过在移动应用程序中编译以外的方式以某种方式分发?

您根本不应该保护您的默认 Argon2 参数。

相反,您应该为他们感到骄傲

如果散列值泄露,您应该选择能够最大程度抵抗离线暴力攻击的参数。根据 Kerckhoffs' Principle.

,您应该对公开选择 post 他们背​​后的数学有足够的信心

不需要保护那些参数,安全性不依赖于它们的秘密。

您甚至需要它们来验证用户输入的密码,因此有必要将它们与存储的密码哈希一起存储(通常它们成为密码哈希的一部分)。将参数与每个哈希密码一起存储允许在将来调整参数(为了更快的硬件),并且仍然能够验证旧密码,这些密码使用较低的参数进行哈希处理。