作者beagle (红茶犬)
看板GameDesign
标题Re: [程式] 更新程式
时间Fri Jun 13 14:04:59 2008
我想和其他板友讨论技术问题, 不想跟 gamblemaker 吵架, 所以删推文也就算了,
後面不管你说什麽我都不予回应。
※ 引述《gamblemaker (GambleMaker)》之铭言:
: 我是想回这位大大的推文 感谢你的推 我也回报你一下
: 你不知道 TCP 里面有 CRC 吗??
: checksum 那栏干麽用的....
TCP/IP 是有 checksum, 但那是维持他自己的封包完整性,
我们站在 application layer 不能相信 "TCP 传输不会传坏" 这件事...
实务上最常见的是截尾, 而且最糟的是 socket 还是正常 shutdown 没有 error,
所以 run length 一定要检查, 比如说 MD5 前置处理就有包含 total length ...
如果各位要自己发明 hash function, 千万记得把 length 加进去一起 hash ...
打个比方, 品酒师推荐的酒当然不会差, 但你当主人的话还是得自己先嚐一口,
因为自己的舌头才是酒有没有臭酸掉的最後一道防线...
截尾最常见没错, 但不是只有截尾这个问题, 可以出错的地方太多了...
: 还有 crc 怎样确保档案是唯一的?? 还有所谓强固性是什麽东西???
: → GALINE:P2p跟ftp跨nat一样可以用,列表公开只要你不让人上传就没事 06/13 12:41
: p2p跟ftp跨nat当然可以用 但是你有办法解决吗?
: 也许你很强花一天就解决这个问题了
: 那我们假设 server 後面也是 nat ? 请问哪个比较方便??
server 也是 NAT, 这是个非常 trivial 的问题, 解决方法太多了...
http 怎麽解, ftp 和 p2p 就怎麽解...
server 是自己家的东西, 爱怎麽设定就怎麽设定...
非用 http 不可的状况我遇过, 因为老板要省钱, 用免费网页空间当 server ,
专门放要下载的档案, 频宽用别人的, 检查 checksum 才连回自家 server 检查...
: 列表公开真的不上传就没事吗?我中间给你 proxy 你怎麽办?
: 在加上你只有 CRC , 档案要被换爽的喔?
安全性是另外一个考量了, 那 MD5 checksum 一起被 forge 怎麽办?
如果 client 是破解过的伪版, 他可以上传假 checksum 假 length 假版本编号...
如果 proxy 是 "坏" 的, 他一样可以拦截 checksum 检查...
CRC 是纯粹侦测传输错误用的, 他不太能抵抗人工伪造一个相同 CRC 的档案,
MD4 就是加密等级的 hash 了, 但是他速度爆慢...
所以又出了一个折衷的 MD5, 又快一点, 强度又还没弱到可以人工制造 collision
事实上只需要有够强悍的 block cipher 就能够衍生出相对的 hash function,
所以挑个 Blowfish, IDEA, 看你喜欢哪种, 拿来做 hash 就有很高的强度...
不考虑真假货问题而只讨论档案完整性的话, GALINE 说的是对的...
要考虑的话, 我们就得开始做 threat 分析了, 也不是 MD5 用下去就一切没问题,
要针对可能的攻击方式做因应, 这要认真讲的话, 还有很深奥的问题要讨论...
--
桃乐丝: 可是, 如果你没有头脑, 为什麽会说话?
稻草人: ㄝ, 我也不知... 但是有些人没有头脑也能说超~多话呢。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.166.239.118
1F:推 GALINE:一篇文章钓出三篇这样的回应,这对原po来说真算够本了[汗] 06/13 14:09
2F:推 ddavid:XDDD 06/13 14:11
3F:推 gamblemaker:楼上这就错了 一连三篇都是大家知道的东西... 06/13 14:12
4F:→ gamblemaker:用 CRC MD5 SHA都是碰撞机率问题 CRC最容易被碰撞 06/13 14:12
5F:推 ddavid:原来楼上还有话呀,不过反正您都删问题了,就当您没问吧 06/13 14:15
6F:→ gamblemaker:根本就是稍不到痒处 跟我ㄧ样 顶多是嘴炮.. 06/13 14:15
7F:推 GALINE:如果这些对原po是常识,那我真的不知道原po要问什麽… 06/13 14:16
8F:→ gamblemaker:我只是吃饱撑着来问问看有没有现成的原始码 免的自己 06/13 14:16
9F:→ gamblemaker:在去写一次 06/13 14:17
10F:推 GALINE:我想砍文了,反正我不能给你什麽帮助 06/13 14:18
11F:→ gamblemaker:无所谓啦 这个版已经沦为打嘴炮天堂了..你的文章大家 06/13 14:19
12F:→ gamblemaker:会觉得是有价值的..我也觉得你很不错 06/13 14:19
13F:推 ddavid:对他人有帮助就好啦,吃得饱的强者是不需要我们帮助的:D 06/13 14:20
14F:→ gamblemaker:这篇的作者有说 不考虑真假货问题 我们是可以用CRC 06/13 14:22
15F:→ gamblemaker:但是真正在实作上 用CRC不就是太不负责任.. 06/13 14:23
16F:→ beagle:什麽, 原来这边强不强是用吃不吃得饱来分的吗? @.@ 06/13 14:23
17F:推 ddavid:我那篇已经讲得很清楚了,不管你用CRC用md5还是用什麽,对 06/13 14:24
18F:→ ddavid:於能置换档案或中途拦截的cracker来说都是无意义的。 06/13 14:24
19F:→ ddavid:你还一直在钻那个问题,真不知道你是懂太多想岔了还怎样XD 06/13 14:25
20F:→ gamblemaker:那就是看你更新完还要不要再检查一次而已.. 06/13 14:25
21F:→ gamblemaker:不好意思 你的文章没有看很懂 06/13 14:26
22F:推 GALINE:中间人有鬼的话,更新完再检查也没用。要防中间人攻击只能 06/13 14:29
23F:→ ddavid:这一篇「那 MD5 checksum 一起被 forge 怎麽办?」讲的是一 06/13 14:29
24F:→ GALINE:靠CA,这麽怕中间人就花钱跟CA注册吧。 06/13 14:29
25F:→ ddavid:样的东西。 06/13 14:30
26F:→ GALINE:然後自己架ftps或https伺服器 06/13 14:31
27F:→ GALINE:刚好被切…[汗] 06/13 14:31
28F:推 ddavid:抱歉XD 06/13 14:31
29F:→ gamblemaker:扯到换掉来源跟中间人 这就扯远了喔!! 06/13 14:32
30F:→ ddavid:「列表公开真的不上传就没事吗?我中间给你 proxy 你怎麽 06/13 14:33
31F:→ ddavid:办?」 06/13 14:33
32F:→ GALINE:你怕中间资料被窜改,那就要靠加密,加密可能被中间人攻击 06/13 14:33
33F:→ ddavid:「在加上你只有 CRC , 档案要被换爽的喔?」 06/13 14:33
34F:→ gamblemaker:要扯资安的话 那没有加密法是安全的 破解只是时间问题 06/13 14:33
35F:→ GALINE:那就靠认证。中间是跳了一步没错…[汗] 06/13 14:33
36F:→ ddavid:这两句您先提的嘛,看来您扯得很远:) 06/13 14:33
37F:→ GALINE:所以扯不完啊,就看你需要多安全 06/13 14:34
38F:→ gamblemaker:所以结论是没有一种安全的方法.. 06/13 14:34
39F:→ GALINE:CRC的安全性不是0,不喜欢就用MD5或SHA,以效能为代价 06/13 14:34
40F:→ beagle:这问题要先把 threat model 完整描述出来, 否则只会鬼打墙 06/13 14:34
41F:→ GALINE:怕中间被窜改,那只能走加密,然後就到CA去… 06/13 14:35
42F:→ beagle:在没有中间人搞鬼的状况下, CRC 很够用了... 06/13 14:35
43F:→ GALINE:你提了一个危险,我们就帮你提一个解法,就这样而已 06/13 14:35
44F:→ beagle:如果要防, 就得把对方可能的攻击方式描述一下, 不能打空气 06/13 14:35
45F:→ gamblemaker:CRC是 client端最容易被搞鬼的方法阿 06/13 14:35
46F:→ GALINE:实务上来说,档案大小+CRC够应付已知的威胁了 06/13 14:37
47F:→ GALINE:而且不喜欢的话就用sha嘛,反正只是换个函数,其他又没不同 06/13 14:38
48F:推 ddavid:任何网安课第一堂就会讲了「网路上没有绝对安全」啊XD 06/13 14:39
49F:推 GALINE:所以beagle说的没错,要应付要先提出要应付哪些攻击 06/13 14:40
50F:→ ddavid:可以说网安与道德经有异曲同工之妙XD 06/13 14:40
51F:→ GALINE:不然应付不完啊,还要被嫌不够安全[泣] 06/13 14:40
52F:推 jasonlurey:看ptt 长知识啊~~~ 满足ing..... 06/13 14:41
53F:→ realmeat:其实他问的几个问题已经让我知道他懂到啥种程度 06/13 17:04
54F:→ realmeat:我也懒的回应 =c=y-~ 06/13 17:05
55F:推 madturtle:都承认是来要原始码了,就没必要再跟他认真了吧... 06/13 20:24
56F:→ kaoyutai:基本上 Online Game是考虑 Server 安全性 不管Client的 06/13 21:58
57F:→ kaoyutai:所以 Client 都在你手里了 要破就破吧 06/13 22:00