是否有可能接收虚假洪流数据?

信息安全 中间人 激流 比特流
2021-08-29 11:21:04

在通过 torrent 下载文件时,如果一些同行向我发送假数据块会怎样?

另外,任何同行都可以给我发一份完整的假文件吗?例如,如果我下载了一个 .torrent 文件,该文件应该下载一个哈希和为 A 的文件,而对等方向我发送了一个哈希和为 B 的文件,torrent 客户端会注意到并阻止它吗?

3个回答

是的,客户会注意到并阻止。

一个洪流被分成几块,一块被分成块。
每件作品的 .torrents 元数据中都包含其 SHA1 哈希值。

如果对等方发送虚假或损坏的块,则在接收到整个块并且哈希检查失败时会检测到这一点。
重复发送不良数据的对等点将被阻止,但有一些余地,因为有时在数据传输中自然会发生损坏。
一个好的客户端具有启发式方法,可以通过比较未通过哈希检查的片段中发送的块与重新下载并通过哈希检查时同一片段中的块来准确找出哪些对等方发送了错误数据.

在 Encombe 的回答中加入了关于假冒“伪造”发生的可能性的回答:尽管有可能,但这种情况可能或将会发生的可能性是压倒性的。

SHA-1 是一种较旧的文件散列方法,不推荐用于新用途,但可以说它现在还不错。

场景 1:发生错误:如果另一个用户向您发送了一个错误的片段或块(可能发生百万分之一的错误并且数据在传输过程中损坏),哈希将不匹配并且该块将被拒绝。一个块在损坏后恰好具有相同的哈希值几乎是不可能的。

场景 2:恶意用户试图向您发送虚假文件:假设我们的攻击者知道他们在做什么,那么这仍然不太可能。想象一下,即使是计算具有相同 SHA1 哈希值的假文件也很困难——而且假文件块的哈希值需要与原始文件块的哈希值相匹配。我认为编写这样一个文件所花费的时间将使它几乎不可能,即使您使用诸如 MD5 之类的较弱的散列方法,因为制造如此多的冲突和重叠散列的绝对困难。

您更有可能面临有人在网上放置旨在包含病毒或恶意内容的“陷阱”洪流的风险,但这可能是由攻击者创建并由他们播种的(以及任何爱上它的人)陷阱)。

拥有 SHA-256 或更大的哈希值会很好,但这种攻击成功的几率非常低。

Torrents 严重依赖 SHA-1 哈希函数:torrents 被分成大小相等的片段,每个片段的 SHA-1 哈希值保存在 torrent 的 info 部分,它本身被识别并因此受到其 SHA-1 哈希值的保护。

SHA-1 显示出减弱的迹象。例如,今年年初,发布了一种攻击,允许像国家行为者或公司这样的大型组织或富有的个人使用相同的 SHA-1 哈希生成两个不同的数据块。但是,这与为现有数据块发现冲突并不完全相同,主要是因为这个原因,目前只能针对碎片的散列实际使用攻击,即使那样也不可能采取通过第三方洪流,您必须自己制作。目前。完全碰撞攻击可能已经不远了。每年有人暗中全面攻击 SHA-1 的机会都在增加。

为了利用当前的攻击,可以生成一个 torrent,为大多数人提供有益的内容,在 torrent 索引站点上被标记为“受信任”,但目标个人可能会被诱骗下载恶意数据,如病毒。

不过,攻击的作者还发布了一种强化 SHA-1 的方法。这个想法是检测可能的 SHA-1 冲突并修改它们,使不同的数据块再次获得不同的哈希值。从技术上讲,这种强化的 SHA-1 与 SHA-1 不同,但据我们所知,尚不存在对 SHA-1 的全面攻击,因此目前非恶意文件很可能具有相同的强化和常规 SHA-1 哈希因此依赖 SHA-1 的软件将继续工作,只有恶意文件才会有不同的哈希值。但是这个修复只有在软件使用它时才有帮助,而且到目前为止最流行的种子下载软件库还没有修复它的实现

目前,BitTorrent 规范的第二个版本正在开发中,它将使用更安全的 SHA-256 哈希函数。这个版本目前处于起草阶段,已经有十年了。在它完成并且版本 1 被弃用之前,这对任何人都没有帮助。

很难过分强调 SHA-1 的薄弱程度。而针对 SHA-1 的公开攻击并不能说明全部情况。尽管对 SHA-1 的前身进行了多年的深入研究,但公众完全不知道的针对它的攻击确实在野外浮出水面。所以答案可能是 YES