Virtual Private Network(虚拟专用网络)详解

Posted 甲乙zzu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Virtual Private Network(虚拟专用网络)详解相关的知识,希望对你有一定的参考价值。

VPN的概念和结构

虚拟专用网(virtual personal network,VPN)是利用internet等公共网络的基础设施,通过隧道技术,为用户提供的专用网络具有相同通信功能的安全数据通道。

‘虚拟’是指用户无需建立各逻辑上的专用物理线路,而利用internet等公共网络资源和设备建立一条逻辑上的专用数据通道,并实现与专用数据通道相同的通信功能。“

专用网络”是指虚拟出来的网络并非任何连接在公共网络上的用户都能使用,只有经过授权的用户才可以使用。该通道内传输的数据经过加密和认证,可保证传输内容的完整性和机密性。

为什么要使用VPN技术

一个技术的出现都是由于某种需求触发的。那么为什么会出现VPN技术呢?VPN技术解决了什么问题呢?

在没有VPN之前,企业的总部和分部之间的互通都是采用运营商的internet进行通信,那么Internet中往往是不安全的,通信的内容可能被窃取、修改等,从而造成安全事件。

那么有没有一种技术既能实现总部和分部间的互通,也能够保证数据传输的安全性呢?

答案是当然有。

一开始大家想到的是专线,在总部和分部拉条专线,只传输自己的业务,但是这个专线的费用确不是一般公司能够承受的。而且维护也很困难。

那么有没有成本也比较低的方案呢?

有,那就是VPN。VPN通过在现有的Internet网中构建专用的虚拟网络,实现企业总部和分部的通信,解决了互通、安全、成本的问题;

那么什么是VPN技术吗?

VPN即虚拟专用网,指通过VPN技术在公有网络中构建专用虚拟网络;
那么什么是VPN技术吗?

VPN即虚拟专用网,指通过VPN技术在公有网络中构建专用的虚拟网络;

用户在此虚拟网络中传输流量,从而在Internet网络中实现安全、可靠的连接。
VPN和传统的公网Internet相比具有如下优势:

VPN技术的优势

  1. 安全:在远端用户、驻外机构、合作伙伴、供应商与公司总部之间建立可靠的连接,保证数据传输的安全性。这对于实现电子商务或金融网络与通讯网络的融合特别重要。

  2. 成本低:利用公共网络进行信息通讯,企业可以用更低的成本连接远程办事机构、出差人员和业务伙伴。

  3. 支持移动业务:支持出差VPN用户在任何时间、任何地点的移动接入,能够满足不断增长的移动业务需求。

  4. 可扩展性:由于VPN为逻辑上的网络,物理网络中增加或修改节点,不影响VPN的部署。

  5. 灵活性强:可支持通过各种网络的任何类型的数据流,支持多种类型的传输媒介,可同时满足传输语音、图像和数据等的需求

  6. 服务质量佳:为企业提供不同等级的服务质量保证。不同用户和业务对服务质量保证的要求差别较大,对于拥有众多分支机构的专线VPN,交互式内部企业网应用则要求网络提供良好的稳定性。

VPN技术实现

VPN是再Internet等公共网络基础上,综合利用隧道技术、加解密技术、密钥管理技术和身份认证技术实现的。

1.隧道技术

VPN技术的基本原理其实就是用的隧道技术,就类似于火车的轨道、地铁的轨道一样,从A站点到B站点都是直通的,不会堵车。对于乘客而言,就是专车
隧道技术其实就是对传输的报文进行封装,利用公网的建立专用的数据传输通道,从而完成数据的安全可靠性传输;

可以看到原始报文在隧道的一端进行封装,封装后的数据在公网上传输,在隧道另一端进行解封装,从而实现了数据的安全传输。

隧道通过隧道协议实现。如GRE(Generic Routing Encapsulation)、L2TP(Layer 2 Tunneling Protocol)等。

隧道协议通过在隧道的一端给数据加上隧道协议头,即进行封装,使这些被封装的数据能都在某网络中传输,并且在隧道的另一端去掉该数据携带的隧道协议头,即进行解封装。

隧道协议的分类


报文在隧道中传输前后都要通过封装和解封装两个过程。

2、身份认证、数据加密、数据验证

  • 身份认证:VPN网关对接入VPN的用户进行身份认证,保证接入的用户都是合法用户。

  • 数据加密:将明文通过加密技术成密文,哪怕信息被获取了,也无法识别。

  • 数据验证:通过数据验证技术验证报文的完整性和真伪进行检查,防止数据被篡改

    VPN技术的特点

VPN技术的实际应用–三种工作模式

1.Web浏览器模式

2.VPN客户端模式

LAN到LAN模式

VPN的用途

1.互联网远程访问:

近年来,许多企业机构的一些员工的办公地点流动性越来越大,比如,员工到不同的城市出差时需要访问企业的内部网络,若没有vpn是访问不了的。

