领英为何使用未加盐的SHA-1散列密码?

本文探讨了为什么领英使用不安全的未加盐SHA-1进行密码散列,它所带来的风险,领英的应对措施以及吸取的教训。
On this page

领英为何使用未加盐的SHA-1散列密码?

摘录

LinkedIn使用未经盐处理的SHA-1算法进行密码哈希,使用户容易受到暴力破解攻击。他们快速做出了回应并解决了这个问题,突显了适当的哈希和安全审计的重要性。

介绍

LinkedIn 是全球最大的专业社交平台之一,拥有超过7亿会员。与任何以用户为中心的在线服务一样,密码安全对于LinkedIn来保护用户账户至关重要。

2012年,人们发现LinkedIn在存储用户密码时使用了未加盐的SHA-1算法进行哈希处理。由于未加盐SHA-1的弱点,这引发了严重的安全担忧。本文将探讨为什么LinkedIn会做出这个选择,相关的风险以及LinkedIn对该问题的应对方式。

关于密码哈希的背景知识

密码哈希是将密码转换为不可读字符串(称为哈希)的过程,它可以实现安全存储密码。

常用的哈希算法包括MD5SHA-1SHA-256bcrypt。哈希输出不会泄露原始密码。

当用户登录时,输入的密码会被哈希处理,并与存储的哈希进行匹配以验证访问权限。

LinkedIn的密码安全问题

2012年6月,安全研究人员发现LinkedIn在存储用户密码之前使用了未加盐的SHA-1算法进行哈希处理。

这导致了一个明显的漏洞,因为未加盐的SHA-1哈希易受暴力破解攻击的影响,原因是其速度和简单性。

领英选择这种方式的原因

领英很可能选择了未加盐的SHA-1算法,原因如下:

  • 广泛使用 - 在那个时候,SHA-1算法是许多服务常用的算法。

  • 计算简便 - 相比于bcrypt等算法,SHA-1算法的计算速度相对较快。这降低了领英的运营成本。

  • 缺乏认识 - 在2012年,人们对SHA-1算法的弱点了解并记录得不够充分。

总体而言,未加盐的SHA-1算法在当时是便捷和标准的做法,但对现代暴力破解攻击来说非常不安全。

对用户账户的影响

使用未加盐的SHA-1算法来散列密码给领英的用户带来了重大风险:

  • 极大地简化了密码的暴力破解。黑客团体可以轻松解密用户密码。

  • 增加了使用泄露密码进行凭证填充攻击的机会。

  • 易受前像攻击的影响,攻击者可以找到与已知哈希匹配的密码。

这削弱了平台上用户账户和数据的安全性。

领英的应对措施

一旦未加盐的SHA-1算法问题公开,领英立即做出了响应:

  • 要求用户立即更改密码以应对直接风险。新密码使用更好的加盐散列。

  • 实施了使用10000轮SHA-256迭代散列的加盐散列。这增加了暴力破解攻击的计算工作量。

  • 为受影响的用户提供一年的免费身份保护保险。

  • 将加强安全性列为未来的首要任务。

领英因此事受到了一些批评。但他们透明的回应和快速的纠正措施受到了赞扬。

总结与建议

领英案例展示了使用正确的密码哈希技术的重要性:

  • 始终使用带盐的密码哈希,最好使用缓慢的密钥派生函数,如bcrypt、PBKDF2Argon2

  • 定期根据最新的标准和建议重新评估密码使用方法。

  • 采用多因素身份验证和其他保护层的防御性方法。

  • 在漏洞被利用之前主动审查安全措施。

  • 与用户保持透明,并迅速回应发现的问题。

对于今天处理用户凭据的任何在线服务来说,这些教训是确保安全并建立信任的基本要素。

结论

领英使用未加盐的SHA-1哈希算法使用户账户面临严重的凭证盗窃和暴力破解风险。尽管存在安全漏洞,但领英通过迅速修复问题并及时通知用户做出了良好的回应。该案例突显了使用带盐和缓慢密钥拉伸的正确密码哈希的重要性,以及持续进行安全评估。对于在线平台而言,健壮的密码保护应该是首要任务。