IPSec 技术

Download Report

Transcript IPSec 技术

IPSec 技 术
产品部 叶 榕
Oct.2005
提 纲








什么是IPSec协议
提供的安全机制
IPSec的结构
IPSec协议的组成
IPSec工作原理
IPSec的两种模式
IKE协议
IPSec技术疑难
什么是IPSec协议
 IPSec(网络安全协议)协议是一个协议集而不是一个
单个的协议;
 IPSec协议给出了应用于IP层上网络数据安全的一整套
体系结构;
 自1995年IPSec的研究工作开始以来,IETF组织已经积
累了大量的标准文件集(RFC)。
IPSec协议
 IPSec协议包括AH协议、ESP协议、密钥管理协议(IKE
协议)和用于网络验证及加密的一些算法等。
 IPSec规定了如何在对等层之间选择安全协议、确定安全
算法和密钥交换,向上提供了访问控制、数据源验证、
数据加密等网络安全服务。
IPSec协议提供的安全机制
1 机密性保护:IKE使用Diffie-Hellman算法完成密钥的交换,
并使后续的协商处在加密保护中完成;
2 数据完整性与身份验证:IKE通过交换验证载荷完成对数
据完整性的检验,并同时完成对对端身份的验证;
3 抗拒绝服务攻击(DoS):在IKE交换中,首先交换的是
cookie,在一次交换中首先检查cookie值,把需要CPU密
集运算的处理放在cookie值检验之后,这样可以对DoS攻
击提供一种简单的防范机制;
IPSec协议提供的安全机制
4 防止中间人攻击:中间人攻击包括窃听、插入、删除、修
改、反射旧消息、重放旧消息以及重定向消息等。IKE协
议通过将认证、加密与SA交换相结合等方式,提供对中
间人攻击的较好防范;
5 完美向前保密(Perfect Forward Secrecy,简称PFS):
完美向前保密是指即使攻击者破解了一个密钥,也只能获
得该密钥加密的信息,而不能获得其它的数据信息。而
IKE提供的PFS,指即使攻击者破解了第一阶段的密钥交
换,也只能获得受该SA保护的信息,但却不能获得受
IPsec SA保护的数据信息。
IPSec的结构
体
系
封装安全载荷
验证头
加密算法
认证算法
解释域(DOI)
密钥管理
策略
IPSec协议的组成
 验证头协议( AH-Authentication Header )
 封装安全协议( ESP-Encapsulating Security
Protocol )
 Internet密钥管理协议(IKE-Internet Key Exchange)
 安全政策
IPSec工作原理




IPSec 认证-AH
IPSec 加密-ESP
IPSec DOI(解释域)
安全联盟(SA)
IPSec 认证-AH协议
 AH协议提供数据的认证服务;保证数据在传输过程中没
有被改变或破坏,数据的顺序也没有很大变化;
 其使用的包头号放在标准的IPv4和IPv6包头和下一个高
层协议帧(如TCP、UDP、ICMP、ESP等)之间;
 国际IANA机构分配给AH的协议号为51。
IPv4包头
AH包头
高层协议
IPSec 加密-ESP协议
 ESP协议为IP数据包提供机密性、数据源验证、抗重播
以及数据完整性等安全服务;
 其使用的包头号放在标准的IPv4和IPv6包头和下一个高
层协议帧(如TCP、UDP、ICMP等)之间。
 国际IANA机构分配给ESP的协议号为50。
IPv4包头
ESP包头
高层协议
IPSec DOI
 用于IPSec的DOI确定与AH和ESP协议有关的所有参数,
并且给它们分配唯一的标志符。
 IKE定义了安全参数如何协商,以及共享密钥如何建立。
但没有定义协商的内容,这个方面的定义是由DOI文档来
进行的。
 实际上,DOI在IPSec安全联盟的协商过程中起一个可参
考调用的数据库的作用。
安全联盟(SA)
 安全联盟简称SA,是构成IPSec的基础。
 SA是两个通信实体经协商建立起来的一种协定。
 SA是单向的,双向的通信需要两个SA。
共享相同的
加密参数
SA(out)
SA(in)
SA(in)
SA(out)
共享相同的
加密参数
主机A
主机B
安全联盟(SA)
 SADB-SA数据库
 为进入和外出包处理维持一个活动的SA列表。
 SPD-安全策略数据库
 策略:定义了两个实体之间的安全通信特性,什么模式下用什么
协议,以及如何对待IP包。
 外出包和进入包的处理都要查阅SPD。对外出包,通过查阅SPD,
判断这个包是否需要安全保护;对进入包,通过查阅SPD,判断
为这个包提供的安全保护是否和策略配置的安全保护相符。
 SPI-安全参数索引
 一个长度为32位的数据实体,用于独一无二地标识出接收端上的
