网络安全篇 使用IPSec实现数据的机密性传输-29

目录

一、实验原理

二、实验拓扑

三、实验步骤

四、实验过程

总结


实验难度 3
实验复杂度 5

 

 

 

一、实验原理

    VPN的出现是为了实现远程的数据机密性传输,因为传统的以太网方式传输数据都是明文的,数据透露的风险极大,非常不安全。为了解决这个数据安全传输的问题,可以使用VPN(Virtual Private Network,虚拟私有网络)技术来实现。VPN有不同的划分标准,有按VPN的协议分类、按VPN的应用分类、按应用的设备类型分类、按实现的原理分类。

1.按VPN的协议分类:

(1)二层隧道协议:PPTP、L2TP

(2)三层隧道协议:IPSec

2.按VPN的应用分类:

(1)远程接入VPN:客户端到网关,使用公网作为骨干网在设备之间传输VPN数据流量;。

(2)内联网VPN:网关到网关,通过公司的网络架构连接来自同公司的资源。

(3)外联网VPN:连接另一个公司网络。

3.按应用的设备类型分类:

(1)路由器式VPN:在路由器上部署VPN,可以在路由器上添加VPN服务。

(2)交换机式VPN:在交换机上部署VPN,此种方式应用不多。

(3)防火墙式VPN:在防火墙上部署VPN。

4.按实现的原理分类:

(1)重叠VPN:此VPN需要用户自己建立端节点之间的VPN链路,主要包括:GRE、L2TP、IPSec等众多技术。

(2)对等VPN:由网络运营商在主干网上完成VPN通道的建立,主要包括MPLS、VPN技术。

5.IPSec的实现原理

IPSec是IP Security的缩写,即是IP安全协议。IPSec是安全协议集合(框架),它并非单独一个协议。它由两种协议组成:

5.1 IPSec协议

(1)AH协议(Authentication Header,认证报头):它可以同时提供数据完整性确认、数据来源确认、防重放等安全等的特性,但是它没有数据加密的功能,所以这个协议很少使用。

(2)ESP协议(Encasulated  Security Payload,封装安全负荷):它在AH的特性上多了一个数据加密特性,安全性高,使用广泛。

5.2 加密算法

IPSec使用加密算法来实现数据机密性,加密算法主要有两类,一类是对称加密算法(加密与解密密码是一样的),加密效率高,另一类为非对称加密算法(加密与解密是不一样的),加密效率低。IPSec使用三种对称加密算法来加密:

(1)DES(Data Encryption Standard):数据加密标准,它是一种传统的加密算法。

(2)3DES:三重数据加密标准,安全性比DES高。

(3)AES(Advanced Encryption Standard):高级加密标准,它的安全性比DES与3DES还高。

5.3 哈希算法

IPSec使用哈希算法来实现数据的完整性校验,在发送数据包之前,会把数据进行一个哈希过程,最后得到整个数据包的哈希值,对端设备收到数据包后会对数据进行哈希,得到的值会与数据包中的哈希值对比,若相同则表示数据没有被篡改,否则表示数据已经被篡改了。

