第五章 ip层安全协议——IPsec(郑大网安自用)

IPsec体系

image-20231221151803745

AH(Authentication Header)认证首部

提供如下3种服务:

  • 数据完整性验证 通过哈希函数(如MD5)产生的校验来保证
  • 数据源身份认证 通过在计算验证码时加入一个共享密钥来实现
  • 防重放攻击 AH报头中的序列号可以防止重放攻击

格式、封装:……

运行模式

传输模式

AH插入到IP首部(包括IP选项字段)之后、传输层协议(如TCP、UDP)或者其它IPsec协议之前

image-20231221195118831

AH验证区域是整个IP包(可变字段?除外),包括IP包首部,若源IP地址、目的IP地址修改,无法通过验证

数据包经过NAT网关时,源/目的IP地址会被改变,会造成到达目的地址后的完整性验证失败

结论:AH在传输模式下和NAT相互冲突,不能同时使用,即:AH不能穿越NAT

隧道模式

AH插入到原始IP首部之前,然后在AH之前再增加一个新的IP首部

image-20231221195309587

ESP(Encapsulating Security Payload )封装安全载荷

比AH多提供两种服务:

  • 数据包加密 可以对整个IP包,也可以只加密IP包的载荷部分,一般用于客户端计算机
  • 数据流加密 一般用于支持IPsec的路由器,源端路由器并不关心IP包的内容,对整个IP包进行加密后传输,目的端路由器将该包解密后将原始包继续转发

加密是ESP的基本功能,而数据源身份认证、数据完整性验证以及防重放攻击都是可选的

格式、封装:……

运行模式

传输模式

image-20231221195654010

加密不包括SPI、序号字段和验证数据

验证不包括IP首部,所以不存在与NAT冲突的问题

隧道模式

在隧道模式中,ESP插入到原始IP首部之前,然后在ESP之前再增加一个新的IP首部

image-20231221195824804

IKE(Internet Key Exchange)

IKE协议负责密钥管理,定义了通信实体间进行身份认证、协商加密算法以及生成共享会话密钥的方法。

IKE将密钥协商的结果保留在安全关联(SA)中,供AH和ESP通信使用

IKE协议具有完善的前向安全性(PFS),即使第三方截获用于计算密钥的所有交换数据,也不足以计算出密钥。

IKE协议有两种模式:主模式和野蛮模式。主模式适用于安全通信双方之间存在安全通道的情况,而野蛮模式适用于安全通信双方之间不存在安全通道的情况。IKE协议通过交换密钥和身份验证信息,最终建立起一个安全的通信通道,用于后续的IPsec通信。

两个阶段

阶段一:通信双方彼此间建立一个已通过身份验证和安全保护的通道。此阶段的交换建立了一个ISAKMP安全关联,也可称为IKE SA

主模式

image-20231221194246872

野蛮模式

image-20231221194304041

阶段二:在IKE SA的保护下完成IPsec的协商(如AH SA、ESP SA)

image-20231221194422822

DOI(Domain of Interpretation )

解释域,定义IKE没有定义的协商的内容,如:为使用IKE进行协商SA的协议统一分配标识符

共享一个DOI的协议从一个共同的命名空间中选择安全协议和变换、共享密码以及交换协议的标识符等

IPsec协议流程

image-20231221153428462

外出处理

传输层的数据包流入IP层,以选择符检索SPD(安全策略库),判断是否需要Ipsec加密,

可能有以下几种情况:

  • 丢弃:简单丢掉
  • 绕过安全服务:为载荷增添IP头,然后分发IP包
  • 应用安全服务:查询SAD(安全关联库),确定是否存在有效的SA
    ① 存在有效SA:取出相应参数,将数据报封装,然后发送
    ② 尚未建立SA:启动IKE协商,成功后按存在有效SA一样的步骤处理,不成功则将数据报丢弃
    ③ 存在SA但无效:请求协商新SA,成功后按存在有效SA一样的步骤处理,不成功则将数据报丢弃

进入处理

检查包内是否有IPsec头?

如果没有,则根据安全策略SP对包进行检查,决定如何处理:

  • 丢弃:直接丢弃
  • 应用安全服务:SA没有建立,包同样会被丢弃
  • 将包传给上层协议处理
  • 如果IP包中包含IPsec头:
    I. 从IP包中提取三元组(SPI,目标地址,协议)并在SAD中检索。如果未建立SA或SA无效,直接丢弃,不再协商。
    II. 根据协议值交给AH层或ESP层处理
    III.协议载荷处理完之后,要在SPD中查询策略,验证SA使用是否得当。

SPD与SAD的关系

SPD(Security Policy Database,安全存策略数据库)

是IPsec协议中用于存储安全策略(SP)信息的数据库。SPD用于存储SP信息,以便在IPsec通信过程中快速查找和匹配SP。

SP(Security Policy,安全策略):

  • 决定对IP数据包提供何种保护,并以何种方式实施保护
  • 根据源IP地址、目的IP地址、入数据还是出数据等来标识
  • IPsec还定义了用户能以何种粒度来设定自己的安全策略,不仅可以控制到IP地址,还可以控制到传输层协议或者TCP/UDP端口等

SAD(Security Association Database,安全关联数据库)

是IPsec协议中用于存储安全关联(SA)信息的数据库。SAD用于存储SA信息,以便在IPsec通信过程中快速查找和匹配SA。

SA(Security Association,安全关联)

  • 两个IPsec实体(主机、安全网关)经过协商建立起来的一种协定或关联,是构成IPsec的基础
  • 包括:采用何种IPsec协议(AH or ESP)、运行模式(传输模式 or 隧道模式)、验证算法、加密算法、加密密钥、密钥生存期、抗重放窗口、计数器等,从而决定了保护什么、如何保护以及谁来保护
  • 使用AH还是ESP保护通信需要在SA配置,IKE则用于在通信双方间协商SA
  • SA是单向的,分为进入SA和外出SA

每个SA由三元组(SPI,IP目的地址,IPsec协议)或(SPI, DST, Protocol),唯一标识

  • SPI(Security Parameter Index,安全参数索引),32位,标识具有相同IP地址和相同安全协议的不同SA,放在AH或ESP的头部
  • IP目的地址:SA的终端地址
  • IPsec协议:采用AH或ESP

注:有时是四元组,加上源地址(SRC)

SAD中每个SA除了上述三元组之外,还包括:序列号、序列号溢出、抗重放窗口、存活时间/生存时间、模式、通道目的地、PMTU参数

关系

每当发出一个数据包时,根据SPD中对它的策略判断是否进行IPsec处理

  • 如果是,从SAD中找到对应SA,然后根据SA提供的参数,对数据包进行加解密 、生成校验和、封装成AH/ESP等操作
  • 如果否,则后续处理与SAD无关

每当接收到一个数据包时,判断是否包含IPsec头

  • 如果是,从SAD中找到对应SA,提交给AH/ESP等操作。根据SPD判断处理是否符合安全策略。
  • 如果否,按照丢弃、不用IPsec和使用IPsec(丢弃)判断处理。

IPsec的实现方式

主机实施

OS集成

作为网络层的一部分来实现

堆栈中的块

BITS(Bump-in-the-stack), 作为一个“楔子”插入网络层与数据链路层之间,

路由器实施

原始实施:等同于主机上的OS集成方案,集成在路由器软件,如Cisco

BITW(Bump-in-the-wire):等同于BITS,在设备中实施,直接接入路由器的物理接口,不运行路由算法,只保障数据包的安全

一个完整的IPsecVPN工作原理

image-20231221200722230

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值