详解IP安全:IPSec协议簇 | AH协议 | ESP协议 | IKE协议_ipsec esp

2024-01-19 08:36
文章标签 ip 详解 协议 安全 ipsec esp ah ike

本文主要是介绍详解IP安全:IPSec协议簇 | AH协议 | ESP协议 | IKE协议_ipsec esp,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

IP安全概述

IPSec协议簇

IPSec的实现方式

AH(Authentication Header,认证头)

ESP(Encapsulating Security Payload,封装安全载荷)

IKE(Internet Key Exchange,因特网密钥交换)

IKE的两个阶段


IP安全概述

大型网络系统内运行多种网络协议(TCP/IP、IPX/SPX和NETBEUA等),这些网络协议并非为安全通信设计。而其IP协议维系着整个TCP/IP协议的体系结构,除了数据链路层外,TCP/IP的所有协议的数据都是以IP数据报的形式传输的。

TCP/IP协议族有两种IP版本:版本4(IPv4)和版本6(IPv6),IPv6是IPv4的后续版本,IPv6简化了IP头,其数据报更加灵活,同时IPv6还增加了对安全性的考虑。

目前占统治地位的是IPv4,IPv4在设计之初没有考虑安全性,IP数据包本身并不具备任何安全特性,导致在网络上传输的数据很容易受到各式各样的攻击:比如伪造IP包地址、修改其内容、重播以前的包以及在传输途中拦截并查看包的内容等。因此,通信双方不能保证收到IP数据报的真实性。


IPSec协议簇

为了加强因特网的安全性,从1995年开始,IETF着手制定了一套用于保护IP通信的IP安全协议(IP Security,IPSec)。IPSec是IPv6的一个组成部分,是IPv4的一个可选扩展协议。IPSec弥补了IPv4在协议设计时缺乏安全性考虑的不足。

IPSec定义了一种标准的、健壮的以及包容广泛的机制,可用它为IP以及上层协议(比如TCP或者UDP)提供安全保证。IPSec的目标是为IPv4和IPv6提供具有较强的互操作能力、高质量和基于密码的安全功能,在IP层实现多种安全服务,包括访问控制、数据完整性、机密性等。 IPSec通过支持一系列加密算法如DES、三重DES、IDEA和AES等确保通信双方的机密性。

IPSec协议簇中主要包括三个协议:IKE/AH/ESP

  • IKE(Internet Key Exchange,因特网密钥交换):IKE协议是一种基于UDP的应用层协议,它主要用于SA协商和密钥管理。

  • AH协议(Authentication Header,验证头):可以证明数据的 起源地、保障数据的完整性以及防止相同数据包在因特网重播。

  • ESP协议(Encapsulating Security Payload,封装安全载荷):具有所有AH的功能,还可以利用加密技术保障数据机密性。

AH虽然可以保护通信免受窜改, 但并不对数据进行变形转换, 数据对于黑客而言仍然是清晰的。为了有效地保证数据传输安全, ESP进一步提供数据保密性并防止窜改。也就是说,AH提供数据的可靠性和完整性,但机密性由ESP保护。虽然AH和ESP都可以提供身份认证,但它们有2点区别: ESP要求使用高强度的加密算法,会受到许多限制。 多数情况下,使用AH的认证服务已能满足要求,相对来说,ESP开销较大。 同时有两套不同的安全协议意味着可以对IPSec网络进行更细粒度的控制,选择安全方案可以有更大的灵活度。


IPSec的实现方式

IPSec的实现方式有两种:传输模式和隧道模式,都可用于保护通信。

传输模式用于两台主机之间,保护传输层协议头,实现端到端的安全性。 当数据包从传输层传送给网络层时,AH和ESP会进行拦截,在IP头与上层协议之间需插入一个IPSec头。当同时应用AH和ESP到传输模式时,应该先应用ESP,再应用AH。

传输模式的封包如下所示


隧道模式用于主机与服务器,或者服务器与服务器之间,保护整个IP数据包,将整个IP数据包进行封装(称为内部IP头),然后增加一个IP头(称为外部IP头),并在内部与外部IP头之间插入一个IPSec头。

隧道模式的封包如下所示

