请问如何防范中间人攻击

2015-01-12 20:33:33 +08:00
 copriwolf

作为一个局域网的普通用户,没有路由管理权,请问各位,如何能够识别中间人攻击(ip重复冲突?看arp表?),并防范阻止?

10424 次点击
所在节点    程序员
32 条回复
xiaoks
2015-01-13 00:49:57 +08:00
这是啥上网环境啊。遇到这种环境,我一般把设备wifi功能关了。然后看看书。
就算你是大侠,也不应该在这种环境里凑热闹。熟话说的好,乱棍打死老师傅。
别以为自己做了某些措施就安全了。
copriwolf
2015-01-13 01:50:52 +08:00
@xiaoks 可是现实也有很多这样的环境,街边的麦当劳,甜品店的wifi很有可能就是这样的环境,所以有时候重视讨论一下还是挺好的。。。。。
cnnblike
2015-01-13 02:08:52 +08:00
@futursolo 曙光4000暴解根本是一件不用担心的事情了……与其花大笔计算费用,还不如一个快递让你进去交代。除非你在国外,但如果在国外,翻墙干啥?
intosec
2015-01-13 12:32:40 +08:00
一是防范路由链路不被中间人劫持,静态arp绑定,静态路由,关闭代理自动发现功能等等。不过要是人家直接控制了路由器,这些都没用了。
二是防范流量被中间人解密和篡改,那就是上面的各种办法了。https不算安全,它可以被降级成http或者被中间人替换证书。
关于gfw能解密哪些协议的问题,大家可以找些敏感词去测试一下。
xiaoks
2015-01-13 13:52:29 +08:00
@copriwolf 这里交代一下,我并不是对网络安全不重视。其实我就是做网络安全的。
我给出上面的答案,是因为我对安全更加敏感。对小白用户说,也是最好的选择。

既然你说到这样的问题了,我就说说逼不得已的时候我是怎么处理的。

首先在开机之后,静止几秒。因为这时候很多软件都开始尝试联网,获取ip,获取dns。你现在着急联网,秒被路由“下毒”。等1-2分钟,数据请求不密集时,登录wifi,并且秒登录vpn。注意:一定要全局加密。用shadowsocks这种,你的QQ等还是暴漏在外面的。vpn的加密等级最好高一点,推荐openvpn。

接下来你的所有数据都走vpn,路由上可以抓到的数据都是你的笔记本与vpn的加密信息。目前这种加密无解,你可以放心了吧。
billlee
2015-01-13 14:12:41 +08:00
@jecvay 修改数据不需要密钥。对于任意的流加密算法,记明文为 P, 密钥流为 KS, 密文为 E. 有
E = P Xor KS

假设攻击者知道密文 E, 明文中某个字段的位置和值 P[begin:end], 想要把明文中的对应字段篡改为 M[begin:end], 只要计算出差异

DIFF = M[begin:end] Xor P[begin:end]

就可以再计算一个
ME = E
ME[begin:end] = E[begin:end] Xor DIFF

这样生成的 ME 就能够被解密成篡改后的明文,达到了在不知道密钥的情况下破坏数据完整性的目的。

就针对 shadowsocks 来说,攻击者可以猜测协议中的目的地址字段,将它修改成攻击者控制的服务器,然后 ssserver 就把解密的数据发送给攻击者了。

shadowsocks 只是一个混淆协议,不是安全协议。
jecvay
2015-01-13 16:22:56 +08:00
@billlee orz吊吊吊
threezhiwang
2015-01-13 16:58:40 +08:00
@futursolo 点评下SM2
futursolo
2015-01-13 19:24:09 +08:00
@billlee
根据偶的印象,为了避免探测,ShadowSocks会把无法解密的数据拿去扔掉,根本不会理会(但会把连接失败写到系统日志里)。而且每一个连接的密钥都是基于初始向量单独生成的,不同的链接之间也不会共用密码,即使猜到了密码也没用,只能暴解但个连接的实际密码。密码方面,采用和L2TP预协商密钥类似的密码方法是可以达到加密的效果的,只要加密强度足够大,解密也是需要时间的,何况还要把密码给md5一遍以增加长度。
参见:[](https://github.com/shadowsocks/shadowsocks/blob/master/shadowsocks/encrypt.py)

@Halry
很遗憾,手头没有可以测试MIPS设备。(唯一的TP-LINK也被母上大人命令不准破坏,目前智能路由之类的功能都是用开发板充当网关实现的)但是ChaCha20对于精简指令集的CPU有优化是真的,性能虽不及RC4,但是比AES是好多了。而且主要是因为安全性有保障,要不Google也不会在移动端HTTPS用CHACHA20-POLY1305。(使用移动版Chrome开google.com,注意是Chrome,其余浏览器无效)

@cnnblike
嘛,这个,法庭上要讲证据。
至于为什么身在人间也要翻墙回天朝的原因其实也很简单,大家要上B站看番。

@threezhiwang
目前的应用情况太少,实际的加密强度尚不明确(与AES的使用范围相比真是冰山一角),且算法持有人略坑,不排除持有某些未公开漏洞的可能。如果属实那查水表就太方便了。
threezhiwang
2015-01-14 09:07:42 +08:00
@futursolo 不知你所述的SM2是否为商密2号算法,此算法为非对称算法,基于ECC,曲线已公开,SM1未公开
futursolo
2015-01-14 18:48:07 +08:00
@threezhiwang
就是那个东西,论文看过了,感觉也不怎么样,和ECDSA差不多的感觉,但并未明确指出解密年限。而且,由于应用范围过窄,不知道是否会出现魔数。这种东西必须要大量验证以后才可以被信任,而且发明者偶觉得完全不可信。建议目前还是用ECDSA或者RSA。
threezhiwang
2015-01-14 19:44:06 +08:00
@futursolo SM2就是选了条ECC 256的曲线,然后运算中掺杂了点SM3进来。SM2是定长签名算法,就好像RSA1024,解密年限这东西,参见ECC强度吧。既然是开源的,就没有可信不可信的说法了吧,而且算法这东西,不是大量验证,而是长时间的开源审计吧。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/161520

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX