我忘記了 PIN:一個 3 萬美元比特幣如何失而復得的故事

這可能是今年一開始最精彩的一個科技故事。本文講述的是 Mark Frauenfelder 個人的經歷,通過這個故事,我們也能從中體會到比特幣存取及其配套服務中的缺點及不足。
評論
評論

原文來自 Wired《‘I Forgot My PIN’: An Epic Tale of Losing $30,000 in Bitcoin》,作者 Mark Frauenfelder。 台灣康泰納仕集團授權提供 / 合作媒體 36kr 編譯。

Trezor:2016 年 1 月 4 日:7.4 BTC=3000 美元

2016 年 1 月,我花了 3000 美元買了 7.4 枚比特幣。在當時,這似乎是一件完全值得做的事情。我剛開始在未來區塊鏈期貨實驗室研究所擔任研究主管,需要親身體驗比特幣——一種使用區塊鏈來記錄其網路交易的加密貨幣。我並沒有想到,這筆交易會導致一場激烈的奮鬥,以避免失去一小筆財富。

我關於比特幣的實驗非常吸引人。用這種加密貨幣來購買東西非常容易,我用 airBitz 應用購買星巴克,用 Purse.io 從亞馬遜購買無線安全錄影鏡頭門鈴,也曾在洛杉磯的 Meltdown Comics 中使用比特幣來購買漫畫小說。

到了同年 11 月,比特幣的價值自 1 月以來幾乎漲了一倍,而且幾乎每天都在上漲。我的加密貨幣儲備開始變成了實實在在的錢。我一直把我的比特幣私鑰放在一個網路錢包上,但我想把它們轉移到一個更安全的地方。

因為許多線上比特幣服務保留了客戶的比特幣私鑰,這意味著這些帳戶很容易受到駭客和詐騙者的攻擊(還記得 2014 年 Mt. Gox 在客戶帳戶中損失了 85 萬顆的比特幣嗎?),或者政府的影響(比如俄羅斯比特幣交易平台 BTC-e,今年 8 月被美國地方法院查封,凍結了其用戶的資產)。

我採訪了幾位比特幣專家,他們都告訴我,保護你的快取最安全的方式就是使用所謂的「硬體錢包」。這個小設備基本上就是一個被美化了的 USB 儲存器,可以儲存你的比特幣私鑰,並允許你在不把私鑰暴露在網際網路的情況下授權交易,因為在網際網路上,私鑰很容易就被壞人偷走。

我選定了一個叫做 Trezor 的硬體錢包(捷克語的「安全」),製造商稱之為「防彈」。我在 11 月 22 日以 100 美元的價格在亞馬遜上買了一台(再次通過 Purse.io)。

Trezor 到貨後,我把它插進電腦,然後去 Trezor 網站上去設定它。這個小玩意的單色螢幕顯示了一個鎖頭圖示。網站指示我寫下 24 個單字,這些單字是由 Trezor 隨機生成的,比如「感知」、「移動」、「時尚」和「苦」。我把它們寫在一張黃色的紙上。接下來,我被提示要提供一個 PIN(Personal Identification Number,個人識別碼)。我選擇了幾個我很熟悉,並且可以很容易回憶起來的短數字組合,把它和 24 個單字寫同一張紙上。

Trezor 網站解釋說,這 24 個單字是我的恢復詞彙,可以用來生成我的比特幣的主私鑰。如果我的 Trezor 丟了,或者壞了,我就可以把這 24 個單字輸入到一個新的 Trezor,或者其他任何一個使用相同標準私鑰生成算法的硬體和線上錢包中,來恢復我的比特幣。

對我來說,把這張紙藏好並保證安全是很重要的,因為任何人都可以用它來偷走我的 7.4 枚比特幣。我把它們從我的網路錢包轉移到了 Trezor 中,並把 Trezor 和黃色紙片扔進我辦公室的書桌抽屜裡。我打算買一段鋁板,通過鋼字印模把 24 個單字打印在上面,然後把它放在安全的地方。我計劃在假期後馬上去做這件事。

錯誤:2017 年 3 月 16 日:7.4 BTC=8799 美元

那是早上 6:30。我 14 歲的女兒,簡(Jane),正在倫敦上學,我的大女兒薩麗娜(Sarina)在科羅拉多上大學。我的妻子卡拉(Carla)和我正準備去機場去東京度假。當我在抽屜裡翻找手機充電器的時候,我看到了那張黃色的紙,裡面有恢復單字和 PIN。我該怎麼做呢?如果我們的飛機墜落在了大海裡,我希望我的女兒們能夠得到比特幣。

