2009-4-8 追风 转载请注明出处。
本文主要参考英文版IPsec HOWTO
IPsec安全技术全接触
本篇为IPsec HOWTO的第三部分,介绍IKE协议和NAT- Traversal
IKE协议
IKE协议解决了如下问题:
1)发送端和接收端的互相认证,即建立的ISAKMP SA ,为安全的交换密钥提供必要条件。
2)密钥的交换,在IKE联盟建立的前提下,交换密钥,保证密钥交换过程的安全。
完成以上两步之后,创建安全联盟(SA),然后把新的SA分别写到发送端和接收端的安全联盟数据库(SAD)中。另外,IKE协议需要一个daemon,即无用户交互的后台程序,例如racoon。此程序需要在建立通道前就启动。
用IKE协议建立SA分为两个阶段:
1)建立一个Internet Security Association Key Management Security Association(ISAKMP SA 网络安全联盟密钥管理 安全联盟)。
2)使用ISAKMP SA来协商IPsec SA,即交换密钥等。
下面小节将详细介绍这两个阶段。
第一阶段
通常情况下,第一阶段中节点间的认证是基于pre-shared keys(PSK),RSA key,和X.590认证证书的。(racoon 甚至还支持Kerberos)
第
一阶段有两种不同的模式:main mode和aggressive mode,两种模式的作用都是进行节点认证和设置ISAKMP
SA的。aggressive mode只需要相对于main mode一半的信息,就可以完成建立ISAKMP
SA的目的。但是aggressive mode也有他的缺点,这种模式没有标识保护,所以在两个节点连接pre-share
ksy时,容易受到man-in-middle攻击。
从另一个角度来说,aggressive mode也有他的优点和用途,因为在main
mode下,不支持互相未知的节点之间使用不同的pre-share key,而代aggressive
mode中,标识都是明文传送的,所以在认证前,不同节点间就可彼此知道对方的pre-share key,所以即使节点间pre-share
key不同,也是可以通过明文传送得知。
第二阶段
IKE协议基于ISAKMP SA 交换SA请求并协商IPsec SA。此时是ISAKMP Sa在起作用来抵御man-in-middle攻击。
通常两个节点间只协商出一个ISAKMP SA,然后可以基于这个IASKMP Sa协商出多个(至少两个)单向的IPsec A(两个单向的即A->B 和B->A)
NAT-Traversal
通常VPN中的节点都位于一个NAT设备之后。以下所有的介绍和描述都是针对源端的NAT设备(Source NAT device)。
NAT设备对于VPN来说意味着什么呢?
首先就是节点的原有IP地址会被NAT设备隐藏。NAT设备会删除原有的IP地址,并用自己的IP地址替换。这样就导致了AH协议无法使用。ESP协议如果配置正确的话,还是可以使用的。
为什么会使用NAT-Traversal呢?
因为NAT设备后的节点不能与NAT设备外的节点建立通道。所以要使用NAT-Traversal。
为什么NAT设备后的节点不能建立IPsec通道呢?
因为NAT设备要跟踪从NAT设备后的机器上发出的请求,并在NAT设备接受到的返回信息转发到刚才发出请求的那台机器。要实现这个功能,NAT设备需要维护一个表来保存“natted”的链接(即通过NAT设备建立的链接)。
假
设一个NAT设备后的计算机,要链接因特网上的某个webserver,此时NAT设备会删除IP数据包中的原有IP地址,并用自己的IP地址代替之,然
后在把IP数据包发给webserver。同时在表上做一个记录,以保证NAT设备接收到返回的数据包时,能正确的转发的相应的计算机。
NAT-Traversal是如何解决这个问题的呢?
NAT-Traversal会用UDP协议对ESP包再次封装。这样就可以轻易的通过NAT设备建立IPsec通道。系统默认会使用4500/udp这个端口。
阅读(1720) | 评论(0) | 转发(0) |