重放攻击又称回放攻击,在该种网络攻击的情况下恶意实体将会拦截有效数据,并将其在网络中重复传输。由于原始数据(通常来自已授权用户)的有效性,所以网络的安全协议通常会将此种攻击视为正常的数据传输。同时,由于进行重放攻击的黑客会将原始信息拦截并原样重传,所以黑客通常不需要对这些数据进行破解。
黑客可以使用重放攻击进行怎样的破坏?
重放攻击的确会引起一些显而易见的风险,但仅使用它们的黑客可获得成果却很有限。攻击者无法篡改正在传输且未被网络拒绝的数据,所以此种攻击的有效性将被限制为重复传输之前的数据。而且这些攻击通常也是容易进行防御的。例如为数据传输添加时间戳这样的基本防御措施就可以避免简单的重放攻击。服务器还可以缓存重复的信息,并在一定次数后切段与此类消息的连接,从而限制了攻击者可以进行的连续重播次数。
为何重放攻击在加密货币领域至关重要?
当这些硬分叉发生时,攻击者理论上是可以是对区块链账本进行重放攻击的。在一条分类账上处理的交易可能在硬分叉后在另一条链上也是有效的。所以,在一条分类账上接受一定数量加密货币的人,可以在切换到另一条分类账上并复制交易,并以此欺诈的方式来第二次获得相同数量单位的加密货币。而因为钱包不并是账本共享历史的一部分,所以在硬分叉之后访问区块链的用户将不会受到此类攻击。
区块链如何防范此类攻击?
的确,已分叉区块链账本可能受到重放攻击的漏洞值得我们关注,但大多数硬分叉中都包含了专门用于防止此类攻击的安全协议。针对区块链重放攻击的有效措施分为两类,一为强制性重放保护,另一种是选择性重放保护。在强制性重放保护中,会在硬分叉产生的新账本上添加特殊的标记,来确保在新账本上进行的交易在旧账本上无效,而反过来也是如此。此种方式是当时比特币现金从比特币中分叉出来所实施的保护。
此强制性重放保护会在发生硬分叉时立即自动执行。而选择性重放保护则需要用户手动的更改他们的交易,以确保这些交易不能被重放。当硬分叉是为了对加密货币主账本进行更新而并非分离新账本时,选择性重放保护是有效措施。
除了这些主账本解决方案外,个人用户还可以自行采取措施来保护自己免受重放攻击侵害。其中一种方法是锁定正在传输的代币,直到账本具有了一定数量的区块,从而阻止了那些拥有相同代币数量的重放攻击的网络验证。但需要注意的是,并不是所有的钱包或者账本都提供了此种功能。
总结
当重放攻击成功实施时,的确会对网络安全造成威胁。不同于其他类型的攻击,重放攻击并不依赖于对数据的解密,而这就使得它们成为恶意参与者对抗日益健全的安全协议的有效“解决方案”。但同时也存在一些强有力的解决方案可以有效的防止区块链系统不受它们的影响。特别是强制性重放保护的使用,可以有效的防止在发生硬分叉后攻击者进行的交易复制。