长推:如何通过物理手段获得一组秘密安全的助记词?

原文作者:0x_Todd

原文来源:Twitter

注:原文来自@0x_Todd发布长推。

我最近一直想做一个关于如何获得秘密安全“助记词(mnemonics)”方面的攻略,正好赶上前几天Do Kwon的段子来了,我觉得有必要给大家分享一下。

一共需要5步:

1.找到助记词列表

2.找点骰子

3.摇掷骰子-转换进制

4.穷举校验位

5.备份

你随身携带的硬件钱包真的安全么?事实上:无论是热钱包还是硬件钱包,你拿到的助记词都是软件通过随机自动帮你生成的。 当然,我乐于给硬件钱包提供商们足够的信任,但作为一个crypto native guy,我觉得靠“信任”是不够的。

为什么这么说呢?从一台硬件钱包从生产到你手中,经历了太多的环节:开发者、硬件设计、组装商、包装商、快递A,海关,分拣,快递B… 等等。 最差情况是:自动生成的随机算法,是破解版的,或者干脆带有后门。

硬件钱包

大家都听说过“伪随机”的概念,机器生成的随机数,终究存在被人预测的可能性。 比如你用了别人送你的(动过手脚的)硬件钱包,那理论上,你生成的12个单词,别人也能生成相同的,那你硬件防护手段也就是失去了意义。

所以,我们最好自己亲自生成一套助记词,而不是借助程序自动生成。 硬件钱包无法访问网络,这个环节是很难植入后门的,只要你能确保你的助记词是真·随机生成的,那么硬件钱包的安全性将会补足最后一块短板,即没人可以知道你的助记词。

那么如何生成真·随机的助记词呢?很简单:物理随机。接下来是一个教程,感兴趣的可以转推,等周末慢慢操作。

Step1 找到2048助记词列表 首先科普一个概念:比特币也好,以太坊也好,以及后面的所有链,用的都是同一套协议,即比特币社区当年创造的BIP-39。这里有2048个单词,而且为了避免手写抄错,BIP-39还贴心去掉了很多看起来很相似的单词。 比特币仓库中的BIP39:https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt

你从任何一个搜索引擎,都可轻松得获取这2048个单词,当然既然是钻牛角尖,你可以寻找三个信息源头,并随机抽样调查,确认这些是真的BIP39。 很多人不知道,其实BIP-39还支持中文;比如“的 一 是 在 不 了 有 和 人 这 中 大”理论也能生成出钱包。当然,为了兼容性,建议大家用默认传统单词列表。

Step2 找点骰子 接下来,让我们做一个思考实验:如果想获得真随机,最简单的办法,就是我拥有一个“有2048面的骰子”,连续掷出12次(其实是11次,我们后面再聊),我们就能获得一组完全随机的真·助记词。 但是,我相信各位谁也没有这样的骰子,那我们就要动一些脑筋了。

硬件钱包

有一道经典的算法题,如何有一枚标准骰子,生成1-7随机数。 https://zhihu.com/question/62404167… 我们只需要把这道题的要求从7变成2048即可。你现在去网购11枚骰子或者硬币(说实话现在内地硬币几乎用不到了)。

Step3 掷骰子,转换2进制 现在开始摇动骰子,骰子奇数记为1,偶数记为0(硬币同理)。11枚骰子的组合正好是:2*2*2*2*2*2*2*2*2*2*2=2048种,所以你可以用这些骰子生成一个2进制的数。

硬件钱包

比如我摇出一个结果是1 0 1 1 1 1 1 0 0 0 1。你把它变成十进制就是1521。算法很简单,用纸笔算就可以(不建议用电脑哦,私钥不触网),算法可参考:https://zhuanlan.zhihu.com/p/75291280 然后你去BIP-39 word list 找到第1521个单词,即safe。

合计连续掷11次,你就得到一套完全随机的单词组,比如: safe hill also idle fade shock walnut cigar eye clean water …

Step4 穷举法获得最后一个检验单词 为什么不一口气把12个单词全用骰子掷出呢? 因为助记词序列包含了校验功能,类似于身份证的尾号也有类似设计。 因此,尽管第12个单词本身并非特殊校验位,但考虑到整套助记词序列要符合某些规则,因此在创建钱包时,若输入词不符合校验规则,创建将会失败。

再通俗一点说:并不是表上的任意12个单词,都可以组成一套助记词的,它们必须符合某种规则。你随便找一套单词,大概率会提示你:无效助记词。

硬件钱包

如果是程序自动生生成的助记词,当然自动符合了规则。而我们是物理创建的,因此,需要再次动一些脑筋。 很简单,既然前面11个都没按照规则。那么,我们让第12个助记词符合就行了。

