VPN传输不一定非常安全,想要拦截让其失效非常容易

  • A+
所属分类:软件·服务器

VPN很多人不会陌生,企业为了安全传送公司文件保护商业机密通常都会采用VPN安全协议来传输;

还有很多人用VPN来科学上网,看看国外网站,找找技术教程学习啥的;

不过国内访问海外VPN方法很快就不能用了,国家正在进行大规模技术升级,已经有很多开始失效不能用;

很多人有个误区,VPN是专门用来科学上网的,这个观点不正确;
VPN传输不一定非常安全,想要拦截让其失效非常容易
首先来看看VPN到底是什么吧。这要从早期的互联网说起了:早期的互联网没有任何安全上的设计,所有数据都以明文的形式暴露在所有人的眼皮底下。

这样很多公司就头痛了:公司内部的资料要是就这么在公网上明文传输,可是很容易被窃取的啊!于是他们就想到了一个办法:搭设专线,在各个分公司之间搭设专线把公司局域网连接起来,形成一个专用网络。专线上只传输公司的资料,攻击者也很难对专线下手,这样公司员工就能安全的进行交流啦,而且速度又快,服务质量也有保证。

可是新问题又出现了:专线虽好,可是实在是太贵了,多搭几条就吃不消了,有些规模比较小的公司都拿不出这个钱来;而且专线还有一个缺点,就是无法让处在公网上的员工个人安全进入公司内网。你总不能为一个人搭建一条专线吧:)

”物理专线搭不起,那就搭建虚拟专线吧!“VPN(Virtual Private Network,虚拟专用网)就横空出世了!

虚拟专用网,顾名思义就是在物理公网上虚拟出专线来供企业使用。在企业的PC上配置好客户端,将数据封装之后发往处于另一个内网内的远程服务器上,然后就可以访问内网了。

实际上,VPN就是在两点(两个内网区域可以看成两点)之间建立一条隧道(Tunneling),数据被封装成特定的格式传输,看上去就是在一条虚拟专线中传输。除了企业,学校和政府等需要专线沟通的封闭机构也需要VPN;而且由于VPN可以改变IP,不少国家的人就借此对付有些网站(尤其是视频网站)的地域访问限制,或者隐藏身份,以及用支持加密的VPN防止无线网络下的信息窃取。所以,其他国家的人用VPN有什么奇怪的?VPN本来就不是为了科学上网而生的!

”你怎么没有提到加密和认证之类的过程?不加密的VPN还叫VPN?还说什么支持加密的VPN?“
很多VPN都支持加密,但这可不代表VPN就一定是加密的。事实上,有两种很常见的VPN就是明文的[1]:PPTP(点对点隧道协议)和L2TP(第二层隧道协议),而身份认证和数据完整性验证过程也不是必须的。当然,在实际运用中集加密和身份认证于一身的VPN是最常见的,常见的付费VPN(有常见协议,也有自创协议的)以及OPENVPN还有IPsecVPN都是同时支持加密和身份认证以及数据完整性验证的。

”VPN默认就是全局代理的,这又是为什么呢?为什么常见的HTTP代理和SOCKS代理不是全局代理呢?“
这要从VPN的具体工作流程说起了。前面提到VPN会封装用户数据然后发送到远程服务器上,那么VPN是工作在OSI模型的哪一层上的呢?

”工作在哪一层有什么重要的?非常重要,代理软件工作在哪一层直接决定了代理软件能实现什么样的功能。HTTP代理工作在应用层,专门处理HTTP协议,那么就只能为支持使用HTTP协议通信的程序(例如浏览器)服务了;SOCKS协议工作在会话层,在传输层之上应用层之下,理论上就支持所有应用层协议了,服务范围一下子广了很多,而且可以完美工作在TCP字节流之上(Tor就是这样的[2]),但依旧没有办法全局代理。

而VPN则是工作在这三层之上:物理层,数据链路层和网络层,其中物理层VPN已经是非常接近物理专线的存在了(Optical VPN就是一种物理层VPN),咱们一般接触不到,暂且不提;而工作在数据链路层之上的VPN就是很熟悉的存在了:常见的PPTP,L2TP还有OPENVPN都是工作在数据链路层之上的;IPsecVPN是工作在网络层上的。

”这又和全局代理有什么关系?“关系大着呢:PC里的各路进程进行网络通信的时候都必须经过这样的过程:数据包封装完成之后经过操作系统的转发(操作系统内核此时当了路由器,根据系统路由表进行转发),然后再被系统网卡处理成帧(网卡驱动的活),最终转化为电信号发送出去(具体形式视传输介质而定,无线就是电磁波,双绞线和同轴电缆就是电流脉冲,光纤就是光脉冲)。

而常见的链路层VPN会在操作系统里安装一个虚拟网卡(所以VPN基本上不是绿色软件,需要管理员权限安装,原因就在这里:安装驱动级别的软件是一定要管理员权限的,网卡自然是驱动级别),VPN连接之后就会修改默认的系统路由表,将所有进程的通信流量都路由到虚拟网卡上,让虚拟网卡处理,生成特别的帧之后再发送出去。

”啊,系统路由表被修改了,那么很自然的就全局代理了!“没错,就是这样,进程通信是服从系统路由表的,那么系统路由表被VPN进程修改之后,所有的进程流量就只能乖乖通过VPN服务器的中转了!不过事实上windows系统有一个缺陷:特定情况下允许应用程序进程绕过系统路由表直接发起连接,这直接造成了webRTC IP泄露事件[4]。有些人会想到proxifier这类软件也可以进行全局代理,这和VPN的全局代理不是一回事情,proxifier之流是为本来无法设置代理的一些程序设置了代理,并没有动系统路由表。

除了默认全局代理之外,工作在数据链路层的VPN可以轻易穿透NAT,因为此时客户端是在数据链路层和远程服务器建立了端到端的连接,自然不会受到NAT的困扰了(NAT是工作在网络层的),而工作在网络层的IPsec面对NAT的时候就会有麻烦。

被VPN协议处理过的数据包格式一致(长度,结构都很一致的,而且非常特别),协议指纹极其明显(如果有动态身份认证过程和密钥协商过程就更加了),所以说企业网管或黑客想要进行封锁一点都不困难,事实上ISP就可以完成硬件层面的协议封锁,联通就是这样干掉PPTP的。不过这也不奇怪,VPN又不是为了科学上网而生,没有必要降低协议指纹量的。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

,输入正确后才能评论!

目前评论:1   其中:访客  1   博主  0

    • 寇婉雪 寇婉雪 6

      交流贴,继续努力发好文