自從我買了這些比特幣以來,它們的價值已經上漲了近兩倍,我可以想像,有一天它們的價值將會是 5 萬美元。我拿起一支筆,在紙上寫道:

簡,如果有什麼事發生的話,把這張紙給科里(Cory)看,他知道該怎麼做。愛你的爸爸

(科里的全名叫科里·多特羅(Cory Doctorow),他是我的朋友,也是我的網站 Boing Boing 的商業夥伴。他不是比特幣的狂熱愛好者,但我知道他能夠找到從單字列表中檢索出我的比特幣主私鑰的方法。)

我把那張紙拿到簡的臥室裡,把它放在了她的枕頭下面,然後我們叫了 Lyft 到洛杉磯國際機場。

垃圾:2017 年 4 月 4 日:7.4 BTC=8384 美元

3  月 24 日,我們從東京回來,直到 4 月 4 日,我才想起那張黃色的紙,我記得我把它放在簡的枕頭下了,這很有趣,我想。她回家已經有一個多星期了,從來沒跟我說過這件事。

我走進她的房間,拿起她的枕頭,但那張紙並不在那裡。我檢查了她的床底下,為了看得更清楚,我把置物箱也拖了出來,並把手機當手電筒去照。

「卡拉?」我問。「你看到那張黃色的紙了嗎? 上面有我的比特幣密碼?我在簡的房間裡找不到。」

「也許簡把它放在桌子上了,」她說。簡在學校,但我發短信問她。她說她從沒見過一張黃色的紙。

「等等,」卡拉說。「我們離開後,找人打掃過房子。我會給他們打電話。」

卡拉給我們用過的清潔服務公司打了電話,找到了那個打掃屋子的女人。她告訴卡拉,她的確記得找到那張黃色的紙。

「它在哪裡?」卡拉問道。

「我把它扔了。」

我知道垃圾已經被收集起來了,但我還是戴上了一副塑膠手套,不管怎樣,我都要翻一翻外面的垃圾箱。很顯然,那張黃色的紙沒有出現,正在洛杉磯的一個垃圾掩埋場的垃圾堆下面腐爛。

卡拉問,弄丟這張紙是不是一件大事。

「並不是,」我說。「這只會帶來一些麻煩,僅此而已。我必須把所有的比特幣從 Trezor 發送到線上錢包中,重新初始化 Trezor,生成一個新的單字列表,然後再把比特幣放回 Trezor。如果我記不住我的 PIN,那才會是糟糕的,但我知道,它是 551445。」

遺忘:2017 年 4 月 4 日:7.4 BTC=8384 美元

我把 Trezor 插進了我的筆記本電腦,輸入 551445。

輸入的 PIN 錯誤。

我想,我一定是在輸入 PIN 時犯了個錯誤。

我又試了 551445 一次,這次我很小心,確保輸入的數字都是正確的。

輸入的 PIN 錯誤。

哦哦。我嘗試對其進行輕微變動:554445

輸入的 PIN 錯誤。

這太荒謬了,我想。我知道 PIN。最近幾個月,我至少用了十幾次,並沒有去看那張紙。好吧,可能是 554145。

輸入的 PIN 錯誤。

這個時候,我看到比特幣錢包(Trezor)上的單色螢幕上出現了一個倒計時裝置。這告訴我,想要再試另一個 PIN 之前,需要等幾秒鐘。我的心砰砰直跳。我去了硬體錢包製造商的網站,知道了 PIN 延遲輸入的問題,並得到了一個壞消息:每次輸入一個錯誤的 PIN 時,延遲時間就會翻倍。該網站稱,「PIN 輸入失敗的數量將會儲存在 Trezor 的記憶體中。這意味著,Trezor 的電源循環(開關機)不會讓等待時間再次變為零。只要把 Trezor 打開再關上,就會重新開始計時了。小偷必須要坐著不走,才能嘗試下一個 PIN。這個時候,你就會有足夠的時間將你的資金轉移到一個新的設備或錢包中。」

問題是,我就是那個小偷,試圖從我的 Trezor 裡偷取我自己的比特幣。我感到不安。在我的第 6 次輸入 PIN 錯誤後,恐懼逐漸升級為令人心悸的恐慌——我可能要與我的 7.4 枚比特幣吻別了。