那第12个单词如何搞定呢?这里就不掉书袋阐述原理了,直接采用“暴力穷举”的思路(没想到吧,自己创建助记词还需要暴力破解)。 事实上,你在2048个助记词列表随便一个位置,往下尝试0-30个,必定有符合规则的单词。比如我说这组,我从第230个单词开始试,233 brown就可以,255 cabin也可以。

硬件钱包

当然,如果在硬件钱包上直接尝试破解,是最好的,毕竟不触网。但是缺点是会比较累,大部分硬件钱包按钮很少…包括ledger S和onekey经典,至于Do Kwon的trezor我没买过不清楚。

如果想偷懒,用一个退役的手机,下载一个trustwallet或者任何一个你熟悉的钱包。接着,断网,轮流测试。直到试出符合规则的第12个单词,默默记下,接着删除这个App,随便复制一下什么东西(清除剪贴板),重启关机几次。 当然,能不偷懒还是不要偷懒。

这样就大功告成了!你通过完全物理随机的手段,在全程不联网的情况下,获得了一个绝对不可能有人猜到的一套助记词,这时候你再将这套助记词输入到硬件钱包里,你的安全性就彻底拉满了。

Step5 备份 当然,仍然建议做好至少2重备份。 -不要用铅笔(容易褪色) -不要存电脑或者手机里(那刚才咱们就白弄了) -不要企图在两台电子设备里各存一半(很容易被暴力破解)

当然,如果你足够牛,你可以背下来(避免Do Kwon悲剧),但是强烈不推荐这样做。这里教大家一些背诵助记词的秘诀,比如我这套:safe hill also idle fade shock walnut cigar eye clean water cabin。

你可以编一个故事:在一个(safe)安全的小山村里,有一座(hill)山丘,村子里有一个(idle)懒散的青年,他的衣服褪色(fade)得厉害…balabala

硬件钱包

理论上记住故事,就记住助记词。但是,还是强调下,人脑是个非常辣鸡的生物存储设备,普通人不推荐哦,除非你需要把它塞…

当然,如果你单纯想做一个冷钱包当长期holder,我觉得写在纸上,把这个地址copy出来,只转入不转出,那你甚至不需要硬件钱包,这也是早年大家常提到的“纸钱包”。

最后,祝大家都能永远保护好自己的钱包和资产。

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年4月26日 下午9:30
下一篇 2023年4月26日 下午9:30

相关推荐

长推:如何通过物理手段获得一组秘密安全的助记词?

星期三 2023-04-26 21:30:02

注:原文来自@0x_Todd发布长推。

我最近一直想做一个关于如何获得秘密安全“助记词(mnemonics)”方面的攻略,正好赶上前几天Do Kwon的段子来了,我觉得有必要给大家分享一下。

一共需要5步:

1.找到助记词列表

2.找点骰子

3.摇掷骰子-转换进制

4.穷举校验位

5.备份

你随身携带的硬件钱包真的安全么?事实上:无论是热钱包还是硬件钱包,你拿到的助记词都是软件通过随机自动帮你生成的。 当然,我乐于给硬件钱包提供商们足够的信任,但作为一个crypto native guy,我觉得靠“信任”是不够的。

为什么这么说呢?从一台硬件钱包从生产到你手中,经历了太多的环节:开发者、硬件设计、组装商、包装商、快递A,海关,分拣,快递B… 等等。 最差情况是:自动生成的随机算法,是破解版的,或者干脆带有后门。

硬件钱包

大家都听说过“伪随机”的概念,机器生成的随机数,终究存在被人预测的可能性。 比如你用了别人送你的(动过手脚的)硬件钱包,那理论上,你生成的12个单词,别人也能生成相同的,那你硬件防护手段也就是失去了意义。

所以,我们最好自己亲自生成一套助记词,而不是借助程序自动生成。 硬件钱包无法访问网络,这个环节是很难植入后门的,只要你能确保你的助记词是真·随机生成的,那么硬件钱包的安全性将会补足最后一块短板,即没人可以知道你的助记词。

那么如何生成真·随机的助记词呢?很简单:物理随机。接下来是一个教程,感兴趣的可以转推,等周末慢慢操作。

Step1 找到2048助记词列表 首先科普一个概念:比特币也好,以太坊也好,以及后面的所有链,用的都是同一套协议,即比特币社区当年创造的BIP-39。这里有2048个单词,而且为了避免手写抄错,BIP-39还贴心去掉了很多看起来很相似的单词。 比特币仓库中的BIP39:https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt

