VPN与IPsec概述

更新时间:2023-10-02 08:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

虚拟专用网概述

虚拟专用网定义

虚拟专用网络允许远程通讯方,销售人员或企业分支机构使用Internet等公共互联网络的路由基础设施以安全的方式与位于企业局域网端的企业服务器建立连接。虚拟专用网络对用户端透明,用户好象使用一条专用线路在客户计算机和企业服务器之间建立点对点连接,进行数据的传输

[1]

。如图2.1所示

1

图1 虚拟专用网

虚拟专用网络技术同样支持企业通过Internet等公共互联网络与分支机构或其它公司建立连接,进行安全的通讯。这种跨越Internet建立的VPN连接逻辑上等同于两地之间使用广域网建立的连接。

虽然VPN通讯建立在公共互联网络的基础上,但是用户在使用VPN时感觉如同在使用专用网络进行通讯,所以得名虚拟专用网络。

使用VPN技术可以解决在当今远程通讯量日益增大,企业全球运作广泛分布的情况下,员工需要访问中央资源,企业相互之间必须进行及时和有效的通讯的问题。

有了对VPN含义的了解,理解IP VPN 就比较容易了,因为IP VPN其实就是VPN的一种类型。简单的讲,IP VPN就是一种基于IP的VPN。准确的讲,IP VPN是指利用IP基础设施(包括公用的Internet网或专用的IP骨干网等)实现专用广域网设备专线业务(专网直连,DDN等)的业务仿真。

IP VPN的“专用性”是相对于Internet而言的。Internet是一个开放的网络,而在IP VPN网络中,所有的信息都被限制在网络内部传送,不能将数据扩散到不安全或者是未授权的网络中去。当然,这不是要求IP VPN网络与外界完全隔离,而是说无论外界访问IP VPN网络,还是从IP VPN内部网络访问外部网络,都有很高的安全措施来保证安全性。

虚拟专用网的优势

与普通IP业务相比,IP VPN具有如下优势:

A.安全保障。虽然实现实现VPN的技术和方式有很多,但是所有的VPN均保证通过公用网络平台传输数据的专用性和安全性。在公用IP网络上建立一个逻辑的,点对点的连接,称之为隧道,利用了加密技术对经过隧道传输的数据进行加密,以保证数据仅被指定的发送者和接收者接收和了解,从而有效的保证了数据的私有性和安全性。

B.服务质量保证(QoS)。VPN网应当为企业数据提供不同等级的服务质量保证。不同的用户和业务对服务质量保证的要求差别也很大。所有网络应用(如移动办公用户,视频等)均要求网络根据需要提供不同等级的服务质量保证。在网络优化方面,由于广域网流量的不确定性使其带宽的利用率很低,在流量高峰时产生网络阻塞,使实时性要求高的数据得不到及时的发送;QoS通过流量预测与流量控制策略,可以按照优先级分配带宽资源,实现带宽管理,使得各类数据能够被合理的先后发送,及时送达,并且防止阻塞发生。

C.可扩充性和灵活性。VPN必须能够支持Internet的任何类型的数据流,方便增加新的节点,支持多种类型的传输媒介,可以满足同时传输的语音,图像和数据等新应用对高质量传输以及带宽增加的需求。

D.可管理性。从用户的角度和运营商的角度均可方便的进行管理,维护。在VPN管理方面,VPN要求企业将其网络管理功能从局域网无缝的延伸到公用网,甚至是客户和合作伙伴。虽然可以将一些次要的网络管理任务交给服务运营商去完成,企业自己仍需要完成许多网络管理任务。所以,一个完善的VPN管理系统是必不可少的。VPN管理的目标为:减小网络风险,具有高扩展性,经济性,高可靠性等优点。事实上,VPN管理主要包括安全管理,设备管理,配置管理,访问控制列表管理,QoS管理等内容。

E.低成本。VPN可以立即而且显著的降低成本。当使用Internet时,实际上只需付短途电话费,却收到了长途通信的效果。因此,借助ISP来建立VPN,就可以节省大量的通信费用。此外,移动用户通信的成本,租用线路成本,主要设备成本这些成本都会大量的减少,并且这些设备的安装和维护,都可以交给ISP去做。

