作者yshinri (ISML实习分析师)
看板P2PSoftWare
标题Re: [问题] 开启档案就损毁??
时间Thu Dec 1 02:52:05 2011
※ 引述《chrisstar110 (找家教~)》之铭言:
: 恩...我知道这个问题很怪,我抱持着怀疑的心态上来问问..
: 今天有位朋友告诉我,他写了一个程式针对P2P软体破坏的程式
: 大概的功能是这样...如使用P2P软体(如foxy BT驴子之类的)
: 当要下载某个档案时,可以让该档案在开启时就损毁
: 目的在破坏该档案,不再让档案继续分享
: 我想请问一下有这样的程式吗? 或是类似功能的?
: (如不适合在这边问..请告知谢谢)
就我对 BT 机制的理解
我所想到的有一个 (似乎不太可能的) 可能性是这样:
BT 的正确性检查是对每一个分块做 hash 再来比对
所谓 hash (中文翻译为杂凑或散列) 是指将一段很长的内容进行某个计算
得到一个比较短的值 (称做 hash 值) 的这样的函数
因此一样的内容会得到一样的 hash 值
而好的 hash 函数会设计成相似的内容得到的 hash 值会差很多
在 .torrent 档里存有每个分块的 hash 值
当下载完一个分块後就会去计算下载来的分块的 hash 值去和存起来的值比对
如果不同则表示得到的资料不是正确的
问题在於 因为是将很长的内容计算成比较短的值
(在 BT 这里是至少 256KB 的内容计算成 20 byte 长的 hash 值)
所以理论上是存在内容不同但 hash 相同的内容
(这在 hash 函数设计上叫做「碰撞」 而且以这个比例来看照理说是非常多的
几年前有个大陆学者说她攻破了 MD5 (一个 hash 函数)
就是指她找到比暴力法所需时间还少的产生碰撞的方法)
因此如果抓来的和实际上的两段内容不同但却碰巧产生了一样的 hash 值
那就会通过这个检查
不太可能的点在於 BT 所使用的 hash 函数叫做 SHA-1
它的 hash 长度是 20 byte = 160 bit
以暴力法要找到另一组不一样的内容能得出同样的 hash 值
平均需要 2^159 ≒ 7*10^47 次 SHA-1
(比较一下: 宇宙诞生至今「只」经过 4.3*10^17 秒)
连续产生段落的话 平均要约 1.5*10^24 个段落後才会产生之前出现过的 hash 值
而对於 SHA-1 的结构 目前还没有任何人能够在合理的时间内「破解」它
(这还包含比较松的「找到两组产生一样的 hash 值」
这比「找出一组产生某个特定 hash 值的内容」还简单
但就连这个比较简单的问题
目前最好的结果 (约 2^63 ≒ 9*10^18 次 SHA-1) 也不能算是「合理时间」)
所以我个人是保持怀疑的态度就是了
(基本上要能有这个方法那还不如去发论文...)
--
之所以会想到这个方向是因为
至少这个程式做的「损毁」需要能够通过 BT 的机制
也就是它得让一个损毁的档案被 BT 程式当成正确的档案
这才能达到「阻止散播」的目的
不然即使破坏了这一个档案 网路上还有千千万万个同样档案的复本存在
那麽要能绕过 BT 的正确性检查就只有这个方法了
不可能去修改软体的原因则是因为
这必须要对所有 BT 用户的所有下载软体进行改造
就算真能改造好了 你也没办法对网路上所有人的 BT 软体进行改造...
--
ナギ:「毎日毎日同じ事のくり返し。
退屈でしかたがない。」
マリア:「そういうのは
毎日学校に行ってから言ってください。」
ハヤテ:「そんなに退屈だったら、
いっそSO○団でも作ってみては…」
ナギ:「ハヤテ。そんな风に
アニメと现実をごっちゃにするのはよくないぞ。」
ハヤテ:「う゛っ!
(お嬢さまに言われるなんて…)」
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.230.62
1F:推 jg338 :专业推 12/01 10:04
2F:推 chrisstar110:感谢~! 受益良多 那麽我想问,BT类有hash这保护机制 12/01 10:41
3F:→ chrisstar110:那对於foxy这类是不是较容易达成破坏的目的(没hash) 12/01 10:43
4F:→ chrisstar110:另外j大上篇说的木马破坏,不是容易被防毒抓到吗? 12/01 10:44
5F:→ chrisstar110:而您的结论也和y大不一致,可以请您再说明一下吗^^" 12/01 10:46
6F:→ jg338 :我的方法只能让有被我植入木马的电脑破坏 p2p上的是 12/01 11:52
7F:→ jg338 :无法破坏的 如内文说的只能修改下载程式才可能 12/01 11:52
8F:→ jg338 :我的方法是用VB或PHP写的程序 防毒软体不会抓到 12/01 11:53
9F:推 chrisstar110:所以您的意思是说,如果让该木马以某种方式夹带在 12/01 15:22
10F:→ chrisstar110:欲破坏的档案,p2p上其它使用者有可能在执行时就破坏 12/01 15:23
11F:→ chrisstar110:要破坏的档案罗?另..原来用VB或PHP写不会被抓到阿... 12/01 15:24
12F:推 microtech :不是不会被抓到,而是看你用什麽方式对档案做处理 12/01 15:32
13F:→ microtech :想取得某些权限必定会引发防毒或防火墙警告 12/01 15:33
14F:→ microtech :JG338说的只是单纯在档案前中後段多加个0110 12/01 15:35
15F:→ microtech :防毒/防火墙(套装)是指部分有进阶HIPS功能 12/01 15:37