你从任何一个搜索引擎,都可轻松得获取这2048个单词,当然既然是钻牛角尖,你可以寻找三个信息源头,并随机抽样调查,确认这些是真的BIP39。 很多人不知道,其实BIP-39还支持中文;比如“的 一 是 在 不 了 有 和 人 这 中 大”理论也能生成出钱包。当然,为了兼容性,建议大家用默认传统单词列表。

Step2 找点骰子 接下来,让我们做一个思考实验:如果想获得真随机,最简单的办法,就是我拥有一个“有2048面的骰子”,连续掷出12次(其实是11次,我们后面再聊),我们就能获得一组完全随机的真·助记词。 但是,我相信各位谁也没有这样的骰子,那我们就要动一些脑筋了。

硬件钱包

有一道经典的算法题,如何有一枚标准骰子,生成1-7随机数。 https://zhihu.com/question/62404167… 我们只需要把这道题的要求从7变成2048即可。你现在去网购11枚骰子或者硬币(说实话现在内地硬币几乎用不到了)。

Step3 掷骰子,转换2进制 现在开始摇动骰子,骰子奇数记为1,偶数记为0(硬币同理)。11枚骰子的组合正好是:2*2*2*2*2*2*2*2*2*2*2=2048种,所以你可以用这些骰子生成一个2进制的数。

硬件钱包

比如我摇出一个结果是1 0 1 1 1 1 1 0 0 0 1。你把它变成十进制就是1521。算法很简单,用纸笔算就可以(不建议用电脑哦,私钥不触网),算法可参考:https://zhuanlan.zhihu.com/p/75291280 然后你去BIP-39 word list 找到第1521个单词,即safe。

合计连续掷11次,你就得到一套完全随机的单词组,比如: safe hill also idle fade shock walnut cigar eye clean water …

Step4 穷举法获得最后一个检验单词 为什么不一口气把12个单词全用骰子掷出呢? 因为助记词序列包含了校验功能,类似于身份证的尾号也有类似设计。 因此,尽管第12个单词本身并非特殊校验位,但考虑到整套助记词序列要符合某些规则,因此在创建钱包时,若输入词不符合校验规则,创建将会失败。

再通俗一点说:并不是表上的任意12个单词,都可以组成一套助记词的,它们必须符合某种规则。你随便找一套单词,大概率会提示你:无效助记词。

硬件钱包

如果是程序自动生生成的助记词,当然自动符合了规则。而我们是物理创建的,因此,需要再次动一些脑筋。 很简单,既然前面11个都没按照规则。那么,我们让第12个助记词符合就行了。

那第12个单词如何搞定呢?这里就不掉书袋阐述原理了,直接采用“暴力穷举”的思路(没想到吧,自己创建助记词还需要暴力破解)。 事实上,你在2048个助记词列表随便一个位置,往下尝试0-30个,必定有符合规则的单词。比如我说这组,我从第230个单词开始试,233 brown就可以,255 cabin也可以。

硬件钱包

当然,如果在硬件钱包上直接尝试破解,是最好的,毕竟不触网。但是缺点是会比较累,大部分硬件钱包按钮很少…包括ledger S和onekey经典,至于Do Kwon的trezor我没买过不清楚。

如果想偷懒,用一个退役的手机,下载一个trustwallet或者任何一个你熟悉的钱包。接着,断网,轮流测试。直到试出符合规则的第12个单词,默默记下,接着删除这个App,随便复制一下什么东西(清除剪贴板),重启关机几次。 当然,能不偷懒还是不要偷懒。

这样就大功告成了!你通过完全物理随机的手段,在全程不联网的情况下,获得了一个绝对不可能有人猜到的一套助记词,这时候你再将这套助记词输入到硬件钱包里,你的安全性就彻底拉满了。

Step5 备份 当然,仍然建议做好至少2重备份。 -不要用铅笔(容易褪色) -不要存电脑或者手机里(那刚才咱们就白弄了) -不要企图在两台电子设备里各存一半(很容易被暴力破解)

当然,如果你足够牛,你可以背下来(避免Do Kwon悲剧),但是强烈不推荐这样做。这里教大家一些背诵助记词的秘诀,比如我这套:safe hill also idle fade shock walnut cigar eye clean water cabin。

你可以编一个故事:在一个(safe)安全的小山村里,有一座(hill)山丘,村子里有一个(idle)懒散的青年,他的衣服褪色(fade)得厉害…balabala

硬件钱包

理论上记住故事,就记住助记词。但是,还是强调下,人脑是个非常辣鸡的生物存储设备,普通人不推荐哦,除非你需要把它塞…

当然,如果你单纯想做一个冷钱包当长期holder,我觉得写在纸上,把这个地址copy出来,只转入不转出,那你甚至不需要硬件钱包,这也是早年大家常提到的“纸钱包”。

最后,祝大家都能永远保护好自己的钱包和资产。