一个SA。
SA的管理
 SA管理的两大任务
 创建
─ 先协商SA参数,再用SA更新SADB
 删除
 SA管理方式
 手工进行
 通过Internet密钥交换协议来完成,如IKE
IPSec的两种模式
 通道模式
 AH和ESP保护的是传输头;AH和ESP会拦截从传输层到网络层
的数据包,根据具体的配置提供安全保护。
 主要用于主机-主机的VPN应用。
 隧道模式
 用于数据包的最终目的地不是安全终点的情况下。
 主要用于网关-网关的VPN应用。
通道模式下IPSec数据包格式
AH+ESP
IP头
AH(51) ESP(50) 网络载荷
ESP
IP头
ESP(50)
网络载荷
AH
IP头
AH(51)
网络载荷
加密通道
隧道模式(IPinIP协议)
 对一个IP报文进行封装,在原有的IP头前,又添加一个
新的IP报头的协议,就像隧道一样保护原来的IP报文。
从而隐藏了网络的相关信息。
 国际IANA机构分配给IP传输协议(IPinIP)的协议号为4。
Media
外部IP协议头
内部IP协议头
用户数据
隧道模式下IPSec数据包格式
AH+ESP
新IP头
AH(51) ESP(50)
原IP头
ESP
新IP头 ESP(50) 原IP头
上层协议
AH
新IP头
AH(51)
上层协议
加密通道
原IP头
上层协议
IKE协议





什么是IKE
IKE协商机制
IKE协商模式
IKE认证方式
IKE对证书的要求
什么是IKE
 IKE(Internet Key Exchange)是一个密钥协商协议;
 IKE提供了身份认证,协商信息的保护,并为IPSec等安
全协议进行安全联盟的协商。
 IKE是一个通用的协议,它不仅可以为IPSec协商安全参
数,也可以为其它的协议协商安全参数。
IKE协议
 IKE协议是Oakley和SKEME协议的一种混合,并在由
ISAKMP规定的一个框架内运行。
 ISAKMP(Internet Security Association and Key
Managerment Protocol)Internet安全联盟和密钥管理协议
─
─
为认证和密钥交换提供了一个框架。
它定义了包格式、重发计数器以及消息构建要求。即整套加密通信语言。
但并没有定义认证和密钥交换,它用来实现多种密钥交换;
 Oakley描述了多种密钥交换(称为模式)以及每种模式提供的
服务(例如:完美向前保护、身份保护和验证);
 SKEME描述了一个通用的密钥交换技术,它能提供匿名性、抗
抵赖性和快速密钥更新。
Oakley和SKEME定义了通信双方建立一个共享的验证密钥所必须采取的
步骤。IKE利用ISAKMP语言对这些步骤以及其它信息交换措施进行表述。
IKE协商机制
 IKE采用的密钥协商机制分两个阶段。
 第一阶段进行身份认证和ISAKMP的安全联盟的协商;即IKE SA
的协商并完成身份认证和保护。
 第二阶段则利用第一阶段协商的安全联盟来保护信息,并为
IPSec等安全协议进行安全联盟的协商;即IPSec SA的协商。
 IKE第一阶段协商分6个步骤
 IKE第二阶段协商分3个步骤
IKE协商模式
 第一阶段两种协商模式
 主模式(身份保护交换)-Main Mode
─
灵活
 野蛮模式(根据基本ISAKMP文档制定的)-Aggressive Mode
─
速度快
 第二阶段仅一种协商模式
 快速模式-Quick Mode
IKE认证方式
 IKE的认证方式只存在于第一阶段
 共有有三种方式
 预共享密钥方式(PSK,Preshared Key)
 数字签名方式(RSA SIGNATURE)
 公钥加密方式
IKE的协商步骤
 第一阶段
 预共享密钥方式,主模式的协商步骤
 数字签名方式,主模式的协商步骤
 公钥加密方式,主模式的协商步骤
 第二阶段
 快速模式的协商步骤