我又猜了幾次,每次失敗後,我的不真實感就會隨著 PIN 延時的增加而增加,現在是 2048 秒,也就是 34 分鐘。我打開桌面計算器,很快發現自己在嘗試第 31 次(34 年時間)之前就已經死了。猜測 100 次可能會超過 800 萬億億年(80 sextillion)的時間。

我把這個消息告訴了卡拉。我告訴她我不記得那個 PIN 了,而且每次我輸入錯誤的 PIN 後,都會受到懲罰。她問我是否在密碼應用程式中保存了 PIN。我告訴她沒有。當她問我為什麼時,我沒有答案。

我知道,在焦躁不安的情況下,浪費一個寶貴的猜測是錯誤的。

我的腦海裡充斥著各種各樣雜亂無章的 PIN。我走進廚房,把蔬菜切成小片,準備晚飯吃的咖哩。但除了 PIN 之外,我想不出其他什麼別的東西。當我把馬鈴薯切成方塊時,我腦子裡的數字就像是一個架子上的拼字遊戲。過了一會兒,一個數字突然出現在我的腦海裡:55144545。就是這樣!我從廚房走到辦公室。Trezor 的倒計時還有幾百秒的時間。我一直在寫電子郵件,直到它準備好了我輸入了 55144545。

輸入的 PIN 錯誤。請等候 4096 秒再繼續……

那天晚上我幾乎沒睡覺。僅有的一些睡眠中,還充滿了關於數字 1、4 和 5 的組合的噩夢。讓我煩惱的不是那 8000 美元,而是因為我覺得自己愚蠢到把紙弄丟了,還忘記了 PIN。我也不喜歡比特幣可以增值的想法,我也不會接觸到它們。但如果我想不起 PIN,Trezor 會成為我餘下生命中的笑柄。

搜索:2017 年 4 月 5 日:7.4 BTC=8325 美元

那天早上,睡眼惺忪,我開始想辦法,在不涉及 PIN 或恢復單字的情況下,把我的比特幣拿回來。如果我遺失了我的提款卡,我可以聯繫我的銀行,然後我就可以重新獲得我的資金。比特幣則不同。沒有人擁有比特幣交易網路。相反,世界各地數以千計的計算機都在運行著能夠驗證系統交易的軟體。任何人都可以在自己的電腦上安裝比特幣軟體並參與其中。比特幣網路的這種去中心化的特徵並不是沒有後果的——最主要的一點就是,如果你搞砸了,那就是你自己的問題。

我在 Reddit 上找到了/r/trezor,並貼出了這樣的帖子:

你可以隨意嘲笑我——這是我應得的。我在同一張紙上寫下了我的 PIN 和恢復單字。我本來打算把單字拓印在在金屬條上,然後把它藏起來,但在那之前,為我打掃房屋的清潔服務公司員工就把它扔了。現在我記不住我的密碼了,我試著猜了大概 13 次。現在我得再等一個多小時才能再猜一猜。很快我再猜一次就需要幾年的時間了。有什麼我可以做的?或者我應該與我的 7.5 枚比特幣吻別嗎?

大多數回覆都富含同情,但都沒有什麼幫助。有人說,我應該聯繫提供錢包恢復服務的提供商,對加密的比特幣錢包進行強力解密。我給他們發了電子郵件,尋求幫助。「戴夫·比特幣」(Dave Bitcoin)第二天回覆說:

我想幫你…但我找不到任何能夠解決你面臨問題的其他辦法。要麽你能夠正確地猜出你的 PIN,要麽找到你的恢復單字。

在  Reddit 論壇上,一名用戶名為 zero404cool 的人的回覆非常有趣:

... 你所有的資訊仍然儲存在 Trezor 裡,有些人知道如何獲取這些資訊,讓你的電子錢包重新恢復功能。我看到過這樣的方法。

他在另一個回文中補充說:

這個方法能夠保證你的 Trezor 安全,不要用它做任何事,沒必要嘗試不同的 PIN。就可以找回你所有的比特幣了。

Reddit 上的其他用戶認為 zero404cool 的技術並沒有達到這個水準。有人說他可能是個騙子,也有人則指責他散佈關於 Trezor 安全的的「FUD」(恐懼、不確定和懷疑)。我傾向於同意他們的觀點,尤其是在知道 Trezor 為了讓駭客無法破解它的設備而花費的時間之後。製造商自信地聲稱,Trezor 能夠經受住任何攻擊與破解。該網站稱,最明顯的破解方法就是安裝非官方的韌體,來解鎖 PIN 和恢復單字,但這只會起到清除 Trezor 儲存的內容的作用。

