比特大陆蚂蚁矿机S7

杰森·伯恩是如何存储他的比特币的

odimlee 发布在 币头条,技术指南,比特币 38 10326

摘要

我们要讨论的是从长远来看,如何安全可靠地储存比特币。

你需要的是:

  1. 一台联网的机器.
  2. 一台“物理隔离”的旧式电脑,最好没有任何无线功能.
  3. 一部带有条码扫描器的智能手机.

bitcoin-padlock-520x245

简介

如果你想长期投资比特币,要解决的一个棘手的问题就是如何储存它们。既然在这个世界上人们喜欢窃取比特币甚于任何东西,所有的存储系统都首先必须要具备以下几个特点:

(1)防止别人窃取你的币

盗币最简单的方法就是破坏你的私钥。与第一点的“阳”相对,第二点的“阴”就是:

(2)避免意外损失

比特币的储存不应失去它们的最佳性能。因此,好的比特币存储系统还需具备:

(3)低成本

如果你急于离国,或是莫名其妙赤裸着被冲上了异国的海边,你的币应该可以

(4)能够全局访问

第四点是荒谬的,但是,想想就觉得很有趣。同时实现这四个目标是个挑战,大部分我们见到的存储系统,都至少不能满足其中一项。这个问题我们稍作讨论。首先,我们要给你推荐一个储存比特币的计划:

脑钱包

脑钱包是一个开源的算法,它与状态无关,能够将密语转换成公钥和私钥对。通常来说,脑钱包的算法非常简单:

  1. 采用SHA-256算法将密码哈希成256字节的字符串,这样对于不知道密码的人来说,看起来就像是随机的字符串。
  2. 将输出解释为密钥。
  3. 采用标准的EC加密算法(译者按:EC加密算法即椭圆加密曲线算法)来将密钥映射到公钥。

脑钱包在第二到第四点特点上的得分很高,但它却以不安全“著称”。脑钱包常见的攻击有:

  1. 生成一个巨大的密语词典,取自文学作品、常见密码数据库、电影台词、歌词等等。
  2. 对于语库中的每句短语,使用上述算法生成脑钱包的密钥对。
  3. 监控在数据库里预先准备好的地址是否有比特币转入。
  4. 在攻击中,使用相应的私钥转移比特币。

这种攻击看起来应该很熟悉;它跟破解泄露的密码数据库的攻击方式几乎相同。事实上,脑钱包之所以不安全也有着同样的原因——未加盐、未哈希的密码数据库是不安全的。因此,脑钱包应该采用和密码数据库一样的安全措施。

Snip20140720_2

安全性增强的脑钱包

我们建立的Warpwallet,是一个增强了安全性的脑钱包,它的运行如同一个单独的网页。相对于标准的脑钱包,WarpWallet更安全,这有两个简单的理由:(1)它要求每个用户选择一个独特的“盐”,这样攻击者就要分别破解每个用户的脑钱包;(2)它采用scrypt算法来对密语哈希,因此攻击者的每个猜测都是昂贵的计算。

有了WarpWallet的这一基元,我们可以看看储存财富的完整算法:

  1. 在coinbase或你选择的交换平台购买比特币。
  2. 访问WarpWalle,跳转后记录URL中SHA-256的总和,将HTML保存为文件。
  3. 启动你的物理隔离机(AGM),最好是从Linux的live盘中启动。(关于AGM的更多信息,请见Bruce Schneier’s 的文章)
  4. 用U盘将HTML文件复制到你的AGM。
  5. 在AGM上运行sha256sum warp.html ,验证总数是否与你在步骤2中见到的匹配。
  6. 用谷歌或火狐浏览器将该HTML作为本地文件打开。(1)用几个临时口令和小型传输来测试配置(见下面的细节)。 (2)选一个好的密语。例如:vicar formal lubbers errata。稍后再作讨论。 (3)用真正的密语在“生产”中运行配置。以你的电子邮件地址为“盐”,你会得到一个公钥和私钥对。
  7. 用你的手机扫描公钥,并转移到你的联网设备上(如通过电子邮件)。扫描时,小心调整窗口,确保只扫到公钥QR码。
  8. 关闭物理隔离机。
  9. 在你的联网设备上,将coinbase上的币转移到WarpWallet生成的地址。
  10. 如果你怕忘了密码,在你的房子和办公室周围放一些秘密备注,提醒你密码是什么。

