打字猴:1.703865791e+09
1703865791 大脑钱包
1703865792
1703865793 第二种方法我们称之为大脑钱包(brain walle)。这种方式下,你通过一个密码就可以支取比特币。大脑钱包无须使用硬件、纸张或者其他长期储存介质。大脑钱包在物理安全性较差的情况下(例如跨国出差、旅行时)非常有用。
1703865794
1703865795 大脑钱包的主要原理是用一个可预测的算法把一个口令变成一对公钥/私钥。例如,你可以选择一个哈希算法将口令转译成一个私钥。在给定私钥的情况下,可以用同样的方法得到私钥。进一步地,结合前文所提到的分层确定性钱包技术,你可以根据口令生成一整套地址和私钥,从而实现钱包的完整功能。
1703865796
1703865797 但是,如果一个黑客猜到你的口令的话,他还是可以偷走你大脑钱包里的所有私钥。在电脑安全领域里,我们通常假定黑客知道你生成密钥的步骤,黑客不知道的只是你的口令。所以黑客可以尝试使用不同的口令,生成地址,并在区块链中查看这些地址上是否还存在未被使用的比特币,一旦发现比特币,黑客就可以迅速把这些比特币转给自己。黑客可能永远都不知道(或者根本不关心)这些比特币属于谁,这类攻击也不需要入侵任何设备,猜口令不针对任何人,所以也不会留下任何痕迹。
1703865798
1703865799 这种方法与尝试破解电子邮箱密码的方法不同,邮件服务器通常对密码试错有一定的次数或频率限制(被称为在线猜测),但是对于大脑钱包而言,黑客可以下载一堆未被使用的比特币的地址,然后用电脑程序去慢慢地试错,黑客都不需要知道大脑钱包的地址,这被称为离线猜测或者密码破解。相应地,设置口令的难度大大增加了,又要容易记,又要不容易被猜中。一种安全的方法是使用自动程序生成一个80位的数字,然后将其转换成口令。
1703865800
1703865801
1703865802 生成一个可记忆的口令
1703865803
1703865804 有一种简便的方法可以生成口令:从最常用的10 000英语词汇中,随机选择6个词,从而生成大致80位长度的字节[6×log2(10 000)大致等于80]。很多人发现这个方法比随机取字母容易记忆,因为这种方法生成的口令通常是下面这样子的:
1703865805
1703865806 worn till alloy focusing okay reducing
1703865807
1703865808 earth dutch fake tired dot occasions
1703865809
1703865810 在实际操作中,我们可以让程序生成密钥的速度变慢(为程序加入一个延迟),这样,黑客通过试错法来破解私钥就需要花费很长的时间,这就是所谓的密钥延展(key stretching)。比如,为了使密钥生成变慢,我们可以让程序把本来很容易计算的哈希函数SHA-256算上220次,这样一来就把黑客的工作量增加了220倍。当然,如果太慢的话,用户在使用比特币的时候,也会计算得很慢,这也很麻烦。
1703865811
1703865812 如果你彻底忘记了大脑钱包的口令,钱包里的比特币就永远取不出来了。
1703865813
1703865814 纸钱包
1703865815
1703865816 第三个选择是纸钱包(见图4.3):把密钥印在纸上,然后把纸锁在保险箱里。显然,这种方式的安全程度取决于我们所使用的纸的安全程度。纸钱包通常用两种方法为公私钥匙编码:二维码和base58码。就像大脑钱包一样,只需要存储少量关键信息,就可以重新建立一个纸钱包。
1703865817
1703865818
1703865819
1703865820
1703865821 图4.3 带公钥的比特币纸钱包
1703865822
1703865823 注:同时使用了二维码和base58码加密。
1703865824
1703865825 防损硬件
1703865826
1703865827 第四种方法是使用防损硬件(tamper-resistant device),用它来保存密钥或用它来生成密钥,总之,此类设备本身不会泄露密钥或输出密钥,而只是在我们按下设备的某个按钮或输入设备密码后显示密钥的保管状态。防损硬件的好处在于一旦设备丢失或者被盗,我们马上就能知道。而且,想要盗走密钥,必须先盗走这个设备。这和将密钥保存在电脑上是不一样的。
1703865828
1703865829 总而言之,用户可使用上述一个或是多个方法来保存密钥。对于热储存,尤其是存有大量比特币的热储存而言,人们愿意投入大量成本或先进的安全机制保护它们。我们将在下一章讨论这些更先进的机制。
1703865830
1703865831
1703865832
1703865833
1703865834 区块链技术驱动金融:数字货币与智能合约技术 [:1703863928]
1703865835 区块链技术驱动金融:数字货币与智能合约技术 4.3 密钥分存和密钥共享
1703865836
1703865837 现在我们了解了各种保存密钥的方法,但在这些方法里,我们总是把密钥保存在一个地方:要么锁在保险箱,要么保存在软件中或打印在纸上。这会造成一个问题:一毁俱毁。当然,我们可以为密钥建立备份,这可以降低密钥丢失或损坏的风险(可获取性),但同时会增加密钥被盗的风险(安全性)。那是否存在一种方法,可以使密钥的可获取性和安全性都得到提高?答案是肯定的。密码学上有一种称为“密钥分存”的技术,就可以做到这一点。
1703865838
1703865839 方法如下:密钥被分成N个片段,只要我们获得其中的K个片段,就可以把原密钥重新还原。但如果获得的片段数量少于K,就无法知道关于密钥的任何信息。
1703865840
[ 上一页 ]  [ :1.703865791e+09 ]  [ 下一页 ]