比特幣價格20個月內升近10倍,但他忘記了錢包密碼

比特幣價格20個月內升近10倍,但他忘記了錢包密碼
Image Credit: depositphotos
我們想讓你知道的是

比特幣價格一直上升,但忘記了錢包密碼,你會怎麼辦?

弗蘭費德(Mark Frauenfelder)在2016年1月購入7.4個比特幣(bitcoin),當時價值3000美元。他想試用比特幣,並用來買了一些東西。跟弗蘭費德剛購入時相比,到11月時比特幣價格已升了接近一倍,而且每日持續上升,他的比特幣存款開始變得值錢。

比特幣簡介

比特幣是一款去中心化的加密電子貨幣,利用區塊鏈(blockchian)技術記錄交易。區塊鏈是公開的比特幣交易記錄,存在於比特幣網絡上。網絡上每個節點均可以確認交易,在其他節點接受交易後,就會把資訊加入區塊鏈。

電子貨幣沒有實體,只靠數據記錄,區塊鏈技術就避免用家「雙重支付」——即同時把貨幣付給另外兩人——又不需要借助中央機構監察交易。

RTS2X0N2
Photo Credit: David Gray / REUTERS / 達志影像

在區塊鏈內,比特幣註冊在特定的地址上,每個地址對應一對密鑰(encryption keys)——公鑰及私鑰(比特幣使用公鑰加密法)。

轉移比特幣時,比特幣擁有者需要私鑰(private key)去簽署交易,簽署後的交易會寫進公開的區塊鏈。一旦被人盜取私鑰,就等同被偷走你擁有的比特幣。

而比特幣錢包,就是儲存用來儲存相關私鑰。私鑰可以存在錢包服務供應商的伺服器上——萬一伺服器被入侵,就可能被盜取密鑰,失去比特幣——也可以存在用戶的裝置內。

硬體錢包

弗蘭費德本來把比特幣的密鑰存放在網絡錢包內,但他打算轉移到更安全的地方,於是向幾位比特幣專家請教。

他們都告訴弗蘭費德,最安全的方法是使用「硬體錢包」。硬體錢包除了儲存密鑰外,更會在裝置內以密鑰簽署交易,然後把簽署後的資訊傳回電腦,即使電腦被入侵也大幅降低密鑰被盜取的機會。

弗蘭費德最終選了一個叫做「TREZOR」的錢包,其生產商宣稱這款硬體錢包「刀槍不入」。收到後他把TREZOR錢包連上電腦,再到TREZOR的網站設定。

網站指示弗蘭費德寫下24個由TREZOR錢包隨機產生的字,然後再輸入識別碼(PIN)——他選了一串常用的數字。他把那24個字及識別碼寫在一張橙色紙上。

Trezor_display_transaction
Photo Credit: Stickac, CC BY-SA 4.0

TREZOR的網站解釋,萬一他的TREZOR錢包遺失了或壞掉,只要在新的TREZOR錢包(或其他使用相同演算法的網絡錢包)輸入那24個字,就可以取回密鑰,以免失去所有比特幣。

所以這24個字非常重要,因為別人可以用來偷走他那7.4個比特幣。他將所有比特幣從網絡錢包轉移到TREZOR錢包,再把那橙色紙及TREZOR錢包放進家中書桌的抽屜。弗蘭費德計劃在假期後買一塊鋁條,打上那24個字,再放到安全地點。

一次意外

今年3月16日早上6時半,弗蘭費德跟妻子卡娜(Carla)正要去機場到東京渡假。他拿手機充電器時見到那張橙色紙,突然想到,萬一他遇上飛機失事,這些比特幣就無法給兩位女兒了——那時候7.4個比特幣價值為8799美元,接近購入時的3倍,而且未來價格可能會繼續攀升。

於是弗蘭費德在橙色紙上寫下一句訊息,告訴女兒假如有事發生,就把這張紙交給他某位朋友及同事——一個應能猜到如何取回密鑰的人。然後他把這張紙拿到女兒睡房,放在枕頭下。

8天後弗蘭費德回家,但要直到4月4日,他才想起那一張重要的橙色紙。他好奇女兒為何沒有提及此事,搜索後才發現橙紙不見了。

