一、Github 中间人攻击事件
2020 年 3 月 26 日下午,Github 网站下的多个域名疑似遭受中间人攻击,中国大部分地区访问 Github 网站都会出现浏览器提示连接不安全的情况,海外地区未发生该现象。
关于此次事件我们不做任何评论,我们仅从这次事件来讨论一下技术方面的信息。
二、什么是中间人攻击
我们来看看正常的访问 Github 网站的流程是怎么样的:
- 用户在浏览器输入 github.com 并回车,浏览器则先要向 DNS 服务器查询 github.com 的 IP 地址。
- DNS 服务器返回 github.com 的 IP 地址。
- 浏览器再访问这个 IP,进行正常的访问。
那么 Github 网站遭受中间人攻击后是怎么样的(以下只是举个例子,实际上的情况并不一定是这样,可能要比这复杂得多):
- 用户在浏览器输入 github.com 并回车,浏览器向 DNS 服务器查询 github.com 的 IP 地址。
- DNS 服务器返回了一个不是 github.com 的 IP 地址,但此时浏览器并不清楚该 IP 的正确性。
- 浏览器访问这个 IP,在建立 tls 握手时发现该网站的证书不可信任,并提示用户是否继续访问。若用户继续访问,则建立了一条不安全的连接。若用户不继续访问,则关闭连接,用户的任何数据都不会被泄露。
若用户继续访问,后果是什么:
用户与 Github 网站交互的任何 tls 加密数据都将能被中间人破解。
原因是因为用户是与中间人建立了 tls 连接,加密和解密使用的都是中间人的证书,那么中间人只需用自己的密钥就能够完全破解用户上传的用户名密码,用户上传的 Github 密钥以及任何信息!!!
庆幸的是,浏览器会自动验证证书的来源是否受信任,遇到证书来源不受信任的情况时会及时阻止用户访问,此时是否访问的选择权在用户手中,大家在遇到浏览器提示不是私密连接的时候,切记要小心,最好就不要访问,杜绝任何信息的泄露。
三、关于 v2ray ws + tls
如果你正在使用 ws+tls 或 http/2+tls 的方式,那么首先恭喜你,你目前使用的方式是最安全可靠的,但是可能有一些需要注意的事情。
既然 https 网站可能会被中间人攻击,那么使用了 tls 配置的 v2ray 从理论上来说也可以被中间人攻击,但是目前所有的 v2ray 客户端都不会跟浏览器一样提示你连接是不安全的,所以如果你被中间人攻击,你根本就无法察觉到。
如果你正在被中间人攻击,此时的 tls 加密相当于是无效的,不过 v2ray 协议本身也是加密的,退一万步说,即使破解了 v2ray 协议的加密,内层还会有你访问的 https 网站的加密,所以你发送的数据是破解不了的,但是这可能会增加被检测到的风险。
如何避免中间人攻击
如果你正在使用自签证书,建议你申请可信任的 CA 证书,如果是自签证书,当你被中间人攻击后是很难察觉到的。
申请教程:
如果你正在使用 CA 颁发的证书,那么只需要在客户端中取消允许不安全即可。此时就是只允许安全连接,当出现不安全的连接时,客户端会主动断开连接,那么这个时候你就无法使用这个账号了,只有攻击结束后才能再次使用。这样就有效的避免了中间人从中获取任何信息的可能性,增加了安全性。缺点就是遭受攻击时,账号无法使用。
取消允许不安全后,自签证书、证书到期、证书配置不正确、证书域名与连接域名不相同等都会导致无法连接
但是也有一部分 v2ray 客户端没有提供这个选项,也有一部分客户端切换了这个选项后可能出现无法连接的现象,这个是没有办法的,各个客户端的实现可能有一定差异。
如果你当前使用的客户端无法选择的话,或者切换了选项后怎么样都无法连接的话,那么不做任何调整也是可以的,目前也没有发现过任何中间人攻击的现象,tls 依然是安全的。
以下是配置示例:
强强强风
升级小火箭。。。
老哥 你的内个仪表盘客户端扫描二维码出来是乱码~ 这怎么处理呢~