我目前正在考虑一个可以离线(在线后)并且仍然能够安全地向用户提供身份验证的网络应用程序。(例如,在多用户环境中,防止其他用户访问是非常必要的。)
现在,我正在考虑使用一些盐进行密码哈希身份验证,并且刚刚看到这个 SO 问题:https : //stackoverflow.com/questions/7879641/user-authentication-in-offline-web-apps
但是由于这是一个网络环境,我不得不假设其他人可以访问应用程序的源代码,因此盐本身就被泄露了。(此外,攻击者可能会使用哈希本身来暴力破解密码本身。)
所以......总之,我的两个问题是:
- 即使泄漏了盐渍也有效吗?我猜这个问题没有,因为它需要 O(X^(m+n)) 来暴力破解未知数......当攻击者使用密码哈希来暴力破解密码时,情况会变得更糟......
- 是否有任何有效(安全)的方法来验证用户?
- 生成用于加密用户数据的 DES 密钥的任何好方法(并为服务器提供一种区分篡改数据和真实数据的方法?)