作为一个局域网的普通用户,没有路由管理权,请问各位,如何能够识别中间人攻击(ip重复冲突?看arp表?),并防范阻止?
1
samueldeng 2015-01-12 20:43:15 +08:00 via iPad 1
攻击者如果有交换机权限,没有办法防范吧?
如果没有权限,通常用arp sproofing吧,这时,除了arp绑定就没有其他办法了吧? |
2
mengzhuo 2015-01-12 20:55:24 +08:00
TLS
|
3
kiritoalex 2015-01-12 20:59:03 +08:00 via iPhone
HSTS
|
5
msg7086 2015-01-12 21:03:53 +08:00 via iPhone
Ssl也可以中间人,只要有一个可信ca的签发权就行了
|
6
copriwolf OP @msg7086 这个似乎是之前新闻里微软一个下属软件开发的伪造了可信证书。。。似乎一般ssl中间人是通过SSLStrip这类软件降级处理吧
|
9
futursolo 2015-01-12 21:31:26 +08:00 3
@billlee
同意楼上,一般能防MITM的要具有以下特征: 1、握手加密而且具有可信CA(SSL、TLS之类,CNNIC和WoSign就不点评了)或拥有预协商密钥(L2TP) 2、加密方法足够强大(AES、CHACHA20之类,RC4和SM2就不点评了) 综上,一般情况下,以下的协议是安全的: 1、HTTPS(排除RC4、3DES算法,排除CNNIC、WoSign的CA证书) 2、OpenVPN(基于TLS,只要你能连上就是安全的) 3、L2TP *Over IPSec*(必须要Over IPSec,没了就没加密了) 4、IKEv2(基于TLS和可信CA发的证书,安全性比OpenVPN还好) 5、SSTP(基于TLS和可信CA发的证书,安全性和IKEv2相同,稳定性加强,用443端口) 6、ShadowSocks(基于N+1种加密算法,只要你不选RC4或RC4-MD5算法就是安全的) 7、任何用SSL Stream过又验证CA甚至客户端证书的TCP连接(UDP大家都懂,DNS什么的) |
10
futursolo 2015-01-12 21:32:11 +08:00
当然,SSH也算一个
|
11
copriwolf OP |
13
kiritoalex 2015-01-12 21:58:46 +08:00 via iPhone
@copriwolf SSLstrip能使通信失去证书,加了HSTS特性的网站会报错(chrome根本不给你打开网页的机会,即使你想继续也不行)
|
15
futursolo 2015-01-12 22:09:02 +08:00
@Halry
嘛,简单点说好了。 ShadowSocks的RC4不安全是因为Key复用的问题,也就是算法有问题,RC4-MD5上已经修复了这个问题了。 RC4-MD5不安全的原因是因为加密强度太弱,主要是给ARM或MIPS架构的CPU(也就是手机和路由器)准备的,正常情况下使用是没问题的(因为当年clowwindy说过ShadowSocks的加密是为了模糊流量,不是为了加密而加密),但是要遇上曙光4000暴解的话估计也就数分钟的事(不过估计也要等到你干了什么不惜动用曙光4000也要把快递送到你家门口的事再说)。 |
16
20140930 2015-01-12 22:22:32 +08:00
现在浏览器增加的Public Key Pinning 功能也可以应对这种攻击吧?
|
17
billlee 2015-01-12 22:32:21 +08:00
@futursolo 不能认为 shadowsocks 是安全的. shadowsocks 只有加密,没有认证。中间人可以篡改数据,在使用流加密算法时这个问题尤其严重。
|
20
deepurple 2015-01-12 23:24:58 +08:00
@samueldeng 似乎看到了熟人
|
21
xiaoks 2015-01-13 00:49:57 +08:00
这是啥上网环境啊。遇到这种环境,我一般把设备wifi功能关了。然后看看书。
就算你是大侠,也不应该在这种环境里凑热闹。熟话说的好,乱棍打死老师傅。 别以为自己做了某些措施就安全了。 |
22
copriwolf OP @xiaoks 可是现实也有很多这样的环境,街边的麦当劳,甜品店的wifi很有可能就是这样的环境,所以有时候重视讨论一下还是挺好的。。。。。
|
23
cnnblike 2015-01-13 02:08:52 +08:00
@futursolo 曙光4000暴解根本是一件不用担心的事情了……与其花大笔计算费用,还不如一个快递让你进去交代。除非你在国外,但如果在国外,翻墙干啥?
|
24
intosec 2015-01-13 12:32:40 +08:00 via Android
一是防范路由链路不被中间人劫持,静态arp绑定,静态路由,关闭代理自动发现功能等等。不过要是人家直接控制了路由器,这些都没用了。
二是防范流量被中间人解密和篡改,那就是上面的各种办法了。https不算安全,它可以被降级成http或者被中间人替换证书。 关于gfw能解密哪些协议的问题,大家可以找些敏感词去测试一下。 |
25
xiaoks 2015-01-13 13:52:29 +08:00
@copriwolf 这里交代一下,我并不是对网络安全不重视。其实我就是做网络安全的。
我给出上面的答案,是因为我对安全更加敏感。对小白用户说,也是最好的选择。 既然你说到这样的问题了,我就说说逼不得已的时候我是怎么处理的。 首先在开机之后,静止几秒。因为这时候很多软件都开始尝试联网,获取ip,获取dns。你现在着急联网,秒被路由“下毒”。等1-2分钟,数据请求不密集时,登录wifi,并且秒登录vpn。注意:一定要全局加密。用shadowsocks这种,你的QQ等还是暴漏在外面的。vpn的加密等级最好高一点,推荐openvpn。 接下来你的所有数据都走vpn,路由上可以抓到的数据都是你的笔记本与vpn的加密信息。目前这种加密无解,你可以放心了吧。 |
26
billlee 2015-01-13 14:12:41 +08:00 1
@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 只是一个混淆协议,不是安全协议。 |
28
threezhiwang 2015-01-13 16:58:40 +08:00
@futursolo 点评下SM2
|
29
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的使用范围相比真是冰山一角),且算法持有人略坑,不排除持有某些未公开漏洞的可能。如果属实那查水表就太方便了。 |
30
threezhiwang 2015-01-14 09:07:42 +08:00
@futursolo 不知你所述的SM2是否为商密2号算法,此算法为非对称算法,基于ECC,曲线已公开,SM1未公开
|
31
futursolo 2015-01-14 18:48:07 +08:00
@threezhiwang
就是那个东西,论文看过了,感觉也不怎么样,和ECDSA差不多的感觉,但并未明确指出解密年限。而且,由于应用范围过窄,不知道是否会出现魔数。这种东西必须要大量验证以后才可以被信任,而且发明者偶觉得完全不可信。建议目前还是用ECDSA或者RSA。 |
32
threezhiwang 2015-01-14 19:44:06 +08:00
@futursolo SM2就是选了条ECC 256的曲线,然后运算中掺杂了点SM3进来。SM2是定长签名算法,就好像RSA1024,解密年限这东西,参见ECC强度吧。既然是开源的,就没有可信不可信的说法了吧,而且算法这东西,不是大量验证,而是长时间的开源审计吧。
|