这是所有IPSec 消息中携带的32 位值。 SPI、IP 目标地址和安全协议号组合起来形成一个三元组,唯一地标识特定的安全关联。如果手动配置安全关联,则必须手动指定SPI值。为了确保安全关联的唯一性,每个安全关联必须指定不同的SPI 值。使用IKE 协商生成安全关联时,SPI 是随机生成的。
兴趣流:
在IPsec中,具有相同源地址/掩码、相同目的地址/掩码以及上层协议的数据的集合称为数据流。数据流通常由访问控制列表(ACL) 定义,并且ACL 允许的所有数据包在逻辑上被视为一个数据流。为了便于理解,可以将数据流比作主机之间的TCP 连接。 IPsec可以对不同的数据流实施不同的安全保护,例如对每个数据流使用不同的安全协议、算法和密钥。
IKE(互联网密钥交换,互联网密钥交换协议):
用于动态建立SA。 SA 有生命周期。如果安全策略要求建立安全保密连接,但该连接没有SA,IPsec会立即发起IKE协商SA。
ISAKMP(互联网安全关联密钥管理协议,安全关联密钥管理协议):
定义了协商、建立、修改和删除SA的过程和报文格式。它只提供了一个通用框架,并没有定义任何具体的SA格式。它独立于IKE,可以与各种密钥交换协议一起使用。 IKE 使用ISAKMP 消息来协商和建立SA。
IPsec提供两种安全机制:认证和加密
需要建立IPsec隧道的两个实体之间的IKE协商分为两个阶段。
第一阶段:建立ISAKMP SA
协商ISAKMP SA 以确保协商第二阶段的安全(UDP 端口500)。
两种协商模式(二选一) :
主模式: 6 ISAKMP 消息交换 主动模式: 3 ISAKMP 消息交换消息内容
#留言格式
#实际抓包
Cookie:由通信双方用来验证ISAKMP 消息是否确实来自对方。对于SA 来说,cookie 是独一无二的。这意味着cookie在协商过程中不能被修改。 Cookie是用各实体的机密信息生成的,但不能通过Cookie向外传输。交换类型:表示消息所属的交换类型。通常是主模式或攻击模式。标志: 加密位(encryp):1 表示ISAKMP 标头后的所有有效负载均已加密,0 表示有效负载是清晰且未加密的。提交位(commit):用于确保发送受保护数据之前协商完成。第二阶段(Second Phase): IPsec SA协商:
协商通信密钥,对数据进行加密,提供数据安全保护。
只有快速模式:交换3条ISAKMP消息
# 完成协商流程
IPsec的两种安全机制工作协议:
提供隧道和安全两种模式,满足不同的网络结构需求
两个网关(IPsec 实体)GW1 和GW2 之间、GW1 内网192.168.100.0/24 子网和GW2 子网192.168.66.0/24 之间预计建立IPsec 隧道(兴趣流) )支持通过IPsec 隧道进行安全通信。
# 没有NAT 的网络
洽谈流程:
#协商过程中的消息交换
准备:
发送方和接收方必须首先计算自己的cookie(以防止重放和DOS 攻击)。这些cookie 用于识别各个协商交换消息。 RFC 建议对源和目标IP、源和目标端口、本地生成的随机数以及日期和时间进行哈希处理。事实上,cookie是用来交换信息的。与其他设备建立IPSEC 所需的连接信息不会缓存在路由器上,而是散列到cookie 值中。
留言1 2(建议):
消息1:发起方支持协商模式(主要或激进)以及所有支持的安全策略(5元组:加密算法、哈希算法、DH、认证方法、IKE SA生存期)。
消息2:接收方检查IKE策略消息并尝试在本地查找匹配的策略。找到后会有消息回复。
12条消息报错的可能原因:
对等路由不可用 加密iskmp 密钥未配置 第一阶段策略不匹配
消息3 4(密钥交换):
这两条消息用于交换DH公共信息和随机数。
当两个对等体根据DH 的公开信息计算出相等的密钥后,两个随机数连接预共享密钥以生成第一个skeyID。
然后根据SKEY__ID计算出其他一些skeyID。
skeyID_d—用于协商后续IPSEC SA加密所使用的密钥。 skeyID_a—为后续的IKE消息协商和IPSEC SA协商进行完整性检查(密钥在HMAC中)。 skeyID_e—后续的IKE消息协商和IPSEC SA协商将被加密。
56 条消息(ID 保护):
这两条消息供双方用来相互验证。此过程受skeyID_e 加密保护。
为了成功生成密钥,每个对等方必须找到彼此对应的预共享密钥。如果有大量连接的对等体,则每对对等体的两端都必须使用预共享密钥。 ISAKMP数据包的源IP用于查找对端对应的预共享密钥(由于ID尚未到达,因此它们首先使用HASH相互验证)。
HASH 身份验证组件: SKEYID_a、cookieA、cookieB、preshare_key、SA 有效负载、转换集、策略
消息6——接收方处理流程:
使用skeyID_e 加密消息。使用ID(源IP)通过查看共享密钥skeyID_a和preshare-key等来计算HASH。 4、对比56中报错的可能原因。信息。
crypto isakmp 密钥配置不正确
IPsec中一些关键名词
第2 阶段的目的是协商IPsec SA,并且只有一种模式:快速模式。快速模式协商受IKE SA 保护(即内容由IKE SA 密钥加密)。
消息78:
消息7:发送方发送包含HASH、IPSEC策略建议、NONCE和可选DH的消息。 IDHASH: 用于验证收件人完整性并重新验证对等方(必需)。与5-6阶段相同
IPSEC策略提案:包括安全协议、SPI、散列算法、隧道模式、IPSEC SA生命周期(必需)NONCE:用于防止重放攻击,也用作密码生成材料。仅在启用PFS 时使用。 ID: 描述为PFS 建立IPSEC SA 的地址、协议和端口(使用DH 交换,可选) 使用: PFS 后,数据加密KEY 在第二阶段重新DHed。该KEY 之前已与IKE 协商。 KEY 与此无关。只有在IPSEC SA 的生命周期结束后,新的KEY 才会再次变为DH(通常即使IPSec SA 过期或密钥超时,重新生成的数据加密密钥DH: 仍被IPSEC SA 实际使用(正常情况下,使用的密钥IPSEC阶段中的密钥是从skeyID_d导出的,并且密钥之间存在一定的关系,即使IPSEC SA超时,新的KEY仍然被保存。))与skeyID_d的具体关系)消息8:使用相同的消息响应。
消息78 期间可能出现错误的原因
IPsec 传输不匹配 兴趣流不对称
消息9:
发送方发送包含HASH 的第三条消息。这验证了收件人的消息并证明发件人是活跃的(表明发件人的原始消息不是伪造的)。
IPsec的秘钥协商过程
# 一方位于NAT 之后
两个网关(IPsec实体)GW1和GW2之间建立IPsec隧道,GW1内网的192.168.100.0/24子网和GW2的子网(感兴趣的流)预计穿越该IPsec隧道。启用安全通信。
GW2 位于NAT 后面。对于GW2,显示GW1的地址,但对于GW1,不显示GW2的地址。当GW2发起提议(消息1)时,GW1收到的提议的源地址是NAT地址(172.13。0.254转换后,源IP变为10.10.11.248。
注意:GW1显然不可能主动检测提议,只能被动等待GW1的提议来发起ISAKMP协商。
IPsec NAT 穿越(IKE 中的RFC 3947 NAT 穿越协商):
发送ISAKMAP消息1-4后(消息5-6之后,消息中的UDP端口为4500),NAT穿越协商完成。
与没有NAT 的网络相比,ESP 加密的内容添加了UDP 标头,如下所示:
不使用NAT 封装加密消息:
NAT : 后封装加密消息
配置流程示例:
1. 配置第1 阶段的所有IKE 版本、共享密码、支持的算法、支持的DH 组、密钥生命周期、本地ID 等。
# ISAKMP 参数设置(第一阶段)
2、配置第二阶段兴趣流,支持加密方式,支持DH组密钥协商。
# 第二阶段兴趣流和加密参数
#二期其他参数
3. 如果要对IPsec 对等点执行相同的配置(即GW 不知道NAT 后面的另一个对等点),请执行以下配置:进入选择的界面。
# 远程拨号访问服务器
4. 配置IP策略(ACL规则)。两条规则。一条规则适用于从本内网到对端内网的报文,还有一条规则用于从对端内网通过IPsec隧道接口发送到本内网的报文。
溢出规则:
# LAN 到隧道
流入规则:
# 到LAN 的隧道
5. 配置路由策略。发往对方的报文通过Tunnel接口转发,同时配置黑洞路由。
# 配置路由策略
在对端进行同样的配置。即完成IPsec隧道的配置。
原创文章,作者:小条,如若转载,请注明出处:https://www.sudun.com/ask/83269.html