本
文
摘
要
编者按:本文作者是马克·弗劳恩菲尔德(Mark Frauenfelder),他是《连线》杂志的一名编辑和《MAKE》杂志的创始编辑。还与人合伙创办了BoingBoing网站,也是未来区块链期货实验室(Futures Blockchain Futures Lab)的研究主管。本文讲述的是Mark Frauenfelder个人的经历,通过这个故事,我们也能从中体会到比特币及其配套服务中的缺点及不足。文章发表在《连线》,由36氪编译。
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或恢复单词的情况下,把我的比特币拿回来。如果我丢失了我的借记卡的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我的名字,来帮助他来决定是否可以信任我。他会发现我是《连线》杂志的第一批编辑之一,于1993年加入《连线》杂志。我创办了人气很高的Boing Boing网站,该网站每月有500万独立读者。我还是科技项目杂志《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在周五到达。我迫不及待地想开始工作,但我不得不等到周六,因为那天下午我必须录制一堆播客。周五我做的唯一一件事就是拆开了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个恢复单词。然后,我安装了这个漏洞固件,输入了十2种不同的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已被修改。
编译组出品。编辑:郝鹏程