2.局域网互联:

除了使用虚拟专用网络进行远程访问, VPN也可以两个局域网联系在一起。在这种工作模式下,整个远程网络可以加入到一个不同的公司网络,以形成一个扩展的企业内部网。该解决方案是采用一台VPN服务器, 实现两个局域网的互联。

3.内部网络的vpn使用:

比如,在每一个公司,由于每个人的职位与职责不一样,内部网络也可以利用VPN技术来实现一个私有网络内的受控访问单个子网。在这种操作模式下,VPN客户端连接到一个VPN服务器作为网络网关。
这种类型的VPN使用不会影响互联网服务提供商(ISP)或公共网络布线。但是,它允许组织内部署VPN的安全利益。作为企业保护他们的无线本地网络的一种方式,这种方法目前比较受欢迎。

计算机网络学习笔记17网络安全加密技术“Virtual Private Network”技术

【计算机网络学习笔记17】网络安全、加密技术、“Virtual Private Network”技术

一、网络安全概述

1.1 网络系统的安全目标:

1.可用性(Availability)
得到授权的实体在需要时可访问资源和服务。可用性是指无论何时,只要用户需要,信息系统必须是可用的,也就是说信息系统不能拒绝服务。网络最基本的功能是向用户提供所需的信息和通信服务,而用户的通信要求是随机的,多方面的(话音、数据、文字和图像等),有时还要求时效性。网络必须随时满足用户通信的要求。攻击者通常采用占用资源的手段阻碍授权者的工作。可以使用访问控制机制,阻止非授权用户进入网络,从而保证网络系统的可用性。增强可用性还包括如何有效地避免因各种灾害(战争、地震等)造成的系统失效。

2.可靠性(Reliability)
可靠性是指系统在规定条件下和规定时间内、完成规定功能的概率。可靠性是网络安全最基本的要求之一,网络不可靠,事故不断,也就谈不上网络的安全。目前,对于网络可靠性的研究基本上偏重于硬件可靠性方面。研制高可靠性元器件设备,采取合理的冗余备份措施仍是最基本的可靠性对策,然而,有许多故障和事故,则与软件可靠性、人员可靠性和环境可靠性有关。

3.完整性(Integrity)
信息不被偶然或蓄意地删除、修改、伪造、乱序、重放、插入等破坏的特性。只有得到允许的人才能修改实体或进程,并且能够判别出实体或进程是否已被篡改。即信息的内容不能被未授权的第三方修改。信息在存储或传输时不被修改、破坏,不出现信息包的丢失、乱序等。

4.保密性(Confidentiality)
保密性是指确保信息不暴露给未授权的实体或进程。即信息的内容不会被未授权的第三方所知。这里所指的信息不但包括国家秘密,而且包括各种社会团体、企业组织的工作秘密及商业秘密,个人的秘密和个人私密(如浏览习惯、购物习惯)。防止信息失窃和泄露的保障技术称为保密技术。

5.不可抵赖性(Non-Repudiation)
也称作不可否认性。不可抵赖性是面向通信双方(人、实体或进程)信息真实同一的安全要求,它包括收、发双方均不可抵赖。一是源发证明,它提供给信息接收者以证据,这将使发送者谎称未发送过这些信息或者否认它的内容的企图不能得逞;二是交付证明,它提供给信息发送者以证明这将使接收者谎称未接收过这些信息或者否认它的内容的企图不能得逞。

1.2 计算机网络信息系统的其他安全目标:

1、可控性
2、可审查性
3、认证
4、访问控制

二、加密技术

密码技术包括密码算法设计、密码分析、安全协议、身份认证、消息确认、数字签名、密钥管理、密钥托管等。可以说密码技术是保护大型通信网络上信息安全传输的唯一有效手段,是保障信息安全的核心技术。它不仅能够保证机密性信息的加密,而且能完成数字签名、身份认证等功能。

2.1 密码学概述

加密时可以使用一组含有参数k的变换E,通过变E,得密文,称此参数k为加密密钥。k可以是很多数值里的任意值。密钥k的可能值的范围叫做密钥空间。不是所有含参数k的变换都可以作为加密算法,它要求计算密文不困难,而且若第三人不掌握密钥k,即使截获了密文,他也无法从密文推出明文。加密算法E确定之后,由于密钥k不同,密文也不同。从密文回复明文的过程称之为解密,解密算法是加密算法的逆运算,解密算法也是包含参数k的变换。图2-1表明了这个过程。

图2-1

2.2 对称密钥算法

对称算法就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加/解密密钥是相同的。这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加/解密。

2.3 序列密码

