重放攻击

重放攻击(Replay Attacks)又称重播攻击、回放攻击或新鲜性攻击(Freshness Attacks),是指攻击者通过恶意的欺诈性地重复或拖延正常的数据传输而实施身份认证欺骗的中间人攻击。因工作原理如同重放歌曲一样而得名。

一般重放攻击

这种攻击会不断恶意或欺诈性地重复一个有效的数据传输,可以由发起者,也可以由拦截并重发该数据一方进行。攻击者利用网络监听或者其他方式盗取认证凭据,之后再把它重新发给认证服务器。数据加密可以有效防止会话劫持,但是却无法防止重放攻击。重放攻击任何网络通讯过程中都可能发生。

使用一次性密码、随机数和MAC地址验证、时间戳可以防止重放攻击。

区块链的重放攻击

区块链硬分叉时,如果区块结构、地址、私钥、算法等结构都相同,会导致分叉后的两个区块链混淆不同链上的交易,这就需要提前实施防止重放攻击的代码,否则面临严重的重放攻击风险。

这种攻击可能并非出于恶意,但只要花费的是分叉前的代币,在其中一条链上被花费,就意味着在另一条链上同样被花费。分叉后两条链的交易者也可能出于恶意故意实施这样的重放攻击。以太坊硬分叉时,ETH支持者就曾威胁要对不愿妥协的ETC支持者进行重放攻击。

UTXO防一般重放攻击

一般的重放攻击是针对账户模型的区块链的。比特币这样的UTXO模型对一般的重放攻击天生免疫,已被花费的UTXO是无法被再次花费的。但比特币同样要面对硬分叉时的重放攻击。