Mobile Argon2密码哈希参数安全性

Mobile Argon2密码哈希参数安全性,mobile,passwords,argon2-ffi,Mobile,Passwords,Argon2 Ffi,我正在开发一个移动应用程序,在我对argon2密码哈希算法的业余研究中,似乎(忽略密钥和salt)有三个主要参数: 迭代 记忆 平行性 虽然广播这些显然没有意义,但据我看来,这些不可避免地需要在移动应用程序中进行编译,一个糟糕的参与者可以通过反编译移动应用程序来找出这些参数 我需要如何保护这些参数 如果需要保护这些参数,如何混淆这些参数或减轻对已编译应用程序的威胁?或者,这些参数是否可以通过移动应用程序内编译以外的方式分发?您不应该保护默认的Argon2参数 相反,你应该为他们感到骄傲 如果

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

  • 迭代
  • 记忆
  • 平行性
虽然广播这些显然没有意义,但据我看来,这些不可避免地需要在移动应用程序中进行编译,一个糟糕的参与者可以通过反编译移动应用程序来找出这些参数

我需要如何保护这些参数


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

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

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


如果散列被泄漏,您应该选择能够最大限度地抵抗离线暴力攻击的参数。您应该对选择这些参数公开发布的背后的数学有足够的信心。

没有必要保护这些参数,安全性并不取决于它们是否机密


更需要它们来验证用户输入的密码,因此有必要将它们与存储的密码散列一起存储(通常它们会成为密码散列的一部分)。将参数与每个散列密码一起存储,可以在将来调整参数(用于更快的硬件),并且仍然能够验证较旧的密码,在使用较低参数进行散列的情况下。

有趣的是,我没有想过在修改参数后需要验证较旧的密码。我需要再多读一点关于战略的书@AustinBrown-如果您感兴趣,可以查看我关于安全存储密码的介绍: