修复拒绝服务
客户端0.8.0 引入Bloom Filters(布鲁诺过滤,一种数据检验算法),就必须下载的链块允许更多的灵活性,Bloom Filters具有简洁的数据结构,允许一些误报率,但是不允许漏报。这意味着可以确信所有数据都可以包含在查询中,但同时有可能包含了一些不相关的结果。
Bloom Filters 允许现实SPV(简化的支付确认)客户端,它仅仅只需要下载链快标题而不需要把链块中的所有交易存储在本地。例如一个客户端可以查询节点的地址去检索所有有关的交易数据并通过链块的标题信息来验证这些信息块。 在0.8.0中发现几个安全漏洞,Bloom Filter的运行将允许攻击者进行拒绝服务攻击。当某一个节点由于磁盘读/写能力不堪重负,导致他们同步落后几个区块,当某人通过客户端发送信息导致宕机。
密码安全
在之前的版本中服务器通常使用RPC(远端过程调用),密码的校验是通过一个字节一个字节的比较输入密码和存储的密码。事实上,客户端将逐字循环检验通过密码直到密码不匹配,返回一个错误。例如正确的密码是“andresen123”,那验证“apple”的时间比“bitcoin”或“chain”更长。攻击者会感觉很爽,”apple”是正确的字符的开始,同样,“animal”校验的时间比“apple ”更长(因为”an”匹配),攻击者可以继续通过暴力破解得到正确的密码。
值得注意的是,攻击者必须测量到极其精确的时间,才能进行成功的攻击。大多数的互联网连接将有太多分支变化,响应时间致使实施不太可行。所以在大多数情况下,攻击者必须要和受害者的电脑在同一网段。为了解决这个漏洞比特币的客户端采取密码输入固定时间段,这意味着,不管猜测的密码是如何接近真实答案,将始终以相等的时间来回答猜测是否成功。
交易安全问题修复
0.8.3版本提供了一个内存耗尽攻击的解决方案,需要要截断事务消息。在实施中,恶意攻击者可以发送非截断交易使节点内存溢出从而导致节点宕机。不幸的是,在7月bitslog所采用的方法截断交易引来了额外的安全漏洞。 这些漏洞关系到真实的交易,交易是顺序存储并使用描述参数进行分段(和大小调整有关),如果重新排序交易会发生潜在的冲突。产生结果是恶意的一方可以利用这些参数来创建初始的有效交易,但当与截断参数结合时,实际上是无效的。
最新的版本已经修复两个潜在的交易攻击,第一个漏洞是一些接受零确认交易的节点,攻击者已经能够通过直接向受害人的节点发送一个无效的交易获取双倍的比特币,然后发送一个独立的有效交易到网络其他节点。受害人将接受交易,但是当矿工试图将它添加到一个块时,它就会产生拒绝。
第二个攻击是利用0.8.3 和bitcoinj(Bitcoin JAVA)客户端的不同,攻击者可能会通过网络传播恶意交易,老版本的客户端会忽略这些交易。当0.8.3客户端截断这些无效的交易,将迫使所有bitcoinj客户端从0.8.3的节点断开连接,造成0.8.3版和bitcoinj的节点失去连接。
升级
升级后不需要再重新下载全部的链块数据,根据你的操作系统下载正确的文件,并且按描述的步骤操作。
如果用户从0.8.0之前的版本升级,由于没有正确的Bloom Filtering索引,客户端需要重新索引块链。虽然比重新下载整个块链要少花时间,但还是需要一定时间。切记在安装中如果有任何问题,一定要备份你的钱包文件。
最新客户端下载地址:http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.4/
转自彩云比特 http://www.cybtc.com/portal.php?mod=view&aid=135
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。