通过ESP和AH协议,IPSec提供保证数据安全的能力。
AH协议提供完整性保护和数据源验证,以及可选的抗重播服务,但是AH不能提供机密性保护。
ESP不但提供了AH的所有功能,而且可以提供加密功能。
AH和ESP不但可以单独使用,还可以同时使用,从而提供额外的安全性。
AH和ESP两种协议并没有定义具体的加密和验证算法,相反,实际上大部分对称算法可以为AH和ESP采用,这些算法分别在其他的RFC中定义。
为了确保IPSec实现的互通性,IPSec规定了一些必须实现的算法,如加密算法DES CBC。
1.IPSec的传输模式与隧道模式
不论是AH还是ESP,都具有两种工作模式:隧道模式和传输模式。
在传输模式中,两个需要通信的终端计算机在彼此之间直接运行IPSec协议。
在使用传输模式时,所有加密、解密和协商操作均由端系统自行完成,网络设备仅执行正常的路由转发,并不关心此类过程或协议,也不加入任何IPSec过程。
传输模式的目的直接保护端到端通信。只有在需要端到端安全性的时候,才推荐使用此种模式。IPSec的传输模式如图5.61所示。
图5.61 IPSec的传输模式
如图5.62所示,在隧道模式中,两个安全网关在彼此之间运行IPSec协议,对彼此之间需要加密的数据达成一致,并运用AH或ESP对这些数据进行保护。
图5.61 IPSec的传输模式
用户的整个IP数据包被用来计算AH或ESP头,且被加密。AH或ESP头和加密用户数据被封装在一个新的IP数据包中。
隧道模式对端系统的IPSec能力没有任何要求。来自端系统的数据流经过安全网关时,由安全网关对进行保护。所有加密、解密和协商操作均由安全网关完成。这些操作对于端系统来说是完全透明的。
隧道模式的目的是建立站点到站点(Site-to-Site)的安全隧道,保护站点之间的特定或全部数据。
2.IPSec SA
安全联盟(security association,SA)是IPSec中的一个基础概念。IPSec对数据流的安全服务通过SA来实现。
SA是一个双方协定,它包括协议、算法、密钥等内容,具体确定了如何对IP报文进行处理。SA是单向的。一个SA就是两个IPSec系统之间的一个单向逻辑连接,输入数据流和输出数据流由输入SA与输出SA分别处理。
一个SA由一个(SPI、IP口的地址、安全协议标识符)三元组唯一标识。(www.xing528.com)
安全参数索引(security parameter index,SPI)是一个32比特的数值,在每一个IPSec报文中都携带该值。
IP口的地址是IPSec协议对方的地址。
安全协议标识符是AH或ESP。
SA可通过手工配置和自动协商两种方式建立。手工建立SA的方式是指用户通过在两端手工设一些参数,在两端参数匹配和协商通过后建立SA。自动协商方式由IKE生成和维护,通信双方基于各自的安全策略片经过匹配和协商,最终建立SA,而不需要用户的干预最终建立;在手工配置SA时,需要指定SPI的取值为保证SA的唯一性,必须使用不同的SPI来配置SA;使用IKE协商产生SA时,SPI将随机生成。
SA的生存时间(life time)有以时间进行限制和以流量进行限制两种方式。前者要求每隔定长的时间就对SA进行更新,后者要求每传输一定字节数量的信息就对SA进行更新。
IPSec设备把类似“对哪些数据提供哪些服务”,这样的信息存储在SPD(security policy database)中。而SPD中的项指向SAD(security association database)中的相应项,一台设备上的每一个IPSec SA都在SAD有对应项,该项定义了与该SA相关的所有参数。
对一个需要加密的出站数据包来说,它会首先与SPD中的策略相比较,并匹配其中一个项。然后,系统会使用该项对应的SA及算法对此数据包进行加密。但是,如果这时候不存在一个相应的SA,系统就需要建立一个SA。
3.IKE
IPSec利用SPD判断一个数据包是否需要安全服务。当其需要安全服务时,就会查找相应的SA。
通过IKE交换,IPSec通信双方可以协商并获得一致的安全参数,建立共享的密钥,建立IPSec SA,IKE可以为IPSec提供PFS特性。
IKE也使用SA -IKE SA。这个SA与IPSec SA不同,它是用于保护一对协商节点之间通信的密钥和策略的一个集合。它描述的是一对进行IKE协商的节点如何进行通信。IKE协商的对方也就是IPSec的对方节点。
IKE具有两个工作阶段。在阶段一中,IKE使用Diffie-Hellman交换建立共享密钥,形成IKE SA,并用多种验证方法验证SA;在阶段二中,IKE为IPSec协商IPSec SA。
为了适应不同的应用场合,IKE可工作于两种模式:主模式(main mode)和野蛮模式(aggressive mode)。
IKE不仅用于IPSec,它是一个通用的交换协议,可以用于交换任何的共享秘密,例如可以用于为RIP、OSP这样的协议提供安全协商服务。
4.IPSec处理流程
一个入站数据包需要经如图5.63所示的处理步骤:
图5.63 IPSec处理流程
首先查找SPD。得到的结果可能有丢弃、旁路安全服务、提供安全服务3种。如果是第一种,直接丢弃此包;如果是第二种,则直接转发此包;如果是第三种,则系统会转下一步查找IPSec SA。
系统SAD中查找IPSec SA。如果找到,则利用IPSec SA的参数对此数据包提供安全服务,并进行转发,如果找不到相应的SA,则系统就需要为其创建一个IPSec SA。
系统转向IKE协议数据库,试图寻找一个合适的IKE SA,以使用为IPSec协商SA。如果找到,则利用此IKE SA协商IPSec SA,否则,系统需要启动IKE协商进程,创建一个IKE SA。
对一个入站的IPSec数据包来说,系统会根据其SPI、IP地址和协议类型等信息,查找相应的IPSec SA,然后根据SA的协议标识符,选择合适的协议(AH或ESP)进行处理。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。