为了赎回你的币,你要重复这个过程,但你只能在私钥上转移。一旦你得到一个WarpWallet,别再次使用它。(或者,你可以用比特币类库来记录物理隔离机上的交易,把它转移到网络设备,再将其插入到块链中;我们还不能实现这一点。)

安全性分析

攻击者要窃取你的钱币,主要有四种方式:(1)潜入你的机器;(2)破解WarpWallet的密码;(3)蛮力攻击你的密码;或(4)从你的“提示”备注中猜测你的密码。让我们看一下这四种方式:

对于第一种攻击,假设最坏的情况,即三部机器都已被攻击者入侵。攻击者入侵你物理隔离机后知道了你的私钥,但他无法将私钥发送出去(你要确保从不将AGM连网)。攻击者入侵你的手机或网络设备可以获得公钥,但只要比特币协议存在,你的币就不可能被窃取。当然,当攻击者控制了你的联网机器,他就可以把你的币从Coinbase上转移到他选择的账户。但如果你可以在他之前将币转移到WarpWallet,就没有问题了。同样地,如果攻击者控制了你所有机器上的密码,你也许不能启动WarpWallet的真正版本,而是启动了一个只能输出攻击者所知密码的木马版本。对于这样的攻击,除了让你检查你的WarpWallet版本,我们没有其他好的回答。要么检查密码杂凑,要么检查已知的输入/输出密码对。

第二种攻击考虑的是破解WarpWallet的加密技术。WarpWallet是如下运行的:

1.  s1 ← scrypt(key=passphrase||0x1, salt=salt||0x1, N=218, r=8, p=1, dkLen=32)
2.  s2 ← PBKDF2(key=passphrase||0x2, salt=salt||0x2, c=216, dkLen=32)
3.  private_key ← s1 ⊕ s2
4.  Generate public_key from private_key using standard Bitcoin EC crypto
5.  Output (private_key, public_key)

虽然没有形式证明,但我们认为这种算法和scrypt及PBKDF2算法一样强大。只要其中一个算法是安全的,对于从候选口令中选取密钥对的蛮力攻击就是必要的。

1TviY

对抗蛮力攻击的安全性

为了量化的对抗蛮力攻击的安全性,我们提出以下假设:

  1. scrypt算法是完整的,而且一定是蛮力攻击;
  2. PBKDF2算法是免费的;
  3. 攻击者可利用资源破解WarpWallet或挖莱特币。因此,攻击者破解WarpWallet的机会成本是挖莱特币获得的收益 。这种假设考虑到了硬件和能源的成本,并允许攻击者访问最新改进的软件。

注意,WarpWallet使用安全参数为218,Litecoin系统则为210。我们用以下常量进行分析,你也可以随市场条件变化对它们进行编辑:

每莱特币兑换美元    8.58

莱特区块奖励            50

莱特币算力难度       22,149

WarpWallet密语信息熵的字节数 58

通过这些假设,破解一个WarpWallet的成本是 166,374,360.47美元。

实用安全性

迄今为止,这对于我们来说是相当安全的。如果有新闻报道称scrypt算法已被破解,或是硬件成本大大降低,当你想改变方案的时候,你还有PBKDF2算法作为缓冲。

说实话,显著的公共挑战测试着WarpWallet的安全性。当网站公布的时候,我们宣布了四个可以迅速解决的挑战,以证明人们会认真对待这些挑战。他们也确实这样做了。剩下的挑战就是仅凭48位熵猜测地址,而这自2013年11月以来从未被破解。

最后,还有一种风险是与你有直接接触的人会发现你的提示语之一,然后得到你的密码、窃取你的币。对于这种攻击,最好的防御首先是让提示语足够隐秘,这样任何人也不会知道它是什么;其次,别跟会偷你钱的混蛋一起闲逛。

什么样的密语才是好的?

