2

某些网站(例如 Halifax 和 Barclaycard 等银行)会提示用户输入特定的密码字母。但是,如果用户的密码被加盐和散列,那么我看不到如何使用各个字母。所以要么密码没有被散列,要么有另一个过程在起作用。可能每个单独的密码字母都经过加盐和哈希处理,但这似乎不是特别安全。

谁能解释这里使用的是什么身份验证模型?鉴于这是相当普遍的地方,我必须假设有一个受信任的模型来支持这种做法。

编辑:我找到的最佳答案实际上是在security.stackexchange.com 上“某些网站(例如网上银行)如何只要求密码中的特定字符而不将其存储为明文?” 所以我也会投票结束我的问题。

4

1 回答 1

1

您的信任可能放错了地方。加盐并不能防止暴力攻击,只能使用彩虹表。如果你给每个单独的字符加盐,那么这将是微不足道的破解。类似地,对四个字符的每个组合进行加盐和散列处理也很容易被蛮力破解。您的密码几乎可以肯定是以未加密的方式存储的。

这并不像听起来那么糟糕,散列仅对阻止获取密码数据库内容的人有用。如果人们可以访问您的银行密码数据库,那么您很可能还有其他问题。例如,他们可能不需要您的密码来转账。

如果您考虑一下,就不可能安全地做到这一点。如果您有一些预言机需要 1 秒来验证密码的四个字符(每个可能有 36 个可能的值),那么您可以在平均 839,808 次尝试后破解四个字符,这需要 10 天。如果密码长度为 12 个字符,则完全破解它需要一个月的时间。登录时间不到 1 秒。

于 2013-03-01T11:17:32.843 回答