当前位置: 代码迷 >> 综合 >> IPSec
  详细解决方案

IPSec

热度:64   发布时间:2023-10-19 13:35:13.0

简介

我们知道在使用 vpn 的时候,这些里面的信息都是经过加密的,而使用的加密服务就是 IPSec

IPSec 并不是一个单独的协议,而是一个协议族,一个框架,我们通过配置不同的参数,来实现不同的安全功能

在 IPSec 中,我们可以将其划分为三个部分

  1. 关于数据包格式的两个协议:AH(认证,完整性) 和 ESP(认证,完整性和保密性),其中 ESP 已经包含了 AH 的所有功能。且在 IPv6 的扩展部分已经包括这两个协议,所以这一部分是最重要的
  2. 三个加密算法的协议
  3. 互联网密钥交换协议(IKE:internet key exchange)

数据报的工作方式

运输方式

在传输层报文段的前后添加控制信息,然后添加 IP 首部,构成 IP 安全数据报

隧道方式

在原始 IP 数据包前后添加控制信息,然后添加新的 IP 首部,构成 IPSec
IPSec
特别的是,这里新 IP 首部的地址,将是路由器的 IP 地址,而非主机的地址

【注】可以看到不论哪种方式,都是数据报报文内容被进行了加密,而报头没有

安全关联

安全关联其实就是一个安全的逻辑连接,我们知道网络层本身是无连接的,但是现在当两个主机进行 IPSec 安全通信时,我们将其设置为有连接的,如下图(通信前必须先建立连接)
IPSec
我们来缕一缕其中的一些步骤:

  1. 当 H1 要发送数据给 H2 时,这个数据报会被 R1 这个路由器进行加密,使其编程一个 IPSec 数据报
  2. 如果 H1 发送数据给 H3 ,则无需加密,因为 H3 是在内部,仅需转发给内部
  3. 如果 H1 是发送数据给一个查询足球比赛的网站,也无需加密,因为两者并不存在这个安全关联

两个数据库

安全关联数据库

我们知道,SA 是单向的,如果需要多条 SA,那么这些 SA 存放在哪里呢,对,就是存放在安全关联数据库中

安全策略数据库

前面我们看到,比如当 H1 给一个足球网站发送信息时,并不需要加密,那么什么时候加密,什么时候不加密,这个策略过程由安全策略数据库完成