博客
2020 年 7 月 16 日
从 RubyGems.org 中移除 SHA1 密码
作者:Colby Swandale
2009 年创建 RubyGems.org Rails 应用时,“标准”密码存储方式是使用 SHA1 哈希算法。尽管早至 2005 年就有学者对 SHA1 发起有限攻击,但实际攻击直到 2010 年代中期才出现。如今,SHA1 被广泛认为不安全,可以采用更好的选项。
2013 年,RubyGems.org 开始对新帐户默认采用 BCrypt。作为这项转换的一部分,2013 年之前创建的用户将在下次登录时自动从 SHA1 迁移至 BCrypt。在未来几天,RubyGems.org 将删除自 2013 年起未登录其帐户的任何用户的 SHA1 密码。
此项更改之后,自 2013 年起未登录过的用户需要使用其电子邮件地址执行密码重置。
自 2013 年创建或登录过的帐户不受影响。对于这些帐户,无需执行任何操作。
常见问题
将进行哪些更改?
RubyGems.org 将移除使用 SHA1 算法哈希存储的过时密码。受影响的帐户需要通过注册到其帐户的电子邮件地址重置密码。不会修改或移除其他用户信息。
如何了解我的帐户是否会受影响?
如果您自 2013 年起登录过您的 rubygems.org 帐户,则您的密码会自动迁移使用 BCrypt,无需执行进一步的操作。
为什么进行此项更改?
SHA1 已不再是哈希用户密码的可接受方法。它于 2011 年被 NIST 正式弃用,并于 2017 年被学者公开攻破。
存储过时的 SHA1 哈希会带来安全风险。如果攻击者窃取 RubyGems.org 用户表,他们可以用轻而易举地破解那些 SHA1 哈希。然后他们可以利用这些破解的密码劫持 RubyGems.org 帐户并删除广泛使用的宝石,或发布恶意宝石。为了消除此风险,我们将从 RubyGems.org 数据库中删除所有 SHA1 密码哈希。