第一阶段的6个步骤
预共享密钥方式、主模式协商
发起者(客户端)
步骤1
HDR、SA
步骤2
步骤3
协商IKE SA的各
项参数, 并对交
换的其余部分拟
定规范。
HDR、SA
HDR、KE、Nonce
步骤4
步骤5
响应者(服务器端)
HDR、KE、Nonce
HDR、ID、散列
步骤6
交换DH公共
值以及伪随机
nonce。完成
DH交换, 并生
成SKEYID状
态。
HDR、ID、散列
KE:Key Exchange
DH:Diffie-Hellman
Nonce:随机数
标定自己的
身份, 并相互
交换验证散
列摘要。
第一阶段的6个步骤
数字签名方式、主模式协商
发起者(客户端)
步骤1
HDR、SA
步骤2
步骤3
HDR、SA
HDR、KE、Nonce
步骤4
步骤5
步骤6
响应者(服务器端)
HDR、KE、Nonce
HDR、ID、[Cert]
HDR、ID、[Cert]
第一阶段的6个步骤
公钥加密方式、主模式协商
发起者(客户端)
步骤1
响应者(服务器端)
HDR、SA
步骤2
HDR、SA
步骤3
HDR、KE、{ID}pub_r,
步骤4
{Ni}pub_r
HDR、KE、{ID}pub_I,
{Nr}pub_r
步骤5
步骤6
HDR、散列
HDR、散列
第二阶段的3个步骤
快速模式协商
发起者(客户端)
步骤1
HDR、散列、SA …
HDR、散列、SA …
步骤2
步骤3
响应者(服务器端)
SA 、写IPSec
发起方在收到响应方的
“已连接”消息后,将
SA加入自己的IPSec
SADB数据库。
SA、写IPSec
将SA加入自己的
IPSec SADB数据
库。
IKE SA是双向的,双方都可
以发起一次快速模式交换。
隧道建立中易出错的阶段
 阶段一的步骤1
 协商算法不一致
 阶段一的步骤5
 预共享密钥不一致
 公钥过期
 没有私钥
 没有CA证书
 证书ID不一致
 阶段二的步骤7
 算法不匹配
 子网不一致
IKE对证书的要求
 一般采用X.509证书
 X.509标准是国际标准,现行版
本为V3版;
 X.509证书是符合一定格式的电
子文件,用来识别数字证书持
有者的真实身份;
 它由具有权威性、可信任性即
公正性的第三方机构(CA)所
颁发,实现身份的鉴别与识别
(认证)、完整性、保密性及
不可否认性安全服务。
隧道建立中认证方式填写注意
 在配置隧道时,必须指定双方的ID:
 当认证方式为PSK时,ID默认为双方的IP地址。
 当为数字签名方式时,ID必须与证书相关。可以接收的ID
有下列四种方式:
 1:证书的SUBJECT(C=CN, ST=HB, O=TIT, OU=VPN,
CN=308/[email protected])
 2:IP地址(192.168.16.16)
 3:FQDN (@star-net.cn) -域名
 4:UFQDN ([email protected]) -邮件地址
 选用2、3、4三种ID必须在证书的SubjectAltName字段必
须存在此ID。
IPSec技术疑难
穿越NAT
MTU问题
IPSec为啥不能穿越NAT
 NAT只对TCP、UDP、ICMP有效,IPSec报文是AH、ESP协议的,
因此NAT无法正确处理这两类的报文,导致IPSec 报文无法穿透NAT
设备。
 AH的目的是保护IP头部中不变的区域(包括地址域),而NAT必须转换
地址,从而使AH完整性检验失效。
 因此,NAT和AH从根本上就是不兼容的。在IPSec-NAT兼容性方
案中,没有必要支持AH。
再次AH校验=B
AH校验=A
A
VPN 2
VPN 1
发起方
不相等,校验失败
NAT
接收方
操作提示:当VPN的应用中存在NAT环境时,请不要选择AH算法。
IPSec如何实现NAT穿越
ESP 传输模式下
UDP封装
ESP 隧道模式下
MTU问题-MTU与MSS
 MTU: Maxitum Transmission Unit 最大传输单元
 EthernetII 帧结构:DMAC+SMAC+Type+Data+CRC
 64bytes >= 每个帧 <= 1518bytes
 除去帧头 和帧尾, Data域最大就只能有1500Bytes 即MTU值
 网络层IP协议会检查每个从上层协议下来的数据包的大小,并根据
本机MTU的大小决定是否作“分片”处理。
─ 分片会降低传输性能
─ 加DF标签,转发设备会丢弃数据包,并返回一个错误信息给发送者。
 MSS就是TCP数据包每次能够传输的最大数据分段。
 MSS值=MTU-IP包头(20bytes)-TCP包头(20bytes)
<=1460Bytes
 通讯双方会根据双方提供的MSS值的最小值确定为这次连接的最大
MSS值。
IPSec与MTU
 IPSec封装会引入了额外的头(一般100 bytes左右),这
样就会使原来的报文变大(1500+100=1600 bytes),因
此会造成分片。
 分片的缺点:
 分片降低传输性能;
 某些低端路由器芯片,对NAT后的UDP分片报文处理不好,导致
报文丢失,使得IPSec报文无法还原。
 产品实现
 VPN客户端提供设置MTU值的小工具,可修改范围是576至1500。
 目前系统提供默认值1414,这是经过多次反复的测试,性能很好
的一个值。