Table of Contents

IPSec 的原理

IPSec 应用场景

IPSec封装模式

传输Transport模式

隧道Tunnel模式

传输模式和隧道模式的区别

IPSec协商​


IPSec 的原理

IPSec其实是IP Security的简称,IPSec 是目前技术中点击率非常高的一种技术,同时提供VPN和信息加密两项技术,这一期专栏就来介绍一下IPSec 的原理。

IPSec 应用场景

IPSec 的应用场景分为3种:

  1. Site-to-Site(站点到站点或者网关到网关):如3个机构分布在互联网的3个不同的地方,各使用一个商务领航网关相互建立隧道(Tunnel),企业内网(若干PC)之间的数据通过这些网关建立的IPSec隧道实现安全互联。
  2. End-to-End(端到端或者PC到PC): 两个PC之间的通信由两个PC之间的IPSec会话保护,而不是网关。
  3. End-to-Site(端到站点或者PC到网关):两个PC之间的通信由网关和异地PC之间的IPSec进行保护。

IPSec其实是IP Security的简称,它的目的是为IP提供高安全性特性,则是在实现这种安全特性的方式下产生的解决方案。IPSec是一个框架性架构,具体由两类协议组成:

  1. AH协议(Authentication Header 认证头,使用较少):可以同时提供数据完整性确认、数据来源确认、防重放等安全特性;AH常用摘要算法(单向Hash函数)MD5和SHA1实现该特性。
  2. ESP协议(Encapsulated Security Payload 封装的安全有效载荷,使用较广):可以同时提供数据完整性确认、数据加密、防重放等安全特性;ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用MD5或SHA1来实现数据完整性。

为何AH使用较少呢?因为AH无法提供数据加密,所有数据在传输时以明文传输,而ESP提供数据加密;其次AH因为提供数据来源确认(源IP地址一旦改变,AH校验失败),所以无法穿越NAT。当然,IPSec在极端的情况下可以同时使用AH和ESP实现最完整的安全特性,但是此种方案极其少见。

IPSec封装模式

介绍完IPSec 的场景和IPSec协议组成,再来看一下IPSec提供的两种封装模式(传输Transport模式和隧道Tunnel模式)

传输Transport模式

隧道Tunnel模式

上图是传输模式的封装结构,再来对比一下隧道模式:

传输模式和隧道模式的区别

  1. 传输模式在AH、ESP处理前后IP头部保持不变,主要用于End-to-End的应用场景。
  2. 隧道模式则在AH、ESP处理之后再封装了一个外网IP头,主要用于Site-to-Site的应用场景。

从上图我们还可以验证上一节所介绍AH和ESP的差别。

下图是对传输模式、隧道模式适用于何种场景的说明。

从这张图的对比可以看出:

  1. 隧道模式可以适用于任何场景
  2. 传输模式只能适合PC到PC的场景

隧道模式虽然可以适用于任何场景,但是隧道模式需要多一层IP头(通常为20字节长度)开销,所以在PC到PC的场景,建议还是使用传输模式。

为了使大家有个更直观的了解,我们看看下图,分析一下为何在Site-to-Site场景中只能使用隧道模式:

如上图所示,如果发起方内网PC发往响应方内网PC的流量满足网关的兴趣流匹配条件,发起方使用传输模式进行封装:

  1. IPSec会话建立在发起方、响应方两个网关之间。
  2. 由于使用传输模式,所以IP头部并不会有任何变化,IP源地址是192.168.1.2,目的地址是10.1.1.2。
  3. 这个数据包发到互联网后,其命运注定是杯具的,为什么这么讲,就因为其目的地址是10.1.1.2吗?这并不是根源,根源在于互联网并不会维护企业网络的路由,所以丢弃的可能性很大。
  4. 即使数据包没有在互联网中丢弃,并且幸运地抵达了响应方网关,那么我们指望响应方网关进行解密工作吗?凭什么,的确没什么好的凭据,数据包的目的地址是内网PC的10.1.1.2,所以直接转发了事。
  5. 最杯具的是响应方内网PC收到数据包了,因为没有参与IPSec会话的协商会议,没有对应的SA,这个数据包无法解密,而被丢弃。