為了證實這一點,我給 Trezor 發了郵件,解釋了我面臨的困境。一位客戶服務代表回我一封電子郵件,上面有一個「緊急情況指南」的連結,但這些都不適用於我的緊急情況。她寫:

在所有這些情況下,你都需要一個 PIN 或者是恢復單字來獲得你的資金。不幸的是,如果不了解其中的任何一個,就沒有人能夠使用儲存在其中的資金來進入這一特定的帳戶。馬克(Mark),還有什麼我可以幫你的嗎?

情況開始讓人感到絕望。與此同時,zero404cool 在 Reddit 上給我發了一條訊息:

是的,如果你願意接受我的幫助,我可以幫助你。顯然,你不會在其他任何地方找到這些指導,而且這還需要一定的技術技能來穩妥地完成它們。專業人士可以在 10 秒內提取所有資訊,但並不是每個人都會這些方法,一般人永遠都不會。

問題是我不認識你。我不知道你的故事是否是真實的。我甚至不知道你是否真的擁有一個 Trezor。例如,你可以很容易地用我的方法侵入別人的設備,那我不能同意。

所以,為了讓讓這個方法發揮它應有的作用,我想我們必須贏得彼此的信任。

我回覆告訴 zero404cool 來 Google 我的名字,來幫助他來決定是否可以信任我。他會發現我是《Wired》雜誌的第一批編輯之一,於 1993 年加入《Wired》雜誌。我創辦了人氣很高的 Boing Boing 網站,該網站每月有 500 萬獨立讀者。我還是科技 DIY 雜誌《Make》的創始主編。過了一會兒,zero404cool 回覆說:

嗨,馬克,看來你似乎不怕命令行程序。我想我們可以把恢復它當作一個 DIY 來進行。我現在有點忙,我希望你不會急著去完成它。

我回答說,我並不著急。但從那之後,我就再也沒有收到他的消息了。

催眠師:2017 年 5 月 25 日:7.4 BTC=12861 美元

「催眠讓我們能夠打開所有的通路,獲取所有的訊息。」米歇爾·古茲(Michele Guzy)說。我躺在她辦公室裡的一把躺椅上,身上蓋著一條毯子,專注於她舒緩的輕拍聲。我的妻子是一名記者和編輯,幾年前在寫一篇關於電影催眠術的文章時,曾採訪過米歇爾。我非常想要回憶起我的 PIN,所以我約了她。

在這次見面之前,米歇爾讓我重新回想了在一張黃色紙上寫下我的  PIN 的經歷。她把那張紙放在書桌的抽屜裡,讓我坐下來,打開抽屜,看看報紙。她解釋說,我們正在嘗試用不同的方法來觸發關於 PIN 的記憶。

這些練習並沒有讓我意識到任何東西,但米歇爾告訴我,我們只是在為即將到來的催眠部分激發我的潛意識。她把燈光調暗,用一種親切的、悅耳的歌唱方式來說話。她讓我想像自己走下一段非常長的自動扶梯,告訴我說,她說話的時候我會慢慢進入一種恍惚的狀態。這至少需要  15 分鐘。我感到很放鬆——但並沒有被催眠。我想我應該順著它走,也許這樣會有用的。

在她的辦公室待了將近 4 個小時後,我確定了 PIN 是  5514455。

我花了幾天時間才鼓起勇氣去試一試。每當我想到 Trezor 的時候,我的血就會湧進我的腦海,然後就會出汗。當我嘗試這個數字的時候,Trezor 告訴我它是錯的。我得再等上 16384 秒,大約 4 個半小時,設備才允許我進行下一次的猜測。

最後一個猜測:2017 年 8 月 12 日:7.4 比特幣=28749 美元

我試著不去想比特幣,但我忍不住。更糟糕的是,在整個夏天,它的價格都在急劇攀升,而且看不到盡頭。

今年 7 月,殺毒軟體 McAfee 創始人約翰·麥卡菲(John McAfee)發推文說,在 3 年內,一枚比特幣的價格將超過 50 萬美元——「如果沒有,我將在國家電視台上吃我的 XX,」他用自己典型的輕描淡寫的語氣說道。

我並不認為價格會如此驚人地上漲(或者麥卡菲會履行他的承諾),但這讓我更加焦慮。