他問卡娜有沒有見過這張紙,卡娜想起他們渡假期間,曾找了清潔服務公司。致電後,負責清潔的工人表示見過橙色紙,但把它丟掉了。

卡娜問弗蘭費德那張紙是否很重要,他回答︰「也不太重要,只是有點麻煩。我要把所有比特幣從TREZOR錢包傳到網絡錢包,再重新設定TREZOR,製作新的字詞清單,然後把比特幣傳回TREZOR錢包。如果我忘記了識別碼,那就不妙了,但我記得︰那是551445。」(出於保安理由,文章中的識別碼曾作更改。)

記憶出錯

弗蘭費德將TREZOR錢包連上電腦,輸入「551445」,卻顯示「輸入錯誤識別碼」。他認為自己輸入時出錯,重新輸入「551445」,錯誤訊息再度出現。

於是他試另一個組合「554445」,同樣是「輸入錯誤識別碼」。

他在過去幾個月曾輸入十多次識別碼,都不用拿出那張橙色紙看,這時候卻把識別碼忘記了。他再嘗試「554145」,依然是錯誤訊息。

這時他留意到TREZOR錢包上的顯示屏有個倒數計時器,上網查看後發現,每次輸入錯誤識別碼後等待時間會加倍,而且錯誤輸入次數會儲存在裝置內,重新啟動也不能縮短等待時間——而且會重新開始倒數。

本來這個設計有助阻止TREZOR錢包被偷走後,對方不斷輸入務求撞中識別碼,但現在他就是那個希望從自己的TREZOR錢包「偷錢」的賊。

trezor_pin
Photo Credit: SatoshiLabs

弗蘭費德計算過,34年後他才能夠輸入第31次猜測,到時他已經死了。

他知道多次輸入錯誤以及緊張,會令思緒混亂,無法正確記得識別碼。他走進廚房切菜準備晚飯,但他一直在想識別碼,然後一組數字在腦中浮現︰「55144545」。他回到家中的辦公桌,多等幾百秒後他輸入「55144545」。

「輸入錯誤識別碼。請等待4,096秒繼續…」

當晚弗蘭費德完全睡不好,一合上眼時腦中只會不斷組合1、4和5。對他來說,失去價值8000美元的比特幣不算太困擾,然而丟失那張紙以及忘記識別碼令他感到羞愧。比特幣價格繼續上升,可是他無法取回那些比特幣。

上網求助

接下來數個月,弗蘭費德試了各種方法。他首先上網求救,得到很多同情可是沒有甚麼用的回應,有人建議他去找「錢包復原服務」,利用暴力拆解法解碼比特幣錢包。他寄出電郵,收到的回應仍然是「愛莫能助」。

有位網名為zero404cool的網民留言,指他見過有人可以取回TREZOR錢包內的資訊,其他網民認為他在說謊、散播對TREZOR錢包安全的懷疑。

弗蘭費德電郵TREZOR的製造商SatoshiLabs解釋事件,該公司的客戶服務回應,並傳來一份「緊急情況指南」,可是一樣沒有用處。對方指出,他們需要識別碼或那24個字去取回比特幣,否則的話就不可能。

然後他收到zero404cool的訊息,表示可以幫忙,又指專家可以在10秒來取得(TREZOR錢包內的)所有訊息,但這個方法不會公開。zero404cool不肯定弗蘭費德故事的真假,擔心他用來入侵別人的裝置,所以希望取得證明。

弗蘭費德則叫對方搜尋一下他的名字,會發現他是《Wired》最早一批編輯,也創辦了網絡Boing Boing,同時是雜誌《Make》的創辦總編輯。zero404cool回覆指相信他懂得焊接及編程,相信可以教他自行解決,但當時有點忙,希望他並不趕急完成。弗蘭費德指他不趕,就再沒有收到zero404cool的訊息。

催眠,再嘗試

弗蘭費德甚至嘗試接受催眠,希望可以喚回識別碼的記憶。催眠期間他感到放鬆,四小時後他認為密碼是「5514455」。

可是他要幾天後才敢去輸入識別碼,每次想起TREZOR錢包時都感到緊張。到他輸入「5514455」後,TREZOR告訴他「請等待16,384秒再試」——約4個半小時。這時候已經是5月底,他擁有的7.4個比特幣的價值已升至12,861美元。

