ipsec ikev1 从理论介绍到报文分析

IKEv1是IPSec协议族中的关键部分,负责安全通道的建立。协议分为两个阶段,第一阶段通过主模式或野蛮模式建立IKESA,确保后续协商安全。第二阶段建立IPSECSA,实现数据安全传输。主模式包含三次双向交换,野蛮模式则更快捷。IPSECSA的快速模式用于协商加密算法、认证算法等参数,建立双方安全关联。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一章IKEv1 理论基础

1.1 概要

  1. IKE是一个混合型协议,主要由OakleySKEMEISAKMP三部分组成。ISAKMPInternet安全联盟和密钥管理协议)定义了消息交换的体系结构,包含两个IPSEC对等体间分组形式和状态转变,是基于UDP的应用层协议,为IPSec提供了自动协商密钥、建立IPSec安全联盟的服务。
  2. 采用IKEv1协商安全联通主要分为两个阶段:

第一阶段,通信双方协商和建立IKE协议本身使用的安全通道,即建立一个IKE SA

第二阶段,利用第一阶段已通过认证和安全保护的安全通道,建立一对用于数据安全传输的IPSEC安全通道(IPSEC SA

https://i-blog.csdnimg.cn/blog_migrate/d614e6a1060c5102c939d73dc3f2064b.png

  1. IKEv1协商阶段1的目的是建立IKE SAIKE SA建立后对等体间的所有ISAKMP消息都将通过加密和验证,这条安全通道可以保证IKEv1第二阶段的协商能够安全进行。

IKEv1协商第一阶段支持两种协商模式:主模式(Main Mode)和野蛮模式(Aggressive Mode)。

IKEv1阶段1中主模式与野蛮模式的报文对比:

 

  1. IPSEC使用的认证算法和加密算法,身份认证方法

1)三种认证算法:MD5,SHA-1,SHA-2

2)三种加密算法:DES,3DES,AES

3)预共享密钥,数字证书

1.2 IKE SA介绍

第一种模式:

主模式包含三次双向交换,用到了六条ISAKMP信息。这三次交换分别是:

  1. 消息①和②用于提议交换,发起一个或多个IKE安全提议,响应方查找最先匹配的IKE安全提议,并将这个IKE安全提议回应给发起方。匹配的原则为协商双方具有相同的加密算法、认证算法、认证方法和Diffie-Hellman组标识。
  2. 消息③和④用于密钥信息交换,双方交换Diffie-Hellman公共值和nonce值,用于IKE SA的认证和加密密钥在这个阶段产生。
  3. 消息⑤和⑥用于身份和认证信息交换(双方使用生成的密钥发送信息),双方进行身份认证和对整个主模式交换内容的认证。

第二种模式:

野蛮模式时IKEv1阶段1的协商过程:

  1. 网关A发送ISAKMP消息,携带建立IKE SA所使用的参数、与密钥生成相关的信息和身份验证信息。
  2. 网关B对收到的第一个数据包进行确认,查找并返回匹配的参数、密钥生成信息和身份验证信息。
  3. 网关A回应验证结果,并建立IKE SA。

1.3 IPSEC SA 介绍

  1. 快速模式协商的参数包括(封装模式、安全协议、加密算法、认证算法)

快速模式共有3条消息完成双方IPSec SA的建立。

  1. 消息1发送本端的安全参数和身份认证信息。
  2. 消息2响应消息1,发送响应方的安全参数和身份认证信息并生成新的密钥。
  3. 消息3响应消息2,确认与响应方可以通信,协商结束。

传输模式下报文封装:

1.4 IPSEC报文分析

第一阶段:主模式

ISAKMP报文①

发起端协商SA,使用的是UDP协议,端口号是500,上层协议是ISAKMP。从报文中可以看到发起端提供了自己的cookie值,使用的是IKEv1协议,交换类型为主模式,发起方对响应方发起了四种不同的提案。

ISAKMP报文②

响应端收到发送端发送的加密套件后,对比自己是否有相对应的加密套件,如果有就使用和发送端相同的加密套件加密数据,把自己的cookie值和选择好的加密套件发送给发送端;如果没有相同加密套件则IKE建立失败响应。

从以上报文中看出,响应方发送确认的安全提议,生命周期28800秒,加密算法为AES,哈希算法为SHA,身份认证方法使用预共享秘钥认证,并且使用1024bit的DH组。