序列密码一直是作为军方和政府使用的主要密码技术之一,它的主要原理是,通过伪随机序列发生器产生性能优良的伪随机序列,使用该序列加密信息流,(逐比特加密)得到密文序列,所以,序列密码算法的安全强度完全决定于伪随机序列的好坏。伪随机序列发生器是指输入真随机的较短的密钥(种子)通过某种复杂的运算产生大量的伪随机位流。

图2-3

2.4 分组密码


图2-4

很多分组密码的结构从本质上说都是基于一个称为Feistel网络的结构。Feistel提出利用乘积密码可获得简单的代换密码,乘积密码指顺序地执行多个基本密码系统,使得最后结果的密码强度高于每个基本密码系统产生的结果。取一个长度为n的分组(n为偶数),然后把它分为长度为n/2的两部分:L和R。定义一个迭代的分组密码算法,其第i轮的输出取决于前一轮的输出:

L(i)= R(i-1)
R(i)= L(i-1)⊕f(R(i-1),K(i))
K(i)是i轮的子密钥,f是任意轮函数。
容易看出其逆为:
R(i-1) = L(i)
L(i-1) = R(i)⊕f(R(i-1),K(i))= R(i)⊕f(L(i),K(i))
DES就是基于Feistel网络的结构。

2.5 公钥密码算法

公钥密钥算法应满足以下要求:
 接收方B产生密钥对(公开密钥PKB和秘密密钥SKB)是计算上容易的;
 发送方A用收方的公开密钥对消息m加密以产生密文c在计算上是容易的;
 收方B用自己的秘密密钥对c解密在计算上是容易的;
 敌手由B的公开钥求秘密钥在计算上是不可行的。
 敌手由密文c和B的公开钥恢复明文m在计算上是不可行的。
 加、解密的次序可换。
 其中最后一条虽然非常有用,但不是对所有的算法都做要求。

2.6 密码协议

所谓协议,就是两个或者两个以上的参与者为完成某项特定的任务而采取的一系列步骤。协议具有以下特点:协议自始至终是有序的过程,每一个步骤必须执行,在前一步没有执行完之前,后面的步骤不可能执行;协议至少需要两个参与者;通过协议必须能够完成某项任务。协议的参与者可能是完全信任的人,也可能是攻击者和完全不信任的人。
 密钥建立协议
 认证协议

2.7 数字签名

在公钥密码体制中,一个主体可以使用他自己的私钥加密消息,所得到的密文可以用该主体的公钥解密来恢复或原来的消息,如此生成的密文对该消息提供认证服务。
数字签名应满足的要求:
 收方能够确认或证实发方的签名,但不能伪造,简记为R1-条件
 发方发出签名的消息给收方后,就不能再否认他所签发的消息,简记为S-条件
 收方对已收到的签名消息不能否认,即有收报认证,简记作R2-条件
 第三者可以确认收发双方之间的消息传送,但不能伪造这一过程,简记T-条件

三、VPN技术

 VPN(Virtual Private Network,虚拟专用网),是一种利用公共网络来构建的私人专用网络技术,用于构建VPN的公共网络包括Internet、帧中继、ATM等。
 廉价的网络接入
 严格的用户认证
 高强度的数据保密

3.1 VPN的组网方式

远程访问虚拟专用网(Access VPN)、企业内部虚拟专用网(Intranet VPN)和企业扩展虚拟专用网(Extranet VPN),这三种类型的VPN分别与传统的远程访问网络、企业内部的Intranet以及企业网和相关合作伙伴的企业网所构成的Extranet相对应。

3.2 VPN的体系结构

 网络服务商提供的VPN
 基于防火墙的VPN
 基于黑匣的VPN

3.3 VPN的关键技术

隧道技术

 点到点隧道协议—PPTP和第二层隧道协议—L2TP
 第三层隧道协议-GRE和IPSec协议

安全技术

 加解密技术
 身份认证技术
 QoS技术

3.4 IPSec VPN

IPSec VPN是指采用IPSec协议来实现远程接入的一种VPN技术,IPSec全称为Internet Protocol Security,是由Internet Engineering Task Force (IETF)于1998年11月公布的IP安全标准,其目标是为IPv4和IPv6提供透明的安全服务定义的安全标准框架,用以提供公用和专用网络的端对端加密和验证服务。

图3-4

IPSec 隧道技术–基础实验配置,请访问:
https://jan16.blog.csdn.net/article/details/116135080


作者: 何嘉愉
排版: 胖虎
初审: 正山小种
复审: 二月二

更多视频课程请访问 “CSDN 正月十六工作室讲师学院首页

以上是关于Virtual Private Network(虚拟专用网络)详解的主要内容,如果未能解决你的问题,请参考以下文章

virtual成员函数

C++虚函数

virtual这个关键字有啥用

C# 抽象方法和虚方法的区别

C++对象内存模型2 (虚函数,虚指针,虚函数表)

C++ 虚函数(virtual) 和纯虚函数(pure virtual) 的区别