我们利用这个反证法,巧妙地解释了在Site-to-Site情况下不能使用传输模式的原因。并且提出了使用传输模式的充要条件:兴趣流必须完全在发起方、响应方IP地址范围内的流量。比如在图中,发起方IP地址为6.24.1.2,响应方IP地址为2.17.1.2,那么兴趣流可以是源6.24.1.2/32、目的是2.17.1.2/32,协议可以是任意的,倘若数据包的源、目的IP地址稍有不同,对不起,请使用隧道模式。

IPSec协商

IPSec除了一些协议原理外,我们更关注的是协议中涉及到方案制定的内容:

1.      兴趣流:IPSec是需要消耗资源的保护措施,并非所有流量都需要IPSec进行处理,而需要IPSec进行保护的流量就称为兴趣流,最后协商出来的兴趣流是由发起方和响应方所指定兴趣流的交集,如发起方指定兴趣流为192.168.1.0/24à10.0.0.0/8,而响应方的兴趣流为10.0.0.0/8à192.168.0.0/16,那么其交集是192.168.1.0/24ßà10.0.0.0/8,这就是最后会被IPSec所保护的兴趣流。

2.      发起方:Initiator,IPSec会话协商的触发方,IPSec会话通常是由指定兴趣流触发协商,触发的过程通常是将数据包中的源、目的地址、协议以及源、目的端口号与提前指定的IPSec兴趣流匹配模板如ACL进行匹配,如果匹配成功则属于指定兴趣流。指定兴趣流只是用于触发协商,至于是否会被IPSec保护要看是否匹配协商兴趣流,但是在通常实施方案过程中,通常会设计成发起方指定兴趣流属于协商兴趣流。

3.      响应方:Responder,IPSec会话协商的接收方,响应方是被动协商,响应方可以指定兴趣流,也可以不指定(完全由发起方指定)。

4.      发起方和响应方协商的内容主要包括:双方身份的确认和密钥种子刷新周期、AH/ESP的组合方式及各自使用的算法,还包括兴趣流、封装模式等。

5.      SA:发起方、响应方协商的结果就是曝光率很高的SA,SA通常是包括密钥及密钥生存期、算法、封装模式、发起方、响应方地址、兴趣流等内容。

我们以最常见的IPSec隧道模式为例,解释一下IPSec的协商过程:

上图描述了由兴趣流触发的IPSec协商流程,原生IPSec并无身份确认等协商过程,在方案上存在诸多缺陷,如无法支持发起方地址动态变化情况下的身份确认、密钥动态更新等。伴随IPSec出现的IKE(Internet Key Exchange)协议专门用来弥补这些不足:

1.      发起方定义的兴趣流是源192.168.1.0/24目的10.0.0.0/8,所以在接口发送发起方内网PC发给响应方内网PC的数据包,能够得以匹配。

2.      满足兴趣流条件,在转发接口上检查SA不存在、过期或不可用,都会进行协商,否则使用当前SA对数据包进行处理。

3.      协商的过程通常分为两个阶段,第一阶段是为第二阶段服务,第二阶段是真正的为兴趣流服务的SA,两个阶段协商的侧重有所不同,第一阶段主要确认双方身份的正确性,第二阶段则是为兴趣流创建一个指定的安全套件,其最显著的结果就是第二阶段中的兴趣流在会话中是密文。

IPSec中安全性还体现在第二阶段SA永远是单向的:

从上图可以发现,在协商第二阶段SA时,SA是分方向性的,发起方到响应方所用SA和响应放到发起方SA是单独协商的,这样做的好处在于即使某个方向的SA被破解并不会波及到另一个方向的SA。这种设计类似于双向车道设计。

IPSec虽然只是5个字母的排列组合,但其所涉及的协议功能众多、方案又极其灵活,本期主要介绍IPSec的基本原理,在后续专栏还会继续介绍IPSec的其它方面知识。。


版权声明:本文为CSDN博主「bingyu9875」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/bingyu9875/article/details/61614797