我無法逃避這樣一個事實:唯一讓我遠離一小筆財富的就是一個簡單的數字,我以前不費力氣就能回憶起來,現在藏在我的腦子裡,不受催眠、冥想和自我責備的影響。我感到無助。有時,我的女兒們會偷偷地對我說:「快,比特幣的密碼是什麼?」沒有成功。有些晚上,在我睡覺之前,我會躺在床上,讓我的大腦去尋找那個 PIN。也是一無所獲。我能想像到的每一個可能的 PIN,聽起來都不比其他任何的 PIN 更好或更差。比特幣的價值在不斷成長,但它卻離我越來越遠。

我和卡拉在晚上洗衣服的時候,薩麗娜進來了,她從學校放暑假回來。「我知道比特幣密碼是什麼!」她說。「是 55445!」

「你為什麼這麼想?」我問。

「好吧,你有時會用 5054 作為密碼,但 Trezor 沒有 0,你肯定就跳過了它,然後也不會用什麼數字來替代它。所以,你不會把它變成 5154,你只需要用 554,然後加上 45。(我有時會在密碼後面加上 45,因為這個數字對我來說有特殊意義。)

卡拉看著我說:「你的眼睛在發光,也許這個數字是對的。」我想她可能是對的。

薩麗娜說,「如果不是 55445,那就是 554455,因為有時候你會在密碼會面加上 455。」

「可能就是這樣,」我說。「我會好好考慮的,如果我喜歡,我明天就去試試。」

第二天早上,我決定試試這些數字。我對它們的感覺比其他任何我能想到的數字都要好。我把 Trezor 插上電源。我必須等 16384 秒,或者大約 4 個半小時,才能輸入 PIN。那是周末,所以我在家裡做了一些事情。

當 Trezor 準備好的時候,我就請卡拉、薩麗娜和簡在我的電腦前集合。

我希望她們能給我提供精神上的支持,確保輸入的每一個數字都是正確的。如果這個 PIN 恰好是正確的,我們能一起分享喜悅並慶祝。

我坐在椅子上,而簡、薩麗娜和卡拉站在我身邊。我的心跳得非常厲害,以至於我都能聽見我的頭在跳動。我試圖控制自己的呼吸。我慢慢地輸入 PIN。每次我輸入一個數字,我就等著家人確認我做對了。輸入 55445 之後,我把鼠標放在了 Trezor 網站上的「確認」按鈕上。「準備好了嗎?」我問。她們都說好的。我點擊了它。

輸入的 PIN 錯誤。請等候 32768 秒再繼續……

「啊,狗屎,」我說。

「沒關係,爸爸,」薩麗娜說。

「我們什麼時候可以試試 554455?」

我打開了計算器。

「九個小時。」

卡拉把手放在我的肩膀上。「如果在多做幾次猜測之後,它就不奏效了,你應該打破它,」她說。這似乎是正確的做法。它很快就會達到這樣的地步:我必須把 Trezor 插在一台開著的電腦上好幾個月(如果你拔掉電源插頭的話,倒計時就又重新開始了),然後是幾年甚至幾十年。自從 10 年前搬進來以後,我們住的房子每年至少都會又一次斷電的情況。在漫長的倒計時過程中,我可以買到一個不間斷的電源來保持 Trezor 的正常工作,但我想讓它結束,殺死 Trezor 就能結束它。

第二天早飯前,我一個人走進辦公室,試了下 554455。

輸入的 PIN 錯誤。請等候 32768 秒再繼續……

郵件:2017 年 8 月 16 日:7.4 BTC=32390 美元

我忘了 PIN 這個想法已經變成像耳鳴一樣——總是在我腦海裡浮現,難以忽視,令人厭煩。我的大腦怎麼了?如果我是 20 多歲或 30 多歲,我還會記得那個 PIN 嗎?當我看到一封來自 Trezor 公司 Satoshi Labs 的電子郵件時,我為自己感到難過。

標題欄上寫著「TREZOR 韌體安全更新 1.5.2」。

這封郵件表示,此次更新是為了解決「一個安全問題,它將影響所有韌體版本低於 1.5.2 的設備。」它接著說:

為了利用這一漏洞,攻擊者必須破解設備,在此過程中會破壞該設備。如果你的設備完好無損,你的恢復單字是安全的,你應該盡快將你的韌體升級到 1.5.2。在韌體 1.5.2 中,你的設備將是安全的。

