IPsec VPN之安全联盟

一、何为安全联盟

IPsec在两个端点建立安全通信,此时这两个端点被称为IPsec对等体。安全联盟,即SA,是指通信对等体之间对某些要素的约定,定义了两个对等体之间要用何种安全协议、IP报文的封装方式、加密和验证算法。SA是IPsec的基础,也是其本质。对等体之间通过IPsec安全传输数据的前提是在对等体之间成功建立SA。

SA是单向逻辑连接,一般情况下要成对建立,即入方向报文的SA和出方向报文的SA,为了在对等体A和对等体B之间建立IPSec隧道,需要建立两个安全联盟,其中,SA1规定了从对等体A发送到对等体B的数据采取的保护方式,SA2规定了从对等体B发送到对等体A的数据采取的保护方式。

SA的个数还与安全协议有关,若只使用AH或者ESP保护两个对等实体之间的流量,则每个对等实体有连个S,每个方向一个,若对等体同时使用了AH和ESP,那么每个对等实体需要4个,每个方向两个,分别对应AH和ESP。

IPsec为每一个SA打上了唯一的三元组标识,来区分不同方向的SA,三元组包括了SPI(安全参数索引)、目的IP地址和使用的安全协议号(AH或ESP),SPI是唯一标识SA而生成的一个32比特的数值,被封装在AH报文头和ESP报文头中。

1、手工配置

所谓手工配置就是用户在对等体两端手工配置参数,两端参数匹配和协商通过即可建立IPsec SA,手工配置方式较为复杂,适用于小型静态环境。

2、自动协商

由IKE生成和维护,即IKE方式,通信双方基于各自配置的IPsec策略匹配和协商建立SA,不需要用户干预。IKE建立在Internet安全联盟和密钥管理协议ISAKMP定义的框架上,是基于UDP(User Datagram Protocol)的应用层协议。它为IPSec提供了自动协商密钥、建立IPSec安全联盟的服务,能够简化IPSec的配置和维护工作。分为IKEv1、IKEv2,后者比前者效率高。

3、两者差异

对比项手工配置自动协商
加密/验证密钥配置和刷新方式易出错,密钥管理成本高密钥通过DH算法生成,动态刷新,密钥管理成本低
SPI取值手动配置随机生成
生存周期无生成周期限制,SA永久存在由双方的生成周期参数控制,SA动态刷新
安全性
适用场景小型静态环境小、中、大型网络

二、IKEv1协商安全联盟

由阶段1为阶段2做准备,阶段1建立了IKE SA,建立完成后对等体间的ISAKMP消息都通过加密和验证,保证了阶段2的协商,阶段2主要是建立用来传输数据的IPsec SA。

1、IKEv1协商阶段1

①协商建立IKE SA的参数,包括了加密算法、验证算法、身份认证方法、认证算法、DH组标识、IKE SA生存周期等;

②使用DH算法交换密钥材料,并生成密钥。对等体双发使用这些密钥材料各自生成用于对ISAKMP消息加密和验证的对称密钥;

③对等体之间身份认证,使用预共享密钥、数字证书或者数字信封认证等方式验证设备身份。

IKEv1阶段1协商有两种模式,分别为主模式和野蛮模式。

①查找匹配提议不包括IKE SA生存周期;

②交换密钥信息,不同身份认证方法的密钥计算方式是不同的,最终会产生三个密钥,SKEYID_a,SKEYID_e,SKEYID_d,SKEYID_a是ISAKMP消息完整性校验密钥,SKEYID_e是ISAKMP消息加密密钥,SKEYID_d用于衍生出IPsec报文的加密和验证密钥。

与主模式相比,野蛮模式减少了交换信息的数目,提高了协商的速度,但是没有对身份信息进行加密保护。

2、IKEv1协商阶段2

阶段2目的是建立安全传输数据的IPsec SA,并为数据传输衍生出密钥,这一阶段采用了快速模式,该阶段使用阶段1的SKEYID_a对ISAKMP消息的完整性和身份进行校验,使用SKEYID_e对ISAKMP消息进行加密。

①协商发起方发送本端的安全参数和身份认证信息:安全参数包括被保护的数据流、安全协议、加密算法和认证算法等需要协商的参数。身份认证信息包括第一阶段计算出的密钥和第二阶段产生的密钥材料等,可以再次认证对等体。

②协商响应方发送确认的安全参数和身份认证信息并生成新的密钥:IPSec SA数据传输需要的加密、验证密钥由第一阶段产生的密钥、SPI、协议等参数衍生得出,以保证每个IPSec SA都有自己独一无二的密钥。

如果启用PFS(完美向前保密),则需要再次应用DH算法计算出一个共享密钥,然后参与上述计算,因此在参数协商时要为PFS协商DH密钥组,防止SKEYID_d泄露导致IPsec VPN受到侵犯。

