600 likes | 689 Views
IP 安全. IP 数据包格式. I P 包本身并不继承任何安全特性. 很容易便可伪造出 I P 包的地址、修改其内容、重播以前的包以及在传输途中拦截并查看包的内容。 我们不能担保收到的 I P 数据报: 1 )来自原先要求的发送方( I P 头内的源地址); 2 )包含的是发送方当初放在其中的原始数据; 3 )原始数据在传输中途未被其它人看过. I P S e c 可有效地保护 I P 数据报的安全. 它采取的具体保护形式包括: 数据起源地验证; 无连接数据的完整性验证; 数据内容的机密性(是否被别人看过); 抗重播保护;
E N D
I P包本身并不继承任何安全特性 很容易便可伪造出I P包的地址、修改其内容、重播以前的包以及在传输途中拦截并查看包的内容。 我们不能担保收到的I P数据报: • 1)来自原先要求的发送方(I P头内的源地址); • 2)包含的是发送方当初放在其中的原始数据; • 3)原始数据在传输中途未被其它人看过
I P S e c可有效地保护I P数据报的安全 它采取的具体保护形式包括: • 数据起源地验证; • 无连接数据的完整性验证; • 数据内容的机密性(是否被别人看过); • 抗重播保护; • 有限的数据流机密性保证
I P S e c是IETF于1998年11月公布的IP标准,它工作在网络层。 • I P S e c为保障I P数据报的安全,定义了一个特殊的方法,它规定了要保护什么通信、如何保护它以及通信数据发给何人。 • I P S e c可保障主机之间、网络安全网关(如路由器或防火墙)之间或主机与安全网关之间的数据包的安全。 • 目标是为IPv4和 IPv6提供具的较强的互操作能力、高质量和基于密码的安全。
一、IPsec体系结构 • R F C 2 4 0 1,定义了I P S e c的基本结构,所有具体的实施方案均建立在它的基础之上。 • 它定义了I P S e c提供的安全服务;它们如何使用以及在哪里使用;数据包如何构建及处理;以及I P S e c处理同策略之间如何协调等等。 1、 IPsec文档
IPSec是IPv6的一个组成部分,也是IPv4的一个可选扩展协议。IPSec是IPv6的一个组成部分,也是IPv4的一个可选扩展协议。 • I P S e c协议(包括A H认证头和E S P封装安全负载)既可用来保护一个完整的I P载荷,亦可用来保护某个I P载荷的上层协议。这两方面的保护分别是由I P S e c两种不同的“模式”来提供的。
传输模式和通道模式 • 在传输模式中,IP头与上层协议头之间嵌入一个新的IPsec头(AH或ESP) (用来保护上层协议) • 在通道模式中,要保护的整个IP包都封装到另一个IP数据包里,同时在外部与内部IP头之间嵌入一个新的IPsec头。(用来保护整个IP数据包) • 两种IPsec头都可以同时以传输模式和通道模式工作。
ESP AH 加密算法 验证算法 解释域(DOI) 密钥管理 策略 IPSEC体系结构 体系结构
安全加载封装协议(ESP):覆盖了包加密与ESP使用相关的包格式和常规问题安全加载封装协议(ESP):覆盖了包加密与ESP使用相关的包格式和常规问题 • 身份验证报头协议(AH):包含了AH进行包身份验证相关的包格式和一般问题 • 加密算法:描述各种加密算法如何用于ESP中 • 验证算法:描述各种身份验证算法如何用于AH中与ESP身份验证选项 • 密钥管理:密钥管理的一组方案,其中IKE是默认的密钥自动交换协议. • 解释域:彼此相关各部分的标识及运作参数 • 策略:决定两个实体之间能否通信.
策略的核心是 由SA、SADB和SPD三部分组成。 • SA(安全联盟)表示了策略实施的具体细节,包括源/目的地址、应用协议、SPI(安全参数索引)、所用算法/密钥/长度 • SADB(安全联盟数据库)为进入和外出包处理维持一个活动的SA列表 • SPD(安全策略数据库)决定了整个VPN的安全需求
2、IPsec服务 IPsec主要有两种协议用于实现安全功能: • AH认证头—协议头指定的协议 • ESP封装安全有效负载—由协议报文格式指定的组合的加密/认证协议。
提供的主要服务有: • 访问控制 • 无连接完整性 • 数据源认证 • 丢弃重放的报文 • 机密性(加密) • 有限的数据机密性
3、安全联盟 • 为正确封装及提取I P S e c数据包,有必要采取一套专门的方案,将安全服务/密钥与要保护的通信数据联系到一起;同时要将远程通信实体与要交换密钥的I P S e c数据传输联系到一起。 • 这样的构建方案称为“安全联盟(Security Association,S A)”
“安全联盟” (Security Association,S A) • (I P S e c术语,常常简称为S A)是构成I P S e c的基础。S A是两个通信实体经协商建立起来的一种协定。 • 它们决定了用来保护数据包安全的I P S e c协议、转码方式、密钥以及密钥的有效存在时间等等。 • 任何I P S e c实施方案始终会构建一个S A数据库(S A D B),由它来维护I P S e c协议用来保障数据包安全的S A记录。
I P S e c的S A是单向进行的。 • 也就是说,它仅朝一个方向定义安全服务,要么对通信实体收到的包进行“进入”保护,要么对实体外发的包进行“外出”保护 • 如何需要需要维护一个对等关系,为了保证双向的安全交换,就需要建立两个安全联盟。
另外,S A还是“与协议相关”的。每种协议都有一个S A。 • 如果主机A和B同时通过A H和E S P进行安全通信,那么每个主机都会针对每一种协议来构建一个独立的S A。
一个安全联盟可以用三个参数惟一地指定: • 安全参数索引 • IP目的地址 • 安全协议标识符
安全参数索引 • 在S A中,S P I是一种非常重要的元素。S P I实际上是一个长度为3 2位的数据实体,用于独 • 独一无二地标识出接收端上的一个S A。
要解决在目的地(目标主机)上标识S A的问题,随每个数据包一道,需要发送一个S P I,以便将S A独一无二地标识出来。目标主机再利用这个值,对接收S A D B数据库进行检索,提取出适当的S A。
安全联盟参数 • 1. 序列号(Sequence Number)序列号是一个3 2位的字段,在数据包的“外出”处理期间使用。它同时属于A H及E S P头的一部分。 每次用S A来保护一个数据包,序列号的值便会递增1。通信的目标主机利用这个字段来侦测所谓的“重播”攻击。 S A刚刚建立时,该字段的值设为0。 通常,在这个字段的值溢出之前,S A会重新进行协商。
2. 序列号溢出(Sequence Number Overflow)该字段用于外出包处理,并在序列号溢出的时候加以设置。安全策略决定了一个S A是否仍可用来处理其余的包。
3. 抗重播窗口该字段在数据包的“进入”处理期间使用。当今,与网络安全有关的一个重要问题便是重播攻击。在重播攻击过程中,网络应用会受到不断重播的数据包的轰炸。 • I P S e c通过对恶意主机重复发出的数据包进行侦测,从而解决了这个问题
4. 存活时间( L i f e t i m e,TTL) 它规定了每个S A最长能够存在的时间(所谓的“存活时间”或“存活周期”)。超出这个时间,那个S A便不可继续使用。 • 存活时间要么可表达成受该S A保护的字节数量,要么可表达成S A的持续时间。当然,也可以同时用这两种方式来表达一个存活时间。
5. 模式(Mode) • IPSec协议可同时用于通道模式及传送模式。依据这个字段的值,载荷的处理方式也会有所区别。可将该字段设为通道模式、传送模式或者通配模式。
6.AH信息 • 7.ESP信息 • 8.路径最大传输单元:任何观测到的路径最大传输单元(不分片而可以传输的报文的最大规模)
安全策略数据库(Security Policy Database,S P D) • I P S e c策略由“安全策略数据库(Security Policy Database,S P D)”加以维护。 • 在S P D这个数据库中,每个条目都定义了要保护的是什么通信、怎样保护它以及和谁共享这种保护。 • 对于进入或离开I P堆栈的每个包,都必须检索S P D数据库,调查可能的安全应用。
对一个S P D条目来说,它可能定义了下述几种行为: 丢弃、绕过以及应用 “丢弃”表示不让这个包进入或外出; • “绕过”表示不对一个外出的包应用安全服务,也不指望一个进入的包进行了保密处理; • “应用”是指对外出的包应用安全服务,同时要求进入的包已应用了安全服务
I P S e c通信到I P S e c策略的映射关系是由“选择符(S e l e c t o r)”来建立的。 • 选择符标识通信的一部分组件,它既可以是一个粗略的定义,也可以是一个非常细致的定义。 • I P S e c选择符包括: 目标I P地址、源I P地址、用户ID、传输层协议、源和目标端口、数据敏感度层
在包处理过程中,S P D和S A D B这两个数据库需要联合使用。 • 策略是I P S e c结构中非常重要的一个组件。它定义了两个实体之间的安全通信特性;定义了在什么模式下使用什么协议;还定义了如何对待I P包。
二、认证头 • 认证头提供了数据完整性以及IP报文认证的支持。 • 数据完整性特征保证了传输中报文内容的更改是一定可以检测出来的。 • 认证特征使得终端系统或网络设备可以对用户或应用程序进行认证,由此可以对流量进行过滤 • 认证机制可以防止地址冒用攻击、重放攻击
原IP 包头 数据 AH协议 IP 包头 数据 传输模式 IP 包头 AH 数据 隧道模式 新IP 包头 AH 0 8 16 31 AH头结构
AH不需要对数据进行加密所以报头和ESP相比简化了很多,不再需要和加密算法相关的“IV”、“填充项”、“填充项长度”。AH不需要对数据进行加密所以报头和ESP相比简化了很多,不再需要和加密算法相关的“IV”、“填充项”、“填充项长度”。
下一头(Next Header): • 隧道模式:此值为4,标识IP-in-IP; • 传输模式:此值表示上一层协议,例如TCP为6; • 有效负载长度: • 采用32位字减2表示头本身长度; • 安全参数索引(SPI): • 为要处理的包定位SA
序号(Sequence number): • 使AH具有抵抗重播攻击能力; • 认证数据: • 包含着用于保留数据包的加密MAC的摘要
抗重放服务 • 两种I P S e c协议均提供了一个抗重播服务(A n t i r e p l a y)。 • 尽管它并非I P S e c基本结构明确定义的一部分内容,但却是两种协议中非常重要的一环。
接收到的包构成的滑动窗口 数据包流 序列号 N +7 序列号 N +16 序列号 N
封装安全载荷ESP • E S P(Encapsulating Security Payload)属于I P S e c的一种协议,可用于确保I P数据包的机密性(未被别人看过)、数据的完整性以及对数据源的身份验证。此外,它也要负责对重播攻击的抵抗。
具体做法: • 在I P头(以及任何I P选项)之后,并在要保护的数据之前,插入一个新头,亦即E S P头。 • 受保护的数据可以是一个上层协议,或者是整个I P数据报。 • 最后,还要在最后追加一个E S P尾。 • E S P是一种新的I P协议,对E S P数据包的标识是通过I P头的协议字段来进行的。
加密部分 原IP 包头 数据 ESP 协议 IP 包头 数据 传输模式 ESP尾部 ESP验证 IP 包头 ESP头部 加密后的数据 隧道模式 新IP 包头 ESP头 ESP尾部 ESP验证 ESP协议包结构
基于IPsec的虚拟专用网 • 当IPsec用于路由器时,就可以建立虚拟专用网。 • 路由器连入内部网的一端,是一个受保护的网络,另一端则是不安全的公共网络。 • 两个这样的路由器建立 起一个安全通道,通信就可以通过这个通道从一个本地的保护子网发送到一个远程的保护子网,这就形成了一个VPN 。
数据包的处理过程 发送方的处理过程 : • (1) 源主机TCP层通过调用ip_output()函数,调用IP层, 令其发送一个数据包 • 给路由器; • (2) 路由器针对目的主机的数据包,查询策略引擎,根据安全策略强制加上AH或 • ESP头; • (3) IKE处理,对没有SA的安全策略建立新的SA; • (4) SA处理, 增加序列号字段; • (5) 通道模式处理,通常VPN用的是通道模式,因此加上一个额外的IP头; • (6) 路由器发送这个安全的数据包。
接收方的处理过程: • (1) 另一端的路由器收到这个包,剥去额外的IP头,并利用数据包的AH或ESP • 头调用 IPsec层; • (2) IPsec层从AH或ESP头摘录出SPI,从IP头中选出源和目的地址及协议; • (3) IPsec层用以上的参数从SAD中取出所需的SA,如果没找到,就丢弃这个包; • (4) SAD返回SA,IPsec将会根据AH和ESP定义的规则对这个包进行处理; • (5) 验证和这个包对应的策略,进而决定IPsec处理的应用是否正确,策略是通 • 过SA中的指针获得或利用选择符查询SPD得来; • (6) 如果验证正确,那么解密并把这个包转发到真正的目的主机。
10.1.1.1 IPSEC原理-传输模式 公司总部网络 合作伙伴 合作伙伴 防火墙 202.9.1. 1 加密隧道 加密、认证
RB RA 主机A 主机B 数据流 IPSEC原理-隧道模式 在数据包的最终目的地不是安全终点时,通常使用隧道模式IPSec。 SARA,RB