Trezor 的防彈安全系統中,是否存在一個我可以利用的漏洞?我去了 r/trezor,想看看人們是怎麼說的。我發現的第一件事是,有人說他們知道如何利用郵件中提到的漏洞來破解「Trezor」,這個帖子的標題是「Trezor——安全故障暴露了你的私鑰!」

作者的帖子中包括了一個被拆卸的 Trezor 的照片,以及一個包含 24 個關鍵詞和一個 PIN 文件轉儲的截圖。作者還提供了一個自定義 Trezor 韌體的連結,但沒有說明如何使用它。

看到作者的名字之前,我又讀了幾遍這篇文章:Doshay Zero404Cool。正是五個月前和我在 Reddit 上通信的那個人!我用 zero404cool 看了我的私人信息,在我們最後一次聯繫幾個月後,我發現了他或她的另一條訊息:

你好,你想起來你的 PIN 了嗎?如果沒有,而且鎖在裡面的比特幣太少了的話。根本就不值得進行恢復工作。即使是現在的價格,也可能,只是可能,給我一半的比特幣才能嘗試去做一下。

我曾考慮過接受 zero404cool 的提議,但我決定先聯繫一位比特幣專家安德烈亞斯·安東諾普洛斯(Andreas M. Antonopoulos),他是《金錢的網際網路》(The Internet of Money)的作者。我曾因為 Boing Boing 和未來研究所採訪過幾次安德烈亞斯,他在比特幣世界裡是一位備受尊敬的安全顧問。

他比我認識的任何人都更了解比特幣。我在 8 月 20 日給他發了電子郵件,告訴他我無法拿到被困在我 Trezor 上價值 3 萬美元的比特幣。我問,這個漏洞是否提供了一個讓我拿回來比特幣的機會。「這篇文章中描述的漏洞是真實存在的,它可以用來恢復種子(恢復單字),因為你沒有將韌體升級到 1.5.2(我假設),否則這個漏洞將會消失。」幸運的是,我沒有將 Trezor 升級到 1.5.2,因為降級韌體將會抹去我 Trezor 上的儲存空間,永久刪除恢復單字和 PIN。

安德烈亞斯接著說,他認識一個十幾歲的「程式高手」,在 Trezor 和相關軟體上做了驚人的工作」。這個孩子 15 歲,名叫薩利姆·拉希德(Saleem Rashid),住在英國。安德烈亞斯從未見過他,但在 Slack 上跟他一起共事過很長時間。Trezor 的製造商也知道薩利姆,他甚至還給了他一些開發 Trezors 的開發工具。安德烈亞斯建議我們在 Telegram 上與薩利姆進行私聊。

幾分鐘後,安德烈亞斯把我介紹給薩利姆:

「馬克有一個被鎖上的 Trezor,希望出現奇蹟。」

安德烈亞斯概述了計劃:薩利姆會用與我擁有的韌體相同的韌體來初始化他的一個 Trezors,然後對它進行一次恢復攻擊,直到他能夠完成它,然後就會通過 Telegram 向我發送這個漏洞的程式。我也會買第二個 Trezor,並練習安裝和執行薩利姆的破解軟體,直到我把它搞定。然後,正如安德烈亞斯所說,我會「執行目標設備」(我放著 7.4 比特幣的原始 Trezor)。

但在我們更進一步之前,安德烈亞斯說,「最好先澄清一下期望和條款。對於成功的可能性,以及失敗的可能性(更高)。」

我告訴薩利姆,我想要一步一步的影片指導,告訴我該怎麼做。如果我能成功地取回我的比特幣,我會預先提供 0.05 比特幣(200 美元)和另外 0.2 比特幣(800 美元)。薩利姆同意了這些條件。我補充道,「如果你花了大量的時間來準備,請告訴我,我們可以相應地增加付款。」

我在亞馬遜上訂購了第二個 Trezor。與此同時,薩利姆告訴我,我需要一個開源的操作系統 Ubuntu linux,我把它安裝在一台舊的 MacBook Air 上。

費用:2017 年 8 月 24 日:7.4 BTC=32387 美元

薩利姆:

嘿,馬克,影片已經完成了,但我想要提高價格,原因有以下幾點:

  • 製作這段影片絕對是地獄般的級別(我沒有合適的相機,所以我不得不做一些精心設計的安裝系統,這需要花很長時間才能設置好);
  • 我必須為開發韌體編寫程式(我認為這應該考慮到價格中)。

我:

這很公平。

薩利姆:

