文章目录
-
目录
文章目录
一.TCP/IP 协议的缺点
二.IPsec诞生背景
IPsec可提供安全服务
三.IPsec协议簇
IPsec的两种工作模式
传输模式
隧道模式:
IPsec的安全协议
AH 协议:鉴别头协议
ESP协议:封装安全载荷协议
AH与ESP对比
AH+ESP报文:
四.IPsec建立过程
安全联盟SA
手工建立SA编辑
动态建立SA
IKE协议产生背景
IKE协议用途
IKE工作过程
主模式协商:
野蛮模式:
VPN黑洞
总结
一.TCP/IP 协议的缺点
- IP层不校验数据完整性:原始的IP协议(IPv4)不检查数据包的完整性。当数据包在网络中传输时,中间的路由器或交换机不会验证数据包的内容是否被篡改。这意味着,如果攻击者能够访问到网络中的数据流,他们就有可能篡改数据包的内容而不被发现。
- 缺乏端到端的校验:虽然TCP协议在其传输层提供了校验和机制来验证报文在传输过程中是否出现错误,但如果黑客修改了报文,并重新计算,填入校验和字段,则接收方无法判断报文是否被修改。
- 缺少数据加密:原始的TCP/IP协议不提供数据加密功能。这意味着,除非用户自己实现加密机制,否则在网络上传输的所有数据都是明文的,可以被任何能够访问网络的人读取
二.IPsec诞生背景
IPSec(IP Security)是一组开放的网络安全协议,是对IP的安全性补充,其工作在IP层,为IP网络通信提供透明的安全服务。它并不是一个单独的协议,而是一系列为IP网络提供安全性的协议和服务的集合,这些协议和服务包括认证头AH(Authentication Header)和封装安全载荷ESP(Encapsulating Security Payload)两个安全协议、密钥交换和用于验证及加密的一些算法等。
IPsec可提供安全服务
- 数据加密:IPsec协议使用加密技术对数据进行加密,确保数据在传输过程中的机密性。它提供了两种加密方式:ESP(Encapsulating Security Payload)和AH(Authentication Header)。ESP协议负责数据的加密,而AH协议则提供数据的完整性校验和源验证功能。通过这些加密技术,IPsec可以保护TCP/IP协议簇中传输的数据,防止数据被窃取或篡改。
- 认证机制:IPsec协议提供了认证机制,用于验证数据的完整性和来源。AH协议通过在每个数据包中添加一个认证头来实现这一功能。认证头包含了用于验证数据完整性的哈希值和用于验证数据来源的公钥或预共享密钥。通过验证认证头,接收方可以确保接收到的数据是完整且来自可信的发送方。
- 防止重放攻击:IPsec协议通过使用序列号和时间戳来防止重放攻击。每个IPsec数据包都包含一个唯一的序列号,接收方可以检查序列号的连续性来识别重放的数据包。此外,时间戳也可以用来验证数据包的时效性,确保数据包不是在过去某个时间截取的。
- 访问控制:IPsec协议支持访问控制功能,可以根据策略规则来允许或拒绝特定的通信连接。通过配置IPsec策略,可以实现基于源IP地址、目标IP地址、端口号等条件的访问控制,增强网络的安全性。
三.IPsec协议簇
AH算法
DH算法的基本原理涉及以下步骤:
- Alice和Bob首先同意使用一个大的质数p和它的原根g。这两个数是公开的,不需要保密。
- Alice选择一个私有的随机数x,并计算X = | g^x | /P (图中=8)。她将X发送给Bob。
- Bob选择一个私有的随机数y,并计算Y = | g^y | / p (图中=4 )他将B发送给Alice。
- Alice计算共享密钥Z = |Y^x | /p(图中=9),而Bob计算共享密钥S = |X^y |/p(图中=9)。
假设,图中需要传输的内容为X=8 + Y=4 以及公开数 g p;以上为黑客能够知道的所有信息,即使黑客知道共享密钥的算法如:Z = |Y^x | /p 如果黑客不知道x则无法算出共享密钥,而x未经过传输是私有数,因此黑客无法获知共享密钥。
IPsec的两种工作模式
注:不同的工作模式代表不同的数据包封装方式
传输模式
- 封装方式:不改变原有的IP头部,在原始IP包头包头后面插入IPsec包用于将原来的数据封装成被保护的数据(网络层+传输层+应用层数据)。
- 应用场景:用于私网内部主机与主机之间通信;(原始IP包头未加密有安全隐患)
隧道模式:
封装方式:在原始IP包人前插入一个IPsec包头,原始IP包头作为载荷的一部风受到IPSec保护。
应用场景:经常用于私网与私网之间跨越公网通信,建立安全的 VPN通道。
IPsec的安全协议
AH 协议:鉴别头协议
AH(Authentication Header)协议是一种为IP数据包提供数据完整性验证和数据源身份认证的安全协议。协议号:51
AH提供的安全服务:
-
数据源验证:AH协议通过验证数据包的完整性和身份来确保数据来自可信的源。它使用公钥加密或预共享密钥来对数据包进行加密和签名,以验证发送方的身份和数据包的完整性。
-
数据完整性校验:AH协议使用哈希算法(如MD5或SHA-1)来计算数据包的哈希值,并将该哈希值附加在数据包的AH头认证数据字段中。接收方在接收到数据包后,使用相同的哈希算法重新计算哈希值,并与数据包中的哈希值进行比较,以验证数据包的完整性。
-
防报文重放:AH协议通过序列号和时间戳等机制来防止重放攻击。每个AH数据包都包含一个唯一的序列号,接收方可以检查序列号的连续性来识别重放的数据包。此外,时间戳也可以用来验证数据包的时效性,确保数据包不是在过去某个时间截取的。
AH协议身份验证过程如下:
- 发送方生成一个身份验证值,使用共享密钥和AH头部中的其他字段进行计算。
- 发送方将生成的身份验证值填充到AH头部的身份验证数据字段中。
- 发送方将AH头部添加到待发送的IP包中,并将IP包发送给接收方。
- 接收方使用相同的共享密钥和接收到的IP包中的AH头部字段计算一个身份验证值。
- 接收方将计算得到的身份验证值与接收到的IP包中的AH头部中的身份验证数据字段进行比较。
- 如果两者相等,则验证成功,否则验证失败。
AH报文:
Next Header:指定AH头后面的协议头类型,例如ESP、TCP或UDP等。
Payload Length:表示AH头后面的数据负载长度(不包括AH头本身)。
Reserved:保留字段,通常为0。
Security Parameters Index (SPI):安全参数索引,用于标识通信双方需要协商的安全参数。如:工作模式类型;协议类型
Sequence Number:序列号,用于防止重放攻击和数据包的乱序到达。
Authentication Data:认证数据,包含了用于验证数据完整性和身份的哈希值。
传输模式AH封装范围
隧道模式下AH封装范围:
ESP协议:封装安全载荷协议
ESP(Encapsulating Security Payload)协议是IPsec协议族中的一个重要组件,主要用于为IP数据包提供加密、数据源认证、数据完整性校验和防报文重放等功能。与AH协议不同,ESP协议主要关注数据的机密性,通过加密技术来保护数据的内容不被泄露。协议号:50
ESP提供的安全服务:
- 数据机密性保护:ESP协议使用对称加密算法(如DES、3DES、AES等)对IP数据包的内容进行加密,确保数据在传输过程中不被未授权访问。加密后的数据以密文形式传输,只有拥有正确密钥的接收方才能解密并获取原始数据。这提供了数据的机密性保护,防止了数据的泄露和非法获取。
- 数据源认证:ESP协议还提供了数据源认证功能,用于验证数据包的来源。这通过使用公钥加密或预共享密钥来生成认证标签(通常是哈希值)实现。发送方在生成ESP报文时,会将认证标签附加在ESP尾中。接收方收到报文后,会使用相同的密钥和算法重新计算认证标签,并与报文中的标签进行比较。如果两者一致,则说明数据包来自可信的发送方,没有被篡改。
- 数据完整性校验:ESP协议使用哈希算法(如MD5或SHA-1)来计算数据包的哈希值,并将其附加在ESP尾中。这个哈希值用于校验数据包的完整性,确保数据在传输过程中没有被篡改。接收方在收到数据包后,会使用相同的哈希算法重新计算哈希值,并与报文中的哈希值进行比较。如果哈希值一致,则说明数据包的内容没有被篡改,保持了数据的完整性。
- 防报文重放:ESP协议通过序列号机制来防止报文的重放攻击。每个ESP数据包都包含一个唯一的序列号,接收方可以检查序列号的连续性来识别重放的数据包。这种机制确保了每个数据包都是新鲜的,没有被重复发送,从而防止了重放攻击。
注意:ESP尾部主要目的是进行数据的填充。因为数据进行加密主要使用的对称加密算 法,而其中分组加密需要针对固定长度的分组进行加密,如果最后分组的长度不足, 则需要填充。满足加密的条件。还有就是下一头部因为包含数据信息,所以,也放在 尾部进行保护,因为负载部分和尾部部分是会进行加密的。
ESP在传输模式下封装:
ESP在隧道模式下封装:
AH与ESP对比
AH+ESP报文:
传输模式:
隧道模式:
四.IPsec建立过程
安全联盟SA
IPsec中的安全联盟SA是确保IP通信安全的关键组件由SPI作为唯一标识,它提供了通信对等体之间关于如何安全地交换数据的协定。通过正确配置和管理SA,IPsec能够提供强大的安全保护,包括数据加密、完整性验证和身份认证等,从而确保数据的机密性、完整性和可靠性。
SA特点:
- 安全联盟SA是IPSec提供安全服务数据流的一个单向逻辑关系。因为SA是单向的,所以对于双向通信,需要两个SA。SA是通信对等方之间对某些要素的一种协定,这些要素包括使用何种安全协议、需要保护的数据流特征、传输的数据的封装模式、协议采用的加密和验证算法,以及用于数据安全转换、传输的密钥和SA的生存周期等。
- 在IPSec对等体(即运行IPSec协议的两个端点)之间成功建立安全联盟后,IPSec可以对传输的数据进行加密和/或完整性验证,以确保数据的安全性。每个SA都由一个三元组来唯一标识,这个三元组包括安全参数索引(SPI)、目的IP地址和使用的安全协议号(如AH或ESP)。
手工建立SA
动态建立SA
IKE协议产生背景
- IPsec保护数据包的前提是建立安全联盟(SA)
- 手工配置繁琐且易错
IKE协议用途
- IKE用于动态地建立和管理IPsec SA
- 负责进行密钥交换和协商,以生成用于IPsec加密和认证的密钥
IKE工作过程
- 阶段一:使用DH算法获得能够加密通信双方建立SA过程中需要协商参数的密钥并建立IKE SA(双向通道)用于双方身份认证。点击此处了解DH算法
- 阶段二:基于已建立的安全通道来协商IPsec SA的安全参数
阶段一:协商过程
-
主模式协商:
-
IP地址作为身份标识
第二次交换(消息3和消息4)
- 1:NI,Nr--- 代表的是随机数
- 2:X,Y --- DH算法中需要公开的参数
第三次交换(消息5和6):对等体验证
ISAKMP/IKE阶段1主要任务就是认证,第三阶段即在安全的环境下进行认证,前面两个步骤四个数据包的传输都是为了第三阶段第5和第6个数据包交换的认证做铺垫。第1-2包交换为认证准备好策略(例如:认证策略、加密策略和散列函数等),第3-4包交换为保护5-6的安全算法提供密钥资源。
野蛮模式:
阶段二:
基于已经建立的安全通道,来协商建立IPSEC SA的安全参数,完成后,则标 志着IPSEC SA的建立。---快速模式(Quickmode)---UDP 500
需要协商的安全参数:
- 加密算法---正式传输数据时使用的加密算法(加密算法协商完成后,会计算密钥
- 第一阶段计算出来的推导密钥会加入到该密钥的计算中)
- HASH算法--- 正式传输数据时进行完整性校验的算法
- 安全协议---AH/ESP 封装模式---传输模式/隧道模式 存活时间
VPN黑洞
隧道建立之后,如果其中一段的设备异常重启,另一端还在有效期内,则他发 送的数据将有去无回,就形成了VPN黑洞。 解决方法---DPD死亡对等体检测。 类似于心跳检测机制---采用空闲计时器原理---两边同时开启一个固定时间的计时 器,期间数据值直接发过去,如果计时器超时,则数据发送前,先发送一个DPD检测 报文,如果收到对方的DPD应答报文,则将重置计时器。如果没有收到,并且,连续 5次都没有收到,则将拆掉安全通道。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。