VPN与因特网,帧中继等WAN技术的比较优势如表2.2所示。

表2 WAN技术比较 特点 存在的普遍性 成本 安全性 性能 服务质量保证 帧中继/ATM 低 中 高 高 好 因特网 高 低 低 中低 差 VPN 中 中 高 高 好

VPN的基本功能特征

任何?P VPN的实现都必须具有以下基本功能.

不透明包传输

这里,承载在VPN上的数据应该与IP骨干网没有任何关系。一方面,VPN用户数据可能是多种协议的;另一方面,用户所使用的IP地址与IP骨干网数据传输所使用的IP地址可能没有什么关系,特别是用户的IP网络可能使用非唯一的IP专用编址方案。不透明包传输意味着VPN的实施不应该对用户网络所使用的网络协议和编址方式做出任何限制。

数据的安全性

根据用户是否信任运营商以及用户数据的安全敏感程度,用户可以选择由运营商提供安全性保障,也可以选择由用户自己实施安全性保障。任何IP VPN都可以支持这两种实施方式。 QoS保证

除了保证通信的专有性外,建立在物理层或链路层基础之上的专用网技术也提供不同类型的QoS保证。租用线和拨号线都能够提供带宽和时延的保证,而ATM和FR的电路也能提供类似的QoS保证。

IP VPN在更广的范围采用之后,市场也一定需要这样的保证,以便能够保证端到端的应用透明性。IP VPN的QoS保证主要依赖于IP骨干网基础设施的相应能力,随着IP QoS技术的发展,VPN也必将利用这些手段使VPN系统能够具有QoS保证的能力。 隧道机制

根据前面讲的安全和QoS要求,可以发现VPN的实现必须通过某种类型的隧道机制,以便VPN的数据包格式以及编址能够与IP骨干网上的隧道互不相干。隧道使用了特定的格式,可以提供某种程度的数据安全保证,如IPSec。另外,这样的隧道机制可以随着IP数据流量管理机制的发展而发展。

IPSec协议

IPSec简介

IPSec的最佳理解是一套保护IP数据在不同地点间传输时的安全性的功能特性集。包含在VPN中的地点通常都要定义VPN的类型,地点既可以是一个终端客户机(如PC机),也可以是一个小型远程站点,大型分支机构站点,企业总部,数据中心,甚至是一个服务提供商,任意两个这样的地点组合在一起就确定了所用的VPN类型。例如,小型远程站点连接到企业总部所用的VPN就应该是站点互连VPN。

需要注意的是,IPSec只能保护IP层及以上(传输层和用户数据),IPSec无法将其服务扩展到数据链路层。如果需要保护数据链路层,那么可以使用链路加密技术,这类加密操作通常是在受信基础设施中完成的,该基础设施中的链路安全性是可以得到保证的,不过,由于互联网的中间链路不受端用户控制,因而这类加密技术无法应用于互联网。

IPSec的功能

通常如果VPN需要使用加密措施就被认为需要IPSec,实际上,加密或数据机密性属于IPSec的一个可选功能性(尽管被大量实施)。IPSec包括以下功能特性:

数据机密性

数据机密性(Data Confidentiality)指的是当数据在VPN的参与方之间通过IPSec VPN传送时保持数据的私密性。如前所述,大多数VPN都要穿越公用互联网,因而数据在传送过程中就有可能被截取和检查, 在实际应用中,任何数据在传送过程中都可能被检查,因而互联网属于不安全的传送媒介。

数据机密性利用加密机制来扰乱传送中的数据,除了真正的接收者之外,加密后的数据包很难被轻易的理解。使用加密机制时需要考虑加密算法的选择和密钥的分发方式,有关IPSec加密算法的内容将在后面详细进行介绍。

对 IPSec VPN来说,数据机密性或者加密并不是必需的。需要数据包在通过VPN进行传送时经常被加密,但是数据机密性对IPSec来说只是一个可选的功能特性。

数据完整性

数据完整性(Data Integrity)指的是确保数据在通过IPSec VPN进行传送的过程中没有被修改或者改变,数据完整性本身并不是提供数据机密性。数据完整性机制通常使用哈希(或称为散列)算法来检查两端点之间传送的数据包中的数据是否被修改,如果发现数据包被修改,那么就拒绝接受被修改的数据。 数据源认证

数据源验证(Data Origin Authentication)指的是验证IPSec VPN的源,该功能特性由VPN的每个端点来完成,以确保与其通信的的对端的身份。需要注意的是,数据源验证无法单独实现,必须依赖于数据完整性服务 防重放

防重放(Anti-Replay)指的是确保VPN中的数据没有被复制。这一点利用数据包中的序列号和接收端额滑动窗口来实现的,通过对比序列号和滑动窗口可以检测出迟到的数据包,这些迟到的数据包都被认为是重复的数据包。与数据机密性一样,防重放功能也属于IPSec的可选功能特性。

IPSec协议

IPSec包括以下三种协议,利用这三种协议就可以实现整个IPSec的架构: 3.3.1 IKE(Internet Key Exchange,互联网密钥交换)

IKE是一种协商和交换安全参数和认证密钥的体系架构。现在需要知道就是两个IPSec VPN端点之间存在多种安全选项,而且用于建立IPSec特性的安全参数协商功能由IKE来完成。

IKE还可以为IPSec VPN中的同步加密算法提供密钥交换功能,。与其他加密算法相比,同步算法的效率更高,也更易于实现硬件实现,但这类加密算法需要正确的密钥,而密钥交换机制由IKE来提供。

通过在IPSec连接的两端设备上配置加密密钥,可以在初始时就建立安全的IPSec连接,不过一方面,如果不能周期性地更改这些密钥,那么网络将非常容易遭受暴力密码破解攻击。但另一方面,如果需要每小时或每天手动更改IPSec密钥,那么也将是一件非常繁琐的工作,如果同时有几十条甚至几百条IPSec连接,那么以手工方式维护密钥将是一件梦魇。所以就需要IKE来动态解决更改IPSec参数和密钥的问题。

如前所述,IKE协议是一种动态更改IPSec参数和密钥的机制。IKE通过自动的密钥交换/更新机制来防止IPSec会话的密钥被攻击,从而使得IPSec具备良好的扩展性。IPSec可以在两个IPSec端点之间自动建立SA(Security Association,安全关联),其中,SA是两个对等体之间协商好的IPSec参数。 IKE使用其他协议来完成对等体验证和密钥工作。

1.ISAKMP----ISKAMP(Internet Security Association and Key Management Protocol,互联网安全关联和密钥管理协议)定义了建立,协商,修改和删除SA的整个过程,所有的参数协商都要有ISAKMP来完成,如头部验证和净和封装。ISAKMP可以实现对等体验证,但不提供密钥交换机制。

2.Okaley----Okaley协议利用了Diffie-Hellman算法来管理IPSec SA的密钥交换过程。Diffie-Hellman是一种密码协议,允许两个端点通过不安全的通道交换共享密钥。 IKE阶段

IKE协议/进程可以分为两个阶段,利用这两个阶段在两个IPSec端点之间创建一条安全的通信信道。IKE包括两个主要的强制性阶段和一个可选的第三阶段,这三个阶段分别为:

[4]

1.IKE阶段1是一个强制性阶段。阶段1将在IPSec对等体之间建立一个双向的SA,意味着终端设备之间的数据传送都要使用相同的密钥素材。阶段1还要执行对等体验证,以确认IPSec端点的身份。IKE阶段1在建立双向SA时可以采取两种模式:主模式和积极模式

1)IKE主模式

主模式由IPSec对等体之间交换6条报文组成,如果选用主模式,那么就不能使用积极模式,快速模式总是紧跟着主模式(快速模式将在后面介绍)。可以将主模式6条报文分为以下三对:

IPSec参数和安全策略----发起方发送一个或者多个建议,响应方选择一个合适的建议。

Diffie-Hellman公钥交换----在两个IPSec端点之间发送公钥。 ISAKMP会话验证----通信双方进行互相验证。 2)IKE积极模式

积极模式是主模式的简化版本,如果选择了积极模式,那么就不能使用主模式,快速模式也总是跟在积极模式之后。主模式的6条报文被简化为以下3个:

■发起方发送所有的数据,包括IPSec参数,安全策略和Diffie-Hellman公钥。

■响应方验证数据包,并回送参数建议,密钥素材和身份情况。 ■发起方验证数据包

2.IKE阶段1.5是一个可选的IKE阶段。阶段1.5提供了一个额外的验证层,被称为Xauth或者Extended Authentication(扩展验证)。IKE阶段1提供的IPSec验证功能是验证设备或者端点,以建立IPSec连接,但没有提供设备后的用户的验证机制。预先配置好的IPSec设备既可能被朋友使用,也可能被敌人利用,而Xauth就是要强制用户在使用IPSec连接之前必须接受验证。

3.IKE阶段2是第二个强制性的IKE阶段。IKE阶段2利用阶段1协商同意的参数在IPsec端点之间实现单向SA,使用单向SA也就意味着每个方向都要使用独立的密钥素材,阶段2使用IKE的快速模式来建立每个方向的单向SA。

3)IKE快速模式

快速模式应用于IKE阶段2,快速模式的协商过程由IKE阶段1中协商确定的IKE SA来保护的。不过这种选项无法用于主模式或者积极模式,因为主模式或者积极模式的功能是建立在第一个SA。快速模式协商SA,用于对经IPSec连接传送的数据进行加密,此外,还为这些SA管理密钥交换。 IKE的其他功能

到目前为止,已经介绍了IKE作为交换IPSec参数和密钥协议的相关内容,不过,IKE还可以提供建立和维护IPSec连接等其他重要功能。这些功能包括:

1.DPD(Dead Peer Detection,失效对等体检测):DPD功能是通过在IPSec对等体之间发送周期性的keeplive或者hello定时器来实现的。为了有效,定时器需要不停地重复,比如每隔10S,这样一来,通过检测到hello包丢失,就能很快地发现IPSec连接失效。需要注意的是,通过IPSec会话发送的DPD属于额外流量。

2.NAT穿越:NAT穿越解决了NAT/PAT(Network Address Translation/Port Address Translation,网络地址转化/端口地址交换)所带来的问题。PAT同时

转换IP地址和端口,目的是为了让多台“内部”设备能共享一个或几个“外部”地址。为了将一个端口号转换为另一个端口号,这些端口号必须在传送层头部可用,但是IPSec通常要加密三层以上的所述数据。

IKE阶段1和阶段2都要解决NAT穿越问题,在阶段1(快速模式之前),需要确定所涉及的IPSec连接路径上是否支持NAT穿越(NAT支持性)以及是否存在NAT(NAT存在性)。IKE阶段2(快速模式)确定IPSec对等体是否使用NAT穿越,NAT穿越的协商是通过已建立的快速模式SA来实现。

NAT穿越是在IPSec包的ESP头部之前插入一个UDP头部来实现的,由于这个新的传送层头部拥有未被加密的端口信息且被存放在PAT表中,因而可以成功地进行PAT转换。

3.模式配置:IKE的配置模式功能就是简单地将所有的IPSec属性推送到远程IPSec客户端,IPSec属性包括用于IPSec连接的IP地址,用于整个IPSec连接的DNS和NetBIOS名字服务器。由于可以将这些属性推送到IPSec客户端,因而可以大大的减少客户端上的配置工作量。

Xauth:IKE的扩展验证(Xauth)功能可以验证IPSec连接的用户。需要注意的是,IKE本身就提供的是设备的验证功能,而Xauth只是增加了一个额外的验证层,用户要想使用IPSec连接,还必须通过用户名/密码组合,CHAP(Challenage Handshake Authentication Protocol,挑战握手验证协议),OTP或者S/KEY(Secure Key,安全密钥)来进行身份验证。

其他IPSec协议

ESP

ESP[5]是唯一一种为IPSec提供数据机密性,数据完整性,数据源验证和可选的防重放功能特性的体系框架。ESP除了是唯一一个可以提供数据加密功能的IPSec协议之外,还可以提供前面所说的所有的IPSec功能特性。以下是IPSec ESP可用的加密方法:

1.DES(Data Encryption Standard,数据加密标准):是一种应用很广的老式信息加密方法;

2.3DES(Triple Data Encryption Standard,3重数据加密标准) 3.AES(Advanced Encryption Standard,高级加密标准)

AH