【转】IPSec的原理相关推荐

  1. GRE over IPSec技术原理

    GRE原理 GRE简介: General Routing Encapsulation,简称GRE,是一种三层VPN封装技术.GRE可以对某些网络层协议(如IPX.Apple Talk.IP等)的报文进 ...

  2. “SCSA-T学习导图+”系列:IPSec VPN原理与应用

    本期引言: 本章主要讲解IPSec VPN相关理论概念,工作原理.从安全和加密原理入手,讲解了IPSec 在VPN对等体设备实现的安全特性,如数据的机密性.数据的完整性,数据验证等.重点分析IPSec ...

  3. IPSec VPN原理与配置

    目录 一.实验原理 ipsec vpn的目的 ipsec vpn的原理 二.  IPSec VPN概念 1.什么是IPSec 2.IPSec架构 3.SA  (Security Association ...

  4. IPSec虚拟专用网原理及基础配置实例

    一.虚拟专用网相关概念. 1.虚拟专用网的定义 虚拟专用网:英文全称是"(Virtual Private Network)",翻译过来就是"虚拟专用网络".虚拟 ...

  5. IPSEC的原理及配置步骤整理(一)

    1.概念理清 IPSEC封装模式:封装模式是指将AH或ESP相关的字段插入到原始IP报文中,以实现对报文的认证和加密,封装模式有传输模式和隧道模式两种. 2.传输模式和隧道模式比较 安生性:隧道模式高 ...

  6. IPsec在企业网中的应用

    IPsec的原理: "Internet 协议安全性 (IPSec)"是一种开放标准的框架结构,通过使用加密的安全服务以确保在 Internet 协议 (IP) 网络上进行保密而安全 ...

  7. IPSec ××× 在企业网中的应用

    IPSec: IPSec ×××即指采用IPSec协议来实现远程接入的一种×××技术,IPSec全称为Internet Protocol Security,是由Internet Engineering ...

  8. 网络安全篇 使用IPSec实现数据的机密性传输-29

    目录 一.实验原理 二.实验拓扑 三.实验步骤 四.实验过程 总结 实验难度 3 实验复杂度 5 一.实验原理 VPN的出现是为了实现远程的数据机密性传输,因为传统的以太网方式传输数据都是明文的,数据 ...

  9. Cisco ASA防火墙实现IPSec 虚拟专用网,可跟做!!!

    通过博文CIsco路由器实现IPSec 虚拟专用网原理及配置详解已经初步了解IPSec 虚拟专用网的原理以及如何在Cisco的路由器上实现IPSec 虚拟专用网技术.千万不要以为在CIsco路由器可以 ...

最新文章

  1. 诊断IIS中的ASP0115错误
  2. python 优化加速方案
  3. 【转】.NET 自带的动态代理+Expression 实现AOP
  4. 消息框messagebox的使用
  5. BZOJ 1199: [HNOI2005]汤姆的游戏 计算几何暴力
  6. 普通人学python有意义吗-风变编程:普通人学Python有意义吗?
  7. SQL Server里的自旋锁介绍
  8. 好公司和差公司的对比
  9. CRC校验码计算公式
  10. 在线光纤网速测试软件,光纤网速测试,宽带测试
  11. IntelliJ IDEA安装与JDK 环境变量配置
  12. Windows驱动开发TraceView之日志打印
  13. 计算机中二进制转十进制怎么算,二进制转十进制怎么算?二进制转十进制公式及方法!...
  14. 微信如何群发消息给所有人?
  15. autojs ui界面漂亮模板
  16. java文件后缀_关于java文件扩展名认识
  17. latex 表格标题分行和居中
  18. qemu 的 win98 plus 镜像
  19. 富途php面试经验,忍不住想吐槽一下富途二面体验
  20. 用户画像-数据指标体系划分

热门文章

  1. Mongotemplate mongodb的各种操作 模糊查询 精确查询
  2. Solr 新增、更新、删除索引
  3. 剑指Offer07题解-重建二叉树
  4. overflow+文档流
  5. webstorm 破解方式
  6. 调侃面向对象编程的23种设计模式(转)
  7. 免费手机号码归属地API查询接口和PHP使用实例分享
  8. SQL Server 2005中设置Reporting Services发布web报表的匿名访问
  9. [转] 网页不需要漂亮 Ⅰ
  10. java数组给名字排序_用Java给数组排序