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

news2025/1/8 12:44:28

目录

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面试集锦

① 面试资料

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

② 简历模板

在这里插入图片描述

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

漏洞检测和评估【网站子域扫描工具02】

上一篇:爬取目标网站的域名和子域名【网站子域扫描工具01】 在Python中,有一些流行的漏洞扫描库可以对子域进行漏洞扫描和评估,比如Nmap、Sublist3r等。 1.端口扫描 以下是一个简单的示例代码,展示了如何使用Nmap进行基本的端口扫…

基于springboot+vue的高校心理教育辅导系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目背景…

查看pip及Python版本

Python环境正确安装之后,按“WinR”组合键打开“运行”对话框,输入“cmd”,如下图 打开命令提示符窗口后,输入以下命令查看Python及pip的版本。 pip -V 如果命令提示符窗口能够正确显示pip及Python版本,则说明Python…

如何制作产品的说明书!跟我学!

​产品说明书可以清晰地描述产品的功能、使用方法、注意事项以及维护保养等方面。但很多朋友对于如何制作产品的说明书感到困惑,其实这并不难。今天,教大家如何制作一份简单明了的产品说明书。 我们需要选择合适的制作工具和格式。比如FLBOOK在线制作电子…

目标检测--01

基本概念 什么是目标检测? ​ 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同的外观、形状…

【动态规划】【离线查询】【前缀和】689. 三个无重叠子数组的最大和

作者推荐 【动态规划】【数学】【C算法】18赛车 本文涉及的基础知识点 动态规划 滚动向量 离线查询 C算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 LeetCode689. 三个无重叠子数组的最大和 给你一个整数数组 nums 和一个整数 k &…

关键信息基础设施安全相关材料汇总

文章目录 前言一、法律(1)《中华人民共和国国家安全法》(2)《中华人民共和国网络安全法》(3) 《中华人民共和国密码法》(4)《中华人民共和国数据安全法》(5) 《中华人民共和国个人信息保护法》二、行政法规(6)《中华人民共和国保守国家秘密法实施条例》(7) 《关键信息基础设施安…

Java数据结构之图(头歌平台,详细注释)

第1关:图的表示 任务描述 图(Graph)是表示一些事物或者状态的关系的表达方法。由于许多问题都可以归约为图的问题,人们提出了许多和图相关的算法。 本关任务:学习图的相关概念和表示,并用邻接表示图。 相关…

python2实现数据库表定时全量同步sftp

python2实现数据库表定时全量同步sftp 需求 周边系统需要通过sftp接口,将本系统数据库的8张表吐给sftp,文件名为txt,提供的字段用#号分隔(逗号存在分隔不开的情况),8张表采用全量每天同步。 环境 操作系统centos7.…

Discuz论坛网站登录账号操作慢,必须强制刷新才会显示登录怎么办?

飞飞发现在登录服务器大本营账号时,输入账号密码登录后还是显示的登录框,强制刷新后才知道已经登录了,每次都要刷新才能正常显示,非常影响用户体验,于是在网上找了类似的问题故障解决方法,目前问题已经解决…

Maven普通工程和web工程创建

文章目录 创建项目前设置maven工程前设置工作创建项目前--》设置utf-8配置maven参数Maven普通工程和web工程创建Maven简单工程第一步:File–New–Project 第二步:选择maven然后下一步:填写后询选择finish初始化maven工程目录简介maven简单工程…

产品经理NPDP

产品经理是告诉团队做正确的事情,项目经理是告诉团队正确地做事情 产品经理的核心能力是商业洞察能力、产品规划与设计、团队管理能力。 产品经理国际资格认证(NPDP)

Linux:shell脚本:基础使用(8)《函数局部|全局变量函数传入位置变量return》

基本的函数定义 把一些重复调用的命令写进一个函数里,下次直接调用函数名,这样的既方便修改,又可以让思路清晰 function 函数名(){ 当调用这个函数时候执行的命令...... } 这个是一个基础的函数定义,当然你不加function也是可以的…

机器学习--Matplotlib

机器学习–Matplotlib Matplotlib 是专门用于开发2D图表(包括3D图表)以渐进、交互式方式实现数据可视化 简单的Matplotlib画图 — 以折线图为例 matplotlib.pyplot模块 matplotlib.pytplot包含了一系列类似于matlab的画图函数。 import matplotlib.pyplot as plt图形绘制流…

多路开关状态指示

1.  实验任务 AT89S51单片机的P1.0-P1.3接四个发光二极管L1-L4,P1.4-P1.7接了四个开关K1-K4,编程将开关的状态反映到发光二极管上。(开关闭合,对应的灯亮,开…

Unity向量叉乘

叉乘计算公式 Unity中叉乘计算 Vector3.Cross(A.position, B.position); 几何意义 假设向量A和B 都在XZ平面上 向量A叉乘向量B y大于0 证明 B在A右侧 y小于0 证明 B在A左侧 示例 Vector3 C Vector3.Cross(A.position, B.position); if(C.y > 0) {print("B在A右侧&qu…

使用 Postman 发送 get 请求的简易教程

在API开发与测试的场景中,Postman 是一种普遍应用的工具,它极大地简化了发送和接收HTTP请求的流程。要发出GET请求,用户只需设定正确的参数并点击发送即可。 如何使用 Postman 发送一个GET请求 创建一个新请求并将类型设为 GET 首先&#…

C++设计模式(李建忠)笔记4(完结)

C设计模式(李建忠) 本文是学习笔记,如有侵权,请联系删除。 参考链接 Youtube: C设计模式 Gtihub源码与PPT:https://github.com/ZachL1/Bilibili-plus 豆瓣: 设计模式–可复用面向对象软件的基础 总结23种设计模式…

博世CEO喊话:2024年将比预期更加困难;中国市场群狼环伺

编者按:博世的未来,不仅仅取决于自身业务转型升级的速度,还有那些希望在智能化时代成为“博世”的众多对手。 2024年的行业走向,备受关注。 本周,作为全球汽车零部件龙头,博世首席执行官Stefan Hartung在接…

适合初学者的机器学习开源项目合集(已加入Github加速计划)

目录 开源项目合集[>> 机器学习路线图:mrdbourke/machine-learning-roadmap](https://gitcode.com/mrdbourke/machine-learning-roadmap)[>> 机器学习资源的汇总:johnmyleswhite/ML_for_Hackers](https://gitcode.com/johnmyleswhite/ML_for…