AH是一种为IPSec提供数据完整性,数据源验证和可选的防重放功能特性的体系框架,需要注意的是,AH并不提供数据机密性功能。AH虽然可以确保数据没有被修改或者篡改,但是无法保证数据在传送过程中没有被偷窥。因此,在网络上很少单独使用AH,一般都与ESP来配合使用,AH和ESP利用HMAC(Hash-based Message Authentication Code,基于哈希的报文验证码)来进行验证和完整性检查。HMAC哈希算法如表所示

表1哈希算法

哈希算法 输入 输出 被IPSec使用的是 MD5 SHA-1 长度可变 长度可变 128比特 160比特 128比特 前96比特 MD5和SHA-1(Secure Hash Algorithm,安全哈希算法)多使用共享秘密密钥来计算和验证报文认证值。HMAC的密码程度依赖于底层的哈希函数的特性,MD5和SHA-1将长度可变的输入变为定长的哈希值,区别在于所生成的哈希值的长度和强度的不同。虽然IPSec仅适用160比特SHA-1哈希值中的前96比特,但安全性仍然比MD5高(不过SHA-1的计算过程要慢于MD5)。 IPSec模式

IPSec定义的两种运行模式可以对原始的IP包提供不同的保护能力。需要注意的是,IPSec头部紧跟在IP头部之后,这是因为IPSec使用IP协议号来加以引用,这样一来,IPSec的加密和完整性服务只能位于IP头部之外。IPSec的两种运营模式分别是隧道模式和传送模式.[6] 传送模式

当仅仅简单的将IPSec头部插在IP包中(位于IP头部之后)时就被称为传送模式。在传送模式中,原始IP头部没有得到保护,始终暴露在外,而传送层及以上各层的数据都能得到IPSec的保护。换层意思理解,传送模式保护的是传送层及以上各层的数据,这样一来,当IPSec包穿越非受信网络时,包中的数据都是安全的(根据所选的IPSec服务),非受信网络中的设备只能看见IPSec通

信方的真的IP地址。 隧道模式

IPSec的另一种运行模式是隧道模式,在隧道模式中,包括原始IP头部在内的整个数据包都能得到保护,隧道模式将产生一个新的包含隧道端点(如路由器或者VPN集中器)IP地址的外部IP头部,暴露在外的只是隧道端点的IP地址,而不是位于隧道端点之后的实际设备的IP地址。两种模式的区别如图3.1所示。

图1 IPSec模式

IPSec头部

AH或者是ESP都是通过在原始的IP包上增加额外的头部来实现的[7],IPSec VPN使用AH或者ESP(或者两者,不过同时使用AH和ESP并没有带来什么特别的优势),ESPIPSec的所有功能特性,而AH则可以提供除了数据机密性之外的所有功能特性。AH和ESP都利用特殊的IP协议号来进行标识,使得它们成为一种传送层协议,AH的IP协议号为51,ESP的IP协议号为50。

根据AH和ESP头部所处的位置,我们可以知道它们所提供的IPSec功能特性(机密性,完整性)只能应用于AH和ESP头部之外的IP包。

AH主要负责验证2层头部之外的整个数据包。如果使用的是ESP认证,那么外层IP头部将无需进行认证。此外,需要注意的是,如果ESP同时执行加密和验证任务,那么将首先进行加密,然后再对加密后的内容和ESP头部进行验证。IPSec头部如图2所示。

图2 AH和ESP头部

对等体验证

从上面的描述我们可以知道,IPSec具有保护传送过程中的数据的能力,可以对数据进行加密以防止数据在传送过程中被窃取(数据机密性),可以确保数据在传送过程的途中没有被更改(数据完整性)。不过如果VPN端点不能确认对端VPN端点的可信度时这些功能都将毫无用处,因此,在数据传送过程中部署这些IPSec服务之前,必须验证IPSec VPN端点。

对等体验证的概念指的就是验证远程IPSec端点的可信度的,一共有5种方式可以验证IPSec对等体:

1.用户名和密码:必须预先在IPSec端点定义和配置用户名和密码,通常情况下,用户名和密码都是长期使用的。这种方式被认为是一种不是特别安全的验

证方式。因为一旦用户名/密码被攻击者获取或者猜出,那么攻击者就可以建立IPSec连接了。

