P13 在 BitTorrent P2P 文件分发协议中(参见第 2 章),种子将文件分割成块,并且对等方彼此重分发这些块。不使用任何保护,一个攻击者能够容易地通过假冒善意的对等方并向洪流中的一些对等方发送假冒块来实施破坏。这些未被怀疑的对等方则重新向其他对等方发送这些假冒块,其他对等方则将再次向甚至更多的对等方重新分发这些假冒块。因此,对于 BitTorrent 来说,采用一种机制使对等方能验证一个块的完整性,从而使得假冒块无法分发,这是至关重要的。假设当对等方加入一个洪流时,它初始从一个完全受信任的源得到一个 .torrent 文件。描述允许对等方验证块完整性的一个简单的方案。
- 把所有块的 MD5 或者 SHA1 都算好存在 .torrent 文件中,每收到一个块就计算 MD5 或 SHA1 然后与 .torrent 文件中的进行比较,如果一致,就是合法的包,如果不一致,就遭到了篡改或者损坏。