IPSec可在终端主机、网关/路由器或者两者中同时进行实施和配置。至于IPSec在网络什么地方配置,则由用户对安全保密的要求来决定。 在需要确保端到端的通信安全时,在主机实施显得尤为有用。 然而,在需要确保网络一部分的通信安全时,在路由器中实施IPSec就显得非常重要。


AH(Authentication Header,认证头)

AH为IP报文提高能够数据完整性校验和身份验证,还具备可选择的重放攻击保护,但不提供数据加密保护。 AH不对受保护的IP数据报的任何部分进行加密,除此之外,AH具有ESP的所有其他功能。 AH和ESP同时保护数据,在顺序上,AH在ESP之后,AH格式如图:

头部(8位)表示AH后的载荷类型,传输模式下是6(TCP)或17(UDP),隧道模式下是5 (TCP)或41(UDP)。 载荷长度(8位)是整个AH的长度减2,长度以32为单位。保留(16)位是保留字段,全为0。 安全参数索引(32位)与外部IP头的目的地址一起对报文进行身份验证和完整性校验,序列号(32位)是一个单向递增的计数器,提供抗重播能力。验证数据的长度由具体的验证算法决定。

对AH的处理分成2部分:

  • 对发送的数据包添加AH头
  • 对收到的含有AH的数据包进行还原

ESP(Encapsulating Security Payload,封装安全载荷)

ESP为IP报文提供数据完整性校验、身份验证、数据加密以及重放攻击保护等。 除了AH提供的所有服务外,还提供机密性服务。 ESP可在传输模式以及隧道模式下使用。ESP头可以位于IP头与上层协议之间,或者用它封装整个IP数据报。ESP头的格式 :

安全参数索引(32位)用于标识处理数据包的安全关联。 序列号(32位)与AH类似,提供抗重放攻击。 填充项(0~255位),长度由具体加密算法决定。 填充长度(8位):接收端可以恢复的数据载荷的真实长度。 下一头部(8位):表示受ESP保护的载荷的类型。 在传输模式下可能是6(TCP)或17(UDP),在隧道模式下可能是5(IPv4)或41(IPV6)

AH和ESP可以单独使用,也可以同时使用。AH和ESP同时使用时,报文会先进行ESP封装,再进行AH封装;IPsec解封装时,先进行AH解封装,再进行ESP解封装。


IKE(Internet Key Exchange,因特网密钥交换)

整个IKE协议规范主要由3个文档定义:RFC2407、RFC2408和RFC2409

  • RFC2407定义了因特网IP安全解释域
  • RFC2408描述了因特网安全关联和密钥管理协议(Internet Security Association and Key Manangement Protocol,ISAKMP)
  • RFC2409描述了IKE协议如何利用Oakley,SKEME和ISAKMP进行安全关联的协商

以下文本来自于华为官网:

IKE协议属于一种混合型协议,它综合了ISAKMP(Internet Security Association and Key Management Protocol)、Oakley协议和SKEME协议这三个协议。其中,ISAKMP定义了IKE SA的建立过程,Oakley和SKEME协议的核心是DH(Diffie-Hellman)算法,主要用于在Internet上安全地分发密钥、验证身份,以保证数据传输的安全性。IKE SA和IPSec SA需要的加密密钥和验证密钥都是通过DH算法生成的,它还支持密钥动态刷新。

IKE的两个阶段

IKE的第一阶段——主模式交换和积极模式交换

第一阶段的主要任务是建立IKE SA,为后面的交换提供一个安全通信信道。 使用主模式交换和积极模式交换。这两种模式都可以建立SA,两者的区别在于积极模式只用到主模式一半的消息,因此积极模式的协商能力受到限制的,而且它不提供身份保护。但是积极模式可以有一些特殊用途,比如远程访问等。 另外如果发起者已经知道响应者的策略,利用积极模式可以快速的建立IKE SA。

主模式和积极模式都允许4中不同的验证方法:

  1. 预共享密钥
  2. DSS数字签名
  3. RSA数字签名
  4. 交换加密

IKE的第二阶段——快速模式交换

