IPSEC的实现方式

在IPSEC通信中涉及到一个重要方面,那就是如何定义要保护的数据流(又称为感兴趣流)。这不仅涉及到IPSEC最终要保护哪部分数据,还关系到IPSEC的实现方式,因此有必要把感兴趣流的定义方式进行详细说明。

1. 感兴趣流的定义方式

“感兴趣流”指的是哪些数据可以进入IPsec隧道进行传输,哪些数据不能进入IPsec隧道传输。在现有的IPsec 实现过程中,最常用的实现方式有两种:“基于ACL”“基于虚拟隧道接口”。下面我们对这两中方式进行详细的介绍。

2. 基于ACL(访问控制)方式

​ 我们知道,高级IP ACL可以基于源/目的IP地址、源/目的端口、协议等信息对数据报文进行过滤, 而这IPsec正好可以使用ACL的方式来确定哪些数据报文需要隧道保护。

​ 当使用当采用ACL的方式来定义“感兴趣流”时,手动方式和IKE协商方式建立的IPsec 隧道是由高级ACL来指定需要保护的数据流范围,并从中过滤出需要进行IPsec隧道的报文。ACL规则允许的报文(permit)将被保护;ACL规则拒绝的报文(deny)将不会被保护。

​ 因为这里的ACL为高级IP ACL, 所以可以明确的指定数据报文中的源/目的IP地址**、源/目的端口、**协议类型等参数。但是这里的源、目的IP地址指数据发送方和接收方的主机IP地址,通常是两端内部网络中的私网地址。

​ 这种基于ACL方式定义感兴趣流的方式的优点是:

可以利用ACL配置的灵活性,根据IP地址、端口信息、协议类型(TCP, UDP, ICMP, IP等)等信息对报文进行过滤从而指定灵活的IPSec保护方法。

3. 基于虚拟隧道接口方式

​ 基于虚拟隧道接口来定义需要保护的数据流,首先需要在两端的IPsec设备创建一个虚拟的隧道接口Tunnel, 然后通过配置以该Tunnel接口为出接口的静态路由,以此来将到达某一个子网的数据流量通过IPSec隧道进行转发。因为Tunnel接口为点对点类型的接口,是运行PPP链路层协议的,因此以该接口为出接口的静态路由是可以不指定下一跳IP地址的。

​ IPsec虚拟隧道接口是一种三层逻辑接口,采用这种方式时,所有路由到IPsec虚拟隧道接口上的报文都将进行IPSec保护,而不再对数据流类型进行细分。使用IPSec虚拟隧道接口有如下诸多优点:

  • 简化配置

    只需要将IPSec保护的数据流引到虚拟隧道接口上,无需再通过ACL来定义加解密流量的特征。这使得IPSec的配置不会受到网络规划的影响,增加了网络规划的可扩展性,降低了网络维护的成本。

  • 较小开销

    在保护远程接入用户流量的组网中,只需要在IPSec虚拟隧道接口处进行IPSec报文封装,与IPSec over GRE 或者 IPSec over L2TP方式的隧道封装相比,较少了封装层次,节省了带宽。

  • 支持范围更广

    点对点IPSec虚拟隧道接口可以支持动态路由协议,同时还可以支持对组播流量的报文。另外,IPSec虚拟隧道接口在实施过程中明确的区分出“加密前”和“加密后”两个阶段,用户可以根据不同的组网需求灵活的选择其他业务(例如NAT, QoS)实施的阶段。 例如用户希望对加密前的报文进行QoS,则可以在IPSec虚拟隧道接口上应用QoS策略;如果希望对IPSec封装后的报文应用QoS,则可以在报文发送的物理接口上应用QoS策略。

4. 虚拟隧道接口

​ IPSec 虚拟隧道接口(即Tunnel接口),是一种支持路由的三层逻辑接口,它可以支持动态路由协议、所有路由到IPSec虚拟隧道接口的报文都将进行IPSec保护,同时可以支持对组播流量的保护。

​ 下面简单介绍下IPSec隧道两端的虚拟隧道接口上报文处理流程:

4.1 IPSec虚拟隧道接口上封装和加密流程

用户数据到达IPSec设备(如路由器),需要被IPSec保护的报文(感兴趣流)会被转发到IPSec虚拟隧道接口上进行封装和加密。如下图所示:

  • Router将从入接口上收到的明文IP报文后发送到转发模块进行处理
  • 转发模块依据路由表查询结果进行转发,如果为相应的感兴趣流,会被引到IPSec虚拟隧道接口上进行AH或ESP封装;
  • IPSec虚拟隧道接口完成对明文的封装处理后,根据建立的IPSec SA安全策略再将封装后的报文进行加密,然后再将加密后的报文交由转发模块进行处理
  • 转发模块通过第二次转发查询后,将已经封装完毕的加密IPSec报文通过相应的物理接口发送出去,最终密文到达对端的IPSec设备的虚拟隧道接口上。

4.2 IPSec虚拟隧道接口上解封装和解密流程

数据经过IPSec隧道传输到达对端IPSec设备时,需要对数据包进行解密、解封装处理。它的处理流程如下所示:

  • Router将从入接口上收到的加密的IP报文发送到转发模块进行处理
  • 转发模块识别到此密文的目的IP地址为本设备的隧道接口IP地址,且IP报文协议号为ESP、AH、UDP时,会将此报文发送到相应的虚拟隧道接口上进行解密和解封装处理;
  • IPSec虚拟隧道接口完成对密文的解封装处理后,再将解封装后的报文交由转发模块进行处理
  • 转发模块通过第二次转发查询后,将IP明文通过相应的物理接口发送出去,最终密文到达相应的主机上。

