脑钱包并不安全,早就已经过时了,这种该入土的东西就让它入土吧

BurntCoins 船长 发布在 技术讨论
 55784  24

我觉得这个问题不至于到今天还“老生常谈”,比特币百科上很早以前就已经指出脑钱包并不安全,已经被淘汰:
https://en.bitcoin.it/wiki/Brainwallet#Obsolete_Brainwallet_Style

传统网站是怎么处理账户密码的?

传统网站对于登录失败的频率一般是有限制的,你不可能一下子提交几百万个密码进行试错,一般只要试错三五次,就会被网站限制。
但是软件总是很难避免存在漏洞,黑客有可能利用漏洞完全控制服务器、直接把整个数据库“拖走”,为了防止黑客“拖库”后就可以直接读出密码的尴尬局面,才演化出密码加盐哈希保存这种方案。
而且这个哈希最好还得结合Key Derivation Function(KDF),这样可以拖慢计算速度——对于网站自己来说,多出来的计算负担小到可以忽略不计;但对于拖库后试图批量破解密码的黑客来说,他每一次试错都绕不开KDF,也就是说,黑客暴力试错所需的运算量会暴增至原来的成千上万倍。

为什么说脑钱包不安全?

比特币的所有交易数据公开,所以,UTXO集合(可以理解为所有地址余额的数据库)也是公开的——这就相当于网站已经被“拖库”的情况,黑客的暴力试错频率完全不受限制,如果说有限制,那也只是受黑客能控制的软硬件性能限制。

而且,比特币脑钱包的情况,实际上相当于传统网站管理员安全意识不佳的情况:只是哈希了一下,既没有加盐,也没有KDF。

人脑想出的密码往往很容易被猜中,换句话说就是“熵值低”,只需要搜索不太大的一片空间,就能扫到很多人自以为别人猜不中的密码。

更何况,破解比特币地址是有明确经济利益“激励”的。

“只有‘脑残包’不安全,不能说脑钱包不安全”

在以前的一届DEFCON大会上,安全研究员Ryan Castellucci就展示了这么一个看上去很长,也很“艺术”的脑钱包密码:

how much wood could a woodchuck chuck if a woodchuck could chuck wood

它对应的地址应该是1GjjGLYR7UhtM1n6z7QDpQskBicgmsHW9k

(比特币百科的Brainwallet词条就引用了这个的资料)

这句woodchuck算是“脑残包”吗?

即便是如此艺术的密码,照样能被黑客的暴力破解工具不费多少力气就扫到,这还是多年以前——想想看现在的旗舰显卡性能相当于当初的多少倍。

我随手用VanitySearch测试了一下,一个CPU核心每秒就能尝试大约4百万个私钥。

像是唐诗三百首这种,把这些古诗的诗句挨个哈希尝试一遍,你觉得现代的计算机需要多长时间就能完成?即便是每一句诗都替换掉一些字词,也顶多相当于升级为“唐诗三万首”,本质上并没有什么区别。

你有多大的自信,能想出远比这句“woodchuck”更复杂、更“艺术”的密码?

你又何必要把资金安全依托在自己的“艺术细胞”和“自信心”上?

“我的脑钱包用了N年了,还好好的呢”

我经常说,这就有点像是bitcoinchallenge.codes那种解谜游戏一样,是和黑客玩智力竞猜游戏。也许有些谜题确实是长久以来都没有人能猜中,但我觉得不能说这种“智力竞猜游戏”可以作为通用、可靠的存币方案。而且谁也保证不了是不是明天就会有人猜解出来。

与其绞尽脑汁去“设计谜题”,为什么不直接随机生成一个呢?

而且,网上自称“早期矿工”“存币存了很多年”的帖子应该有不少吧,几分真几分假?反正我是说不准。

“这不是传统脑钱包,这是创新脑钱包”

有人还提出,可以随便挑一个电脑上的文件,取它的哈希值作为密码;或者,先把密码哈希一次,再加上另一个密码,最后才作为脑钱包密码输入;或者就是加入所谓“右脑图形记忆”……

诸如此类,在我看来,都只不过是花里胡哨的脑钱包变体而已。这些花里胡哨的脑钱包方案虽然有可能避过最简单粗暴的扫描工具,但仍然不能避开脑钱包存在的本质问题——人脑想出的密码熵值往往太低。

地址重用与隐私

传统的脑钱包只会生成单个地址私钥。

然而,很显然,重复使用一个地址对隐私是不利的,就连中本聪的比特币白皮书的“隐私”这一章节里,也有提到过这一点:

As an additional firewall, a new key pair should be used for each transaction to keep them from being linked to a common owner.

脑钱包这个点子很酷,我不想放弃

在某些极端情况下,也许脑钱包会有用,就好像约翰·马吉把胶片缝在大衣里一样,更何况,脑钱包连“缝进大衣”这个步骤都不需要。

如果你用的是BIP39或aezeed之类随机生成的助记词,用它导入HD钱包,那至少可以避开传统脑钱包“人脑想出的密码熵值低”和“重复使用同一个地址导致隐私性较差”这两大问题。

不过,一般情况下,还是很不推荐使用(即使是随机生成的)脑钱包的,因为人的记忆往往不是那么可靠。“忘词=丢币”这还是太悲催了。

  • 正序
  • 最新
只看帖主 楼层直达
  • 1
  • 2
登录 账号发表你的看法,还没有账号?立即免费 注册