IPSec协议簇(含Cisco实验配置) | 您所在的位置:网站首页 › Ipsec协议族的作用 › IPSec协议簇(含Cisco实验配置) |
IPSec协议簇(含Cisco实验配置)
什么是IPSec
早期的网络并不像现在这样,使用者大部分都是科学家并且一般是组织内部成员进行通信,所以在设计之初并没有考虑其安全性。但对于现在的网络,保障通信安全是非常重要的,而IPSec协议簇可以保障网络层的安全性。 **IPSec是一组基于网络层的应用密码学的安全通信协议簇。**它是VPN中常用的一种技术。 设计目标:为IPv4和IPv6提供客户操作的、高质量的、基于密码学的安全保护。 功能:工作在网络层,提供身份认证、机密性、完整性三个安全服务,并防止重放攻击和提供有限通信流机密性保护。 IP协议是唯一一个由所有高层协议共享的协议。在IP层实现安全可以为上层应用提供安全保障,各种应用程序可共享IP层提供的安全服务和密钥管理,不必设计自己的安全机制,减少密钥协商的开销,有利于降低安全漏洞产生的可能。 IPSec有四种典型应用: 端到端安全基本的VPN支持保护移动用户访问内部网嵌套式隧道 IPSec架构IPSec VPN体系结构如下图: IPSec工作模式分为两种: 传输模式隧道模式 传输模式传输模式将IPSec协议头插入到原IP头部与传输层头部之间,只对有效载荷进行加密或认证。 即使在子网内部中的其他用户也不能理解上面拓扑中两台主机之间的通信内容。 由于每个需要实验传输模式的 主机都必须安装并实现IPsec协议,因此不能实现对端用户的透明服务。用户为了获得IPsec提供的安全服务,必须消耗内存、花费处理时间。 由于传输模式仅对有效载荷进行保护,而对于原IP包头部不会进行修改(缺乏保护),所以会暴露内网拓扑结构。 隧道模式隧道模式会创建新的IP包头部,并把原来的部分都当作有效载荷封装。 如此,子网内部所有用户都可以享受网关提供的安全保护,不会暴露内网拓扑结构,而且主机可以使用私有IP地址。 但子网内部以明文方式进行,无法控制内部发生的安全性问题。而且,由于IPSec主要集中在网关上(解封装更换IP头部等),增加了网关的负担,容易造成通信瓶颈。 注意上图不讨论所使用的协议,示意图是抽象的。 实际来讲,对于ESP协议,上图的数据包还包含一个ESP尾部,这个请看下文。 AH协议 工作原理工作原理是在每个数据包上添加一个身份验证报头。此报头包含一个带密钥的hash散列,此hash散列在整个数据包中计算,因此对数据的任何更改将致使散列无效,这样就提供了完整性保护。 AH协议对整个数据包进行验证,但本身不提供任何形式加密。 在计算认证数据时,AH会把前面的IP首部中的部分字段也包含在内。必须保证计算认证数据时,输入在传输中不变,或者变化但可以预测。变化的字段不考虑,不变的字段加入,变化但可预测的的字段则使用预测到的、到达目的端后变化的值。 AH协议下的IPSec头部为AH头部,其结构如下图。 处理过程主要讨论设备在拿到一个包的时候,对于外出和进入时的数据包的处理。 外出处理 检索SPD,查找应用于该数据包的策略:以选择符为索引查找对应的SA:SPD通过SPI指向SAD中的一个相应SA,从SA中得到相关安全参数;若SA尚未建立,则调用IKE协商一个SA,并将其连接到该SPD条目上。构造AH载荷:按照SA中给出的处理模式填充AH载荷的各个字段(复制IP头、计算载荷长度、填入SPI值、产生或增加序列号值、计算ICV并填入)为AH载荷添加IP头:传输模式添加原IP头;隧道模式构造新的IP头其他处理:重新计算外部IP头校验和;若分组长度大于MTU(Maximum Transmission Unit)则进行IP分段。 处理完的数据包交给数据链路层(传输模式)发送或IP层(隧道模式)重新路由。 进入处理 分段重组,检查MF位,若存在分段,则重组。查找对应的SA:使用外部IP头中的****作为索引检索SAD,以找到处理该分组的SA。若查找失败,则丢弃。抗重放处理:若启用了抗重放功能,则使用SA的抗重放窗口检查是否是重放包。若是重放,则丢弃。完整性检查:使用SA指定的MAC算法计算数据包的ICV,将它与认证数据字段中的值进行比较。若不匹配,则丢弃。嵌套处理:若是嵌套包则返回第二步,循环处理。检验策略的一致性。使用IP头(隧道模式中是内部头)中的选择符进入SPD查找一条与选择符匹配的策略,检查该策略与SA指向的SPD条目的安全策略是否一致;若不匹配则丢弃。 传输流程传输流程主要关注数据包在网络中的传递和处理数据包的设备。而这个设备,其处置数据包的方式细节为上文中的处理过程。 传输模式在传输模式下(通常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与安全策略数据库SPD 概念**安全策略(SP)**是针对安全需求给出的一系列解决方案,它决定了对什么样的通信实施安全保护,以及提供何种安全保护。 安全策略表示: 一般而言,不存在一个映射方式,可以将自然语言表达式无损的映射到形式语言表达式中。从基本流程上来说,IPSec安全策略管理需要提供一个人机接口,以安全管理员用尽可能自然的方式输入非形式化的安全策略表达式。安全策略通常以安全策略库(SPD)的形式表现出来,库中每条记录对应一个安全策略。安全策略的管理: 网络安全是非常复杂的领域,网络规模越大,描述如何保障安全的策略就越复杂。随着网络规模的扩大,必须集中管理安全策略。IPSec系统所使用的SPD一般保存在一个策略服务中。该服务器为域中的所有节点(主机和路由器)维护策略库。各节点可将策略拷贝得本地,也可使用轻目录访问协议(Lightweight Directory Access Protocol, LDAP)动态获取策略安全策略的要素: IPSec规定了两个策略组件:SPD和安全关联库(Security Association Database, SAD)对于外出数据报,必须先检索SPD,决定提供给它的安全服务。对进入数据报,也要检索SPD,判断为其提供的安全保护是否与策略规定的安全保护相符。SPD是有序的,每次查找的顺序应相同。 通信特征IPSec规定可以使用以下元素描述通信特征 目的IP地址源IP地址名字传输层协议源和目标端口数据敏感等级因此在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协商分为两个阶段: 阶段1:主要是协商安全策略、认证模式,以及所有的必须参数,在通信主体间创建IKE SA,用于保护阶段2的交换阶段2:l阶段2中,主要为IPSec和其他一些安全服务创建SA。IKE定义了四种模式: 阶段1提供主模式和野蛮模式阶段2提供快速模式和新群模式IKE使用D-H交换生成共享的会话密钥,通信双方可利用新群模式协商如何使用一个新的D-H群。 IKE功能如下: SA协商密钥生成身份认证SA协商是IKE协商的一项核心内容,它规定的SA属性包括加密算法、散列算法、认证方法、D-H群信息、伪随机函数、群描述、群类型、生命期类型、生命期以及密钥长度。 IKE加密算法 属性名标识取值含义加密算法11DES-CBC2IDEA-CBC3Blowfish-CBC4RC5-R16-B64-CBC53DES-CBC6CAST-CBC7-65000保留65001-65535私有使用 IKE群相关属性群相关属性: D-H群决定了在进行一次D-H交换时通信双方需要使用的参数是什么。IKE定义了4个具体的群,表示群属性的数字是指群号。对一个指定的群号,其对应的群参数是固定的。所以,当一方给出一个群号时,对方与其使用的参数相同。IKE与定义群: MODP群(模指数群):768Bits、1024BitsEC2N群:155Bits、185BitsMODP的768Bits群是必须实现的,它和EC2N的155Bits群为密钥交换提供了强度类似的安全保护。 伪随机函数PRF伪随机函数PRF以秘密信息和其他信息作为输入,并产生随机的比特流。 IKE使用PRF产生以下四种秘密信息来对数据进行验证和保护 SKEYID:用于推导其他秘密信息;SKEYID-d:用于衍生出IPSec报文加密、验证密钥;SKEYID-a: ISAKMP消息完整性验证密钥;SKEYID-e: ISAKMP消息加密密钥,用于数据加密。SKEYID的生成方式取决于认证方法,其他三种则以SKEYID为基础进行推导,与认证方法无关。 其中PRF是伪随机函数,gxy是D-H交换中的共享秘密,CKY是Cookie,0,1,2分别是字符“0”、 “1” 、“2” 如果不协商PRF,则默认使用HMAC,其中的散列算法使用通信双方协商SA时所协定的算法。 IKE认证方法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 isakmp协商配置前半部分R1与R2相同: 定义策略 crypto isakmp policy 1配置加密算法为3DES encry 3deshash算法为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.1R2类似,只不过地址为192.168.10.1 cry isa key 0 cisco addr 192.168.10.1 配置IPSec定义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.1wireshark窗口可看到出现ESP协议的包 IPsec协议族中IKE(Internet Key Exchange)是一种基于ISAKMP的协议,它为建立IPSec安全通信隧道提供了一种无痕密钥交换的机制。简单来说,IKE就是ISAKMP的扩展,为ISAKMP提供了更加高效、灵活和安全的密钥协商机制。 |
CopyRight 2018-2019 实验室设备网 版权所有 |