IPSEC的实现方式的更多相关文章

  1. IPSec

    一. +IPSec(IP Security)Internet 协议安全性 是IFTF制定的为保证在Internet上传送数据的安全保密性能的框架协议 +IPSec包括报文验证头协议AH(协议号51)和 ...

  2. [转帖] IPsec相关知识 --未知来源

    目  录 IPsec IPsec简介 IPsec的协议实现 IPsec基本概念 加密卡 IPsec虚拟隧道接口 使用IPsec保护IPv6路由协议 IKE IKE简介 IKE的安全机制 IKE的交换过 ...

  3. IPSec协议框架

    文章目录 1. IPSec简介 1.1 起源 1.2 定义 1.3 受益 2. IPSec原理描述 2.1 IPSec协议框架 2.1.1 安全联盟 2.1.2 安全协议 报文头结构 2.1.3 封装 ...

  4. 技术分析:Femtocell家庭基站通信截获、伪造任意短信

    阿里移动安全团队与中国泰尔实验室无线技术部的通信专家们一起,联合对国内运营商某型Femtocell基站进行了安全分析,发现多枚重大漏洞,可导致用户的短信.通话.数据流量被窃听.恶意攻击者可以在免费申领 ...

  5. IPsec_VPN实现技术【转载】

    GRE Tunnel GRE Tunnel(General Routing Encapsulation 通用路由封装)是一种非常简单的VPN(Virtual Private Network 虚拟专用网 ...

  6. Femtocell家庭基站通信截获、伪造任意短信漏洞

    阿里移动安全团队与中国泰尔实验室无线技术部的通信专家们一起,联合对国内运营商某型Femtocell基站进行了安全分析,发现多枚重大漏洞,可导致用户的短信.通话.数据流量被窃听.恶意攻击者可以在免费申领 ...

  7. [转]Mac下配置基于SecurID的Cisco IPSec VPN全攻略(有图)

    来自: http://www.eefocus.com/Kevin/blog/11-09/230878_53c71.html RSA的SecurID长的是这个样子滴: Mac里面,可以设置VPN, 方法 ...

  8. 安全协议系列(五)---- IKE 与 IPSec(上)

    IKE/IPSec 属于网络层安全协议,保护 IP 及上层的协议安全.自上个世纪末面世以来,关于这两个协议的研究.应用,已经非常成熟.协议本身,也在不断地进化.仅以 IKE 为例,其对应的 RFC 编 ...

  9. 利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(下篇)

    续篇—— 利用开源软件strongSwan实现支持IKEv2的企业级IPsec VPN,并结合FreeRadius实现AAA协议(上篇) 上篇文章写了如何构建一个支持IKEv2的VPN,本篇记录的是如 ...

随机推荐

  1. 使用 GLFW 在 OpenGL 的场景中漫游

    前言 前面已经建立了 OpenGL 框架,加载了 3D 模型,但是还没有在场景中漫游的功能.为了展示 3D 模型,我只是简单地利用变换视图矩阵的方式使模型在视野中旋转.同时,之前的程序连最简单的改变窗 ...

  2. 【前端 · 面试 】HTTP 总结(十)—— HTTP 缓存应用

    最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正.交流. 争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火. 前言 通过前面几篇内容的学习,我们 ...

  3. RHCSA_DAY03

    cd 切换工作目录命令 cd(英文全拼:change directory)切换目录 命令格式:cd [-选项] [目录名] 提示:目录名称可以是绝对路径或相对路径,如果不指定目录名称,则切换到当前用户 ...

  4. Linux线程同步之读写锁(rwlock)

    读写锁和互斥量(互斥锁)很类似,是另一种线程同步机制,但不属于POSIX标准,可以用来同步同一进程中的各个线程.当然如果一个读写锁存放在多个进程共享的某个内存区中,那么还可以用来进行进程间的同步, 和 ...

  5. Axure RP 9 安装

    安装好的样子 官方安装包下载地址(速度较慢) 下载Axure RP 9 MAC版:https://axure.cachefly.net/AxureRP-Setup.dmg 下载Axure RP 9 P ...

  6. CVE-2020-0796提权操作

    简介 最新的windows10中使用了SMBv3协议,SMBv3协议在压缩消息时,未对头部数据做任何检查,导致恶意攻击者可以直接使用,从而导致内存破坏漏洞. 该漏洞可远程进行攻击目标系统,但目前只做到 ...

  7. noip11

    T1 考试的时候打的暴力,快结束的时候,脑抽加了个 long long,然后就... 痛失70pts QAQ. Your source code compiled to 8015900 bytes w ...

  8. kubebuilder实战之四:operator需求说明和设计

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  9. ASP.NET Core:依赖注入

    ASP.NET Core的底层设计支持和使用依赖注入.ASP.NET Core应用程序可以利用内置的框架服务将它们注入到启动类的方法中,并且应用程序服务能够配置注入.由ASP.NET Core提供的默 ...

  10. 01.SpringMVC之概述

    springMVC架构 SpringMVC是Spring框架的一个模块,Spring和SpringMVC无需通过中间整合层进行整合.SpringMVC是基于MVC架构的WEB框架.SpringMVC框 ...