人狠话不多,这份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处理完成后,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 所示:
(编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |