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

news/2024/4/27 23:23:53

目录

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报头外,所有的载荷都需要加密,并且还要对消息进行验证。




 

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

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

相关文章

关系数据库标准语言SQL

1.SQL概述 1.1基本表(Base table) 实际存储在数据库中的表SQL中一个关系就对应一个基本表基本表可以有若干个索引基本表的集合组成关系模式,即全局概念模式(数据的整体逻辑结构) 1.2 存储文件 存储文件和相关索引组…

外包干了5天,技术明显退步。。。。。

先说一下自己的情况,本科生,19年通过校招进入南京某软件公司,干了接近2年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了2年的功能测试&…

深入理解mysql 从入门到精通

1. MySQL结构 由下图可得MySQL的体系构架划分为:1.网络接入层 2.服务层 3.存储引擎层 4.文件系统层 1.网络接入层 提供了应用程序接入MySQL服务的接口。客户端与服务端建立连接,客户端发送SQL到服务端,Java中通过JDBC来实现连接数据库。 …

鸿蒙Harmony应用开发—ArkTS声明式开发(绘制组件:Ellipse)

椭圆绘制组件。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 无 接口 Ellipse(options?: {width?: string | number, height?: string | number}) 从API version 9开始&#xff0…

Yolov8有效涨点:YOLOv8-AM,添加多种注意力模块提高检测精度,含代码,超详细

前言 2023 年,Ultralytics 推出了最新版本的 YOLO 模型。注意力机制是提高模型性能最热门的方法之一。 本次介绍的是YOLOv8-AM,它将注意力机制融入到原始的YOLOv8架构中。具体来说,我们分别采用四个注意力模块:卷积块注意力模块…

算法——贪心算法

《算法图解》——贪心算法 # 首先创建一个表,包含所覆盖的州 states_needed set([mt,wa,or,id,nv,ut,az]) # 传入一个数组,转换成一个集合#可供选择的广播台清单 stations {} stations[kone] set([id,nv,ut]) #用集合表示想要覆盖的州,且不…