IPSec协议简介
IPSec协议是一系列网络安全协议的总称,它是由IETF(Internet Engineering Task
Force,Internet工程任务组)开发的,可为通讯双方提供访问控制、无连接的完整性、数据来源认证、反重放、加密以及对数据流分类加密等服务。IPSec 协议不是一个单独的协议,它给出了 IP 网络上数据安全的一整套体系结构。包括AH(Authentication Header)、ESP(Encapsulating Security Payload )、IKE (Internet Key Exchange )等协议。GRE和IPSec 主要用于实现专线 ×××业务。IPSec 是网络层的安全机制。通过对网络层包信息的保护,上层应用程序即使没有实现安全性,也能够自动从网络层提供的安全性中获益。这打消了人们对×××(Virtual Private Network,虚拟专用网络)安全性的顾虑,使得×××得以广泛应用。IPSec是一个用于保证通过IP网络进行安全(保密性、完整性、真实性)的秘密通信的开放式标准框架。IPSec实现了网络层的加密和认证,在网络体系结构中提供了一种端到端的安全解决方案。IPSec加密的数据包可以通过任何IP网络,而不需要对中间的网络互联设备做任何的改变需要知道加密的惟一设备是端点,大大降低了实现和管理的成本
IPSec提供的服务
1)认证:报文认证,确定接收的数据与发送的数据是否一致,同时确定发送者是否真实
2)数据完整性验证:保证数据传送过程没有被修改
3)保密:使相应的接收者能获取发送的真正的内容,无关接收者无法获知
IPSec提供的三种保护形式:
1)认证头(Authentication Header,AH)
提供数据源认证无连接的数据完整性服务
2)封装安全载荷(Encapsulating Security Payload,ESP)
提供数据源认证无连接的数据完整性服务
无连接的数据保密服务:合法的接收端能够真正看到IP包中的数据AH和ESP是一套协议的两个不同机制,可单独使用,也可组合使用,以满足不同的安全要求AH和ESP可工作于两种模式:传输模式和隧道模式
3)互联网密钥管理协议(IKMP)
IPSec对报文的处理过程
IPSec对报文的处理过程如下(以AH协议为例):
(1) 对报文添加认证头:从IPSec队列中读出IP模块送来的IP报文,根据配置选择的协议模式(传输或是隧道模式)对报文添加AH头,再由IP层转发。
(2) 对报文进行认证后解去认证头:IP层收到IP报文经解析是本机地址,并且协议号为51,则查找相应的协议开关表项,调用相应的输入处理函数。此处理函数对报文进行认证和原来的认证值比较,若相等则去掉添加的AH头,还原出原始的IP报文再调用IP输入流程进行处理;否则此报文被丢弃。
与IPSec相关的几个术语
1)数据流:在IPSec中,一组具有相同源地址/掩码、目的地址/掩码和上层协议的数据集称为数据流。通常,一个数据流采用一个访问控制列表(acl)来定义,所有为ACL允许通过的报文在逻辑上作为一个数据流。为更容易理解,数据流可以比作是主机之间一个的TCP连接。IPSec 能够对不同的数据流施加不同的安全保护,例如对不同的数据流使用不同的安全协议、算法或密钥。
2) 安全策略:由用户手工配置,规定对什么样的数据流采用什么样的安全措施。对数据流的定义是通过在一个访问控制列表中配置多条规则来实现,在安全策略中引用这个访问控制列表来确定需要进行保护的数据流。一条安全策略由“名字”和“顺序号”共同唯一确定。
3) 安全策略组:所有具有相同名字的安全策略的集合。在一个接口上,可应用或者取消一个安全策略组,使安全策略组中的多条安全策略同时应用在这个接口上,从而实现对不同的数据流进行不同的安全保护。在同一个安全策略组中,顺序号越小的安全策略,优先级越高。
4)安全联盟(Security Association,简称SA):IPSec对数据流提供的安全服务通过安全联盟SA来实现,它包括协议、算法、密钥等内容,具体确定了如何对IP报文进行处理。一个SA就是两个IPSec系统之间的一个单向逻辑连接,输入数据流和输出数据流由输入安全联盟与输出安全联盟分别处理。安全联盟由一个三元组(安全参数索引(SPI)、IP 目的地址、安全协议号(AH或ESP))来唯一标识。安全联盟可通过手工配置和自动协商两种方式建立。手工建立安全联盟的方式是指用户通过在两端手工设置一些参数,然后在接口上应用安全策略建立安全联盟。自动协商方式由IKE生成和维护,通信双方基于各自的安全策略库经过匹配和协商,最终建立安全联盟而不需要用户的干预。
5)安全联盟超时处理:安全联盟更新时间有“计时间”(即每隔定长的时间进行更新)和“计流量”(即每传输一定字节数量的信息就进行更新)两种方式。
6) 安全参数索引(SPI):是一个32比特的数值,在每一个IPSec 报文中都携带该值。SPI、IP目的地址、安全协议号三者结合起来共同构成三元组,来唯一标识一个特定的安全联盟。在手工配置安全联盟时,需要手工指定SPI的取值。为保证安全联盟的唯一性,每个安全联盟需要指定不同的SPI值;使用IKE协商产生安全联盟时,SPI将随机生成。
7)安全提议:包括安全协议、安全协议使用的算法、安全协议对报文的封装形式,规定了把普通的IP报文转换成IPSec报文的方式。在安全策略中,通过引用一个安全提议来规定该安全策略采用的协议、算法等。
安全协议数据封装格式:
IPsec ××× 应用
IPSec ×××的应用场景分为3种:
1. Site-to-Site(站点到站点或者网关到网关):如弯曲评论的3个机构分布在互联网的3个不同的地方,各使用一个商务领航网关相互建立×××隧道,企业内网(若干PC)之间的数据通过这些网关建立的IPSec隧道实现安全互联。
2. End-to-End(端到端或者PC到PC):两个PC之间的通信由两个PC之间的IPSec会话保护,而不是网关。
3. End-to-Site(端到站点或者PC到网关):两个PC之间的通信由网关和异地PC之间的IPSec进行保护。
×××只是IPSec的一种应用方式,IPSec其实是IP Security的简称,它的目的是为IP提供高安全性特性,×××则是在实现这种安全特性的方式下产生的解决方案。IPSec是一个框架性架构,具体由两类协议组成:
1. AH协议(Authentication Header,使用较少):可以同时提供数据完整性确认、数据来源确认、防重放等安全特性;AH常用摘要算法(单向Hash函数)MD5和SHA1实现该特性。
2. ESP协议(Encapsulated Security Payload,使用较广):可以同时提供数据完整性确认、数据加密、防重放等安全特性;ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用MD5或SHA1来实现数据完整性
IPSec封装模式
1)传输模式
对IP包的部分信息提供安全保护,即对IP数据包的上层数据(TCP、UDP、ICMP消息等)提供安全保护。采用AH传输模式,主要为IP数据包(IP头中的可变信息除外)提供认证保护。采用ESP传输模式,对IP数据包的上层信息提供加密和认证双重保护。一种端到端的安全,IPSec在端点执行加密认证、处理,在安全通道上传输,主机必须配置IPSec
2)隧道模式
对整个IP数据包提供保护
基本原理:构造新的IP数据包,将原IP数据包作为新数据包的数据部分,并为新的IP数据包提供安全保护。采用AH隧道模式,为整个IP数据包提供认证保护(可变字段除外)。
采用ESP隧道模式,为整个IP数据包提供加密和认证双重保护。对IPSec的处理是在安全网关执行的,两端主机不必知道IPSec协议
了解了IPsec的基本信息之后,下面通过一个案例来对其的工作原理进行进一步的深化。
实验拓扑
配置信息
F1
F2
F3
Sw1
测试结果:
Pc1 ping pc3
Pc2 ping pc3