IPSEC是一组协议集合,它为IP数据报提供高质量的、可互操作的、基于密码学的安全性。在特定的通讯双方之间的IP层通过加密和数据源验证的方式,保证数据报在网络上传输的私有性、完整性、真实性和防重放性。IPSEC规定了如何在对等网络之间选择安全协议、确定安全算法和密钥交换,向上提供了控制访问、数据源验证、数据加密等网络安全服务。
特点: 1、OS操作系统 windows和 linux都可实现IPSEC的功能
2、设备实现 cisco 和华为设置都支持IPSEC的功能
3、协议集合 IPSEC通过两种安全协议AH(认证头)、ESP(封装安全载荷)实现IPSEC的四个功能 为简化IPSEC的使用和管理,通过密钥交换 IKE(ISAKMP/OAKLEY)进行自动协商交换密钥、建立和维护安全联盟的服务。
4、采用的是三层协议 通过IP数据包进行传递的
四种安全服务
1、身份验证: 验证数据源,保证数据来源的安全性
通过域共享密钥pre-shared key(配置简单但不安全)、数字证书(配置复杂但是安全)、kerveros 和v5来实施
2、完整性: 对接受的数据进行验证,通过对数据摘要的对比判定报文是否被篡改 使用的是MD5/SHA方式
3、抗重播: 防止恶意用户通过重复发送捕获到的数据包进行攻击 每一个数据包都是有编号的 32位计数器共有32位的编号
4、保密性: 对用户数据进行加密处理,以密文的形式进行传输三种加密方式des、3des 和aes
IPsec AH:IPsec 认证头协议又叫头验证 协议号是51
IPsec 认证头协议是 IPsec 体系结构中的一种主要协议,它为 IP 数据报提供无连接完整性与数据源认证,并提供保护以避免重播情况。一旦建立安全连接,接收方就可能会选择后一种服务。 AH 尽可能为 IP 头和上层协议数据提供足够多的认证。但是,在传输过程中某些 IP 头字段会发生变化,且发送方无法预测当数据包到达接受端时此字段的值。 AH 并不能保护这种字段值。因此, AH 提供给 IP 头的保护有些是零碎的。AH 可被独立使用,或与 IP 封装安全负载(ESP)相结合使用,或通过使用隧道模式的嵌套方式。在通信主机与通信主机之间、通信安全网关与通信安全网关之间或安全网关与主机之间可以提供安全服务。 ESP 提供了相同的安全服务并提供了一种保密性(加密)服务,而 ESP 与 AH 各自提供的认证其根本区别在于它们的覆盖范围。特别地,不是由 ESP 封装的 IP 头字段则不受 ESP 保护。
AH有三种种功能:
1、身份验证 pre-shared key、数字证书、kerveros 和v5
2、完整性 MD5 SHA
3、抗重播 编号 32位计数器
AH不支持加密在传输模式下不安全
AH不支持NAT,ESP支持NAT
进入NAT之后新的IP头部会变,做完整校验的时候数据和MD5的值不同,就会被当作不信任的的数据丢弃掉,而ESP的完整校验范围不包含IP头标,所以在进入隧道之后没有影响,下面是对数据进行AH和ESP认证的原理图
IPSEC ESP封装安全载荷 协议号50
IPsec ESP 通过加密需要保护的数据以及在 IPsec ESP 的数据部分放置这些加密的数据来提供机密性和完整性。根据用户安全要求,这个机制既可以用于加密一个传输层的段(如:TCP、UDP、ICMP、IGMP),也可以用于加密一整个的 IP 数据报。封装受保护数据是非常必要的,这样就可以为整个原始数据报提供机密性。
ESP 头可以放置在 IP 头之后、上层协议头之前 (传送层),或者在被封装的 IP 头之前 (隧道模式)。IANA 分配给 ESP 一个协议数值 50,在 ESP 头前的协议头总是在“next head”字段(IPv6)或“协议”(IPv4)字段里包含该值 50。ESP 包含一个非加密协议头,后面是加密数据。该加密数据既包括了受保护的 ESP 头字段也包括了受保护的用户数据,这个用户数据可以是整个 IP 数据报,也可以是 IP 的上层协议帧(如:TCP 或 UDP)。
ESP 提供机密性、数据源认证、无连接的完整性、抗重播服务(一种部分序列完整性的形式) 和有限信息流机密性。所提供服务集由安全连接(SA)建立时选择的选项和实施的布置来决定,机密性的选择与所有其他服务相独立。但是,使用机密性服务而不带有完整性/认证服务(在 ESP 或者单独在 AH 中)可能使传输受到某种形式的攻击以破坏机密性服务。数据源验证和无连接的完整性是相互关联的服务,它们作为一个选项与机密性 (可选择的)结合提供给用户。只有选择数据源认证时才可以选择抗重播服务,由接收方单独决定抗重播服务的选择。
ESP的四种服务
1、身份验证 pre-shared key、数字证书、kerveros 和v5
2、完整性 MD5、SHA
3、抗重播 编号(32位计数器)
4、保密性 des /3des/ aes
我们还需要了解的知识点
密钥管理协议(IKE):一种混合型协议,由Internet 安全联盟(SA)和密钥管理协议(ISAKMP)这两种密钥交换协议组成。IKE 用于协商AH 和ESP所使用的密码算法,并将算法所需的必备密钥放到恰当位置。
安全联盟SA
安全联盟 SA,记录每条 IP安全通路的策略和策略参数。安全联盟是 IPSec 的基础, 是通信双方建立的一种协定,决定了用来保护数据包的协议、转码方式、密钥以及密钥有效期等。AH和 ESP都要用到安全联盟,IKE的一个主要功能就是建立和维护安全联盟。
IPSec 在两个端点之间提供安全通信,两个端点被称为IPSec ISAKMP 网关。安全联盟(简称为SA)是IPSec 的基础,也是IPSec 的本质。SA 是通信对等体间对某些要素的约定,例如使用哪种协议、协议的操作模式、加密算法(DES、3DES、AES-128、AES-192 和AES-256)、特定流中保护数据的共享密钥以及SA 的生存周期等。
安全联盟是单向的,在两个对等体之间的双向通信,最少需要两个安全联盟来分别对两个方向的数据流进行安全保护。
SA 建立方式
建立安全联盟的方式有两种,一种是手工方式(Manual),一种是IKE 自动协商(ISAKMP)方式。
手工方式配置比较复杂,创建安全联盟所需的全部信息都必须手工配置,而且IPSec 的一些高级特性(例如定时更新密钥)不能被支持,但优点是可以不依赖IKE而单独实现IPSec 功能。该方式适用于当与之进行通信的对等体设备数量较少的情况,或是在小型静态环境中。IKE 自动协商方式相对比较简单,只需要配置好IKE 协商安全策略的信息,由IKE 自动协商来创建和维护安全联盟。该方式适用于中、大型的动态网络环境中。
该方式建立SA 的过程分两个阶段。第一阶段,协商创建一个通信信道(ISAKMP SA),并对该信道进行认证,为双方进一步的IKE 通信提供机密性、数据完整性以及数据源认证服务;第二阶段,使用已建立的ISAKMP SA 建立IPsec SA。分两个阶段来完成这些服务有助于提高密钥交换的速度。
第一阶段SA
第一阶段SA 为建立信道而进行的安全联盟。第一阶段协商的步骤是:
1.、参数配置
认证方法:选择预共享密钥或数字证书认证
2、策略协商。包括:
加密算法:选择DES、3DES、AES-128、AES-192 或AES-256
hash 算法:选择MD5 或SHA
3、DH 交换。虽然名为“密钥交换”,但事实上在任何时候,两台通信主机之间都不会交换真正的密钥,它们之间交换的只是一些DH 算法生成共享密钥所需要的基本材料信息。DH 交换,可以是公开的,也可以受保护。在彼此交换过密钥生成“材料”后,两端主机可以各自生成出完全一样的共享“主密钥”,保护紧接其后的认证过程。
4、认证。DH 交换需要得到进一步认证,如果认证不成功,通信将无法继续下去。“主密钥”结合在第一步中确定的协商算法,对通信实体和通信信道进行认证。在这一步中,整个待认证的实体载荷,包括实体类型、端口号和协议,均由前一步生成的“主密钥”提供机密性和完整性保证。
工作模式
1、传输方式(一般在局域网内部) 不产生新ip头
隧道(tunnel)模式:用户的整个IP数据包被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被封装在一个新的IP数据包中。通常,隧道模式应用在两个安全网关之间的通讯。
2、隧道方式 产生新ip头
传输(transport)模式:只是传输层数据被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被放置在原IP包头后面。通常,传输模式应用在两台主机之间的通讯,或一台主机和一个安全网关之间的通讯。定义了一个通用格式。
可实现的设备华为的路由器和防火墙
Step1:定义被保护的数据流(acl)
Step2:定义安全提议
①IPSec工作方式选择:transport(传输方式)/tunnel(隧道方式)【默认】
②选择安全协议类型:AH(认证头)/ESP(封装安全载荷)
③在选择的协议类型下选择相应的加密算法和认证算法。
AH----> authentication-algorithm MD5/SHA1
ESP---->authentication-algorithm MD5/SHA1
----->encryption-algorithm DES/3DES/AES
Step3:定义安全策略(安全策略组) ------>实现acl和安全提议的绑定
Step4: 接口应用安全策略 ----->在接口上应用策略
配置如下
测试结果