前言
在前一章讲解了IPSec采用的安全技术,那什么是IPSec安全协议呢?本章将会很透彻的讲解IPSec安全协议。
一.IPSec安全协议
IPSec在IP层提供安全服务,它使系统能按需选择安全协议,决定服务所使用的算法及放置需求服务所需密钥到相应位置。IPSec用来保护一条或多条主机与主机间、安全网关与安全网关间、安全网关与主机间的路径。
1.IPSec提供的安全服务
IPSec能提供的安全服务集包括访问控制、无连接的完整性、数据源认证、拒绝重发包(部分序列完整性形式)、保密性和有限传输流保密性。因为这些服务均在IP层提供,所以任何高层协议均能使用它们,例如TCP、UDP、ICMP、BGP等。
这些目标是通过使用两大传输安全协议,头部认证(AH)和封装安全负载(ESP)以及密钥管理程序和协议的使用来完成的。
所需的IPSec协议集内容及其使用方式是由用户、应用程序和/或站点、组织对安全和系统的需求来决定。
2.IPSec结构
IPSec结构包括众多协议和算法,这些协议之间的相互关系如图所示。
由图可知,IPSec协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构。
包括网络认证协议Authentication Header(AH)、
封装安全载荷协议(Encapsulating Security Payload,ESP)、
密钥管理协议(Internet Key Exchange,IKE)和用于网络认证及加密的一些算法等。
IPSec规定了如何在对等层之间选择安全协议、确定安全算法和密钥交换,向上提供访问控制、数据源认证、数据加密等网络安全服务。
3.IPSce提供的两种机制
IPSce提供了两种机制:认证和加密
认证机制使IP通信的数据接收方能够确认数据发送方的真实身份,以及数据在传输过程中是否遭篡改。加密机制通过对数据进行编码来保证数据的机密性,以防数据在传输过程中被窃听。
其中,AH协议定义了认证的应用方法,提供数据源认证和完整性保证:ESP协议定义了加密和可选认证的应用方法,提供可靠性保证。
在实际进行IP通信时,可以根据实际需求同时使用这两种协议或选择使用其中的一种。AH和ESP都可以提供认证服务,不过,AH提供的认证服务要强于ESP。
二.Authentication Header 协议
1. Authentication Header 协议结构
Authentication Header(AH)协议主要提供认证机制,保证数据包接收者得到的源地址是可靠的,同时也提供了数据的完整性,抗重播攻击的能力。
它使通信免受篡改,但不能防止窃听,适合用于传输非机密数据。
AH的工作原理是在每一个数据包上添加一个身份验证包头。
此包头包含一个带密钥的Hash散列(可以将其当做数字签名,只是它不使用证书),此Hash散列在整个数据包中计算,因此对数据的任何更改将致使散列无效,提供对数据的完整性保护。
AH包头位置在IP包头和传输层协议包头之间,如图所示。AH由IP协议号“51”标识,该值包含在AH包头之前的协议包头中,如IP包头。AH可以单独使用,也可以与ESP协议结合使用。
AH由5个固定长度域和一个变长的认证数据域组成,如图所示。
其中的字段意义如下。
(1)下一头:(8位),识别这个包头之后紧跟的包头类型。在传输模式下,表示处于保护中的上层协议的值,比如TCP或UDP的值。
(3)载荷长度:(8位)其值等于AH头长度(以32位字长计算)减去2。AH头是一个IPv6的扩展头按照RFC2460标准的规定:它的值是头长度减去一个64位,在认证数据为标准的96位时,这个域的值为4。
(3)保留字段:16位,该字段用于今后的扩充,设置为0。
(4)安全参数索引SPl:专有32位值,用以区分那些目的IP地址和安全协议类型相同,但算法不同的数据包。
(5)序列号:32位整数,它代表一个单调递增计数器的值。
(6)认证值:这个域的长度可变,它存放IP数据包的完整性校验值ICV。
ICV,全称integrity check value。是在对无格式文本安全列表和补充的计算得到的,用于信息安全的完整性检查。ICV的算法是32位的自身反码加法,每个32位块跟随32个0位。
2.AH传输模式
如图3-5所示,在传输模式下,AH包头插在IP包头之后,TCP、UDP或者ICMP等上层协议包头之前。
一般AH为整个数据包提供完整性检查,但是在传输过程中,某些IP头字段会发生变化,且发送方无法预测数据包到达接收端时此字段的值。
例如生存期(Time To Live)或服务类型(Type of Service)等值可变字段(可变字段如图3-6中灰色字段),在进行完整性检查时,应将这些值的可变字段置为0。AH尽可能为IP头和上层协议数据提供足够多的认证,但AH并不能保护可变字段值,因此,AH提供给IP头的保护有些是零碎的。
通常,当用于IPv6时,AH出现在IPv6逐跳路由头之后,IPv6目的选项之前;而用于IPv4时,AH跟随主IPv4头。
3.AH隧道模式
以上介绍的是传输模式下的AH协议,AH隧道模式与传输模式略有不同。
在隧道模式下,整个原数据包被当做有效载荷封装起来,外面附上新的IP包头。其中“内部”IP包头(原IP包头)指定最终的信源和信宿地址,而“外部”IP包头(新IP包头)中包含的常常是做中间处理的网关地址。
与传输模式不同,在隧道模式中,原IP地址被当做有效载荷的一部分,受到IPSec的保护。另外,通过对数据加密,还可以将数据包目的地址隐藏起来,这样更有助于保护端对端隧道通信中数据的安全性。
图中给出了AH隧道模式中的认证部分。AH隧道模式为整个数据包提供完整性检查和认证,认证功能优于ESP。但在隧道技术中,AH协议很少单独实现,通常与ESP协议组合使用。