那麼,如果你成功了,是否有可能為影片和開發韌體支付 0.35 比特幣?然後再後續給我 0.5 比特幣?

總共是 0.85 比特幣。

我知道這與原來的價格相比漲了很多,但對於我做的工作來說,我認為這很公平。

薩利姆想要的比特幣相當於 3700 美元,幾乎是原始費用的四倍,但我認為這是值得的(而且要比 zero404cool 提出的要少得多)。如果我能再次看到我的 PIN 碼——Trezor、錢包恢復服務、Reddit 用戶以及其他所有人告訴我的密碼都是不可恢復的——無論他要求什麼,我都很樂意支付。就像安德烈亞斯說的那樣,這是一個奇蹟。我該怎麼定價呢?

我:

你有沒有在 Trezor 上測試你的韌體,它運行的韌體和我的一樣嗎?

薩利姆:

在影片中,我在 Trezor 上安裝了 1.4.0,設置好,然後再把 PIN 弄錯幾次(所以它和你的狀態是一樣的)

我:

好,就這麼說定了。

薩利姆給了我他的比特幣地址,我從一個網上錢包裡給他寄了 0.35 個比特幣,這是我幾個月前設置好的。一分鐘後,他上傳了兩個文件,其中一個名為「exploit.bin」,另一個是 10 分鐘的影片。這段影片是他的電腦螢幕截圖,顯示了他在終端窗口輸入的 Linux 命令。沒有聲音。影片的右下角有一張他的 Trezor 的照片,被貼在了桌子上。

我對 Linux 的命令知之甚少,所以我看到的內容沒有什麼意義。影片的第一部分是初始化測試 Trezor 的指令,並將韌體降級至 1.4.0,這樣我就可以在第二個 Trezor 上練習了。在影片的最後三分鐘,是安裝和使用該漏洞的實際操作說明。

我請薩利姆解釋他的駭客是如何工作的。他告訴我,當 Trezor 啟動時,它的韌體(基本上是 Trezor 的操作系統)將以一種未加密的形式把它的 PIN 和 24 個恢復單字複製到 Trezor 的 SRAM(靜態 RAM,Trezor 用來儲存資訊的記憶體)中。如果你在設備上做了所謂的「軟重新啟動」——通過在印刷電路板上精細地處理來完成——你就可以在不擦除 SRAM 記憶體的情況下安裝該漏洞。這樣你就能看到你的 PIN 碼和恢復單字了。

我的第二個 Trezor 在周五到達。我迫不及待地想開始工作,但我不得不等到週六,因為那天下午我必須錄製一堆 Podcast。週五我做的唯一一件事就是拆開了 Trezor,處理了印刷電路板。我用了一把折疊刀,慢慢地、輕輕地沿著縫劃開,直到我能把箱子拆開。儘管這只是練習,我還是汗流浹背,而且渾身發抖。在過去的五個月裡,我和 Trezor 的關係非常糟糕,我無法理性地思考這個問題。我很害怕我會在電路板上留下痕跡。等我把它拆開後,我插上電源,確保它還能繼續供電。確實如此。

Exploit:2017 年 8 月 26 日:7.4 BTC=32208 美元

週五晚上我睡得出奇的好,卡拉和薩麗娜都不在家裡。簡在她的臥室裡練習夏威夷四弦琴和日語。

我清理了辦公室裡的一張小桌子,把運行 Linux 系統的 MacBook Air 放在桌上,然後把 USB 線連接到 Trezor。我把它貼在桌子上,就像薩利姆一樣。

我再次看了一遍薩利姆的影片,這次是把他在文本文件中使用的 Linux 命令寫了下來,這樣我就可以把它們複製貼上到終端窗口中。在影片中,薩利姆曾經用一對鑷子對電路板進行了處理,同時按下了 Trezor 的兩個按鈕,重新啟動了他的 Trezor。我知道我的手會抖得太厲害,不能用鑷子。相反,我把幾根電線和一個按鈕放在一起,以便於重新啟動 Trezor。

按照指示,我成功地將韌體降級至 1.4.0 版本。我給了測試 Trezor 一個 PIN(2468),並寫下了它為我生成的 24 個恢復單字。然後,我安裝了這個漏洞韌體,輸入了各種不同的 Linux 命令,按下按鈕來對 Trezor 進行重新啟動,然後再輸入幾個命令。它成功了!