2.OTP(One-Time Password,一次性密码):OTP一般是以PIN(Personal Identification Number,个人识别号)或TAN(Transaction Authentication Number,事务认证号)的方式来识别,这些号码只能用于一个IPSec实例的建立。这样一来,即使攻击者知道了旧的OTP,也无法建立一条新的IPSec实例连接。

3.生物测定:生物测定技术分心人的物理特征,比如指纹,手,眼睛的视网膜和虹膜,语音特征以及脸部特征。这些特征极难仿制,利用这些特征的组合就可以验证一个人,从而确认IPSec连接的对端通信者。

4.预共享密钥:预共享密钥的概念类似于用户名/密码,预共享密钥是在每个IPSec对等体预先配置了一个密钥(值),与用户名/密码相似,这种手工配置的信息必须保证绝对的安全性,如果攻击者获取了预共享密钥,那么也就可以建立IPSec连接。

5.数字证书:数字证书是一种非常常用的用来验证人和设备的方式,通常由受信的第三方CA(Certification Authority,认证中心)给设备发放数字证书。该证书只能用于所发放的设备,当需要验证该设备时,该设备会提交其证书,并经发放该证书的第三方CA进行查验,如果其他设备试图使用该证书,那么验证将失败。

加密算法

加密实质上就是一种将数学算法和密钥应用到数据上,以便让加密后的内容只能被有能力解密的人读取。理想情况下,加密后的数据只能被拥有正确密钥的人解密,因此密文(加密后的数据)的强度依赖于加密算法的复杂度以及用来加密数据的密钥长度。加密算法可以分为两种:同步加密算法和异步加密算法.

同步加密算法

同步加密算法也被称为秘密密钥加密技术,顾名思义,同步加密需要使用同一个秘密密钥来进行加密和解密,重点是保证秘密密钥的安全性,任何获得密钥的人都能解密加密后的信息。这种加密算法主要用于20世纪70年代中期,一般来说,同步加密算法在计算量上较易实现,通常用于大批量的加密需求。

当前常见的同步加密算法主要有DES,3DES和AES。

1.DES:密钥长度56比特,利用现代化的计算机可以在24小时之内攻破。 2.3DES:使用3个不同的56比特密钥(DES加密,DES解密,DES加密)来创建密文,目前还没有被攻破,但存在理论上的缺陷。

3.AES:是当前同步加密的选择,AES最初被称为Rijindael算法。AES和Rijndael都使用相同的加密算法,都支持128~256比特的密钥,差别在于AES的密钥长度按64比特进行递增,而Rijndale按32比特进行递增。AES是唯一一个被美国国家安全局应用在绝密网络中的公用同步加密算法。

异步加密算法

异步加密算法使用不同的密钥进行加密和解密,用于加密的密钥无法用于解密,加密密钥被称为公钥(Pubilc Key),而解密密钥则被称为私钥(Private Key)。公钥可以被广泛的分发,因为公钥只是用来加密消息,要想解密就必须拥有相关联的私钥。

对数字签名来说,这两种密钥的使用正好相反,私钥用来签署消息的哈希值,而公钥则用来机密和验证签名。与同步加密算法中使用的共享秘密密钥相似,无论你在哪种场合下,都要保护私钥的安全性。

RSA(根据设计者命名)是一种异步加密算法,也是第一个能够同时用于签名和加密的算法。RSA的密钥长度起点为1024比特,也可以更长(一般为1024的两倍),虽然并没有得到数学验证,但是由于分解超大素数非常困难,因此认为破解RSA密钥几乎是一件不可能的事情(这也是RSA加密系统的基本前提)。与同步加密算法不一样的是,异步加密算法需要耗费大量的计算时间,不适于大批量的加密工作。

综上所述,同步加密算法使用秘密密钥进行加密和解密,关键是要保证秘密密钥的安全性。而异步加密算法使用不同的密钥进行加密和解密,因而异步密钥交换算法可以用来安全的在非安全网络上传递共享秘密密钥,然后就可以利用该秘密密钥在同一个网络上采用同步加密算法对大批量的数据进行加密。

本文来源:https://www.bwwdw.com/article/cv5d.html

Top