③发送方发送确认信息,确认与响应方可以通信,协商结束。

三、IKEv2协商安全联盟

IKEv1无论是主模式+快速模式,还是野蛮模式+快速模式,前者至少需要9条消息,后者至少需要6条消息,因此IKEv2简化了过程,最少需要4条就可以完成一对IPsec SA的建立。

1、初始交换

正常情况下,IKEv2通过初始交换就可以完成第一对IPSec SA的协商建立。包括了IKE SA初始交换(IKE_SA_INIT交换)和IKE认证交换(IKE_AUTH交换)。

①第一对(IKE_SA_INIT):完成IKE SA的参数协商,包括协商加密和验证算法,交换临时随机数和DH交换。最后生成3三密钥:

SKEYID_a用于第二对消息完整性校验;

SKEYID_e用于加密第二对消息;

SKEYID_d用于衍生出IPsec报文的加密和验证密钥。

②第二对(IKE_AUTH):以加密方式完成身份认证、对前两条信息的认证和IPSec SA的参数协商。

2、创建子SA交换

当一个IKE SA需要创建多对IPSec SA时,需要使用创建子SA交换来协商多于一对的IPSec SA。另外,创建子SA交换还可以用于IKE SA的重协商。

创建子SA交换包含一个交换两条消息,对应IKEv1协商阶段2,交换的发起者可以是初始交换的协商发起方,也可以是初始交换的协商响应方。创建子SA交换必须在初始交换完成后进行,交换消息由初始交换协商的密钥进行保护。

如果启用PFS,创建子SA交换需要额外进行一次DH交换,生成新的密钥材料。生成密钥材料后,子SA的所有密钥都从这个密钥材料衍生出来。

3、通知交换

运行IKE协商的两端有时会传递一些控制信息,例如错误信息或者通告信息,这些信息在IKEv2中是通过通知交换完成的。通知交换必须在IKE SA保护下进行,也就是说通知交换只能发生在初始交换之后。

四、IKEv1和IKEv2对比


参考资料:防火墙和VPN技术与实践——李学昭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/444624.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux高级IO之poll

(。・∀・)ノ゙嗨!你好这里是ky233的主页:这里是ky233的主页,欢迎光临~https://blog.csdn.net/ky233?typeblog 点个关注不迷路⌯▾⌯ 目录 一、poll函数接口 1.接口 2.poll做了什么工…

2024 年中国高校大数据挑战赛赛题 C:用户对博物馆评论的情感分析完整思路以及源代码分享

博物馆是公共文化服务体系的重要组成部分。国家文物局发布, 2021 年我国新增备案博物馆 395 家,备案博物馆总数达 6183 家,排 名全球前列;5605 家博物馆实现免费开放,占比达 90%以上;全国 博物馆举办展览 3…

docker 子网

当需要给容器分配指定 ip ,为避免ip 冲突,指定容器子网处理 创建 subnet 子网 docker network create --subnet 10.0.0.0/24 --gateway 10.0.0.1 subnet-testdocker network ls NETWORK ID NAME DRIVER SCOPE ... f582ecf297bc sub…

【杂记】IDEA和Eclipse如何查看GC日志

1.Eclipse查看GC日志 1.1 右击代码编辑区 -> Run As -> Run Configurations 1.2 点击Arguments栏 -> VM arguments:区域填写XX参数 -> Run 1.3 控制台输出GC详细日志 2.IDEA查看GC日志 2.1 鼠标右击代码编辑器空白区域,选择Edit 项目名.main()... 2.…

Mysql命令行客户端

命令行客户端 操作数据库操作数据表 操作数据库 mysql> create database mike charsetutf8; Query OK, 1 row affected (0.01 sec) mysql> show databases; -------------------- | Database | -------------------- | information_schema | | mike …

【C语言】linux内核tcp_write_xmit和tcp_write_queue_purge

tcp_write_xmit 一、讲解 这个函数 tcp_write_xmit 是Linux内核TCP协议栈中的一部分,其基本作用是发送数据包到网络。这个函数会根据不同情况推进发送队列的头部,确保只要远程窗口有空间,就可以发送数据。 下面是对该函数的一些主要逻辑的中…

实验二(一):IPV4编址及IPV4路由基础实验

一实验介绍 1.关于本实验 IPv4( Internet Protocol Version 4)是 TCP/IP 协议族中最为核心的协议之一。 它工作在 TCP/IP参考模型的网际互联层,该层与 OSI参考模型的网络层相对应。 网络层提供了无连接数据传输服务,即网络在发送分组时不需要先建立连…

算法设计与分析(超详解!) 第一节 算法概述

