VPN背景
VPN在1996年就被提出了,而HTTPS协议是在2000才被写入RFC,那么在HTTPS协议出现之前,网络传输协议主要是HTTP协议,而HTTP协议最大的缺点就是明文,也就是但凡懂得一点HTTP协议的人,只要拦截了HTTP协议发送的报文,就知道里面的内容,因此HTTP协议发送内容并不安全,特别是涉及到机密,钱财等相关内容时。VPN就可以解决上述问题,V是virtual表示虚拟,P是private表示私人的,我理解的意思就是使用虚拟化的网络来保护隐私。
VPN使用案例
如果一个大公司的业务部在东边,仓库在西边。有客户在东边下单买了娃娃,就需要把客户的购物信息发送到西边的仓库,这样仓库才能安排发货,可是通过互联网发送的话,数据经过谁手上都不知道。而且数据没有加密的话更容易被中间人知道客户的购买信息。既然说的是大公司,那这个问题很好解决东西边弄一条专线不就行了吗。其实我们不知道需要多少钱,直接想想架设一条跨越东西边的专线,都知道费劲的很,所以这个方法大部分公司都采用不了,为了把成本降到最低,就只能利用现有的公用网络体系,于是当时vpn就比较好的解决了这个问题。核心原理很简单,公司的两头都配置一个vpn集线器,也有其他形式名称vpn服务器。vpn网关公司内部所有要发送出去的数据都要经过vpn集线器加密,加密后才能从公司出去数据,经过自己的ISP进入互联网。
ISP就是互联网服务提供商,也就是谁向你提供互联网服务,在中国简单来说就是移动,联通,电信这些公司。数据抵达另一头的vpn集线器后会进行解密,然后。再分配到指定的主机.流程反过来也是一样的,核心就是数据在公用网络里面是加密状态的。
VPN类型
1.上个案例讲到的VPN类型就是属于站点–站点的
2.还有一种VPN类型属于客户端–站点的,这种类型就很适合聚焦办公的情景了,因为站点对站点的地址相对比较固定。但是每个员工的家庭地址都在不同的地方,如果员工在咖啡厅或者酒店办公,ip地址又会发生变化,更别说员工用手机办公了,所以这种类型就相对灵活,比较适合不需要长时间进行链接的方式,而且一般来说,这种类型的vpn可以用浏览器直接通信,也可以另外安装客户端软件来进行vpn通信,而且这类型的vpn还有全隧道和半隧道模式,如果你想把所有的网络数据都走公司网就全隧道,但是在家办公的你肯定少不了摸鱼,所以一般很多人会选择半隧道模式。
刚刚不断提到加密,这只是VPN其中一个职责而已,还有也就是保密,加密就是为了保密,让数据不那么容易被人识破,加密是需要使用的算法的,这里常用的有AES和3DES。单纯的加密也不能完美的传输数据,毕竟黑客即使看不懂你的数据,也可能乱改你的数据,自己得不到也不让你得到,还好,VPN另一个职责就是保护数据完整性,这里就需要用到hash了,hash其实就是使用算法把根据一段字符串生成唯一的hash值,一段字符串对应着一个hash值,如果随意改变一个字符,hash值就会完全不同,这样接收方可以根据hash值来判断数据有没有被篡改.。
问题又来了,数据确实安全了,但最重要的是要知道和自己沟通的是不是自己认识的。比如有人黑了员工的电脑,使用VPN登录公司内部网怎么办?这就需要v边的第三个职责了。也就是认证,常见使用的算法有psk和isa。
其实要使得VPN有刚刚说的三个职责是需要结合很多协议来实现的。网络通信本来就是一堆协议组合而成的,一堆协议又可以组成一个框架,VPN主要用到了两大框架IPsec和SSL/TLS.这两大框架的名字都有着s,是security的缩写,也就是安全,虽然这两大框架里面的内容都很复杂,但是总体大家知道核心是安全就可以了,那为什么会需要用到这两大框架呢?大部分人可能知道,ssl/ts代表HTTPS里面的SSL/TLS协议,可以用在客户端–站点的VPN类型。而IPsec就不一样了,可以用于客户端–站点和站点–站点,主要用于站点–站点。IPsec是网络层协议,而SSL/TLS是表示层协议。
主要参考:https://www.bilibili.com/video/BV1KY411t75D/