热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

什么是重放攻击?

什么是重放攻击?刘员外__关注2018.05.0317:42字数1139阅读193评论0喜欢0接着『学概念找员外』软硬分叉来,这次讲其中提及的重放攻

什么是重放攻击?

96 刘员外__ 关注

2018.05.03 17:42 字数 1139 阅读 193评论 0喜欢 0

接着『学概念找员外』软硬分叉来,这次讲其中提及的 重放攻击 。大部分人在一开始听到 重放攻击 这个词后,应该都会有一个误解,尤其是了解计算机专业的同学们,以为是被黑客或者不法入侵,导致私有财产遭受损害。在互联网中确实是这样的,但是在区块链中就大不相同了,其实这不应该被称作攻击!


互联网中的重放攻击

重放攻击(Replay Attacks)又称重播攻击、回放攻击,是指攻击者发送一个目的主机已接收过的包,来达到欺骗系统的目的,主要用于身份认证过程,破坏认证的正确性。重放攻击可以由发起者,也可以由拦截并重发该数据的敌方进行。攻击者利用网络监听或者其他方式盗取认证凭据,之后再把它重新发给认证服务器。重放攻击在任何网络通过程中都可能发生,是计算机世界黑客常用的攻击方式之一。

假设A向B认证自己,B要求A提供账户和密码作为身份信息。但是,C截获了两人的通讯内容,并记下账户和密码。在A和B完成通讯后,C联系了B,假装自己是A,当B要求C提供账户和密码时,C将A的账户和密码发出,B就可以认为和自己通讯的人是A。


总之就是一句话,攻击者利用可以被服务器认证通过的信息,不停的发送请求,来达到自己的特定目的。



区块链中的重放攻击


为什么会出现重放攻击?

在比特币的某次硬分叉后,出现了一条新链,其代币为 BCH。比特币硬分叉后,新链与原链是拥有相同的交易数据、地址、私钥、交易方式。你在硬分叉之前的一种币,会因为分叉而变成两种,即原有的 BTC 和等额的 BCH。您只需要下载 BCH 对应的钱包,并且把原 BTC 的钱包私钥导入,即可得到等额的 BCH 。

同时,如果你在没有解决重放攻击问题之前,在自己钱包里把分叉前的一个 BTC 转到一个地址A上,有趣的事就发生了,你在 BCH 钱包内对应的一个 BCH 也会被转入到地址 A 里面去。因为你在分叉前的币,会自动被分叉后的两条链都承认是合法的。只要你发起一笔交易,另一笔会被同步到比特币网络中去,然后被矿工打包处理,该交易生效,这就是重放攻击!


如何防范重放攻击

对于普通人来说,如果比特币硬分叉后,最大的风险就是“重放攻击”,不经意的一次操作,就够后悔半辈子的了!


  1. 开发者完善代码
    开发者通过更改分叉后新链上面的交易格式,使两条链上的交易格式不同,这样在用户发起 BTC 交易的时候,新链就不会认可这笔交易了,用户账户中的 BCH 也就不会遭到重放攻击而花出去了!

  2. 自己来污染
    既然是硬分叉,那肯定是新旧两条链相互不兼容的,否则也就用不着分开来了。
    所以用户可以分别买一点分叉后的 BTC 和 BCH 转入到分叉前的地址上,然后下载一个 BCH 钱包,将原 BTC 钱包私钥导入 BCH 钱包,因为 BTC 钱包只能接收到 BTC 币,BCH 钱包只能接收到 BCH 币,所以此时您的 BTC 和 BCH 钱包内都分别有一点点从硬分叉后的币,这时您钱包中所有的币就都被后来的币污染了。当您再发起交易时,因为输入携带了污染源,以后您的这两种币就只能在各自的链上生效了!


推荐阅读
author-avatar
林姗飘零1999
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有