來源:留學生大叔
2022 年,西班牙一位名叫邁克爾(Michael)的男子被一個難題困擾著。
早在 2013 年,他以 5300 美元的總價購買了那會兒還沒有大火的比特幣,一共購買了 43 枚。
隨後他把這些幣存進了電子錢包,為了防盜,他用一個密碼軟件生成了一串長達 20 位數的隨機密碼。
邁克爾擔心用同樣的軟件保存這個密碼不夠安全,要是被黑客破譯了或者電腦丟失了,那麼對方能按圖索驥找到密碼,取出他的比特幣。
於是,他自作聰明地把這長串密碼另行粘貼在了一個文檔中,讓誰也看不出來密碼的用途。他還給這個文檔設置了密碼,進行了加密。
經過這一層層的加密,邁克爾自以為自己有了牢不可破的比特幣賬戶密碼,只等比特幣漲價,自己就能提現了。
沒想到,邁克爾最終栽在了自己手裡——他存有密碼的加密文檔無緣無故壞掉了,根本無法打開,更無法把那個長達 20 位數的密碼粘貼出來。
同時,他眼睜睜看著比特幣的價值從過去的 123 美元 / 枚上漲到超 3w 美元 / 枚。
「我有這筆財富,我可以看到它,但我無法使用它,因為我沒有密碼。」
過去多年間,邁克爾一直尋找各方密碼破譯專家,看他們是否有人能幫他找回當年軟件生成的隨機密碼。
但無數網絡安全專家都告訴邁克爾:20 位隨機密碼?!忘了你的比特幣吧,它們永遠也找不回來了。
邁克爾聽到這些噩耗,一度認為自己有生之年無法拿到這筆鉅額財富。
直到 2022 這一年,他通過網絡得知了一位美國的黑客喬(Joe Grand),而後邁克爾向喬求助。
喬是世界有名的硬件黑客,也是一位電氣工程師和發明家,黑客歷史可以追溯到他 10 歲。
他被主流認可,還為系統開發人員提供諮詢,諮詢內容就是他們應該如何防範像他一樣的黑客…
喬還有過幫助兩位陌生人尋找回失落的加密貨幣密碼的經驗。
一次是對方把儲存了密碼的 u 盤丟進了一個湖裡,潛水員打撈上來後,喬通過一系列物理手段恢復了 u 盤的功能,讓對方可以像從未丟失過這個 u 盤一樣找到裡面儲存的密碼。
另一次則有關於密碼的破譯,一家人中的一個兒子意外去世,去世前曾交代親兄弟比特幣密碼可能和他們奶奶的名字有關,於是喬幫忙圍繞這個線索進行了「蠻力搜索」,一個又一個地嘗試數百萬個排列組合…
2022 年,邁克爾通過網絡聯繫了喬,但是喬卻沒有像之前一樣答應。
原因也不復雜:喬是做硬件方面的黑客,對這種涉及軟件隨機生成的密碼可不在行。
同時,幫人找回加密貨幣密碼這事也不是他的專長和興趣所在,無論對方開出多高的價。
於是,當年喬一口拒絕了邁克的請求。
但去年夏天,當邁克爾在絕望中又找到喬時,喬同意了試一試。
這次並非是喬心軟了才答應邁克,而是他的德國夥伴,一位年輕的軟件黑客提出他們有一定幾率可以找回邁克失落的密碼。
這位年輕的黑客名叫布魯諾 (Bruno),德國人,專攻軟件方面的漏洞,而且和喬一樣,布魯諾也是從小就對尋找系統和軟件中的安全漏洞表現出極大興趣。
布魯諾時常也會收到人們向他求助丟失的加密貨幣密碼的困擾,但像邁克這樣的情況,他也是第一次見到。
他對喬提出他們可能有機會搏一搏,而兩位天才黑客都對這些困難但有渺茫機會的項目感到無比的興趣。
喬飛到了歐洲和布魯諾、邁克匯合。
邁克爾當年是通過一個名叫「RoboForm」的軟件生成那個隨機密碼的,這個軟件是世界上較早的隨機密碼生成器,至今仍然沿用。
喬和布魯諾都對這個軟件進行了測試,發現該軟件每時每刻都可以生成完全不同的密碼。
對於兩人來說,要找到喬當年那個隨機密碼,簡直如同大海撈針:
「如果我們必須嘗試所有可能的密碼組合,那麼這相當於全世界水滴數量的 100 萬億倍。
如果我們將一個密碼想象成一滴水,那麼我們就會發現它可能在河底流動,它可能從天上掉下來,它可能在世界上任何地方的任何海洋中。
如果我們能夠以某種方式減少這種情況,那麼我們就可以把這個無法克服的問題變成我們可以成功的事情。」
兩人瞭解了 RoboForm 的工作原理後,就開始順著時間線尋找可以縮小搜索範圍的線索。
他們很快注意到,在軟件的版本說明時間線上,2015 年版本的更新說明有些蹊蹺:
「我們增加了生成密碼的隨機性。」
這句話讓兩名天才黑客都起了疑心:增加了隨機性??
這是否說明,2015 年之前的版本生成的密碼是否沒那麼隨機??
喬和布魯諾作為電腦軟硬件天才也一直知道,實際上,計算機要隨時不斷生成一串「完全隨機」的數字是一件「非常非常困難」的事,很多隨機數都時常和一些參考參數有關聯:
「如果我們能夠操縱這種‘隨機性’,我們可能能夠得到一個可預測的輸出,可以用來嘗試破解邁克爾的錢包密碼。」
但如今已經是 2023 年了,怎麼才能回到邁克爾創建密碼的 10 年前,讓軟件模仿當年邁克爾一樣的動作呢?
這時候,兩人的專業就顯露無疑:他們對軟件進行了逆向工程,不僅把軟件的版本變回了 2013 年的版本,還通過篡改系統數據,讓軟件相信自己正在執行一個來自 2013 年的用戶命令:
「我們可以欺騙了系統回到 2013 年,它認為我們還在邁克爾生成密碼的時間窗口中生成密碼。」
搭乘「時光機」回到 10 前後,兩人又使用了一款美國國安局也在使用的軟件工具試圖摸清楚過去的密碼產生的規律:
「這款軟件就像俄羅斯套娃。我們的目標是中間那個生成密碼的小娃娃。」
通過運算和測試,兩人驚喜發現:當年的隨機密碼生成真的有規律,那個規律就是系統時間!
原來,2013 年的該軟件會根據用戶創建密碼的時間來生成一個嚴格跟時刻掛鉤的「偽隨機密碼」,每一時刻的密碼都跟創建時間有著直接關聯。
得到密碼和邁克當年創建密碼的時間有關的重要線索,喬和布魯諾都很興奮。
這意味著:他們的大海撈針範圍可以大為縮小,只要知道邁克爾創建隨機密碼的日子和大致時間,他們就能運算出有限數量的密碼,並把這些密碼拿去逐一嘗試了。
但沒想到,邁克爾根本記不住十年前自己究竟哪月哪日打開了這個軟件生成了比特幣的密碼…
喬和布魯諾沒有灰心,進一步無比耐心地排查。
他們找出了邁克爾將比特幣存入電子錢包的時間:2013 年 4 月。
按照常理,邁克爾應該在這個日子前後幾個月內創建了隨機密碼。於是,喬和布魯諾把搜索時間設定在了當年的 3 月份至 4 月底。
他們通宵地商討和計算,等待電腦運行結果,但結果讓他們失望了:沒有一個結果能解鎖邁克爾的比特幣賬戶。
兩人無奈之下再度聯繫邁克爾,要求他再仔細回想確切的日子。
但邁克爾也被搞得頭昏腦脹,畢竟,10 年前的事情誰能記得那麼清楚?
不過,布魯諾這次讓邁克爾把他在當年通過這個軟件另外創立的幾個密碼發給了他。喬和布魯諾希望能從邁克爾通過同一個軟件創建的其他密碼找出一些線索。
兩人發現,在邁克爾的另外兩個密碼沒有含任何特殊字符(¥……&類似的)。
特殊字符是否出現在隨機密碼中可以由用戶自行設定,喬和布魯諾抱著一線希望,把搜索範圍中特殊字符的選項去掉,又延長了搜索時間到 2013 年的 6 月 1 日。
而在一個普通尋常的凌晨,布魯諾面前的電腦突然跳出一串特定的由數字和字母組成的字符:
一個唯一的結果從電腦屏幕上蹦了出來!
這個結果是軟件專家布魯諾自己都沒想到的,居然會有唯一一個結果存在!
狂喜的布魯諾
結果顯示,邁克爾在 2013 年的 5 月 15 號下午 4 點 10 分 40 秒點擊創建了這個密碼…
去年 11 月,喬和布魯諾先對邁克爾瞞下了這個驚天喜訊,他們訂製了一塊寫著給邁克爾頒發 160 萬美元的巨大泡沫板,還成功把這個板子通過飛機託運到了巴塞羅那。
然後,當邁克爾還在攝像機前配合講述自己如何丟掉這筆巨大財富的故事時,喬和布魯諾突然出現在邁克爾面前,用獎牌告知了他這個喜訊!
三個人都高興得無以復加。
經過 5 個月的努力,喬和布魯諾真的把之前不可能的事情變成了 100%!
作為回報,喬和布魯諾在成功破解密碼後從邁克爾的比特幣賬戶中拿到了特定比例的比特幣(他們在尋找密碼前就和邁克爾達成了協議破譯成功後他們才會收取費用)。
而去年 11 月邁克爾的比特幣已經從 10 年前的 5300 美元漲至 160 萬美元。
喬和布魯諾把整個故事拍成了一部短小精湛的紀錄片,到今年 5 月紀錄片播出之時,這 160 萬美元已經漲到了 300 萬美元…
去年底,邁克爾售賣了一些幣,分給了自己的恩人一些幣,自己還留下了 30 枚幣。
他準備等到比特幣漲到 10 萬美元 / 枚的時候出售剩下的幣。
最後,邁克爾除了感謝喬和布魯諾,還感謝了自己當年的「聰明反被聰明誤」:
「要是沒丟失密碼,可能就等不了 10 年,這之前可能早就賣了。」
怎麼說呢,要不是兩位黑客天才用心的幫忙,加上碰上軟件剛好在過往版本有著巨大系統漏洞,邁克爾的密碼早都丟到太平洋去了。
希望他能長個記性吧…
Ref:
https://english.elpais.com/technology/2024-08-14/i-hacked-time-to-recover-3-million-from-a-bitcoin-software-wallet.html
https://www.wired.com/story/roboform-password-3-million-dollar-crypto-wallet/
https://www.forbes.com/sites/daveywinder/2024/05/30/how-bitcoin-hackers-recovered-3-million-from-wallet-locked-in-2013/
https://www.youtube.com/watch?v=o5IySpAkThg