快速模式交换主要是为通信双方协商IPSec SA的具体参数,并生成相关密钥。 IKE SA通过数据加密、消息验证来保护快速模式交换。快速模式交换和第一阶段交换相互关联,来产生密钥材料和协商IPSec的共享策略。 快速模式交换的信息由IKE SA保护,即除了ISA KMP报头外,所有的载荷都需要加密,并且还要对消息进行验证。




黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

😝朋友们如果有需要的话,可以V扫描下方二维码联系领取~

1️⃣零基础入门
① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

需要详细路线图的,下面获取

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

2️⃣视频配套工具&国内外网安书籍、文档
① 工具

② 视频

image1

③ 书籍

image2

资源较为敏感,未展示全面,需要的下面获取

### 3️⃣Python面试集锦

① 面试资料

在这里插入图片描述在这里插入图片描述

② 简历模板

在这里插入图片描述

因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆

------ 🙇‍♂️ 本文转自网络,如有侵权,请联系删除 🙇‍♂️ ------

这篇关于详解IP安全:IPSec协议簇 | AH协议 | ESP协议 | IKE协议_ipsec esp的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

SpringBoot线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected

一文详解SpringBoot中控制器的动态注册与卸载

《一文详解SpringBoot中控制器的动态注册与卸载》在项目开发中,通过动态注册和卸载控制器功能,可以根据业务场景和项目需要实现功能的动态增加、删除,提高系统的灵活性和可扩展性,下面我们就来看看Sp... 目录项目结构1. 创建 Spring Boot 启动类2. 创建一个测试控制器3. 创建动态控制器注

C#读写文本文件的多种方式详解

《C#读写文本文件的多种方式详解》这篇文章主要为大家详细介绍了C#中各种常用的文件读写方式,包括文本文件,二进制文件、CSV文件、JSON文件等,有需要的小伙伴可以参考一下... 目录一、文本文件读写1. 使用 File 类的静态方法2. 使用 StreamReader 和 StreamWriter二、二进

Conda与Python venv虚拟环境的区别与使用方法详解

《Conda与Pythonvenv虚拟环境的区别与使用方法详解》随着Python社区的成长,虚拟环境的概念和技术也在不断发展,:本文主要介绍Conda与Pythonvenv虚拟环境的区别与使用... 目录前言一、Conda 与 python venv 的核心区别1. Conda 的特点2. Python v

Spring Boot中WebSocket常用使用方法详解

《SpringBoot中WebSocket常用使用方法详解》本文从WebSocket的基础概念出发,详细介绍了SpringBoot集成WebSocket的步骤,并重点讲解了常用的使用方法,包括简单消... 目录一、WebSocket基础概念1.1 什么是WebSocket1.2 WebSocket与HTTP

java中反射Reflection的4个作用详解

《java中反射Reflection的4个作用详解》反射Reflection是Java等编程语言中的一个重要特性,它允许程序在运行时进行自我检查和对内部成员(如字段、方法、类等)的操作,本文将详细介绍... 目录作用1、在运行时判断任意一个对象所属的类作用2、在运行时构造任意一个类的对象作用3、在运行时判断

MySQL 中的 CAST 函数详解及常见用法

《MySQL中的CAST函数详解及常见用法》CAST函数是MySQL中用于数据类型转换的重要函数,它允许你将一个值从一种数据类型转换为另一种数据类型,本文给大家介绍MySQL中的CAST... 目录mysql 中的 CAST 函数详解一、基本语法二、支持的数据类型三、常见用法示例1. 字符串转数字2. 数字

SpringBoot中SM2公钥加密、私钥解密的实现示例详解

《SpringBoot中SM2公钥加密、私钥解密的实现示例详解》本文介绍了如何在SpringBoot项目中实现SM2公钥加密和私钥解密的功能,通过使用Hutool库和BouncyCastle依赖,简化... 目录一、前言1、加密信息(示例)2、加密结果(示例)二、实现代码1、yml文件配置2、创建SM2工具

MyBatis-Plus 中 nested() 与 and() 方法详解(最佳实践场景)

《MyBatis-Plus中nested()与and()方法详解(最佳实践场景)》在MyBatis-Plus的条件构造器中,nested()和and()都是用于构建复杂查询条件的关键方法,但... 目录MyBATis-Plus 中nested()与and()方法详解一、核心区别对比二、方法详解1.and()

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注