VPN是什么?
VPN,隧道网络。最初是由微软工程师温顿瑟夫开发。细心的小伙伴会发现我们的手机和电脑都有VPN这个选项。VPN最初的开发目的是为了数据加密和保证数据完整性以及认证状态。
在中国,我们在工作时一般就用QQ和微信,但在国外,其实外国人办公最常用的就是VPN。最早的VPN在1996年出现,而那时的互联网不像现在那么发达,而HTTPS则是在2000年才编入RFC[征求意见稿,由互联网工程任务组发布的一些列备忘录一样的东西文件收集了互联网相关信息],所以在这之前人们上网都是使用的HTTP协议,HTTP协议的一大缺点就是明文,HTTP协议并没有对数据进行加密和规定,这对于一些大公司来说是致命的。
我们办公的时候在公司时是可以访问公司内网的,但是如果遇到了紧急情况需要调整,但是人正好又没在家,那么这时就没有办法连接公司内网进行办公;可能有初学计算机的小伙伴问了,为什么一定要连接公司的内网才能办公呢?那么我们来想如果随便连接一个公共网络就可以访问到公司的数据库等这些关键的命脉信息,那么是不是每个人都可以通过公共网络对公司信息有威胁,那么一个公司的命脉信息岂不是就“开源”了。所以VPN起初的开发目的就是为了“加密”,为了让相关人员可以在不同的地方办公,有可以避免不必要的威胁,就像加了一层密码一样,但是实际上却远远没有那么简单。了解了VPN是什么接着往下看,它的具体作用和工作原理。👇
当人不在公司又想要下载公司的资料文件的时候,这时就可以连接公司的边界设备,边界设备在确认了你的身份以后,就会通过VPN隧道给你分配一个内网的IP地址,这样即使是在外地也能访问公司的内网了。
VPN的类型
1. 站点对站点:
这种类型的VPN,应用于同一公司但是不同地点的内部网,也可以应用于不同公司的外部网。站点对站点意味着两端或者多端的地点相对固定,且链接不中断。
核心原理很简单:用VPN利用公用网络体系使之变得相对安全可靠。公司的两头都配置一台VPN服务器(看过前几篇文章就知道其实就是在这里充当了网关的作用),所有从公司里出来的信息都需要通过VPN服务器进行数据加密,这样才能从公司内部发出;然后数据经过自己的ISP(互联网服务提供商,就是谁给你提供的互联网服务的这一角色)发送到互联网中去,数据到达另一端的VPN服务器后进行解密然后再分配到指定的主机,流程返过来是一样的,核心就是数据在公用网络里是加密状态的。
详细解释一下原理:当一个数据包发送到VPN服务器后,数据包上的源IP地址就会更改为VPN服务器的IP地址,目标地址变为目标VPN服务器的IP地址,这个数据包会被加密,在中间人看来就是两个服务器之间进行通信,而且数据已经被加密了,这样就隐藏了实际源地址和实际目标地址。
2. 客户端对站点
第二种类型就是客户端对站点,这种类型也可以称为远程登陆VPN。这种类型就是居家办公使用的类型。因为站点对站点的类型,地点相对固定,而员工的家庭住址又各不同,有些员工还会选择在图书馆和咖啡厅等等奇奇怪怪的个人喜好场所进行办公,那么IP地址又会发生变化,大千世界无奇不有啊😀。 所以这种类型就比较适合地点不固定,不需要长时间链接的方式,而且这种类型的VPN可以用浏览器直接通信也可以另外安装客户端软件进行VPN通信,而且这种类型的通信模式还有全隧道和半隋隧道的通信模式,如果想要所有的信息数据全部走公司的内部网络就选择全隧道,但是想要边摸鱼边办公就半隧道。
VPN的职责
1. 数据加密
上面说的都是VPN的职责之一------对数据进行加密操作。
2. 保证数据完整性
VPN的第一个职责是数据加密,加密是要使用到算法的。比较常用的是AES、3DES,这两个算法的名字中都有一个E(Encryption,加密),但是单纯的加密也不能完美的传输数据,毕竟黑客即使看不懂你的数据但是可以改变你的数据的真实性和完整性(我得不到,你也别想得到),这就需要用到hash了。哈希值(hash):hash值指数据的哈希值,它是通过哈希算法对数据进行处理后生成的一个固定长度的字符串,主要是用来加密和保护数据完整性的。
(## 图片B站技术蛋视频中 ##)
每一段数据,所对应的hash值是不同的,当我们要添加新的数据到里面去,那么hash值就会变的完全不同,几乎上这是一直在变的。这样接收方可以根据Hash值来判断数据是否被篡改,常用的hash算法一般用MD5和SHA系列。但是重要的是要知道和自己沟通的是不是自己认识的人,比如有人黑了公司员工的电脑使用VPN登录公司内部网怎么办?这就需要VPN的第三个职责了。
3. 身份认证
常见的认证算法有PDK和RSA,我们常见的就是密码识别(PIN码)、指纹和面部识别验证了。
VPN的框架
其实要使得VPN有刚刚说的三个职责是需要结合很多协议来实现的,网络通信本来就是一堆协议组合而成的,一堆协议又可以组成一个框架。
VPN主要用到了两大框架:IPsec和SSL/TLS。
这两个框架的名字中都含有一个“S”,这个“S”就是代表了“Security”(安全)的意思。虽然这两大框架其中的内容都很复杂,但是初学总体上知道核心是保证安全的就可以了。SSL/TLS 其中的S 代表HTTP中的S。
也就是我们在浏览网页的时候用的就是SSL/TLS,所以客户端对占你点这种类型的VPN一般就是使用的SSL/TLS,毕竟有可以进行VPN功能的浏览器就可以了,十分的方便,SSL/TSL会在HTTP文章中详细解释。但是IPsec就不一样了,可以用在客户端对站点VPN,站点对站点VPN,不过多数是用在站点对站点VPN上的,顾名思义IPsec就是IP security的意思,而IP协议是在网络层的,也就是说IPsec是在网络层的。
在OSI模型中,数据从应用层往下流,到了目标那边就是从物理层往上流,传输数据时,当数据来到了网络层后,使用IPsec就可以把网络层上面的数据全部加密再发送出去,而SSL/TSL是在第六层表示层,会在表示层加密应用层数据再往下发送,下面的这些层都是不能使用SSL/TSL加密的。
VPN误解
大部分人对VPN是有误解的,比如觉得VPN可以完美隐藏自己要访问的网站,上面说过,当我们想要访问摸个网站的信息时,那么启用VPN后,首先目标地址被修改后的数据通过ISP的网络发送到VPN服务器,然后VPN服务器再报数据解密发送到真是的服务器那边,你和VPN之间就建立了一个无形的通道,只有你和VPN知道。所以这也就是VPN的意思所在:V:virtual(虚拟);P:Private(私人)。
但是有没有思考过一个问题,那就是你将自己想要访问的网站IP告诉VPN真的保险吗?能保证VPN不会“出卖”你吗?就算以上都能保证,或许你想要访问的网站也早就在DNS域名解析的时候被暴露了出去;也有可能在DNS解析的时候,你就已经先问ISP某个网站的IP地址了,因为有可能你设置的DNS服务器还是ISP提供的,这样ISP还是会知道你想要访问的网站。
DNS:域名系统,域名解析是将用户输入的域名转化为计算机可以理解的IP地址的过程,这个过程使得用户可以通过简单易记的域名访问网站,而不需要记住数字化的IP地址。
没有启用VPN之前,只要你有一次登录的记录,第一次登录的时候服务器就已经知道了。所以无痕上网几乎是不可能的事情。有些人使用VPN是想通过某个国家的IP地址访问特定资源,VPN确实是可以做到定位到某个国家的IP地址,但问题是很多网站服务也是会知道你在使用VPN的,从而制造一些问题让你来回答;还有人是为了在公用WIFI的前提下保护自己的数据,害怕会遭到ARP攻击,但是实际上如果你访问的是HTTPS的网页就不用担心这个问题了,黑客虽然知道你在访问什么网站,但是他是不会知道你的目光是定位在哪里,想要从这张网页上提取什么信息的。
上网是一件很复杂的事情,千万不要以为有什么完美的事情,这么多的违法人员那个被捕之前不是以为自己的技术高超,可以冒险试一试,最后还是落入法网。
好了,这篇文章到这里就结束了,谢谢你看到了这里😄。下篇文章我们来说一说什么是DHCP协议,电脑是怎么自动获取IP地址的呢?如果感兴趣可以关注本人文章。内容较基础,面向新大学生或者新学计算机的朋友,学习之路很长,希望我们都可以坚持下去,变得更优秀。谢谢!