📖 前言:网络层的IP协议以及基于IP的路由协议是因特网的核心,它确保用户数据能够从源端经过网络中的一个或多个路由节点正确地到达目的端。IP 及路由安全对因持网的安全、可靠运行有着重要意义。本章首先介绍IPv4协议及其安全性,然后重点介绍增强IP层安全的IPse协议,包括IPsec安全策略、IPsec运行模式、AH协议、ESP协议、网络密钥交换、SA组合以及IPsec的应用等;最后,分别介绍IPv6协议和路由协议的安全性。
🕒 1. IPv4协议及其安全性分析
安全性分析:
- IPv4协议没有认证机制:
- 没有消息源认证:源地址假冒
- 没有完整性认证:篡改
- IPv4没有加密机制:
- 无机密性:监听应用数据
- 泄露拓扑等信息:网络侦察
- 无带宽控制:
- DDoS攻击
🕒 2. IPsec(IP Security)
作用:端到端的确保 IP 通信安全:认证、加密及密钥管理
最初为IPv6制定(必选),也支持IPv4(可选)
标准内容:
IPsec 协议族 :
-
两种工作模式:
- 传输模式(Transport)
- 隧道模式(Tunnel)
-
两个通信保护协议:
- 鉴别首部协议( AH , Authentication Header )
- 封装有效载荷协议( ESP , Encapsulation Security Payload )
-
互联网密钥交换协议( IKE , Internet Key Exchange ):
- 阶段1(两种基本模式)
- 主模式
- 积极模式
- 阶段2(快速模式)
- 阶段1(两种基本模式)
-
两个数据库:
- 安全策略数据库SPD ( Security Policy Database )
- 安全关联数据库SAD ( Security Association Database )
- 解释域DOI(Domain of Interpretation)
IPsec通过允许系统选择所需的安全协议(AH协议或ESP协议),决定服务所使用的加密或认证算法,提供任何服务需要的密钥来提供IP级的安全服务。
RFC4301中列出的安全服务包括:访问控制、无连接完整性、数据源认证、拒绝重放包(部分顺序完整性格式)、保密性(加密)以及限制流量保密性
🕘 2.1 IPsec安全策略
IPsec操作的基础是应用于每一个从源端到目的端传输的IP包上的安全策略。
IPsec安全策略主要由两个交互的数据库(SAD和SPD)来确定
🕤 2.1.1 安全关联(Security Association, SA)
- 一个SA:发送端和接收端之间的单向逻辑连接,为数据流提供安全服务;经过同一SA的数据流会得到相同的安全服务,如AH或ESP
- SA对:双向安全数据交换
- 同时支持AH、ESP且双向:需两对SA
一个SA由以下参数确定:
-
安全参数索引(Security Parameters Index, SPI):
32
位,接收方根据SPI选择合适的SA处理接收到的数据包 - IP目的地址:仅允许单播地址
- 安全协议标识(Security Protocol Identifier):AH / ESP
SAD定义了所有SA相关的参数,每个SA:
- 安全参数索引
- 序列号计算器
- 序列计数器溢出
- 反重放窗口
- AH信息
- ESP信息
- 安全关联的生存期
- IPsec协议模式:隧道、传输或通配符
- 最大传输单元路径(path MTU)
不同SA可以用多种方式组合以获得理想的用户配置。此外,IPsec对需要IPsec保护的流量和不需要IPsec保护的流量提供多种粒度的控制。
🕤 2.1.2 安全策略(Security Policy, SP)
- 指定对IP数据包提供何种保护,并以何种方式实施保护
- 主要根据源IP、目的IP、入数据还是出数据等来标识
- 用户设定自己的安全策略的粒度:IP地址,传输层协议,TCP/UDP端口号
- 操作:Discard(丢弃)、Bypass(通过)、Protect(保护)
SPD中的每一条SP包括:
- 本地IP
- 远程IP
- 下一层协议
- 名称
- 本地或远程端口
主机SPD示例:
协议
本地 IP
端口
远程 IP
端口
动作
备注
UDP
1.2.3.102
500
*
500
Bypass
IKE
ICMP
1.2.3.102
*
*
*
Bypass
错误消息
*
1.2.3.102
*
1.2.3.0
/
24
*
Protect: ESP 传输模式
加密内部网流量
TCP
1.2.3.102
*
1.2.4.11
80
Protect: ESP 传输模式
加密到服务器的流量
TCP
1.2.3.102
*
1.2.4.11
443
Bypass
TLS: 避免双重加密
*
1.2.3.102
*
1.2.4.0
/
24
*
Discard
D
M
Z
的其它流量
*
1.2.3.102
*
−
*
Bypass
Internet
\begin{array}{|c|c|c|c|c|c|c|} \hline \text { 协议 } & \text { 本地 IP } & \text { 端口 } & \text { 远程 IP } & \text { 端口 } & \text { 动作 } & \text { 备注 } \\ \hline \text { UDP } & 1.2 .3 .102 & 500 & \text { * } & 500 & \text { Bypass } & \text { IKE } \\ \hline \text { ICMP } & 1.2 .3 .102 & \text { * } & \text { * } & \text { * } & \text { Bypass } & \text { 错误消息 } \\ \hline \text { * } & 1.2 .3 .102 & \text { * } & 1.2 .3 .0 / 24 & \text { * } & \text { Protect: ESP 传输模式 } & \text { 加密内部网流量 } \\ \hline \text { TCP } & 1.2 .3 .102 & \text { * } & 1.2 .4 .11 & 80 & \text { Protect: ESP 传输模式 } & \text { 加密到服务器的流量 } \\ \hline \text { TCP } & 1.2 .3 .102 & \text { * } & 1.2 .4 .11 & 443 & \text { Bypass } & \text { TLS: 避免双重加密 } \\ \hline \text { * } & 1.2 .3 .102 & \text { * } & 1.2 .4 .0 / 24 & \text { * } & \text { Discard } & \mathrm{DMZ} \text { 的其它流量 } \\ \hline \text { * } & 1.2 .3 .102 & \text { * } & - & \text { * } & \text { Bypass } & \text { Internet } \\ \hline \end{array}
协议 UDP ICMP * TCP TCP * * 本地 IP 1.2.3.1021.2.3.1021.2.3.1021.2.3.1021.2.3.1021.2.3.1021.2.3.102 端口 500 * * * * * * 远程 IP * * 1.2.3.0/241.2.4.111.2.4.111.2.4.0/24− 端口 500 * * 80443 * * 动作 Bypass Bypass Protect: ESP 传输模式 Protect: ESP 传输模式 Bypass Discard Bypass 备注 IKE 错误消息 加密内部网流量 加密到服务器的流量 TLS: 避免双重加密 DMZ 的其它流量 Internet
🕤 2.1.3 IP包处理过程
基于SAD和SPD,IPsec对IP包的处理
🕘 2.2 IPsec运行模式
两种模式:传输模式和隧道模式
传输模式SA | 隧道模式SA | |
---|---|---|
AH | 对IP载荷和IP首部的选中部分、IPv6的扩展首部进行认证 | 对整个内部IP包(内部首部和IP载荷)和外部IP首部的选中部分、外部IPv6的扩展首部进行认证 |
ESP | 对IP载荷和跟在ESP首部后面的任何IPv6扩展首部进行加密 | 加密整个内部IP包 |
AH+ESP | 对IP载荷和ESP首部后面的任何IPv6扩展首部进行加密,同时对IP载荷进行认证,但不认证IP首部。 | 加密并认证整个内部IP包 |
比较:
🕘 2.3 AH协议
AH协议功能:IP包的数据完整性、数据来源认证和抗重放攻击服务
- 完整性:采用HMAC算法:
HMAC-MD5
(必须)、HMAC-SHA1
(必须) 、HAMC-RIPEMD-160等 - 抗重放:序列号
🕤 2.3.1 AH首部
🕤 2.3.2 AH运行模式
🕤 2.3.3 完整性检验
算法:在SA中指定
- HMAC-MD5-96
- HMAC-SHA-1-96
96
表示鉴别数据默认字段长,由HMAC计算出完整校验值后再被截短,取前96位。
哪些字段参与计算?如何处理IPv4和IPv6首部中的三种字段:不变字段,可变但可预测字段,可变不可预测字段?
- IP首部:只包括在传输期间不变的字段或接受方可预测的字段,其余不定的字段全置为
0
; - AH:除“鉴别数据”字段外其他的所有字段,“鉴别数据”字段被置为
0
; - IP数据包中的所有的上层协议数据。
IPv4首部三种字段:
- 不变(Immutable)字段:版本、首部长度、总长度、标识、协议(应为AH协议代码)、源地址、目的地址;
- 可变但可预测字段(Mutable but predictable):目的地址(在源路由列表中指定的每一个中间路由器都会将这个字段修改成下一个指定地址,但源路由字段包含了MAC计算所需的相关信息,是可预测的);
- 可变(Mutable)字段(在计算ICV前,需要置0的字段):服务类型(ToS,路由器可能会改变这个字段以表示降低服务)、标志(如果路由器对IP报文分片就会修改这个字段)、片偏移(如果路由器对IP报文分片就会修改这个字段)、生存时间(每经过一个路由器递减)、首部检验和(首部任何字段改变都会导致重新计算检验和)。
IPv6基本首部三种字段:
- 不变字段:版本、有效载荷长度、下一个首部(应为AH协议代码)、源地址、目的地址;
- 可变但可预测字段:目的地址;
- 可变字段:通信量类、流标号、跳数限制。
IPv6扩展首部三种字段:
- 不可预测:IPv6的逐跳选项和目的节点选项;
- 可变但可预测字段:路由首部;
- 不用字段:分片
🕤 2.3.4 抗重放攻击
序列号 + 滑动窗口机制
🕤 2.3.5 AH与NAT的兼容性问题
AH无法与NAT兼容,因为AH认证的是整个IP包,如果修改IP地址(NAT功能),则无法通过完整性检测。
🕘 2.4 ESP协议
ESP协议功能:除了提供IP包的数据完整性、数据来源认证和抗重放攻击服务,还提供数据包加密和数据流加密服务
- 完整性:采用HMAC算法:HMAC-MD5(必须)、HMAC-SHA1 (必须) 、HAMC-RIPEMD-160,NULL(无认证)等;ESP认证的数据范围要小于AH协议
- 加密:对称密码,必须支持:DES-CBC和NULL算法(认证和加密不能同时为NULL)
🕤 2.4.1 ESP首部
🕤 2.4.2 ESP传输模式
原始IP标头已移到最前面。将发送方的IP标头放在前面(对协议ID稍作更改),证明传输模式不能为原始IP标头提供保护或加密,并且在IP 协议ID为50的新IP标头中标识了ESP 。
🔎 An Illustrated Guide to IPsec
传输模式下的ESP装包和拆包过程,注意分清加密(红色)和认证(黄色)的数据区域。
装包过程:
- 在原 IP报文末尾添加ESP尾部信息。ESP trailer包含三部分:Padding(所选加密算法可能是块加密,因此当最后一块长度不够时就需要进行填充)Pad length(说明填充的长度,方便解包时删除用来填充的那一段数据)Next header(用来标明被加密的原部分的协议类型,例如TCP)
- 将原 IP 报文的数据部分与第1步得到的ESP尾部作为整体(上面流程图的红框)进⾏加密,加密算法与密钥由SA给出。
- 为第2步得到的加密数据添加ESP头部信息,对这两者组合体做一个摘要,得到一个完整性度量值(ESPMessage Authentication Data),并添加到该组合体尾部。ESP头包含两部分:SPI (Security Parameter Index安全参数索引,用于将收到的 IPsec 数据包与其对应的SA进行关联,从SAD中获得关于该IPsec包一些信息如协议所有的算法和密钥)顺序号(Sequence number占32比特,SA 初次建立时置0,每发送一个数据包加1,用于抵抗重放攻击)
- 把原IP头加到ESP头前面,这样基于ESP协议的传输模式下装包便完成了。
解包过程:
- 除开IP头以及末尾的Authentication Data部分,对中间部分计算摘要,与附在末尾的Authentication Data做对比,如果一样的话说明数据是完整的,否则可以断定所收到的报文已经不是原来的报文了。
- 查看ESP头,通过⾥面的 SPI 得到数据报⽂所对应的SA,以便在SAD获取加密所有算法和密钥;检查顺序号,保证数据是“新鲜的”而不是回放攻击。
- 根据SA所提供的加密算法和密钥,解密被加密过的数据,得到原IP报文的数据部分与ESP尾。
- 根据ESP尾里的Padding填充长度信息,我们可以找出填充字段,删去后就得到原IP报文的数据部分。
- 将 IP头和IP数据部分组合即得到完整的原IP报文。
从中可以看出所加ESP头中的SPI和sequence分别为:2896858147和1。上层协议(Encap Security Payload)为ESP(50)说明其为一个IPsec报文。
🕤 2.4.3 ESP隧道模式
与ESP传输模式相比,隧道模式下对整个IP包进行认证和加密,因此可以提供数据流加密服务,而传输模式下由于IP包首部不被加密,因此无法提供数据流加密服务。但是,隧道模式由于增加了一个新IP首部,降低了链路的带宽利用率。
ESP在新IP标头中以IP 协议ID 50 标识。
🔎 IPSec Encapsulating Security Payload (ESP)
ESP传输模式与隧道模式对比:
- 隧道模式对整个IP包进行认证和加密,因此可以提供数据流加密服务,而传输模式由于IP包首部不被加密,因此无法提供数据流加密服务。但是,隧道模式由于增加了一个新IP首部,降低了链路的带宽利用率。
- 传输模式适合于保护支持ESP协议的主机之间的通信连接,而隧道模式则在包含防火墙或其它用于保护可信内网不受外网攻击的安全网关的配置中比较有效。
🕤 2.4.4 ESP与NAT的兼容性问题
- AH与NAT不兼容,而ESP不对IP包首部(含选项字段)进行认证,因此不存在和NAT不兼容的问题。
- 如果通信的任何一方具有私有地址或在安全网关后面,仍然可以用ESP来保护其安全,因为NAT网关或安全网关可以修改IP首部中的源/目的IP地址来确保双方的通信不受影响
🕤 2.4.5 ESP与AH对比
安全性 | AH | ESP |
---|---|---|
协议号 | 50 | 51 |
数据完整性检验 | 支持 | 支持(不验证IP头) |
数据源认证 | 支持 | 支持 |
数据加解密 | 不支持 | 支持 |
抗重放服务 | 支持 | 支持 |
NAT-T(nat穿透) | 不支持 | 支持 |
Q:IPsec体系结构文档中指出,当两个传输模式SA被绑定,在同一个端对端流中允许AH和ESP两种协议,但认为只有先施ESP协议再实施AH协议才合适,为什么?
A:主要是性能上的考虑,由于解密处理需要大量占用CPU和内存,在通过认证(完整性验证)后再进行解密处理会更好一些,如果认证没有通过就不需要执行耗时的解密操作了。
🕘 2.5 网络密钥交换
🕤 2.5.1 IPsec密钥管理
IPsec支持以下两种密钥管理方式:
- 手动(manual):管理员为每个系统手动配置所需密钥,只适用于规模相对较小且结点配置相对稳定的环境。
- 自动(automated):系统通过IKE(Internet Key Exchange)协议自动为SA创建密钥,适用于大型分布式系统中的密钥管理。
IKEv1:默认的IPsec自动型密钥管理协议是ISAKMP/Oakley,包括:
- 互联网安全关联和密钥管理协议(Internet Security Association and Key Management Protocol, ISAKMP)
- Oakley密钥确定协议(Oakley Key Determination Protocol),基于Diffie-Hellman算法的密钥交换协议
在IKEv2中,不再使用术语ISAKMP和Oakley,并且对ISAKMP和Oakley的使用方式也发生了变化,但是基本功能还是相同的。后面介绍的内容是IKEv2.
🕤 2.5.2 密钥确定协议
Diffie-Hellman回顾:
- 两个优点:
- 仅当需要时才生成密钥,减小了将密钥存储很长一段时间而致使遭受攻击的机会;
- 除对全局参数的约定外,密钥交换不需要事先存在的基础设施。
- 两个缺点:
- 没有提供双方身份的任何信息,因此易受中间人攻击;
- 算法是计算密集型的,容易遭受阻塞性攻击;
- 易受重放攻击。
IKE对Diffie-Hellman的改进:
- 允许双方协商得到一个组(group),相录于Diffie-Hellman密钥交换的全局参数;
- 允许交换Diffie-Hellman的公钥值;
- 对Diffie-Hellman交换进行身份认证,以阻止中间人攻击
- 采用Cookie机制来防止拥塞攻击;
- 使用现时值来阻止重放攻击;
🕞 2.5.2.1 Group
使用不同的组(group)进行Diffie-Hellman密钥交换。每个组包含两个全局参数的定义和算法标识。当前的规范包括如下几个组:
(1)768 比特模的模幂运算
q = 2 768 − 2 704 − 1 + 2 64 × ( ⌊ 2 638 × π ⌋ + 149686 ) α = 2 \mathrm{q}=2^{768}-2^{704}-1+2^{64} \times\left(\left\lfloor 2^{638} \times \pi\right\rfloor+149686\right) \quad \alpha=2 q=2768−2704−1+264×(⌊2638×π⌋+149686)α=2
(2)1024 比特模的模幕运算
q = 2 1024 − 2 960 − 1 + 2 64 × ( ⌊ 2 894 × π ⌋ + 129093 ) α = 2 \mathrm{q}=2^{1024}-2^{960}-1+2^{64} \times\left(\left\lfloor 2^{894} \times \pi\right\rfloor+129093\right) \quad \alpha=2 q=21024−2960−1+264×(⌊2894×π⌋+129093)α=2
(3)1536 比特模的模幕运算
参数特定。
(4)基于
2
155
2^{155}
2155 的椭圆曲线组
生成器(十六进制)参数:
X
=
7
B
,
Y
=
1
C
8
X=7B, Y=1C8
X=7B,Y=1C8
椭圆曲线参数(十六进制)参数:
X
=
0
,
Y
=
7338
F
X=0, Y=7338F
X=0,Y=7338F
(5)基于
2
185
2^{185}
2185 的椭圆曲线组
生成器(十六进制)参数:
X
=
18
,
Y
=
D
X=18, Y=D
X=18,Y=D
椭圆曲线参数(十六进制)参数:
X
=
0
,
Y
=
1
E
E
9
X=0, Y=1EE9
X=0,Y=1EE9
🕞 2.5.2.2 Cookie机制
Cookie交换(Cookie exchange)要求各方在初始消息中发送一个伪随机数 Cookie,并要求对方确认。
此确认必须在Diffie-Hellman密钥交换的第一条消息中重复。如果源地址被伪造,则攻击者就不会收到应答。这样,攻击者仅能让用户产生应答而不会进行Diffie-Hellman计算
ISAKMP规定Cookie的产生必须满足:
- Cookie必须依赖于特定的通信方
- 从而防止攻击者得到一个正在使用真正的IP地址和UDP端口的Cookie时
- 也无法用该Cookie向目标主机发送大量的来自随机选取的IP地址和端口号的请求来浪费目标主机的资源
- 除了发起实体以外的任何实体都不可能产生被它承认的Cookie。
- 这就意味着发起实体在产生和验证Cookie时,要使用本地的秘密信息,而且根据任何特定的Cookie都不可能推断出该秘密信息
- Cookie的产生和验证必须尽可能地快速完成,从而阻止企图通过占用处理器资源的阻塞攻击
- 一种产生Cookie的方法是对以下信息进行HASH运算后,取前
64
位:
源IP地址 + 目的IP地址 + UDP源端口 + UDP目的端口 + 随机数 + 当前日期 + 当前时间
🕞 2.5.2.3 身份认证
IKE使用三种不同的身份认证方法:
- 数字签名:用双方均可以得到的散列值进行签名来进行身份认证,每一方都用自己的私钥加密散列值。散列值使用重要的身份参数(如用户ID、现时值)来生成。
- 公钥加密:利用对方公钥对用户身份参数(如用户ID、现时值)加密来进行身份认证。
- 对称密钥加密:通过带外机制得到密钥,并且该密钥对交换的身份参数进行加密。
🕞 2.5.2.4 防重放攻击
IKE使用现时值(nonce)来反重放攻击。每个现时值是本地产生的伪随机数,在应答中出现,并在交换时被加密以保护它的可用性
🕤 2.5.3 IPsec工作过程
协商过程分成:
- 第一阶段:交换密码算法、验证身份,建立IKE SA,保护第二阶段通信
- 第二阶段:双方认证,建立IPsec SA(IKEv1有,IKEv2没有)
采用模式:
- 第一阶段:主模式(6条消息)/积极模式(3条消息)
- 第二阶段:快速模式(3条消息)
🕞 2.5.3.1 IKEv1交换过程
- ①中安全提议有加密算法、认证算法、DH组、身份认证方法、存活时间。
- ③④交换DH参数和时变值。
简答题:简述IKEv1第一阶段中主模式和积极模式的区别
答:两种模式都有协商提议、密钥交换、身份认证的阶段。
主模式的第一阶段是协商密码,而积极模式第一阶段是协商提议、密钥交换、身份认证都包含。主模式需要6条消息,积极模式只需要3条消息。主模式在第三阶段(身份认证)是有加密保护的,而积极模式没有保护。
🕞 2.5.3.2 IKEv2交换过程
🕤 2.5.4 IKE消息格式
- IKE协议定义了建立、协商、修改和删除安全关联的过程和报文格式。
- IKE报文由首部和一个或多个载荷组成,并包含在传输协议(规范要求在实现时必须支持UDP协议)
🕤 2.5.5 IKE密码组件
IPsecv3和IKEv3协议依赖于多种密码算法。每种应用可能需要使用多种密码算法,而每种密码算法也有很多参数。为了提高互操作性,IETF通过RFC4308和RFC4869定义了各种应用的推荐密码算法和参数。
单选题:以下关于IKE说法不正确的是?()
A.lKE报文由首部和一个或多个载荷组成,并包含在TCP报文中
B.密钥交换是IKE的一种载荷,主要包含密钥交换数据
C.lKE的首部中包含发起方SPI和应答方SPI字段,发送方发送的第一个报文中应答方SPI全置0
D.IKE首部中的邻接载荷的内容指向IKE带的第一个载荷
答案:A
🕤 2.5.6 IKE交互过程抓包分析
🕘 2.6 SA组合
Q:为什么要组合SA?
A:单个SA只能实现AH协议或ESP协议,而不能同时实现这两者。但在实际应用中,一些流量需要同时调用由AH和ESP提供的服务,某些流量可能需要主机间的IPsec服务的同时还需要在安全网关(如防火墙)间得到IPsec提供的服务。在这些情况下,同一个流量可能需要多个SA才能获得想要的IPsec服务。
提供特定IPsec服务集而组合在一起的SA系列称为“安全关联束(Security Association Bundle)”
- 安全关联束中的SA可以在不同节点上终止,也可在同一个节点上终止
- 两种方式将多个SA组合成安全关联束:传输邻接(transport adjacency)与隧道迭代(Iterated Tunneling)
在组合多个SA形成安全关联束时,需要考虑认证和加密的顺序问题
- 先加密后认证
- 先认证后加密
先加密后认证的好处是:接收方只有在认证通过后才解密,而解密是很耗时的,这样的好处是可提高性能。
🕘 2.7 IPsec的应用
IPsec在IP层对所有流量进行加密和/或认证,因此能够保护各种基于IP的应用
- 终端用户通过互联网实现安全的远程访问
- 分支机构通过互联网构建一个安全的虚拟专用网络
- 与合作者建立企业间联网和企业内联网接入
将IPsec应用于上述场景的实质就是构建基于IPsec的虚拟专用网(Virtual Private Network, VPN)
利用IPsec实现安全通信有以下优点:
- 当在路由器或防火墙等边界设备中启用IPsec时,认证和加密过程均在路由器或防火墙中进行,而其后面的公司或者工作组内部的通信不会引起与安全相关的开销
- IPsec位于传输层之下,所以对应用是透明的
- IPsec对终端用户是透明的
- 若有必要,IPsec给个人用户提供安全性
🕒 3. IPv6协议及其安全性分析
IPv6通过IPsec来保证IP层的传输安全,提高了网络传输的保密性、完整性、可控性和抗否认性
安全问题:
- IPv4向IPv6过渡技术的安全风险
- 无状态地址自动配置的安全风险
- IPv6中PKI管理系统的安全风险
- IPv6编址机制的隐患
🔎 网络层绕过IDS/IPS的一些探索
🔎 “失控”的 IPv6:观察 IPv6 网络环境安全现状
🕒 4. 路由安全
路由协议的脆弱性:
- 协议设计上的问题,即协议机制上的不完善(如认证机制、防环路机制、路由度量机制等)导致的安全问题
- 协议实现上的问题,即许多协议规范中的协议行为在实际网络环境中并没有实现或做的不够完善而导致的安全问题
- 管理配置产生的安全问题,很多网络管理员在配置路由协议器时,没有或错误地配置相应的加密和认证机制,带来了很多安全风险
路由协议的安全保障:
- IPv4网络中,路由安全主要依靠路由协议本身提供的安全机制来保障,如认证和加密机制。而在IPv6网络中,路由安全则主要依靠前面介绍的IPsec协议提供的认证和加密服务来保障
🕘 4.1 RIP协议及其安全性分析
🔎 【网络协议详解】——RIP协议(学习笔记)
- RIPv1不支持认证,且使用不可靠的UDP协议作为传输协议,安全性较差。
- 如果在没有认证保护的情况下,攻击者可以轻易伪造RIP 路由更新信息,并向邻居路由器发送,伪造内容为目的网络地址、子网掩码地址与下一条地址,经过若干轮的路由更新,网络通信将面临瘫痪的风险
- RIPv2在其报文格式中增加了一个可以设置16个字符的认证选项字段,支持明文认证和MD5加密认证两种认证方式,字段值分别是16个字符的明文密码字符串或者MD5签名。
- RIP认证以单向为主,R2发送出的路由被R1授受,反之无法接受。另外,RIPv2协议路由更新需要配置统一的密码
- 明文认证的安全性仍然较弱
对于不安全的RIP协议,中小型网络通常可采取的防范措施包括:
- ①将路由器的某些接口配置为被动接口,配置为被动接口后,该接口停止向它所在的网络广播路由更新报文,但是允许它接收来自其他路由器的更新报文;
- ②配置路由器的访问控制列表,只允许某些源IP 地址的路由更新报文进入列表
RIPng为IPv6环境下运行的RIP协议,采用和RIPv2完全不同的安全机制。
RIPng使用和RIPv1相似的报文格式,充分利用IPv6中IPsec提供的安全机制,包括AH认证、ESP加密以及伪报头校验等,保证了RIPng路由协议交换路由信息的安全。
🕘 4.2 OSPF协议及其安全性分析
🔎 【网络协议详解】——OSPF协议(学习笔记)
OSPF协议可以对接口、区域、虚链路进行认证
- 接口认证要求在两个路由器之间必须配置相同的认证口令。
- 区域认证是指所有属于该区域的接口都要启用认证,因为OSPF以接口作为区域分界。区域认证接口与邻接路由器建立邻居需要有相同的认证方式与口令,但在同一区域中不同网络类型可以有不同的认证方式和认证口令。配置区域认证的接口可以与配置接口认证的接口互相认证,使用MD5认证口令ID要相同
OSPF认证方式
- 空认证(NULL,即不认证,类型为0),默认认证方式
- 简单口令认证(类型为1)
- MD5加密身份认证(类型为2)
OSPF报文格式中有二个与认证有关的字段:认证类型(AuType, 16位)、认证数据(Authentication, 64位)
同RIPng一样,OSPFv3协议自身不再有加密认证机制,取而代之的是通过IPv6的IPsec协议来保证安全性,路由协议必须运行在支持IPsec的路由器上。
- IPsec可确保路由器报文来自于授权的路由器;重定向报文来自于被发送给初始包的路由器;路由更新未被伪造
OSPF攻击方式
- 最大年龄(Max Age attack)攻击
- 序列号加1(Sequence++)攻击
- 最大序列号攻击
- 重放攻击
- 篡改攻击
🕒 5. IPsec VPN 配置实验
实验平台:GNS3
设备 | 接口 | IP地址 | 地址掩码 | 默认网关 |
---|---|---|---|---|
R1 | F0/0 | 10.0.1.254 | 255.255.255.0 | - |
F0/1 | 172.30.2.1 | 255.255.255.0 | - | |
R2 | F0/0 | 10.0.2.254 | 255.255.255.0 | - |
F0/1 | 172.30.2.2 | 255.255.255.0 | - | |
PC-1 | E0 | 10.0.1.1 | 255.255.255.0 | 192.168.1.254 |
PC-2 | E0 | 10.0.2.1 | 255.255.255.0 | 192.168.2.254 |
🕘 5.1 配置IPSec前的准备工作
- 确认在配置IPSec之前,网络是通的。
- 确认AH流量(IP协议号为50)、 ESP流量(IP协议号为51)和ISAKMP流量(UDP的端口500)不会被ACL所阻塞。
- 在R1上ping路由器R2
- R1上要有到site2的路由, R2上有到site1的路由
- 有必要的情况下,在路由器中添加类似以下的ACL条目:
R1# show access-lists
access-list 102 permit ahp host 172.30.2.2 host 172.30.2.1
access-list 102 permit esp host 172.30.2.2 host 172.30.2.1
access-list 102 permit udp host 172.30.2.2 host 172.30.2.1
eq isakmp
🕘 5.2 配置IKE参数
步骤:
- 启用IKE
- 创建IKE策略集policy
- 配置IKE身份认证的相关参数
- 验证IKE配置
R1(config)#crypto isakmp enable # 启用IKE
# 创建IKE策略集
R1(config)#crypto isakmp policy 110
R1(config-isakmp)#encryption des
R1(config-isakmp)#hash md5
R1(config-isakmp)#group 1
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#life 86400
R1(config-isakmp)#exit
R1(config)#crypto isakmp key cisco add 172.30.2.2 # 配置IKE身份认证的相关参数
# 两端路由器使用的共享密钥(本例是cisco)必须相同,可以用IP地址或主机名来指定对端
Authentication—身份认证方式
Encryption—加密算法
Group—DH算法组
Hash—摘要算法
Lifetime—IKE生存期
🕘 5.3 配置IPSec参数
步骤:
- 配置IPSec变换集
- 用ACL定义需要IPSec保护的流量
- 创建crypto map
- 把crypto map 应用到路由器的端口上
# 配置IPSec变换集
R1(config)#crypto ipsec transform-set mine esp-des # mine是自定义的名字
R1(cfg-crypto-trans)#mode tunnel
# 每个变换集中可以包含AH变换、ESP变换和封装模式(隧道模式或传输模式)
# 每个变换集中最多可以有一个AH变换和两个ESP变换,详见下面信息
R1(cfg-crypto-trans)#exit
R1(config)#access-list 110 permit tcp 10.0.1.0 0.0.0.255 10.0.2.0 0.0.0.255 # 用ACL定义需要IPSec保护的流量,110是名字,注意两端路由器要配置对称的ACL
R1(config)#crypto map youmap 110 ipsec-isakmp # 创建crypto map,youmap是自定义的名字
# 每个路由器端口只能应用一个crypto map
# 当一个端口有多个VPN对端时,就使用seq-num来区分
R1(config-crypto-map)#match add 110
R1(config-crypto-map)#set peer 172.30.2.2
R1(config-crypto-map)#set pfs group1
R1(config-crypto-map)#set transform mine
R1(config-crypto-map)#set sec life sec 86400
R1(config-crypto-map)#exit
# 把crypto map 应用到路由器的端口上
R1(config)#int f0/1
R1(config-if)#crypto map youmap
R1(config-if)#exit
路由器IOS支持的变换:
R1(config)#crypto ipsec transform-set transform-set-name ?
ah-md5-hmac AH-HMAC-MD5 transform
ah-sha-hmac AH-HMAC-SHA transform
comp-lzs IP Compression using the LZS compression algorithm
esp-3des ESP transform using 3DES(EDE) cipher (168 bits)
esp-aes ESP transform using AES cipher
esp-des ESP transform using DES cipher (56 bits)
esp-md5-hmac ESP transform using HMAC-MD5 auth
esp-null ESP transform w/o cipher
esp-seal ESP transform using SEAL cipher (160 bits)
esp-sha-hmac ESP transform using HMAC-SHA auth
🕘 5.4 测试并验证IPSec是否正常工作
注:R2配置同上,注意IP区别即可。
OK,以上就是本期知识点“IP及路由安全”的知识啦~~ ,感谢友友们的阅读。后续还会继续更新,欢迎持续关注哟📌~
💫如果有错误❌,欢迎批评指正呀👀~让我们一起相互进步🚀
🎉如果觉得收获满满,可以点点赞👍支持一下哟~文章来源:https://www.toymoban.com/news/detail-754665.html
❗ 转载请注明出处
作者:HinsCoder
博客链接:🔎 作者博客主页文章来源地址https://www.toymoban.com/news/detail-754665.html
到了这里,关于【信息安全原理】——IP及路由安全(学习笔记)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!