加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

人狠话不多,这份IPSec的体系结构详解请拿走~

发布时间:2019-07-25 17:16:18 所属栏目:教程 来源:YAWEN
导读:IP安全 (IP Security)体系结构,简称 IPSec,是 IETF IPSec 工作组于1998年制定的一组基于密码学的安全的开放网络安全协议。IPSec工作在 IP 层,为 IP 层及其上层协议提供保护。 IPSec提供访问控制、无连接的完整性、数据来源验证、防重放保护、保密性、自

在外出处理的过程中,数据包从传输层流进IP层。IP层首先取出 IP头的有关参数, 检索SPDB数据库,判断应为这个包提供那些安全服务。输入SPDB的是传送 报头中的源地址和目的地址的“选择符”。SPDB输出的是根据“选择符”查询的 策略结果,有可能出现以下几种情况:

丢弃这个包。此时包不会得以处理,只是简单地丢掉。绕过安全服务。在这种情况下,这个IP包不作任何处理,按照一个普通的IP包发送出去。应用安全服务。在这种情况下,需要继续进行下面的处理。

如果 SPDB的策略输出中指明该数据包需要安全保护,那么接着就是查询SADB 来验证与该连接相关联的SA是否已经建立,查询的结果可能是下面的两种情况之 一:如果相应的SA已存在,对SADB的查询就会返回指向该SA的指针; 如果查询不到相应的SA,说明该数据包所属的安全通信连接尚未建立,就会调用IKE进行协商,将所需要的 SA建立起来。 如果所需要的SA已经存在,那么 SPDB结构中包含指向 SA或SA集束的一个指针(具体由策略决定)。如果SPDB的查询输出规定必须将 IPSec应用于数据包,那么在SA成功创建完成之前,数据包是不被允许传送出去的。

对于从 SADB中查询得到的 SA还必须进行处理,处理过程如下:

  • 如果 SA的软生存期已满,就调用IKE建立一个新的SA。
  • 如果 SA的硬生存期已满,就将这个SA删除。
  • 如果序列号溢出,就调用IKE来协商一个新的SA。

SA处理完成后,IPSec的下一步处理是添加适当的AH或 ESP报头,开始对数据包进行处理。其中涉及到对负载数据的加密、计算校验等在下面的内容中会给予详细的介绍。SA中包含所有必要的信息,并已排好顺序,使IPSec报头能够按正确的顺序加以构建。在完成IPSec的报头构建后,将生成的数据报传送给原始IP 层进行处理,然后进行数据报的发送。

(2) 进入处理

进入处理中,在收到IP包后,假如包内根本没有包含IPSec报头, 那么IPSec就会查阅SPDB,并根据为之提供的安全服务判断该如何对这个包进行处理。因为如果特定通信要求IPSec安全保护,任何不能与 IPSec保护的那个通信的SPDB定义相匹配的进入包就应该被丢弃。它会用“选择符” 字段来检索 SPDB数据库。策略 的输出可能是以下三种情况:丢弃、绕过或应用。如果策略的输出是丢弃,那么数据包就会被放弃; 如果是应用,但相应的SA没有建立,包同样会被丢弃;否则就将包传递给下一层作进一步的处理。

如果 IP 包中包含了 IPSec报头,就会由 IPSec层对这个包进行处理。IPSec从 数据包中提取出SPI、源地址和目的地址组织成

IPSec完成了对策略的校验后,会将 IPSec报头剥离下来, 并将包传递到下一层。下一层要么是一个传输层,要么是网络层。 假如说数据包是 IP【ES【PTCP】】,下一层就是传输层;假如这个包是 IP【AH【 ESP【TCP】】】,下一层仍然是 IPSec层。

6. 认证头( AH)协议

(1) AH 的目标

IP 协议中,用来提供 IP 数据包完整性的认证机制是非常简单的。IP 头通过头 部的校验和域来保证IP 数据包的完整性。 而校验和只是对IP 头的每 16位计算累加 和的反码。这样并没有提供多少安全性,因为 IP 头很容易修改, 可以对修改过的 IP 头重新计算校验和并用它代替以前的校验和。这样接受端的主机就无法知道数 据包己经被修改。

设计认证头 (AH)协议的目的是用于增加IP 数据包的安全性。AH协议提供无连 接的完整性 (connectionless integrity)、数据源认证 (dataoriginauthentication)和反重播 (anti-replay)攻击服务。 然而,AH不提供任何 保密性服务, 也就是说它不加密所保护的数据包。AH的作用是为 IP数据流提供高 强度的密码认证,以确保被修改过的数据包可以被检查出来。AH使用消息认证码 (MAC)对IP 进行认证。MAC不同于杂凑函数,因为它需要密钥来产生消息摘要,而 杂凑函数不需要密钥。常用的MAC是 HMAC,它与任何迭代密码杂凑函数( 如MD5, SHA-l, Tiger等 ) 结合使用,而不用对杂凑函数进行修改。由于生成IP 数据包的 消息摘要需要密钥,所以IPSec的通信双方需要共享一个同样的认证密钥。这个密钥就是由双方的SA信息来提供的。

(2) AH 协议包格式

AH只用于保证收到的数据包在传输过程中不被修改,保证由要求发送它的当 事人将它发送出去, 以及保证它是一个新的非重播的数据包。AH用于传送模式时, 保护的是端到端的通信。通信的终点必须是IPSec终点,所以在我们所研究的VPN 的隧道方式中不预考虑。AH协议隧道模式的包格式如图2.6 所示:

人狠话不多,这份IPSec的体系结构详解请拿走~

  • 下一个头 (8bit):指示下一个负载的协议类型。
  • 载荷长度 (8bit):AH的负载长度。
  • 保留 (8bit):供将来使用。
  • 安全参数索引SPI (32bit):它是一个 32位长的整数。它与源地址或目的 地址以及工PSEC协议 (AH或 ESP)来共同唯一标识一个数据包所属的数据流的安全联合 (SA) 。SPI的值 1~255被 IANA留作将来使用; 0被保留,用32于本地和具体实现。所以目前有效的SPI值从 256~2³²-1。
  • 序列号 (32bit):这里包含了一个作为单调增加计数器的32位无符号整数,用于防止对数据包的重演。所谓重演指的是数据包被攻击者截取并 重新发送。如果接收端启动了反重演攻击功能,它将使用滑动接收窗口 检测重演数据包。具体的滑动窗口因不同的工PSEC实现而不同,一般具有一下功能。窗口长度最小32比特,窗口的右边界代表一特定SA所接收 倒的验证有效的最大序列号,序列号小于窗口左边界的数据包将被丢弃。将序列号值位于串口之内的数据包与位于窗口内的接收到的数据包清 单进行比照,如果接收到的数据包的序列号位于窗口内并且是新的,或 者序列号大于窗口右边界且有效,那么接收主机继续处理认证数据的计算。
  • 认证数据:这是一个变长域(必须是32bit字的整数倍)。它包含数据包的认证数据,该认证数据被称为这个数据包的完整性校验值(ICV) 。用于计算 ICV的可用的算法因IPSEC的实现不同而不同;然而,为了保证互操作性,AH强制所有的IPSec必须包含两个 MAC: HMAC-MD5和HMAC-SHA-I。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读