1.算法的定义 算法的非形式化定义:算法是规则的有限集合,是为解决特定问题而规定的一系列操作。 可以理解为:算法(algorithm)是指在解决问题时,按照某种机械的步骤一定可以得到问题的结果(有的…

数学建模-动态规划(美赛运用)

动态规划模型的要素是对问题解决的抽象,其可分为: 阶段。指对问题进行解决的自然划分。例如:在最短线路问题中,每进行走一步的决策就是一个阶段。 状态。指一个阶段开始时的自然状况。例如:在最短线路问题中&#xff…

嵌入式Qt 制作一个登录对话框

一.登录对话框需求分析 二.代码实现 main.c&#xff1a; #include <QtGui/QApplication> #include "widget.h"int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); }Widget.h&#xff1a; #ifndef _WIDGET_H_…

EDA软件

EDA软件 EDA概念IC类EDA&#xff08;芯片EDA软件&#xff09;数字芯片和模拟芯片的区别模拟芯片产品种类IC设计类数字电路设计模拟电路设计 IC制造类IC封装类 PCB类EDA&#xff08;板级EDA软件&#xff09;Mentor公司板级EDACadence公司板级EDAAltium公司&#xff08;已被日本瑞…

bug_java

文章目录 1.创建Maven时&#xff1a; idea报错为&#xff1a;java&#xff1a;错误&#xff1a;不支持发行版本52. Springbot启动报错-类文件具有错误的版本 61.0, 应为 52.0 1.创建Maven时&#xff1a; idea报错为&#xff1a;java&#xff1a;错误&#xff1a;不支持发行版本…

贪吃蛇(C语言实现)

贪食蛇&#xff08;也叫贪吃蛇&#xff09;是一款经典的小游戏。 —————————————————————— 本博客实现使用C语言在Windows环境的控制台中模拟实现贪吃蛇小游戏。 实行的基本功能&#xff1a; • 贪吃蛇地图的绘制 • 蛇吃食物的功能&#xff08;上、…

【重新定义matlab强大系列十七】Matlab深入浅出长短期记忆神经网络LSTM

&#x1f517; 运行环境&#xff1a;Matlab &#x1f6a9; 撰写作者&#xff1a;左手の明天 &#x1f947; 精选专栏&#xff1a;《python》 &#x1f525; 推荐专栏&#xff1a;《算法研究》 #### 防伪水印——左手の明天 #### &#x1f497; 大家好&#x1f917;&#x1f91…

Netty Review - 探究Netty服务端主程序无异常退出的背后机制

文章目录 概述故障场景尝试改进问题分析铺垫&#xff1a; Daemon线程Netty服务端启动源码分析逻辑分析 如何避免Netty服务端意外退出最佳实践 概述 在使用Netty进行服务端程序开发时&#xff0c;初学者可能会遇到各种问题&#xff0c;其中之一就是服务端意外退出的问题。这种问…

基于机器学习的工业用电量预测完整代码数据

视频讲解: 毕业设计:算法+系统基于机器学习的工业用电量预测完整代码数据_哔哩哔哩_bilibili 界面展示: 结果分析与展示: 代码: from sklearn import preprocessing import random from sklearn.model_selection import train_test_split from sklearn.preprocessing…

oracle基础-多表关联查询 备份

一、概述 在实际应用系统开发中会设计多个数据表&#xff0c;每个表的信息不是独立存在的&#xff0c;而是若干个表之间的信息存在一定的关系&#xff0c;当用户查询某一个表的信息时&#xff0c;很可能需要查询关联数据表的信息&#xff0c;这就是多表关联查询。SELECT语句自身…

【NR技术】 3GPP支持无人机服务的关键性能指标

1 性能指标概述 5G系统传输的数据包括安装在无人机上的硬件设备(如摄像头)收集的数据&#xff0c;例如图片、视频和文件。也可以传输一些软件计算或统计数据&#xff0c;例如无人机管理数据。5G系统传输的业务控制数据可基于应用触发&#xff0c;如无人机上设备的开关、旋转、升…

数字化解决方案的设计与实现:提升业务效率与用户体验

摘要&#xff1a;随着数字化时代的到来&#xff0c;越来越多的企业和组织开始寻求数字化解决方案来提升业务效率和改善用户体验。本文将探讨数字化解决方案的设计与实现过程&#xff0c;并介绍一些关键的技术和策略。 ## 引言 在当今竞争激烈的商业环境中&#xff0c;企业和组…

深度学习图像算法工程师--面试准备(2)

深度学习面试准备 深度学习图像算法工程师–面试准备&#xff08;1&#xff09; 深度学习图像算法工程师–面试准备&#xff08;2&#xff09; 文章目录 深度学习面试准备前言一、Batch Normalization(批归一化)1.1 具体步骤1.2 BN一般用在网络的哪个部分 二、Layer Normaliza…