之前我们对密码学的基本概念和一些基础知识做了简介,其中包括加密、完整性校验、消息验证码、数字签名等。这一篇章将对IPSec的基本框架进行简介,并介绍上一篇长学习的各部分知识如何在IPSec的基本架构中进行运用。今天课课家小编就给大家详细来介绍一下。
什么是IPSec
IPSec不是单独的某个协议,它给出应用于IP层上网络数据安全的一整套方案,其主要包括如下组件:
①工作模式
传输模式(transport mode)
隧道模式(tunnel mode)
②封装数据包
认证头协议AH(IP Authentication Header)
安全载荷协议ESP(IP Encapsulating Security Payload)
③秘钥管理
因特网秘钥交换协议IKE(Internet Key Exchange Protocol)
④流量保护
安全关联SA(Security Association)
⑤两个数据库
SPD—安全策略数据库
SADB—安全关联数据库
相关术语
①通信点:实际进行数据通信的站点。例如发送数据的PC
②加解密点:负责将实际通信的数据进行加密和解密的站点。例如配置IPSec VPN的设备
IPSec解决方案工作模式
IPSec的解决方案中有两个工作模式,一个是传输模式,一个是隧道模式。每个模式使用的场景不同,对数据的处理方式也不同,下面我们来详细了解一下这两种模式的区别。
传输模式
在传输模式下,AH或ESP被插入到IP头之后但在所有传输层协议之前,或所有其他IPSec协议之前。
使用场景
传输模式用于两台主机之间的通讯,或者是一台主机和一个安全网关之间的通讯。在传输模式下,对报文进行加密和解密的两台设备本身必须是报文的原始发送者和最终接收者。换句话说,就是加解密点是实际的通信点。正是因为如此,如果通信双方的IP地址是私网地址,那么该VPN无法穿越Internet。如下场景:
隧道模式
在隧道模式下,AH或ESP插在原始IP头之前,另外生成一个新IP头放到AH或ESP之前。
使用场景
隧道模式经常使用在网络到网络的场景中。
通常,在两个安全网关(路由器)之间的数据流量,绝大部分都不是安全网关本身的通讯量,因此在安全网关之间一般不使用传输模式,而总是使用隧道模式。在一个安全网关被加密的报文,只有另一个安全网关能够解密。因此必须对IP报文进行隧道封装,即增加一个新的IP头,进行隧道封装后的IP报文被发送到另一个安全网关,才能够被解密。如下场景:
封装协议
IPSec是为了在网络层为IP分组提供安全服务,这些服务包括访问控制、数据完整性、身份验证、防止重放和数据机密性。
安全载荷协议ESP和认证头协议AH是两种IPSec安全协议,用于为IP数据报提供这种安全协议,接下来我们将简介这两种协议。
安全载荷协议ESP(IP Encapsulating Security Payload)
ESP主要提供私密性、数据完整性、源认证、防重放服务,其协议号为50,没有端口号,。支持两种工作模式,详细报文如下:
以下为各个常见字段的含义
认证头协议AH(IP Authentication Header)
主要提供数据完整性、源认证、防重放攻击,不提供私密性,协议号为51,详细报文如下:
以下为各常见字段的含义
注意:AH中出了服务类型、标志、段偏移量、TTL等值是不用变化的,其他的值都需要进行哈希计算,其中包括源目IP地址,所以在经过NAT之后,哈希值不一样,导致无法验证。如下图所示:
AH和ESP协议组合使用
安全关联SA(Security Association)
两个IPSec实体(主机、安全网关)之间经过协商建立起来的一种协定,内容包括采用何种IPSec协议(AH还是ESP )、运行模式(传输模式还是隧道模式)、验证算法、加密算法、加密密钥、密钥生存期、抗重放窗口,从而决定了保护什么、如何保护以及谁来保护。可以说SA是构成IPSec的基础。
安全关联是IPSec的基本组成部分,一个正产的IPSec_VPN会有以下两种SA:
①IKE SA
作用:保护第一阶段的协商流量和认证流量(上述紫色字体)
特点:双向的(一条关联可以用于A→B、A←B)、默认有效期1天
②IPSec SA
作用:保护实际传输的流量(上述绿色字体)
特点:单向的(一条关联要么用于A→B,要么用于B→A。一条感兴趣流,有两条IPSec SA)、默认有效期1个小时
注意:这两种SA都是IKE协议协商产商的。
SPD和SADB数据库
SPD—安全策略数据库
①SPD用于存放IPSec_VPN的策略,这些策略用来定义哪些流量需要走IPSec(也就是感兴趣流)
②SPD存储的主要内容如下:
源目IP地址、源目端口、封装协议、工作模式
③SPD的三种行为:
A、旁路:当数据包源目IP不匹配SPD记录的策略时,按照路由表转发。
B、IPSec加密:当数据包的源目IP匹配SPD记录策略时,交给相应的封装来执行IPSec处理
C、丢弃:这个内容比较多,在“方向crypto-map”中详解。
SADB—安全关联数据库
在两个端点之间建立IPSec安全关联时,需要创建用于对数据流进行加密或验证的安全状态信息。安全关联状态存储在一种名为安全关联数据库(SADB)的数据结构中。两个IPSec对等体之间的通信出现故障时,必须清楚对等体的SADB,并在回复IPSec安全关联时重新创建。
①SADB中的每一个条目都定义了与一个SA相关联的参数,当一个IPSec_SA被创建,SADB就会更新所有关于这个SA的参数
②主要存储的内容如下:
SPI、封装协议(包括加密算法、完整性校验)、工作模式
③主要行为
A、当一个inbound-IPSec数据包抵达,SADB基于外层IP头部的目的IP地址、SPI、IPSec封装协议,三个标识查找对应的SA。
B、然后用这个SA的相参数处理这个inbound_IPSec数据包
C、对于outbound_IPSec数据包处理的相关参数,室友SPD相关联的SA来获取。
两个数据库处理的大致流程
总结来说:SPD决定是否要处理数据,SADB决定如何处理数据。
IPSec数据处理流程
outbound流量
①办事处发送一个数据包,源为202.200.200.1,目的为7.7.1.1,下一跳到Site_2
②Site_2依据路由表进行转发,法相该接口部署了一个crypto-map
③因此Site_2执行SPD查询,查看是否有关于该数据(源为202.200.200.1,目的为7.7.1.1)的安全策略。
④若策略表中ACL所关联的感兴趣流,能够匹配该流量,则执行IPSec加密(转换集)
⑤然后检查是否建立了到IPSec对等体的安全关联
如果有,则依据该安全关联直接转发
如果没有,则所有想要发送的数据包都将被丢弃,直到该安全关联被建立
inbound流量
①Site_1接收到该数据包,依据SADB中的三个标识找到对应的SA
②找到匹配的SA之后,使用对应的安全策略对该数据执行认证和解密
③再将解密后数据包的源目IP地址、源目端口号、IP协议号与SPD数据进行对比,以确保其有效性。
④以上步骤完成后,Site_1按照常规转发方式,将明文数据包发送到目的地(7.7.1.1)
以上我们了解了IPSec解决方案中各部分的大致内容,但是在运用这个解决方案的过程中,有一个关键的步骤:各个部分用来协商秘钥的参数以及一些共享密钥如何交换?这部分的内容由因特网必要交换协议进行解决(IKE),IKE又分为IKEv1和IKEv2两个版本,他们是IPSec解决方案的核心组成部分。下一节我们将简介IKEv1的主要内容。
课课家教育,拥有十年华为网络工程师认证培训经验,课课家教育一直坚持自主研发,将丰富的华为网络工程师培训经验有效融入教程研发过程,自成体系的华为网络工程师视频教程和华为网络工程师培训教材、华为网络工程师在线题库,使考生的学习更具系统性,辅导更具针对性。
>>>>>>点击进入华为认证专题
¥699.00
¥399.00
¥399.00
¥299.00