网络安全协议之IPSec协议(Internet协议安全性)IPSec协议IPSec概述IPSec的安全体系结构IPSec服务IPSec的工作模式认证头(AH)协议封装安全载荷(ESP)协议安全关联安全数据库密钥管理和密钥交换4.3IPSec协议IP数据包不具有安全保护措施,容易被黑客拦截、伪造和篡改,破坏数据的完整性和保密性IETF的IPSec(InternetProtocolSecurity)提供一种标准的、健壮的、包容广泛的机制,为IP及上层协议提供安全保障在发送IP数据包之前对IP包的一些重要部分进行加密和验证计算,由接收端对这部分进行解密和验证,实现安全传输的目的4.3.1IPSec概述IPSec(InternetProtocolSecurity)IPSec是一个用于保证通过IP网络进行安全(保密性、完整性、真实性)的秘密通信的开放式标准框架IPSec实现了网络层的加密和认证,在网络体系结构中提供了一种端到端的安全解决方案IPSec加密的数据包可以通过任何IP网络,而不需要对中间的网络互联设备做任何的改变需要知道加密的惟一设备是端点,大大降低了实现和管理的成本4.3.1IPSec概述IPSec提供的服务认证:报文认证,确定接收的数据与发送的数据是否一致,同时确定发送者是否真实数据完整性验证:保证数据传送过程没有被修改保密:使相应的接收者能获取发送的真正的内容,无关接收者无法获知4.3.1IPSec概述IPSec提供的三种保护形式:认证头(AuthenticationHeader,AH)提供数据源认证无连接的数据完整性服务封装安全载荷(EncapsulatingSecurityPayload,ESP)提供数据源认证无连接的数据完整性服务无连接的数据保密服务:合法的接收端能够真正看到IP包中的数据AH和ESP是一套协议的两个不同机制,可单独使用,也可组合使用,以满足不同的安全要求AH和ESP可工作于两种模式:传输模式和隧道模式互联网密钥管理协议(IKMP)4.3.1IPSec概述在IPSec中,无论是AH机制还是ESP机制,发送方都需要在发送数据包之前对数据包进行计算,包括计算验证数据或进行加密接收方在接收数据包之前也需要对数据包进行计算,包括数据验证和解密IPSec工作在IP层之下,可以不必修改现有系统中的IP层实现,只需要把IPSec协议当做驱动层,在系统中增加IPSec组件即可实现4.3.1IPSec概述IPSec作用无论是AH机制还是ESP机制,均工作在IP层之下在IP层之上,特别是在传输层,数据段的形成还是和以前一样,IP数据包的封装过程也和以前一样当IP层的数据包继续往下传递时,如果没有使用IPSec,数据包被直接传递给数据链路层,进行数据的转换和发送当使用IPSec后,IPSec协议对IP层传递下来的数据包重新进行封装,封装方式和保护范围与具体的IPSec机制和使用的模式有关4.3.1IPSec概述图4-11没有IPSec机制的数据封装与传递使用IPSec机制和不使用IPSec机制,数据包向下传递过程略有不同图示的是数据包发送时的向下传递过程接收过程,数据向上传送时的过程相反4.3.1IPSec概述图4-12有IPSec机制的数据封装与传递•在重新封装的IP数据包中,受保护的数据部分被加上了认证保护或者加密保护•使得数据在传输过程不会遭到数据完整性、保密性以及重放攻击的影响•别人无法篡改数据包或偷看数据包•真正有权接收数据的接收端,可以对接收到的数据包进行解密和验证4.3.2IPSec的安全体系结构体系结构封装安全载荷(ESP)认证头(AH)加密算法认证算法解释域DOI密钥管理IPSec协议主要由Internet密钥交换协议(IKE)、认证头(AH)及封装安全载荷(ESP)等3个子协议组成,还涉及认证和加密算法以及安全关联SA等内容,关系图如下:4.3.3IPSec服务IPSec通过使用AH协议和ESP协议来提供下述服务:访问控制无连接的完整性数据源的认证拒绝重放的数据包保密性有限的通信流量保密性4.3.3IPSec服务服务类型AHESP(只加密)ESP(加密并认证)访问控制YYY无连接完整性YNY数据源的鉴别YNY拒绝重放攻击YYY保密性NYY有限的通信流保密性NYY表4-2AH和ESP协议提供的服务4.3.4IPSec的工作模式IPSec的工作模式分为传输模式和隧道模式传输模式对IP包的部分信息提供安全保护,即对IP数据包的上层数据(TCP、UDP、ICMP消息等)提供安全保护采用AH传输模式,主要为IP数据包(IP头中的可变信息除外)提供认证保护采用ESP传输模式,对IP数据包的上层信息提供加密和认证双重保护一种端到端的安全,IPSec在端点执行加密认证、处理,在安全通道上传输,主机必须配置IPSec4.3.4IPSec的工作模式IPSec的工作模式分为传输模式和隧道模式隧道模式对整个IP数据包提供保护基本原理:构造新的IP数据包,将原IP数据包作为新数据包的数据部分,并为新的IP数据包提供安全保护采用AH隧道模式,为整个IP数据包提供认证保护(可变字段除外)采用ESP隧道模式,为整个IP数据包提供加密和认证双重保护对IPSec的处理是在安全网关执行的,两端主机不必知道IPSec协议4.3.4IPSec的工作模式4.3.5认证头(AH)协议AH的协议代号为51基于网络层的一个安全协议IPSec协议的重要组成部分用于为IP数据包提供安全认证的一种安全协议AH的功能:为IP数据包提供强认证的一种安全机制,具有为IP数据包提供数据完整性(通过消息认证码产生的校验值保证)、数据源认证(通过在数据包中包含一个将要被认证的共享秘密或密钥来保证)、抗重放攻击(通过使用一个经认证的序列号来实现)等功能4.3.5认证头(AH)协议AH的格式图4-16IPSec认证头AH为IP数据包提供数据完整性和认证服务,可防止常见的网络攻击AH使用一个带密钥的杂凑函数而不是数字签名,因为数字签名很慢,大大降低网络的吞吐量AH不提供保密性保护,当数据通过网络的时候仍然可以被看到8bit8bit16bit32bit32bit4.3.5认证头(AH)协议完整性校验值的计算认证数据域包含完整性校验值,使用消息认证码MAC算法计算IPSec至少支持HMAC-MD5-96和HMAC-SHA-1-96计算完整的HMAC值,只使用前96bit(认证数据字段的默认长度)MAC根据如下部分进行计算IP报头AH报头不包括认证数据域整个上层协议数据4.3.5认证头(AH)协议抗重放攻击假设在攻击中攻击者复制一个数据包并将该数据包以失序的方式发出来迷惑通信节点重放攻击是指攻击者获得了认证分组的副本,并之后将它传输到了它的目的地址,收到了重复的认证分组会以某种方式中断服务或者出现其他一些意想不到的后果使用序号字段设计来阻挡这种攻击,IPSec数据包专门使用一个序列号和一个滑动接收窗口每个IPSec头内部包含一个唯一且单调递增的序列号4.3.5认证头(AH)协议AH服务以传输模式和隧道模式两种模式来使用AH的实际位置决定于使用何种模式以及AH应用于IPv4还是IPv6数据包标准的IPv4数据包标准的IPv6数据包传输模式下的IPv4数据包传输模式下的IPv6数据包隧道模式下的IPv4数据包隧道模式下的IPv6数据包4.3.5认证头(AH)协议传输模式中,AH仅仅应用于主机中,并且除了对选定的IP头域之外还对上层协议提供保护该模式通过传输安全关联提供隧道模式中,AH既可以用于主机,也可以用于安全网关当在安全网关中实现AH,用于保护传输的通信,必须使用隧道协议隧道模式中,AH保护的是全部的内部IP数据包,包括全部的内部IP头该模式通过隧道安全关联提供AH只能确保IP数据包的来源和完整性,不能为IP数据包提供机密性,即IP数据包在传输过程是可见的引入能提供机密性服务的ESP协议代号为50ESP的功能:主要支持IP数据包的机密性,将需要保护的数据进行加密后再封装到新的IP数据包中。此外,ESP还提供认证服务,ESP只认证ESP头之后的信息,比AH认证的范围小4.3.6封装安全载荷(ESP)协议4.3.6封装安全载荷(ESP)协议ESP格式加密与认证算法ESP服务对有效载荷数据、填充数据、填充长度和下一个首部字段均加密可用来加密的算法有:3DES、RC5、IDEA、三密钥三重IDEA、CAST、Blowfish等与AH相同,ESP支持使用默认的96bit的MAC,支持HMAC-MD5-96和HMAC-SHA-1-964.3.6封装安全载荷(ESP)协议与AH相同,ESP服务可以传输模式和隧道模式使用ESP有一个称为尾部的数据附加在每一个数据包之后标准的IPv4数据包标准的IPv6数据包传输模式下的IPv4ESP被加密被认证传输模式下的IPv6ESP被加密被认证4.3.6封装安全载荷(ESP)协议标准的IPv4数据包标准的IPv6数据包隧道模式下的IPv4ESP被加密被认证隧道模式下的IPv6ESP被加密被认证4.3.6封装安全载荷(ESP)协议传输模式中,ESP仅仅支持主机实现,为上层协议而不是IP头本身提供保护在IPv6中,将ESP看作一种端到端的载荷,中间路由器不应该处理它隧道模式中,ESP既可以用于主机,也可用于安全网关当在一个安全网关中实现ESP,用于保护用户传输通信流时,必须使用隧道模式隧道模式中,ESP保护的是全部的内部IP数据包,包括全部的内部IP头4.3.6封装安全载荷(ESP)协议4.3.7安全关联安全关联——为了使通信双方的认证算法、加密算法保持一致,相互间建立的联系安全关联SA(SecurityAssociation)是构成IPSec的基础,是两个通信实体经协商建立起来的一种协定,决定了用来保护数据报文安全的IPSec协议、转码方式、密钥以及密钥的有效存在时间IPSec方案最终会构建一个SA的数据库SADB,用于维护IPSec协议保障数据包安全的SA记录在IPSec保护IP报文前,必须先建立一个安全联盟,可以手工或动态建立Internet密钥交换IKE用于动态建立安全联盟,IKE代表IPSec对SA进行协商,并对SADB进行填充4.3.7安全关联SA可看作是一个通过公共网络到某一特定个人、某一组人或某个网络资源的安全通道,允许构建不同类型的安全通道SA由3个参数唯一标识安全参数索引(SPI)目的IP地址安全协议标识符:AH或ESP安全关联4.3.8安全数据库IPSec包含有两个指定的数据库:(1)安全策略数据库(SPD):指定了决定所有输入或者输出的IP通信部署的策略,负责所有的IP通信流SPD条目:目的IP地址、源IP地址、名称、传输层协议、源端口和目的端口、数据敏感级(2)安全关联数据库(SAD):包含有与当前活动的安全关联相关的参数(序列号计数器、序列号计数器溢出、抗重放窗口、AH信息、ESP信息、SA的生存期、IPSec协议模式、路径最大传输单元MTU)IPSec处理方式:外出处理和进入处理(了解)(参见P1494.3.8.3IPSec处理方式)4.3.8安全数据库组合安全关联:SA集结顺序通过安全策略定义IPSec必须支持的4种SA组合的实例:(1)端到端主机之间应用IPSec(2)网关到网关之间实现IPSec(3)端到端及网关到网关之间实现IPSec(4)远程终端支持(参见课本P1494.3.8.4组合安全关联)4.3.9密钥管理和密钥交换使用IPSec时,必须提供密钥管理功能手工密钥和SA管理是最简单的密钥管理方式,适用于小范围、静态环境中,大型网络不适合通过使用自动的密钥管理协议,创建SA所需的密钥默认的IPSec密钥协商方式是Internet密钥交换协议IKE(InternetKeyExchange),IKE是