由於十年前版本的 RoboForm 密碼管理器存在缺陷,再加上一些運氣,研究人員得以挖掘出包含財富的加密錢包的密碼。

兩年前,當加密貨幣所有者“邁克爾”聯繫喬·格蘭德(Joe Grand),希望他能幫助恢復他以加密格式存儲在電腦上的價值約 200 萬美元的比特幣時,格蘭德拒絕了。

居住在歐洲並要求匿名的邁克爾將加密貨幣存儲在一個受密碼保護的數字錢包中。他使用 RoboForm 密碼管理器生成密碼,並將該密碼存儲在使用 TrueCrypt 工具加密的文件中。後來,該文件被損壞,邁克爾無法訪問他爲保護 43.6 比特幣(2013 年總價值約爲 4,000 歐元,即 5,300 美元)而生成的 20 個字符的密碼。邁克爾使用 RoboForm 密碼管理器生成密碼,但沒有將其存儲在管理器中。他擔心有人會入侵他的計算機並獲取密碼。

“那時,我對自己的安全非常擔心,”他笑着說。

Grand 是一位著名的硬件黑客,2022 年,他幫助另一位加密錢包所有者找回了 200 萬美元的加密貨幣,他以爲自己在忘記 Trezor 錢包的 PIN 碼後永遠失去了這些加密貨幣。從那時起,數十人聯繫 Grand 幫助他們找回他們的財富。但以黑客暱稱“Kingpin”而聞名的 Grand 出於各種原因拒絕了大多數人。

Grand 是一名電氣工程師,他從 10 歲開始破解計算機硬件,並於 2008 年共同主持了探索頻道的《原型》節目。他現在爲構建複雜數字系統的公司提供諮詢,幫助他們瞭解像他這樣的硬件黑客如何破壞他們的系統。2022 年,他使用複雜的硬件技術破解了 Trezor 錢包,迫使 USB 式錢包泄露了密碼。

但邁克爾將加密貨幣存儲在軟件錢包中,這意味着格蘭德的硬件技能這次都派不上用場了。他考慮過暴力破解邁克爾的密碼——編寫一個腳本來自動猜測數百萬個可能的密碼以找到正確的密碼——但他認爲這不可行。他曾一度考慮過邁克爾用來生成密碼的 RoboForm 密碼管理器可能在生成密碼的方式上存在缺陷,這將使他更容易猜出密碼。然而,格蘭德懷疑這種缺陷是否存在。

邁克爾聯繫了多位專門破解密碼的人,他們都告訴他“沒有機會”拿回他的錢。但去年 6 月,他再次聯繫了格蘭德,希望說服他幫忙,這次格蘭德同意試一試,與一位名叫布魯諾的德國朋友合作,布魯諾也是一名破解數字錢包的人。

格蘭德和布魯諾花了幾個月的時間對他們認爲邁克爾在 2013 年使用過的 RoboForm 程序版本進行逆向工程,發現該版本(以及 2015 年之前的後續版本)中用於生成密碼的僞隨機數生成器確實存在重大缺陷,導致隨機數生成器的隨機性降低。RoboForm 程序不明智地將其生成的隨機密碼與用戶計算機上的日期和時間綁定在一起——它確定了計算機的日期和時間,然後生成了可預測的密碼。如果你知道日期和時間以及其他參數,你就可以計算出過去某個日期和時間生成的任何密碼。

如果邁克爾知道他在 2013 年生成密碼的日期或大致時間範圍,以及他用於生成密碼的參數(例如,密碼中的字符數,包括大小寫字母、數字和特殊字符),那麼就可以將可能的密碼猜測範圍縮小到可控的範圍內。然後,他們可以劫持 RoboForm 負責檢查計算機上日期和時間的功能,並讓其回到過去,相信當前日期是邁克爾在 2013 年生成密碼的日期。然後,RoboForm 會吐出它在 2013 年生成的相同密碼。

有一個問題:邁克爾不記得他何時創建了密碼。

根據軟件錢包的記錄,邁克爾於 2013 年 4 月 14 日首次將比特幣轉入錢包。但他不記得密碼是在同一天還是在這之前或之後的某個時間生成的。因此,格蘭德和布魯諾查看了他使用 RoboForm 生成的其他密碼的參數,將 RoboForm 配置爲在 2013 年 3 月 1 日至 4 月 20 日期間生成 20 個字符的密碼,其中包含大小寫字母、數字和八個特殊字符。


無法生成正確的密碼。因此,Grand 和 Bruno 使用相同的參數將時間範圍從 2013 年 4 月 20 日延長到 2013 年 6 月 1 日。仍然沒有成功。

邁克爾說,他們不斷回頭詢問他是否確定自己使用的參數。他堅持自己的第一個答案。

“他們真的讓我很惱火,因爲誰知道我 10 年前做了什麼,”他回憶道。他找到了 2013 年用 RoboForm 生成的其他密碼,其中兩個沒有使用特殊字符,所以格蘭德和布魯諾進行了調整。去年 11 月,他們聯繫了邁克爾,安排了一次當面會面。“我想,‘天哪,他們會再次問我設置問題。’”

相反,他們透露,他們終於找到了正確的密碼——沒有特殊字符。該密碼生成於 2013 年 5 月 15 日下午 4:10:40(格林威治標準時間)。

“最終我們很幸運,我們的參數和時間範圍是正確的。如果其中任何一個是錯誤的,我們就會......繼續猜測/盲目嘗試,”格蘭德在給《連線》的電子郵件中說。“預先計算所有可能的密碼將花費更長的時間。”

Grand 和 Bruno 製作了一個視頻來更詳細地解釋技術細節。

RoboForm 由美國 Siber Systems 公司製造,是市場上最早的密碼管理器之一,據該公司報告稱,目前全球用戶超過 600 萬。2015 年,Siber 似乎修復了 RoboForm 密碼管理器。粗略一看,Grand 和 Bruno 沒有發現 2015 年版本中的僞隨機數生成器佔用計算機時間的任何跡象,這讓他們認爲他們刪除了它以修復漏洞,但 Grand 表示他們需要更徹底地檢查它才能確定。

Siber Systems 向《連線》雜誌證實,他們確實在 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 沒有通知客戶,這就意味着任何像邁克爾一樣在 2015 年之前使用 RoboForm 生成密碼的人(並且仍在使用這些密碼)可能都擁有易受黑客重新生成的密碼。

“我們知道,大多數人不會更改密碼,除非有人提示他們這樣做,”格蘭德說。“在我的密碼管理器(不是 RoboForm)中的 935 個密碼中,有 220 個是 2015 年及之前設置的,其中大多數是我現在仍在使用的網站的密碼。”

根據該公司在 2015 年解決該問題所採取的措施,較新的密碼也可能存在漏洞。

去年 11 月,格蘭德和布魯諾從邁克爾的賬戶中扣除了一定比例的比特幣作爲他們工作的報酬,然後給了他訪問剩餘比特幣的密碼。當時,比特幣每枚價值 38,000 美元。邁克爾等到比特幣漲到每枚 62,000 美元后,賣掉了一部分。他現在有 30 枚比特幣,價值 300 萬美元,正在等待比特幣升值到每枚 100,000 美元。

邁克爾說,他很幸運幾年前就弄丟了密碼,否則,他就會在比特幣價格達到每枚 4 萬美元時將其賣掉,從而錯失更大的財富。

“忘記密碼對我的經濟來說是一件好事。”