是否有可能用已知的盐攻击用户密码

2022-08-30 21:00:13

我被告知电子邮件是一种坏盐,因为它不是唯一的,并且与用户相关联。
如果用户在2个站点上使用相同的密码,则将有相等的哈希值。

那么,它有什么问题呢?什么是攻击场景?
假设我们既有哈希又有盐。因此,其他站点在其数据库中具有相同的哈希值。我们如何在其他网站上对该用户造成任何伤害?我们能做到吗?

我看不出任何可能性,但我不是安全方面的专家,所以,我想听听那些有实际和具体答案的人的意见。

我不会破坏任何东西。我在这个问题的背景下问这个问题:电子邮件或(注册时间戳)是一个好盐吗?

请提供某些实用的答案。


答案 1

盐的意义在于未知,它是为了防止攻击者将蛮力或字典攻击的成本分摊到网站的所有用户(甚至许多网站的所有用户)上。

因此,使用像电子邮件地址这样的非随机盐的问题在于,它会向攻击者显示哪些用户在多个站点上使用相同的密码,因此,如果通过蛮力或字典攻击破解,这将同时访问多个帐户。对于电子邮件地址(以及每个用户唯一的所有内容),这是一个相当假设的问题,因为它假设攻击者拥有多个站点的帐户数据,这些站点的用户有相当大的重叠。

使用电子邮件地址的另一个问题是,用户会想要更改它 - 如果您将其用作盐,这将是不可能的,除非您将其存储在单独的盐列中,或者要求人们始终更改密码和电子邮件。


答案 2

这主要是一个理论问题。那么,“破解散列值”是如何工作的呢?有所谓的“彩虹表”,它们只是用常用词和它们的哈希值列出的。对于盐渍哈希,攻击者需要这样的表也带有盐渍哈希。因此,从理论上讲,对于每个用户的唯一盐,攻击者需要为每个盐(=>用户)一个表。如果你有一个静态的盐,他“只是”需要一个表来做你的db。创建这样的表非常昂贵,因此在大多数情况下,仅为单个页面创建它不值得。

结论:它(当然)更安全,为每个用户使用独特的盐,但水平很高。静态盐通常是“足够安全的”。


推荐