当生成一个密码的时候,使用通过量化的熵产生密码的算法是很好的。例如,此页面从字典中随机挑选N个词,如果N的值越高,它提供的密码熵就越多。人们能记住常用的密语,但由于WarpWallets每十年才用几次,你就有遗忘的风险。我们内部讨论了更容易记忆的密码系统,如名诗中交织的句子、你小时候编的词语等等。现在,你以及进入了无名安全的领域。无论你选择了什么系统,对于不知道你秘密算法的攻击者来说,它看起来都应该是随机的词串。例如,从一首晦涩的诗中选出一行来作密语并不是一个好主意,因为3到10个单词包含的信息熵太少了。而在你最喜欢的八首诗中选择13个词串联起来得密语,看起来会更随机一些。

为什么这个系统拥有其他三项性能

上面提到的WarpWallet协议应该是安全的。它当然是免费的,几乎世界上任何处于困境的地方都能访问这个协议。最大的问题在于你是否会把它搞砸。我们能想到的错误是:

  1. 你忘记了密语
  2. 你错误地发布了你的密钥或密语。
  3. WarpWallet的代码消失或变得不可执行。
  4. 你的浏览器出错,得到错误的回应。

上面我们已经讨论过密语的遗忘和提醒。你必须仔细操作,避免在钱币传输协议中粗心犯错。只要GitHub还继续运行,你还可以在我们的GitHub库里面签出,就会有一个独立、公开、自证实的WarpWallet版本可供使用。我们将用PGP key (ID: 4748 4E50 656D 16C7)记录所有后续版本。

考虑软件的错误是有趣的。当我们建立WarpWallet的时候,我们用两个不同的软件栈实现了两次算法,并检出得到了相同的答案。要运行测试,就要检查信息库并运行npm install -d; make test.

不过,你应该采取进一步的预防措施。在步骤4中,将HTML转移到物理隔离机后,你要进行一些测试。选一些废弃的密码,在你的联网设备和物理隔离机上进行哈希。如果签出成功,结果匹配,就可以生成一个临时密码并将少量的币转移到WarpWallet,然后第二天又将币转回去。你可以进行多次测试,直至放心为止。

1405300870235

对于其他系统的调查

在上面,我们声称我们的系统比其他竞争对手更好。让我们更深入地看看Coinbase及其他在线钱包。

许多人在Coinbase购买比特币,是因为它是一个大公司,有着优秀的工程师,并且宣称会采取严格的安全措施。但是,也许你不该一直把币放在那儿。Coinbase再好、再安全不过相当于一个非FDIC(联邦存款保险公司)担保的银行,也许还没那么安全。我的意思是,银行很容易发生物理爆窃、台账错误的问题,甚至还有我们不敢去想的——核心员工的敲诈。比银行更甚的是,Coinbase像磁石一般吸引了XSS、CSRF和网络钓鱼的攻击。虽然他们的安全性一直很好,但是它们与那些坚定强劲的攻击者之间的战争是持久的。最后,Coinbase没有得到FDIC或是其他机构的担保,所以和银行存款不同,你在Coinbase的币会因为“银行挤兑”或突然经营失败消失。

而在其他网上银行和钱包身上,我们已经看到了一些金融诈骗和程序员“诚实的”错误夺去客户存款的例子。

运行你自己的钱包

任何人,只要有一个电缆调制解调器和一些额外的存储空间,就可以运行自己的钱包(包括区块链或不包括区块链的)。如果你经常进行交易,运行自己的钱包就很有意义。然而,因为你的币容易被盗和丢失,你的长期储存会变得容易受到攻击。未加密的备份可以让你快速找回钱包,但同时也帮了小偷的忙。也许这里的平衡点就是加密的备份。在我们认识到我们只对加密备份(如果他们被复制到很多不同的地方)感到安心之前,我们几乎是大力提倡这个系统。在这一点上,加密技术——不持有加密文件——保证了你的币安全。因此,换句话说,你还是要记住一个好的密语及选一个好的加密系统,还要妥善管理文件并相信自己一旦需要就能解密。这就像许多机器没有得到额外的保护,最终它们的可回收程度就会降低。