(1)SHA:(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的机率很高。

(2)MD5:一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。它具有不可逆性、雪崩效应等特点。

5.4 工作模式

IPSec的工作模式有两种,一种为传输模式、另一种为隧道模式,但是IPSec协议有两种,它们相互搭配就有4种的可能了(传输模式下的AH或ESP、隧道模式下的AH或ESP)。

(1)传输模式:在IP报头与上层数据的中间插入一个IPSec报头(AH或ESP),在添加AH或ESP报头的前后IP报头不变,加密设备等于通信设备,它主要用于主机与主机之间的安全通信。

传输模式下的AH报头封装:

网络安全篇 使用IPSec实现数据的机密性传输-29_第1张图片

传输模式下的ESP报头封装:

网络安全篇 使用IPSec实现数据的机密性传输-29_第2张图片

(2)隧道模式:把原始 IP 数据包整个封装到一个新的 IP 数据包中,在新的 IP 头部和原始 IP 头部之间插入 ESP 头部,并且在最后面加上 ESP 尾部和 ESP 验证数据部分,加密设备不等于通信设备。

隧道模式下的AH报头封装:

网络安全篇 使用IPSec实现数据的机密性传输-29_第3张图片

隧道模式下的ESP报头封装:

网络安全篇 使用IPSec实现数据的机密性传输-29_第4张图片

注意:

1.在传输模式下,无论是使用ESP报头封装还是使用AH报头封装,它的IP报头信息是不变的,所以加密设备就是通信设备;

2.在隧道模式下,无论是使用ESP报头封装还是使用AH报头封装,它的IP报头都会使用外网的IP头,所以加密的设备不等于通信设备;

3.在同时存在两个报头的情况下,沿途的路由器只会检查最外面的IP报头,因为多了一个报头,所以目标地址可能与原来的不一致了;

4.传输模式只适用于主机到主机的点到点的加密通信,而隧道模式适用于任何场景,但是在PC到PC的场景还是建议使用传输模式。

 

5.5 IPSec建立安全连接(SA)过程

        若直接通过Internet传输密钥,无疑是不安全的,使用IKE(Internet Key Exchange)解决了在不安全的环境中安全建立或更新共享密钥的问题。

IPSec建立安全连接的过程就两个阶段:

第一阶段:协商创建一个通信信道(IKE SA),且对它进行验证,为双方进一步的IKE通信提供机密性、完整性以及消息源验证服务。

第二阶段:使用已经建立的IKE SA建立IPSec SA。

 

二、实验拓扑

网络安全篇 使用IPSec实现数据的机密性传输-29_第5张图片

三、实验步骤

1.搭建如图所示的网络拓扑图;

2.初始化设备,配置相应的IP地址,测试直连网络的连通性;

3.配置默认路由,使得R1与R3可以互通;

4.配置IPSec,实现数据的机密性传输,测试效果。

四、实验过程

1.搭建如图所示的网络拓扑图;

略。

2.初始化设备,配置相应的IP地址,测试直连网络的连通性;

略。

3.配置默认路由,使得R1与R3可以互通;

网络安全篇 使用IPSec实现数据的机密性传输-29_第6张图片

4.配置IPSec,实现数据的机密性传输,测试效果。

R1:

网络安全篇 使用IPSec实现数据的机密性传输-29_第7张图片

R3:

网络安全篇 使用IPSec实现数据的机密性传输-29_第8张图片

效果:

网络安全篇 使用IPSec实现数据的机密性传输-29_第9张图片

在默认情况下IPSec隧道是不启用的,需要我们发送相应的感兴趣数量触发一下

网络安全篇 使用IPSec实现数据的机密性传输-29_第10张图片

这里我们可以看到整个隧道都已经启用了,表示这个隧道已经正常加密数据了

网络安全篇 使用IPSec实现数据的机密性传输-29_第11张图片

我们可以看看第一个阶段的安全连接(SA)是否起来了,这里看到的效果就是正常的,状态是活动的

网络安全篇 使用IPSec实现数据的机密性传输-29_第12张图片

我们也可以看一下数据的加密情况

网络安全篇 使用IPSec实现数据的机密性传输-29_第13张图片

代码解释:

配置IKE策略

R1(config)#crypto isakmp policy 10   //创建安全策略,策略号为10
R1(config-isakmp)#encryption 3des   //使用3des算法进行加密数据
R1(config-isakmp)#hash md5    //使用MD5算法来验证数据的完整性
R1(config-isakmp)#authentication pre-share   //使用预共享方式来验证数据的来源是否可靠
R1(config-isakmp)#group 5     //使用加密因子5进行数据加密

R1(config)#crypto isakmp key 0 ccie address 200.1.1.1   //设置身份验证的密码为ccie,验证的远程IP地址为200.1.1.1

配置变换集
R1(config)#crypto ipsec transform-set myset esp-3des esp-md5    //配置IPSec策略(转换集)转换具体数据的策略,名字叫做myside 封装使用ESP。加密使用3des 完整性校验使用md5

R1(cfg-crypto-trans)#mode tunnel    //使用隧道模式来传输数据

配置感兴趣流
R1(config)#access-list 100 permit ip host 100.1.1.1 host 200.1.1.1  //配置感兴趣流

配置加密图
R1(config)#crypto map cmap 10 ipsec-isakmp  //配置加密图
% NOTE: This new crypto map will remain disabled until a peer
        and a valid access list have been configured.

R1(config-crypto-map)#match address 100   //匹配ACL的感兴趣流
R1(config-crypto-map)#set peer 200.1.1.1   //配置远程的IP地址邻居
R1(config-crypto-map)#set transform-set myset   //匹配相应的变换集

应用加密图
R1(config)#interface f0/0
R1(config-if)#crypto map cmap   //应用加密图在接口上
 

总结

本次的内容难度很大,对于新人来说,理解很吃力,但是没有别的办法,本章最起码要学会怎么配置IPSec,原理这些可以先不理解通透,有时间就研究一下,这些需要消耗时间事情急不来。这个原理本来就是打算单独写的,这样会很详细,但是考虑到内容过于详细就容易冗长了,所以就精简了一下,以实验配置为主。好了,我们在下一个章节再见,加油!

你可能感兴趣的:(网络安全,VPN,IPSec,数据机密性传输)