赞
踩
早期的网络并不像现在这样,使用者大部分都是科学家并且一般是组织内部成员进行通信,所以在设计之初并没有考虑其安全性。但对于现在的网络,保障通信安全是非常重要的,而IPSec协议簇可以保障网络层的安全性。
**IPSec是一组基于网络层的应用密码学的安全通信协议簇。**它是VPN中常用的一种技术。
设计目标:为IPv4和IPv6提供客户操作的、高质量的、基于密码学的安全保护。
功能:工作在网络层,提供身份认证、机密性、完整性三个安全服务,并防止重放攻击和提供有限通信流机密性保护。
IP协议是唯一一个由所有高层协议共享的协议。在IP层实现安全可以为上层应用提供安全保障,各种应用程序可共享IP层提供的安全服务和密钥管理,不必设计自己的安全机制,减少密钥协商的开销,有利于降低安全漏洞产生的可能。
IPSec有四种典型应用:
IPSec VPN体系结构如下图:
IPSec工作模式分为两种:
传输模式将IPSec协议头插入到原IP头部与传输层头部之间,只对有效载荷进行加密或认证。
即使在子网内部中的其他用户也不能理解上面拓扑中两台主机之间的通信内容。
由于每个需要实验传输模式的 主机都必须安装并实现IPsec协议,因此不能实现对端用户的透明服务。用户为了获得IPsec提供的安全服务,必须消耗内存、花费处理时间。
由于传输模式仅对有效载荷进行保护,而对于原IP包头部不会进行修改(缺乏保护),所以会暴露内网拓扑结构。
隧道模式会创建新的IP包头部,并把原来的部分都当作有效载荷封装。
如此,子网内部所有用户都可以享受网关提供的安全保护,不会暴露内网拓扑结构,而且主机可以使用私有IP地址。
但子网内部以明文方式进行,无法控制内部发生的安全性问题。而且,由于IPSec主要集中在网关上(解封装更换IP头部等),增加了网关的负担,容易造成通信瓶颈。
上图不讨论所使用的协议,示意图是抽象的。
实际来讲,对于ESP协议,上图的数据包还包含一个ESP尾部,这个请看下文。
工作原理是在每个数据包上添加一个身份验证报头。此报头包含一个带密钥的hash散列,此hash散列在整个数据包中计算,因此对数据的任何更改将致使散列无效,这样就提供了完整性保护。
AH协议对整个数据包进行验证,但本身不提供任何形式加密。
在计算认证数据时,AH会把前面的IP首部中的部分字段也包含在内。必须保证计算认证数据时,输入在传输中不变,或者变化但可以预测。变化的字段不考虑,不变的字段加入,变化但可预测的的字段则使用预测到的、到达目的端后变化的值。
AH协议下的IPSec头部为AH头部,其结构如下图。
处理过程主要讨论设备在拿到一个包的时候,对于外出和进入时的数据包的处理。
传输流程主要关注数据包在网络中的传递和处理数据包的设备。而这个设备,其处置数据包的方式细节为上文中的处理过程。
在传输模式下(通常P2P),数据包格式如下:
处理流程如下图所示:
隧道模式数据包格式如下:
其传输流程如下图:
AH协议不提供加密。而ESP协议提供数据完整性、数据源发认证、抗重放攻击、机密性和有限的传输流机密性。
报文内容机密性保护通过密码算法加密数据包相关部分实现;流机密性保护通过隧道模式下的机密性保护范围提供。
在使用ESP时,IPSec头部为ESP头,与AH不同的是,ESP会在数据(有效载荷)后面添加一个ESP尾。
我们来看下使用ESP协议的IP数据包除去IP头部以后的部分(注意,这里不仅仅是ESP头部,之所以这样写是因为ESP会对数据部分进行填充并且添加尾部)
传输模式下的包格式:
ESP头部由SPI和序列号组成,尾部由填充项、填充项长度和下一个头字段组成,并标明了数据包被加密和认证的部分。ESP不对整个IP包进行认证。
AH和ESP同时使用的时候,AH包头在前,ESP头部在后,并且数据部分后面有个ESP尾部和ESP认证。
在处理的时候,按照传输模式或者隧道模式下的各协议约定来进行即可。比如AH协议几乎是认证整个数据包,那就把ESP的部分看为数据部分,然后到处理ESP的时候,再按照ESP协议的处理流程来。
**安全策略(SP)**是针对安全需求给出的一系列解决方案,它决定了对什么样的通信实施安全保护,以及提供何种安全保护。
安全策略表示:
安全策略的管理:
安全策略的要素:
IPSec规定可以使用以下元素描述通信特征
因此在SPD中对于SP的属性就有如下图所示几种:
安全参数索引SPI唯一标识SA,在AH和ESP头中传输,因此IPSec数据包的接收方很容易识别出SPI,组合成三元组来搜索SAD,以确定与该数据包相关联的SA。
安全关联库(SAD)维护了IPSec协议用来保障数据保安全的SA记录。每个SA都在SAD中有一条记录相对应。对于外出处理,应在SPD中查找指向SAD中SA的指针,如SA未建立,则应激活IKE建立SA,并同SPD和SAD的记录关联起来。SAD通过Hash表来构造。
SAD的查找是通过一个三元组(SAID):协议、目的地址、SPI来进行的,三元组标识了唯一的SA。通过对SAID的散列找到SA头,然后再进行详细匹配找到相应的SA。
外出IP分组:
进入IP分组:
IKE( Internet Key Exchange ,RFC2409):因特网密钥交换协议,是一个以受保护的方式动态协商和维护SA的协议。
IKE协商分为两个阶段:
IKE定义了四种模式:
IKE使用D-H交换生成共享的会话密钥,通信双方可利用新群模式协商如何使用一个新的D-H群。
IKE功能如下:
SA协商是IKE协商的一项核心内容,它规定的SA属性包括加密算法、散列算法、认证方法、D-H群信息、伪随机函数、群描述、群类型、生命期类型、生命期以及密钥长度。
属性名 | 标识 | 取值 | 含义 |
---|---|---|---|
加密算法 | 1 | 1 | DES-CBC |
2 | IDEA-CBC | ||
3 | Blowfish-CBC | ||
4 | RC5-R16-B64-CBC | ||
5 | 3DES-CBC | ||
6 | CAST-CBC | ||
7-65000 | 保留 | ||
65001-65535 | 私有使用 |
群相关属性:
IKE与定义群:
MODP的768Bits群是必须实现的,它和EC2N的155Bits群为密钥交换提供了强度类似的安全保护。
伪随机函数PRF以秘密信息和其他信息作为输入,并产生随机的比特流。
IKE使用PRF产生以下四种秘密信息来对数据进行验证和保护
SKEYID的生成方式取决于认证方法,其他三种则以SKEYID为基础进行推导,与认证方法无关。
其中PRF是伪随机函数,gxy是D-H交换中的共享秘密,CKY是Cookie,0,1,2分别是字符“0”、 “1” 、“2”
如果不协商PRF,则默认使用HMAC,其中的散列算法使用通信双方协商SA时所协定的算法。
IKE的认证方法直接影响了协商报文的内容和密钥生成的输入。
IKE定义了四种认证方法:
我们主要讨论预共享密钥认证主模式交换:
由于Cisco Packet Tracer功能不完善,此处使用PNET模拟器加载Cisco IOS镜像来进行实验。
对于R1路由器:
我们配置回环接口loopback0来模拟PC,地址为192.168.1.1/24
它的e0/0接口为192.168.10.1/24
对于R2路由器:
我们配置回环接口loopback0来模拟PC,地址为192.168.2.1/24
它的e0/0接口为192.168.20.1/24
我们故意使两个e0/0不在同网段下,来模拟经过多个网络的情况。(因为这种情况下需要开启动态路由或者配置静态路由)
我们首先配置好网络环境并确保能够Ping通
对于路由器R1
en
conf t
int lo 0
ip addr 192.168.1.1 255.255.255.0
int e0/0
ip addr 192.168.10.1 255.255.255.0
no shut
exit
配置默认路由,流量都走e0/0:
ip route 0.0.0.0 0.0.0.0 e0/0
对于R2同理
en
conf t
int lo 0
ip addr 192.168.2.1 255.255.255.0
int e0/0
ip addr 192.168.20.1 255.255.255.0
no shut
exit
ip route 0.0.0.0 0.0.0.0 e0/0
前半部分R1与R2相同:
定义策略
crypto isakmp policy 1
配置加密算法为3DES
encry 3des
hash算法为MD5
hash md5
验证方式为预共享密钥
auth pre-share
组值为5
group 5
配置lifetime,然后回到config模式下
lifetime 120
exit
下面R1和R2在地址配置方面有些不同:
R1,配置密钥为cisco
,指定地址为192.168.20.1
cry isa key 0 cisco addr 192.168.20.1
R2类似,只不过地址为192.168.10.1
cry isa key 0 cisco addr 192.168.10.1
定义IP数据的保护策略,主要是ESP还是AH、加密算法、验证算法、传输模式还是隧道模式,以及被IPSec保护的数据流。
我们加密算法使用3DES,并且认证使用SHA哈希的HMAC,并设置为隧道模式,然后保护192.168.1.1/24
与192.168.2.1/24
通信的数据
对于R1
cry ipsec tran IPSEC esp-3des esp-sha-hmac
mode tunnel
exit
ac 100 per ip host 192.168.1.1 host 192.168.2.1
cry map MAP 1 ipsec-isa
设置对端,并匹配第二阶段的IPSec策略
set peer 192.168.20.1
set tran IPSEC
match addr 100
对于R2同理:
cry ipsec tran IPSEC esp-3des esp-sha-hmac
mode tunnel
exit
ac 100 per ip host 192.168.2.1 host 192.168.1.1
cry map MAP 1 ipsec-isa
set peer 192.168.10.1
set tran IPSEC
match addr 100
配置接口MAP,R1与R2一样都是e0/0
int e0/0
crypto map MAP
exit
特权模式下查看isakmp SA
show crypto isakmp sa
特权模式下查看ipsec SA
show crypto ipsec sa
PNET提供内置Wireshark可以很方便的进行抓包,我们对R1的e0/0抓包
开启抓包后在R1控制台特权模式下使用192.168.1.1
地址去ping R2的192.168.2.1
ping 192.168.2.1 source 192.168.1.1
wireshark窗口可看到出现ESP协议的包
IPsec协议族中IKE(Internet Key Exchange)是一种基于ISAKMP的协议,它为建立IPSec安全通信隧道提供了一种无痕密钥交换的机制。简单来说,IKE就是ISAKMP的扩展,为ISAKMP提供了更加高效、灵活和安全的密钥协商机制。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。