纸钱包与离线U盘

假设你用于生成钱包或存储到U盘的设备没有受到损害,那么纸钱包和离线U盘在防盗上就更安全。然而,离线存储很容易受到损失。你会在火灾中失去它们;你也可能不小心把它们扔掉。一些离线存储钱包放在保险箱中,但这样的保管昂贵、不方便且在某些情况下有被没收的风险。

密钥共享

使用密码术的密钥共享,你可以将你的钱包拆成7个部分,其中任意4个都可以重新组合钱包。试想一下,给自己留一部分,在办公室存一部分,给家人或朋友留下一部分。这样的方法在原则上显得优雅,在实际上却容易出错。

总结

欢迎使用WarpWallet,并按照我们上面的一步一步的指示来长期储存你的比特币。

----

原文:http://maxtaco.github.io/bitcoin/2014/01/16/how-jason-bourne-stores-his-bitcoin

作者:Maxwell Krohn

译者:Odim(微博@OdimLee)

译者BTC地址: 185KPeZ3dEEAuFB3DbnqHgujakouAttHKY

稿源(译):巴比特资讯(www.8btc.com)

 

版权声明: by nc" sa 作者保留权利。文章为作者独立观点,不代表巴比特立场。

评论:38

您需要登录后才可以回复 登录|注册
    Ender-Viking
    Ender-Viking 865 天前

    这就是@比特天空网 的硬件钱包吧。

    +1
    +1
    我要点评

    回复@阿强easy:应该是电脑中木马,币被转走了。

    +1
    +1
    我要点评
    牛卡牛
    牛卡牛 871 天前

    回复@Darkcat1899:[思考]

    +1
    +1
    我要点评
    bitfoto
    bitfoto 871 天前

    //@超级比特币: //@真聊比特币:转发微博

    +1
    +1
    我要点评
    阿强easy
    阿强easy 871 天前

    怎么丢的 被盗、密码遗忘还是钱包丢失?

    +1
    +1
    我要点评
    -易酥酥-
    -易酥酥- 871 天前

    三人成画!问心无愧!

    +1
    +1
    我要点评

    安全及其重要。有温州币友前段时间刚刚丢了29个币。//@长铗:这是间谍级别的保存方法,你学会了吗?~

    +1
    +1
    我要点评
    超级比特币
    超级比特币 872 天前

    //@真聊比特币:转发微博

    +1
    +1
    我要点评
    比特黑点康姆
    比特黑点康姆 872 天前

    //@力国潘:辛苦妹子的翻译了,好长的文章,大家学习下[哈哈]//@OdimLee: [抱抱]这么快发出来了![得意地笑]

    +1
    +1
    我要点评
    力国潘
    力国潘 872 天前

    辛苦妹子的翻译了,好长的文章,大家学习下[哈哈]//@OdimLee: [抱抱]这么快发出来了![得意地笑]

    +1
    +1
    我要点评
    哥儿呢
    哥儿呢 872 天前

    这么多利好,盘在还在跌!呵呵[哈哈]

    +1
    +1
    我要点评
    巴比特资讯
    巴比特资讯 872 天前

    [可爱]谢谢支持

    +1
    +1
    我要点评
    OdimLee
    OdimLee 872 天前

    [抱抱]这么快发出来了![得意地笑]

    +1
    +1
    我要点评
    章郭蓉
    章郭蓉 872 天前

    //@bitPaul: [酷]

    +1
    +1
    我要点评
    币合币拓
    币合币拓 872 天前

    有点复杂//@长铗:这是间谍级别的保存方法,你学会了吗?~

    +1
    +1
    我要点评
    adc真好玩
    adc真好玩 872 天前

    //@长铗: 这是间谍级别的保存方法,你学会了吗?~

    +1
    +1
    我要点评
    AlexsITlab
    AlexsITlab 872 天前

    真安全~~~

    +1
    +1
    我要点评
    凉粉童鞋
    凉粉童鞋 872 天前

    收藏!

    +1
    +1
    我要点评

    这,跟伯恩有什么关系?

    +1
    +1
    我要点评
    比特暴民
    比特暴民 872 天前

    回复@巴比特资讯: 文中默认了网卡不可靠、live盘也不可靠,更加偏执狂的看法是,电子设备都不可靠,比如硬盘、打印机、显示器。既然显示器不可避免,打印机和硬盘就尽量不要用,最后,U盘复制进东西之后也应该拔掉,再进行脑钱包生成。

    +1
    +1
    我要点评
    比特暴民
    比特暴民 872 天前

    回复@巴比特资讯:对了,文中没有必须使用物理隔离设备(AGM)硬盘的场合,最后私钥用脑钱包方式储存了,而地址用二维码公开。(补充偏执狂:显示器也是不安全的)

    +1
    +1
    我要点评
    FANC1
    FANC1 872 天前

    @-强者恒强-

    +1
    +1
    我要点评
    比特暴民
    比特暴民 872 天前

    回复@bitcoin44:09年之前的发行版可以保证没有软件后门。09年之前的硬件可以保证没有硬件后门。谁也不会一行一行检查代码……

    +1
    +1
    我要点评
    巴比特资讯
    巴比特资讯 872 天前

    回复@比特暴民:不用硬盘?用什么?总之肯定是有个物理介质的。

    +1
    +1
    我要点评
    真相与未来
    真相与未来 872 天前

    【杰森·伯恩是如何存储他的比特币的】我们要讨论的是从长远来看,如何安全可靠地储存比特币。http://t.cn/RPAsTBA 这种存储系统需具备以下条件:(1)防止别人窃取你的币 (2)避免意外损失 (3)低成本 (4)能够全局访问

    +1
    +1
    我要点评
    Susu-best
    Susu-best 872 天前

    我参与了@影视音乐榜中榜 发起的投票【第二届#影视音乐榜中榜#最受欢迎(女)艺人】,我投给了“@杨幂”这个选项。你也快来表态吧:http://t.cn/RPhm9OC

    +1
    +1
    我要点评
    张不疑
    张不疑 872 天前

    请将我的财产保存好哦

    +1
    +1
    我要点评
    大师姐王语嫣
    大师姐王语嫣 872 天前

    看了三分之一再也看不下去了,极其复杂… //@长铗:这是间谍级别的保存方法,你学会了吗?~

    +1
    +1
    我要点评
    bitcoin44
    bitcoin44 872 天前

    回复@比特暴民:系统只要选开源的发行版就可以吧

    +1
    +1
    我要点评
    长铗
    长铗 872 天前

    这是间谍级别的保存方法,你学会了吗?~

    +1
    +1
    我要点评
    一个人d伤悲
    一个人d伤悲 872 天前

    贫乏♀的爱

    +1
    +1
    我要点评
    比特暴民
    比特暴民 872 天前

    补充,如果用Linux的Live CD,选用2009年之前的版本可能更安全[嘻嘻],连硬件都是2009年之前的更好。还有,考虑不用硬盘。[哈哈]

    +1
    +1
    我要点评
    比特币三胖哥
    比特币三胖哥 872 天前

    建议大家用qt钱包,钱包密码设定上百位,可以最喜欢的2本小说最喜欢的2段文字或者女朋友的扣扣签名3段文字混合,黑客就没有你什么办法!qt钱包也可以自己冷存储!千万不要相信在线钱包的冷存储,鬼才知道他们是冷存储还是骗子存储!

    +1
    +1
    我要点评
    多空大决战
    多空大决战 872 天前

    btc高大上 但是要让更多的人接受

    +1
    +1
    我要点评
    皇家广告传媒
    皇家广告传媒 872 天前

    @今日房产刘兵 @扬州数字电视黄海忠 @万创李

    +1
    +1
    我要点评
    巴比特资讯
    巴比特资讯 872 天前

    【杰森·伯恩是如何存储他的比特币的】我们要讨论的是从长远来看,如何安全可靠地储存比特币。http://t.cn/RPAsTBA 这种存储系统需具备以下条件:(1)防止别人窃取你的币 (2)避免意外损失 (3)低成本 (4)能够全局访问 @OdimLee

    +1
    +1
    我要点评