加密货币持有者Michael曾找硬件黑客Joe Grand帮忙恢复200万美元比特币,但Grand拒绝了。最近,Michael发现自己使用的密码管理器存在漏洞,可以帮助破解密码。Grand和朋友花了几个月尝试破解,但未成功。密码管理器RoboForm也被发现存在漏洞,导致用户可能被黑客攻击。去年,Grand和朋友从Michael账户中扣除了比特币作为报酬,现在价值300万美元。Michael说自己幸运忘记密码,否则可能会错过更大的财富。
原文标题:How Researchers Cracked an 11-Year-Old Password to a $3 Million Crypto Wallet
原文作者:KIM ZETTER
原文来源:wired
编译:吴说区块链
两年前,当“Michael”,一位加密货币持有者,联系 Joe Grand 寻求帮助,以恢复他存储在电脑上加密格式的约 200 万美元的比特币时,Grand 拒绝了他。
Michael 位于欧洲,要求匿名。他将加密货币存储在一个密码保护的数字钱包中。他使用 RoboForm 密码管理器生成了一个密码,并将该密码存储在一个用 TrueCrypt 加密的文件中。某个时候,该文件损坏了,Michael 失去了对他为保护 43.6 BTC(2013 年时价值5,300 美元)所生成的 20 位密码的访问权限。Michael 使用 RoboForm 密码管理器生成了密码,但没有将其存储在管理器中。他担心有人会黑进他的电脑获取密码。
“当时,我对我的安全性真的很偏执,”他笑着说。
Grand 是一位著名的硬件黑客,2022 年他曾帮助另一位加密钱包持有者恢复对他认为永远丢失的 200 万美元加密货币的访问权,该持有者忘记了其 Trezor 钱包的 PIN。自那以后,几十个人联系了 Grand,希望他帮助他们找回财富。但 Grand,也就是黑客代号“Kingpin”,出于各种原因拒绝了大多数请求。
Grand 是一名电气工程师,从 10 岁起就开始破解计算机硬件,2008 年共同主持了 Discovery 频道的《Prototype This》节目。他现在为构建复杂数字系统的公司提供咨询,帮助他们了解像他这样的硬件黑客如何可能破坏他们的系统。他在 2022 年使用复杂的硬件技术破解了 Trezor 钱包,迫使 USB 式钱包泄露了密码。
但 Michael 将加密货币存储在基于软件的钱包中,这意味着 Grand 的硬件技能这次无用武之地。他考虑过暴力破解 Michael 的密码——编写一个脚本自动猜测数百万个可能的密码以找到正确的密码——但认为这是不可行的。他曾短暂考虑过 Michael 用来生成密码的 RoboForm 密码管理器可能在生成密码的方式上存在漏洞,这会使他更容易猜出密码。然而,Grand 不确定这种漏洞是否存在。
Michael 联系了多位专门破解密码学的人士,他们都告诉他“没有机会”取回他的资金。但去年六月,他再次联系了 Grand,希望能说服他帮忙,这次 Grand 同意尝试,并与他的朋友 Bruno 一起合作,Bruno 也在德国从事数字钱包破解。
Grand 和 Bruno 花了几个月时间逆向工程他们认为 Michael 在 2013 年使用的 RoboForm 程序版本,发现用于生成密码的伪随机数生成器确实存在重大漏洞,使得生成的随机数并不那么随机。RoboForm 程序不明智地将生成的随机密码与用户电脑上的日期和时间绑定——它确定了电脑的日期和时间,然后生成可预测的密码。如果你知道日期、时间和其他参数,你就可以计算出过去某个日期和时间生成的任何密码。
如果 Michael 知道他在 2013 年生成密码的日期或大致时间范围,以及他用来生成密码的参数(例如密码的字符数,包括大小写字母、数字和特殊字符),这将使可能的密码猜测范围缩小到可管理的数量。然后他们可以劫持 RoboForm 检查电脑日期和时间的功能,让它相信当前日期是 Michael 生成密码的 2013 年的某一天。RoboForm 会吐出 2013 年那几天生成的相同密码。
有一个问题:Michael 记不清他创建密码的具体时间。
根据他软件钱包的日志记录,Michael 首次将比特币转入他的钱包是在 2013 年 4 月 14 日。但他不记得自己是否在同一天或之前或之后的某个时间生成了密码。因此,查看他使用 RoboForm 生成的其他密码的参数后,Grand 和 Bruno 配置 RoboForm 生成包含大小写字母、数字和八个特殊字符的 20 位密码,时间范围从 2013 年 3 月 1 日到 4 月 20 日。但还是没有生成正确的密码。于是 Grand 和 Bruno 将时间范围延长至 2013 年 4 月 20 日到 6 月 1 日,使用相同的参数。仍然没有成功。
Michael 说他们不断回来问他是否确定自己使用的参数。他坚持自己的答案。
“他们真的让我很烦,因为谁知道我 10 年前做了什么,”他回忆道。他找到了他在 2013 年用 RoboForm 生成的其他密码,其中两个没有使用特殊字符,所以 Grand 和 Bruno 进行了调整。去年十一月,他们联系 Michael,安排了一次面对面的会议。“我想,‘天哪,他们又要问我设置参数了。’”
相反,他们告诉他,他们终于找到了正确的密码——没有特殊字符。该密码生成于 2013 年 5 月 15 日,格林尼治标准时间下午 4:10:40。
“最终,我们很幸运地选择了正确的参数和时间范围。如果其中任何一个是错误的,我们将会……继续盲目猜测,”Grand 在给 WIRED 的电子邮件中说。“预先计算所有可能的密码会花费显著更长的时间。”
Grand 和 Bruno 制作了一个视频,更详细地解释了技术细节。
RoboForm 由位于美国的 Siber Systems 开发,是市场上最早的密码管理器之一,目前全球有超过 600 万用户。根据公司报告,Siber 似乎在 2015 年修复了 RoboForm 密码管理器。Grand 和 Bruno 简单查看后没有发现 2015 版本中的伪随机数生成器使用了电脑时间,这让他们认为 Siber 移除了这一功能以修复漏洞,不过 Grand 表示需要更深入的检查才能确定。
Siber Systems 公司向 WIRED 确认,他们确实在 2015 年 6 月 10 日发布的 RoboForm 版本 7.9.14 中修复了这一问题,但发言人未回答关于修复方式的问题。在公司网站的变更日志中,只提到 Siber 程序员进行了更改以“增加生成密码的随机性”,但未说明具体如何操作。Siber 发言人 Simon Davis 表示,“RoboForm 7 在 2017 年停产。”
Grand 说,在不清楚 Siber 如何修复问题的情况下,攻击者可能仍然能够再生成 2015 年修复前版本的 RoboForm 生成的密码。他也不确定当前版本是否包含这个问题。
“在不清楚他们实际上如何改进最近版本中的密码生成之前,我仍然不确定是否值得信任,”他说。“我不确定 RoboForm 是否知道这一特定弱点有多严重。”
客户可能仍在使用修复前版本生成的密码。Siber 似乎从未在 2015 年发布修复版 7.9.14 时通知客户他们应该为重要账户或数据生成新密码。公司未对此问题作出回应。
如果 Siber 未通知客户,这意味着像 Michael 这样在 2015 年之前使用 RoboForm 生成密码并仍在使用这些密码的人,可能会有容易被黑客再生成的密码。
“我们知道,大多数人不会在未被提示的情况下更改密码,”Grand 说。“在我的密码管理器(非 RoboForm)中有 935 个密码,其中 220 个是在 2015 年及以前生成的,并且其中大多数是我仍在使用的网站。”
根据该公司在 2015 年修复问题的方式,较新的密码也可能存在漏洞。
去年十一月,Grand 和 Bruno 从 Michael 的账户中扣除了一定比例的比特币作为工作报酬,然后将密码交给他。当时比特币的价格为每枚 38,000 美元。Michael 等待价格上涨至每枚 62,000 美元并出售了一部分。他现在有 30 BTC,价值 300 万美元,并等待价格升至每枚 100,000 美元。
Michael 说,他很幸运在多年前丢失了密码,因为否则他会在每枚 40,000 美元时卖掉比特币,从而错过更大的财富。
“忘记密码在经济上是一件好事。”