測試的 Trezor 已經被成功破解,我可以在 Mac 電腦上看到恢復單字和 PIN 碼。我又經歷了六次這個過程,花了整個上午和下午的大部分時間。我驚訝地發現,已經是下午 3:45 了。時間已經過去了,我錯過了午餐和我通常會有的下午濃縮咖啡。我也不想要。

我已經準備好了在原始的 Trezor 上嘗試一下。我打電話給簡,讓她過來,錄下我把比特幣拿回來的唯一機會。

在過去的幾天裡,讓我感到緊張的一件事是,我不確定我是否在我的 PIN 上添加了另外一個密碼,這是 Trezor 提供的額外安全功能。

在五個月的時間我無法使用它後,我不確定自己是否還能使用它。薩利姆和安德烈亞斯告訴我,如果我的 Trezor 有密碼的話,那就真的是 Game Over 了。我的 Trezor 將被永遠鎖起來。我對這一點的懷疑,每次想起這件事時,我就想吞進了一隻蒼蠅一般難受,這是常有的事。

我插上了 Trezor,然後輸入:

sudo trezorctl get_features

這會讓螢幕上顯示 Trezor 的狀態信息。我瘋狂地掃視著螢幕,直到看到下面的文字:

passphrase_protection: false

是的!這就是我想看到的。現在幾乎沒有什麼能阻止我了。

到了按 Trezor 按鈕(軟重新啟動)的時候,我的手指就不聽我的使喚了。「我抖得很厲害,」我對簡說。我不得不停下來坐一會兒。我又試了一次,但還是失敗了。在第三次嘗試時,我同時按下了三個按鈕。這重新啟動了 Trezor,允許我安裝 exploit.bin。

我輸入以下命令,將薩利姆的定制韌體加載到 Trezor 上:

sudo trezorctl firmware_update -f exploit.bin

這條命令刪除了現有韌體並安裝了薩利姆的版本。Trezor 的顯示屏上寫著:

New firmware successfully uploaded. You may now unplug TREZOR.

新韌體上傳成功。你現在可以拔掉 Trezor 的電源了。

在這裡,我絕對不應該拔掉 Trezor 的插頭。(我記得安德列斯曾警告過我:「韌體上傳期間斷電是災難性的,你將失去所有的數據。」)我按下了我在印刷電路板上安裝的那個小按鈕,使得 Trezor 重新啟動。它的螢幕上顯示了一個帶有嘆號的三角圖標,並提示:

WARNING Unofficial software detected

警告!檢測到非官方軟體

謝謝你的提醒,我想。這正是我想要做的:在這該死的東西上運行非官方軟體。我按了 Trezor 的一個按鈕來確認我想繼續下去,螢幕上顯示了 EXPLOIT,這意味著薩利姆的軟體就在 Trezor 上。再也沒有回頭路了。要麽這是可行的,要麽 Trezor 的資料會被清除乾淨,我的比特幣也會永遠消失,即使我在未來某個時候碰巧想起來了我的 PIN。

現在,我需要再輸入幾個命令來讀取 Trezor 的靜態 RAM 中的內容(只要 Trezor 沒有斷電,我的 24 個恢復單字和 PIN 就在那個地方)。

「好吧,」我進入一個命令的時候告訴簡,「這將告訴我們,恢復單字是什麼。」我靠近鍵盤,按下了回車鍵。

然後我平靜地說:「哦,我的上帝。這招奏效了。」

去年 12 月,我在一張黃色的紙上寫下的 24 個恢復單字,現在在我的電腦螢幕上輕輕發光。如果我想的話,我可以停下來。這 24 個單字是恢復我 7.4 枚比特幣唯一需要的東西。我可以重新初始化 Trezor,然後把單字輸入回去,就完成了。但我還有一件事要做,比錢更重要。我想強迫那該死的 Trezor 把我的 PIN 給我。

按照薩利姆的指示,我從終端窗口複製了一串文本,並將它添加到薩利姆所提供的 Linux 命令中。PIN 馬上就出現了。

45455544

幾個月來讓我精神幾近崩潰的焦慮消失了。我站起來,舉起雙臂,開始大笑起來。我贏了。

注:為了保護作者的隱私,本文中的 PIN 已被修改。


精選熱門好工作

平台營運專員

樂購蝦皮股份有限公司
臺北市.台灣

獎勵 NT$20,000

Brand Management

樂購蝦皮股份有限公司
臺北市.台灣

獎勵 NT$20,000

Android 工程師

Omlet Arcade 美商歐姆雷特
臺北市.台灣

獎勵 NT$20,000

評論