ISAKMP报文③

发送端生成随机数和DH公共值。向响应方发送自己的DH公共值和Nonce随机数。让响应方用于生成加密时所需要的Key值。

在ISAKMP报文①和报文②中协商的算法需要双方协商一个相同的对称密钥,但密钥直接在公共网络上传输并不安全,在报文③中传输的都是密钥生成的材料,响应方接收到这些生成材料后在本地生成key。

ISAKMP报文④

响应端生成随机数和DH公共值。向发起方发送自己的DH公共值和Nonce随机数。让发起方用于生成加密时所需要的Key值

 

报文③和报文④ 中发起方和响应方在本地计算生成key,第一次生成的Key称为种子密钥,将由此衍生出用于加密密钥,哈希密钥,身份认证密钥

ISAKMP报文⑤

 发起方发起身份验证,报文中带有认证的数据(预共享密钥或者数字签名)。由于包1和包2已经协商好了加密算法,包3和包4协商好了加密的KEY值,所以包5的消息被加密了。

ISAKMP报文⑥

响应端回应报文,同样发送认证的数据(预共享密钥或者数字证书),验证对方身份信息。报包6的数据同样使用包1、包2协商的算法和包3、包4协商的key值加密数据,所以包6的认证数据是加密的。双方身份验证通过后,IKE协商结束。

第二阶段 快速模式

ISAKMP报文⑦

发起方发起IPSEC SA的协商,需要协商的参数包括安全协议,传输模式,加密算法,哈希算法,感兴趣流,生存周期等。

从上述报文得知,发起者以及响应方的SPI值是由上阶段IKE协商时已经确定的,所以IPSec协商依然使用上阶段的SPI,交换类型为快速模式,由于数据加密所以无法查看。

ISAKMP报文⑧

响应方回包,同意包7发送的封装方式、加密算法、生存时间、感兴趣流等等,同时,也能起到确认收到对端消息的作用。由于数据加密所以无法查看

ISAKMP报文⑨

发送确认报文。其中包含一个HASH,其作用是确认接收方的消息以及证明发送方处于主动状态(表示发送方的第一条消息不是伪造的)。由于数据加密所以无法查看。

 

 

 

 

 

 

 

 

 

 

 

### 配置OpenWRT上的IPSec以实现内网通信 为了使OpenWRT设备能够通过IPSec协议安全地与其他网络节点进行通信,需要完成一系列特定的配置工作。这些操作不仅涉及基础的网络参数设定,还包括启用并调整IKEv2/IPsec服务的相关选项。 #### 启用IPSec支持 首先确认OpenWRT已安装必要的软件包来支持IPSec功能: ```bash opkg update && opkg install strongswan luci-app-ipsec-virtual ``` 上述命令会更新软件源列表,并安装StrongSwan作为IPSec的安全框架以及相应的LuCI界面插件用于简化后续配置过程[^1]。 #### 创建新的虚拟接口 进入Web管理页面后导航至`Network > Interfaces`部分点击`Add New Interface`按钮创建一个新的逻辑接口专门服务于IPSec连接需求。在此过程中指定该接口采用IKEv2/IPsec模式运作,并按照实际环境填写远程网关地址等必要信息。 #### 设置IKEv2/IPsec具体参数 继续前往`Services > IPsec`菜单下进一步细化IKEv2/IPsec的各项属性,比如预共享密钥(PSK),认证方式,加密算法的选择等等。确保两端设备间达成一致性的协商机制对于建立稳定可靠的隧道至关重要[^4]。 #### 修改防火墙规则允许流量穿越 最后一步是对现有防火墙策略做出适当修改以便让来自新创建的IPSec接口的数据流顺利进出而不受阻拦。这通常意味着要在`Network > Firewall`下的自定义规则里加入如下所示语句之一或全部视具体情况而定: ```bash iptables -A INPUT -m policy --dir in --pol ipsec -j ACCEPT iptables -A FORWARD -m policy --dir in --pol ipsec -j ACCEPT iptables -A OUTPUT -m policy --dir out --pol ipsec -j ACCEPT ``` 以上指令分别针对输入、转发和输出方向开放了经由IPSec封装后的数据报文通行权限,从而保障内部网络成员之间可以通过这条加密路径自由交换信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值