Depositphotos_75648541_xl-2015
Image Credit: depositphotos

8月12日,這7.4個比特幣再升至28,749美元。

有一晚,他的女兒說︰「我知道你的比特幣密碼是甚麼,那是55445!」弗蘭費德問︰「你為甚麼這樣想?」

他的女兒回答︰「你有時會用5054做密碼,但TREZOR錢包無法輸入0,你應該會略過這個數字。你不會用5154,所以你只會用554,再加45到前面。」弗蘭費德解釋,45對他有特別意義,所以有時會在密碼中加入這個數字。

她繼續說︰「如果不是55445,那就是554455,因為你有時會在密碼最後加上455。」

翌日早上,弗蘭費德試一試,他先把TREZOR錢包連上電腦,然後等待。4個半小時後,全家人到電腦面前,確保他沒有輸入錯誤,而且準備慶祝——如果沒有錯的話。

他輸入「55445」,繼續是錯誤訊息。「我們甚麼時候可以輸入554455?」「9小時後。」

第二天早上,他再試「554455」,TREZOR錢包又一次有禮貌地請他等待——今次是65,536秒(超過18小時)——後再輸入識別碼。

韌體安全更新

就在4天後——比特幣價格在這段期間再升超過12%——弗蘭費德收到來自Satoshi Labs的電郵。

電郵標題是︰「TREZOR韌體安全更新1.5.2」,內容指這次更新是修補韌體較舊版本的安全漏洞,又提到要利用這個漏洞,黑客需要取得TREZOR錢包裝置,破壞外殼,再安裝特製的韌體。

他立即想了解這個漏洞——畢竟代表可以取回價值逾3萬美元的比特幣,並找到一篇放在平台Medium上的文章。這篇文章附上圖片,展示為一個TREZOR錢包設定9位數字密碼,再從電腦取回密碼的過程。

文章作者指自己從DEFCON黑客大會中取得答案,而這位作者的名字是「Doshay Zero404Cool」——那是弗蘭費德在5個月前聯絡的同一人。

他發現再收到另一個來自「zero404cool」的訊息,指如果他未能取回識別碼,錢包內的比特幣數量不值得以這方法取回,五五分帳的話才有可能。

15歲的黑客

弗蘭費德考慮接受這個條件,但他決定先找另一位他曾訪問的比特幣專家安東奴普洛斯(Andreas M. Antonopoulos),徵詢其意見。

安東奴普洛斯告訴他,TREZOR錢包的漏洞確實存在,只要他沒有更新韌體至1.5.2版本,就可以用來取回那24個字(從而打開錢包)。

安東奴普洛斯又指自己認識一個編程天才︰15歲的拉錫(Saleem Rashid),更指拉錫對TREZOR及相關軟件做了「驚人的工作」。拉錫住在英國,未曾跟安東奴普洛斯親身見面,但兩人在網上花了很多時間討論。就連Satoshi Labs也認識拉錫,給他幾個TREZOR錢包的測試版做實驗。

在安東奴普洛斯介紹下,兩人開始對話。計劃如下︰拉錫先為弗蘭費德其中一個TREZOR錢包安裝相同版本的韌體,研究如何破解,成功後再將破解軟件傳給他。他亦會再買一個TREZOR錢包作測試,確保軟件有效後才用在目標——那個要他不斷等待的錢包。

4天後,拉錫傳來訊息,表示已經製作好破解教學影片,但希望提高價錢——由原本的先傳0.05比特幣,成功後再傳0.2比特幣,增至先傳0.35比特幣,成功後再傳0.5比特幣。

雖然這已經接近3,700美元,但弗蘭費德仍然認為值得——至少比起zero404cool的建議好,而且如果可以再見到識別碼,會是一個奇跡,畢竟幾乎所有人都說這不可能。

拉錫的破解方法跟zero404cool利用同一個漏洞︰當TREZOR錢包啟動時,韌體會把未加密的識別碼及24個字抄到靜態隨機存取記憶體(SRAM)上。

測試成功後,弗蘭費德終於能夠破解他的TREZOR錢包,他輸入拉錫提供的最後一串指令,電腦顯示出識別碼︰45455544。

相關文章︰

資料來源︰

或許你會想看
更多『新聞』文章 更多『科技』文章 更多『Kayue』文章
Loader